Localization

  • Get access to Crowdin
  • Refactor screens to use "global screen" component
  • Install react-native-localize and i18n-js
  • Put i18n setup logic in the global screen
  • Make it work on Android
  • fix missing strings to fallback to defaultLocale
  • Make it work on iOS
  • Share the translations folder for both Android and iOS, maybe automate it somehow
  • TypeScript types for all the keys
  • Use memoize? Take a perf-driven approach to testing this need
  • Extract all en strings from hard-coded screens to translations folder
    • welcome
    • central/public
    • central/private
    • central/connections
    • central
    • compose
    • accounts
    • backup
    • biography
    • conversation
    • dialog-about
    • dialog-thanks
    • drawer
    • global
    • invite-create
    • invite-paste
    • libraries
    • profile
    • profile-edit
    • raw-db
    • raw-msg
    • recipients-input
    • secret-input
    • secret-output
    • settings
    • thread
    • Components
    • anything else?
  • Accessibility labels for all screens
    • welcome
    • central/public
    • central/private
    • central/connections
    • central
    • compose
    • accounts
    • backup
    • biography
    • conversation
    • dialog-about
    • dialog-thanks
    • drawer
    • global
    • invite-create
    • invite-paste
    • libraries
    • profile
    • profile-edit
    • raw-db
    • raw-msg
    • recipients-input
    • secret-input
    • secret-output
    • settings
    • thread
    • Components
    • anything else?
  • Update license year for every modified file
  • Merge into master
  • Integrate with Crowdin
  • Add instructions how to join Crowdin and translate
  • Translate everything to at least one other language
  • Localize human-time somehow
  • ...
Edited by staltz