RetroArch/intl
2024-09-07 00:28:28 +00:00
..
.gitignore
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
googleplay_ast.json Fetch translations from Crowdin 2024-07-20 00:12:39 +00:00
googleplay_be.json Fetch translations from Crowdin 2024-07-19 01:43:18 +00:00
googleplay_bg.json Fetch translations from Crowdin 2024-03-16 00:10:29 +00:00
googleplay_ca.json Fetch translations from Crowdin 2023-02-13 00:12:19 +00:00
googleplay_chs.json
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
googleplay_da.json
googleplay_de.json Fetch translations from Crowdin 2022-04-06 00:10:20 +00:00
googleplay_el.json
googleplay_en.json Fetch translations from Crowdin 2022-05-08 00:12:15 +00:00
googleplay_eo.json
googleplay_es.json
googleplay_fa.json
googleplay_fi.json Fetch translations from Crowdin 2023-08-26 00:09:37 +00:00
googleplay_fr.json
googleplay_gl.json
googleplay_he.json
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 2024-06-07 00:12:49 +00:00
googleplay_it.json
googleplay_ja.json
googleplay_ko.json
googleplay_mt.json
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
googleplay_or.json Fetch translations from Crowdin 2023-05-15 00:11:26 +00:00
googleplay_pl.json
googleplay_pt_br.json
googleplay_pt_pt.json Fetch translations from Crowdin 2024-03-10 00:12:22 +00:00
googleplay_ro.json
googleplay_ru.json Fetch translations from Crowdin 2023-10-16 00:11:43 +00:00
googleplay_si.json
googleplay_sk.json Fix messed up Crowdin config and restore synchronization 2022-03-22 06:59:12 +01:00
googleplay_sr.json
googleplay_sv.json Fetch translations from Crowdin 2022-04-17 00:11:12 +00:00
googleplay_tr.json
googleplay_tt.json Fetch translations from Crowdin 2024-07-24 00:14:04 +00:00
googleplay_uk.json
googleplay_us.json
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
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 2024-08-12 00:13:33 +00:00
msg_hash_ast.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_be.h Fetch translations from Crowdin 2024-09-07 00:28:28 +00:00
msg_hash_bg.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_ca.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_chs.h Fetch translations from Crowdin 2024-08-30 00:14:00 +00:00
msg_hash_cht.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_cs.h Remove 'Frame Rest' (#16936) 2024-08-29 03:35:09 -07:00
msg_hash_cy.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_da.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_de.h Fetch translations from Crowdin 2024-08-31 00:13:44 +00:00
msg_hash_el.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_en.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_eo.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_es.h Fetch translations from Crowdin 2024-09-05 00:13:49 +00:00
msg_hash_fa.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_fi.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_fr.h Fetch translations from Crowdin 2024-09-05 00:13:49 +00:00
msg_hash_gl.h Remove 'Frame Rest' (#16936) 2024-08-29 03:35:09 -07:00
msg_hash_he.h Fetch translations from Crowdin 2024-08-29 00:13:48 +00:00
msg_hash_hr.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_hu.h Fetch translations from Crowdin 2024-09-05 00:13:49 +00:00
msg_hash_id.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_it.h Fetch translations from Crowdin 2024-09-05 00:13:49 +00:00
msg_hash_ja.h Remove 'Frame Rest' (#16936) 2024-08-29 03:35:09 -07:00
msg_hash_ko.h Fetch translations from Crowdin 2024-09-05 00:13:49 +00:00
msg_hash_lbl.h Remove 'Frame Rest' (#16936) 2024-08-29 03:35:09 -07:00
msg_hash_mt.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_nl.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_no.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_oc.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_or.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_pl.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_pt_br.h Fetch translations from Crowdin 2024-09-05 00:13:49 +00:00
msg_hash_pt_pt.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_ro.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_ru.h Fetch translations from Crowdin 2024-09-05 00:13:49 +00:00
msg_hash_si.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_sk.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_sr.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
msg_hash_sv.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_tr.h Fetch translations from Crowdin 2024-09-05 00:13:49 +00:00
msg_hash_tt.h Fetch translations from Crowdin 2024-08-29 00:13:48 +00:00
msg_hash_uk.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_us.c Added rolling scan line simulation based on the shader subframe feature. This is implemented with a scrolling scissor rect rather than in the shader itself as this is more efficient although may not work for every shader pass - we may need an option to exclude certain passes. The implementation simply divides the screen up by the number of sub frames and then moves the scissor rect down over the screen over the number of sub frames. (#16282) 2024-03-19 08:59:36 -07:00
msg_hash_us.h Add Selenium theme for Ozone (#16960) 2024-09-03 22:00:14 -07:00
msg_hash_val.h Fetch translations from Crowdin 2024-08-28 00:13:32 +00:00
msg_hash_vn.h Fetch translations from Crowdin 2024-08-12 00:13:33 +00:00
progress.h Fetch translations from Crowdin 2024-09-07 00:28:28 +00:00
README.md
steam_ar.json Fetch translations from Crowdin 2023-04-27 00:12:10 +00:00
steam_ast.json Fetch translations from Crowdin 2024-07-13 00:12:41 +00:00
steam_be.json Fetch translations from Crowdin 2024-07-19 01:43:18 +00:00
steam_bg.json Fetch translations from Crowdin 2024-03-16 00:10:29 +00:00
steam_ca.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_chs.json Fetch translations from Crowdin 2024-06-10 00:12:54 +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 2024-06-11 00:12:40 +00:00
steam_fi.json Fetch translations from Crowdin 2024-08-04 00:13:58 +00:00
steam_fr.json Fetch translations from Crowdin 2022-02-23 00:09:57 +00:00
steam_gl.json Fetch translations from Crowdin 2024-08-22 00:13:17 +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 2024-06-07 00:12:49 +00:00
steam_it.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_ja.json Fetch translations from Crowdin 2024-01-23 00:12:59 +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 2024-05-09 00:12:12 +00:00
steam_oc.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_or.json Fetch translations from Crowdin 2023-05-15 00:11:26 +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 2024-02-29 00:11:08 +00:00
steam_pt_pt.json Fetch translations from Crowdin 2024-04-14 00:16:07 +00:00
steam_ro.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_ru.json Fetch translations from Crowdin 2023-10-10 00:11:15 +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 2023-08-20 00:11:22 +00:00
steam_tr.json Fetch translations from Crowdin 2022-02-22 00:09:41 +00:00
steam_tt.json Fetch translations from Crowdin 2024-07-24 00:14:04 +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 2023-05-16 00:11:26 +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)