问题标签 [nuxt-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.
nuxt.js - 生成页面 vue-i18n nuxt
我正在尝试为多语言网站(de 和 en)运行“nuxt generate”,但出现以下错误:ERROR Error generating route "/de": This page could not be found
我只有在设置时才会收到错误defaultLocale: 'de'
,defaultLocale: 'en'
它运行良好。我尝试使用插件配置但无济于事。
这是我的配置: 配置
这些是生成的页面: 生成的页面
如果 defaultLocale: 'en',它不会尝试为例如“/en”生成页面</p>
从我在 /dist 文件夹中看到的内容来看,如果默认区域设置在“de”上,它会创建根页面,为英文页面创建一个文件夹“en”,它会尝试创建另一个文件夹“de”-> 失败。这对于设置为“en”的默认区域设置是不可复制的,它会为德语创建根页面和文件夹“de”,而没有任何新的“en”文件夹。
javascript - 无法读取未定义的属性 '$options' 为头选项制作外部 js 文件
我需要在 Nuxt 中为我的应用程序设置全局头,一些子页面会覆盖它。那些全局头需要包含翻译的数据。
我seoHead.js
用代码创建了文件:
我在我的index.vue
页面和其他页面中导入并使用这些数据,如下所示:
不幸的是,我面临Cannot read property '$options' of undefined
错误。这对我来说很奇怪,因为我已经export const $t = (sign) => Vue.prototype.$nuxt.$options.i18n.t(sign);
在另一个 js 文件中使用了代码。有谁知道为什么会出现这个错误?您知道翻译全局头部选项的最佳方式吗?
vue.js - Nuxt 中同一级别的多个动态路由可能吗?
NuxtJS 中是否可以在同一级别上拥有多个动态路由?
我试过这个但它不起作用:
我正在使用 Nuxt Content 并希望在同一页面级别上以独特的布局/设计动态加载不同的内容。
vue.js - Nuxt:中间件中的 i18n.localePath 访问
我为 Nuxt 定义了一个命名空间中间件,如下所示:
如果用户未通过身份验证,他们将被重定向到身份验证页面,位于/auth
. 但是,这是一个多语言站点,所以我需要生成当前语言环境对应的路径。通常我会使用$i18n.localePath
或在这种情况下使用 Nuxt 的context来执行此操作,app.i18n.localePath()
但是我收到此错误:
我不知道为什么,因为有一个上下文,并console.log(app.i18n)
告诉我 app.i18n.localePath是一个函数:
有什么建议么?谢谢!
nuxt.js - Nuxt 使用 vuex 和多语言站点生成
我目前正在使用 nuxt 和无头 Wordpress 作为 CMS 构建我的第一个(静态生成的)网站。我还使用该模块nuxt-i18n
支持多语言:德语(默认)和英语。
设置
要从多语言 Wordpress 中获取数据,我使用该模块wp-nuxt
,然后将来自 CMS 的数据存储在vuex
存储中。依赖于客户端浏览器语言或当用户手动更改语言时,$wp
( wp-nuxt
) 的端点会更改,因此将获取适当的内容并将其存储在存储中。
现在,NuxtServerInit()
从 CMS 中获取路由定义的区域设置的一些基本数据(例如http://myserver/en/news
,将从英语 CMS 端点获取基本数据http://wphost/mycms/en/wp-json/wp/v2/...
,请参见/en/
端点)。asyncData()
对于每个布局/页面,通过和获取更多内容fetch()
,当然,对于当前语言环境也是如此。
问题
这工作正常,只要 nuxt 通过nuxt dev
. asyncData()
如果用户切换了区域设置,则其他区域设置的提取将由fetch()
客户端处理。
nuxt generate
也适用于站点首次加载的语言环境,但是在切换语言环境时会出现问题:在商店中找不到数据。
我的猜测是:在generate
nuxt 上调用nuxtServerInit()
,asyncData()
并且fetch()
对于每条路线。这将使用路线区域设置数据填充每条路线的存储。对于 DE-Routes(例如myserver/impressum
)德语内容,对于 EN-routes(例如myserver/en/site-notice
)英语内容。但是如果用户更改了 locale,这些路由的 stores 只包含当前 locale 的内容,asyncData()
并且fetch()
不会被调用来填充 store(当然,这是设计的generate
)。
因此,在我看来,nuxt 正在为不同的路由存储不同的“vuex 存储实例”,并且无法在用户启动的区域设置切换时切换到存储。
可能的解决方法
我已经尝试了一些简单的解决方法,似乎可以解决问题,但远非完美:
在语言切换时触发重新加载,因此网站被重新加载,并且 nuxt 正在为具有正确语言环境的路线加载商店。- 我不喜欢它,它感觉很hacky。
nuxtServerInit()
通过获取两个 CMS 端点,用两种语言的数据填充存储。- 我也不喜欢它,它感觉很老套,虽然它可能适用于两种语言,但开销很大,但 CMS 的内容越多。
我希望我能够恰当地描述这个问题。有什么我想念的吗?到目前为止,我还没有找到任何关于此的内容。如果您对此有任何想法,我将不胜感激。
谢谢,瓦伦丁
nuxt.js - Nuxt Lang 属性配置
试图用 nuxt 指定我的语言,
结果很奇怪:
配置很简单,但不起作用:
},
任何想法 ?
vue.js - 如何在 nuxt 中实现多语言切换?
社区,
现在我正在使用 nuxt.js 开发一个多语言网站。我知道有一个名为 i18n 的解决方案。但我的计划不是将例如英语术语翻译成西班牙语。我正在尝试为不同目录中的不同语言创建不同的页面。我的计划是将默认设置为英语并创建一个名为es
包含我所有西班牙语页面的目录。目录可能是这样的:
英文的默认页面是xx.com
and xx.com/somepage
,而西班牙文的主页是xx.com/es
and xx.com/es/somepage
。如何添加下拉菜单以让用户切换语言?你能帮我弄清楚吗?我搜索了很多,但几乎所有的解决方案都是关于使用 i18n。或者i18n可以处理这种情况吗?先感谢您。
nuxt.js - nuxt-i18n 的问题和 nuxt 的 404 重定向
我正在开发一个带有自定义 404 页面的 nuxt 项目。当我安装模块 nuxt-i18n 以使我的网站使用法语和英语时,我遇到了为 404 页面创建的自定义路由的问题。
- 当我让我的自定义路由进入extendRoutes时,我无法访问像“page/en/”这样的路由,它被重定向到404。
- 当我禁用此自定义路由时,我没有问题,我的 nuxt-i18n 配置正确。
我该如何管理两者?
这是我的 nuxt.config.js 文件:
javascript - 带有西里尔 URI 的 Nuxt 完全静态生成的页面问题
在我的带有静态目标的多语言 nuxt 应用程序中,我遇到了与生成的静态页面相关的问题:
需要通过 asyncData 和 ciryllic endocoedURI 生成动态数据的页面,它们可以在最终 dist 中以 2 种方式访问:
http://localhost:3000/bg/%D0%B2%D0%B8%D0%BB%D0%B8-%D1%85%D0%B0%D0%BB%D0%BA%D0%B8%D0% B4%D0%B8%D0%BA%D0%B8 此 URL 回退到 SPA 页面(问题)
http://localhost:3000/bg/%D0%B2%D0%B8%D0%BB%D0%B8-%D1%85%D0%B0%D0%BB%D0%BA%D0%B8%D0% B4%D0%B8%D0%BA%D0%B8/ 这是完整的静态页面
问题是第二个链接末尾的“/”,我不知道为什么会这样。
我在我的项目(最新版本)上使用了 nuxt-i18n 我的组件内部的路径配置如下:
在 .env 文件中,我有这些值:
在 nuxt.config.js 内部:
老实说,我不知道如何解决这个问题。我做了一个测试,在所有路径上添加了最后一个斜杠,但它不起作用。在此先感谢您的帮助。
下面是完整的 nuxt.config.js