Completed
Push — master ( f65d8f...4f3de5 )
by Pavel
04:14 queued 01:54
created

docstemplate/locales/locale.js   A

Complexity

Total Complexity 10
Complexity/F 3.33

Size

Lines of Code 48
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 0
nc 8
dl 0
loc 48
rs 10
c 1
b 0
f 1
wmc 10
mnd 2
bc 4
fnc 3
bpm 1.3333
cpm 3.3333
noi 7
1
define([
2
    './locales/ca.js',
3
    './locales/de.js',
4
    './locales/es.js',
5
    './locales/fr.js',
6
    './locales/it.js',
7
    './locales/nl.js',
8
    './locales/pl.js',
9
    './locales/pt_br.js',
10
    './locales/ro.js',
11
    './locales/ru.js',
12
    './locales/zh.js',
13
    './locales/zh_cn.js'
14
], function() {
15
    var langId = (navigator.language || navigator.userLanguage).toLowerCase().replace('-', '_');
16
    var language = langId.substr(0, 2);
17
    var locales = {};
18
19
    for (index in arguments) {
20
        for (property in arguments[index])
21
            locales[property] = arguments[index][property];
22
    }
23
    if ( ! locales['en'])
24
        locales['en'] = {};
25
26
    if ( ! locales[langId] && ! locales[language])
27
        language = 'en';
28
29
    var locale = (locales[langId] ? locales[langId] : locales[language]);
30
31
    function __(text) {
32
        var index = locale[text];
33
        if (index === undefined)
34
            return text;
35
        return index;
36
    };
37
38
    function setLanguage(language) {
39
        locale = locales[language];
40
    }
41
42
    return {
43
        __         : __,
44
        locales    : locales,
45
        locale     : locale,
46
        setLanguage: setLanguage
47
    };
48
});
49