|
Extensões de arquivo |
.xlf, .xliff |
|
Extensão de API |
xlf |
|
Importar |
Sim |
|
Exportar |
Sim |
|
Suporte para formas plurais |
Sim |
|
Suporte para descrição |
Sim |
|
Opções de formato Essas opções podem ser especificadas quando um arquivo é enviado e/ou baixado. Dependendo do método de upload/download (API, CLI, sincronização de repositório etc.), elas podem ser especificadas em parâmetros de consulta |
enclose_in_cdata include_translation_state indent_size indent_style ignore_source_translations ignore_target_translations export_key_id_as_resname export_key_name_hash_as_extradata override_file_language strip_placeholder_delimiters delimit_placeholders |
O formato de arquivo mais amplamente utilizado na indústria de tradução. Pode ser visto como o espelho do arquivo de origem que divide o conteúdo original em vários segmentos armazenados em tags (por exemplo, <trans-unit>, <seg-source>).
XLIFF é baseado em XML e sujeito a convenções básicas de XML, como validade e estar bem formado. Sempre complete uma verificação de sanidade antes da tradução, alterando a extensão do arquivo de .xliff (.xlf) para .xml e abrindo-o em um navegador da web. Se o arquivo for válido, uma estrutura de documento bem organizada é apresentada e, se não, ele será inrenderizável ou apresentará uma mensagem de erro.
O XLIFF foi atualizado para o XLIFF 2.0. É semelhante ao XLIFF mais amplamente utilizado, mas é um formato de arquivo diferente, geralmente incompatível com o XLIFF.
Xcode pode empacotar strings localizáveis no formato padrão da indústria XLIFF para serem enviadas para localização com Phrase.
Opções de formato
|
Identificador |
enclose_in_cdata |
|
Tipo |
boolean |
|
Upload |
Não |
|
Baixar |
Sim |
|
Padrão |
false |
|
Descrição |
Envolve traduções contendo tags html em CDATA. Se desativado, entidades HTML não suportadas são substituídas por seus valores decodificados. Por exemplo:
|
|
Identificador |
include_translation_state |
|
Tipo |
boolean |
|
Upload |
Não |
|
Baixar |
Sim |
|
Padrão |
false |
|
Descrição |
Inclui o estado das traduções no local de destino. Cada |
|
Identificador |
indent_size |
|
Tipo |
integer |
|
Upload |
Não |
|
Baixar |
Sim |
|
Padrão |
4 |
|
Descrição |
Especifica o número de caracteres de indentação |
|
Identificador |
indent_style |
|
Tipo |
string |
|
Upload |
Não |
|
Baixar |
Sim |
|
Padrão |
espaço |
|
Descrição |
Especifica o caractere de indentação. Os valores permitidos são |
|
Identificador |
ignore_source_translations |
|
Tipo |
boolean |
|
Upload |
Sim |
|
Baixar |
Não |
|
Padrão |
false |
|
Descrição |
Ignora as traduções de origem no arquivo durante o upload (para evitar atualizações acidentais do idioma de origem) |
|
Identificador |
ignore_target_translations |
|
Tipo |
boolean |
|
Upload |
Sim |
|
Baixar |
Não |
|
Padrão |
false |
|
Descrição |
Ignora as traduções de destino no arquivo durante o upload (para evitar atualizações acidentais do idioma de origem) |
|
Identificador |
export_key_id_as_resname |
|
Tipo |
boolean |
|
Upload |
Não |
|
Baixar |
Sim |
|
Padrão |
false |
|
Descrição |
Exporta o ID da chave como o atributo resname. |
|
Identificador |
export_key_name_hash_as_extradata |
|
Tipo |
boolean |
|
Upload |
Não |
|
Baixar |
Sim |
|
Padrão |
false |
|
Descrição |
Exporta o hash do nome da chave como o atributo extradata. |
|
Identificador |
override_file_language |
|
Tipo |
boolean |
|
Upload |
Sim |
|
Baixar |
Não |
|
Padrão |
false |
|
Descrição |
Este formato de arquivo normalmente contém informações de idioma no próprio arquivo. Use esta opção para substituir o idioma por um que você especificar. |
|
Identificador |
strip_placeholder_delimiters |
|
Tipo |
boolean |
|
Upload |
Sim |
|
Baixar |
Não |
|
Padrão |
false |
|
Descrição |
Remove as tags |
|
Identificador |
delimit_placeholders |
|
Tipo |
boolean |
|
Upload |
Não |
|
Baixar |
Sim |
|
Padrão |
false |
|
Descrição |
Envolva os marcadores de posição de tradução em tags |
Amostra de código
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file original="global" datatype="plaintext" source-language="de-DE" target-language="en-GB">
<body>
<trans-unit id="boolean_key">
<source xml:lang="de-DE">--- true
</source>
<target xml:lang="en-GB">--- true
</target>
</trans-unit>
<trans-unit id="empty_string_translation">
<source xml:lang="de-DE"/>
<target xml:lang="en-GB"/>
</trans-unit>
<trans-unit id="key_with_description">
<source xml:lang="de-DE">Schau dir das mal an! Esta chave tem uma descrição!
Confira! Esta chave tem uma descrição! (Pelo menos em alguns formatos)
Esta é a descrição incrível para esta chave!
</trans-unit>
<trans-unit id="key_with_line-break">
Esta tradução contém
einen Zeilenumbruch.</source>
Esta tradução contém
uma quebra de linha.
</trans-unit>
<trans-unit id="nested.deeply.key">
Eu sou uma chave profundamente aninhada.
Eu sou uma chave profundamente aninhada.
</trans-unit>
<trans-unit id="nested.key">
Esta chave está aninhada dentro de um namespace.
Esta chave está aninhada dentro de um namespace.
</trans-unit>
<trans-unit id="null_translation">
<source xml:lang="de-DE"/>
<target xml:lang="en-GB"/>
</trans-unit>
<trans-unit id="sample_collection">
<source xml:lang="de-DE">---
- primeiro item
- segundo item
</source>
<target xml:lang="en-GB">---
- primeiro item
- segundo item
- terceiro item
</target>
</trans-unit>
<trans-unit id="simple_key">
<source xml:lang="de-DE">Einfacher Schlüssel, einfache Nachricht, so einfach</source>
Chave simples, mensagem simples, tão simples.
</trans-unit>
<trans-unit id="unverified_key">
<source xml:lang="pt-BR">Esta tradução ainda não foi verificada e está aguardando!</source>
<target xml:lang="pt-BR">Esta tradução ainda não foi verificada e está aguardando.</target> (Em alguns formatos, também exportamos este estado)</target>
</trans-unit>
</body>
</file>
</xliff>
Formas plurais
As chaves pluralizadas são exportadas usando a seguinte sintaxe:
<trans-unit id="plural_key">
<source xml:lang="en">{"one":"one chair","other":"{nrOfChairs} chairs","zero":"no chairs"}</source>
<target xml:lang="pt-BR">{"one":"uma cadeira","other":"{nrOfChairs} cadeiras","zero":"nenhuma cadeira"}</target>
</trans-unit>