4D v16.3

Apêndice C: arquitetura XLIFF

Página Inicial

 
4D v16.3
Apêndice C: arquitetura XLIFF

Apêndice C: arquitetura XLIFF  


 

 

4D suporta o padrão XLIFF para a localização de textos e títulos de interface. Esta tecnologia é utilizada internamente pelas aplicações 4D. Os desenvolvedores 4D, assim como os de plug-ins, podem beneficiar-se desta nova implementação em suas próprias aplicações e plug-ins personalizados.

O princípio de definição de uma interface de aplicação 4D que se traduz dinamicamente é o seguinte: todos os elementos dependentes da linguagem (texto, etiquetas e imagens) são armazenados fora da aplicação, na forma de arquivos, em uma pasta chamada Resources. Nos formulários, menus, etc., as etiquetas e as imagens são especificadas como referências. Durante a execução da aplicação, estes elementos se mostram dinamicamente desde arquivos externos dependendo do contexto lingüístico. O padrão XLIFF codifica o modo de referenciação e mostra as etiquetas.

Nota: Pode ler strings armazenadas em arquivos  XLIFF diretamente usando o comando Get localized string.

No editor de formulário, pode ver o conteúdo "real" das áreas estáticas no editor de formulários clicando na área ou selecionando Mostrar formato ou Mostrar nome no menu Objeto:

