RetroArch/intl
zoltanvb 80296a60a2
Remove language specific msg_hash_xx.c files (#15218)
After PR #14821 , the contents of msg_hash_xx.c files are present
in the normal translation workflow. Since that time, almost all
languages have either caught up on Crowdin, or are still on such
low level of translation completeness, that removing these entries
does not harm usability.

Only Chinese Simplified and Portuguese Brazilian languages remain
in separate files, as they may still be considered an improvement
over Crowdin status.

See also commit 568ffac8f6.
2023-04-23 07:59:56 +02:00
..
.gitignore Add steam translations 2020-06-21 19:03:09 +03:00
crowdin_sync.py Stop Crowdin Daily Workflow from activating with empty API key (#13440) 2022-01-04 13:32:03 +01:00
crowdin.yaml Translation completeness display. (#14779) 2022-12-29 22:21:23 +01:00
fetch_progress.py Translation completeness display. (#14779) 2022-12-29 22:21:23 +01:00
googleplay_ar.json Fetch translations from Crowdin 2020-08-24 23:13:16 +03:00
googleplay_ast.json Fetch translations from Crowdin 2021-11-13 00:06:22 +00:00
googleplay_be.json Fetch translations from Crowdin 2023-03-28 00:12:21 +00:00
googleplay_ca.json Fetch translations from Crowdin 2023-02-13 00:12:19 +00:00
googleplay_chs.json Improve Crowdin scripts and fetch translations 2020-08-07 22:46:17 +03:00
googleplay_cht.json Fetch translations from Crowdin 2022-01-02 00:08:08 +00:00
googleplay_cs.json Fetch translations from Crowdin 2022-02-18 00:08:46 +00:00
googleplay_cy.json Fetch translations from Crowdin 2021-03-11 22:15:42 +08:00
googleplay_da.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
googleplay_de.json Fetch translations from Crowdin 2022-04-06 00:10:20 +00:00
googleplay_el.json Fetch translations from Crowdin 2020-09-19 16:54:44 +03:00
googleplay_en.json Fetch translations from Crowdin 2022-05-08 00:12:15 +00:00
googleplay_eo.json 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02: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 23-Jun-2021' 2021-06-23 16:00:53 +02:00
googleplay_fr.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_gl.json Fetch translations from Crowdin 2020-07-31 10:50:17 +03:00
googleplay_he.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_hr.json Fetch translations from Crowdin 2022-02-19 00:09:36 +00:00
googleplay_hu.json Fetch translations from Crowdin 2022-12-04 00:12:42 +00:00
googleplay_id.json Fetch translations from Crowdin 2022-11-12 00:14:02 +00:00
googleplay_it.json Fetch translations from Crowdin 30-Jul-2021 2021-07-30 17:06:13 +02:00
googleplay_ja.json 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02:00
googleplay_ko.json Fetch translations from Crowdin 2020-09-19 16:54:44 +03:00
googleplay_mt.json Fetch translations from Crowdin 2021-11-16 00:06:32 +00:00
googleplay_nl.json Fetch translations from Crowdin 2022-05-23 00:12:07 +00:00
googleplay_no.json Fetch translations from Crowdin 2022-01-15 00:07:42 +00:00
googleplay_oc.json Fetch translations from Crowdin 30-Jul-2021 2021-07-30 17:06:13 +02:00
googleplay_pl.json Fetch translations from Crowdin 2020-11-23 22:54:07 +08:00
googleplay_pt_br.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_pt_pt.json Fetch translations from Crowdin 2020-09-19 16:54:44 +03:00
googleplay_ro.json Fetch translations from Crowdin 2021-11-11 00:07:11 +00:00
googleplay_ru.json Fetch translations from Crowdin 2021-03-11 22:15:42 +08:00
googleplay_si.json Fetch translations from Crowdin 04-Sep-2021 (#12934) 2021-09-04 17:43:20 +02:00
googleplay_sk.json Fix messed up Crowdin config and restore synchronization 2022-03-22 06:59:12 +01:00
googleplay_sr.json Fetch translations from Crowdin 2021-11-17 00:06:43 +00:00
googleplay_sv.json Fetch translations from Crowdin 2022-04-17 00:11:12 +00:00
googleplay_tr.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
googleplay_uk.json Fetch translations from Crowdin 2020-09-19 16:54:44 +03:00
googleplay_us.json Fix JSON syntax 2020-06-22 19:35:14 +03:00
googleplay_val.json Fetch translations from Crowdin 2022-01-26 00:09:04 +00:00
googleplay_vn.json Fetch translations from Crowdin 2022-05-29 00:13:19 +00:00
h2json.py adjust h2json and json2h scripts to be comment agnostic (#12532) 2021-06-16 17:21:57 +02:00
json2h.py (Bug fix) Fix the weird 'empty translations' & correct backslash escaping in translation strings (#14609) 2022-11-11 07:56:17 +01:00
msg_hash_ar.h Fetch translations from Crowdin 2023-03-08 00:12:19 +00:00
msg_hash_ast.h Fetch translations from Crowdin 2023-04-16 00:12:25 +00:00
msg_hash_be.h Fetch translations from Crowdin 2023-04-20 00:11:18 +00:00
msg_hash_ca.h Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
msg_hash_chs.c Replay nomenclature (#15054) 2023-03-03 23:16:48 +01:00
msg_hash_chs.h Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
msg_hash_cht.h Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
msg_hash_cs.h Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
msg_hash_cy.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_da.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_de.h Fetch translations from Crowdin 2023-04-21 00:10:38 +00:00
msg_hash_el.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_en.h Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
msg_hash_eo.h Fetch translations from Crowdin 2023-03-16 00:13:09 +00:00
msg_hash_es.h Fetch translations from Crowdin 2023-04-21 00:10:38 +00:00
msg_hash_fa.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_fi.h Fetch translations from Crowdin 2023-04-21 00:10:38 +00:00
msg_hash_fr.h Fetch translations from Crowdin 2023-04-23 00:12:13 +00:00
msg_hash_gl.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_he.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_hr.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_hu.h Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
msg_hash_id.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_it.h Fetch translations from Crowdin 2023-04-21 00:10:38 +00:00
msg_hash_ja.h Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
msg_hash_ko.h Fetch translations from Crowdin 2023-04-18 00:11:13 +00:00
msg_hash_lbl.h Fast-Forward Audio Resampling (#15173) 2023-04-20 17:14:47 +02:00
msg_hash_mt.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_nl.h Fetch translations from Crowdin 2023-04-23 00:12:13 +00:00
msg_hash_no.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_oc.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_pl.h Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
msg_hash_pt_br.c Replay nomenclature (#15054) 2023-03-03 23:16:48 +01:00
msg_hash_pt_br.h Fetch translations from Crowdin 2023-04-19 00:11:41 +00:00
msg_hash_pt_pt.h Fetch translations from Crowdin 2023-03-11 00:10:58 +00:00
msg_hash_ro.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_ru.h Fetch translations from Crowdin 2023-04-17 00:11:49 +00:00
msg_hash_si.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_sk.h Fetch translations from Crowdin 2023-03-31 00:11:35 +00:00
msg_hash_sr.h Fetch translations from Crowdin 2023-03-03 01:52:38 +00:00
msg_hash_sv.h Fetch translations from Crowdin 2023-04-10 00:10:49 +00:00
msg_hash_tr.h Fetch translations from Crowdin 2023-04-22 00:11:47 +00:00
msg_hash_uk.h Fetch translations from Crowdin 2023-04-18 00:11:13 +00:00
msg_hash_us.c Add checkpointing feature for replay recordings. (#15072) 2023-03-09 23:14:02 +01:00
msg_hash_us.h Fast-Forward Audio Resampling (#15173) 2023-04-20 17:14:47 +02:00
msg_hash_val.h Fetch translations from Crowdin 2023-03-16 00:13:09 +00:00
msg_hash_vn.h Fetch translations from Crowdin 2023-03-08 00:12:19 +00:00
progress.h Fetch translations from Crowdin 2023-04-23 00:12:13 +00:00
README.md Add instruction to create new languages 2020-08-24 23:17:13 +03:00
steam_ar.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_ast.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_be.json Fetch translations from Crowdin 2023-03-28 00:12:21 +00:00
steam_ca.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_chs.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_cht.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_cs.json Fetch translations from Crowdin 2022-02-27 00:10:40 +00:00
steam_cy.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_da.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_de.json Fetch translations from Crowdin 2022-04-05 00:10:01 +00:00
steam_el.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_en.json Fetch translations from Crowdin 2022-05-08 00:12:15 +00:00
steam_eo.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_es.json Fetch translations from Crowdin 2022-02-23 00:09:57 +00:00
steam_fa.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_fi.json 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02:00
steam_fr.json Fetch translations from Crowdin 2022-02-23 00:09:57 +00:00
steam_gl.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_he.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_hr.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_hu.json Fetch translations from Crowdin 2022-11-02 00:13:41 +00:00
steam_id.json Fetch translations from Crowdin 2023-03-13 00:12:32 +00:00
steam_it.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_ja.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_ko.json Fetch translations from Crowdin 2023-01-25 00:11:53 +00:00
steam_mt.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_nl.json Fetch translations from Crowdin 2022-10-11 00:18:14 +00:00
steam_no.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_oc.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_pl.json Fix messed up Crowdin config and restore synchronization 2022-03-22 06:59:12 +01:00
steam_pt_br.json Fetch translations from Crowdin 2022-03-26 00:10:27 +00:00
steam_pt_pt.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_ro.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_ru.json Fetch translations from Crowdin 2022-04-27 00:11:58 +00:00
steam_si.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_sk.json Fix messed up Crowdin config and restore synchronization 2022-03-22 06:59:12 +01:00
steam_sr.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_sv.json Fetch translations from Crowdin 2022-04-17 00:11:12 +00:00
steam_tr.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_uk.json Fetch translations from Crowdin 2022-11-10 00:14:31 +00:00
steam_us.json Improve some texts (#13645) 2022-02-21 20:11:25 +01:00
steam_val.json Fetch translations from Crowdin 2022-04-02 00:09:55 +00:00
steam_vn.json Fetch translations from Crowdin 2022-05-29 00:13:19 +00: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)"
      )
    

Add New Languages

  1. Go to Crowdin and add the language
  2. Run Crowdin script to download new translations
  3. Add new language into menu (see #10787)