Skip to content

Add Russian localization#31

Open
yeezyio wants to merge 2 commits into
Sezzary:masterfrom
yeezyio:add-russian-localization
Open

Add Russian localization#31
yeezyio wants to merge 2 commits into
Sezzary:masterfrom
yeezyio:add-russian-localization

Conversation

@yeezyio

@yeezyio yeezyio commented Jun 22, 2026

Copy link
Copy Markdown

Adds a complete Russian (ru) locale under Assets/Locales/Russian.

What's included

  • Metadata.jsonLabel: "Русский", LanguageCode: "ru".
  • Locale.json — all 1819 keys present; 1641 translated, covering system/UI strings, menus and options, controller config, save locations, item names and descriptions, game-over tips, map labels, and the full in-game script.
  • Source/Assets/Fonts.h — Cyrillic alphabet added to GLYPH_PRECACHE so Russian text is rasterized up front rather than on first use (on-demand caching already handled it; this just avoids first-frame work).

Conventions

  • All formatting control tokens are preserved verbatim ({M}, {N}, {T}, {E}, color codes, timing codes). Verified programmatically: 0 token mismatches across all translated strings.
  • Real-world business and street signage on the paper maps is kept in Latin to match the in-world signs; generic civic labels (e.g. GAS STATIONАЗС, POLICEПОЛИЦИЯ) and interior room names are translated.
  • File is UTF-8 without BOM, matching the existing locale files.

The locale is picked up automatically by the data-driven TranslationManager (no engine changes needed) and appears in Options → Language.

Add a complete Russian (ru) locale under Assets/Locales/Russian with
Metadata.json and a fully translated Locale.json covering system and UI
strings, menus and options, controller config, save locations, item
names and descriptions, game-over tips, map labels, and the full
in-game script.

All formatting control tokens are preserved verbatim ({M}, {N}, {T},
{E}, color codes and timing codes). Real-world business and street
signage on the paper maps is kept in Latin to match the in-world signs,
while generic civic labels and interior room names are translated.

Also add the Cyrillic alphabet to the font glyph precache in
Source/Assets/Fonts.h so Russian text is rasterized up front instead of
on first use.
"Intro_Warning": "{M}В этой игре присутствуют сцены{N}насилия и жестокости.",
"Intro_FearOfBlood": "",
"MainMenu_OpeningQuote": "“",
"MainMenu_ClosingQuote": "”",

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For these main menu selection quotes, I imagine « and » might be more appropriate in Russian over “ and ”? Your call, I'm not a native speaker.

Localize the PaperMap town signage following the same full-localization
approach already used by the Spanish and Japanese locales:
- transliterate street names (e.g. BACHMAN Rd. -> Бакман-роуд),
- translate district headings, generic shop labels and key buildings
  (PHARMACY -> АПТЕКА, ALCHEMILLA HOSPITAL -> БОЛЬНИЦА АЛХЕМИЛЛА,
  MIDWICH ELEMENTARY SCHOOL -> НАЧАЛЬНАЯ ШКОЛА МИДВИЧ),
- keep genuine brand / proper shop names in Latin (QUEEN BURGER, JIM BEAM, ...).

Align in-dialogue references with the localized map (the "Levin st."
sign and note, the town name in the product notice) and unify the
Lakeside amusement park naming.

Restore the {J1} voice-timing value on one chapter-7 line so it stays
in sync with the source.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants