検索フィルター
Localization パッケージは、ローカライズ済み文字列とアセットの参照の選択に関して Unity Search をサポートしています。 Unity エディター 2022.1 では、Localization パッケージは Visual Query Builder をサポートしており、検索を補助するカスタムの視覚的クエリブロックもいくつか含まれています。
検索ピッカーはデフォルトで有効になっており、Localization の Preferences ウィンドウ (メニュー: Edit > Preferences > Localization) で有効/無効を切り替えられます。
検索を補助するいくつかのフィルターが任意で使用可能です。
ローカライズ済み文字列の参照を検索する場合、検索は以下のフィールドに対して実行されます。
- テーブルコレクション名
- エントリーキー
- 各テーブルエントリーの、ローカライズ済み値
ローカライズ済みアセットの参照を検索する場合、検索は以下のフィールドに対して実行されます。
- テーブルコレクション名
- エントリーキー
- 各テーブルエントリーのアセット GUID とファイル名
フィルター
ローカライズ済み文字列およびアセットの参照の検索にあたっては、以下のフィルターが使用可能です。
| フィルター名 | フィルタータグ | Description | 例 |
|---|---|---|---|
| Collection Name | col | エントリー毎にテーブルコレクション名をクエリします。 | col:gameテーブルコレクション内の、Game にファジーマッチ (あいまい一致) する全てのエントリーを見付けます ("Game UI" や "My Game Text" など)。 col="Game UI"テーブル "Game UI" 内の全てのエントリーを見付けます。 用語にスペースが含まれている場合、それはコメント内に配置される必要があります。 |
| Collection Group | grp | エントリー毎にテーブルコレクショングループをクエリします。 | grp:UIテーブルコレクション内の、UI にファジーマッチ (あいまい一致) するグループを持つ全てのエントリーを見付けます ("Game UI"、"Level1/UI/Text" など) 。 |
| Key Name | key | Key Name フィルターは、各エントリーの名前値に対するクエリに使用されます。 | key:startstart とファジーマッチ (あいまい一致) する全てのエントリーを見付けます ("Start Game" など)。 |
| Key Id | id | Key フィルターは、各キーの ID 値に対するクエリに使用されます。 | id:123123 にファジーマッチ (あいまい一致) するエントリー (1230034、003212345 など) を全て見付けます。 id=123id 123 を持つエントリーを見付けます。 id>123123 より大きい id 値を持つ全てのエントリーを見付けます。 id>=123123 以上の id 値を持つ全てのエントリーを見付けます。 id>123 AND id<200123 から 200 の間の id を持つ全てのエントリーを見付けます。 |
| Translated Value | tr tr(locale) |
任意のロケールフィルター引数の使用時に、各 String/Asset Table 内あるいは特定のテーブル内の値に対してクエリします。Asset Table を検索する場合は、アセット GUID とファイル名の両方に対してクエリします。 | String Table:tr:"start game""start game" とファジーマッチ (あいまい一致) する全てのエントリーを見付けます。 tr(en):"start game"for Englishで "start game" とファジーマッチする全てのエントリーを見付けます。 tr=""翻訳値フィールドが空のエントリーを全て見付けます。 tr(ja)=""Japanese フィールドに値がないエントリーを全て見付けます。 col=menu NOT tr=""テーブルコレクションメニュー内で、空の翻訳値フィールドがないエントリーを全て見付けます。 Asset Table: tr(fr):".png"全ての png ファイルアセットを見付けます。 tr="My Texture.png"正確なファイル名を参照する全てのエントリーを見付けます。 |
| Metadata Type | mt | メタデータタイプでフィルターをかけます。エントリーあるいはその共有テーブルデータに添付されたメタデータタイプが考慮されます。考慮されるタイプは、完全一致か、ファジー検索を使用したあいまい一致にすることができます。 | mt:commentコメントとファジーマッチ (あいまい一致) するメタデータタイプのエントリーを全て見付けます。 mt=Commentコメントに完全一致するメタデータタイプのエントリーを全て見付けます。 mt:smartSmart String としてマークされたエントリーを全て見付けます。 mt=ItemGenderItemGender メタデータを持つエントリーを全て見付けます。 |
| Metadata Value | mv mv(property) |
メタデータの値でフィルターをかけます。引数なしでフィルタータグを使用した場合は ToString メソッドがメタデータから値を抽出します。プロパティあるいはフィールド名を引数として提供することもできます。その場合はリフレクションを使用して値が抽出されます。 | mv:"untranslated"untranslated (未翻訳) に ToString でファジーマッチ (あいまい一致) するエントリーを全て見付けます。 mv(translationStatus)=UntranslatedUntranslated の値を持つ translationStatus というフィールドあるいはプロパティを持つメタデータを全て見付けます。 |
テーブルビューの列
デフォルトでは、テーブルビューのローカライズ済み Asset/String ピッカーには以下の列が表示されます。
| 列 | Description |
|---|---|
| Label | Entry Key (エントリーキー) が表示されます。 |
| Description | Table Collection Name (テーブルコレクション名) が表示されます。 |
Localization パッケージには以下の列も提供されています。これらの列はテーブルビューに任意で表示することができます。
- Collection Name (コレクション名)
- Collection Group (コレクショングループ)
- Entry Key (エントリーキー)
- Entry Key Id (エントリーキー Id)
- Localized Text / Localized Asset per Locale (ロケール毎のローカライズ済みテキスト/ローカライズ済みアセット)
テーブルビューの設定を変更して追加的な列を表示するには、列のヘッダーを右クリックして Add Column... を選択してください。
スクリプトによる検索
String Table および Asset Table フィルターと共にスクリプトで Search Tool を使用できます。 これは、例えば未翻訳のエントリーを全て見付ける場合などに、エントリーを素早く検索する自動化ツールの記述に使用できます。
以下の例は、Assets Table や String Table の様々な検索方法を示すものです。
#if ENABLE_SEARCH
using System.Text;
using UnityEditor;
using UnityEditor.Localization.Search;
using UnityEditor.Search;
using UnityEngine;
public static class SearchSamples
{
static void PrintResults(ISearchList results)
{
var sb = new StringBuilder();
sb.AppendLine($"Found {results.Count} results:");
foreach (var r in results)
{
// Extract the search data
if (r.data is TableEntrySearchData tableData)
{
sb.AppendLine($"{tableData.Collection.TableCollectionName} - {tableData.Entry.Key}");
}
}
Debug.Log(sb.ToString());
}
/// <summary>
/// Find all entries which contain the text "hello" in English.
/// </summary>
[MenuItem("Localization Samples/Search/Find Hello")]
public static void FindHello()
{
var search = SearchService.Request("st: tr(en):hello", SearchFlags.Synchronous);
PrintResults(search);
}
/// <summary>
/// Find all entries which have an empty translated value
/// </summary>
[MenuItem("Localization Samples/Search/Find Empty")]
public static void FindEmpty()
{
var search = SearchService.Request("st: tr=\"\"", SearchFlags.Synchronous);
PrintResults(search);
}
/// <summary>
/// Find all entries which have a reference to the MyFlag.png file
/// </summary>
[MenuItem("Localization Samples/Search/Find Png File")]
public static void FindPngFile()
{
var search = SearchService.Request("at: tr=MyFlag.png", SearchFlags.Synchronous);
PrintResults(search);
}
/// <summary>
/// Find all entries which have an ItemGender metadata which contains a field or property called gender with the value Female.
/// </summary>
[MenuItem("Localization Samples/Search/Find Female Gender Items")]
public static void FindFemaleGenderItems()
{
var search = SearchService.Request("st: mt=ItemGender mv(gender)=Female", SearchFlags.Synchronous);
PrintResults(search);
}
}
#endif