Update render script and Makefile

This commit is contained in:
Jonas Zeunert
2024-04-22 21:54:39 +02:00
parent 2d63fe63cd
commit 4d0cd768f7
10975 changed files with 47095 additions and 4031084 deletions

View File

@@ -1,6 +1,6 @@
!awesome-i18n (./awesome_i18n.png)
 awesome-i18n !Awesome (https://awesome.re/badge.svg) (https://awesome.re)
 awesome-i18n !Awesome (https://awesome.re/badge.svg) (https://awesome.re)
▐ A curated list of i18n tools, i18n libraries, localization software, localization programs and translation management systems.
@@ -84,12 +84,12 @@
- react-persian (https://github.com/evandhq/react-persian) - set of react components for Persian localization
- react-translated (https://github.com/amsul/react-translated) - dead simple way to add complex translations
- react-localize-redux (https://github.com/ryandrewjohnson/react-localize-redux) - localization library for handling translations
- react-translate-component (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
- react-littera (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
- talkr (https://github.com/DoneDeal0/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.
- react-translate-component (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
- react-littera (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
- talkr (https://github.com/DoneDeal0/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
@@ -143,7 +143,8 @@
🔦 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 (#-translation-management-systems)
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 
(#-translation-management-systems)
- FormatJS CLI (https://formatjs.io/docs/tooling/cli/) - extract messages from project with FormatJS library
- simplelocalize-cli (https://simplelocalize.io/docs/cli/i18n-keys-extraction/) - extract translation keys and messages from various different libraries
@@ -170,44 +171,47 @@
- Luxon (https://moment.github.io/luxon/) - powerful, modern, and friendly wrapper for JavaScript dates and times (replaces momentjs)
- date-fns (https://date-fns.org) - JS library for dates
- fakenumber.org (https://fakenumber.org) - fake phone number generator
- googlei18n/libphonenumber (https://github.com/googlei18n/libphonenumber) - Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers
- googlei18n/libphonenumber (https://github.com/googlei18n/libphonenumber) - Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone 
numbers
- intl-tel-input.com (https://intl-tel-input.com/) - JS library for entering and validating international phone numbers
📚 Resources
- Stackoverflow: Localization vs Internationalization (https://stackoverflow.com/questions/506743/localization-and-internationalization-whats-the-difference) - Localization and internationalization, what's the 
difference?
- Stackoverflow: Localization vs Internationalization (https://stackoverflow.com/questions/506743/localization-and-internationalization-whats-the-difference) - Localization and 
internationalization, what's the difference?
- Stackoverflow: Daylight saving time and time-zone best practices (http://stackoverflow.com/questions/2532729/daylight-saving-time-and-time-zone-best-practices)
- Blog post: Top 12 libraries for React localization (https://dev.to/jpomykala/top-12-libraries-for-nextjs-react-apps-and-react-native-apps-for-i18n-and-react-localization-5fi8) - Blog post on dev.to about top 
12 libraries for react localization
- Blog post: Top 12 libraries for React localization (https://dev.to/jpomykala/top-12-libraries-for-nextjs-react-apps-and-react-native-apps-for-i18n-and-react-localization-5fi8) - Blog post 
on dev.to about top 12 libraries for react localization
- Blog post: Building a minimal i18n library (https://janmonschke.com/building-a-minimal-i18n-library)
- Blog post: Generating images with multi-language texts (https://bannerly.io/blog/posts/multi-language-image-variants/) - article about images localization and i18n in blog post banners
- Blog post: Language vs Locale (https://simplelocalize.io/blog/posts/language-vs-locale/) - what is the difference between language and locale
- Blog post: Development/Production parity for Rails i18n (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
- Blog post: Development/Production parity for Rails i18n (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
- Blog post: What is 'hreflang' attribute (https://simplelocalize.io/blog/posts/what-is-hreflang/) - hreflang FAQ and explanation how to use it and why it is important for SEO
- Blog post: i18n with React Intl and SimpleLocalize (https://dujushi.github.io/2021/04/14/i18n-with-react-intl-and-simple-localize.html) - article demonstrates how to set up and manage translations with 
autogenerated translation keys with FormatJS
- Blog post: i18n with React Intl and SimpleLocalize (https://dujushi.github.io/2021/04/14/i18n-with-react-intl-and-simple-localize.html) - article demonstrates how to set up and manage 
translations with autogenerated translation keys with FormatJS
- Github: FormatJS example project (https://github.com/simplelocalize/simplelocalize-react-intl) - example project built with React-intl and React
- Github: i18next example project (https://github.com/simplelocalize/simplelocalize-i18next) - example project built with i18next and React
- Guide: Google Developers - Internationalization (https://developers.google.com/international/) - official Google document page
- Guide: Angular i18n (https://angular.io/guide/i18n) - official Angular i18n document page
- Guide: W3C i18n standards (http://www.w3.org/standards/webdesign/i18n)
- Guide: Common Language Data Repository (http://cldr.unicode.org/) - 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
- Guide: Common Language Data Repository (http://cldr.unicode.org/) - 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
- ICU: International Components for Unicode (http://site.icu-project.org/) - ICU is a mature and widely used providing Unicode and Globalization support for software applications
- Extract messages and translation keys from project files (https://simplelocalize.io/docs/cli/i18n-keys-extraction/) - extracting translation keys from project files. JavaScript, Android, iOS/macOS
- Extract messages and translation keys from project files (https://simplelocalize.io/docs/cli/i18n-keys-extraction/) - extracting translation keys from project files. JavaScript, Android, 
iOS/macOS
💭 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 &shy; 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.
- Russian and German tend to have the longest translations, and the longest words. Get familiar with the shy-hyphen &shy; 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.
- 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