Guest User

GenerateLocRes

a guest
Sep 2nd, 2018
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. bool FTextLocalizationResourceGenerator::GenerateLocRes(const FLocTextHelper& InLocTextHelper, const FString& InCultureToGenerate, const bool bSkipSourceCheck, const FString& InLocResID, FTextLocalizationResource& OutLocRes)
  2. {
  3.     // Add each manifest entry to the LocRes file
  4.     InLocTextHelper.EnumerateSourceTexts([&InLocTextHelper, &InCultureToGenerate, &bSkipSourceCheck, &InLocResID, &OutLocRes](TSharedRef<FManifestEntry> InManifestEntry) -> bool
  5.     {
  6.         // For each context, we may need to create a different or even multiple LocRes entries.
  7.         for (const FManifestContext& Context : InManifestEntry->Contexts)
  8.         {
  9.             // Find the correct translation based upon the native source text
  10.             FLocItem TranslationText;
  11.             InLocTextHelper.GetRuntimeText(InCultureToGenerate, InManifestEntry->Namespace, Context.Key, Context.KeyMetadataObj, ELocTextExportSourceMethod::NativeText, InManifestEntry->Source, TranslationText, bSkipSourceCheck);
  12.  
  13.             // Add this entry to the LocRes
  14.             FTextLocalizationResource::FKeysTable& KeyTable = OutLocRes.Namespaces.FindOrAdd(*InManifestEntry->Namespace);
  15.             FTextLocalizationResource::FEntryArray& EntryArray = KeyTable.FindOrAdd(*Context.Key);
  16.             FTextLocalizationResource::FEntry& NewEntry = EntryArray[EntryArray.AddDefaulted()];
  17.             NewEntry.LocResID = InLocResID;
  18.             NewEntry.SourceStringHash = FCrc::StrCrc32(*InManifestEntry->Source.Text);
  19.             NewEntry.LocalizedString = TranslationText.Text;
  20.         }
  21.  
  22.         return true; // continue enumeration
  23.     }, true);
  24.  
  25.     OutLocRes.DetectAndLogConflicts();
  26.  
  27.     return true;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment