如何将您当前的语言环境包含到 url 中? (Nuxt.js/Vuetify)
How to include your current locale into the url? (Nuxt.js/Vuetify)
我需要将我的语言环境 (en/nl) 包含到我的 nuxt.url 项目中,我使用 i18n 进行翻译。我尝试使用内置的动态路由功能,通过在我的目录名称中添加下划线作为前缀,例如,文件夹 _lang,包括 vue 页面索引、图库和关于我们。该功能承诺,由于下划线,_lang 的 url 部分可以是任何内容。
例如:localhost:3000/lang/gallery
也可以是localhost:3000/randomstring/gallery
没关系。我试图通过使用全局路由变量 ($route.params.[randomstring])
来获取和设置“随机字符串”,我只能获取它,而不能设置它。因此,当我更改区域设置(使用 i18n)时,“randomstring”不能设置为与所选区域设置相同的名称。
我唯一的解决方法是使用 vue-router 组件的 'base' 属性 通过在默认值(“/”)之后硬编码进程环境变量。
另一种解决方法是复制所有页面,然后通过硬编码将它们转换到各自的文件夹(一个文件夹 'en' 和一个文件夹 'nl',包括所有 3 个页面)。但这是不可持续的,因为您要向站点添加页面。
TL DR:如何将语言环境动态添加到您的 nuxt.js/vuetify 项目(使用 i18n)?
使用的文档:https://nuxtjs.org/docs/2.x/features/file-system-routing
当您使用 nuxt/i18n 模块 localePath
方法时,您的 url 将相应地更改为当前活动的语言环境。
<nuxt-link :to="localePath('about')">Go to about page</nuxt-link>.
将重定向到:/fr/about
如果 'fr'(法语)是活动语言环境。
要设置语言环境,请使用 setLocale
方法:
<button @click="$i18n.setLocale('fr')">Set Locale</button>
更多 nuxt/i18n API 可在此处找到参考:https://i18n.nuxtjs.org/api#methods-1
我需要将我的语言环境 (en/nl) 包含到我的 nuxt.url 项目中,我使用 i18n 进行翻译。我尝试使用内置的动态路由功能,通过在我的目录名称中添加下划线作为前缀,例如,文件夹 _lang,包括 vue 页面索引、图库和关于我们。该功能承诺,由于下划线,_lang 的 url 部分可以是任何内容。
例如:localhost:3000/lang/gallery
也可以是localhost:3000/randomstring/gallery
没关系。我试图通过使用全局路由变量 ($route.params.[randomstring])
来获取和设置“随机字符串”,我只能获取它,而不能设置它。因此,当我更改区域设置(使用 i18n)时,“randomstring”不能设置为与所选区域设置相同的名称。
我唯一的解决方法是使用 vue-router 组件的 'base' 属性 通过在默认值(“/”)之后硬编码进程环境变量。
另一种解决方法是复制所有页面,然后通过硬编码将它们转换到各自的文件夹(一个文件夹 'en' 和一个文件夹 'nl',包括所有 3 个页面)。但这是不可持续的,因为您要向站点添加页面。
TL DR:如何将语言环境动态添加到您的 nuxt.js/vuetify 项目(使用 i18n)?
使用的文档:https://nuxtjs.org/docs/2.x/features/file-system-routing
当您使用 nuxt/i18n 模块 localePath
方法时,您的 url 将相应地更改为当前活动的语言环境。
<nuxt-link :to="localePath('about')">Go to about page</nuxt-link>.
将重定向到:/fr/about
如果 'fr'(法语)是活动语言环境。
要设置语言环境,请使用 setLocale
方法:
<button @click="$i18n.setLocale('fr')">Set Locale</button>
更多 nuxt/i18n API 可在此处找到参考:https://i18n.nuxtjs.org/api#methods-1