Formatos de ficheiro 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 ficheiro para a sua aplicação, é melhor pôr algum formato bem estabelecido no kit de ferramentas/plataforma que usa. Dessa forma, os seus tradutores podem usar adicionalmente todas as ferramentas que estão acostumados e provavelmente contribuirão para o seu projeto.

Deteção automática

O Weblate tenta detetar o formato do ficheiro enquanto vai Adicionar 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 ficheiro, então verifique se o Formato de ficheiro 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]

Localização [5]

Marcadores [8]

Estados adicionais [6]

GNU gettext PO (Objeto Portátil)

bilíngue

sim

sim

sim

sim

sim [9]

necessita edição

Gettext monolíngue

mono

sim

sim

sim

sim

sim [9]

necessita edição

XLIFF

ambos

sim

sim

sim

sim

sim

necessita edição, aprovado

Propriedades Java

ambos

não

sim

não

não

não

Ficheiro 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 Joomla

mono

não

sim

não

sim

não

Qt Linguist - .ts

ambos

sim

sim

não

sim

sim

necessita edição

Recursos de cadeias de carateres para Android

mono

sim

sim [7]

não

não

sim

Cadeias de carateres para Apple iOS

ambos

não

sim

não

não

não

Cadeias de carateres de PHP

mono

não [10]

sim

não

não

não

Ficheiros JSON

mono

não

não

não

não

não

Ficheiros i18next JSON

mono

sim

não

não

não

não

Ficheiros JSON go-i18n

mono

sim

sim

não

não

não

Ficheiros gotext JSON

mono

sim

sim

não

sim

não

Ficheiro ARB

mono

sim

sim

não

não

não

JSON WebExtension

mono

sim

sim

não

não

não

Ficheiros de recursos .NET (RESX, RESW)

mono

não

sim

não

não

sim

Ficheiros de ResourceDictionary

mono

não

não

não

não

sim

Ficheiros CSV

ambos

não

sim

sim

sim

não

necessita edição

Ficheiros YAML

mono

não

não

não

não

não

Ficheiros Ruby YAML

mono

sim

não

não

não

não

Ficheiros DTD

mono

não

não

não

não

não

Ficheiro XML simples

mono

não

não

não

não

sim

Ficheiros 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 edição

Ficheiros de metadados da App Store

mono

não

não

não

não

não

Ficheiros de legendas

mono

não

não

não

sim

não

Ficheiro HTML

mono

não

não

não

não

não

Ficheiros de Marcação

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 em INI

mono

não

não

não

não

não

Traduções 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

Ficheiros 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 bilingues armazenam dois idiomas num único ficheiro e tradução (exemplos típicos são GNU gettext PO (Objeto Portátil), XLIFF ou Cadeias de carateres para Apple iOS). Por outro lado, formatos monolingues identificam a cadeia por ID e cada ficheiro de idioma contém apenas o mapeamento desses para qualquer idioma (tipicamente Recursos de cadeias de carateres para Android). Alguns formatos de ficheiro são utilizados em ambas as variantes, veja a descrição detalhada abaixo.

Para o uso correto de ficheiros monolingues, Weblate requer acesso a um ficheiro a conter uma lista completa de cadeias para traduzir com a fonte dele – este ficheiro é chamado de Ficheiro de idioma base monolingue dentro do Weblate, embora a nomenclatura possa variar no seu paradigma.

Além disso, este fluxo de trabalho pode ser estendido a usar Ficheiro de idioma intermédio para incluir cadeias fornecidas pelos programadores, mas não para ser usado como está nos textos finais.

Estados de cadeias

Muitos formatos de ficheiro diferenciam apenas cadeias «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 da cadeia fonte

As descrições da cadeia fonte podem ser usadas para passar informações adicionais sobre a cadeia a traduzir.

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

Explicação

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

Atualmente suportada apenas em Formato TermBase eXchange.

Localização da cadeia fonte

A localização de uma cadeia no código-fonte pode ajudar tradutores proficientes a descobrir como a cadeia é usada.

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

Marcadores de tradução

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

Esta funcionalidade é modelada 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 Especificação de bandeiras de tradução.

Contexto

O contexto é utilizado para diferenciar as cadeias de carateres idênticas num formato bilingue utilizadas em âmbitos diferentes (por exemplo, Dom pode ser utilizado como um nome abreviado do dia «Domingo» ou como o nome da nossa estrela mais próxima).

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

Cadeias pluralizadas

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

Dica

Cadeias pluralizantes também precisam de apoio adequado da estrutura da aplicação. Escolha o formato nativo da sua plataforma, como GNU gettext PO (Objeto Portátil), Recursos de cadeias de carateres para Android ou Formato stringsdict.

Cadeias apenas de leitura

Serão incluídas cadeias apenas de leitura dos ficheiros de tradução, mas não podem ser editadas no Weblate. Esta funcionalidade é suportado nativamente por poucos formatos (XLIFF e Recursos de cadeias de carateres para Android), mas pode ser emulada em outros ao adicionar um marcador read-only, consulte Personalizando comportamento a usar marcadores.

Suportando outros formatos

A maioria dos formatos suportados pelo translate-toolkit que suportem serialização podem ser facilmente suportados, mas (ainda) não foram alvo de testes. Na maior parte dos casos é necessária uma camada fina adicional ao Weblate para ocultar diferenças no comportamento de diferentes armazenamentos.

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

Parâmetros de formato de ficheiro

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 ficheiro

Label

Help text

flatxml_key_name

  • flatxml

FlatXML key name

flatxml_root_name

  • flatxml

FlatXML Root name

flatxml_value_name

  • flatxml

FlatXML value name

json_indent

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Indentação JSON

json_indent_style

  • json

  • json-nested

  • webextension

  • i18next

  • i18nextv4

  • arb

  • go-i18n-json

  • go-i18n-json-v2

  • formatjs

  • gotext

Estilo de indentação JSON

Escolhas disponíveis:

spaces

Espaços

tabs

Abas

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

Utilizar correspondência aproximada

po_keep_previous

  • po

Manter «msgids» anteriores das cadeias traduzidas

po_line_wrap

  • po

  • po-mono

Ajuste 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 com 77 carateres e nas novas linhas (predefinição de 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 ficheiro

xml_closing_tags

  • ts

  • plainxliff

  • xliff

  • poxliff

  • resx

  • aresource

  • moko-resource

  • cmp-resource

  • tbx

Incluir etiqueta de fecho para as etiquetas XML em branco

yaml_indent

  • yaml

  • ruby-yaml

Indentação de YAML

yaml_line_break

  • yaml

  • ruby-yaml

Quebras de linha

Escolhas disponíveis:

dos

DOS (\r\n)

unix

UNIX (\n)

mac

MAC (\r)

yaml_line_wrap

  • yaml

  • ruby-yaml

Ajuste de linhas longas

Escolhas disponíveis:

80

Quebrar linhas aos 80 carateres

100

Quebrar linhas aos 100 carateres

120

Quebrar linhas aos 120 carateres

180

Quebrar linhas aos 180 carateres

65535

Sem quebra de linhas