Skip to main content

Symptoms

One of the following in a product’s interface:
  • a key name such as hud.legend.title appears where a label should be;
  • most of the interface is in the language you chose, but a few strings are not;
  • the language does not change at all, whatever you set;
  • a word you reworded is back to the original after an update;
  • a placeholder is missing from a sentence, leaving a gap.

Likely cause

  • A key name on screen means the key is missing from both the active language file and the fallback language file. This is what an incomplete translation looks like.
  • A few strings in the wrong language means those keys are missing from the active language file only, so the fallback language is used for them.
  • The language never changes means active is not listed in available, or the resource was not restarted. A language outside available is ignored and the fallback is used, without any message.
  • A reworded string is back means an update replaced your language file.
  • A missing placeholder means a placeholder was renamed or removed while editing. A placeholder the product does not supply is replaced with nothing.

Resolution

Restart the resource

Language files are read at start, like configuration.

Check the active language against available and the files present

In configs/locales.jsonc, confirm active appears in available, and that both name a file in the product’s locales directory: it needs locales/it.json. A mismatch is silent.

Find the missing key

For a key name showing on screen, search the product’s language files for that key. Add it to the active language file, keeping the same nesting.If it is missing from every file, the release does not ship it. Report it. See Getting help.

Check the file can be read

A language file with a syntax error yields no text at all, so every key falls back to the fallback language. It is reported once at start:
If a whole language stopped working after an edit, look for a trailing comma or a missing bracket.
Unlike configuration files, language files are plain JSON: comments are not allowed in them.

Restore placeholders

Compare your edited line with the same line in the file the release shipped. Placeholders are the parts in braces, such as {count}. Keep them, keep their names, and keep the plural branches around them.

If you added a language

Confirm all three edits are in place: the language file itself, its line in the files block of the resource’s fxmanifest.lua, and its entry in available in configs/locales.jsonc. Missing the fxmanifest.lua line means the file never reaches players, so the language appears to have no effect. See Languages and text.

Verification

Restart the resource and confirm in game that every label is in the expected language, with no key names and no gaps in sentences. Check a screen that shows counts, if the product has one, so plural wording is covered too.