using System;
namespace UnityEngine.Localization.Pseudo
{
///
/// Encapsulates a string between 2 other strings.
/// The default will add brackets around each input, to show where messages have
/// been concatenated together and to indicate if text has been clipped in the UI.
/// Concatenating text is a particular issue as some languages may need to reorder
/// phrases or the translation may change depending on what is around it.
///
[Serializable]
public class Encapsulator : IPseudoLocalizationMethod
{
[SerializeField]
string m_Start = "[";
[SerializeField]
string m_End = "]";
///
/// String that will be added to the start of the input string.
///
public string Start
{
get => m_Start;
set => m_Start = value;
}
///
/// String that will be added to the end of the input string.
///
public string End
{
get => m_End;
set => m_End = value;
}
///
/// Encapsulates the input between the and strings.
///
///
public void Transform(Message message)
{
var startBracket = message.CreateReadonlyTextFragment(Start);
var closingBracket = message.CreateReadonlyTextFragment(End);
message.Fragments.Insert(0, startBracket);
message.Fragments.Add(closingBracket);
}
}
}