Appearance
FAQ (EN)
How do I run string extraction?
- Select one or more translatable assets in Unity.
- Run
Tools/Hyper PO Localization/Extract Strings. - You can also use the Project window context menu (right-click):
Assets/Hyper PO Localization/Extract Strings. - Extraction is selection-based: only the currently selected assets are processed.
Where can I confirm extraction results?
- Check Unity Console.
- The extraction step writes a summary log with counts and manifest path.
Should I use POT workflow or Poedit "Update from Code"?
- Both are supported.
- POT workflow (
Extract Strings->Create/Update POT) is the canonical template-based flow. Update from Codeis valid for day-to-day updates when scanning generatedTemp/*.php.
Can Poedit scan C# runtime calls directly?
Yes. Use *.cs and configure these keywords:
GetString:1GetStringContext:1c,2GetPlural:1,2GetPluralContext:1c,2,3
Can I mix C# scan and generated PHP scan in the same Poedit project?
- If keys are identical (
msgctxt + msgid + msgid_plural), gettext merges them. - Still, prefer one source per Poedit project to reduce noisy references and near-duplicates from extraction differences.
Why are some runtime strings missing in Poedit?
- Static parsing only detects literal arguments.
GetString("Quest Title")can be extracted.GetString(dynamicKey)cannot be discovered statically.
For dynamic keys, add entries to a ManualTranslations asset:
Create/Hyper/Language/Manual Translations
How do I include context and plural forms?
- Use contextual/plural runtime methods (
GetStringContext,GetPlural,GetPluralContext) with literal keys when possible. - In asset extraction workflows, you can provide metadata with attributes such as
TranslationContextandTranslationPlural. - Full attribute reference:
Documentation/ExtractionAttributes.md.
Where are localization files stored?
- Generated extraction files (for Poedit source parsing):
Assets/HyperMegaPixel/POLocalization/Temp - Runtime language files:
Assets/StreamingAssets/Languages
Known Limits
Extract Stringsis selection-based. Only selected assets are processed in each run.- Static parsing cannot infer dynamic runtime keys (for example
GetString(dynamicKey)). - Using mixed scan sources in one Poedit project (C# + generated PHP) can add noisy references, even when identical keys are merged.