2022-02-19 00:09:36 +00:00
..
2020-06-21 19:03:09 +03:00
2021-11-03 18:44:08 +01:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-30 15:20:30 +03:00
2020-06-22 19:35:14 +03:00
2021-11-06 14:08:12 +08:00
2020-06-12 08:06:30 +02:00
2022-02-03 00:10:22 +00:00
2022-02-14 02:43:55 +01:00
2021-12-27 00:08:35 +00:00
2022-02-19 00:09:36 +00:00
2022-02-03 00:10:22 +00:00
2022-02-03 00:10:22 +00:00
2022-02-19 00:09:36 +00:00
2022-02-03 00:10:22 +00:00
2021-12-27 00:08:35 +00:00
2022-02-06 04:40:08 +01:00
2022-02-19 00:09:36 +00:00
2020-06-12 08:06:30 +02:00
2022-02-08 00:08:31 +00:00
2020-06-12 08:06:30 +02:00
2021-12-27 00:08:35 +00:00
2020-06-19 11:24:08 +02:00
2022-02-19 00:09:36 +00:00
2022-02-14 02:43:55 +01:00
2021-12-27 00:08:35 +00:00
2020-12-05 22:10:29 +01:00
2022-02-17 00:07:37 +00:00
2020-06-12 08:06:30 +02:00
2022-02-17 00:07:37 +00:00
2022-02-03 00:10:22 +00:00
2022-02-14 02:43:55 +01:00
2021-12-27 00:08:35 +00:00
2022-02-19 00:09:36 +00:00
2020-06-12 08:06:30 +02:00
2022-02-17 00:07:37 +00:00
2022-02-03 00:10:22 +00:00
2022-02-17 00:07:37 +00:00
2021-12-27 00:08:35 +00:00
2020-06-12 08:06:30 +02:00
2022-02-03 00:10:22 +00:00
2022-02-08 00:08:31 +00:00
2021-12-27 00:08:35 +00:00
2022-02-06 04:40:08 +01:00
2022-02-14 00:07:43 +00:00
2020-06-12 08:06:30 +02:00
2020-06-12 08:06:30 +02:00
2021-12-27 00:08:35 +00:00
2022-02-18 00:08:46 +00:00
2021-12-27 00:08:35 +00:00
2022-02-14 02:43:55 +01:00
2022-02-03 00:10:22 +00:00
2022-02-03 00:10:22 +00:00
2020-06-12 08:06:30 +02:00
2022-02-19 00:09:36 +00:00
2022-02-13 00:09:26 +00:00
2022-02-16 00:07:48 +00:00
2020-06-12 08:06:30 +02:00
2022-01-21 00:10:19 +00:00
2022-02-19 00:09:36 +00:00
2020-11-23 22:54:07 +08:00
2021-11-13 00:06:22 +00:00
2022-01-02 00:08:08 +00:00
2022-02-18 00:08:46 +00:00
2021-03-11 22:15:42 +08:00
2020-07-14 12:03:29 +03:00
2022-01-11 00:08:12 +00:00
2022-01-28 00:11:55 +00:00
2020-06-30 15:20:30 +03:00
2021-12-05 00:07:43 +00:00
2021-03-11 22:15:42 +08:00
2020-06-30 15:20:30 +03:00
2022-02-19 00:09:36 +00:00
2021-12-05 00:07:43 +00:00
2021-11-08 00:07:11 +00:00
2020-09-19 16:54:44 +03:00
2021-11-30 00:07:17 +00:00
2021-11-12 00:06:50 +00:00
2022-01-15 00:07:42 +00:00
2022-02-14 00:07:43 +00:00
2020-06-30 15:20:30 +03:00
2021-11-11 00:07:11 +00:00
2021-11-26 00:07:25 +00:00
2020-06-30 15:20:30 +03:00
2021-11-17 00:06:43 +00:00
2021-05-17 00:09:21 +08:00
2021-12-20 00:08:24 +00:00
2020-09-19 16:54:44 +03:00
2020-06-22 23:20:29 +03:00
2022-01-25 00:07:58 +00:00
2021-12-17 00:07:15 +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)