Skip to content

A curated list of i18n resources for all kind of languages and frameworks

Notifications You must be signed in to change notification settings

gem0303/awesome-i18n

ย 
ย 

Repository files navigation

awesome-i18n Awesome

A curated list of i18n tools, i18n libraries, localization software, localization programs and translation management systems.

๐Ÿ“ฆ Contents

๐Ÿ‘ฉโ€๐ŸŽ“ Acronyms and keywords

๐Ÿง Acronyms

  • i18n - internationalization
  • l10n - localization
  • xl8 - group of translation management systems
  • t9n - translation
  • g11n - globalization
  • m17n - multilingualization
  • ICU - International Components for Unicode
  • TMS - translation management system
  • GMS - globalization translation system (same thing as TMS)

๐Ÿ”‘ Keywords

  • translation key - element in source code which is used by i18n library to replace it with translation message
  • translation - translated text or message

๐Ÿ•ต๏ธ SEO i18n

๐Ÿ“š Libraries

JavaScript

  • ECMAScript Internationalization API documentation what standard intl object in JS can do.
  • Facebook FBT FBT is an internationalization framework for JavaScript designed to be not just powerful and flexible, but also simple and intuitive
  • js-lingui A readable, automated, and optimized (5kb) internationalization
  • Globalize library for i18n that leverages the official Unicode CLDR JSON data
  • Intl.js implementation of the ECMAScript Internationalization API
  • Jed Gettext Style i18n
  • FormatJS internationalize your web apps on the client & server
  • FormatJS CLI Extract messages from project with FormatJS library
  • i18n Ally - Extension for VSCode, all in one about i18n.
  • npm i18n - Lightweight simple translation module with dynamic json storage.
  • vue i18n Vue I18n is internationalization plugin for Vue.js
  • MDN i18n - Functions to internationalize your browser extension. You can use these APIs to get localized strings from locale files packaged with your extension.
  • Quasar I18n - App internationalization (i18n) in Quasar framework.
  • eo-locale Elegant lightweight library based on Internationalization API

โš›๏ธ React

  • FormatJS internationalize your web apps with react-intl library
  • FormatJS CLI Extract messages from project with FormatJS library
  • react-localization Simple module to localize the React interface using the same syntax used in the ReactNativeLocalization module.
  • react-i18nify Simple i18n translation and localization components and helpers for React
  • react-persian react-persian is a set of react components for Persian localization
  • i18next i18next is a full-featured i18n javascript library for translating your web application
  • react-i18next - internationalization framework for React / React Native which is based on i18next
  • next-translate Easy i18n for Next.js +10
  • react-translated A dead simple way to add complex translations in a React project
  • React-intl hooks React-intl-hooks is a small and fast library that you can use to replace Format.js components.

Java

Jekyll

  • jekyll-multiple-languages-plugin Jekyll Multiple Languages is an internationalization plugin for Jekyll.
  • jekyll-i18n Jekyll i18n is a plugin that enables simplistic multi-language site designs using Jekyll. (not maintained)

Swift (iOS & macOS)

Ruby

  • TwitterCLDR implementation of the ICU that uses the Common Locale Data Repository to format dates, plurals
  • Ruby I18n - Rails internationalization (i18n) API.

Python

  • Python-i18n - Python internationalization (i18n) package.
  • deep-translator - A flexible free and unlimited (depending on the translator used) library written in Python to translate between different languages in a simple way using multiple translators, it can also be used directly in the prompt.

๐Ÿ‘ฉโ€๐Ÿ’ป Tools and services

๐Ÿค– Localization CLI Tools

  • FormatJS CLI Extract messages from project with FormatJS library
  • simplelocalize-cli Extract translation keys and messages from various different libraries

โ˜๏ธ Translation Management Systems

  • LocaleApp - App localization and translation.
  • Crowdin - Closed source cloud-based localization service
  • GitLocalize - Localization platform that syncs with your GitHub repository (sold to alconst)
  • Transifex - Web-based translation platform, globalization management system.
  • Weblate - Platform for one of the most positive and empowering communities of libre software.
  • Zanata - Web translation platform for translators and developers to manage localisations.
  • Traduora - A platform for manage translations.

๐Ÿ–ฅ Desktop apps

  • GNU gettext tool for adding native language support to applications
  • RTranslator - simultaneous translator app for Android based on Google's API.
  • Crow Translate - A simple and lightweight desktop translator. Allows to translate and speak text using Google, Yandex and Bing translate API.
  • Copy Translator - Cross-platform app that automatically translate texts when copied in the clipboard
  • Electronjs i18n - Cross-platform i18n manager
  • OmegaT - Free translation memory application that works on Windows, macOS and Linux
  • Argos Translate - Open source offline translation app based on OpenNMT
  • LibreTranslate - self-hosted web application to translate texts

๐Ÿ“… Dates and Times

  • date-fns Modern JavaScript date utility library

๐Ÿ“ž Telephone

๐Ÿ“’ Blog posts, articles & others

๐Ÿฆฎ Guides

๐Ÿ’ญ Community Tips & tricks

  • If you have tight layouts, my rough rule of thumb is to double the English text and make sure it fits. Then you will usually have enough space for translations.
  • Russian and German tend to have the longest translations, and the longest words. Get familiar with the shy-hyphen ยญ character. You put it in the words html and it will only break the word/show the hyphen when necessary. Google โ€œonline hyphenation toolโ€ so you know the appropriate places to break the word.
  • you need to translate numbers with decimals because the period appears as a comma in some languages.
  • same goes for percent signs. Sometimes the % shows before the number, and not after. There might be a space between the number and %. It might show as %-KAL in Hungarian.
  • Greek question marks look like a semicolon, that one really threw me off when I first saw it.

โœ๏ธ Translation agencies

โœŒ๏ธAdd your agency

๐Ÿฆพ Automated translations

๐Ÿ“˜ Documetations

๐Ÿฟ Videos

Internationalis(z)ing Code - Computerphile

youttube internationalization

Link: https://www.youtube.com/watch?v=0j74jcxSunY

The Problem with Time & Timezones - Computerphile

youttube internationalization

Link: https://www.youtube.com/watch?v=-5wpm-gesOY

๐Ÿ“ข Contribute

Contributions welcome! Read the contribution guidelines first.

About

A curated list of i18n resources for all kind of languages and frameworks

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published