LocalizationTable

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ローカライゼーションテーブルは、翻訳のデータベースです。複数の言語のソースストリングと翻訳を含んでいます。Translator および LocalizationService 自動翻訳システムと一緒に使用して、ゲーム内のテキスト翻訳を制御します。ローカライゼーションテーブルは、テクスチャやスクリプトのように資源として扱われるように設計されています。実行時に変更されるように最適化されていません。テーブルの内容を変更すると、テーブル全体の内容がすべてのプレイヤーにレプリケートされます。

翻訳テーブルエントリ

各ローカライゼーションテーブルには、入力のセットが含まれています。各入力には、テキストの翻訳といくつかの特別なフィールドが含まれています:

  • キー はコードでの迅速なハッシュ検索に使用できるオプションのユニークなキーです。空でない場合、テーブルでユニークでなければなりません。
  • ソース は、LocalizationService 自動テキスト置換システムが GUI テキストと一致して翻訳をレンダリングするために使用するソース言語のオリジナルテキスト。ソースフィールドは、テキストキャプチャツールで満たされるか、手動で設定できます。キーベースの検索では、ソース値は入力がそのローカルに対する翻訳を持っていない場合の翻訳として使用できます LocalizationTable.SourceLocaleId 。ソースが空である場合、入力は自動置換システムによって使用されません。
  • コンテキスト は、テキストが表示されたオブジェクトの全体の名前です。コンテキストは、自動テキスト置換システムによる混同解決に使用されます。ソースに対する複数の一致が見つかると、システムはコンテキストストリングの最後から逆に一致して、最良の一致を選択します。ディザンバリエーションを処理するための他のより強力な方法もあり、例えば GuiBase2d.RootLocalizationTable で複数のテーブルを使用することもできます。
  • は、あなたが望むものです。テキストキャプチャツールが文字列のパラメータを推測した場合、例のフィールドには、コンテキストで使用された例が含まれます。

これらのフィールドはすべてオプションですが、少なくともキーまたはソースが空でない必要があります。2つのエントリに同じキー、ソース、コンテキストがあってはいけません。

詳しくは、動的コンテンツの翻訳 を参照してください。

コードサンプル

LocalizationTable

local LocalizationService = game:GetService("LocalizationService")
local function createLocalizationTable(entries)
local localTable = Instance.new("LocalizationTable")
localTable.DevelopmentLanguage = LocalizationService.SystemLocaleId
localTable:SetEntries(entries)
return localTable
end
local entries = {
{
Key = "Hello_World", -- The 'expressionKey' to be used with GetString
Values = { -- A dictionary of keys corresponding to IETF language tags, and their translations.
["ru"] = " !", -- Russian
["fr"] = "Bonjour le monde!", -- French
["de"] = "Hallo Welt!", -- German
["en-US"] = "Hello world!", -- English
["it"] = "Ciao mondo!", -- Italian
["pt-BR"] = "Ol Mundo!", -- Portuguese
["ja"] = "", -- Japanese
["es"] = "Hola Mundo!", -- Spanish
},
},
}
local helloWorldTable = createLocalizationTable(entries)
print(helloWorldTable:GetString("en-US", "Hello_World"))

概要

方法

  • 各辞書がローカライゼーションデータのエントリを表すアレイを返します。

  • このローカライゼーションテーブルのエントリに対して、指定された言語で Translator を返します。

  • RemoveEntry(key : string,source : string,context : string):()

    指定された keysource、および context を使用して、ローカライゼーションテーブルからエントリを削除し、特定の削除対象を絞り込みます。

  • RemoveEntryValue(key : string,source : string,context : string,localeId : string):()

    提供された key , source , context , そして localeId を使用して、ローカライゼーションテーブルから単一の言語翻訳を削除し、特定の削除対象を絞り込みます。

  • RemoveTargetLocale(localeId : string):()

    指定されたローカルIDでローカライゼーションテーブルからすべての翻訳を削除します。

  • SetEntries(entries : Variant):()

    ローカライゼーションテーブルの内容を設定します。

  • SetEntryContext(key : string,source : string,context : string,newContext : string):()

    ローカライゼーションテーブルエントリの コンテキスト フィールドを newContext 、指定された keysource 、および context を使用して、この変更を適用する入力を絞り込みます。

  • SetEntryExample(key : string,source : string,context : string,example : string):()

    ローカライゼーションテーブルエントリの フィールドを example 、指定された keysource 、および context を使用して、この変更を適用する入力を絞り込みます。

  • SetEntryKey(key : string,source : string,context : string,newKey : string):()

    ローカライゼーションテーブルエントリの キー フィールドを newKey 、指定された keysource 、および context を使用して、この変更を適用する入力を絞り込みます。

  • SetEntrySource(key : string,source : string,context : string,newSource : string):()

    ローカライゼーションテーブルエントリの ソース フィールドを newSource 、指定された keysource 、および context を使用して、この変更を適用する入力を絞り込みます。

  • SetEntryValue(key : string,source : string,context : string,localeId : string,text : string):()

    指定された localeId のテキストをローカライゼーションテーブルのエントリに設定し、指定された keysource、および context を使用して、この変更を適用するエントリを絞り込みます。

プロパティ

SourceLocaleId

並列読み取り

たとえば、「en-us」または「es-es」など、このテーブルの入力キー文字のロブロックスローカル。これは通常、ゲームの「開発言語」です。複数のローカライゼーションテーブルオブジェクトをマージする翻訳者の場合、デフォルトのローカライゼーションテーブルのロケールIDです。デフォルトは "en-us" です。

方法

GetEntries

GetEntries 関数は、指定された LocalizationTable に含まれる辞書のアレイを返し、それぞれの辞書はローカライゼーションデータのエントリを表示します。

