问题标签 [i18n-node]

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 投票
1 回答
889 浏览

node.js - 使用 Mongo Schema 和 i18n 的多语言验证消息

我是 Node.js/Mongo 的新手,我想知道如何在验证中使用 i18n。到目前为止,这就是我所拥有的

架构

验证

我之前添加了 i18n 的配置,所以我可以使用它,但我知道这不是正确的方法。我尝试使用this.language但默认情况下它始终是英语。

我想用表单中发送的语言配置 i18n。有没有办法在模型中做到这一点?谢谢!

0 投票
1 回答
1806 浏览

node.js - 使用 i18n 和 ejs 进行客户端渲染

我目前正在开发一个音乐平台,使用 NodeJs、Express 4.0 和 EJS 作为我的模板引擎。由于我们必须有一个播放器不断地在我们的站点导航中播放,对于 SoundCloud,我的站点内容是使用获取 JSON 数据的 AJAX 调用动态加载的,并且 html 是使用 EJS 客户端库呈现客户端的。

现在,我在第一个页面加载时发送我的所有模板,对于每个页面请求,我询问服务器相应的 JSON 数据,并使用 EJS 库将其呈现在客户端。

我已经从事国际化工作几个月了,就目前而言,取决于req.acceptsLanguages('fr', 'en'),我在初始页面加载时提供了我的两组模板(位于文件夹 fr/ 或 en/ 中)之一,并且我的内容已加载客户端之后为:

虽然我有 2 套模板,但每次模板更改时我都必须更改两个视图。这有点无聊,但主要是错误的来源(我现在只有 2 个翻译!)。我遇到了很棒的“i18n-node”:https ://github.com/mashpie/i18n-node ,它只能使用一个模板来加载带有单独 JSON 文件(en.json、fr.json)的正确翻译。这个模块在第一次渲染时效果很好,但是当然,因为我没有客户端 i18n 支持或支持 i18n 的客户端 ejs,所以我不能在客户端渲染我的模板(以及 ejs 或 i18n)。

我检查了但没有发现一个好的客户端 i18n 库,它会在开始时加载 locale.json 文件,并相应地与 ejs 客户端一起呈现模板,你知道吗?我在 Angular 和 React 上看到过类似的方法,但我没有使用这些方法。

或者也许我只是想错了?我也想过在服务器端渲染模板并直接发送 HTML,但我读过只发送有价值和轻量级的 JSON 数据,然后在客户端渲染它比在性能方面发送完整的 HTML 更好,尤其是对于移动设备,我会喜欢保持这种状态。

任何想法或来源?

0 投票
0 回答
528 浏览

node.js - 如何在 i18n-node 中创建多个语言文件?

我使用 Node+Express+i18n-node。我的项目的翻译文件将有大约 5000(行)翻译。我想将信息拆分为单独的文件:

I18n-node 默认只有一个语言文件(en.json)。但是当每个用户加载页面时,我不想在服务器内存中加载 5000 行。用户不应从管理员界面文件中加载所有信息。我找不到有关此称呼的信息。而且我不想安装 i18-next 模块。

0 投票
0 回答
180 浏览

javascript - I18n html 标记渲染 w/ express-flash

我想知道i18n当它们包含 html 标记时,它们在节点/快速控制器中的实现。我express-flash用来在发布请求后输出错误消息:

我的输出工作正常,但如果该段包含 HTML 标记,则浏览器不会呈现它。它将显示:

<strong>Error:</strong> My custom error message.

代替:

错误:我的自定义错误消息。

我假设会有一个类似于我i18n在 Pug/Jade 模板中使用 HTML 标记或链接的静态字符串或表达式/翻译段的实现#{__('')}!{__('')}解决方案。

有任何想法吗?谢谢!

0 投票
2 回答
3232 浏览

node.js - 用于多语言目录(如 url)的 Node express api 路由

有谁知道一个例子或可以在这里解释 node.js 和 express 如何为多语言站点路由?我正在使用 i18n-node 进行翻译和文件夹,如路由( /es/、/de/ 等)用于不同语言。这都是静态路由,但我也有像apiRoutes.route('/user/profile')这样的路由在开头使用 'app' (app.get('/app/user/profile')所以请在你的回答中考虑这一点所以不是必要的路线:app.get('/es/app/user/profile')

现在有 15 条这样的路线:

如何为以下路线设置它:

  1. 我是否应该复制此路线并为每个路线添加例如区域设置:

    /li>
  2. 或者应该做类似的事情:

    /li>
  3. 或者我应该采取另一种方法来遵循良好做法或更好地尊重标准?

  4. Miro 的回答: 如何在 node.js (express.js) 中获取浏览器语言?说我应该使用 app.all('*', ...

这就是我所需要的吗?,..仍然,它可能有语法错误,或者我对这两部分不太了解

提前致谢

0 投票
0 回答
158 浏览

express - 防止 i18n 将特殊字符转换为 HTML

我想使用谷歌云功能在快递应用程序中翻译带有 i18n 的句子。尽管特殊字符被转换为 HTML 特殊符号,但一切正常。

这导致翻译“A & amp; B is here”。

预期的结果将是“A & B is here”。

由于我没有在 HTML 上下文中使用翻译,因此我需要摆脱 & amp。知道如何配置 i18n 以跳过 HTML 特殊字符处理吗?

0 投票
0 回答
108 浏览

node.js - Express、i18n 和自定义未找到页面

我正在构建一个供个人使用的 Express 应用程序,但我希望它支持多种语言。我将i18-node用于英语(en)和西班牙语(es),并编写了两条路线,如下所示:

如果我访问localhost:3000/eslocalhost:3000/en它的工作原理。如果我访问localhost:3000/thisdoesnotexist它会显示未找到的页面,但如果我访问localhost:3000/它也会显示未找到的页面。

所以问题是,如何设置带有自定义未找到页面的多语言应用程序?

0 投票
1 回答
1419 浏览

node.js - node.js i18n - 无法读取未定义的属性“toLowerCase”

调用时我总是收到以下错误i18n.__n('..')

顺便说一句,i18n.__('..')像魅力一样工作!

这是代码:

index.js

语言环境/de.json

语言环境/en.json

希望有人能给我建议我做错了什么或如何解决问题。我在我的 mac book 和https://repl.it/languages/nodejs上运行了代码。结果相同。

0 投票
0 回答
215 浏览

javascript - 如何在组件中传递 i18n 的响应

我已经在nodejs express中使用 https://github.com/mashpie/i18n-node实现了多语言翻译,在后端(nodejs)中传递翻译的json作为组件中使用的响应,当我尝试它显示错误时converted circular structure error

我想知道如何在组件内显示翻译后的文本/i18n。它在 index.ejs 中工作,但不知道如何在组件中显示。

0 投票
0 回答
558 浏览

node.js - 如何翻译外部路由器,使用 i18n + express 请求?

目前我已经成功集成到路由、请求和配置。

应用结构

  • app.js - 我们应用程序的入口点。该文件定义了我们的 express 服务器并使用 mongoose 将其连接到 MongoDB。它还需要我们将在应用程序中使用的路由和模型。

  • config/ - 此文件夹包含护照配置以及配置/环境变量的中心位置。

  • routes/ - 此文件夹包含我们 API 的路由定义。

  • models/ - 此文件夹包含我们的 Mongoose 模型的模式定义。

路线/api/users.js

模型/User.js

应用程序.js

但是当我尝试在模型/例如 i18n.__('my-key') 中进行翻译时,这不会检测到语言环境,因此这会返回默认“en”的语言环境,但是从标题中我正确接收到了语言“es” .

请让我知道我将如何解决它:)