Magento 2 javascript traduções de texto
-
12-12-2019 - |
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'));
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.