ترجمة نص جافا سكريبت على Magento 2
-
12-12-2019 - |
سؤال
[يحرر]
هذا عفا عليه الزمن.لم تعد الترجمة تتم كما هو موضح أدناه
[/يحرر]
في Magento 1، تمت إضافة النصوص القابلة للترجمة المطلوبة في جافا سكريبت في ملف jstranslate.xml
الملف في etc
مجلد الوحدة النمطية وتمت إضافتها تلقائيًا إلى كائن المترجم js.
كيف يمكنني إضافة نصوص قابلة للترجمة لاستخدامها في جافا سكريبت في Magento 2؟
لقد وجدت كيفية استخدام الترجمات النصية في Magento 2 ولكني لا أعرف كيفية إضافة ترجمات جديدة.
فيما يلي مثال على كيفية استخدامها:
alert($.mage.__('Text to translate here'));
المحلول
نعم.لقد وجدت حلاً لكنه يبدو قبيحًا بالنسبة لي.
في مقبض تخطيط الصفحة أحتاج إلى إضافة هذا:
<referenceContainer name="after.body.start">
<block class="Magento\Framework\View\Element\Template" name="some-name-here" template="[Namespace]_[Module]::translate.phtml"/>
</referenceContainer>
ثم قم بإنشاء القالب translate.phtml
في [Namespace]/[Module]/view/[frontend|adminhtml]/templates
مع هذا المحتوى:
<?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>
آمل حقًا أن تكون هناك طريقة أخرى للقيام بذلك.
نصائح أخرى
يبدو أن src الافتراضي للترجمات في الواجهة الأمامية هو/app/code/Magento/Translation/view/base/templates/translate.phtml
مشيرا إلى هذه الكتلة /app/code/Magento/Translation/Block/Js.php
الذي لديه هذا كموفر البيانات /app/code/Magento/Translation/Model/Js/DataProvider.php
لذلك يمكنك تغيير التبعية إلى مزود بيانات خاص بك، أو اعتراض هذا لإضافة ترجمات خاصة بك، أو إضافة كتلة خاصة من هذا النوع مع مزود بيانات خاص بك.