コンテンツにスキップ

説明

Documentation: wiki.teufel-engineering.com/en/LocaleGuard/documentation — the complete manual, readable in full before you buy: installation, API, settings, the demo map and a troubleshooting section.

Finds the text you forgot to localize and the text that will not fit.

Every localization plugin on the marketplace imports and manages translations. None of them checks them. LocaleGuard is the check.

The three failures that reach a store page

1. Text nobody can translate. A widget or a Blueprint that displays a literal string instead of an FText with a namespace and a key. The gather never sees it, so no translator ever sees it - and because it looks perfectly correct in English, nobody notices until a player who does not read English does.

2. A translation that is missing or blank. A key the source language defines and a target language does not, or one that came back empty. Reported per culture, so German and Russian are two separate answers, not one vague total.

3. Text that will not fit. German runs about 30 % longer than English. Russian runs longer still. A button that fits in English is a button with its label cut in half in German - and you find out in a store screenshot.

That third one is the check nobody else offers, because it cannot be done from a spreadsheet. It needs the running game. LocaleGuard measures every visible UTextBlock with Slate's own font measuring service against the tile the layout actually gave it, draws a red frame around each one that does not fit, and writes the overhang next to it in pixels.

Catch it before you translate anything

The overflow check does not wait for a translator. Turn on the pseudo-localization reserve - 1.3 by default, roughly how much longer German runs - and the source string is measured as if it had already grown.

One console command tells you which buttons are doomed, in the sprint they were built, while somebody still remembers why they are that width.

Three ways to run it. One checker.

In the editor. Tools > Locale Guard. Path, rule set, languages, Scan. A sortable table with severity and check filters and a search box. Double-click a finding to jump the Content Browser straight to the asset.

In the running game. Five console commands, so a tester never leaves the level:

LocaleGuard.Scan LocaleGuard.Culture de LocaleGuard.Pseudo 1 LocaleGuard.Show 1 LocaleGuard.Export

On the build server. A commandlet with exit codes that mean something:

UnrealEditor-Cmd.exe YourProject.uproject -run=LocaleGuard -Path=/Game -Cultures=de,ru -FailOn=Error -Format=json -Out=Saved/report.json

0 clean · 1 findings above the threshold · 2 the run itself was misconfigured.

That third code is the one that matters. Without it a build server cannot tell "checked and good" apart from "never checked at all" - and will happily report a pass on a check that never ran.

What you configure

A rule set as a data asset: target languages, exception paths for debug widgets, minimum literal length so OK and 42 do not drown the report, a growth reserve per project, and a severity of Info, Warning or Error per check - so a house rule can be advisory while a shipping-blocker is fatal. Project defaults live in Project Settings, and the build server command shortens to -run=LocaleGuard.

What LocaleGuard is not

It does not translate. It does not import CSV. It does not manage a translation memory. It does not change a single character of your text. It is not a replacement for the Localization Dashboard - it is the check that framework never shipped with.

It tells you what is missing and what does not fit. Fixing is yours.

Under the hood

The rule engine is a static function over plain structs - no world, no subsystem, no asset registry - so it is covered by automation tests and callable from your own tooling. The editor window, the in-game overlay and the commandlet all drive that same function, which is why they cannot drift into three different answers. Full C++ source is included, with a demo map that fails on purpose so you can see all three checks fire in one click.

Unreal Engine 5.8 · Win64 · Full source · No third-party code

Documentation: https://wiki.teufel-engineering.com/en/LocaleGuard/documentation Support: [email protected]

含まれる形式