Como adicionar um novo idioma - Magento 2.0.1


7

Estou tentando criar uma nova exibição de loja para o idioma tâmil, mas o idioma não é listado ao escolher o idioma do administrador.

breve descrição do que eu fiz

1) Criei com sucesso o Tamil Store View. Consulte a captura de tela para sua referência fácil.

vista da loja tamil

2) Em seguida, estou tentando adicionar o Tamil Language Package

2.1 frases coletadas

crie a pasta /var/www/html/magento2/app/i18n/tamil/tn_tn/

Depois disso, execute o comando abaixo e receba uma mensagem de sucesso

php bin/magento i18n:collect-phrases -o "/var/www/html/magento2/app/i18n/tamil/tn_tn/dictionary.csv" -m "/var/www/html/magento2/"

2.2 compositer.json

{
    "name": "tamil/tn"
    ,"type": "magento2-language"
    ,"description": "Tamil language"
    ,"authors": [{
    "name": "Bilal Usean",
    "email": "yyyyyy@yyyyy.yyy",
    "role": "Developer"
    }]  
    ,"extra": {"map": [["*", "tamil/tn_tn"]]}
}

2.3 language.xml

<?xml version='1.0'?>
<language xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='urn:magento:framework:App/Language/package.xsd'>
    <code>tn_TN</code>
    <vendor>tamil</vendor>
    <package>tn_tn</package>
</language>

2.4 registration.php

<?php

\Magento\Framework\Component\ComponentRegistrar::register(
   \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
   'tamil_tn_tn',
   __DIR__
);

2.5 Traduzir

dictionary.csv contém mais de 8000 linhas de frases para a amostra que eu peguei uma ( aberta no gedit )

"We found other products you might like!","We found other products you might like!",module,Magento_Catalog

tn_TN.csv Traduzi acima de uma linha específica (contém uma linha) ( aberta no gedit )

"We found other products you might like!","நீங்கள் விரும்பக்கூடிய மற்ற பொருட்கள் காணப்படும் !",module,Magento_Catalog

2.6 Pacote de idiomas

execute o comando abaixo para criar o pacote de idiomas e receba uma mensagem de sucesso Successfully saved tn_TN language package.

php bin/magento i18n:pack -d app/i18n/tamil/tn_tn/tn_TN.csv tn_tn tn_TN

Ele criará o diretório (pacote tn_tn)

<magento-root>/tn_tn/vendor/magento/module-catalog/i18n/tn_TN.csv

alguém notou, as frases coletar e os comandos do pacote lang são diferentes do documento oficial; consulte este link para saber por que estou usando dessa maneira.

Estrutura geral do meu pacote de idiomas

insira a descrição da imagem aqui

Após esse cache limpo, execute setup: upgrade, indexer: reindex, mas não consigo encontrar meu pacote de idiomas Tamil na loja Tamil recém-criada , exibir as opções de localidade.

fácil para sua referência

Gostaria de mencionar mais uma, pesquisei sobre o pacote lang existente /var/www/html/magento2/vendor/magento/language-de_de(compositer.json, language.xml, registration.php), mas não consegui encontrar o nome exato do código do idioma listado em admin (alemão (Alemanha)). Então, confundi qualquer etapa que perdi para criar a localidade.

por que o pacote de idiomas tâmil não é instalado?


O que você quer dizer com roteiro?
Raphael no Pianism Digital

passos para alcançar
Bilal Usea

Qual língua ?
Arunendra

Tamil linguagem @Arunendra
Bilal Usea

Você é capaz de fazer isso? Se sim, então por favor, compartilhe o processo
Shawkat Alam

Respostas:


5

Etapa 1: colete as frases

Primeiro, você precisa descobrir as frases que precisa traduzir.

Você pode fazer isso executando:

php bin/magento i18n:collect-phrases -o "/path/to/magento2/app/i18n/vendor/lg_lg/dictionary.csv"

Observe que vendoré o mesmo de quando você desenvolve o módulo e lg_lgé o código lang do seu idioma.

Etapa 2: criar o composer.jsonarquivo

Vá para a sua app/i18n/vendor/lg_lgpasta e crie o composer.jsonarquivo:

{
    "name": "vendor/lg"
    ,"type": "magento2-language"
    ,"description": "Tamil language"
    ,"authors": [{
        "name": "Bilal Usean",
        "email": "bla@bla.com",
        "role": "Developer"
    }]  
    ,"extra": {"map": [["*", "vendor/lg_lg"]]}
}

Etapa 3: criar o language.xmlarquivo

Ainda na sua app/i18n/vendor/lg_lgpasta, você precisa criar um language.xmlarquivo:

<?xml version='1.0'?>
<language xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='urn:magento:framework:App/Language/package.xsd'>
    <code>lg_LG</code>
    <vendor>vendor</vendor>
    <package>lg_lg</package>
</language>

Etapa 4: criar o registration.phparquivo

Ainda na mesma pasta, você precisa criar um registration.phparquivo:

<?php

\Magento\Framework\Component\ComponentRegistrar::register(
   \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
   'vendor_lg_lg',
   __DIR__
);

Etapa 5: traduzir

Ainda na sua pasta, você pode começar a escrever suas traduções em um lg_lg.csvarquivo com base no dicionário recuperado na etapa 1. Você pode usar o guia oficial para seguir as diretrizes de tradução: http://devdocs.magento.com/guides/v2. 0 / config-guide / cli / config-cli-subcomandos-i18n.html # config-cli-subcomandos-xlate-dict-trans

Etapa 6: criar o pacote de idiomas

Execute o seguinte comando:

