Update render script and Makefile
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
[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;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
|
||||
|
||||
@@ -84,12 +84,12 @@
|
||||
[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;12m [39m[38;5;14m[1mreact-translate-component[0m[38;5;12m [39m[38;5;12m(https://github.com/martinandert/react-translate-component)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mcomponent[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mReact[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mutilizes[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mCounterpart[39m[38;5;12m [39m[38;5;12mmodule[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mInterpolate[39m[38;5;12m [39m[38;5;12mcomponent[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m[38;5;12mmulti-lingual/localized[39m
|
||||
[38;5;12mtext[39m[38;5;12m [39m[38;5;12mcontent[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mreact-littera[0m[38;5;12m [39m[38;5;12m(https://github.com/DRFR0ST/react-littera)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mlightweight[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mrobust[39m[38;5;12m [39m[38;5;12mtranslations[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mhooks.[39m[38;5;12m [39m[38;5;12mSome[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mkey[39m[38;5;12m [39m[38;5;12mfeatures[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mdynamic[39m[38;5;12m [39m[38;5;12mtemplates,[39m[38;5;12m [39m[38;5;12mmissing[39m[38;5;12m [39m[38;5;12mreports,[39m[38;5;12m [39m[38;5;12mauto-locale[39m[38;5;12m [39m[38;5;12mdetection[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||||
[38;5;12mmore[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;5;12m-[39m[38;5;12m [39m[38;5;14m[1mreact-translate-component[0m[38;5;12m [39m[38;5;12m(https://github.com/martinandert/react-translate-component)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mcomponent[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mReact[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mutilizes[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mCounterpart[39m[38;5;12m [39m[38;5;12mmodule[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mInterpolate[39m[38;5;12m [39m[38;5;12mcomponent[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprovide[39m[38;5;12m [39m
|
||||
[38;5;12mmulti-lingual/localized[39m[38;5;12m [39m[38;5;12mtext[39m[38;5;12m [39m[38;5;12mcontent[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mreact-littera[0m[38;5;12m [39m[38;5;12m(https://github.com/DRFR0ST/react-littera)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mlightweight[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mrobust[39m[38;5;12m [39m[38;5;12mtranslations[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mhooks.[39m[38;5;12m [39m[38;5;12mSome[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mkey[39m[38;5;12m [39m[38;5;12mfeatures[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mdynamic[39m[38;5;12m [39m[38;5;12mtemplates,[39m[38;5;12m [39m[38;5;12mmissing[39m[38;5;12m [39m[38;5;12mreports,[39m[38;5;12m [39m
|
||||
[38;5;12mauto-locale[39m[38;5;12m [39m[38;5;12mdetection[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmore[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
|
||||
@@ -143,7 +143,8 @@
|
||||
|
||||
[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;12mTools[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msearch[39m[38;5;12m [39m[38;5;12mtranslation[39m[38;5;12m [39m[38;5;12mkey[39m[38;5;12m [39m[38;5;12musage[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mproject[39m[38;5;12m [39m[38;5;12mfiles.[39m[38;5;12m [39m[38;5;12mUsually[39m[38;5;12m [39m[38;5;12mthey[39m[38;5;12m [39m[38;5;12mextract[39m[38;5;12m [39m[38;5;12mtranslation[39m[38;5;12m [39m[38;5;12mkeys[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12msome[39m[38;5;12m [39m[38;5;12mfile[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mimported[39m[38;5;12m [39m[38;5;12mlater[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;14m[1mtranslation[0m[38;5;14m[1m [0m[38;5;14m[1mmanagement[0m[38;5;14m[1m [0m[38;5;14m[1msystem[0m[38;5;12m [39m
|
||||
[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
|
||||
@@ -170,44 +171,47 @@
|
||||
[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;12m [39m[38;5;14m[1mgooglei18n/libphonenumber[0m[38;5;12m [39m[38;5;12m(https://github.com/googlei18n/libphonenumber)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mGoogle's[39m[38;5;12m [39m[38;5;12mcommon[39m[38;5;12m [39m[38;5;12mJava,[39m[38;5;12m [39m[38;5;12mC++[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mJavaScript[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mparsing,[39m[38;5;12m [39m[38;5;12mformatting,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mvalidating[39m[38;5;12m [39m[38;5;12minternational[39m[38;5;12m [39m[38;5;12mphone[39m[38;5;12m [39m
|
||||
[38;5;12mnumbers[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;12m [39m[38;5;14m[1mStackoverflow:[0m[38;5;14m[1m [0m[38;5;14m[1mLocalization[0m[38;5;14m[1m [0m[38;5;14m[1mvs[0m[38;5;14m[1m [0m[38;5;14m[1mInternationalization[0m[38;5;12m [39m[38;5;12m(https://stackoverflow.com/questions/506743/localization-and-internationalization-whats-the-difference)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mLocalization[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12minternationalization,[39m[38;5;12m [39m[38;5;12mwhat's[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m
|
||||
[38;5;12mdifference?[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mStackoverflow:[0m[38;5;14m[1m [0m[38;5;14m[1mLocalization[0m[38;5;14m[1m [0m[38;5;14m[1mvs[0m[38;5;14m[1m [0m[38;5;14m[1mInternationalization[0m[38;5;12m [39m[38;5;12m(https://stackoverflow.com/questions/506743/localization-and-internationalization-whats-the-difference)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mLocalization[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m
|
||||
[38;5;12minternationalization,[39m[38;5;12m [39m[38;5;12mwhat's[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mdifference?[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;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;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[1mDevelopment/Production[0m[38;5;14m[1m [0m[38;5;14m[1mparity[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mRails[0m[38;5;14m[1m [0m[38;5;14m[1mi18n[0m[38;5;12m [39m[38;5;12m(https://withatwist.dev/the-12-factor-app-dev-and-prod-parity.html)[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;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mwarning[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mdifferent[39m[38;5;12m [39m[38;5;12mi18n[39m[38;5;12m [39m[38;5;12mbackends[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m
|
||||
[38;5;12mdevelopment/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;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;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;5;12m-[39m[38;5;12m [39m[38;5;14m[1mExtract[0m[38;5;14m[1m [0m[38;5;14m[1mmessages[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mtranslation[0m[38;5;14m[1m [0m[38;5;14m[1mkeys[0m[38;5;14m[1m [0m[38;5;14m[1mfrom[0m[38;5;14m[1m [0m[38;5;14m[1mproject[0m[38;5;14m[1m [0m[38;5;14m[1mfiles[0m[38;5;12m [39m[38;5;12m(https://simplelocalize.io/docs/cli/i18n-keys-extraction/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mextracting[39m[38;5;12m [39m[38;5;12mtranslation[39m[38;5;12m [39m[38;5;12mkeys[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mproject[39m[38;5;12m [39m[38;5;12mfiles.[39m[38;5;12m [39m[38;5;12mJavaScript,[39m[38;5;12m [39m[38;5;12mAndroid,[39m[38;5;12m [39m
|
||||
[38;5;12miOS/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­[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-[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­[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-[39m[38;5;12m [39m[38;5;12mAlways[39m[38;5;12m [39m[38;5;12mkeep[39m[38;5;12m [39m[38;5;12mdatetimes[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mdatabase[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mUTC.[39m[38;5;12m [39m[38;5;12mAlways[39m[38;5;12m [39m[38;5;12mreturn[39m[38;5;12m [39m[38;5;12mdatatimes[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mbackend[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mUTC.[39m[38;5;12m [39m[38;5;12mAdjust[39m[38;5;12m [39m[38;5;12mdatetimes[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mUI[39m[38;5;12m [39m[38;5;12mlayer[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mtimezone[39m[38;5;12m [39m[38;5;12minformation[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mweb[39m[38;5;12m [39m[38;5;12mbrowser.[39m[38;5;12m [39m[38;5;12mAccept[39m[38;5;12m [39m[38;5;12mdatetimes[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mbackend[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m
|
||||
[38;5;12mtimezone.[39m
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;12mAlways[39m[38;5;12m [39m[38;5;12mkeep[39m[38;5;12m [39m[38;5;12mdatetimes[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mdatabase[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mUTC.[39m[38;5;12m [39m[38;5;12mAlways[39m[38;5;12m [39m[38;5;12mreturn[39m[38;5;12m [39m[38;5;12mdatatimes[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mbackend[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mUTC.[39m[38;5;12m [39m[38;5;12mAdjust[39m[38;5;12m [39m[38;5;12mdatetimes[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mUI[39m[38;5;12m [39m[38;5;12mlayer[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mtimezone[39m[38;5;12m [39m[38;5;12minformation[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mweb[39m[38;5;12m [39m[38;5;12mbrowser.[39m[38;5;12m [39m[38;5;12mAccept[39m[38;5;12m [39m[38;5;12mdatetimes[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m
|
||||
[38;5;12mbackend[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12mtimezone.[39m
|
||||
|
||||
[38;2;255;187;0m[4m🦾 Automated translation[0m
|
||||
|
||||
|
||||
Reference in New Issue
Block a user