Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How Git helps us with localization

How Git helps us with localization

Let's have a look on our localization process and how Git helped us to save some time.

Dmytro Khmelenko

December 01, 2017
Tweet

More Decks by Dmytro Khmelenko

Other Decks in Programming

Transcript

  1. 3

  2. WHAT WE HAVE • 18 millions registered users • 9

    languages supported (2 of them were added recently) • 10 Android developers & 7 iOS developers • keep developing new features • release cycle every 2 weeks 4
  3. THE PROBLEM How can we have all new features localized

    with a minimum amount of effort? 8
  4. LOCALIZATION REQUEST 11 mob_bw_buy_coach_title: Unlock Your Coach Now mob_bw_buy_coach_subtitle_1: Personal

    to You mob_bw_buy_coach_subtitle_2: Progressive Training and_bw_buy_coach_period_week: '%s / Week' ios_bw_buy_coach_period_week: '%@ / Week'
  5. MATCHING JOB 16 def match(language_code, strings_xml_keys, english_strings, input_yaml): translated_strings =

    input_yaml[language_code] for key in strings_xml_keys: if key in translated_strings: value = translated_strings[key] else: value = english_strings[key]
  6. 18

  7. THE PROBLEM http://www.unicode.org/cldr/charts/29/supplemental/language_plural_rules.html Category Numbers English Polish One 1 1

    month 1 miesiąc Few 2~4, 22~24, 32~34 … 2 months 2 miesiące Many 0, 5~19, 100 … 5 months 5 miesięcy Other 0.0~1.5, 10.0 … 1,5 months 1,5 miesiąca 19
  8. HOW IT LOOKS LIKE 23 mob_bw_buy_coach_title: Unlock Your Coach Now

    mob_bw_buy_coach_purchase_month_plurals: one: '%d Month' other: '%d Months’
  9. HOW IT LOOKS LIKE 24 <plurals name="mob_bw_buy_coach_purchase_month_plurals"> <item quantity="one">%d Miesiąc</item>

    <item quantity="few">%d Miesiące</item> <item quantity="many">%d Miesięcy</item> <item quantity="other">%d Miesiąca</item> </plurals>