src/js/i18n.js
author veltr
Thu, 19 Apr 2012 19:20:41 +0200
branchnew-model
changeset 872 d777d05a16e4
parent 840 ac66e2240e1e
permissions -rw-r--r--
finished AnnotationsList and started New PolemicWidget
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
840
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
     1
IriSP.I18n = function() {
837
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
     2
    this.messages = {};
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
     3
    this.base_lang = 'en';
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
     4
}
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
     5
840
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
     6
IriSP.I18n.prototype.getLanguage = function(lang) {
837
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
     7
    var _lang = (
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
     8
        typeof lang != "undefined"
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
     9
        ? lang
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    10
        : (
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    11
            typeof IriSP.language != "undefined"
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    12
            ? IriSP.language
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    13
            : this.base_lang
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    14
        )
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    15
    );
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    16
    return (
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    17
        typeof this.messages[_lang] == "object"
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    18
        ? _lang
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    19
        : (
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    20
            typeof this.messages[this.base_lang] == "object"
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    21
            ? this.base_lang
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    22
            : null
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    23
        )
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    24
    )
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    25
}
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    26
840
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    27
IriSP.I18n.prototype.getMessages = function(lang) {
837
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    28
    var _lang = this.getLanguage(lang);
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    29
    return (
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    30
        _lang != null
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    31
        ? this.messages[_lang]
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    32
        : {}
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    33
    );
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    34
}
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    35
840
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    36
IriSP.I18n.prototype.getMessage = function(message, lang) {
837
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    37
    var _msgs = this.getMessages(lang);
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    38
    return (
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    39
        typeof _msgs[message] != "undefined"
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    40
        ? _msgs[message]
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    41
        : message
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    42
    )
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    43
}
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    44
840
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    45
IriSP.I18n.prototype.addMessage = function(lang, messagekey, messagevalue) {
838
03b03865eb9b Transferred i18n data to widgets, corrected slider bug, added search in annotationslist
veltr
parents: 837
diff changeset
    46
    if (typeof this.messages[lang] == "undefined") {
03b03865eb9b Transferred i18n data to widgets, corrected slider bug, added search in annotationslist
veltr
parents: 837
diff changeset
    47
        this.messages[lang] = {};
03b03865eb9b Transferred i18n data to widgets, corrected slider bug, added search in annotationslist
veltr
parents: 837
diff changeset
    48
    }
03b03865eb9b Transferred i18n data to widgets, corrected slider bug, added search in annotationslist
veltr
parents: 837
diff changeset
    49
    this.messages[lang][messagekey] = messagevalue;
837
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    50
}
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    51
840
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    52
IriSP.I18n.prototype.addMessages = function(messagesObj) {
837
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    53
    var _this = this;
838
03b03865eb9b Transferred i18n data to widgets, corrected slider bug, added search in annotationslist
veltr
parents: 837
diff changeset
    54
    IriSP.underscore(messagesObj).each(function(_messages, _lang) {
03b03865eb9b Transferred i18n data to widgets, corrected slider bug, added search in annotationslist
veltr
parents: 837
diff changeset
    55
        IriSP.underscore(_messages).each(function(_value, _key) {
03b03865eb9b Transferred i18n data to widgets, corrected slider bug, added search in annotationslist
veltr
parents: 837
diff changeset
    56
            _this.addMessage(_lang, _key, _value);
03b03865eb9b Transferred i18n data to widgets, corrected slider bug, added search in annotationslist
veltr
parents: 837
diff changeset
    57
        })
837
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    58
    });
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    59
}
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    60
840
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    61
IriSP.i18n = new IriSP.I18n();
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    62
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    63
IriSP.i18n.addMessages({
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    64
    "fr": {
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    65
        "loading_wait": "Chargement en cours, veuillez patienter…"
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    66
    },
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    67
    "en": {
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    68
        "loading_wait": "Loading, please wait…"
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    69
    }
ac66e2240e1e bugfixes
veltr
parents: 838
diff changeset
    70
})