LocalizationTable
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Uma Tabela de Localização é uma base de dados de traduções.Ele contém strings de origem e traduções para vários idiomas.É usado com o sistema de tradutor automático Translator e LocalizationService para controlar traduções de texto no jogo.As Tabelas de Localização são projetadas para serem tratadas como recursos, como uma textura ou um script.Eles não são otimizados para serem modificados em tempo de execução.Mudar o conteúdo de uma tabela fará com que todo o conteúdo da tabela seja replicado para todos os jogadores.
Entradas da Tabela de Localização
Cada Tabela de Localização contém um conjunto de entradas. Cada entrada contém as traduções do texto, juntamente com alguns campos especiais:
- Chave é uma chave única opcional para pesquisas rápidas de hash em código. Se ela não for vazia, deve ser única na tabela.
- Fonte é o texto original na língua de origem que será usado pelo sistema de substituição de texto automático LocalizationService para corresponder ao texto da GUI e renderizar uma tradução em vez disso.O campo de Origem pode ser preenchido pelas ferramentas de captura de texto ou pode ser definido manualmente.Para consultas baseadas em chave, o valor de Origem pode ser usado como uma tradução para LocalizationTable.SourceLocaleId se a entrada não tiver uma tradução para esse idioma.Se a Fonte estiver vazia, então a entrada não será usada pelo sistema de substituição automática.
- Contexto é o nome completo da instância para o objeto em que o texto apareceu.O contexto é usado para desambiguação pelo sistema de substituição de texto automático.Quando várias correspondências para a Fonte forem encontradas, o sistema escolherá a melhor correspondência ao comparar de trás para a frente a partir do final da string / cadeia / textode Contexto.Há outras maneiras mais robustas de lidar com a ambigüidade disponíveis também, como usar várias tabelas com GuiBase2d.RootLocalizationTable .
- Exemplo é o que você quiser que seja.Se a ferramenta de captura de texto adivinhou alguns parâmetros para uma string, o campo de Exemplo conterá um exemplo deles usados em contexto.
Todos esses campos são opcionais, mas pelo menos uma chave ou fonte deve ser não vazia. Não podem existir duas entradas com a mesma chave, fonte e contexto.
Veja Traduzindo Conteúdo Dinâmico para mais informações.
Amostras de código
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"))
Resumo
Propriedades
O local das strings de origem.
Métodos
Retorna um conjunto de dicionários, onde cada dicionário representa uma entrada de dados de localização.
Retorna um Translator para entradas nesta Tabela de Localização, na língua especificada.
Remove uma entrada da Tabela de Localização, usando o key, source e context especificados para restringir a entrada específica a ser removida.
Remove uma única tradução de idioma da Tabela de Localização, usando a fornecida key, source, context e localeId para restringir a entrada específica a ser removida.
Remove todas as traduções da Tabela de Localização com o idioma especificado localId.
Define o conteúdo da Tabela de Localização.
Define o campo Contexto de uma entrada da Tabela de Localização para newContext , usando o especificado key , source e context para restringir a entrada que terá essa alteração aplicada.
Define o campo Exemplo de uma entrada da Tabela de Localização para example, usando o key, source e context para restringir a entrada que terá essa alteração aplicada.
Define o campo Chave de uma entrada da Tabela de Localização para newKey , usando o especificado key, source e context para restringir a entrada que terá essa alteração aplicada.
Define o campo Fonte de uma entrada da Tabela de Localização para newSource , usando o especificado key, source e context para restringir a entrada que terá essa alteração aplicada.
Define o texto do local especificadoId em uma entrada da Tabela de Localização, usando o especificado key, source e context para restringir a entrada que terá essa alteração aplicada.
Propriedades
SourceLocaleId
O local Roblox das cordas de tecla de entrada para esta tabela, por exemplo "en-us" ou "es-es". Este é normalmente o "idioma de desenvolvimento" do jogo.Para um Tradutor que mescla vários objetos de Tabela de Localização, é o LocaleId da Tabela de Localização Padrão.Padrão para "en-us".
Métodos
GetEntries
A função GetEntries retorna um array de dicionários contidos em um determinado LocalizationTable, onde cada dicionário representa uma entrada de dados de localização.
Para definir as entradas de uma Tabela de Localização, você pode usar LocalizationTable:SetEntries().
Cada dicionário no array contém os seguintes campos:
<th>Tipo</th><th>Descrição</th></tr></thead><tbody><tr><td><b>Chave</b></td><td><code>Biblioteca.string</code> ></td><td>Uma chave de busca para esta entrada específica na Tabela de Localização.</td></tr><tr><td><b>Fonte</b></td><td><code>Biblioteca.string</code> ></td><td>A string usada para formatar a string / cadeia / textolocalizada. Usada como busca se uma chave não for fornecida.</td></tr><tr><td><b>Contexto</b></td><td><code>Biblioteca.string</code></td><td>Um <code>Class.Instance:GetFullName()</code> caminho para o objeto que foi usado para gerar a Tabela de Localização.Usado como uma busca se uma chave não for fornecida.</td></tr><tr><td><b>Exemplo</b></td><td><code>Biblioteca.string</code></td><td>A string usada para formatar a localização. Opcional.</td></tr><tr><td><b>Valores</b></td><td><code>Dicionário</code></td><td>Um dicionário de traduções de linguagem para esta entrada de localização.As chaves deste dicionário são IDs locais e os valores são strings que são usadas para aplicar localização para o idioma correspondente ao ID local.</td></tr></tbody>
Índice |
---|
Devolução
Um conjunto de dicionários, onde cada dicionário representa uma entrada de dados de localização.
Amostras de código
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.
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
Retorna um Translator para entradas nesta Tabela de Localização, na língua especificada.O tradutor primeiro pesquisará nesta tabela e depois olhará nas tabelas de ancestral.
Parâmetros
Devolução
RemoveEntry
Remove uma entrada da Tabela de Localização, usando o key, source e context especificados para restringir a entrada específica a ser removida.
Parâmetros
Devolução
RemoveEntryValue
Remove uma única tradução de idioma da Tabela de Localização, usando a fornecida key, source, context e localeId para restringir a entrada específica a ser removida.
Parâmetros
Devolução
RemoveTargetLocale
Remove todas as traduções da Tabela de Localização com o idioma especificado localId.
Parâmetros
Devolução
SetEntries
Define o conteúdo da Tabela de Localização.
O parâmetro de entradas deve ser um array de dicionários no mesmo formato que o retornado da função LocalizationTable:GetEntries().
Parâmetros
Devolução
SetEntryContext
Define o campo Contexto de uma entrada da Tabela de Localização para newContext , usando o especificado key , source e context para restringir a entrada que terá essa alteração aplicada.
Parâmetros
Devolução
SetEntryExample
Define o campo Exemplo de uma entrada da Tabela de Localização para example, usando o key, source e context para restringir a entrada que terá essa alteração aplicada.
Parâmetros
Devolução
SetEntryKey
Define o campo Chave de uma entrada da Tabela de Localização para newKey , usando o especificado key, source e context para restringir a entrada que terá essa alteração aplicada.
Parâmetros
Devolução
SetEntrySource
Define o campo Fonte de uma entrada da Tabela de Localização para newSource , usando o especificado key, source e context para restringir a entrada que terá essa alteração aplicada.
Parâmetros
Devolução
SetEntryValue
Define o texto do local especificadoId em uma entrada da Tabela de Localização, usando o especificado key, source e context para restringir a entrada que terá essa alteração aplicada.