Developer Resources: Difference between revisions

From Localization Lab Wiki
Jump to navigation Jump to search
(→‎Android: Added supported languages for Android)
No edit summary
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__TOC__
__TOC__


=I18n & L10n Resources=
=Getting Started in the Localization Lab Hub=
'''Review the [https://www.localizationlab.org/roles-guidelines 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.


Unicode Consortium [http://cldr.unicode.org/ Common Locale Data Repository]
'''Familiarize yourself with Transifex:''' On the [https://wiki.localizationlab.org/index.php/Translation_Tools#Transifex 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.


==Quick Tips==
'''Familiarize yourself with Weblate:''' If you will be hosting your project on Hosted Weblate or your own Weblate instance, take a look at the [https://wiki.localizationlab.org/index.php/Translation_Tools#Getting_Started_2 Getting Started resources] for Weblate.


[https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_content_best_practices Mozilla Localization Best Practices]
=Communications=
==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://www.smashingmagazine.com/2012/07/12-commandments-software-localization/ 12 Commandments Of Software Localization] - TLDR: Don't concatenate strings! (and more)
'''[https://lists.riseup.net/www/info/linguine 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 [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 and Tips=
==Quick Tips and Best Practices==
[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: 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 15: Line 27:
[https://www.w3.org/TR/xml-i18n-bp/#contents Best Practices for XML I18n]
[https://www.w3.org/TR/xml-i18n-bp/#contents Best Practices for XML I18n]


==General 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 23: Line 36:
[http://www.c-sharpcorner.com/article/internationalization-getting-started/ Internationalization Getting Started]
[http://www.c-sharpcorner.com/article/internationalization-getting-started/ Internationalization Getting Started]


==Broad Resources==
[https://docs.microsoft.com/en-us/globalization/ Microsoft Globalization Documentation]
[https://docs.microsoft.com/en-us/globalization/ Microsoft Globalization Documentation]


[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=
Unicode Consortium [http://cldr.unicode.org/ Common Locale Data Repository]<br>
[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>
[http://cldr.unicode.org/index/language-support-levels Language Support Levels]
=Language Codes and Locales=
[https://meta.wikimedia.org/wiki/Template:List_of_language_names_ordered_by_code 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==
==Android==
===Supported Languages===
*[https://android.googlesource.com/platform/frameworks/base/+/android-9.0.0_r1/core/res/res/values/locale_config.xml 9.0.0]
*[https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r1/core/res/res/values/locale_config.xml 8.1.0]
*[https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r1/core/res/res/values/locale_config.xml 8.0.0]
*[https://android.googlesource.com/platform/frameworks/base/+/android-7.1.2_r1/core/res/res/values/locale_config.xml 7.1.2]
*[https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r1/core/res/res/values/locale_config.xml 7.0.0]


[https://support.google.com/googleplay/android-developer/table/4419860?hl=en Google Play Store]
===Language / Locale Preferences and Resolution===
[https://developer.android.com/guide/topics/resources/multilingual-support Language & Locale Resolution in Android 7.0+]


===Google Play Store===
===Google Play Store===
Line 44: 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 multi-lingual automated email]
[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]''


==Language-Specific Resources==
=Language-Specific Resources=
===Burmese===
[https://www.globalapptesting.com/blog/zawgyi-vs-unicode Zawgyi vs. Unicode] - Context and suggestions for making tools available for non-Unicode Burmese fonts.


=Design Resources=
==Bidirectional and RTL Language Support==
[https://material.io/design/usability/bidirectionality.html# Bidirectionality] - Material.io
:Tips for mirroring display and icons for RTL languages.<br>
[https://developer.mozilla.org/en-US/docs/Archive/B2G_OS/Firefox_OS_apps/Firefox_OS_in_Arabic Firefox OS in Arabic]<br>
[https://hacks.mozilla.org/2015/09/building-rtl-aware-web-apps-and-websites-part-1/ Building RTL-Aware Web Apps & Websites: Part 1]<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://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.


[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]''
==Burmese==
[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)

WC3 I18n Quick Tips

Best Practices for XML I18n

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

RTL.WTF

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