Developer Resources: Difference between revisions
No edit summary |
No edit summary |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 9: | Line 9: | ||
=Communications= | =Communications= | ||
==I18n | ==I18n and L10n Mailing Lists== | ||
'''[https://groups.google.com/d/forum/otfl10n Localization Lab Discussion Forum]:''' Discussion Forum for all Localization Lab stakeholders including developers, volunteer contributors & partner organizations.<br> | '''[https://groups.google.com/d/forum/otfl10n Localization Lab Discussion Forum]:''' Discussion Forum for all Localization Lab stakeholders including developers, volunteer contributors & partner organizations.<br> | ||
Line 15: | Line 15: | ||
==Mattermost== | ==Mattermost== | ||
The Localization Lab Mattermost channel and Localization Lab language-focused channels are hosted on the [https://internetfreedomfestival.org/ | The Localization Lab Mattermost channel and Localization Lab language-focused channels are hosted on the [https://internetfreedomfestival.org/ Team CommUNITY] Mattermost instance and are subject to their [https://www.internetfreedomfestival.org/wiki/index.php/Code_of_Conduct Code of Conduct]. To join Mattermost, follow the instructions on the [https://wiki.digitalrights.community/index.php?title=TCU_Mattermost Team CommUNITY wiki] and indicate that you are joining as a member of the Localization Lab community. Once you have created a Mattermost account, you can join the [https://community.internetfreedomfestival.org/community/channels/localization-lab-chat Localization Lab main channel] and any language team channels. | ||
=General Guides | =General Guides and Tips= | ||
==Quick Tips and Best Practices== | ==Quick Tips and Best Practices== | ||
[https:// | [https://mozilla-l10n.github.io/documentation/localization/dev_best_practices.html Mozilla Localization Best Practices] | ||
[https://www.smashingmagazine.com/2012/07/12-commandments-software-localization/ 12 Commandments Of Software Localization] - TLDR: | [https://www.smashingmagazine.com/2012/07/12-commandments-software-localization/ 12 Commandments Of Software Localization] - TLDR: Don’t concatenate strings! (and more) | ||
[https://www.w3.org/International/quicktips/ WC3 I18n Quick Tips] | [https://www.w3.org/International/quicktips/ WC3 I18n Quick Tips] | ||
Line 28: | Line 28: | ||
==Guides== | ==Guides== | ||
[http://docs.translatehouse.org/projects/localization-guide/en/latest/guide/start.html TranslateHouse Localisation Guide] | |||
[https://www.transifex.com/blog/2015/software-localization-guide/ Localization 101: A Beginner’s Guide to Software Localization] | [https://www.transifex.com/blog/2015/software-localization-guide/ Localization 101: A Beginner’s Guide to Software Localization] | ||
Line 37: | Line 39: | ||
[https://www.w3.org/International/getting-started/ WC3 Internationalization Website] | [https://www.w3.org/International/getting-started/ WC3 Internationalization Website] | ||
=Documentation= | |||
[https://angular.io/guide/i18n AngularJS Internationalization Guide] | |||
=CLDR= | =CLDR= | ||
Unicode Consortium [http://cldr.unicode.org/ Common Locale Data Repository]<br> | Unicode Consortium [http://cldr.unicode.org/ Common Locale Data Repository]<br> | ||
[https://www.unicode.org/cldr/charts/latest/supplemental/language_matching.html Language Matching]: | [https://www.unicode.org/cldr/charts/latest/supplemental/language_matching.html Language Matching]: “Language Matching data is used to match the user’s desired language/locales against an application’s supported languages/locales.”<br> | ||
[https://unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html Language Plural Rules]<br> | [https://unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html Language Plural Rules]<br> | ||
[http://cldr.unicode.org/index/language-support-levels Language Support Levels] | [http://cldr.unicode.org/index/language-support-levels Language Support Levels] | ||
Line 54: | Line 59: | ||
==[[Language Support by Platform]]== | ==[[Language Support by Platform]]== | ||
=Android= | ==Android== | ||
==Language / Locale Preferences | ===Language / Locale Preferences and Resolution=== | ||
[https://developer.android.com/guide/topics/resources/multilingual-support Language & Locale Resolution in Android 7.0+] | [https://developer.android.com/guide/topics/resources/multilingual-support Language & Locale Resolution in Android 7.0+] | ||
==Google Play Store== | ===Google Play Store=== | ||
Character Limitations<br> | Character Limitations<br> | ||
*Title: 50 characters | *Title: 50 characters | ||
Line 65: | Line 70: | ||
*Long Description: 4000 characters | *Long Description: 4000 characters | ||
=Miscellaneous= | =Miscellaneous= | ||
[https://softwareengineering.stackexchange.com/questions/190513/how-to-create-an-automated-email-in-several-languages-multipart-alternative How to create a | [https://softwareengineering.stackexchange.com/questions/190513/how-to-create-an-automated-email-in-several-languages-multipart-alternative How to create a multilingual automated email] | ||
[https://github.com/thebachchaoproject/Manual-to-build-tech-for-diversity-and-Inclusion/blob/master/Building%20Tech%20for%20Diversity%20and%20Inclusion%20101%20ver%201.3.pdf Building Tech for Diversity and Inclusion] - ''[http://thebachchaoproject.org/ The Bachchao Project]'' | [https://github.com/thebachchaoproject/Manual-to-build-tech-for-diversity-and-Inclusion/blob/master/Building%20Tech%20for%20Diversity%20and%20Inclusion%20101%20ver%201.3.pdf Building Tech for Diversity and Inclusion] - ''[http://thebachchaoproject.org/ The Bachchao Project]'' | ||
Line 72: | Line 77: | ||
=Language-Specific Resources= | =Language-Specific Resources= | ||
==Bidirectional and RTL | ==Bidirectional and RTL Language Support== | ||
[https://material.io/design/usability/bidirectionality.html# Bidirectionality] - Material.io | [https://material.io/design/usability/bidirectionality.html# Bidirectionality] - Material.io | ||
:Tips for mirroring display and icons for RTL languages.<br> | :Tips for mirroring display and icons for RTL languages.<br> | ||
Line 79: | Line 84: | ||
[https://hacks.mozilla.org/2015/10/building-rtl-aware-web-apps-websites-part-2/ Building RTL-Aware Web Apps & Websites: Part 2]<br> | [https://hacks.mozilla.org/2015/10/building-rtl-aware-web-apps-websites-part-2/ Building RTL-Aware Web Apps & Websites: Part 2]<br> | ||
[https://medium.muz.li/web-design-for-right-to-left-languages-the-basics-287329d508cf Web Design For Right-to-Left Languages: the Basics]<br> | [https://medium.muz.li/web-design-for-right-to-left-languages-the-basics-287329d508cf Web Design For Right-to-Left Languages: the Basics]<br> | ||
[https://rtl-css.net/ RTL CSS: | [https://rtl-css.net/ RTL CSS: Flipping the Web]<br> | ||
[https://rtlstyling.com/ RTL Styling 101]<br> | |||
:An extensive guide on how to style for RTL in CSS<br> | |||
[https://rtl.wtf/ RTL.WTF] | |||
:Wealth of RTL resources including and [https://rtl.wtf/explained/bidiintro.html intro to the bidirectional algorithm].<br> | |||
[http://bit.ly/rtl-ltr-rc Designing for language accessibility: making usable technologies for non-left-to-right languages]<br> | |||
:Slides from the 2021 RightsCon “Designing for language accessibility: making usable technologies for non-left-to-right languages” session.<br> | |||
[https://hrcd.pubpub.org/pub/rtlusability/release/3 Disoriented Scripts and the Text Direction Problem on the Web]<br> | |||
:Overview of RTL design considerations from a [https://hrcd.pubpub.org/ Human Rights Centered Design] community call in 2020. | |||
==Burmese== | ==Burmese== | ||
[https://www.globalapptesting.com/blog/zawgyi-vs-unicode Zawgyi vs. Unicode] - Context and suggestions for making tools available for non-Unicode Burmese fonts. | [https://www.globalapptesting.com/blog/zawgyi-vs-unicode Zawgyi vs. Unicode] - Context and suggestions for making tools available for non-Unicode Burmese fonts.<br> | ||
[https://github.com/topics/myanmar-zawgyi-to-unicode-converter Zawgyi to Unicode Font Converter] |
Latest revision as of 18:30, 4 January 2024
Getting Started in the Localization Lab Hub
Review the Localization Lab Roles and Guidelines: The Localization Lab Roles and Guidelines will help you understand community expectations for developers, translators, reviewers and language coordinators and how you can most effectively support Localization Lab contributors.
Familiarize yourself with Transifex: On the Translation Tools page of the wiki, you will find resources for how to get started as a developer in Transifex, including how to use the Transifex API and Git integration.
Familiarize yourself with Weblate: If you will be hosting your project on Hosted Weblate or your own Weblate instance, take a look at the Getting Started resources for Weblate.
Communications
I18n and L10n Mailing Lists
Localization Lab Discussion Forum: Discussion Forum for all Localization Lab stakeholders including developers, volunteer contributors & partner organizations.
Linguine Mailing List: Mailing list for developers of open source technologies focused on digital security and circumvention.
Mattermost
The Localization Lab Mattermost channel and Localization Lab language-focused channels are hosted on the Team CommUNITY Mattermost instance and are subject to their Code of Conduct. To join Mattermost, follow the instructions on the Team CommUNITY wiki and indicate that you are joining as a member of the Localization Lab community. Once you have created a Mattermost account, you can join the Localization Lab main channel and any language team channels.
General Guides and Tips
Quick Tips and Best Practices
Mozilla Localization Best Practices
12 Commandments Of Software Localization - TLDR: Don’t concatenate strings! (and more)
Guides
TranslateHouse Localisation Guide
Localization 101: A Beginner’s Guide to Software Localization
The Simple Guide to Localization and Internationalization Testing
Internationalization Getting Started
Microsoft Globalization Documentation
WC3 Internationalization Website
Documentation
AngularJS Internationalization Guide
CLDR
Unicode Consortium Common Locale Data Repository
Language Matching: “Language Matching data is used to match the user’s desired language/locales against an application’s supported languages/locales.”
Language Plural Rules
Language Support Levels
Language Codes and Locales
Language Endonyms - Language names in their own language
Why does choosing the appropriate language codes and locales matter within the translation tool?
- Glossaries and Translation Memory are only shared across the same language code and locale.
- Ex: hi (Hindi) and hi_IN (Hindi (India) will not share a glossary or translation memory.
Language Support by Platform
Android
Language / Locale Preferences and Resolution
Language & Locale Resolution in Android 7.0+
Google Play Store
Character Limitations
- Title: 50 characters
- Short Description: 80 characters
- Long Description: 4000 characters
Miscellaneous
How to create a multilingual automated email
Building Tech for Diversity and Inclusion - The Bachchao Project
Language-Specific Resources
Bidirectional and RTL Language Support
Bidirectionality - Material.io
- Tips for mirroring display and icons for RTL languages.
Firefox OS in Arabic
Building RTL-Aware Web Apps & Websites: Part 1
Building RTL-Aware Web Apps & Websites: Part 2
Web Design For Right-to-Left Languages: the Basics
RTL CSS: Flipping the Web
RTL Styling 101
- An extensive guide on how to style for RTL in CSS
- Wealth of RTL resources including and intro to the bidirectional algorithm.
Designing for language accessibility: making usable technologies for non-left-to-right languages
- Slides from the 2021 RightsCon “Designing for language accessibility: making usable technologies for non-left-to-right languages” session.
Disoriented Scripts and the Text Direction Problem on the Web
- Overview of RTL design considerations from a Human Rights Centered Design community call in 2020.
Burmese
Zawgyi vs. Unicode - Context and suggestions for making tools available for non-Unicode Burmese fonts.
Zawgyi to Unicode Font Converter