メソッド
Pseudo-Localization Method (疑似ローカライゼーションメソッド) は、Pseudo-Localizer がアプリケーション内のテキストに変更を加えるために使用するメソッドです。全てのメソッドは、ローカライゼーションに関わる特定の種類の問題を発見するのに役立つように設計されています。
以下の表は、各メソッドの出力を示したものです。
メソッド | 出力 | 説明 |
---|---|---|
未適用 | This is an example string. The quick brown fox jumps over the lazy dog. |
Pseudo-Locale Method を適用する前のプレーンテキストです。 |
Preserve Tags | Ţĥîš îš åñ <color=red>éẋåɱþļé</color> šţŕîñĝ· Ţĥé ǫûîçķ ƀŕöŵñ ƒöẋ ĵûɱþš öṽéŕ ţĥé ļåžý ðöĝ· |
Preserve Tags は、文字列内の開始タグと終了タグを保持し、タグが後続の Pseudo Localization Method によって変更されないようにします。デフォルトでは、XML/リッチテキストタグ (< and and with > で始まるタグ) が保持されます。 |
Character Substitutor | _________________________ ____________________________ ______________________ |
Character Substitutor は、文字列内の文字を他の文字に置き換えます。この例では文字が下線に置き換えられています。このメソッドは、UI 内にハードコードされているためにローカライゼーションシステムを経由しないテキストの発見に役立ちます。 |
Accenter | Ţĥîš îš åñ éẋåɱþļé šţŕîñĝ· Ţĥé ǫûîçķ ƀŕöŵñ ƒöẋ ĵûɱþš öṽéŕ ţĥé ļåžý ðöĝ· |
Accenter は、全ての文字をアクセント付きバージョンに置き換えます。このメソッドは、フォントがサポートしていない文字を特定したり、アクセント付きテキストが領域内に収まらない可能性がある箇所を特定するのに役立ちます。 |
Encapsulator | [This is an example string. The quick brown fox jumps over the lazy dog.] |
Encapsulator は、各文字列を囲む角括弧です。これは、テキストが切れている箇所や連結されている箇所の特定に役立ちます。 |
Expander | This is an example string. The quick brown fox jumps over the lazy dog.,rAR]/GDcU;"K9X&-l%Nj\ |
Expander は、ローカライゼーションの結果のテキストの (長さの) 拡張をシミュレートします。これは、文字列が長くなる言語に十分なスペースがない箇所や、テキストが切れてしまう可能性がある箇所の特定に役立ちます。 |
Mirror | .god yzal eht revo spmuj xof nworb kciuq ehT .gnirts elpmaxe na si sihT |
Mirror は文字列を反転させます。デザイン変更の際にこれを使用することで、右書き言語を表示した時の UI の見た目をシミュレートできます。 |
メソッドは組み合わせることもできます。Pseudo-Localization システムは、これらのメソッドを、Methods リストに表示されている順に 1 つずつ適用します。例えば、デフォルトの Pseudo-Locale アセットには Accenter、Encapsulator、Expander が含まれており、結果は以下のようになります。
[Ţĥîš îš åñ éẋåɱþļé šţŕîñĝ· Ţĥé ǫûîçķ ƀŕöŵñ ƒöẋ ĵûɱþš öṽéŕ ţĥé ļåžý ðöĝ·,ŕÅŔ⁆⁄ĜÐçÛ⁏″Ķ⑨Ẋ⅋‐ļ‰Ñĵ∖]
Preserve Tags
Preserve Tags メソッドは、後続のメソッドがその条件に一致するテキストを修正しないようにします。条件は、Opening の値で開始して Closing の値で閉じるタグで定義されます。Opening の値と Closing の値に挟まれたテキストが "読み取り専用" としてマークされ、後続の Pseudo-Localization Method によって修正されないようになります。これは、XML や Rich Text その他のタイプのタグが Pseudo-Localization によって修正されないようにするために役立ちます。
プロパティ | 説明 |
---|---|
Opening | タグの始まりを示す、先頭の文字です。 |
Closing | タグの終わりを示す、末尾の文字です。 |
Character Substitutor
Character Substitutor は、文字列内の個々の文字を置き換えます。
プロパティ | 説明 |
---|---|
Substitution Method: | Substitution Method ドロップダウンメニューは、置換方法 (To Upper、To Lower、List、Map) の指定に使用します。 |
To Upper | この文字列のコピーを大文字に変換して返します。 |
To Lower | この文字列のコピーを小文字に変換して返します。 |
List | この文字列のコピーを返しますが、文字列内の文字を、Pseudo-Localization Method の Replacement List で定義された文字に置き換えます。ハードコードされたテキストを見付けやすくするには、全ての文字に 1 つの項目を使用することが推奨されます。 |
|
List Mode ドロップダウンメニューには以下の 3 つのオプションが含まれています。
|
|
Replacement List には、Character Substitutor が文字列内の元のテキスト文字を置き換えるために使用できる全ての文字が含まれます。 Size を使用して、置換後の文字として使用可能にする文字の数を設定できます。Element テキストフィールドには、使用したい文字を手動で入力できます。 |
|
Replacement List に特定の言語で一般的に使用されている文字を追加するには、Add Typical Character Set ドロップダウンメニューから言語を選択してください。これは特に、不足している文字セットに関してフォントをテストするのに役立ちます。 |
Map | この文字列のコピーを、文字列内の特定の文字をユーザー定義の文字に置き換えた状態で返します。例えば、全ての小文字の e を大文字の E に置き換えるように指定したりすることができます。 |
|
Replacement Characters リストを使用して、どの文字を何に置き換えるかを指定します。 特定の置換を追加するには、Replacement Characters 折り畳みメニューを開き、テーブルのヘッダー内にあるプラス (+) ボタンを選択してください。Original 列に元の文字を入力し、Replacement 列に置換文字を入力します。 |
Accenter
Accenter は、全ての文字をアクセント付きバージョンに置き換えます。これは、アクセント付きテキスト文字が、高さの制限された領域の中に収まるかどうか確認するのに役立ちます。
プロパティ | 説明 |
---|---|
Replacement Characters | Replacement Characters リストを使用して、どの文字を何に置換するか指定します。Original 列に元の文字を入力し、Replacement 列に置換文字を入力してください。デフォルトでは、元の文字のアクセント付きバージョンに置き換わるように設定されています。 これらのテキストフィールドは編集でき、行の隣にあるマイナス (-) ボタンを押すと削除できます。 |
Encapsulator
Encapsulator は、文字列の境界のどちらかの側に文字を追加します。これは複数の文字列を含むテキストの部分部分を視覚的に識別するのに役立ちます。デフォルトでは角括弧が挿入されます。
プロパティ | 説明 |
---|---|
Start | テキストの文字列の直前に表示する文字を設定します。これはデフォルトでは左角括弧に設定されています。 |
End | テキストの文字列の直後に表示する文字を設定します。これはデフォルトでは右角括弧に設定されています。 |
連結された文字列は、しばしばローカライゼーションの問題を発生させます。理由としては、内容が特定の順序に固定されること (例えば、一部の言語では文章の目的語の前に動詞が来ますが、他の言語では動詞の前に目的語が来ます) 、また一部の翻訳はその前後の内容によって変化する場合があることが考慮されないことが挙げられます。 例えば、"You picked up 1 apple" という文字列は、スクリプト内では以下のように 2 つの文字列から構成される場合があります。
string PickupItemText(int amount, string itemName)
{
string localizedText = LocalizeText("You picked up")
string localizedItem = LocalizeText(itemName);
return $"{localizedText} {amount} {localizedItem}";
}
この場合、疑似ローカライズされた文字列は [You picked up] 1 [apple]
と表示されます。この文字列は、異なる文章構造を持つ言語には適切に翻訳されない可能性があります。より良い形で文字列を構築するひとつの方法は、Smart String を使用することです。
Expander
Expander は、ローカライゼーションの結果として起こるテキストの拡張をシミュレートします。これは、文字列が長くなる言語に十分なスペースがない箇所と、テキストが切れてしまう可能性が高い問題のある箇所を示します。 一部の言語 (英語を含む) では、長い文字列よりも短い文字列のほうがより拡張することがよくあります。Expander では、この問題をシミュレートするために、文字列の長さに応じて異なる拡張値を指定することができます。また、入力文字列の長さに応じて複数の規則を追加することもできます。
プロパティ | 説明 |
---|---|
String Length / Expansion(table) | テーブルを使用して、文字列の長さに応じて文字列に追加する文字の数を定義してください。String Length の値は文字列内の文字の数を範囲で定義します。Expansion の値は、追加する文字の数を決定する乗数です。例えば、String Length が 0-10 で、この範囲の Expansion が 2 の場合、文字列の長さが 0-10 の全ての文字に 2 を掛け、それを文字列に追加します (したがって 7 文字の文字列の場合はadditional 14 文字が追加されて合計 21 文字になります)。 デフォルトでは、Expander は以下の値を使用します。:
テーブルに新しい範囲を追加するには、テーブルのヘッダーの隣にあるプラス (+) ボタンをクリックしてください。新しい行の範囲は、直前の行の範囲の末尾から自動的に開始されます。 どの程度拡張すれば良いか分からない場合は、下記の Guideline expansion values を参照してください。 |
Location | 追加的な文字を挿入する場所 (文字列の Start、End、あるいはBoth) を定義します。Both を選択すると、Pseudo-Localization システムによって、半分が文字列の先頭に、もう半分が文字列の末尾に適用されます (奇数値の場合は末尾にもう 1 つ追加されます)。これはデフォルトでは End に設定されています。 |
Minimum String Length | この値を使用して、疑似ローカライゼーション後の文字列の最小の長さを調整できます。Pseudo-Localization システムは、ランタイムで、この値と String Length の値の両方に基づいて文字列の長さを計算し、どちらか大きい方を使用します。 |
Padding Characters | Padding Characters リストには、Expander が文字列に文字を追加するために使用する全ての文字が一覧表示されます。Size を使用して使用可能な文字の数を定義し、Element テキストフィールドを使用して使用したい文字を手動で入力します。デフォルトでは Size は 93 に設定されており、Expander は全ての大文字、小文字、標準 US キーボードの記号を使用しています。 |
Expansion の指針値
以下の表は、English (英語) から翻訳する場合の Expansion (拡張) 値の指針を示すものです。
言語 | English からの Expansion 値 |
---|---|
Arabic | +20% - +25% |
Croatian | 15% |
Czech | 10% |
Danish | -10% - -15% |
Finnish | -25% - -30% |
French | +15% - +20% |
German | +10% - +35% |
Greek | 10% |
Hebrew | -20% - -30% |
Hindi | +15% - +35% |
Italian | +10% - +25% |
Japanese | -10% - -55% |
Korean | -10% - -15% |
Norwegian | -5% - -10% |
Polish | +20% - +30% |
Portuguese | +15% - +30% |
Russian | 15% |
Spanish | +15% - +30% |
Swedish | -10% |
Mirror
Mirror メソッドは、右書き言語をシミュレートするために入力文字列を反転させます。このメソッドには設定項目はありません。
カスタムメソッド
新しい Pseudo-Localization Method を作成するには、IPseudoLocalizationMethod インターフェースを実装してください。Unity によって、Pseudo-Locale アセットの使用可能メソッドのリストにカスタムメソッドが追加されます。
Pseudo-Locale アセットを適用する
再生モードを開始すると、ゲームビューの右上の角にドロップダウンメニューが表示されます。これを使用して Pseudo-Locale アセットを使用できます。Pseudo-Locale アセットを選択すると、テキストが、その Pseudo-Locale アセットによって定義された疑似ローカライズ値に置き換えられます。
テキストが置換される値は Pseudo-Locale アセットの Source Locale Code によって定義されます。例えば、English (en) をソースとして使用する Pseudo-Locale は English の文字列を読み込み、その文字列に疑似ローカライゼーションを適用します。1 つのプロジェクトに複数の Pseudo-Locale アセットを使用して、それぞれをカスタマイズして異なるソースロケールを使用するようにしたり特定の問題をhighlightすることができます。