Articles of 国际化

节点国际化不能在Jade视图内工作(节点i18n)

我一直在使用国际化的i18n节点模块。 在根我初始化模块如下: i18n.configure({ locales: ['en', 'nl'], register: global, directory: path.join(__dirname, 'locales'), defaultLocale: 'en', objectNotation: true }); app.use(i18n.init); 该模块已经将翻译function( __() )注册为全局。 但是,这个函数不起作用,所以我决定把它传递给我的控制器和视图中的方法。 app.use((req, res, next) => { res.locals.user = req.session.user || null; res.locals.formatDate = (data) => data ? format(data, process.env.DATE_FORMAT) : null; res.locals.__ = res.__ = () => i18n.__.apply(req, arguments); req.setLocale('en') next(); }); 它在控制器中工作正常。 我使用req.__('string-to-translate')并根据需要进行翻译。 但是,当我尝试使用与帕格/翡翠呈现的视图中完全相同的function时,它返回给我undefined […]

Express和Node.js模块i18n和现在缺乏助手

从https://github.com/mashpie/i18n-node的自述文件中,他们将展示如何使用快速模板进行设置,但是它使用助手: // register helpers for use in templates app.helpers({ __i: i18n.__, __n: i18n.__n }); 那么在Express 3.0中没有帮助者,那么如何在模板中注册i18n模块呢? 谢谢你的帮助!

在koajs的URL i18n

我正在Koa (与koa-scaffold )networking应用程序进行维护。 我的客户问我i18n,我开始使用koa-i18n 。 我使用的是子域(en.example.com,es.example.com),但现在我的客户决定只使用URL(www.example.com/en/hello/和www.example.com/es/你好/)。 我该怎么做才能使插件工作? 我应该修改控制器吗? 我对koajs很新。 谢谢

String.toLocaleUpperCase():在Node.js上设置语言环境

JavaScript String toLocaleUpperCase()方法应该考虑在不同语言环境(如土耳其语)上的大小写映射(我不是映射器,而是点到土耳其语的点)。 但是,似乎该语言环境仅从操作系统中捕获:我没有看到设置语言环境的方法。 因此,如果我使用的是en-US操作系统,并且希望在“tr”中使用toLocaleUpperCase()土耳其string,则它将返回en-US版本(无dotless,I,not dotted©)。 假设我正在使用INTL( https://github.com/nodejs/node/wiki/Intl )编译的Node.js,我怎样才能定义语言环境toLocaleUpperCase() ?

Express服务器中语言子域的最佳实践?

所以我build立了一个Node / Express服务器,并且我们正在从子目录转换到子域进行本地化,例如: es.example.com // old way www.example.com/es // new way 这样做是出于各种原因,但主要是为了方便JWTlogin状态在国际化内容中的保存。 声明路线时,最好的做法是什么? 如果我有一个简单的build立这样的路线: app.use('/search') 然后,当我尝试点击路线时,例如www.example.com/es/search ,我将被redirect到www.example.com/search将被剥离。 但是,这可以像这样修复: app.use('*/search') 我相信这肯定会有一些负面影响呢? 人们通常如何通过Express在路线上允许前缀?

如何在帕格模板文件中使用i18nvariables?

我是Node.js的新手,我正在尝试学习如何在我的帕格模板中使用i18n ,并且无法在任何地方find我的答案。 文件说 在你的模板(取决于你的模板引擎) <%= __('Hello') %> ${__('Hello')} 到目前为止,我尝试了(在我的哈巴狗模板) ${__('Hello')} __('Hello') 这些语法都没有工作,什么是正确的使用? 我知道这是很好的configuration,因为使用时 i18n.__('Hello') 并发送到我的模板在一个variables,它正在工作。

如何让i18next-node以正确的方式显示变音符号?

我search了很多,但找不到我的问题的解决scheme。 我的应用程序使用i18next,除了一个问题,它工作正常:德语变音符号(ü,ö,ä)显示为 。 我不明白是我错了,因为这个示例应用程序没有与变音器的问题: http ://i18next-example1.eu01.aws.af.cm/?setLng=de- DE (github: https:// github.com/rbeere/i18next-jade-express-sample ) 我怎样才能找出这一个呢?

Sails.js:在我的控制器中使用i18n

在我的控制器中,我想发送一个消息在我看来是这样的: res.status(400).view('memberRegisterView',{error : "error"}); 我想用法语来翻译这个错误,并有“erreur”。 我编辑了i18n.js: locales: ['en', 'fr'], defaultLocale: 'fr' 在我的en.json中: "error":"error" 在我的fr.json中: "error":"erreur" 如何在我的控制器中使用翻译?

摩卡testingi18n TypeError:无法读取未定义的属性'text50'

我正在使用摩卡testing框架来testing我的应用程序和翻译我使用从mashpie i18n。 在我的validation.js文件中,我需要i18​​n模块并使用i18n .__函数 console.log(i18n.__('text50')); 在我的testing文件validation.test.js我需要validation.js进行testing。 然后我用摩卡运行testing,因为我得到的结果。 Running "mochaTest:test" (mochaTest) task >> Mocha exploded! >> TypeError: Cannot read property 'text50' of undefined >> at translate (/Volumes/Develop/townspeech/node_modules/i18n/i18n.js:355:23) >> at Object.i18nTranslate [as __] (/Volumes/Develop/townspeech/node_modules/i18n/i18n.js:96:11) >> at Object.<anonymous> (/Volumes/Develop/townspeech/server/libs/validation.js:24:18) >> at Module._compile (module.js:456:26) >> at Object.Module._extensions..js (module.js:474:10) >> at Module.load (module.js:356:32) >> at Function.Module._load (module.js:312:12) >> at Module.require […]

mongoose和restify – 返回json之前本地化string

我想基于node.js,restify和mongoose返回RestFul API中的多语言业务对象的本地化string。 我有要求将翻译的资源存储在我们的翻译资源服务器上,还需要支持这些业务对象的dynamic创build。 我发现了一个解决scheme,在创build或更新我的多语言业务对象时,在所有模式中使用单个pre-'ave mongoose中间件,轻松地在POST / PUT调用中插入i18n进程 – 这是可行的,因为我能够通过请求上下文到obj.save(req,callback)调用。 但是,我正在努力在简单的GET上插入i18n。 我想到了,并尝试了不同的方式,我可以在返回响应之前插入国际化,但是并没有find一个好的方法。 我想到的选项: 在一个mongoose中间件pre / post('init')中翻译: 问题:我无法访问请求上下文,因此不知道要返回的语言环境,所以我无法在此处进行翻译。 在toObject()/ toJSON {transform:}中转换: 同样的问题 – 我没有在这些钩子的请求上下文。 在每个资源的处理程序/控制器方法中进行翻译。 问题:复制,我必须在任何地方做,我真的更喜欢我可以在模型/架构图层上定义的解决scheme 在翻译/expression中间件到最后: 问题:我无法再访问mongoose模式元信息,所以我不知道要翻译哪些属性。 编辑:只是发现这个额外的方式: – 翻译自定义restify responseFormatter: 这似乎很好地工作,在reponseformatter我有权访问我需要的一切。 从build筑的angular度来看,这似乎有些不可思议,但是如果没有人有更好的主意,我会加上这个答案。 也许(希望)我失去了明显的东西… 感谢任何提示