问题标签 [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.
vue.js - 使用 i18n 和 Nuxt 时设置语言属性?
使用 Nuxt,您可以在nuxt.config.js文件中设置语言 HTML 属性,如下所示:
但是,如果您有一个多语言应用程序,您应该怎么做?有没有办法根据语言环境设置语言属性?
我认为这可能document.documentElement.setSttribute('lang', 'language-code')
会起作用,但是由于 nuxt 在服务器端呈现,它似乎无法访问 documentElement 对象。
谢谢
vue.js - Vue-i18n - 来自 http 请求的动态本地化问题
我正在尝试从 HTTP 调用加载本地化,因为我希望语言是动态的和可管理的,而不是随应用程序一起提供。
我使用 SSR 示例和我自己的一些实现做了一些工作。但是在初始渲染时,语言不会加载。当更改路由客户端时,事情正在更新。
i18n.js
路由器 - router.beforeEach
存储操作 - 获取语言环境
结果:
i18nrouter.beforeEach
在它应该在之后初始化的地方初始化router.beforeEach
。
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 中尝试的那样进行操作。可以以其他方式完成吗?
谢谢!
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 模块上为它的构造函数参数触发设置器?谢谢!
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 个条件/字符串中使用它,但我未能在组合字符串中使用它。是否有可能,如果是,那是语法吗?
谢谢!
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 文件中使用对象)
如果需要更多信息,请告诉我提供。欢迎任何帮助或想法。
javascript - vue-i18n 自定义块的动态源
我正在使用vue-i18n,我想知道是否有办法动态更改源文件<i18n>
以匹配语言环境。
对于每个 vue 组件,我都有一个包含不同翻译的文件夹:
├── myComponent
| └── lang
| ├── en.json
| ├── fr.json
| └── index.vue
在我的index.vue
我想做类似的事情:
<i18n src='./lang/' + $i18n.locale + '.json'></i18n>
可能吗 ?
更新:所以显然现在不可能。
javascript - 是什么导致我的 Vue 应用程序中出现这个未定义的值?
我在我的应用程序中使用 Vuex 和 Vue-i18n 插件。我想在插件之间共享的非反应性数组上未定义。如果我在两个文件中记录数组,则 i18n 文件首先打印(未定义),然后 vuex 按预期打印数组。这让我相信我在存储文件中创建数组之前引用了 i18n 插件中的数组。我仔细阅读了导入/导出 MDN 页面,我相信我在这里的导入是同步的?这是我能想到的唯一其他原因。这是有问题的 i18n 插件
我的文件如下
main.js
Vuex
i18n
vuejs2 - 页面上带有可选动态路由的链接总是没有 vuejs 中的参数
我的路线定义如下:
我:locale
用于应用程序翻译。它是可选的,因为空区域设置用于默认语言。我的问题是,即使存在语言环境,所有指向其他页面的链接都没有语言环境,如果这有意义的话。例如,example.com/about 是意大利语,example.com/en/about 是英语。但是无论是哪个 URL,页面上的链接总是指向联系人或主页,例如 example.com/contact 和 example.com/home。有没有办法来解决这个问题?或者有没有更简单的方法从 URL 使用应用程序翻译。我正在使用vue-i18n
翻译。谢谢