src/js/i18n.js
author veltr
Thu, 22 Mar 2012 18:42:31 +0100
branchpopcorn-port
changeset 837 353a78021ebc
child 838 03b03865eb9b
permissions -rw-r--r--
Added Internationalization
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
837
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
     1
IriSP.i18n_factory = function() {
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
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
     6
IriSP.i18n_factory.prototype.getLanguage = function(lang) {
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
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    27
IriSP.i18n_factory.prototype.getMessages = function(lang) {
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
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    36
IriSP.i18n_factory.prototype.getMessage = function(message, lang) {
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
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    45
IriSP.i18n_factory.prototype.addLanguage = function(lang, messages) {
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    46
    this.messages[lang] = messages;
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    47
}
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    48
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    49
IriSP.i18n_factory.prototype.addLanguages = function(messages) {
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    50
    var _this = this;
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    51
    IriSP.underscore(messages).each(function(_messages, _lang) {
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    52
        _this.addLanguage(_lang, _messages);
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    53
    });
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    54
}
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    55
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    56
IriSP.i18n = new IriSP.i18n_factory();
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    57
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    58
IriSP.i18n.addLanguages(
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    59
    {
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    60
        en: {
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    61
            submit: "Submit",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    62
            add_keywords: "Add keywords",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    63
            add_polemic_keywords: "Add polemic keywords",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    64
            your_name: "Your name",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    65
            type_here: "Type your annotation here.",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    66
            wait_while_processed: "Please wait while your request is being processed...",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    67
            error_while_contacting: "An error happened while contacting the server. Your annotation has not been saved.",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    68
            empty_annotation: "Your annotation is empty. Please write something before submitting.",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    69
            annotation_saved: "Thank you, your annotation has been saved.",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    70
            share_annotation: "Would you like to share it on social networks ?",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    71
            share_on: "Share on",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    72
            play_pause: "Play/Pause",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    73
            mute_unmute: "Mute/Unmute",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    74
            play: "Play",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    75
            pause: "Pause",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    76
            mute: "Mute",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    77
            unmute: "Unmute",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    78
            annotate: "Annotate",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    79
            search: "Search",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    80
            elapsed_time: "Elapsed time",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    81
            total_time: "Total time"
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    82
        },
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    83
        fr: {
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    84
            submit: "Envoyer",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    85
            add_keywords: "Ajouter des mots-clés",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    86
            add_polemic_keywords: "Ajouter des mots-clés polémiques",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    87
            your_name: "Votre nom",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    88
            type_here: "Rédigez votre annotation ici.",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    89
            wait_while_processed: "Veuillez patienter pendant le traitement de votre requête...",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    90
            error_while_contacting: "Une erreur s'est produite en contactant le serveur. Votre annotation n'a pas été enregistrée",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    91
            empty_annotation: "Votre annotation est vide. Merci de rédiger un texte avant de l'envoyer.",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    92
            annotation_saved: "Merci, votre annotation a été enregistrée.",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    93
            share_annotation: "Souhaitez-vous la partager sur les réseaux sociaux ?",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    94
            share_on: "Partager sur",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    95
            play_pause: "Lecture/Pause",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    96
            mute_unmute: "Couper/Activer le son",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    97
            play: "Lecture",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    98
            pause: "Pause",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
    99
            mute: "Couper le son",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
   100
            unmute: "Activer le son",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
   101
            annotate: "Annoter",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
   102
            search: "Rechercher",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
   103
            elapsed_time: "Durée écoulée",
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
   104
            total_time: "Durée totale"
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
   105
        }
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
   106
    }
353a78021ebc Added Internationalization
veltr
parents:
diff changeset
   107
);