Pergunta

[EDITAR]
Este é desatualizado.A tradução não é feito mais como descrito abaixo
[/EDIT]
No Magento 1 traduzíveis textos necessários em javascript foram adicionados no jstranslate.xml arquivo do etc pasta de um módulo e eles foram adicionadas automaticamente para o tradutor js objeto.
Como posso adicionar textos traduzíveis para ser utilizado em javascript no Magento 2?
Eu descobri como usar traduções de texto em Magento 2, mas não sei como adicionar novas.

Aqui está um exemplo sobre como usá-los:

alert($.mage.__('Text to translate here'));
Foi útil?

Solução

OK.Eu achei uma solução, mas que as costuras feio para mim.
No leiaute identificador da página, eu preciso me adicionar este:

<referenceContainer name="after.body.start">
    <block class="Magento\Framework\View\Element\Template" name="some-name-here" template="[Namespace]_[Module]::translate.phtml"/>
</referenceContainer>

depois de criar o modelo translate.phtml no [Namespace]/[Module]/view/[frontend|adminhtml]/templates com este conteúdo:

<?php
$_data = array(
    'Text one to translate' => __('Text one to translate'),
    'Text two to translate' => __('Text two to translate'),
);
?>
<script type="text/javascript">
    require(["jquery","mage/translate"], function($){
        $.mage.translate.add(<?php echo Zend_Json::encode($_data) ?>)
    });
</script>

Eu realmente espero que existe uma outra maneira de fazer isso.

Outras dicas

A predefinição de origem para as traduções no frontend parece ser /app/code/Magento/Tradução/vista/base/templates/traduzir.phtml

apontando para este bloco /app/code/Magento/Translation/Block/Js.php

o que tem isso como provedor de dados /app/code/Magento/Translation/Model/Js/DataProvider.php

Assim, você poderá alterar a dependência próprio provedor de dados, ou de interceptar este para adicionar próprias traduções, ou adicionar um próprio bloco deste tipo com o próprio provedor de dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top