react-translate-component
- component for React that utilizes the Counterpart module and the
Interpolate component to provide multi-lingual/localized text
content
react-littera
- lightweight library for robust translations using hooks. Some of the
key features are dynamic templates, missing reports, auto-locale
detection and more
talkr - lightest
i18n provider for React applications (< 1kb). Supports Typescript,
provides smart autocompletion based on your own json translation files,
handles complex plural rules, 0 dependencies.
VueJS
vue i18n - vue
i18n is internationalization plugin for Vue.js
sweet-i18n -
automatic extraction and conversion of Chinese characters in Vue and JS
files based on Babel
deep-translator
- library to translate between different languages in a simple way using
multiple translators
🔦 Message and key extraction
Tools used to search translation key usage in project files. Usually
they extract translation keys to some file which can be imported later
to translation management
system
FormatJS CLI -
extract messages from project with FormatJS library
simplelocalize-cli
- extract translation keys and messages from various different
libraries
Guide: Common Language Data
Repository - the Unicode CLDR provides key building blocks for
software to support the world’s languages, with the largest and most
extensive standard repository of locale data available
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 word’s 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 and commas because they
are reversed in some languages (period appears as a comma, comma as a
period).
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.
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.
🦾 Automated translation
Gengo - translation is made by real
people but you can make an order using API