RiptOPL DOCS

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

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:

  1. Download RIPTOPL-LANGS-*.zip from the release.
  2. Extract it.
  3. Copy the files into the LNG/ folder on the device you boot RiptOPL from.

RiptOPL looks for an LNG/ folder under each enabled source's configured prefix, and on the memory card. Any device you have enabled can supply languages โ€” they do not all have to live in one place.

LNG/
  lang_French.lng
  lang_Japanese.lng
  font_Japanese.ttf

File naming

โš  The filename is the language name
A language file must be named 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, Arabic, Thai โ€” 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.

Choosing a language

Settings โ†’ Interface โ†’ Language. The list contains English plus every .lng file RiptOPL found. Save settings to keep the choice.

โ„น Languages are discovered per device, as devices come up
A language on a device that was not ready when RiptOPL started will not be in the list yet. If a language is missing, make sure that device is enabled and its page has populated, then reopen Settings.

This is not the OSD language setting

Two different things are called "language" in RiptOPL:

SettingWhat it changes
Language (Settings โ†’ Interface)The language of RiptOPL's own menus. This page.
OSD Settings (Triangle on a game, or Game Launching โ†’ OSD Defaults)The language, TV aspect and video mode written into EEPROM as a game boots โ€” it changes what the game sees, not what RiptOPL shows. OPL core only; not available under Neutrino. See Per-game Settings.

Troubleshooting

The language is not in the list. Confirm the file is in an LNG/ folder under an enabled device's configured prefix, that it is named lang_<Name>.lng, and that the device page has finished populating.

The language appears but the text is boxes or blanks. The font is missing. Copy the matching font_<Name>.ttf / .otf into the same LNG/ folder โ€” the language pack zip contains the fonts alongside the language files.

Some strings are still English. Expected. Untranslated strings fall back to English rather than appearing blank, and a language pack from an older build will not have RiptOPL's newest strings.

โš  Match the language pack to the build
.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.