-
-
Notifications
You must be signed in to change notification settings - Fork 67
/
index.jade
88 lines (69 loc) · 2.79 KB
/
index.jade
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
!!! 5
html(lang="en")
head
title i18next sample
script(src="http://code.jquery.com/jquery-1.7.min.js", type="text/javascript")
script(src='i18next/i18next.js', type='text/javascript')
body
h3 get current language in template via express app.helper
span= i18n.lng()
h3 you can switch lng via ?setLng='lngTag'
a#en(href='/?setLng=en-US') en-US
|
a#de(href='/?setLng=de-DE') de-DE
h3 i18n used in template via express app.helper
span= t('app.name') + ' '
span= t('app.area')
button= t('ns.common:add')
h5 with value insert t('app.insert', {youAre: 'great'})
span= i18n.t('app.insert', {youAre: 'great'})
h5 with plural t('app.child', {count: n})
span= t('app.child', {count: 1}) + ' - '
span= t('app.child', {count: 3})
h5 with context t('app.friend', {context: [context]})
span= t('app.friend_context', {context: 'male'}) + ' - '
span= t('app.friend_context', {context: 'female'})
h5 nesting
span= t('app.district')
h5 auto add missing Keys
span= t('app.room', {defaultValue: 'Room 21'})
h3 or translate on clientside via served script
span#appname
|
span#apparea
h5 loaded via attribute 'data-i18n' and $('.nav').i18n()
ul.nav
li: a(href="#", data-i18n="nav.home")
li: a(href="#", data-i18n="nav.1")
li: a(href="#", data-i18n="nav.2")
h5 post missing
span#missing
script(type="text/javascript")
var qsParm = new Array();
function qs() {
var query = window.location.search.substring(1);
var parms = query.split('&');
for (var i=0; i<parms.length; i++) {
var pos = parms[i].indexOf('=');
if (pos > 0) {
var key = parms[i].substring(0,pos);
var val = parms[i].substring(pos+1);
qsParm[key] = val;
}
}
};
qs();
var options = {
ns: { namespaces: ['ns.common', 'ns.special'], defaultNs: 'ns.special'},
useLocalStorage: false,
resGetPath: 'locales/resources.json?lng=__lng__&ns=__ns__',
dynamicLoad: true,
sendMissing: true
};
if (qsParm.setLng) options.lng = qsParm.setLng;
$.i18n.init(options, function() {
$('#appname').text($.t('app.name'));
$('#apparea').text($.t('app.area'));
$('.nav').i18n();
$('#missing').text($.t('app.missingKeyFromClient'));
});