Nota de compatibilidade: Além de XLIFF, 4D ainda é compatível com o sistema anterior, baseado no conceito de “recursos” (tipo STR#). No entanto, hoje em dia este sistema é obsoleto. Ambos sistemas podem ser utilizados ao mesmo tempo, principalmente nas aplicações convertidas (este ponto é explicado com mais detalhes nas páginas seguintes).

XLIFF (XML Localization Interchange File Format) é um padrão dedicado aos processos de tradução e adaptação lingüística. Permite estabelecer uma correspondência entre uma linguagem fonte e uma linguagem objetivo ao interior do arquivo XML.

O padrão XLIFF constitui uma alternativa aos sistemas de localização anteriores baseados em recursos. Várias ferramentas, incluindo software gratuito, permitem a gestão dos arquivos XLIFF.

Para maiores informações sobre o padrão XLIFF, consulte a especificação oficial XLIFF 1.1 que se encontra no seguinte endereço:
http://www.oasis-open.org/committees/xliff/documents/xliff-specification.htm

Atenção: o padrão XLIFF é sensível a maiúsculas e minúsculas.

Hà duas maneiras para chamar XLIFFstrings de 4D:

  • Usar o comando Get localized string
  • Usar o sistema de translação dinâmica como meio de referência

Pode chamar o comando Get localized string para acessar a tradução da string diretamente na linguagem atual da aplicação de qualquer lugar do banco de dados. Pode usar o comando Get database localization para encontrar a linguagem atual.

Nota de Compatibilidade: Os comandos Get indexed string e STRING LIST TO ARRAY no tema "Resources" também podem usar documentos XLIFF. Entretanto, seu uso não é mais recomendado e são mantidos por razões de compatibilidade.

Em 4D, as referências XLIFF podem ser utilizadas:

  • Campo “Nome do objeto” nas listas de propriedades do editor de formulários
  • Campo “Nome da janela” na caixa de diálogo de propriedades do formulário acessível desde o Explorador
  • Textos estáticos, incluindo títulos de botões, caixas de seleção, etc.
  • Editor de menus (exceto sintaxe NomeObjeto, ver a seguir)
  • Editor de mensagens de ajuda (exceto sintaxe NomeObjeto, ver a seguir).

Notas:

  • Para que a referência XLIFF seja reconhecida, deve localizar-se no início da área de texto.
  • Não é possível mostrar as referências XLIFF no editor de mensagens de ajuda. Para utilizar as mensagens de ajuda baseadas no XLIFF, Introduza diretamente as referências XLIFF no campo  Mensagens de ajuda da lista de propriedades.

Em 4D, podem ser utilizadas referências XLIFF por meio de uma das seguintes sintaxes:

  • Sintaxe :15115,3
  • Quando esta sintaxe é utilizada com os arquivos XLIFF, o primeiro valor (15115 no exemplo) designa o atributo id do elemento grupo.
    O segundo valor (3 neste exemplo) designa o atributo id do elemento trans-unit.
    Nota de compatibilidade: Esta sintaxe é idêntica às das referências de recursos STR# “antiga geração”, de tipo “:xxxx,yyy” onde xxxx é o número do recurso STR# y yyy é o número do elemento. Por exemplo, “:10115,3” significa que 4D deve utilizar o terceiro elemento do recurso STR# número 10115. Desta forma, você pode conservar em uma base convertida um antigo sistema baseado em recursos enquanto instala um novo sistema XLIFF. De fato, 4D buscará primeiro os valores correspondentes a 1015,3 em todos os arquivos XLIFF carregados; logo, se não encontrar a cadeia, buscará em todos os arquivos de recursos abertos. Com este mecanismo, você pode implementar um sistema baseado em XLIFF em uma aplicação sem precisar editar as referências dinâmicas existentes: somente deve copiar um arquivo XLIFF na localização correta (ver a seguir) e será tido em conta por 4D. Ambos sistemas podem ser utilizados simultaneamente. Em todos os casos, os arquivos XLIFF têm prioridade sobre os arquivos de recursos se a mesma referência se apresenta em ambas localizações.
  • Sintaxe :xliff:OKButton
    Esta alternativa de sintaxe só pode ser utilizada com os arquivos XLIFF carregados. Neste caso, o valor referenciado (OKButton no exemplo) designa o atributo resname do elemento trans-unit.
  • Sintaxis ObjectName (baseado no campo “Nome”, na lista de propriedades)
    O propósito desta sintaxe é facilitar a tradução dos formulários existentes. Diferente de outras sintaxes, é utilizada apenas com formulários. O princípio é moldurar no arquivo XLIFF os elementos trans-unit para dois elementos group cujos atributos resname contém respectivamente o nome da tabela e do formulário.
    • Exemplo (formulário tabela)
    Para traduzir a etiqueta do botão “Salvar” no formulário “Form1” da tabela [Clientes], o arquivo XLIFF tem estas linhas:
    • <group resname="[Clientes]">
      <group resname="Form1">
      <trans-unit resname="Salvar">
      ...
      </trans-unit>
      </group>
      </group>
    • Exemplo (formulário projeto)
      Em um formulário projeto, o nome da tabela deve ser substituído por [ProjectForm], o que produz o seguinte:
      <group resname="[ProjectForm]">
      <group resname="Form1">
      <trans-unit resname="Salvar">
       ...
      </trans-unit>
      </group>
      </group>
 Nota: Paraque a sintaxe ObjectName funcione corretamente, a propriedade "Title" do objeto não pode estar em branco na lista de Propriedades

Se utilizar diferentes sintaxes em sua base, a ordem de prioridade aplicada ao buscar uma tradução válida nos arquivos XLIFF será:

1. sintaxis “:15115,3”
2. sintaxis “:xliff:OKButton”
3. sintaxis “MyTitle”

É possível visualizar a referência XLIFF ou o título traduzido em função da linguagem atual no editor de formulários utilizando, respectivamente, os comandos Show Name e Show Resource do menu Objeto. Para maiores informações, consulte Usar referências em texto estático.

Para implementar uma arquitetura XLIFF para sua aplicação localizada, você deve criar um ou mais arquivos XLIFF válidos e copiá-los na pasta e Resources do banco de dados.

Para maiores informações sobre a pasta Resources da base, consulte Gerenciamento da pasta Resources.

A rota de acesso completa a ser utilizada é a seguinte:
  • Windows:
    MeuBanco\Resources\Lang.lproj\MyEnLoc.xlf
  • Mac OS:
    MeuPacote:Resources:Lang.lproj:MyEnLoc.xlf

onde:

  • Meu Banco é a pasta que contém os arquivos do banco e MeuPacote é o pacote da base sob Mac OS.
  • Lang.lproj é uma pasta que contém os arquivos XLIFF para a linguagem Lang. O nome da pasta deve cumprir o padrão internacional (ver o parágrafo seguinte). Por exemplo, para as versões em inglês a pasta deve ter o nome en.lproj.

4D carregará automaticamente os arquivos XLIFF na pasta correspondente à linguagem atual do banco. Para definir a linguagem atual da base, 4D buscará sucessivamente na pasta Resources da base uma linguagem correspondente a (na seguinte ordem de prioridade):

  1. A linguagem do sistema (sob Mac OS, vários idiomas podem ser definidos com uma ordem de preferência, 4D utiliza este parâmetro).
  2. A linguagem da aplicação 4D.
  3. Inglês
  4. Se nenhuma destas buscas der resultados, é carregada a primeira linguagem que se encontra na pasta Resources.

O comando Get database localization permite conhecer a linguagem atual definida para o banco. 

Se for utilizada uma variação da linguagem e não estiver disponível nos arquivos XLIFF, será utilizada a linguagem seguinte mais próxima.

Os nomes dos arquivos XLIFF são livres; devem apenas ter a extensão “.xlf.”. Você pode localizar vários arquivos XLIFF na mesma pasta da linguagem; serão carregadas na ordem alfabética dos nomes dos arquivos.

O nome da pasta “.lproj” deve respeitar uma das normas descritas anteriormente. 4D buscará um nome de pasta válido baseado em cada uma destas normas, na seguinte ordem.

  1. Language-Regional Codes
    Nesta combinação, um linguagem é descrito por um código linguagem (ISO639-1) + um signo menos + um código país (ISO3166) ou um código script de 4 letras (ISO15924).
    Por exemplo, “fr-ca” (fr-ca.lproj) para a linguagem francês canadense.
  2. ISO639-1
    E
    ste padrão define cada linguagem por duas letras. Por exemplo, “em” (en.lproj) para o inglês.
    Ref: http://www.loc.gov/standards/iso639-2/php/English_list.php
  3. Nome Legacy
    Nesta convenção, o nome da linguagem é escrito completamente em inglês. Por exemplo, “inglês” (english.lproj) para o inglês.
    Nota: as duas primeiras convenções são compatíveis apenas com a versão 10.4 de Mac OS ou superiores. Com as versões anteriores deste sistema operativo, só pode ser utilizado o nome “Legacy”.

Uma tabela de códigos de linguagem compatíveis com 4D podem ser encontradas em . 

Se forem encontradas várias definições da linguagem, 4D sempre utilizará a tradução mais precisa. Por exemplo, se o parâmetro de linguagem do sistema operativo é “francês canadense,” 4D buscará primeiro as traduções “fr-ca” e logo, se não encontrar-las, as traduções “fr”.

Nota: O mesmo princípio se aplica dentro dos arquivos XLIFF para a etiqueta “target-language”. Você deve assegurar-se de definir este atributo dentro dos arquivos XLIFF já que um aquivo localizado na pasta “fr-ca.lproj” que tem uma etiqueta “target-language=fr” será considerada como uma tradução a “fr” e não a “fr-ca.”

Os arquivos XLIFF se recarregam “dinamicamente” enquanto localizam a aplicação, de maneira que pode ver as palavras ou frases localizadas encaixarem nos objetos marco (botões, caixas de grupo, etc.). Esta recarga ocorre quando 4D passa ao primeiro plano, se a data ou hora de modificação forem mudadas desde a última carga. O formulário atual será carregado simultaneamente.

A seguinte tabela lista os códigos de linguagem suportados por 4D para a gestão de arquivos XLIFF.

LinguagensISO639-1“Legacy”ISO3166/ ISO15924
AFRIKAANSafafrikaans
ALBANIANsqalbanian
ARABIC_SAUDI_ARABIAararabicsa
ARABIC_IRAQararabiciq
ARABIC_EGYPTararabiceg
ARABIC_LIBYAararabicly
ARABIC_ALGERIAararabicdz
ARABIC_MOROCCOararabicma
ARABIC_TUNISIAararabictn
ARABIC_OMANararabicom
ARABIC_YEMENararabicye
ARABIC_SYRIAararabicsy
ARABIC_JORDANararabicjo
ARABIC_LEBANONararabiclb
ARABIC_KUWAITararabickw
ARABIC_UAEararabicae
ARABIC_BAHRAINararabicbh
ARABIC_QATARararabicqa
BASQUEeubasque   
BELARUSIANbebelarusian   
BULGARIANbgbulgarian   
CATALANcacatalan   
CHINESE_TRADITIONALzhchinesehant
CHINESE_SIMPLIFIEDzhchinesehans
CHINESE_HONGKONGzhchinesehk
CHINESE_SINGAPOREzhchinesesg
CROATIANhrcroatian   
CZECHcsczech   
DANISHdadanish   
DUTCHnldutch   
DUTCH_BELGIANnldutchbe
ENGLISH_USenenglish
ENGLISH_UKenenglishgb
ENGLISH_AUSTRALIAenenglishau
ENGLISH_CANADAenenglishca
ENGLISH_NEWZEALANDenenglishnz
ENGLISH_EIREenenglishie
ENGLISH_SOUTH_AFRICAenenglishza
ENGLISH_JAMAICAenenglishjm
ENGLISH_BELIZEenenglishbz
ENGLISH_TRINIDADenenglishtt
ESTONIANetestonian   
FAEROESEfofaorese   
FARSIfapersian   
FINNISHfifinnish   
FRENCHfrfrench   
FRENCH_BELGIANfrfrenchbe
FRENCH_CANADIANfrfrenchca
FRENCH_SWISSfrfrenchch
FRENCH_LUXEMBOURGfrfrenchlu
GERMANdegerman   
GERMAN_SWISSdegermanch
GERMAN_AUSTRIANdegermanat
GERMAN_LUXEMBOURGdegermanlu
GERMAN_LIECHTENSTEINdegermanli
GREEKelgreek   
HEBREWhehebrew   
HUNGARIANhuhungarian   
ICELANDICisiceland   
INDONESIANidindonesian   
ITALIANititalian   
ITALIAN_SWISSititalianch
JAPANESEjajapanese   
KOREAN_WANSUNGkokorean   
KOREAN_JOHABkokorean   
LATVIANlvlatvian   
LITHUANIANltlithuanian   
NORWEGIANnonorwegian   
NORWEGIAN_NYNORSKnnnynorskno
POLISHplpolish   
PORTUGUESEptportuguese   
PORTUGUESE_BRAZILIANptportuguesebr
ROMANIANroromanian   
RUSSIANrurussian   
SERBIAN_LATINsrserbianlatn
SERBIAN_CYRILLICsrserbiancyrl
SLOVAKskslovak   
SLOVENIANslslovenian   
SPANISH_CASTILLANesspanish   
SPANISH_MEXICANesspanishmx
SPANISH_MODERNesspanish   
SPANISH_GUATEMALAesspanishgt
SPANISH_COSTA_RICAesspanishcr
SPANISH_PANAMAesspanishpa
SPANISH_DOMINICAN_REPUBLICesspanishdo
SPANISH_VENEZUELAesspanishve
SPANISH_COLOMBIAesspanishco
SPANISH_PERUesspanishpe
SPANISH_ARGENTINAesspanishar
SPANISH_ECUADOResspanishec
SPANISH_CHILEesspanishcl
SPANISH_URUGUAYesspanishuy
SPANISH_PARAGUAYesspanishpy
SPANISH_BOLIVIAesspanishbo
SPANISH_EL_SALVADOResspanishsv
SPANISH_HONDURASesspanishhn
SPANISH_NICARAGUAesspanishni
SPANISH_PUERTO_RICOesspanishpr
SWEDISHsvswedish   
SWEDISH_FINLANDsvswedishfi
THAIththai   
TURKISHtrturkish   
UKRAINIANukukrainian   
VIETNAMESEvivietnamese

 
PROPRIEDADES 

Produto: 4D
Tema: Apêndices

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de Desenho 4D ( 4D v16)
Manual de Desenho 4D ( 4D v16.1)
Manual de Desenho 4D ( 4D v16.3)