Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool FTextLocalizationResourceGenerator::GenerateLocRes(const FLocTextHelper& InLocTextHelper, const FString& InCultureToGenerate, const bool bSkipSourceCheck, const FString& InLocResID, FTextLocalizationResource& OutLocRes)
- {
- // Add each manifest entry to the LocRes file
- InLocTextHelper.EnumerateSourceTexts([&InLocTextHelper, &InCultureToGenerate, &bSkipSourceCheck, &InLocResID, &OutLocRes](TSharedRef<FManifestEntry> InManifestEntry) -> bool
- {
- // For each context, we may need to create a different or even multiple LocRes entries.
- for (const FManifestContext& Context : InManifestEntry->Contexts)
- {
- // Find the correct translation based upon the native source text
- FLocItem TranslationText;
- InLocTextHelper.GetRuntimeText(InCultureToGenerate, InManifestEntry->Namespace, Context.Key, Context.KeyMetadataObj, ELocTextExportSourceMethod::NativeText, InManifestEntry->Source, TranslationText, bSkipSourceCheck);
- // Add this entry to the LocRes
- FTextLocalizationResource::FKeysTable& KeyTable = OutLocRes.Namespaces.FindOrAdd(*InManifestEntry->Namespace);
- FTextLocalizationResource::FEntryArray& EntryArray = KeyTable.FindOrAdd(*Context.Key);
- FTextLocalizationResource::FEntry& NewEntry = EntryArray[EntryArray.AddDefaulted()];
- NewEntry.LocResID = InLocResID;
- NewEntry.SourceStringHash = FCrc::StrCrc32(*InManifestEntry->Source.Text);
- NewEntry.LocalizedString = TranslationText.Text;
- }
- return true; // continue enumeration
- }, true);
- OutLocRes.DetectAndLogConflicts();
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment