Como traduzir mensagem de texto ou texto de JS no Magento 2?


12

Eu tenho duas exibições A mensagem de erro de validação js padrão em inglês e árabe precisa ser traduzida para o árabe. Como fazê-lo? E também tenho alguns textos personalizados sobre como fazê-lo.

Eu criei um i18n para o árabe que está funcionando bem se eu ecoar em arquivo PHTML ou PHP, da mesma maneira que como transformá-lo em js também no Magento 2

alguém me ajuda

Respostas:


28

Você pode traduzir a mensagem de erro js como esta

require([
'jquery', // jquery Library
'jquery/ui', // Jquery UI Library
'mage/translate' // Magento text translate (Validation message translte as per language)
], function($){ 
    $(window).load(function() {
        alert($.mage.__('Enter Your message here'));
    });
});

Magento2 use mage/translate.jspara tradução


criado ar_KW.csv na minha pasta i18n módulo em que traduzida como "Digite aqui sua mensagem" em meu ji tentou não trabalhando, mas em phtml se eu echo meu texto traduzido i exibindo
Pradeep Kumar

Você limpou o cache e a implantação de conteúdo estático? @PradeepKumar
Keyur Shah

Apenas a resposta que eu estava procurando! +1
thdoan 1/08/16

Esteja ciente de que isso não funcionará se você o usar diretamente em arquivos phtml. O Magento apenas analisará e converterá os arquivos js e html.
eInyzant

Isso funcionará, mas não é o que limpa um código; você está precisando de mago / translate, mas não o está usando. .
Oliver de Cramer

9

Nota adicional: se você precisar incluir alguma variável na tradução (em js), poderá usar isto :

$.mage.__('Hello %1').replace('%1', yourVariable);


5

depois de cavar fundo, venho a conhecer o conceito de localização no magento2

abaixo são as coisas que você precisa seguir, no meu site temos duas view en e ar_kw Arabic

  1. Criar pacote de idioma http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2

  2. para obter todas as frases, você precisa executar o comando ex

    php D:\xampp\htdocs\magento2\bin\magento i18n:collect-phrases -o "D:\xampp\htdocs\magento2\app\code\Sugarcode\Test\i18n\ar_KW.csv" D:\xampp\htdocs\magento2\app\code\Sugarcode\Test

    ele leu meu módulo de teste e criou um csv Sugarcode \ Test \ i18n \ ar_KW.csv

vai ficar tudo __('Some Text') and $.mage.__('Some Text')em js e preparar um csv

  1. agora traduza o arquivo recém-gerado para o árabe, que você pode manter em nome do código de localidade ar_KW.csv (pode estar dentro do seu módulo ou dentro do seu módulo de idioma)
  2. remova a pasta var e execute bin\magento setup:static-content:deploy en_US ar_KW

  3. ele criará todos os js junto com o arquivo js-translation.json em cada tema / ex luma / ar_KW, js-translation.json terá todos os dados traduzidos no lado js no formato json sempre que você vir a mensagem de erro que é mostrada neste arquivo só


Olá, fiz todas as etapas conforme sua resposta, o código que adicionei para ex: alert ($. Mage .__ ('js test')); está vindo corretamente no arquivo de idioma que está gerando, mas quando altero a tradução, a mensagem js ainda é a mesma. Estou esquecendo de algo ?
Sunil Verma

2

lançar erro se você usar __ então siga o código abaixo

  require([
    'jquery', // jquery Library
    'mage/translate'
   ], function($,$t){ 
        $(window).load(function() {
            alert($t('Enter Your message here'));
        });
    });


0

Adicione em um modelo .phtml sua mensagem de erro como:
<?php echo __('This is a required field.'); ?>
- tradução ativa online
- tradução

feito


Você poderia adicionar mais alguns detalhes para a resposta sobre como e por que funciona?
tjons
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.