RetroArch/intl
Nikos Chantziaras 430baf7c21
Add Linux GameMode support (#13339)
This can fix a lot of performance issues, like audio crackling and frame
time spikes. This requires the GameMode package to be installed. See:

https://github.com/FeralInteractive/gamemode

This commit adds a "Game Mode" bool option to the "Power
Management" and "Latency" settings sections, and it can be toggled
on/off without restarting RA.

The actual toggling of game mode happens in a new frontend platform
interface function. Perhaps this will become useful for other platforms
that provide some equivalent of Linux GameMode.

Since the GameMode ABI is fixed, and the API comes as a single,
header-only file with no actual deps, we simply bundle the header
(deps/feralgamemode/gamemode_client.h.) That way, all Linux builds will
have support for GameMode regardless of whether the GameMode development
package is installed or not.
2021-12-14 14:07:42 +01:00
..
.gitignore Add steam translations 2020-06-21 19:03:09 +03:00
README.md Add instruction to create new languages 2020-08-24 23:17:13 +03:00
crowdin.yaml Crowdin integration full (#13171) 2021-11-03 18:44:08 +01:00
crowdin_sync.py Crowdin integration full (#13171) 2021-11-03 18:44:08 +01:00
fetch_progress.py Crowdin integration full (#13171) 2021-11-03 18:44:08 +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_ca.json Fetch translations from Crowdin 2021-11-13 00:06:22 +00:00
googleplay_chs.json Improve Crowdin scripts and fetch translations 2020-08-07 22:46:17 +03:00
googleplay_cht.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
googleplay_cs.json Fetch translations from Crowdin 2021-05-17 00:09:21 +08: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 2021-01-09 12:04:24 +08:00
googleplay_el.json Fetch translations from Crowdin 2020-09-19 16:54:44 +03: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_hu.json Fetch translations from Crowdin 2020-08-24 23:13:16 +03:00
googleplay_id.json Fetch translations from Crowdin 2021-11-11 00:07:11 +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 Crowdin synchronization 2020-06-30 15:20:30 +03: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 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02:00
googleplay_sr.json Fetch translations from Crowdin 2021-11-17 00:06:43 +00:00
googleplay_sv.json Fetch translations from Crowdin 2021-05-17 00:09:21 +08: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_vn.json Fetch translations from Crowdin 2021-12-03 00:07:30 +00:00
h2json.py adjust h2json and json2h scripts to be comment agnostic (#12532) 2021-06-16 17:21:57 +02:00
json2h.py Crowdin: Fix Python syntax error 2021-11-06 14:08:12 +08:00
msg_hash_ar.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_ar.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_ast.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_ast.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_ca.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_chs.c improve message wrapping with CJK languages 2021-06-03 21:09:35 +09:00
msg_hash_chs.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_cht.c improve message wrapping with CJK languages 2021-06-03 21:09:35 +09:00
msg_hash_cht.h Fetch translations from Crowdin 2021-12-10 00:09:35 +00:00
msg_hash_cs.h Fetch translations from Crowdin 2021-11-21 00:07:13 +00:00
msg_hash_cy.h Fetch translations from Crowdin 2021-11-21 00:07:13 +00:00
msg_hash_da.h Fetch translations from Crowdin 2021-11-26 00:07:25 +00:00
msg_hash_de.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_de.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_el.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_el.h Fetch translations from Crowdin 2021-11-26 00:07:25 +00:00
msg_hash_eo.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_eo.h Fetch translations from Crowdin 2021-11-21 00:07:13 +00: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 2021-12-07 00:07:37 +00:00
msg_hash_fa.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_fa.h Fetch translations from Crowdin 2021-11-26 00:07:25 +00:00
msg_hash_fi.c intl: Add Finnish language 2020-12-05 22:10:29 +01:00
msg_hash_fi.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_fr.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_fr.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_gl.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_he.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_he.h Fetch translations from Crowdin 2021-11-21 00:07:13 +00:00
msg_hash_hu.h Fetch translations from Crowdin 2021-11-26 00:07:25 +00:00
msg_hash_id.h Fetch translations from Crowdin 2021-11-26 00:07:25 +00:00
msg_hash_it.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_it.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_ja.c improve message wrapping with CJK languages 2021-06-03 21:09:35 +09:00
msg_hash_ja.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_ko.c improve message wrapping with CJK languages 2021-06-03 21:09:35 +09:00
msg_hash_ko.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_lbl.h Add Linux GameMode support (#13339) 2021-12-14 14:07:42 +01:00
msg_hash_mt.h Fetch translations from Crowdin 2021-11-21 00:07:13 +00:00
msg_hash_nl.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_nl.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_oc.h Fetch translations from Crowdin 2021-11-21 00:07:13 +00:00
msg_hash_pl.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_pl.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00: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 2021-12-13 00:07:31 +00: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 2021-12-05 00:07:43 +00:00
msg_hash_ro.h Fetch translations from Crowdin 2021-11-21 00:07:13 +00:00
msg_hash_ru.c (RGUI) Add Russian language support 2021-01-13 10:00:51 +00:00
msg_hash_ru.h Fetch translations from Crowdin 2021-12-09 00:07:36 +00:00
msg_hash_si.h Fetch translations from Crowdin 2021-11-21 00:07:13 +00:00
msg_hash_sk.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_sk.h Fetch translations from Crowdin 2021-11-26 00:07:25 +00:00
msg_hash_sr.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_sv.h Fetch translations from Crowdin 2021-11-26 00:07:25 +00:00
msg_hash_tr.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_tr.h Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
msg_hash_uk.h Fetch translations from Crowdin 2021-11-25 00:06:52 +00:00
msg_hash_us.c Add Linux GameMode support (#13339) 2021-12-14 14:07:42 +01:00
msg_hash_us.h Add Linux GameMode support (#13339) 2021-12-14 14:07:42 +01:00
msg_hash_vn.c (menu_dialog) Cleanups 2020-06-12 08:06:30 +02:00
msg_hash_vn.h Fetch translations from Crowdin 2021-12-07 00:07:37 +00:00
progress.h Fetch translations from Crowdin 2021-12-14 00:07:35 +00:00
steam_ar.json 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02:00
steam_ast.json Fetch translations from Crowdin 2020-11-23 22:54:07 +08:00
steam_ca.json Fetch translations from Crowdin 2021-11-13 00:06:22 +00:00
steam_chs.json 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02:00
steam_cht.json Fetch translations from Crowdin 2021-11-20 00:06:32 +00:00
steam_cs.json Fetch translations from Crowdin 2021-11-14 00:06:53 +00:00
steam_cy.json Fetch translations from Crowdin 2021-03-11 22:15:42 +08:00
steam_da.json Fetch translations from Crowdin 2020-07-14 12:03:29 +03:00
steam_de.json 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02:00
steam_el.json Fetch translations from Crowdin 2021-11-10 00:06:50 +00:00
steam_eo.json 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02:00
steam_es.json Fetch translations from Crowdin 17-Sep-2021 (#13007) 2021-09-17 20:23:02 +02:00
steam_fa.json Crowdin synchronization 2020-06-30 15:20:30 +03: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 2021-12-05 00:07:43 +00:00
steam_gl.json Fetch translations from Crowdin 2021-03-11 22:15:42 +08:00
steam_he.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_hu.json Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
steam_id.json Fetch translations from Crowdin 2021-11-08 00:07:11 +00:00
steam_it.json Fetch translations from Crowdin 30-Jul-2021 2021-07-30 17:06:13 +02:00
steam_ja.json 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02:00
steam_ko.json Fetch translations from Crowdin 2020-09-19 16:54:44 +03:00
steam_mt.json Fetch translations from Crowdin 2021-11-30 00:07:17 +00:00
steam_nl.json Fetch translations from Crowdin 2021-11-12 00:06:50 +00:00
steam_oc.json Fetch translations from Crowdin 30-Jul-2021 2021-07-30 17:06:13 +02:00
steam_pl.json 'Fetch translations from Crowdin 23-Jun-2021' 2021-06-23 16:00:53 +02:00
steam_pt_br.json Fetch translations from Crowdin 2020-08-24 23:13:16 +03:00
steam_pt_pt.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_ro.json Fetch translations from Crowdin 2021-11-11 00:07:11 +00:00
steam_ru.json Fetch translations from Crowdin 2021-11-26 00:07:25 +00:00
steam_si.json Fetch translations from Crowdin 04-Sep-2021 (#12934) 2021-09-04 17:43:20 +02:00
steam_sk.json Crowdin synchronization 2020-06-30 15:20:30 +03:00
steam_sr.json Fetch translations from Crowdin 2021-11-17 00:06:43 +00:00
steam_sv.json Fetch translations from Crowdin 2021-05-17 00:09:21 +08:00
steam_tr.json Fetch translations from Crowdin 2020-08-24 23:13:16 +03:00
steam_uk.json Fetch translations from Crowdin 2020-09-19 16:54:44 +03:00
steam_us.json Update steam_us.json 2020-06-22 23:20:29 +03:00
steam_vn.json Fetch translations from Crowdin 2021-12-03 00:07:30 +00:00

README.md

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)