Formatos de arquivo de localização

O Weblate suporta uma ampla gama de formatos de tradução. Cada formato é ligeiramente diferente e fornece um conjunto diferente de capacidades.

Dica

Ao escolher um formato de arquivo para o seu aplicativo, é melhor colocar algum formato bem estabelecido no kit de ferramentas/plataforma que você usa. Dessa forma, seus tradutores podem usar adicionalmente todas as ferramentas que estão acostumados, e provavelmente contribuirão para o seu projeto.

Detecção automática

O Weblate tenta detectar o formato do arquivo enquanto vai Adicionando projetos e componentes de tradução. A detecção pode estar errada para diferentes variantes do mesmo formato de serialização (JSON, YAML, propriedades) ou codificação de arquivo, então verifique se o Formato de arquivo está correto antes de criar o componente.

Capacidades dos tipos de tradução

Capacidades de todos os formatos suportados

Formato

Lingualidade [1]

Plurais [2]

Descrição [3]

Contexto [4]

Local [5]

Marcadores [8]

Status adicionais [6]

GNU gettext PO (Objeto Portátil)

bilíngue

sim

sim

sim

sim

sim [9]

Necessita de edição

Gettext monolíngue

mono

sim

sim

sim

sim

sim [9]

Necessita de edição

XLIFF 1.1 and 1.2

ambos

sim

sim

sim

sim

sim

necessita de edição, aprovado

Propriedades Java

ambos

não

sim

não

não

não

Arquivo lang draggable/i18n

mono

não

sim

não

não

não

Propriedades GWT

mono

sim

sim

não

não

não

Traduções para Joomla

mono

não

sim

não

sim

não

.ts de Qt Linguist

ambos

sim

sim

não

sim

sim

Necessita de edição

Recurso de textos do Android

mono

sim

sim [7]

não

não

sim

Textos de Apple iOS

ambos

não

sim

não

não

não

Textos de PHP

mono

não [10]

sim

não

não

não

Arquivos JSON

mono

não

não

não

não

não

Arquivos JSON i18next

mono

sim

não

não

não

não

Arquivos JSON go-i18n

mono

sim

sim

não

não

não

Arquivos JSON gotext

mono

sim

sim

não

sim

não

Arquivo ARB

mono

sim

sim

não

não

não

JSON para WebExtension

mono

sim

sim

não

não

não

Arquivos de recursos .NET (RESX, RESW)

mono

não

sim

não

não

sim

Arquivos de ResourceDictionary

mono

não

não

não

não

sim

Arquivos CSV

ambos

não

sim

sim

sim

não

Necessita de edição

Arquivos YAML

mono

não

não

não

não

não

Arquivos Ruby YAML

mono

sim

não

não

não

não

Arquivos DTD

mono

não

não

não

não

não

Arquivos XML simples

mono

não

não

não

não

sim

Arquivos RC do Windows

mono

não

sim

não

não

não

Excel Open XML

mono

não

sim

sim

sim

não

Necessita de edição

Arquivos de metadados da App Store

mono

não

não

não

não

não

Arquivos de legenda

mono

não

não

não

sim

não

Arquivos HTML

mono

não

não

não

não

não

Arquivos de Markdown

mono

não

não

não

não

não

Formato OpenDocument

mono

não

não

não

não

não

Formato IDML

mono

não

não

não

não

não

Traduções de INI

mono

não

não

não

não

não

Traduções de Inno Setup INI

mono

não

não

não

não

não

Formato TermBase eXchange

bilíngue

não

sim

sim

não

sim

Arquivos de texto

mono

não

não

não

não

não

Formato stringsdict

mono

sim

não

não

não

não

Formato Fluent

mono

não [11]

sim

não

não

não

Formatos bilíngues e monolíngues

Ambos os formatos monolingual e bilingual são suportados. Formatos bilíngues armazenam dois idiomas em um único arquivo e tradução (exemplos típicos são GNU gettext PO (Objeto Portátil), XLIFF 1.1 and 1.2 ou Textos de Apple iOS). Por outro lado, formatos monolíngues identificam o texto por ID, e cada arquivo de idioma contém apenas o mapeamento desses para qualquer idioma (tipicamente Recurso de textos do Android). Alguns formatos de arquivo são utilizados em ambas as variantes, veja a descrição detalhada abaixo.

Para o uso correto de arquivos monolíngues, Weblate requer acesso a um arquivo contendo uma lista completa de textos para traduzir com sua fonte – este arquivo é chamado de Arquivo de idioma da base monolíngue dentro do Weblate, embora a nomenclatura possa variar no seu paradigma.

Além disso este fluxo de trabalho pode ser estendido usando Arquivo de idioma intermediário para incluir textos fornecidos pelos desenvolvedores, mas não para ser usado como está nos textos finais.

Status de textos

Muitos formatos de arquivo diferenciam apenas textos “Não traduzidos” e “Traduzidos”. Com alguns formatos, é possível armazenar informações de status mais refinadas, como “Necessita de edição” ou “Aprovado”.

Descrição do texto fonte

As descrições de textos fonte podem ser usadas para passar informações adicionais sobre o texto para traduzir.

