سؤال

[يحرر]
هذا عفا عليه الزمن.لم تعد الترجمة تتم كما هو موضح أدناه
[/يحرر]
في 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

لذلك يمكنك تغيير التبعية إلى مزود بيانات خاص بك، أو اعتراض هذا لإضافة ترجمات خاصة بك، أو إضافة كتلة خاصة من هذا النوع مع مزود بيانات خاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top