models/UB/i18n.js

/*
 * Server side i18n
 */

if (!global.i18nData) {
    /**
     * i18n localization data. Do not use directly - use UB.i18n method instead
     * @property {Object} i18nData
     * @private
     * @member global
    */
    global.i18nData = {}
}

_.merge(global.i18nData, {
    "en": {
        "property": "property",
        "inTime": "In time",
        "notInTime": "Not in time",
        "notExecuted": "Not executed",
        "overdue": "Overdue",
        "woTerm": "Without term",
        "Model": "Model",
        "Attribute": "Attribute",
        "Type": "Type",
        "Caption": "Caption",
        "Description": "Description",
        eof: ""
    },

    "ru": {
        "property": "свойство",
        "inTime": "Вовремя",
        "notInTime": "Не вовремя",
        "notExecuted": "Не выполнены",
        "overdue": "Просрочены",
        "woTerm": "Без срока",
        "Model": "Модель",
        "Attribute": "Атрибут",
        "Type": "Тип",
        "Caption": "Заголовок",
        "Description": "Описание",
        eof: ""
    },

    "uk": {
        "property": "властивість",
        "inTime": "Вчасно",
        "notInTime": "Не вчасно",
        "notExecuted": "Не виконані",
        "overdue": "Прострочені",
        "woTerm": "Без срока",
        "Model": "Модель",
        "Attribute": "Атрибут",
        "Type": "Тип",
        "Caption": "Заголовок",
        "Description": "Опис",
        eof: ""
    },

    "az": {
        "property": "əmlak",

        "Model": "Model",
        "Attribute": "Attribute",
        "Type": "Type",
        "Caption": "Caption",
        "Description": "Description",
        eof: ""
    }
});

