예제 #1
0
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));
}
예제 #2
0
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));
}
예제 #3
0
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));
}