Localização
As traduções do Commerce permitem personalizar e localizar sua loja para várias regiões e mercados gerando:
- Dicionários de tradução, que são uma maneira conveniente de personalizar ou traduzir algumas palavras e frases, como aquelas de um módulo ou tema personalizado.
- Pacotes de idiomas que permitem que você traduza qualquer uma ou todas palavras e frases no aplicativo Commerce.
Consulte Visão geral das traduções.
Gerar um dicionário de tradução
Você pode gerar um dicionário de tradução para personalizar cadeias de caracteres existentes, traduzir palavras e frases em um módulo personalizado, localizar um tema ou criar pacotes de idioma.
Para começar a traduzir, use um comando para gerar um arquivo CSV de dicionário com uma lista coletada de todas as frases e palavras existentes.
Para gerar o dicionário e iniciar a tradução:
-
Extrair palavras e frases traduzíveis de componentes ativados usando o comando coleção de tradução. O conteúdo é extraído em um arquivo CSV.
-
Traduza as palavras e frases existentes. Você pode adicionar termos personalizados adicionais, conforme necessário.
Você tem opções para usar o dicionário traduzido:
-
Você pode criar um pacote dos dicionários de tradução em um pacote de idiomas e fornecer o pacote ao administrador da loja da Commerce.
-
No Admin, o administrador de armazenamento configura as traduções.
Opções de comando:
bin/magento i18n:collect-phrases [-o|--output="<csv file path and name>"] [-m|--magento] <path to directory to translate>
A tabela a seguir explica os parâmetros e valores:
<path to directory to translate>A ferramenta inicia a pesquisa no caminho inserido e pesquisa todos os arquivos e subdiretórios que ela contém.
Não use este parâmetro se você usar
-m --magento.-m --magentoEste é um exemplo:
"Nenhum item encontrado","Nenhum item encontrado",módulo,Magento_Wishlist
-o --output="<path>"Se você omitir este parâmetro, a saída será direcionada para stdout.
-m|--magento.Diretrizes de tradução
Use as diretrizes a seguir ao traduzir palavras e frases:
- Altere o conteúdo somente da segunda coluna. Traduza as frases do inglês (
US) para o idioma desejado. - Ao criar dicionários para códigos de idiomas, use as strings padrão do Commerce.
- Durante a tradução, preste atenção aos espaços reservados:
%1,%2
O Commerce usa os espaços reservados para inserir valores de contexto; eles são não usados para traduções. Por exemplo:
Product '%1' has been added to shopping cart.
Preenche com um valor:
Product 'Multimeter-2000' has been added to shopping cart.
A frase resultante deve conter pelo menos um de cada espaço reservado. Por exemplo, suponha que haja espaços reservados de %1 a %3 na frase original. A tradução pode ter tantos espaços reservados em qualquer ordem, mas deve haver pelo menos uma ocorrência de %1, %2 e %3. A conversão não pode conter valores de espaços reservados que não estejam presentes no valor original (por exemplo, %4, %5 e assim por diante).
Um exemplo de tradução de uma frase:
"Buy %1 for %2 (%3 incl. tax) each","Compre %1 por %2 (%3 incl. imposto) cada"
Criar um pacote de idiomas
Ao contrário de um dicionário de tradução, é possível traduzir qualquer uma ou todas as palavras e frases no aplicativo do Commerce usando um pacote de idiomas. Você pode traduzir um componente específico, como um módulo ou um tema, usando um dicionário de tradução. Saiba mais sobre pacotes de idiomas.
Esta seção discute como criar um pacote de linguagem, que grava arquivos CSV em módulos e temas. Para criar um pacote de idioma, você deve executar as tarefas discutidas nas seguintes seções:
- Coletar e traduzir palavras e frases. (O parâmetro
--magentoé obrigatório.) - Execute o comando de pacote de idioma.
- Criar diretórios e arquivos.
- (Opcional.) Configurar vários pacotes para um idioma.
Execute o comando de pacote de idioma
Uso do comando:
bin/magento i18n:pack [-m|--mode={merge|replace}] [-d|--allow-duplicates] <source> <locale>
A tabela a seguir explica os parâmetros e valores do comando de pacote de idioma:
<source>Use
bin/magento i18n:collect-phrases para criar o arquivo CSV e, em seguida, crie o pacote de idioma conforme discutido em Criar diretórios e arquivos.<locale>de_DE, pt_PT, pt_BR.-m --modeValores: mesclar ou substituir (padrão).
-d --allow-duplicatesCriar diretórios e arquivos
Os pacotes de idiomas estão localizados em um diretório em app/i18n/<VendorName> no sistema de arquivos do Commerce com o seguinte conteúdo:
- Arquivos de licença necessários
composer.jsonregistration.phpque [registra] o pacote de idiomaslanguage.xmlarquivo de metainformações
de_de].Para criar esses arquivos:
-
Crie um diretório em
app/i18n.Por exemplo, os pacotes de idiomas do Commerce estão localizados em
app/i18n/magento -
Adicione os arquivos de licença necessários.
-
Adicione [
composer.json] que especifica dependências para o pacote de idioma. -
Registrar o pacote de idioma com [
registration.php] -
Adicione o arquivo de metainformações
language.xmlconforme discutido na próxima seção.
Pacote de idioma language.xml
Ao declarar um pacote de idioma no arquivo de configuração language.xml, você deve especificar a sequência da herança de idioma para esse pacote.
A herança de idioma permite criar uma tradução chamada filho com base em uma tradução existente chamada pai. As traduções secundárias substituem as principais. No entanto, se a tradução secundária não fizer upload ou exibir uma frase ou palavra, o Commerce usará o local principal. Exemplos de herança de pacote de idioma.
Para declarar um pacote, especifique as seguintes informações:
<?xml version="1.0"?>
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
<code>en_GB</code>
<vendor>magento</vendor>
<package>en_gb</package>
<sort_order>100</sort_order>
<use vendor="oxford-university" package="en_us"/>
</language>
Onde:
code— Local do pacote de idioma (obrigatório)vendor— Nome de fornecedor do módulo (obrigatório)package— Nome do pacote de idioma (obrigatório)sort_order— Prioridade de carregamento de um pacote quando há vários pacotes de idiomas disponíveis para uma lojause— Local do pacote de idioma pai do qual herdar dicionários
Se necessário, é possível especificar vários pacotes principais. Os pacotes principais são aplicados em uma base listada pela primeira vez e usada.
Exemplo de herança de linguagem
Suponha que um pacote de idioma herde de dois outros pacotes e que esses pacotes também tenham pacotes pai e "avô".
Se um pacote de linguagem herda de dois pacotes, seu language.xml pode ser semelhante ao seguinte:
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
<code>en_GB</code>
<vendor>magento</vendor>
<package>language_pack</package>
<sort_order>100</sort_order>
<use vendor="parent-package-one" package="language_package_one"/>
<use vendor= "parent-package-two" package="language_package_two"/>
</language>
No exemplo anterior:
language_package_oneherda deen_au_packageeen_au_packageherda deen_ie_packagelanguage_package_twoherda deen_ca_packageeen_ca_packageherda deen_us_package
Se o aplicativo Commerce não puder encontrar a palavra ou frase no pacote en_GB, ele procurará em outros pacotes na seguinte sequência:
parent-package-one/language_package_one<vendorname>/en_au_package<vendorname>/en_ie_packageparent-package-two/language_package_two<vendorname>/en_ca_package<vendorname>/en_us_package
Especificar todas as heranças entre os pacotes de idioma pode resultar na criação de cadeias de herança circulares. Use o teste Magento\Test\Integrity\App\Language\CircularDependencyTest para localizar e corrigir essas cadeias.
Configurar vários pacotes para um idioma
Para tornar sua loja mais flexível, você pode carregar vários pacotes de idiomas para o mesmo idioma na loja. Assim, você pode usar diferentes pacotes personalizados para diferentes partes da loja, pois o sistema compila um único pacote de todos os pacotes que estão disponíveis para uma linguagem.
Para ativar um pacote adicional para um idioma existente, nomeie o novo pacote com qualquer nome, exceto para um nome de código de idioma existente (para evitar confusão). Especifique as configurações de um pacote no arquivo de metainformações language.xml do pacote de idioma, conforme discutido na próxima seção.
Exemplos de uso de comandos de tradução
As seções a seguir fornecem exemplos completos do uso dos comandos discutidos neste tópico para criar dicionários de tradução e pacotes de tradução:
Exemplo: criar um dicionário de tradução para um módulo ou tema
Para adicionar uma tradução em alemão a um módulo ou tema que deseja distribuir para outros comerciantes:
-
Colete frases do módulo:
code language-bash bin/magento i18n:collect-phrases -o "/var/www/html/magento2/app/code/ExampleCorp/SampleModule/i18n/xx_YY.csv" /var/www/html/magento2/app/code/ExampleCorp/SampleModulenote info INFO O nome do arquivo CSV deve corresponder exatamente à localidade, incluindo a caixa dos caracteres. -
Traduza as palavras e frases usando estas diretrizes.
-
Se necessário, copie
xx_YY.csvem/var/www/html/magento2/app/code/ExampleCorp/SampleModule/i18nou no diretório de temas do módulo (dependendo se o dicionário de tradução é para um módulo ou tema).
Exemplo: criar um pacote de idioma
Semelhante ao exemplo anterior, gere um arquivo CSV, mas em vez de especificar um módulo ou diretório de tema, especifique todo o diretório raiz do aplicativo Commerce. O CSV resultante contém qualquer frase que o comando possa encontrar no código.
-
Colete frases do módulo:
code language-bash bin/magento i18n:collect-phrases -o "/var/www/html/magento2/xx_YY.csv" -mnote info INFO O nome do arquivo CSV deve corresponder exatamente à localidade, incluindo a caixa dos caracteres. -
Traduza as palavras e frases usando estas diretrizes.
-
Crie o pacote de idioma.
code language-bash bin/magento i18n:pack /var/www/html/magento2/xx_YY.csv -d xx_YY -
Crie um diretório para o pacote de idioma.
Por exemplo,
/var/www/html/magento2/app/i18n/ExampleCorp/xx_yy -
Nesse diretório, adicione todos os itens a seguir:
- Uma licença, se necessário
composer.json(exemplo a seguir)registration.php(exemplo a seguir)language.xml(exemplo a seguir)
Amostra
composer.json:code language-json { "name": "examplecorp/language-xx_yy", "description": "Sample language", "version": "100.0.2", "license": [ "OSL-3.0", "AFL-3.0" ], "require": { "magento/framework": "100.0.*" }, "type": "magento2-language", "autoload": { "files": [ "registration.php" ] } }Amostra
registration.php:code language-php <?php /** * Copyright [first year code created] Adobe * All Rights Reserved. */ use Magento\Framework\Component\ComponentRegistrar; ComponentRegistrar::register( ComponentRegistrar::LANGUAGE, 'magento_xx_yy', __DIR__ );Amostra
language.xml:code language-xml <?xml version="1.0"?> <!-- Copyright [first year code created] Adobe All Rights Reserved. --> <language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd"> <code>xx_YY</code> <vendor>examplecorp</vendor> <package>xx_yy</package> </language>