ローカライゼーションテーブルのエントリを設定するには、LocalizationTable:SetEntries() を使用できます。

配列内の各辞書には次のフィールドが含まれています:


<th>種類</th>
<th>説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>キー</b>
</td>
<td><code>Library.string</code></td> <td>ローカライゼーションテーブルのこの特定のエントリの検索キー。</td>
</tr>
<tr>
<td>
<b>ソース</b>
</td>
<td><code>Library.string</code></td> <td>ローカライズされた文字列を形式化するために使用されるストリング。キーが提供されない場合は、検索として使用されます。</td>
</tr>
<tr>
<td>
<b>コンテキスト</b>
</td>
<td><code>Library.string</code></td> <td><code>Class.Instance:GetFullName()</code> ローカライゼーションテーブルを生成するために使用されたオブジェクトへのパス。キーが提供されていない場合は、検索として使用します。</td>
</tr>
<tr>
<td>
<b>例</b>
</td>
<td><code>Library.string</code></td> <td>ローカライゼーションを形多言語化化するために使用される文字列。オプション。</td>
</tr>
<tr>
<td>
<b>値</b>
</td>
<td><code>辞書</code></td> <td>このローカライゼーションエントリの言語翻訳の辞書。この辞書のキーはローカルIDであり、値はローカルIDに対応する言語のローカライゼーションを適用するために使用される文字列です。</td>
</tr>
</tbody>
インデックス

戻り値

各辞書がローカライゼーションデータのエントリを表す辞書のアレイ。

コードサンプル

The following code sample creates a LocalizationTable, sets its entries, then gets and displays its entries. In order for this example to work, a LocalizationTable instance must be located inside the LocalizationService service.

The entries variable is a table of dictionaries, each with the format required to create a LocalizationTable with LocalizationTable:SetEntries().

The get_results variable is a table of dictionaries - the same table that we created with the entries variable. We then loop through each of the tables in this dictionary to display its Values/strings.

Using a LocalizationTable

local LocalizationService = game:GetService("LocalizationService")
local localizationTable = LocalizationService:FindFirstChild("LocalizationTable")
local entries = {
{
["Key"] = "0001",
["Source"] = "en-us",
["Values"] = {
["0001"] = "Hello Muddah, hello Fadduh.",
["0002"] = "Here I am at Camp Granada.",
["0003"] = "Camp is very entertaining.",
["0004"] = "And they say we'll have some fun if it stops raining.",
},
},
}
localizationTable:SetEntries(entries)
local get_results = localizationTable:GetEntries()
for _index, dict in pairs(get_results) do
for _key, value in pairs(dict["Values"]) do -- Loop through every key, value pair in the dictionary to print our strings
print(value)
end
end

GetTranslator

このローカライゼーションテーブルのエントリに対して、指定された言語で Translator を返します。翻訳者はまずこのテーブルを検索し、祖先のテーブルを見ます。

パラメータ

localeId: string
既定値: ""

戻り値

RemoveEntry

()

指定された keysource、および context を使用して、ローカライゼーションテーブルからエントリを削除し、特定の削除対象を絞り込みます。

パラメータ

key: string
既定値: ""
source: string
既定値: ""
context: string
既定値: ""

戻り値

()

RemoveEntryValue

()

提供された key , source , context , そして localeId を使用して、ローカライゼーションテーブルから単一の言語翻訳を削除し、特定の削除対象を絞り込みます。

パラメータ

key: string
既定値: ""
source: string
既定値: ""
context: string
既定値: ""
localeId: string
既定値: ""

戻り値

()

RemoveTargetLocale

()

指定されたローカルIDでローカライゼーションテーブルからすべての翻訳を削除します。

パラメータ

localeId: string
既定値: ""

戻り値

()

SetEntries

()

ローカライゼーションテーブルの内容を設定します。

エントリパラメータは、LocalizationTable:GetEntries() 関数から返されたものと同じ形式の辞書のアレイである必要があります。

パラメータ

entries: Variant
既定値: ""

戻り値

()

SetEntryContext

()

ローカライゼーションテーブルエントリの コンテキスト フィールドを newContext 、指定された keysource 、および context を使用して、この変更を適用する入力を絞り込みます。

パラメータ

key: string
既定値: ""
source: string
既定値: ""
context: string
既定値: ""
newContext: string
既定値: ""

戻り値

()

SetEntryExample

()

ローカライゼーションテーブルエントリの フィールドを example 、指定された keysource 、および context を使用して、この変更を適用する入力を絞り込みます。

パラメータ

key: string
既定値: ""
source: string
既定値: ""
context: string
既定値: ""
example: string
既定値: ""

戻り値

()

SetEntryKey

()

ローカライゼーションテーブルエントリの キー フィールドを newKey 、指定された keysource 、および context を使用して、この変更を適用する入力を絞り込みます。

パラメータ

key: string
既定値: ""
source: string
既定値: ""
context: string
既定値: ""
newKey: string
既定値: ""

戻り値

()

SetEntrySource

()

ローカライゼーションテーブルエントリの ソース フィールドを newSource 、指定された keysource 、および context を使用して、この変更を適用する入力を絞り込みます。

パラメータ

key: string
既定値: ""
source: string
既定値: ""
context: string
既定値: ""
newSource: string
既定値: ""

戻り値

()

SetEntryValue

()

指定された localeId のテキストをローカライゼーションテーブルのエントリに設定し、指定された keysource、および context を使用して、この変更を適用するエントリを絞り込みます。

パラメータ

key: string
既定値: ""
source: string
既定値: ""
context: string
既定値: ""
localeId: string
既定値: ""
text: string
既定値: ""

戻り値

()

イベント