Vários formatos têm suporte nativo para fornecer informações adicionais aos tradutores (por exemplo, XLIFF 1.1 and 1.2, GNU gettext PO (Objeto Portátil), JSON para WebExtension, Arquivos CSV, Excel Open XML, .ts de Qt Linguist, Arquivos JSON go-i18n, Arquivos JSON gotext, Arquivo ARB, Arquivos de recursos .NET (RESX, RESW)). Muitos outros formatos extraem o comentário mais próximo como descrição do texto fonte.

Explicação

A Explicação em textos pode ser armazenada e analisada a partir de alguns formatos de arquivo.

Atualmente suportada apenas em Formato TermBase eXchange.

Local do texto fonte

O local de um texto no código-fonte pode ajudar tradutores proficientes a descobrir como o texto é usado.

Essas informações geralmente estão disponíveis em formatos bilíngues, onde os textos são extraídos do código-fonte usando ferramentas. Por exemplo, GNU gettext PO (Objeto Portátil) e .ts de Qt Linguist.

Marcadores de tradução

Os sinalizadores de tradução permitem personalizar o comportamento do Weblate. Alguns formatos suportam a definição deles no arquivo de tradução (você sempre pode defini-los na interface do Weblate, consulte Personalizando comportamento usando marcadores).

Este recurso é modelado em sinalizadores em GNU gettext PO (Objeto Portátil).

Adicionalmente, para todo formato baseado em XML, os marcadores são extraídos do atributo não padrão weblate-flags. Adicionalmente, o max-length:N é suportado através do atributo maxwidth como definido no padrão XLIFF, consulte Especificando marcadores de tradução.

Contexto

O contexto é usado para diferenciar textos idênticos em um formato bilíngue usado em diferentes escopos (por exemplo, Sun pode ser usado como um nome abreviado do dia “Sunday” ou como o nome de nossa estrela mais próxima).

Para formatos monolíngues, o identificador de texto (geralmente chamado de chave) pode servir ao mesmo propósito e não é necessário contexto adicional.

Textos pluralizados

Os plurais são necessários para localizar adequadamente os textos com contagem variável. As regras dependem de um idioma de destino e muitos formatos seguem a especificação CLDR para isso.

Dica

Textos pluralizantes também precisam de suporte adequado da estrutura do aplicativo. Escolha o formato nativo da sua plataforma, como GNU gettext PO (Objeto Portátil), Recurso de textos do Android ou Formato stringsdict.

Textos somente leitura

O textos de somente leitura dos arquivos de tradução serão incluídos, mas não podem ser editados no Weblate. Esse recurso é suportado nativamente por poucos formatos (XLIFF 1.1 and 1.2 e Recurso de textos do Android), mas pode ser emulado em outros adicionando um marcador read-only, consulte Personalizando comportamento usando marcadores.

Suportando outros formatos

Most formats supported by translate-toolkit which support serializing can be easily supported, but they did not (yet) received any testing. In most cases, an additional thin layer is needed in Weblate to hide differences in behavior of different storages.

Para adicionar suporte para um novo formato, a abordagem preferida é primeiro implementar o suporte para ele no translate-toolkit.

Parâmetros de formato de arquivo

File format parameters provide a way to configure settings related to the file format. They are configured at component level and allow you to customize how file parsing and serialization are handled.

List of file format parameters

Parameter name

Formatos de arquivo

Label

Help text

flatxml_key_name

  • flatxml

Nome da chave FlatXML

flatxml_root_name

  • flatxml

Nome da raiz FlatXML

flatxml_value_name

  • flatxml

Nome do valor FlatXML

json_indent

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Recuo do JSON

json_indent_style

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Estilo de recuo do JSON

Escolhas disponíveis:

spaces

Espaços

tabs

Tabulações

json_sort_keys

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Ordenar chaves JSON

json_use_compact_separators

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Evite espaços após os separadores

po_fuzzy_matching

  • po

Usar correspondência aproximada

po_keep_previous

  • po

Manter “msgids” anteriores de textos traduzidos

po_line_wrap

  • po

  • po-mono

Quebra de linhas longas

By default, gettext wraps lines at 77 characters and at newlines. With the --no-wrap parameter, wrapping is only done at newlines.

Escolhas disponíveis:

77

Quebrar linhas em 77 caracteres e em novas linhas (padrão do xgettext)

65535

Only wrap lines at newlines (like xgettext --no-wrap)

-1

Sem quebra de linhas

po_no_location

  • po

Não incluir informações de local no arquivo

xml_closing_tags

  • ts

  • plainxliff

  • xliff

  • poxliff

  • resx

  • aresource

  • moko-resource

  • cmp-resource

  • tbx

Incluir tag de fechamento para tags XML em branco

yaml_indent

  • yaml

  • ruby-yaml

Recuo do YAML

yaml_line_break

  • yaml

  • ruby-yaml

Quebra de linhas

Escolhas disponíveis:

dos

DOS (\r\n)

unix

UNIX (\n)

mac

MAC (\r)

yaml_line_wrap

  • yaml

  • ruby-yaml

Quebra de linhas longas

Escolhas disponíveis:

80

Quebrar linhas em 80 caracteres

100

Quebrar linhas em 100 caracteres

120

Quebrar linhas em 120 caracteres

180

Quebrar linhas em 180 caracteres

65535

Sem quebra de linhas