app

Localizing the WHO COVID-19 App

Localizable Content Streams:

Translation Process:

  1. Externalise all strings from the .dart files into the .arb files.
  2. The localization manager(s) or project lead(s) downloads the .arb & .yaml files.
  3. The localization manager(s) or project lead(s) create project on here with the downloaded files for the desired language combinations.
  4. Professional Translators translate the files
  5. Professional Translators review the translation
  6. In country reviewers / WHO staff approve the translations in the CAT tool
  7. The localization manager(s) or tech lead(s) are notified the translations are ready to download
  8. The localization manager(s) or tech lead(s) copy the files in the repo, overwriting any existing files, and commit them.

_Process Diagram_

API integration to come at a later stage

Do’s & Don’t

Common requirement

ARB files

Externalize by default

Structure the content

Author strings with translation in mind

Example

{
  "greetingsText": "{ gender, select,  male{Dear {firstName} } female{Dear {firstName} } other{Dear {firstName} } }, this is an ICU Message example that shows gender forms.",
  "@greetingsText": {
    "description": "User greeting",
    "type": "text",
    "placeholders": {
      "firstName": "Foo Bar"
    }
  },
  "pushCounterText": "This ICU Message example that shows plural forms. {count, plural, =0{You have never pushed the button} =1{You have pushed the button once} other{You have pushed the button {pushCount} times in a row} }",
  "@pushCounterText": {
    "description": "A description for the push counter",
    "type": "text",
    "placeholders": {
      "pushCount": "3"
    }
  },
  "icuMessageFormatForTranslators": "Visit this page: <a href=\"{url}\">Online ICU Message Editor</a> to learn how to write ICU Messages with confidence.",
  "@icuMessageFormatForTranslators": {
    "description": "A link to Online ICU Message Editor",
    "type": "url",
    "placeholders": {
      "url": "https://format-message.github.io/icu-message-format-for-translators/"
    }
  },
  "notRecommendedButSupportedText": "<ul><li>apple</li><li>banana</li><li>kiwi</li></ul>",
  "@notRecommendedButSupportedText": {
    "description": "Shows a list of items in HTML, each item is treated as a segment in the CAT tool",
    "type": "html"
  }
}

YAML content bundles

Structure the content