_.merge(global.i18nData, {
    "en": {
        //M2Mobile
        projForSign: 'Projects for sign',
        projForVisa: 'Projects for visa',
        forConsideration: 'For consideration',
        presidentAssignment: 'President Assignments',
        caNoTerm: 'Without term',
        caToday: 'Today',
        ca3Days: 'Term 3 days',
        ca5Days: 'Term 5 days',
        caOverdue3Days: '3 days',
        caOverdue1Week: 'Week',
        caOverdue1Month: 'Month',
        caOverdue3Month: '3 months',
        caOverdue6Month: '6 months',
        caOverdueOver6Month: 'Over 6 months',
        caOverdue: 'Overdue',
        caExecuted: 'Executed',
        controlAssignment: 'Control personal assignments',
        personalAssignment: 'Personal assignments',

        identifier: 'Identifier',
        status: 'Status',
        regInfo: 'Registration info',
        docInfo: 'Document info',
        deadline: 'Deadline',
        toDocument: 'To document',
        executors: 'Executors',
        resolution: 'Resolution',
        myResolution: 'Executors of my resolution',
        docVersion: 'Document version',
        shortText: 'Short text',
        route: 'Route',
        toShortText: 'To document\'s short text',
        mainUnit: 'Responsible executor',


        signAction: 'Sign',
        signActionAlertText: 'Do you really want to sign this document?',
        signActionCommentText: 'Signed by iPad',
        visaAction: 'Visa',
        visaActionAlertText: 'Do you really want to visa this document?',
        visaActionCommentText: 'Vised by iPad',
        cancelAction: 'Revoke',
        cancelActionAlertText: 'Do you really want to revoke this document??',
        testAction: 'Test',
        signed: 'Signed',
        ot: ' of ',
        mainExecutor: 'Main executor',
        mainExecutors: 'Main executors',
        coExecutor: 'Coexecutor',
        coExecutors: 'Coexecutors',
        forInfo: 'For info',
        controller: 'Controller',
        controllers: 'Controllers',
        correspondent: 'Correspondent',
        individualControl:'Individual control',
        controlLevel: 'Control level',
        resolution2: 'Resolution',
        urgent:'Urgent',
        kind: 'Kind',
        theme: 'Theme',
        executionDate: 'Execution date',
        author:'Author',
        version:'Version',
        recRoute:'Reconsilation route',
        signer:'Signer',
        signers:'Signers',
        visor:'Visor',
        visors:'Visors',
        rejectAction: 'Reject',
        rejectActionAlertText: 'Do you really want to reject this document?',
        rejectActionCommentText: 'Rejected by iPad',


        eof: ""
    },

    "ru": {
        eof: ""
    },

    "uk": {
        //M2Mobile
        projForSign: 'Проекти на підпис',
        projForVisa: 'Проекти на візування',
        forConsideration: 'Документи для розгляду',
        presidentAssignment: 'Доручення Президента',
        caNoTerm: 'Термін не надійшов',
        caToday: 'Сьогодні',
        ca3Days: 'Термін 3 дні',
        ca5Days: 'Термін 5 днів',
        caOverdue3Days: 'На 3 дні',
        caOverdue1Week: 'На тиждень',
        caOverdue1Month: 'На місяць',
        caOverdue3Month: 'На 3 місяці',
        caOverdue6Month: 'На 6 місяців',
        caOverdueOver6Month: 'Більше 6 місяців',
        caOverdue: 'Прострочені',
        caExecuted: 'Виконані',
        controlAssignment: 'Контроль особистих доручень',
        personalAssignment: 'Особисті доручення',

        identifier: 'Ідентифікатор',
        status: 'Статус',
        regInfo: 'Реєстраційні дані',
        docInfo: 'Інформація про документ',
        deadline: 'Термін виконання',
        toDocument: 'До документа',
        executors: 'Виконавці',
        resolution: 'Резолюція керівника',
        myResolution: 'Виконавці власної резолюції',
        docVersion: 'Версія документа',
        shortText: 'Короткий зміст',
        route: 'Маршрут',
        toShortText: 'Зміст "До документа"',
        mainUnit: 'Відповідальний виконавець',

        signAction: 'Підписати',
        signActionAlertText: 'Ви дійсно бажаєте підписати цей документ?',
        signActionCommentText: 'Підписано за допомогою iPad',
        visaAction: 'Завізувати',
        visaActionAlertText: 'Ви дійсно бажаєте завізувати цей документ?',
        visaActionCommentText: 'Завізовано за допомогою iPad',
        cancelAction: 'Відізвати',
        cancelActionAlertText: 'Ви дійсно бажаєте відізвати цей документ?',
        testAction: 'Тест',
        signed: 'Підписано',
        ot: ' від ',
        mainExecutor: 'Головний виконавець',
        mainExecutors: 'Головні виконавці',
        coExecutor: 'Співвиконавець',
        coExecutors: 'Співвиконавці',
        forInfo: 'До відома',
        controller: 'Контролер',
        controllers: 'Контролери',
        correspondent: 'Кореспондент',
        individualControl:'Особливий контроль',
        controlLevel: 'Рівень контролю',
        resolution2: 'Резолюція',
        urgent:'Терміново',
        kind: 'Вид',
        theme: 'Питання',
        executionDate: 'Дата виконання',
        author:'Автор',
        version:'Версія',
        recRoute:'Маршрут узгодження',
        signer:'Підписант',
        signers:'Підписанти',
        visor:'Візуючий',
        visors:'Візуючі',
        rejectAction: 'Відхилити',
        rejectActionAlertText: 'Ви дійсно бажаєте відхилити цей документ?',
        rejectActionCommentText: 'Відхилено за допомогою iPad',


        eof: ""
    },

    "az": {
        "property": "əmlak",

        eof: ""
    }
});

/** 
 * Translate message specified language using `global.i18nData` translation table.
 * To add model-depended values in your model create i18n.js file in the model folder and place where this script:
 *
 *      _.merge(global.i18nData, {"en": {yourMessage: "yourTranslation", ...}, "ru": {yourMessage: "yourTranslation", ...}, ....}
 *
 * @memberof UB
 * @param {String} msg Message to translate
 * @param {String} [lang] language to translate to. if not passed - current user session language used, or default application language if not logged in
 */
UB.i18n = function (msg, lang) {
    var
        res;

    lang = lang || Session.userLang || App.defaultLang;
    res = i18nData[lang] ? i18nData[lang][msg] : '';
    return res || msg;
};

if (global.module && module.exports){
  module.exports = UB.i18n;
}