Articles of 国际化

如何让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度来看,这似乎有些不可思议,但是如果没有人有更好的主意,我会加上这个答案。 也许(希望)我失去了明显的东西… 感谢任何提示

NodeJS(Express 4)+ i18n +下划线:问题与模板中的翻译

使用:NodeJS(Express 4)+ i18n +下划线。 我想在NodeJS(Express 4)中绑定和翻译一个Underscore模板。 绑定工作正常。 翻译在模板之外很好地工作。 但是我在模板内部有翻译问题:下划线不理解语法<%= __('translation key')%>: [ReferenceError: __ is not defined] 这是我的NodeJS代码: var express = require('express'), app = express(), cons = require('consolidate'), i18n = require('i18n'); _ = require('underscore'), // setup i18n app.use(i18n.init); i18n.configure({ locales: ['en', 'fr'], directory:'./app/locales', defaultLocale: 'en' }); // setup hbs app.engine('html',cons.underscore); app.set('views', './app/views'); app.set('view engine', 'html'); // […]

如何使用i18n-2模块更改语言,具体取决于url params

我要疯了! 由于昨天我试图设置i18n-2模块,但不能改变语言,任何人都可以帮助我吗? 这个node.js模块有一个很差的文档,希望没有关于如何使用/:params来改变语言的例子 所以我想这样: //configuration: I18n.expressBind(app, { locales: ['en', 'pt'], cookieName: 'locale' }); 这就是我想要根据/:语言环境更改语言 app.use(function (req, res, next) { req.i18n.setLocale(req.params.locale); next(); }); app.get('/:locale', function(req, res) { console.log(req.i18n.__("My Site Title")); }); 而且我在locale文件夹中有两个文件,'pt.json' – 葡萄牙语和'en.json' – 英文。 PT: { "My Site Title": "Titulo", } EN: { "My Site Title": "My Title", } 但是不工作在所有…即使我尝试访问site.com/pt,en json将被加载。 我在这里做错了什么?

回环与i18n支持

我想了解如何添加国际化的支持,以build立在express.js之上的回环。 我已经安装了i18n-node并阅读了express.js文档。 它看起来像我不想要一个全球性的本地化,因为我将提供HTTP响应。 i18n-node文档build议将其附加到请求对象并给出一个示例。 我的问题是,我无法find哪里/如何将此代码添加到环回。 我试着把app.configuration函数放在任何地方,它说这个方法是不确定的。 我有一种感觉,这是一个中间件,我想添加到路由阶段的middleware.json文件。 但我不知道该怎么做。 有谁知道国际化回送应用程序的好方法(服务器响应消息,电子邮件出去等)?

Nodejs:使用i18n-2客户端或服务器端或两者

我正在开发一个nodejs的项目,我想添加一个语言翻译的function。 在互联网上检查,我看到2个选项,似乎确定(国际和国内18)。 我在服务器端添加了正确的代码来configuration它。 在express.js中 var i18n = require('i18n-2'); i18n.expressBind(app, { // setup some locales – other locales default to vi silently locales: ['es', 'en'], // set the default locale defaultLocale: 'en', // set the cookie name cookieName: 'locale', extension: ".json" }); app.use(function(req, res, next) { req.i18n.setLocaleFromQuery(); req.i18n.setLocaleFromCookie(); next(); }); 所以,如果在同一个文件中,我把这个代码放在下面,假设它是用defaultLocale打印的,但是用西class牙文打印 var i18n2 = new (require('i18n-2'))({ […]

pipe理数据库国际化的最佳方法

我有一些麻烦,在我的数据库中pipe理我的i18n 现在我的应用程序中只有两种语言可用,但为了可扩展性,我希望以“最好”的方式来实现。 我可以重复像description_fr, description_en所有字段description_fr, description_en但我完全没有这个舒适。 我现在所做的是一个外部表格,将其称为content ,其架构如下所示: id_ref => entity referenced id (2) type => table name (university) field => field of the specific table (description) lang => which lang (fr, en, es…) content => and finally the appropriate content. 我认为精确可以是重要的,我使用sequelizeJS作为ORM。 所以我可以使用一个有用的钩子afterFind,afterCreate和afterUpdate。 所以每当我想find一个资源的例子,find它后,我的钩子检索这个资源的所有内容,并确定我的对象与货物价值。 它的工作,但我不爱这个。 但是我有这个麻烦: 这大大增加了我对数据库的请求数量:例如,如果我select50行,我必须做50个请求更多..,而只是一个特定的模型。 如果我有嵌套模型,它是指数… 那么,通过内容提取数据是非常复杂的。 示例find具有特定名称的大学很复杂。 而且这是更新等很多工作… 所以我想知道,如果这是一个好主意,直​​接在相关表中保存为JSON,数据。 就像是 { fr : […]

在快速应用程序res.render太多的redirect

我尝试将我的首页的路由redirect到i18n中间件的查询参数string,因为我在翻译我的网站: app.use('/', function (req, res) { res.redirect('/' + req.getLocale()); }); app.use('/:lang', index); 所以我期待被redirect到/hu 。 我正在使用i18n-node中间件插件。 文档中需要的部分在这里: https : //github.com/mashpie/i18n-node#i18ngetlocale 但是,这导致太多的redirect,并且站点没有加载ERR_TOO_MANY_REDIRECTS错误。 这是控制台输出: GET / 302 18.685 ms – 50 GET /hu 302 4.789 ms – 50 GET /hu 302 3.312 ms – 50 GET /hu 302 4.679 ms – 50 GET /hu 302 2.234 ms – […]