FText FText::Format(const FText& Pattern, const FFormatNamedArguments& Arguments) { checkf(FInternationalization::Get().IsInitialized() == true, TEXT("FInternationalization is not initialized. An FText formatting method was likely used in static object initialization - this is not supported.")); //SCOPE_CYCLE_COUNTER( STAT_TextFormat ); struct FArgumentGetter { const FFormatNamedArguments& Arguments; FArgumentGetter(const FFormatNamedArguments& InArguments) : Arguments(InArguments) {} const FFormatArgumentValue* GetArgumentValue( const FString ArgumentName ) { return Arguments.Find(ArgumentName); } }; FArgumentGetter ArgumentGetter(Arguments); return FLegacyTextHelper::Format(Pattern, FGetArgumentValue::CreateRaw(&ArgumentGetter, &FArgumentGetter::GetArgumentValue)); }
FText FText::Format(const FText& Pattern, const FFormatOrderedArguments& Arguments) { checkf(FInternationalization::Get().IsInitialized() == true, TEXT("FInternationalization is not initialized. An FText formatting method was likely used in static object initialization - this is not supported.")); //SCOPE_CYCLE_COUNTER( STAT_TextFormat ); struct FArgumentGetter { const FFormatOrderedArguments& Arguments; FArgumentGetter(const FFormatOrderedArguments& InArguments) : Arguments(InArguments) {} const FFormatArgumentValue* GetArgumentValue( const FString ArgumentName ) { int32 ArgumentIndex = INDEX_NONE; if( ArgumentName.IsNumeric() ) { ArgumentIndex = FCString::Atoi(*ArgumentName); } return ArgumentIndex != INDEX_NONE && ArgumentIndex < Arguments.Num() ? &(Arguments[ArgumentIndex]) : NULL; } }; FArgumentGetter ArgumentGetter(Arguments); return FLegacyTextHelper::Format(Pattern, FGetArgumentValue::CreateRaw(&ArgumentGetter, &FArgumentGetter::GetArgumentValue)); }
FText FText::Format(const FText& Pattern, const TArray< FFormatArgumentData > InArguments) { checkf(FInternationalization::IsInitialized() == true, TEXT("FInternationalization is not initialized. An FText formatting method was likely used in static object initialization - this is not supported.")); //SCOPE_CYCLE_COUNTER( STAT_TextFormat ); struct FArgumentGetter { const FFormatNamedArguments& Arguments; FArgumentGetter(const FFormatNamedArguments& InArguments) : Arguments(InArguments) {} const FFormatArgumentValue* GetArgumentValue( const FString ArgumentName ) { return Arguments.Find(ArgumentName); } }; FFormatNamedArguments FormatNamedArguments; for(auto It = InArguments.CreateConstIterator(); It; ++It) { FormatNamedArguments.Add(It->ArgumentName.ToString(), FFormatArgumentValue(It->ArgumentValue)); } FArgumentGetter ArgumentGetter(FormatNamedArguments); return FLegacyTextHelper::Format(Pattern, FGetArgumentValue::CreateRaw(&ArgumentGetter, &FArgumentGetter::GetArgumentValue)); }