[38;5;12m![39m[38;5;14m[1mawesome-i18n[0m[38;5;12m (./awesome_i18n.png)[39m

[38;5;12m                                                                                 [39m[38;2;255;187;0m[1m[4mawesome-i18n [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://awesome.re/badge.svg)[0m[38;2;255;187;0m[1m[4m (https://awesome.re)[0m

[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mA curated list of i18n tools, i18n libraries, localization software, localization programs and translation management systems.[39m

[38;5;12mNo paid or freemium services.[39m

[38;5;12mIf you want to add something just modify [39m[38;5;14m[1mREADME.md[0m[38;5;12m (README.md) file ☺️ Enjoy![39m

[38;2;255;187;0m[4mRemember to give this repo a star! 🌟[0m

[38;2;255;187;0m[4mContents[0m

[38;5;12m- [39m[38;5;14m[1m👩‍🎓 Acronyms and keywords[0m[38;5;12m (#-acronyms-and-keywords)[39m
[38;5;12m- [39m[38;5;14m[1m📦 Libraries[0m[38;5;12m (#-libraries)[39m
[38;5;12m- [39m[38;5;14m[1m🖥 Desktop apps for translation management[0m[38;5;12m (#-desktop-apps-for-translation-management)[39m
[38;5;12m- [39m[38;5;14m[1m📅 Utility libraries[0m[38;5;12m (#-utility-libraries)[39m
[38;5;12m- [39m[38;5;14m[1m📚 Resources[0m[38;5;12m (#-resources)[39m
[38;5;12m- [39m[38;5;14m[1m💭 Community Tips & tricks[0m[38;5;12m (#-community-tips--tricks)[39m
[38;5;12m- [39m[38;5;14m[1m🦾 Automated translations[0m[38;5;12m (#-automated-translations)[39m
[38;5;12m- [39m[38;5;14m[1m🍿 Videos[0m[38;5;12m (#-videos)[39m

[38;2;255;187;0m[4m👩‍🎓 Acronyms and keywords[0m

[38;2;255;187;0m[4m🧐 Acronyms[0m
[38;5;12m- i18n - internationalization[39m
[38;5;12m- l10n - localization[39m
[38;5;12m- xl8 - group of [39m[38;5;14m[1mtranslation management systems[0m[38;5;12m (#%EF%B8%8F-translation-management-systems)[39m
[38;5;12m- t9n - translation[39m
[38;5;12m- g11n - globalization[39m
[38;5;12m- m17n - multilingualization[39m
[38;5;12m- ICU - International Components for Unicode[39m
[38;5;12m- TMS - translation management system[39m
[38;5;12m- GMS - globalization translation system (same thing as TMS)[39m

[38;2;255;187;0m[4m🔑 Keywords[0m
[38;5;12m- translation key - element in source code which is used by i18n library to replace it with translation message[39m
[38;5;12m- translation - translated text or message[39m

[38;2;255;187;0m[4m📦 Libraries[0m

[38;2;255;187;0m[4mJavaScript / TypeScript[0m

[38;5;12m- [39m[38;5;14m[1mairbnb.io/polyglot.js[0m[38;5;12m (http://airbnb.io/polyglot.js/) - tiny i18n helper library written in JavaScript, made to work both in the browser and in CommonJS environments[39m
[38;5;12m- [39m[38;5;14m[1mVoerkaI18n[0m[38;5;12m (https://zhangfisher.github.io/voerka-i18n/) - Internationalization solution for [39m[48;5;235m[38;5;249mJavascript/Typescript/Vue/React/Solidjs/SvelteJs/ReactNative[49m[39m
[38;5;12m- [39m[38;5;14m[1meo-locale[0m[38;5;12m (https://github.com/ibitcy/eo-locale) - elegant lightweight library based on Internationalization API[39m
[38;5;12m- [39m[38;5;14m[1mMDN: Intl object[0m[38;5;12m (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl) - documentation for standard [39m[48;5;235m[38;5;249mintl[49m[39m[38;5;12m object from JavaScript[39m
[38;5;12m- [39m[38;5;14m[1mMDN: i18n[0m[38;5;12m (https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n) - internationalize your browser extension. APIs to get localized strings from locale files[39m
[38;5;12m- [39m[38;5;14m[1mfacebook/fbt[0m[38;5;12m (https://github.com/facebook/fbt) - internationalization framework for JavaScript designed to be not just powerful and flexible, but also simple and intuitive[39m
[38;5;12m- [39m[38;5;14m[1mFormatJS[0m[38;5;12m (https://formatjs.io) - internationalize your web apps on the client & server[39m
[38;5;12m- [39m[38;5;14m[1mFormatJS CLI[0m[38;5;12m (https://formatjs.io/docs/tooling/cli/) - extract messages from project with FormatJS library[39m
[38;5;12m- [39m[38;5;14m[1mi18next[0m[38;5;12m (https://www.i18next.com) - internationalization framework for browser or any other JavaScript environment[39m
[38;5;12m- [39m[38;5;14m[1mi18n-ally[0m[38;5;12m (https://github.com/antfu/i18n-ally) - extension for VSCode, all in one about i18n[39m
[38;5;12m- [39m[38;5;14m[1mintljulep[0m[38;5;12m (https://github.com/laurentpayot/intljulep) - super lightweight yet powerful i18n library[39m
[38;5;12m- [39m[38;5;14m[1mjquery/globalize[0m[38;5;12m (https://github.com/jquery/globalize) - library for i18n that leverages the official Unicode CLDR JSON data[39m
[38;5;12m- [39m[38;5;14m[1mJed[0m[38;5;12m (https://github.com/messageformat/Jed/) - Gettext style i18n library[39m
[38;5;12m- [39m[38;5;14m[1mlisan.js[0m[38;5;12m (http://lisanjs.com) - fast and small i18n library[39m
[38;5;12m- [39m[38;5;14m[1mjs-lingui[0m[38;5;12m (https://github.com/lingui/js-lingui) - readable, automated, and optimized internationalization[39m
[38;5;12m- [39m[38;5;14m[1mnpm i18n[0m[38;5;12m (https://www.npmjs.com/package/i18n) - lightweight simple translation module with dynamic JSON storage[39m
[38;5;12m- [39m[38;5;14m[1mttag[0m[38;5;12m (https://ttag.js.org/) - library for translations based on ES6 template literals[39m
[38;5;12m- [39m[38;5;14m[1mtypesafe-i18n[0m[38;5;12m (https://github.com/ivanhofer/typesafe-i18n) - type-safe, lightweight localization library for TypeScript with no external dependencies[39m
[38;5;12m- [39m[38;5;14m[1mschummar-translate[0m[38;5;12m (https://github.com/schummar/schummar-translate) - TypeScript powered translation library for React and Node.js[39m
[38;5;12m- [39m[38;5;14m[1mmessageformat[0m[38;5;12m (https://github.com/messageformat/messageformat) - ICU MessageFormat for Javascript - i18n Plural and Gender Capable Messages[39m
[38;5;12m- [39m[38;5;14m[1mrosetta[0m[38;5;12m (https://github.com/lukeed/rosetta) - A general purpose internationalization library in ~300 bytes (including dependencies)[39m
[38;5;12m- [39m[38;5;14m[1mIntl.js (UNMAINTAINED)[0m[38;5;12m (https://github.com/andyearnshaw/Intl.js) - implementation of the ECMAScript Internationalization API[39m
[38;5;12m- [39m[38;5;14m[1mParaglideJS[0m[38;5;12m (https://inlang.com/m/gerre34r/library-inlang-paraglideJs) - synchronous, typesafe and lightweight i18n library[39m


[38;2;255;187;0m[4mReact / React Native[0m
[38;5;12mReact apps and react localization is so popular so we decided to add a special section for it. Here is the list of react localization libraries:  [39m

[38;5;12m- [39m[38;5;14m[1mnext-translate[0m[38;5;12m (https://github.com/vinissimus/next-translate) - easy i18n for NextJS, ~1kb of size[39m
[38;5;12m- [39m[38;5;14m[1mnext-intl[0m[38;5;12m (https://github.com/amannn/next-intl) - a minimal, but complete solution for internationalization in Next.js apps works with SSR and SSG[39m
[38;5;12m- [39m[38;5;14m[1mreact-translate[0m[38;5;12m (https://github.com/bloodyowl/react-translate) - internationalization for React[39m
[38;5;12m- [39m[38;5;14m[1mreact-native-localize[0m[38;5;12m (https://github.com/zoontek/react-native-localize) - toolbox for your React Native app localization[39m
[38;5;12m- [39m[38;5;14m[1mreact-localization[0m[38;5;12m (https://github.com/stefalda/react-localization) - simple module to localize the React interface using the same syntax used in the ReactNativeLocalization module[39m
[38;5;12m- [39m[38;5;14m[1mreact-intl[0m[38;5;12m (https://formatjs.io) - internationalize your web apps with react-intl library[39m
[38;5;12m- [39m[38;5;14m[1mreact-intl (CLI)[0m[38;5;12m (https://formatjs.io/docs/tooling/cli/) - extract messages from project with FormatJS library[39m
[38;5;12m- [39m[38;5;14m[1mreact-intl-hooks[0m[38;5;12m (https://github.com/CreateThrive/react-intl-hooks) - small and fast library that you can use to replace FormatJS components[39m
[38;5;12m- [39m[38;5;14m[1mreact-i18nify[0m[38;5;12m (https://github.com/sealninja/react-i18nify) - simple i18n translation and localization components and helpers for React[39m
[38;5;12m- [39m[38;5;14m[1mreact-i18next[0m[38;5;12m (https://react.i18next.com/) - internationalization framework for React and React Native which is based on i18next[39m
[38;5;12m- [39m[38;5;14m[1mreact-i18n-mini[0m[38;5;12m (https://github.com/SanichKotikov/react-i18n-mini) - A tiny (~2.39 kB) internationalisation library for React[39m
[38;5;12m- [39m[38;5;14m[1mreact-persian[0m[38;5;12m (https://github.com/evandhq/react-persian) - set of react components for Persian localization[39m
[38;5;12m- [39m[38;5;14m[1mreact-translated[0m[38;5;12m (https://github.com/amsul/react-translated) - dead simple way to add complex translations[39m
[38;5;12m- [39m[38;5;14m[1mreact-localize-redux[0m[38;5;12m (https://github.com/ryandrewjohnson/react-localize-redux) - localization library for handling translations[39m
[38;5;12m- [39m[38;5;14m[1mreact-translate-component[0m[38;5;12m (https://github.com/martinandert/react-translate-component) - component for React that utilizes the Counterpart module and the Interpolate component to provide multi-lingual/localized text content[39m
[38;5;12m- [39m[38;5;14m[1mreact-littera[0m[38;5;12m (https://github.com/DRFR0ST/react-littera) - lightweight library for robust translations using hooks. Some of the key features are dynamic templates, missing reports, auto-locale detection and more[39m
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mtalkr[0m[38;5;12m [39m[38;5;12m(https://github.com/DoneDeal0/Talkr)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mlightest[39m[38;5;12m [39m[38;5;12mi18n[39m[38;5;12m [39m[38;5;12mprovider[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mReact[39m[38;5;12m [39m[38;5;12mapplications[39m[38;5;12m [39m[38;5;12m(<[39m[38;5;12m [39m[38;5;12m1kb).[39m[38;5;12m [39m[38;5;12mSupports[39m[38;5;12m [39m[38;5;12mTypescript,[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12msmart[39m[38;5;12m [39m[38;5;12mautocompletion[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mown[39m[38;5;12m [39m[38;5;12mjson[39m[38;5;12m [39m[38;5;12mtranslation[39m[38;5;12m [39m[38;5;12mfiles,[39m[38;5;12m [39m[38;5;12mhandles[39m[38;5;12m [39m[38;5;12mcomplex[39m[38;5;12m [39m[38;5;12mplural[39m[38;5;12m [39m[38;5;12mrules,[39m[38;5;12m [39m[38;5;12m0[39m[38;5;12m [39m
[38;5;12mdependencies.[39m


[38;2;255;187;0m[4mVueJS[0m

[38;5;12m- [39m[38;5;14m[1mvue i18n[0m[38;5;12m (https://kazupon.github.io/vue-i18n/) - vue i18n is internationalization plugin for Vue.js[39m
[38;5;12m- [39m[38;5;14m[1msweet-i18n[0m[38;5;12m (https://github.com/wood3n/sweet-i18n) - automatic extraction and conversion of Chinese characters in Vue and JS files based on Babel[39m

[38;2;255;187;0m[4mAngular[0m

[38;5;12m- [39m[38;5;14m[1mNGX Translate[0m[38;5;12m (http://www.ngx-translate.com) - translation library for Angular[39m

[38;2;255;187;0m[4mSvelte[0m

[38;5;12m- [39m[38;5;14m[1msvelte-i18n[0m[38;5;12m (https://github.com/kaisermann/svelte-i18n) - internationalization for Svelte[39m

[38;2;255;187;0m[4mQuasar.dev[0m

[38;5;12m- [39m[38;5;14m[1mQuasar i18n[0m[38;5;12m (https://quasar.dev/options/app-internationalization) - official Quasar framework document page about internationalization[39m

[38;2;255;187;0m[4mJava [0m

[38;5;12m- [39m[38;5;14m[1mThymeleaf[0m[38;5;12m (https://www.thymeleaf.org) - modern server-side Java template engine for both web and standalone environments[39m
[38;5;12m- [39m[38;5;14m[1mThymeleaf i18n docs[0m[38;5;12m (https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#using-texts) - How to use [39m[48;5;235m[38;5;249mth:texts[49m[39m[38;5;12m for translations[39m
[38;5;12m- [39m[38;5;14m[1mSpring Messages[0m[38;5;12m (https://www.baeldung.com/spring-boot-internationalization) - Spring Boot internationalization. LocaleResolver & LocaleChangeInterceptor example usage[39m
[38;5;12m- [39m[38;5;14m[1mSpring Boot localization[0m[38;5;12m (https://www.baeldung.com/spring-boot-internationalization) - Baeldun post about using Spring Messages[39m
[38;5;12m- [39m[38;5;14m[1mi18n in Spring Boot[0m[38;5;12m (https://stackoverflow.com/questions/36531131/i18n-in-spring-boot-thymeleaf) - Stackoverflow thread about i18n in Spring Boot[39m
[38;5;12m- [39m[38;5;14m[1mJava Time Classes[0m[38;5;12m (https://stackoverflow.com/questions/5175728/how-to-get-the-current-date-time-in-java/5175900) - Stackoverflow thread about time and timezones in Java.[39m


[38;5;12m![39m[38;5;14m[1mJava time classes[0m[38;5;12m (https://i.stack.imgur.com/MZe55.png)[39m

[38;2;255;187;0m[4mJekyll[0m

[38;5;12m- [39m[38;5;14m[1mjekyll-multiple-languages-plugin[0m[38;5;12m (https://github.com/kurtsson/jekyll-multiple-languages-plugin) - Jekyll Multiple Languages is an internationalization plugin for Jekyll.[39m
[38;5;12m- [39m[38;5;14m[1mjekyll-i18n[0m[38;5;12m (https://github.com/liamzebedee/jekyll-i18n) - Jekyll i18n is a plugin that enables simplistic multi-language site designs using Jekyll. (not maintained)[39m

[38;2;255;187;0m[4mSwift (iOS & macOS)[0m

[38;5;12m- [39m[38;5;14m[1mSwiftGoogleTranslate[0m[38;5;12m (https://github.com/maximbilan/SwiftGoogleTranslate) - framework to use cloud translation API by Google in Swift[39m

[38;2;255;187;0m[4mRuby[0m

[38;5;12m- [39m[38;5;14m[1mTwitter/CLDR[0m[38;5;12m (https://github.com/twitter/twitter-cldr-rb) - implementation of the ICU that uses the Common Locale Data Repository to format dates, plurals[39m
[38;5;12m- [39m[38;5;14m[1mRuby i18n[0m[38;5;12m (https://guides.rubyonrails.org/i18n.html) - official internationalization API document page[39m

[38;2;255;187;0m[4mPython[0m

[38;5;12m- [39m[38;5;14m[1mPython-i18n[0m[38;5;12m (https://pypi.org/project/python-i18n/) - internationalization package[39m
[38;5;12m- [39m[38;5;14m[1mdeep-translator[0m[38;5;12m (https://github.com/nidhaloff/deep-translator) - library to translate between different languages in a simple way using multiple translators[39m


[38;2;255;187;0m[4m🔦 Message and key extraction[0m

[38;5;12mTools used to search translation key usage in project files. Usually they extract translation keys to some file which can be imported later to [39m[38;5;14m[1mtranslation management system[0m[38;5;12m (#-translation-management-systems)[39m

[38;5;12m- [39m[38;5;14m[1mFormatJS CLI[0m[38;5;12m (https://formatjs.io/docs/tooling/cli/) - extract messages from project with FormatJS library[39m
[38;5;12m- [39m[38;5;14m[1msimplelocalize-cli[0m[38;5;12m (https://simplelocalize.io/docs/cli/i18n-keys-extraction/) - extract translation keys and messages from various different libraries[39m
[38;5;12m- [39m[38;5;14m[1mIntelliJ plugin for extracting i18n keys[0m[38;5;12m (https://github.com/nyavro/i18nPlugin) - IntelliJ IDEA plugin for extracing i18n keys[39m



[38;2;255;187;0m[4m🖥 Desktop apps for translation management[0m

[38;5;12m- [39m[38;5;14m[1mArgos Translate[0m[38;5;12m (https://github.com/argosopentech/argos-translate) - open source offline translation app based on OpenNMT[39m
[38;5;12m- [39m[38;5;14m[1mGNU gettext[0m[38;5;12m (http://www.gnu.org/software/gettext) - tool for adding native language support to applications[39m
[38;5;12m- [39m[38;5;14m[1mRTranslator[0m[38;5;12m (https://github.com/niedev/RTranslator) - simultaneous translator app for Android based on Google's API[39m
[38;5;12m- [39m[38;5;14m[1mCrow Translate[0m[38;5;12m (https://github.com/crow-translate/crow-translate) - lightweight desktop translator, uses Google, Yandex and Bing translate API.[39m
[38;5;12m- [39m[38;5;14m[1mCopy Translator[0m[38;5;12m (https://github.com/CopyTranslator/CopyTranslator) - cross-platform app that automatically translate texts when copied in the clipboard[39m
[38;5;12m- [39m[38;5;14m[1mElectronJS i18n[0m[38;5;12m (https://www.electronjs.org/apps/i18n-manager) - cross-platform i18n manager[39m
[38;5;12m- [39m[38;5;14m[1mOmegaT[0m[38;5;12m (https://omegat.org) - free translation memory application that works on all popular operating systems[39m
[38;5;12m- [39m[38;5;14m[1mLibreTranslate[0m[38;5;12m (https://github.com/uav4geo/LibreTranslate) - self-hosted web application to translate texts[39m
[38;5;12m- [39m[38;5;14m[1mPOEditor[0m[38;5;12m (https://poeditor.com) - tool for managing PO language files[39m
[38;5;12m- [39m[38;5;14m[1mFink[0m[38;5;12m (https://inlang.com/m/tdozzpar/app-inlang-editor) - git-based editor in the browser that connects to your repo[39m


[38;2;255;187;0m[4m📅 Utility libraries[0m

[38;5;12m- [39m[38;5;14m[1mLuxon[0m[38;5;12m (https://moment.github.io/luxon/) - powerful, modern, and friendly wrapper for JavaScript dates and times (replaces momentjs)[39m
[38;5;12m- [39m[38;5;14m[1mdate-fns[0m[38;5;12m (https://date-fns.org) - JS library for dates[39m
[38;5;12m- [39m[38;5;14m[1mfakenumber.org[0m[38;5;12m (https://fakenumber.org) - fake phone number generator[39m
[38;5;12m- [39m[38;5;14m[1mgooglei18n/libphonenumber[0m[38;5;12m (https://github.com/googlei18n/libphonenumber) - Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers[39m
[38;5;12m- [39m[38;5;14m[1mintl-tel-input.com[0m[38;5;12m (https://intl-tel-input.com/) - JS library for entering and validating international phone numbers[39m

[38;2;255;187;0m[4m📚 Resources[0m

[38;5;12m- [39m[38;5;14m[1mStackoverflow: Localization vs Internationalization[0m[38;5;12m (https://stackoverflow.com/questions/506743/localization-and-internationalization-whats-the-difference) - Localization and internationalization, what's the difference?[39m
[38;5;12m- [39m[38;5;14m[1mStackoverflow: Daylight saving time and time-zone best practices[0m[38;5;12m (http://stackoverflow.com/questions/2532729/daylight-saving-time-and-time-zone-best-practices)[39m
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mBlog[0m[38;5;14m[1m [0m[38;5;14m[1mpost:[0m[38;5;14m[1m [0m[38;5;14m[1mTop[0m[38;5;14m[1m [0m[38;5;14m[1m12[0m[38;5;14m[1m [0m[38;5;14m[1mlibraries[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mReact[0m[38;5;14m[1m [0m[38;5;14m[1mlocalization[0m[38;5;12m [39m[38;5;12m(https://dev.to/jpomykala/top-12-libraries-for-nextjs-react-apps-and-react-native-apps-for-i18n-and-react-localization-5fi8)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mBlog[39m[38;5;12m [39m[38;5;12mpost[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mdev.to[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mtop[39m[38;5;12m [39m[38;5;12m12[39m[38;5;12m [39m[38;5;12mlibraries[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mreact[39m[38;5;12m [39m
[38;5;12mlocalization[39m
[38;5;12m- [39m[38;5;14m[1mBlog post: Building a minimal i18n library[0m[38;5;12m (https://janmonschke.com/building-a-minimal-i18n-library)[39m
[38;5;12m- [39m[38;5;14m[1mBlog post: Generating images with multi-language texts[0m[38;5;12m (https://bannerly.io/blog/posts/multi-language-image-variants/) - article about images localization and i18n in blog post banners[39m
[38;5;12m- [39m[38;5;14m[1mBlog post: Language vs Locale[0m[38;5;12m (https://simplelocalize.io/blog/posts/language-vs-locale/) - what is the difference between language and locale[39m
[38;5;12m- [39m[38;5;14m[1mBlog post: Development/Production parity for Rails i18n[0m[38;5;12m (https://withatwist.dev/the-12-factor-app-dev-and-prod-parity.html) - blog post with a warning on using different i18n backends in development/production[39m
[38;5;12m- [39m[38;5;14m[1mBlog post: What is 'hreflang' attribute[0m[38;5;12m (https://simplelocalize.io/blog/posts/what-is-hreflang/) - hreflang FAQ and explanation how to use it and why it is important for SEO[39m
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mBlog[0m[38;5;14m[1m [0m[38;5;14m[1mpost:[0m[38;5;14m[1m [0m[38;5;14m[1mi18n[0m[38;5;14m[1m [0m[38;5;14m[1mwith[0m[38;5;14m[1m [0m[38;5;14m[1mReact[0m[38;5;14m[1m [0m[38;5;14m[1mIntl[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mSimpleLocalize[0m[38;5;12m [39m[38;5;12m(https://dujushi.github.io/2021/04/14/i18n-with-react-intl-and-simple-localize.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12marticle[39m[38;5;12m [39m[38;5;12mdemonstrates[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mset[39m[38;5;12m [39m[38;5;12mup[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmanage[39m[38;5;12m [39m[38;5;12mtranslations[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mautogenerated[39m[38;5;12m [39m[38;5;12mtranslation[39m[38;5;12m [39m[38;5;12mkeys[39m[38;5;12m [39m
[38;5;12mwith[39m[38;5;12m [39m[38;5;12mFormatJS[39m
[38;5;12m- [39m[38;5;14m[1mGithub: FormatJS example project[0m[38;5;12m (https://github.com/simplelocalize/simplelocalize-react-intl) - example project built with React-intl and React[39m
[38;5;12m- [39m[38;5;14m[1mGithub: i18next example project[0m[38;5;12m (https://github.com/simplelocalize/simplelocalize-i18next) - example project built with i18next and React[39m
[38;5;12m- [39m[38;5;14m[1mGuide: Google Developers - Internationalization[0m[38;5;12m (https://developers.google.com/international/) - official Google document page[39m
[38;5;12m- [39m[38;5;14m[1mGuide: Angular i18n[0m[38;5;12m (https://angular.io/guide/i18n) - official Angular i18n document page[39m
[38;5;12m- [39m[38;5;14m[1mGuide: W3C i18n standards[0m[38;5;12m (http://www.w3.org/standards/webdesign/i18n)[39m
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mGuide:[0m[38;5;14m[1m [0m[38;5;14m[1mCommon[0m[38;5;14m[1m [0m[38;5;14m[1mLanguage[0m[38;5;14m[1m [0m[38;5;14m[1mData[0m[38;5;14m[1m [0m[38;5;14m[1mRepository[0m[38;5;12m [39m[38;5;12m(http://cldr.unicode.org/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mUnicode[39m[38;5;12m [39m[38;5;12mCLDR[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12mkey[39m[38;5;12m [39m[38;5;12mbuilding[39m[38;5;12m [39m[38;5;12mblocks[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12msoftware[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msupport[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mworld's[39m[38;5;12m [39m[38;5;12mlanguages,[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlargest[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmost[39m[38;5;12m [39m[38;5;12mextensive[39m[38;5;12m [39m[38;5;12mstandard[39m[38;5;12m [39m[38;5;12mrepository[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mlocale[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m
[38;5;12mavailable[39m
[38;5;12m- [39m[38;5;14m[1mICU: International Components for Unicode[0m[38;5;12m (http://site.icu-project.org/) - ICU is a mature and widely used providing Unicode and Globalization support for software applications[39m
[38;5;12m- [39m[38;5;14m[1mExtract messages and translation keys from project files[0m[38;5;12m (https://simplelocalize.io/docs/cli/i18n-keys-extraction/) - extracting translation keys from project files. JavaScript, Android, iOS/macOS[39m


[38;2;255;187;0m[4m💭 Community tips & tricks[0m

[38;5;12m- 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.[39m
[38;5;12m-[39m[38;5;12m [39m[38;5;12mRussian[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mGerman[39m[38;5;12m [39m[38;5;12mtend[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhave[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlongest[39m[38;5;12m [39m[38;5;12mtranslations,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlongest[39m[38;5;12m [39m[38;5;12mwords.[39m[38;5;12m [39m[38;5;12mGet[39m[38;5;12m [39m[38;5;12mfamiliar[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mshy-hyphen[39m[38;5;12m [39m[48;5;235m[38;5;249m&shy;[49m[39m[38;5;12m [39m[38;5;12mcharacter.[39m[38;5;12m [39m[38;5;12mYou[39m[38;5;12m [39m[38;5;12mput[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mword's[39m[38;5;12m [39m[38;5;12mhtml[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mwill[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12mbreak[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mword/show[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mhyphen[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12mnecessary.[39m[38;5;12m [39m[38;5;12mGoogle[39m[38;5;12m [39m
[38;5;12m“online[39m[38;5;12m [39m[38;5;12mhyphenation[39m[38;5;12m [39m[38;5;12mtool”[39m[38;5;12m [39m[38;5;12mso[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mknow[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mappropriate[39m[38;5;12m [39m[38;5;12mplaces[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbreak[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mword.[39m
[38;5;12m- You need to translate numbers with decimals and commas because they are reversed in some languages (period appears as a comma, comma as a period).[39m
[38;5;12m- 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.[39m
[38;5;12m- Greek question marks look like a semicolon.[39m
[38;5;12m- Always keep datetimes in database in UTC. Always return datatimes from backend in UTC. Adjust datetimes on UI layer using timezone information from user or web browser. Accept datetimes in backend with any timezone.[39m

[38;2;255;187;0m[4m🦾 Automated translation[0m

[38;5;12m- [39m[38;5;14m[1mGengo[0m[38;5;12m (http://gengo.com) - translation is made by real people but you can make an order using API[39m
[38;5;12m- [39m[38;5;14m[1mGoogle Translate[0m[38;5;12m (https://translate.google.com)[39m
[38;5;12m- [39m[38;5;14m[1mMicrosoft Translator[0m[38;5;12m (https://www.microsoft.com/en-GB/translator/)[39m
[38;5;12m- [39m[38;5;14m[1mDeepL[0m[38;5;12m (https://deepl.com)[39m


[38;2;255;187;0m[4m🍿 Videos[0m

[38;2;255;187;0m[4mInternationalis(z)ing Code - Computerphile[0m

[38;5;12m![39m[38;5;14m[1myoutube computerphile about internationalization[0m[38;5;12m (youtube-computerphile-internationalization.png)[39m

[38;5;12mLink: https://www.youtube.com/watch?v=0j74jcxSunY[39m

[38;2;255;187;0m[4mThe Problem with Time & Timezones - Computerphile[0m

[38;5;12m![39m[38;5;14m[1myoutube computerphile about timezones[0m[38;5;12m (youtube-computerphile-timezones.png)[39m

[38;5;12mLink: https://www.youtube.com/watch?v=-5wpm-gesOY[39m


[38;2;255;187;0m[4m📢 Contribute[0m

[38;5;12mFeel free to add or update the content![39m
