gpt4 book ai didi

ruby-on-rails - Rails+Vue.js 实例上是否有 I18n 在单个存储库中共享语言环境?

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:24 24 4
gpt4 key购买 nike

我们正在引入 Vue.js 来管理前端。同时,我们正在考虑转向另一种方式来管理整个应用程序堆栈中的 I18n。

最初计划的解决方案是使用 gettext 实现,例如 fast_gettext .但是由于 Vue.js 的到来,一个额外的限制是能够对传统的 Rails View 和 Vue.js 呈现的元素使用相同的语言环境存储库。

一个可能的有效解决方案是有一种方法来执行 Rails 代码,类似于对 erb 文件执行的操作。

关于信息,Vue.js 是通过 webpacker 安装的,因为我们发现的 gems 似乎已经过时了。

最佳答案

你可以使用i18n-js
https://github.com/fnando/i18n-js

它允许您使用您的 config/locale yaml 文件,就像它们是您的 vue 代码的一部分一样。按照项目页面中的安装说明进行操作后,您可以像这样创建一个 mixin:

export default {
methods: {
t: (...args) => I18n.t(...args),
currentLocale: () => I18n.currentLocale()
}
}

像这样导入:

<template></template>

<script>
import i18n from "../mixins/i18n"

export default {
mixins: [i18n]
}
</script>

然后像这样使用:

<button @click="toggleItem(content)">
<span v-if="isSelected">
{{ t("remove") }}
</span>
<span v-else>
{{ t("add") }}
</span>
</button>

关于ruby-on-rails - Rails+Vue.js 实例上是否有 I18n 在单个存储库中共享语言环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48950685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com