PortableObjectName
PortableObjectName
#Overview
name: PortableObjectName
The value of this variable can be defined or overridden in .ini config files. 31
.ini config files referencing this setting variable.
It is referenced in 4
C++ source files. Also referenced in 1
C# build file meaning it may affect the build system logic.
#Summary
#Usage in the C++ source code
The purpose of PortableObjectName is to specify the filename for the Portable Object (PO) format file used in the localization process of Unreal Engine 5. This setting variable is primarily used in the internationalization and localization systems of the engine.
Based on the callsites, the Localization module and the TranslationEditor module rely on this setting variable. It’s used in configuration scripts for importing and exporting localization data, as well as in user-generated content localization.
The value of this variable is typically set in configuration files or through the Unreal Engine editor interface. In the code, it’s often added to a configuration section using the key “PortableObjectName”.
This variable interacts with other localization-related variables such as ManifestName and ArchiveName, which are used to specify the names of other files in the localization process.
Developers must be aware that this variable is crucial for the correct naming and identification of PO files in the localization workflow. Incorrect naming could lead to issues in the localization process.
Best practices when using this variable include:
- Using consistent naming conventions across projects.
- Ensuring the specified filename ends with the “.po” extension.
- Using unique names for different targets or plugins to avoid conflicts.
- Considering using programmatic naming (as seen in the UserGeneratedContentLocalization namespace) for dynamically generated content.
When working with this variable, developers should also be familiar with the overall localization workflow in Unreal Engine 5 to understand how the PO files fit into the bigger picture of internationalization and localization.
#Setting Variables
#References In INI files
<Workspace>/Engine/Config/Localization/Category.ini:7, section: [CommonSettings]
<Workspace>/Engine/Config/Localization/Editor.ini:7, section: [CommonSettings]
<Workspace>/Engine/Config/Localization/EditorTutorials.ini:12, section: [CommonSettings]
<Workspace>/Engine/Config/Localization/Engine.ini:6, section: [CommonSettings]
<Workspace>/Engine/Config/Localization/Keywords.ini:6, section: [CommonSettings]
<Workspace>/Engine/Config/Localization/PortableObjectExport.ini:17, section: [GatherTextStep0]
<Workspace>/Engine/Config/Localization/PortableObjectExport.ini:25, section: [GatherTextStep1]
<Workspace>/Engine/Config/Localization/PortableObjectExport.ini:33, section: [GatherTextStep2]
<Workspace>/Engine/Config/Localization/PortableObjectExport.ini:41, section: [GatherTextStep3]
<Workspace>/Engine/Config/Localization/PortableObjectExport.ini:49, section: [GatherTextStep4]
<Workspace>/Engine/Config/Localization/PortableObjectImport.ini:17, section: [GatherTextStep0]
<Workspace>/Engine/Config/Localization/PortableObjectImport.ini:25, section: [GatherTextStep1]
<Workspace>/Engine/Config/Localization/PortableObjectImport.ini:33, section: [GatherTextStep2]
<Workspace>/Engine/Config/Localization/PortableObjectImport.ini:41, section: [GatherTextStep3]
<Workspace>/Engine/Config/Localization/PortableObjectImport.ini:49, section: [GatherTextStep4]
<Workspace>/Engine/Config/Localization/PropertyNames.ini:7, section: [CommonSettings]
<Workspace>/Engine/Config/Localization/ToolTips.ini:7, section: [CommonSettings]
<Workspace>/Engine/Plugins/Online/Android/OnlineSubsystemGooglePlay/Config/Localization/OnlineSubsystemGooglePlay.ini:6, section: [CommonSettings]
<Workspace>/Engine/Plugins/Online/IOS/OnlineSubsystemIOS/Config/Localization/OnlineSubsystemIOS.ini:6, section: [CommonSettings]
<Workspace>/Engine/Plugins/Online/OnlineFramework/Config/Localization/OnlineFramework.ini:6, section: [CommonSettings]
<Workspace>/Engine/Plugins/Online/OnlineSubsystem/Config/Localization/OnlineSubsystem.ini:6, section: [CommonSettings]
<Workspace>/Engine/Plugins/Online/OnlineSubsystemAmazon/Config/Localization/OnlineSubsystemAmazon.ini:6, section: [CommonSettings]
<Workspace>/Engine/Plugins/Online/OnlineSubsystemFacebook/Config/Localization/OnlineSubsystemFacebook.ini:6, section: [CommonSettings]
<Workspace>/Engine/Plugins/Online/OnlineSubsystemOculus/Config/Localization/OnlineSubsystemOculus.ini:6, section: [CommonSettings]
<Workspace>/Engine/Plugins/Online/OnlineSubsystemSteam/Config/Localization/OnlineSubsystemSteam.ini:6, section: [CommonSettings]
<Workspace>/Engine/Plugins/Online/OnlineSubsystemUtils/Config/Localization/OnlineSubsystemUtils.ini:6, section: [CommonSettings]
<Workspace>/Engine/Plugins/Runtime/HTTPChunkInstaller/Config/Localization/HTTPChunkInstaller.ini:6, section: [CommonSettings]
<Workspace>/Projects/Lyra/Config/Localization/EngineOverrides_Export.ini:23, section: [CommonSettings]
<Workspace>/Projects/Lyra/Config/Localization/EngineOverrides_Import.ini:23, section: [CommonSettings]
<Workspace>/Projects/Lyra/Config/Localization/Game_Export.ini:23, section: [CommonSettings]
<Workspace>/Projects/Lyra/Config/Localization/Game_Import.ini:23, section: [CommonSettings]
... omitting 1 locations ...
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Developer/Localization/Private/LocalizationConfigurationScript.cpp:584
Scope (from outer to inner):
file
namespace LocalizationConfigurationScript
function FLocalizationConfigurationScript GenerateImportTextConfigFile
Source code excerpt:
POFileName = GetDefaultPOFileName( Target );
}
ConfigSection.Add( TEXT("PortableObjectName"), POFileName );
Script.AddCommonSettings(MoveTemp(ConfigSection));
}
// GatherTextStep0 - InternationalizationExport
{
#Loc: <Workspace>/Engine/Source/Developer/Localization/Private/LocalizationConfigurationScript.cpp:713
Scope (from outer to inner):
file
namespace LocalizationConfigurationScript
function FLocalizationConfigurationScript GenerateExportTextConfigFile
Source code excerpt:
POFileName = GetDefaultPOFileName(Target);
}
ConfigSection.Add( TEXT("PortableObjectName"), POFileName );
Script.AddCommonSettings(MoveTemp(ConfigSection));
}
// GatherTextStep0 - InternationalizationExport
{
#Loc: <Workspace>/Engine/Source/Developer/Localization/Private/UserGeneratedContentLocalization.cpp:257
Scope (from outer to inner):
file
namespace UserGeneratedContentLocalization
function bool ExportLocalization
Source code excerpt:
ConfigSection.Add(TEXT("ManifestName"), FString::Printf(TEXT("%s.manifest"), *Plugin->GetName()));
ConfigSection.Add(TEXT("ArchiveName"), FString::Printf(TEXT("%s.archive"), *Plugin->GetName()));
ConfigSection.Add(TEXT("PortableObjectName"), FString::Printf(TEXT("%s.po"), *Plugin->GetName()));
ConfigSection.Add(TEXT("GatheredSourceBasePath"), FPaths::ConvertRelativePathToFull(Plugin->GetBaseDir()));
ConfigSection.Add(TEXT("CopyrightNotice"), ExportOptions.CopyrightNotice);
ConfigSection.Add(TEXT("NativeCulture"), ExportOptions.UGCLocDescriptor.NativeCulture);
#Loc: <Workspace>/Engine/Source/Editor/TranslationEditor/Private/InternationalizationExportSettings.h:33
Scope (from outer to inner):
file
class class UInternationalizationExportSettings : public UObject
Source code excerpt:
/** Filename for the Portable Object format file */
UPROPERTY(Category = GatherTextStep, EditAnywhere, config)
FString PortableObjectName;
/** Name of the manifest file */
UPROPERTY(Category = GatherTextStep, EditAnywhere, config)
FString ManifestName;
/** Name of the archive file */
#References in C# build files
This variable is referenced in the following C# build files:
Location: <Workspace>/Engine/Source/Programs/AutomationTool/Scripts/Localisation.Automation.cs:1019
string PortableObjectName;
if (!LocalizationConfig.GetString("CommonSettings", "PortableObjectName", out PortableObjectName))
{
throw new AutomationException("Failed to find a required config key! Section: 'CommonSettings', Key: 'PortableObjectName', File: '{0}'", LocalizationConfigFile);
}
string NativeCulture;
if (!LocalizationConfig.GetString("CommonSettings", "NativeCulture", out NativeCulture))