如何访问 Shopware 6 店面的 Javascript 翻译?

Ale*_*lex 2 javascript translation shopware shopware6

如何在前端的 Javascript 代码中访问剪切的翻译(如下创建:https: //developer.shopware.com/docs/guides/plugins/plugins/storefront/add-translations )?

我首先想到的是将翻译后的字符串打印到 twig 文件中的某种隐藏标签/数据属性中,然后从 JavaScript 代码中读取它。

但有没有建议的方法来做到这一点?

编辑:我正在寻找有关 Shopware 6 核心开发人员如何做到这一点的示例,以找到最佳实践而不是发明自己的东西。

tin*_*ect 5

如果您每个页面需要一次,可以将其添加到插件相关元素内的数据属性中。其他方式,特别推荐当您在页面上多次需要它来保存内容时:

我个人喜欢将这些文本设置在窗口的变量中。就在插件中设置其他窗口变量并请求它们的位置。

{% block base_script_router %}
{{ parent() }}
<script>
    window.contactTexts = {
        product: '{{ 'anySnippet'|trans|e('js') }}',
        basket: '{{ 'anySnippet'|trans|e('js') }}',
        order: '{{ 'anySnippet'|trans|e('js') }}',
        inkl: '{{ 'anySnippet'|trans|e('js') }}'
    };
</script>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

  • 他们不使用 JS 插件的翻译。但是您可以在这里查看窗口变量分配:https://github.com/shopware/platform/blob/e95f8b5a70b6ec9d2263812aa1869960a81f01ff/src/Storefront/Resources/views/storefront/base.html.twig#L121-L133 这是我们在其中一个 js 插件中使用的方式:https://pastebin.com/raw/KEPaCtdE 然后检查 window.contactTexts 是否存在以确保插件中的安全,然后使用它。 (2认同)