Laravel 有一个像这样工作的本地化包(PHP):
echo __('I love programming.');
以及如何做同样的事情,但对于基于 VueJS 构建的组件?我使用标准的盒装解决方案 - Laravel MIX。
我想要这样的东西:
<template>
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" aria-hidden="true" title="{% RELOAD %}" @click="$emit('reload')"><i class="fas fa-sync"></i></button>
<h5 v-if="title"><i class="icon fas fa-ban"></i> {{ title }}</h5>
{{ message }}
</div>
</template>
<script>
export default {
props: ["title", "message"]
}
</script>
在这里,{% RELOAD %}
我放置了替换文本,它应该从本地化文件中提取。
UPD{{ title }}
和{{ message }}
都是取自属性,不需要翻译。
在medium.com上找到了答案
将带有翻译的 JSON 对象传递给浏览器
添加到文件中
routes/web.php
:因此,根据语言设置,将选择所有必要的文件并生成 JSON 对象。它将通过 route 提供
js/lang.js
。然后你需要在页面模板中包含这个脚本:
因此,可以接收翻译:
或通过助手:
Vue.js
现在我们需要在 VueJS 中导入一个新方法:
因此,在模板(
.vue
文件)中,我们现在可以使用与 Blade 中相同的语法!创建一个带有翻译的表(一个带有翻译的文件),将其放在 Store 中,然后过滤翻译所需的内容(在 admin.js 中全局定义过滤器):
店铺: