问题标签 [vue-i18n]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5733 浏览

vue.js - 使用 i18n 和 Nuxt 时设置语言属性?

使用 Nuxt,您可以在nuxt.config.js文件中设置语言 HTML 属性,如下所示:

但是,如果您有一个多语言应用程序,您应该怎么做?有没有办法根据语言环境设置语言属性?

我认为这可能document.documentElement.setSttribute('lang', 'language-code')会起作用,但是由于 nuxt 在服务器端呈现,它似乎无法访问 documentElement 对象。

谢谢

0 投票
1 回答
4283 浏览

vue.js - Vue-i18n - 来自 http 请求的动态本地化问题

我正在尝试从 HTTP 调用加载本地化,因为我希望语言是动态的和可管理的,而不是随应用程序一起提供。

我使用 SSR 示例和我自己的一些实现做了一些工作。但是在初始渲染时,语言不会加载。当更改路由客户端时,事情正在更新。

i18n.js

路由器 - router.beforeEach

存储操作 - 获取语言环境

结果: i18nrouter.beforeEach在它应该在之后初始化的地方初始化router.beforeEach

Github问题链接

0 投票
2 回答
1752 浏览

javascript - vue-i18n如何缩写货币显示?

有没有办法在 vue-i18n 生态系统中实现 d3 可以用precisionPrefix做的事情?

这里有一个未解决的问题。

我在这里Intl发现了object的一个老问题。

谢谢你的帮助。

0 投票
0 回答
715 浏览

laravel-5 - 在 JS 中获取 vue-i18n 的标签

在我的 laravel 5.6 / vue.js 2.5.7/ Bootstrap4.1.0 应用程序中,我使用 https://github.com/kazupon/vue-i18n 插件添加了 i18n 支持

它工作正常,但如果在 vue 代码中我使用语法,例如:

我想在 Javascript 中获取标签,比如在 computed 中,因为某些标签取决于其他数据的值。

我可以这样做吗?如果可以,怎么做?

更新 :

我想详细说明我的任务:我有两种插入和更新模式的编辑器,在模板中我给其他子组件 editor-header 一个参数:

在我的 i18n 文件中,我有两个标签:“编辑/添加”和“文档类别”,但我不知道是否有办法像我在 header_title 中尝试的那样进行操作。可以以其他方式完成吗?

谢谢!

0 投票
1 回答
696 浏览

vuejs2 - VueJs VueX vue-i18n 翻译的实现

有一个 main.js -> App.vue -> router/index.js -> Index.vue

在 Index.vue 中,我尝试运行 vue-i18n (7.8.0),其中数据将由 VueX 存储提供为:

在 store.js 中,setLanguage 和 setTranslations 的更新工作正常,但是初始化时的 i18n 参数不是响应式的。在 newVueI18n 中使用固定值定义时,翻译工作正常。我确信错误在我这边,但没有找到任何不同的实现方法。可以请任何人澄清并提出正确的方法吗?(如果可能的话,我想保持现在的编码实现)

对不起,如果我夸大了,但是在实现 i18n 组件时,我想知道如何从组件 (Index.vue) 访问主 Vue 实例,以及如何在 i18n 模块上为它的构造函数参数触发设置器?谢谢!

0 投票
0 回答
168 浏览

vue-i18n - 带有 2 个数字参数的字符串

在我的 laravel 5.6 / vue.js 2.5.7/ @kazupon/vue-i18n-loader": "^0.3.0" 应用程序中,我将标签设置为

'selected_active_users' => '从 {active_users_selection_length} 个活跃用户中选择 {selected_active_users_count} 个用户',

在 vue 中我试着写

我得到的字符串为

这很好,但我想根据条件中的 active_users_selection_length 来激活用户/活动用户。很清楚如何在 1 个条件/字符串中使用它,但我未能在组合字符串中使用它。是否有可能,如果是,那是语法吗?

谢谢!

0 投票
1 回答
1112 浏览

image - 来自 json 文件的 Vue-i18n 图像名称未显示在 Vuetify 轮播中(通过翻译的 v-for 和 :src )

我在尝试从 vue-i18n 加载 Vuetify 轮播的图像名称时遇到问题。轮播在实施 vue-i18n 之前工作正常,但必须将其用于本地化翻译。轮播在“items”对象上有一个 v-for,其中包含“src”、“title”、“text”和“to”,title、text 和 to 用于为每个轮播图片生成的卡片,因此需要翻译改变它们。

但基本上从页面数据中拉出这个“项目”对象现在位于 vue-i18n 的 en-US.json 中,会使源无法与页面的导入图像连接,因此它不会显示图像. 文本、标题等和以前一样工作,控制台中不会显示错误。


import img1 from '@/assets/img/img1.jpg'
解决此问题的一种方法是将图像存储在云中并仅具有链接,但这会触发重新下载图像,并使用来自用户的每个不想要的新导航。
我想到的另一个解决方案是,如果我能以某种方式有两个不同的 v-for ,一个用于图像(将它们保存在页面数据中,因为它是这样工作的),另一个用于标题、文本和 to,将它们放在en-US.json 用于 vue-i18n 翻译,但我不知道这是否可以在同一个轮播中完成。

vue-i18n 中间件、插件、vuex 等正在按照 vue-i18n 的 nuxt.js 文档中的方式实现https://nuxtjs.org/examples/i18n/

我正在展示更多代码
index.vue(主页default.vue 布局内的页面)




带有导入图像的 index.vue 页面的脚本:




在没有 vue-i18n 更改的情况下它是如何工作的(在“items”对象上使用 v-for 代替):



vue-i18n 更改的情况如何(在 $t('default.index.items') 对象上使用 v-for 在 en-US.json 文件中使用对象)



如果需要更多信息,请告诉我提供。欢迎任何帮助或想法。

0 投票
0 回答
492 浏览

javascript - vue-i18n 自定义块的动态源

我正在使用vue-i18n,我想知道是否有办法动态更改源文件<i18n>以匹配语言环境。

对于每个 vue 组件,我都有一个包含不同翻译的文件夹:

├── myComponent | └── lang | ├── en.json | ├── fr.json | └── index.vue

在我的index.vue我想做类似的事情:

<i18n src='./lang/' + $i18n.locale + '.json'></i18n>

可能吗 ?

更新:所以显然现在不可能。

0 投票
0 回答
251 浏览

javascript - 是什么导致我的 Vue 应用程序中出现这个未定义的值?

我在我的应用程序中使用 Vuex 和 Vue-i18n 插件。我想在插件之间共享的非反应性数组上未定义。如果我在两个文件中记录数组,则 i18n 文件首先打印(未定义),然后 vuex 按预期打印数组。这让我相信我在存储文件中创建数组之前引用了 i18n 插件中的数组。我仔细阅读了导入/导出 MDN 页面,我相信我在这里的导入是同步的?这是我能想到的唯一其他原因。这是有问题的 i18n 插件

我的文件如下

main.js

Vuex

i18n

0 投票
1 回答
184 浏览

vuejs2 - 页面上带有可选动态路由的链接总是没有 vuejs 中的参数

我的路线定义如下:

:locale用于应用程序翻译。它是可选的,因为空区域设置用于默认语言。我的问题是,即使存在语言环境,所有指向其他页面的链接都没有语言环境,如果这有意义的话。例如,example.com/about 是意大利语,example.com/en/about 是英语。但是无论是哪个 URL,页面上的链接总是指向联系人或主页,例如 example.com/contact 和 example.com/home。有没有办法来解决这个问题?或者有没有更简单的方法从 URL 使用应用程序翻译。我正在使用vue-i18n翻译。谢谢