php bin/magento i18n:pack app/i18n/vendor/lg_lg/lg_lg.csv lg_Lg lg_LG

Nota importante

Para que isso funcione, o nome do arquivo .csv deve corresponder exatamente ao código do idioma, incluindo o caso dos caracteres.

Documentação oficial: http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2


Eu fiz o que você listou, mas o novo idioma não está listado na nova visualização da loja, algo que eu perdi?
Bilal Usean

Você tentou remover var/generation, var/cachee var/di?
Raphael no Digital Pianism

Sim, é uma ação padrão para mim :-) tudo o que mudei primeiro, removo var / *. Eu atualizei minha pergunta
Bilal Usean

se você tem um momentos avaliar este magento.stackexchange.com/questions/116650/...
Bilal Usea

Eu atualizei a minha pergunta
Bilal Usea


1

Você não pode adicionar novo idioma na opção Localidade geral

A razão é porque o magento usa a biblioteca php intl para preencher a caixa de seleção

veja o seguinte arquivo

vendor/magento/framework/Locale/TranslatedLists.php

método _getOptionLocales ()


Acho que sim, Como podemos personalizar e acrescentar novas língua local ..
matinict

@matinict, você pode utilizar um existente não utilizado.
Nahid

0

Aqui está um guia passo a passo para criar um pacote de idiomas.

Corra i18n:collect-phrasespara coletar todas as frases a serem traduzidas:

Um exemplo:

bin/magento i18n:collect-phrases -o "<path to Magento>/app/i18n/df/ru_ru/dictionary.csv" -m

Passo 2

Crie uma extensão Magento 2 para o pacote de idiomas.

Etapa 2.1

Crie um arquivo composer.json . Um exemplo do núcleo:

magento/magento2/blob/2.0.0/app/i18n/magento/de_de/composer.json

{
    "name": "magento/language-de_de",
    "description": "German (Germany) language",
    "version": "100.0.2",
    "license": [
        "OSL-3.0",
        "AFL-3.0"
    ],
    "require": {
        "magento/framework": "100.0.*"
    },
    "type": "magento2-language",
    "autoload": {
        "files": [
            "registration.php"
        ]
    }
}

Meu compositer.json :

{
    "name": "dfl/ru"
    ,"type": "magento2-language"
    ,"description": "Russian language"
    ,"homepage": "https://mage2.pro"
    ,"license": "proprietary"
    ,"authors": [{
        "name": "Dmitry Fedyuk",
        "email": "admin@mage2.pro",
        "homepage": "https://mage2.pro/users/dmitry_fedyuk",
        "role": "Developer"
    }]  
    ,"extra": {"map": [["*", "df/ru_ru"]]}
}

Etapa 2.2

Crie um arquivo language.xml .

Um exemplo do núcleo:

magento / magento2 / blob / 2.0.0 / app / i18n / magento / de_de / language.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
    <code>de_DE</code>
    <vendor>magento</vendor>
    <package>de_de</package>
</language>

Meu idioma.xml :

<?xml version='1.0'?>
<language xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='urn:magento:framework:App/Language/package.xsd'>
    <code>ru_RU</code>
    <vendor>df</vendor>
    <package>ru_ru</package>
</language>

Etapa 2.3

Crie um arquivo registration.php .

Um exemplo do núcleo:

magento / magento2 / blob / 2.0.0 / app / i18n / magento / de_de / registration.php

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
    'magento_de_de',
    __DIR__
);
?>

Eu uso um 66 universalregistration.php .

etapa 3

Instale a extensão

Passo 4

Faça a tradução real e mantenha sua extensão atualizada. Veja outros tópicos de localização: https://mage2.pro/tags/localization

Fonte.


obrigado, já tentei este link, mas ele não listou o idioma criado na visualização da loja.
Bilal Usean

você adivinhou alguma coisa que eu sinto falta? Eu atualizei minha pergunta
Bilal Usean

Você executou a instalação e limpou o cache?
Arunendra 23/05

sim, mas o problema persiste. Como verificar o status da extensão de idioma? como (config.php ou qualquer linha de comando)
Bilal Usean

0

Etapa 1: Crie o arquivo composer.json assim

{
   "name": "tamil/tn_tn",
   "description": "Tamil language",
   "authors": [{
     "name": "Bilal Usean",
     "email": "xxxxxxx@xxxx.xxx",
     "role": "Developer"
   }],
   "require": {
     "magento/framework": "100.0.*"
   },
   "type": "magento2-language",
   "autoload": {
     "files": [
       "registration.php"
     ]
   }
   ,"extra": {"map": "*", "tamil/tn_tn"}
 }

Etapa 2: Crie o arquivo language.xml como este

<?xml version="1.0"?>
 <language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
   <code>tn_TN</code>
   <vendor>tamil</vendor>
   <package>tn_tn</package>
 </language>

Etapa 3: Crie o arquivo registration.php como este

<?php
 \Magento\Framework\Component\ComponentRegistrar::register(
     \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
     'tamil_tn_tn',
     __DIR__
 );

Passo 4: Agora coloque o arquivo traduzido tn_TN.csv na / app / i18n / / tamil tn_tn diretório


ainda o problema permanece ..... não listado na exibição da loja recém-criada, algo precisa ser configurado no back-end?
Bilal Usean

sintaxe: você perdeu vírgula (,) em autor
Bilal Usea

Corrigido e adicionado (,) ... você deve instalá-lo após a criação, não é?
sIiiS 23/05

instalar instalação médio prazo: upgrade
Bilal Usea

@BilalUsean: Sim, run php bin/magento setup:upgrade... depois que se abrem /app/etc/config.phpvalor e verificação de tamil_tn_tnser 1
sIiiS
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.