mirror of
https://github.com/libretro/RetroArch.git
synced 2024-11-27 18:20:27 +00:00
c37f540b72
- Core info cache can now be enabled/disabled on all platforms via a new `Settings > Core > Cache Core Info Files` option - Core info cache file has been renamed from `.cache` to `core_info.cache` (i.e. it is no longer a 'hidden' file on Unix platforms, so can be deleted easily) - The core info cache file is now compressed (rzip) to further reduce disk IO - The presence of a `core_info.refresh` file in the core info directory will force a one-time refresh of the info cache. This file is generated automatically when toggling on the `Cache Core Info Files` option, and we will also add it to core info file packaging such that updating info files (either manually or via the online updater) will force a refresh - The core info cache no longer contains 'core is locked' and 'firmware missing' data fields; these are 'dynamic' properties that must be determined at runtime - The 'core is locked' status is now determined on core info intialisation by parsing the core directory listing, rather than by performing indivdual 'lock file exists' checks. This minimises file IO, and greatly improves performance on devices with slow storage - While parsing the core info cache file, we now avoid unnecessary `strdup()`s when adding entries to the resultant cache list - Memory leaks (potential and real) have been fixed, and safety checks added - Build errors have been fixed |
||
---|---|---|
.. | ||
.gitignore | ||
crowdin_sync.py | ||
crowdin.yaml | ||
fetch_progress.py | ||
googleplay_ar.json | ||
googleplay_ast.json | ||
googleplay_chs.json | ||
googleplay_cht.json | ||
googleplay_cy.json | ||
googleplay_da.json | ||
googleplay_de.json | ||
googleplay_el.json | ||
googleplay_es.json | ||
googleplay_fa.json | ||
googleplay_fi.json | ||
googleplay_fr.json | ||
googleplay_gl.json | ||
googleplay_he.json | ||
googleplay_hu.json | ||
googleplay_id.json | ||
googleplay_it.json | ||
googleplay_ja.json | ||
googleplay_ko.json | ||
googleplay_nl.json | ||
googleplay_pl.json | ||
googleplay_pt_br.json | ||
googleplay_pt_pt.json | ||
googleplay_ru.json | ||
googleplay_sk.json | ||
googleplay_sv.json | ||
googleplay_tr.json | ||
googleplay_uk.json | ||
googleplay_us.json | ||
googleplay_vn.json | ||
h2json.py | ||
json2h.py | ||
msg_hash_ar.c | ||
msg_hash_ar.h | ||
msg_hash_ast.c | ||
msg_hash_ast.h | ||
msg_hash_chs.c | ||
msg_hash_chs.h | ||
msg_hash_cht.c | ||
msg_hash_cht.h | ||
msg_hash_cy.h | ||
msg_hash_da.h | ||
msg_hash_de.c | ||
msg_hash_de.h | ||
msg_hash_el.c | ||
msg_hash_el.h | ||
msg_hash_eo.c | ||
msg_hash_eo.h | ||
msg_hash_es.c | ||
msg_hash_es.h | ||
msg_hash_fa.c | ||
msg_hash_fa.h | ||
msg_hash_fi.c | ||
msg_hash_fi.h | ||
msg_hash_fr.c | ||
msg_hash_fr.h | ||
msg_hash_gl.h | ||
msg_hash_he.c | ||
msg_hash_he.h | ||
msg_hash_hu.h | ||
msg_hash_id.h | ||
msg_hash_it.c | ||
msg_hash_it.h | ||
msg_hash_ja.c | ||
msg_hash_ja.h | ||
msg_hash_ko.c | ||
msg_hash_ko.h | ||
msg_hash_lbl.h | ||
msg_hash_nl.c | ||
msg_hash_nl.h | ||
msg_hash_pl.c | ||
msg_hash_pl.h | ||
msg_hash_pt_br.c | ||
msg_hash_pt_br.h | ||
msg_hash_pt_pt.c | ||
msg_hash_pt_pt.h | ||
msg_hash_ru.c | ||
msg_hash_ru.h | ||
msg_hash_sk.c | ||
msg_hash_sk.h | ||
msg_hash_sv.h | ||
msg_hash_tr.c | ||
msg_hash_tr.h | ||
msg_hash_uk.h | ||
msg_hash_us.c | ||
msg_hash_us.h | ||
msg_hash_vn.c | ||
msg_hash_vn.h | ||
progress.h | ||
README.md | ||
steam_ar.json | ||
steam_ast.json | ||
steam_chs.json | ||
steam_cht.json | ||
steam_cy.json | ||
steam_da.json | ||
steam_de.json | ||
steam_el.json | ||
steam_es.json | ||
steam_fa.json | ||
steam_fi.json | ||
steam_fr.json | ||
steam_gl.json | ||
steam_he.json | ||
steam_hu.json | ||
steam_id.json | ||
steam_it.json | ||
steam_ja.json | ||
steam_ko.json | ||
steam_nl.json | ||
steam_pl.json | ||
steam_pt_br.json | ||
steam_pt_pt.json | ||
steam_ru.json | ||
steam_sk.json | ||
steam_sv.json | ||
steam_tr.json | ||
steam_uk.json | ||
steam_us.json | ||
steam_vn.json |
Internationalization Workflow
For Translators
Use Crowdin
- Register user account at https://crowdin.com/
- Join the project https://crowdin.com/project/retroarch/
- Select your language to translate
- Click the file name
msg_hash_us.json
and the editor should open - Select an untranslated (red) string from the list
- Type translation and save
- Next string...
Links:
- Video: How to use Crowdin
- Learn more about contributing
- Learn more about the editor
- Learn more about conversations
- Learn more about joining project
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
- You need to be project admin. Please contact @guoyunhe or @twinaphex
- Go to https://crowdin.com/project/retroarch/settings
- You can manage languages, members etc. here
Links:
- Learn more about project management
- Learn more about inviting project members
- Learn more about roles of members
Message File Format
- Must NOT contain
#else
- 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" )
- 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
- Go to Crowdin and add the language
- Run Crowdin script to download new translations
- Add new language into menu (see #10787)