问题标签 [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.
node.js - 使用 Mongo Schema 和 i18n 的多语言验证消息
我是 Node.js/Mongo 的新手,我想知道如何在验证中使用 i18n。到目前为止,这就是我所拥有的
架构
验证
我之前添加了 i18n 的配置,所以我可以使用它,但我知道这不是正确的方法。我尝试使用this.language但默认情况下它始终是英语。
我想用表单中发送的语言配置 i18n。有没有办法在模型中做到这一点?谢谢!
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 更好,尤其是对于移动设备,我会喜欢保持这种状态。
任何想法或来源?
node.js - 如何在 i18n-node 中创建多个语言文件?
我使用 Node+Express+i18n-node。我的项目的翻译文件将有大约 5000(行)翻译。我想将信息拆分为单独的文件:
I18n-node 默认只有一个语言文件(en.json)。但是当每个用户加载页面时,我不想在服务器内存中加载 5000 行。用户不应从管理员界面文件中加载所有信息。我找不到有关此称呼的信息。而且我不想安装 i18-next 模块。
javascript - I18n html 标记渲染 w/ express-flash
我想知道i18n当它们包含 html 标记时,它们在节点/快速控制器中的实现。我express-flash用来在发布请求后输出错误消息:
我的输出工作正常,但如果该段包含 HTML 标记,则浏览器不会呈现它。它将显示:
<strong>Error:</strong> My custom error message.
代替:
错误:我的自定义错误消息。
我假设会有一个类似于我i18n在 Pug/Jade 模板中使用 HTML 标记或链接的静态字符串或表达式/翻译段的实现#{__('')}的!{__('')}解决方案。
有任何想法吗?谢谢!
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 条这样的路线:
如何为以下路线设置它:
我是否应该复制此路线并为每个路线添加例如区域设置:
/li>或者应该做类似的事情:
/li>或者我应该采取另一种方法来遵循良好做法或更好地尊重标准?
Miro 的回答: 如何在 node.js (express.js) 中获取浏览器语言?说我应该使用 app.all('*', ...
这就是我所需要的吗?,..仍然,它可能有语法错误,或者我对这两部分不太了解
提前致谢
express - 防止 i18n 将特殊字符转换为 HTML
我想使用谷歌云功能在快递应用程序中翻译带有 i18n 的句子。尽管特殊字符被转换为 HTML 特殊符号,但一切正常。
这导致翻译“A & amp; B is here”。
预期的结果将是“A & B is here”。
由于我没有在 HTML 上下文中使用翻译,因此我需要摆脱 & amp。知道如何配置 i18n 以跳过 HTML 特殊字符处理吗?
node.js - Express、i18n 和自定义未找到页面
我正在构建一个供个人使用的 Express 应用程序,但我希望它支持多种语言。我将i18-node用于英语(en)和西班牙语(es),并编写了两条路线,如下所示:
如果我访问localhost:3000/es或localhost:3000/en它的工作原理。如果我访问localhost:3000/thisdoesnotexist它会显示未找到的页面,但如果我访问localhost:3000/它也会显示未找到的页面。
所以问题是,如何设置带有自定义未找到页面的多语言应用程序?
node.js - node.js i18n - 无法读取未定义的属性“toLowerCase”
调用时我总是收到以下错误i18n.__n('..'):
顺便说一句,i18n.__('..')像魅力一样工作!
这是代码:
index.js
语言环境/de.json
语言环境/en.json
希望有人能给我建议我做错了什么或如何解决问题。我在我的 mac book 和https://repl.it/languages/nodejs上运行了代码。结果相同。
javascript - 如何在组件中传递 i18n 的响应
我已经在nodejs express中使用 https://github.com/mashpie/i18n-node实现了多语言翻译,在后端(nodejs)中传递翻译的json作为组件中使用的响应,当我尝试它显示错误时converted circular structure error,
我想知道如何在组件内显示翻译后的文本/i18n。它在 index.ejs 中工作,但不知道如何在组件中显示。
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” .
请让我知道我将如何解决它:)