This repository has been archived by the owner on Sep 28, 2018. It is now read-only.
/
test.i18n.js
70 lines (60 loc) · 1.75 KB
/
test.i18n.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*!
* Sunrise - Internationalization
* Copyright (c) 2011 Yohei Sasaki <yssk22@gmail.com>
* MIT Licensed
*/
var assert = require('assert');
var helper = require('./env');
var i18n = require('i18n');
module.exports = {
"test installMessages": function(){
var _i18n = new i18n.i18n();
var dir = helper.fixtureFile('i18n'); // contains en.json and ja.json.
_i18n.installMessages(dir);
assert.eql(_i18n.translate('foo'), "bar");
assert.eql(_i18n.translate('foo', 'ja'), "ばー");
assert.eql(_i18n.translate('foo', 'zh'), "bar");
},
"test resolveLocales": function(){
var req = {
headers: {
'accept-language' : 'da, ja;q=0.6, en-gb;q=0.8'
}
};
var lc = i18n.resolveLocales(req);
assert.eql(lc[0], 'da');
assert.eql(lc[1], 'en-gb');
assert.eql(lc[2], 'en');
assert.eql(lc[3], 'ja');
},
"test resolveLocales for i18n object": function(){
var req = {
headers: {
'accept-language' : 'da, ja;q=0.6, en-gb;q=0.8'
}
};
var _i18n = new i18n.i18n();
var dir = helper.fixtureFile('i18n'); // contains en.json and ja.json.
_i18n.installMessages(dir);
var loc = _i18n.resolveLocales(req);
assert.eql('en', loc);
},
"test translate": function(){
// default locale
var _i18n = new i18n.i18n();
_i18n.addMessages({
'foo': "bar"
});
// translated by default
assert.eql(_i18n.translate('foo'), "bar");
// translated by specified locale but not found
assert.eql(_i18n.translate('foo', 'ja'), "bar");
// add specified message dictionary
_i18n.addMessages({
'foo': "ばー"
}, 'ja');
assert.eql(_i18n.translate('foo', 'ja'), "ばー");
// not translated
assert.eql(_i18n.translate('hoge'), "hoge");
}
}