Choose your operating system:
Windows
macOS
Linux
Unreal Engine 4 (UE4) における テキスト ローカライゼーション の主要なコンポーネントは FText
クラスです。次の機能を提供することによりテキスト ローカライゼーションをサポートしているため、すべてのユーザー向けテキストはこのクラスを使用する必要があります。
テキストのフォーマット (プレースホルダー パターンからテキストを生成するため)。
派生テキストの生成 (テキストを大文字または小文字にするなど)。
FText
にはローカライズされていない、または「インバリアント カルチャ」のテキストを作成する AsCultureInvariant
関数 (または INVTEXT
マクロ) も用意されています。これは、外部 API のプレーヤー名をユーザー インターフェースに表示できる形式に変換する場合などに役立ちます。
「FText::GetEmpty()
」、または単に「FText()
」を使用して空白の FText
を作成することができます。
変換
FText
は FString
に変換したり、それから変換することができます。ただし、FText
にはローカライゼーション データにリンクした文字列が含まれていることから、FString
には文字列のみが含まれる一方で、これらのメソッドは本質的に損失が多く、ローカライゼーション データを破棄 (またはその作成に失敗) することになります。代替のメソッドとして テキスト値のマーシャリング を行うと損失のない変換が可能です。しかし、このメソッドでは手動で処理するより内部マーシャリングに適したデータが生成されます。
次の変換関数は FText
文字列を生成しますが、ローカライゼーション データは含まれません。
|
説明 |
---|---|
|
ローカライズされていない、インバリアント カルチャの |
|
ローカライズされていない これは、非エディタ ビルドの |
|
ローカライズされていない |
FText
から FString
に変換するには、ToString
関数を使用します。FString
に変換すると FText
の文字列データは保持しますが、ローカライゼーション データは失われます。
比較
FText
データは単純な文字列に比べるとより複雑なため、多重定義の演算子による比較はサポートしていません。代わりに、含まれている微妙なデータを認識する比較を実行するための関数をいくつか提供しています。次の比較関数を使用できます。
|
説明 |
---|---|
|
この関数は、使用する比較規則を決定する |
|
この関数は、 |
|
この関数は、使用する比較規則を決定する |
|
この関数は、 |
ユーザー インターフェースで FText を使用する
スレート / UMG
スレートおよび UMG はユーザー向けテキストを表示または管理するためのビルトイン ウィジェットの FText
属性または引数を使用します。カスタマイズしたウィジェットをビルドする場合は FText
を使用することを推奨します。
HUD/Canvas
Canvas を使用して HUD システムで FText
を表示するには、新しい FCanvasTextItem
を作成し、表示するテキストに Text
変数を設定します。次にコード例を示します。
// Create a new FCanvasTextItem instance to contain the text.
FCanvasTextItem TextItem(FVector2D::ZeroVector, TestHUDText, BigFont, FLinearColor::Black);
// Add the text into the FCanvasTextItem.
TextItem.Text = FText::Format(LOCTEXT("ExampleFText", "You currently have {0} health left."), CurrentHealth);
// Draw the text to the screen with FCanvas::DrawItem.
Canvas->DrawItem(TextItem, 10.0f, 10.0f);
HUD で Canvas を使用する場合は、DrawItem
を DrawHUD
関数内で呼び出すか、DrawHUD
で始まる一連の関数の中で呼び出す必要があります。