RetroArch/intl
Bernhard Schelling 667e8a558e Explore view - WIP1
A top content view that combines all playlists with database entries to browse by year, developer, system, etc.
Depends on the quality of the available metadata in the database (RDB) files.
2020-07-28 04:44:31 +02:00
..
.gitignore Add steam translations 2020-06-21 19:03:09 +03:00
crowdin_sync.py Add steam translations 2020-06-21 19:03:09 +03:00
crowdin.yaml Google Play translations 2020-06-22 16:19:50 +03:00
fetch_progress.py Synchronize translations 2020-06-04 12:40:25 +03:00
googleplay_ar.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_ast.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_chs.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_cht.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_da.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
googleplay_de.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_el.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_es.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_fa.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_fi.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
googleplay_fr.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_he.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_it.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_ja.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_ko.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_nl.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_pl.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_pt_br.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_pt_pt.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_ru.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_sk.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_sv.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
googleplay_tr.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
googleplay_uk.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_us.json Fix JSON syntax 2020-06-22 19:35:14 +03:00
googleplay_vn.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
h2json.py Synchronize translations 2020-06-04 12:40:25 +03:00
json2h.py Synchronize translations 2020-06-04 12:40:25 +03:00
msg_hash_ar.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_ar.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_ast.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_ast.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_chs.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_chs.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_cht.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_cht.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_da.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_de.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_de.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_el.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_el.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_eo.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_eo.h Synchronize translations 2020-06-04 12:40:25 +03:00
msg_hash_es.c Updating msg_hash_es.c 2020-06-19 11:24:08 +02:00
msg_hash_es.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_fa.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_fa.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_fi.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_fr.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_fr.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_he.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_he.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_it.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_it.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_ja.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_ja.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_ko.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_ko.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_lbl.h Explore view - WIP1 2020-07-28 04:44:31 +02:00
msg_hash_nl.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_nl.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_pl.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_pl.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_pt_br.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_pt_br.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_pt_pt.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_pt_pt.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03: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 Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_sk.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_sk.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_sv.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_tr.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_tr.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
msg_hash_uk.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
msg_hash_us.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_us.h Explore view - WIP1 2020-07-28 04:44:31 +02:00
msg_hash_vn.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_vn.h Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
progress.h Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
README.md Synchronize translations 2020-06-04 12:40:25 +03:00
steam_ar.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_ast.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_chs.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
steam_cht.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_da.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
steam_de.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_el.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_es.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
steam_fa.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_fi.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
steam_fr.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_he.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_it.json Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
steam_ja.json Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
steam_ko.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_nl.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_pl.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_pt_br.json Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
steam_pt_pt.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_ru.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_sk.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_sv.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
steam_tr.json Fetch translations from Crowdin 2020-07-21 17:56:31 +03:00
steam_uk.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_us.json Update steam_us.json 2020-06-22 23:20:29 +03:00
steam_vn.json Crowdin synchronization 2020-06-30 15:20:30 +03:00

Internationalization Workflow

For Translators

Use Crowdin

  1. Register user account at https://crowdin.com/
  2. Join the project https://crowdin.com/project/retroarch/
  3. Select your language to translate
  4. Click the file name msg_hash_us.json and the editor should open
  5. Select an untranslated (red) string from the list
  6. Type translation and save
  7. Next string...

Links:

Request New Language

You can open a new issue and @guoyunhe to add new language.

For Maintainers

Set Up

Install Java, Python3 and Git

Synchronize

cd intl
python3 crowin_sync.py

Manage Crowdin Project

  1. You need to be project admin. Please contact @guoyunhe or @twinaphex
  2. Go to https://crowdin.com/project/retroarch/settings
  3. You can manage languages, members etc. here

Links:

Message File Format

  1. Must NOT contain #else
  2. Must NOT have multiple-line string syntax
    // bad
    MSG_HASH(
      MENU_ENUM_SUBLABEL_CHEEVOS_ENABLE,
      "Compete to earn custom-made achievements in classic games.\n"
      "For more information, visit http://retroachievements.org"
      )
    // good
    MSG_HASH(
      MENU_ENUM_SUBLABEL_CHEEVOS_ENABLE,
      "Compete to earn custom-made achievements in classic games.\nFor more information, visit http://retroachievements.org"
      )
    
  3. Must NOT contain lowercase letters in key name
    // bad (x)
    MSG_HASH(
      MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_800x240,
      "2D (High Resolution)"
      )
    // good (X)
    MSG_HASH(
      MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_800X240,
      "2D (High Resolution)"
      )