Languages
RiptOPL ships with English built in and can load additional interface languages from your storage device. This page is about installing and choosing one. If you want to translate RiptOPL, see the maintainer documentation in the repository instead.
What is already there
English is compiled into the ELF and needs no files. It is also the fallback: if a language file is missing a particular string, that string appears in English rather than blank. You will never lose text by switching language.
Installing extra languages
Lookup directly beside the ELF (CWD) and in CWD/LNG is in current releases (added by
PR #1017).
Builds from before that change read only the traditional enabled-device LNG/ folder
or memory-card OPL directory.
The language files are published as a separate release asset, not inside the main package:
RIPTOPL-LANGS-*.zip
It contains the .lng language files and the non-Latin fonts some of them need. To install:
- Download
RIPTOPL-LANGS-*.zipfrom the release. - Extract it.
- For a build with CWD language support, put the selected
lang_<Name>.lngdirectly beside the launched RiptOPL ELF, or inside anLNG/directory beside it. The legacy deviceLNG/folder is also supported. - If the pack contains a matching
font_<Name>.ttfor.otf, copy that file into the same directory as the .lng.
Language lookup has a defined priority order: launched ELF directory (CWD) → CWD/LNG/ → legacy memory-card OPL and enabled-device LNG/ folders. If the same language is installed in multiple places, only one entry is shown, and the highest-priority readable copy is selected. Available devices can still contribute languages during discovery; the CWD path is retried after boot-path resolution when the device was not initially readable.
These are alternatives, not folders to install three copies into:
mass0:/APPS/APP_RIPTOPL/ RIPTOPL.ELF lang_French.lng lang_Japanese.lng font_Japanese.ttf # OR: mass0:/APPS/APP_RIPTOPL/LNG/ lang_French.lng lang_Japanese.lng font_Japanese.ttf # OR, legacy device layout: mass0:/LNG/ lang_French.lng lang_Japanese.lng font_Japanese.ttf
The language registry is dynamically sized rather than capped at 15 external languages, so multiple installed packs no longer compete for a fixed fifteen-entry table.
The RIPTOPL-LANGS archive includes separate versioned language
subfolders. Copy the files inside the selected language subfolder;
do not nest the versioned directory itself under the destination.
File naming
lang_<Name>.lng. RiptOPL takes the text between
lang_ and .lng and shows exactly that in the language picker — so
lang_French.lng appears as French. Renaming the file renames the entry.A language that needs characters the default font does not carry — Japanese, Chinese, Korean, Russian,
Greek or Arabic — can ship its own font beside it, named to match: font_<Name>.ttf or
font_<Name>.otf. RiptOPL loads it automatically when that language is selected, and returns
to the built-in font when you switch back to English. The RIPTOPL-LANGS pack already includes these
fonts. Serbian's is the Croatian font, because the built-in font has no č, ć or
đ and Serbian Latin uses the same letters as Croatian.
Japanese game titles with English menus
RiptOPL supports Unicode/CJK glyph fallback while leaving the interface language in English. Put font_CJK.ttf next to the active settings_riptopl.cfg and restart — not merely in LNG/. No toggle is needed. See the activation guide.
Choosing a language
Settings → Language contains the single menu-language picker and the OSD Defaults action. Select a language, then choose Save Changes on the Settings index. Earlier builds exposed the same menu-language picker under Interface and General & System.
This is not the OSD language setting
Two different things are called "language" in RiptOPL:
| Setting | What it changes |
|---|---|
| Language (Settings → Language) | The language of RiptOPL's own menus. This page. |
| OSD Settings (Triangle on a game, or Settings → Language → OSD Defaults) | The language, TV aspect and video mode handed to the game at launch — it changes what the game sees, not what RiptOPL shows. It does not change the menu language or the console's saved OSDSYS settings. OPL core only; not available under Neutrino. See Per-game Settings. |
Arabic, Persian, CJK, Thai and Lao text
Ported from RIPPS2 build 104 by akilluminati47. NOT TESTED on hardware.
- Arabic and Persian letters are joined into their connected forms (lam-alef as one letter), and each line is laid out right to left. Latin words and numbers keep their own order, and brackets are turned round. Centred Arabic stays centred.
- CJK, Thai and Lao lines may break between letters, but never before closing punctuation or before a vowel that belongs to the letter in front of it.
- Setting hints and message boxes wrap with these rules, break an over-wide word anywhere, and never cut a character in half.
Translators write the text in logical order, as typed; no markup is needed. The language still needs a font that has the glyphs.
Troubleshooting
The language is not in the list. Confirm your build includes the
new CWD discovery feature if using files beside the ELF. Otherwise move the
language into a legacy LNG/ directory. Check the spelling
lang_<Name>.lng, the enabled device/source, and whether the
source has finished initializing. Restart if files were copied while RiptOPL
was already running.
The language appears but the text is boxes or blanks. The font is missing. Copy the matching
font_<Name>.ttf / .otf beside the matching language file — the language
pack zip contains the fonts alongside the language files.
Some strings are still English. That is an untranslated-entry fallback, not proof that your installation is broken. The current build includes 33 external language names, but only 33 fork translation overlays are present, including newly added Galician and Serbian support. Several recently added PS1, RetroAchievements, VMC, parental-lock and DVR messages remain English in many language packs. The number of selectable languages does not mean all menu strings have been translated. Recent translations were backfilled from RIPPS2 by Akilluminati47; community corrections and on-console language checks are still welcome. For contributors, see language maintenance and the coverage audit. A language pack from an older build can also lack the newest entries.
.lng files are read by line position, so a pack from a different build can show the
wrong text rather than falling back to English. If translated strings look mismatched or nonsensical,
download the language pack that goes with your build.