psy*_*ave 6 ruby-on-rails internationalization rails-i18n vue.js
我们正在引入 Vue.js 来管理前端。同时,我们正在考虑采用其他方式来管理整个应用程序堆栈中的 I18n。
最初计划的解决方案是使用 gettext 实现,如fast_gettext。但是由于 Vue.js 的到来,一个额外的限制是能够为传统的 Rails 视图和 Vue.js 呈现的元素使用相同的语言环境存储库。
一种可能的有效解决方案是有一种方法来执行类似于 erb 文件可能执行的操作的 rails 代码。
有关信息,Vue.js 是通过 webpacker 安装的,因为我们发现的 gems 似乎已经过时。
您可以使用i18n-js.
https://github.com/fnando/i18n-js
它允许您使用config/localeyaml 文件,就像它们是 vue 代码的一部分一样。按照项目页面上的安装说明进行操作后,您可以创建一个像这样的 mixin:
export default {
methods: {
t: (...args) => I18n.t(...args),
currentLocale: () => I18n.currentLocale()
}
}
Run Code Online (Sandbox Code Playgroud)
像这样导入:
<template></template>
<script>
import i18n from "../mixins/i18n"
export default {
mixins: [i18n]
}
</script>
Run Code Online (Sandbox Code Playgroud)
并像这样使用:
<button @click="toggleItem(content)">
<span v-if="isSelected">
{{ t("remove") }}
</span>
<span v-else>
{{ t("add") }}
</span>
</button>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1281 次 |
| 最近记录: |