RedM Pause Menu Languages
Included languages
Eight ship in the langs/ folder:
| Code | Language |
|---|---|
en | English — the reference file |
de | German |
es | Spanish |
fr | French |
pt | Portuguese |
ru | Russian |
tr | Turkish |
ro | Romanian |
Pick one in shared/rm_config.lua:
Cfg.Core = {
Locale = 'de',
}The locale drives both the Lua side — commands, notifications — and the UI: every label, header and hint. The active locale is printed on the boot line:
[rm_pausemenu] framework: vorp | locale: deAdding a language
No manifest edit and no code change. The manifest loads langs/*.lua by glob, so any file you drop in is picked up automatically.
Copy the reference file —
langs/en.lua→langs/it.lua.Change the table key at the top to your language code:
luaRMLangs['it'] = { -- …translate every value, keep every key… }Translate the values only. Never rename or remove a key.
Set
Cfg.Core.Locale = 'it'and restart the resource.
Two things to watch
- Keep the file UTF-8 encoded. Accents, Cyrillic and any script render fine — the database is
utf8mb4too, so desk content in any language is safe. - Format placeholders (
%s,%d) must survive translation. Reorder the sentence around them if your grammar demands it, but do not drop them.
Missing keys announce themselves
There is no silent fallback that hides mistakes. Any key missing from the active language renders as the key wrapped in angle quotes, right there in the UI:
⟨bulletin.header⟩This is deliberate
An incomplete translation is obvious at a glance instead of quietly showing the wrong language. If you spot one after an update, copy the new key from langs/en.lua into your translation and restart.
Contributing translations
Polished a translation, or written a new one? Send it in — future releases ship community locales with credit.