RetroArch/intl
2020-03-25 15:50:30 +01:00
..
.gitignore Synchronize translations 2020-01-04 21:56:20 +02:00
crowdin_sync.sh Synchronize translations 2020-01-04 21:56:20 +02:00
crowdin.yaml Add crowdin.yaml 2020-02-15 02:41:29 +01:00
h2json.py Use JSON as format to connect with translation tools 2020-01-04 21:56:20 +02:00
json2h.py Synchronize translations 2020-01-04 21:56:20 +02:00
msg_hash_ar.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_ar.h (INTL) AR - Remove duplicate English strings 2020-01-02 09:48:55 +01:00
msg_hash_chs.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_chs.h Add European timedate style (DD/MM/YYYY) and reorder timedate options 2020-03-15 16:00:03 +01:00
msg_hash_cht.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_cht.h Remove 'automatically add content to playlist' option - causes 2020-01-22 17:08:02 +01:00
msg_hash_de.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_de.h Remove 'automatically add content to playlist' option - causes 2020-01-22 17:08:02 +01:00
msg_hash_el.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_el.h Add European timedate style (DD/MM/YYYY) and reorder timedate options 2020-03-15 16:00:03 +01:00
msg_hash_eo.c Add this ifdef around pragma execute-character-set 2019-05-28 13:37:14 +02:00
msg_hash_eo.h (Intl) Stat removing duplicate English text 2020-01-02 09:20:53 +01:00
msg_hash_es.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_es.h Update timedate style options for Last Played sublabel metadata 2020-03-19 18:47:42 +01:00
msg_hash_fr.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_fr.h Update timedate style options for Last Played sublabel metadata 2020-03-19 18:47:42 +01:00
msg_hash_it.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_it.h Add European timedate style (DD/MM/YYYY) and reorder timedate options 2020-03-15 16:00:03 +01:00
msg_hash_ja.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_ja.h Add European timedate style (DD/MM/YYYY) and reorder timedate options 2020-03-15 16:00:03 +01:00
msg_hash_ko.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_ko.h Add European timedate style (DD/MM/YYYY) and reorder timedate options 2020-03-15 16:00:03 +01:00
msg_hash_lbl.h Rename PSP-style scroll to Menu scroll acceleration 2020-03-10 13:10:09 +01:00
msg_hash_nl.c Add this ifdef around pragma execute-character-set 2019-05-28 13:37:14 +02:00
msg_hash_nl.h Remove duplicate English strings 2020-01-30 18:26:44 +01:00
msg_hash_pl.c Add this ifdef around pragma execute-character-set 2019-05-28 13:37:14 +02:00
msg_hash_pl.h Update msg_hash_pl.h 2020-03-25 15:50:30 +01:00
msg_hash_pt_br.c LOCALIZATION: Update Portuguese Brazilian translation 2020-02-28 22:14:37 -03:00
msg_hash_pt_br.h Merge pull request #10310 from Ryunam/lastplayed-timedate 2020-03-24 18:16:12 +01:00
msg_hash_pt_pt.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_pt_pt.h Remove 'automatically add content to playlist' option - causes 2020-01-22 17:08:02 +01:00
msg_hash_ru.c Add this ifdef around pragma execute-character-set 2019-05-28 13:37:14 +02:00
msg_hash_ru.h Remove 'automatically add content to playlist' option - causes 2020-01-22 17:08:02 +01:00
msg_hash_tr.c Revert "Turkish Language updates" 2020-03-01 20:36:24 +01:00
msg_hash_tr.h Add European timedate style (DD/MM/YYYY) and reorder timedate options 2020-03-15 16:00:03 +01:00
msg_hash_us.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_us.h Merge pull request #10310 from Ryunam/lastplayed-timedate 2020-03-24 18:16:12 +01:00
msg_hash_vn.c (msg_hash) Settings cleanups 2020-02-23 05:51:45 +01:00
msg_hash_vn.h Remove duplicate English strings 2020-02-13 21:15:23 +01:00
README.md Synchronize translations 2020-01-04 21:56:20 +02:00

Internationalization Workflow (Draft)

Steps

  • Developers update strings in msg_hash_us.h.
  • Developers (can set a cron job) run ./h2json.py msg_hash_us.h to generate msg_hash_us.json. It is just a convenient format that is supported by Weblate/Crowdin/Transifex and doesn't need to be inversion control.
  • Developers (can set a cron job) upload msg_hash_us.json to Weblate/Crowdin/Transifex.
  • Translators translate strings on Weblate/Crowdin/Transifex.
  • Developers (can set a cron job) download msg_hash_xx.json files.
  • Developers (can set a cron job) run ./json2h.py msg_hash_xx.json to generate msg_hash_xx.h.

Pros

  • No new dependencies.
  • No performance impact.
  • Don't require translators to know how to use Git, how to read C code and how to create Pull Request.
  • Translators will be informed whenever a source string changes.

Cron job setup

  1. Install crowdin cli tool
  2. Get the intl/crowdin.yaml file from someone who have crowdin admin accounts
  3. Add cron job cd path/to/retroarch/intl && ./crowin_sync.sh