mirror of
https://github.com/YunoHost-Apps/rocketchat_ynh.git
synced 2024-09-03 20:16:25 +02:00
102 lines
9.7 KiB
JavaScript
102 lines
9.7 KiB
JavaScript
(function () {
|
|
|
|
/* Imports */
|
|
var Meteor = Package.meteor.Meteor;
|
|
var _ = Package.underscore._;
|
|
|
|
/* Package-scope variables */
|
|
var Helpers;
|
|
|
|
(function(){
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// packages/raix_handlebar-helpers/common.js //
|
|
// //
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Helper scope // 1
|
|
if (typeof Helpers === 'undefined') { // 2
|
|
Helpers = {}; // 3
|
|
} // 4
|
|
// 5
|
|
var languageText = {}; // 6
|
|
// 7
|
|
// expects an array: languageText['say.hello.to.me']['en'] = 'Say hello to me:)'; // 8
|
|
// ex.: // 9
|
|
// getText('Say.Hello.To.Me') == 'say hello to me:)'; // lowercase // 10
|
|
// getText('SAY.HELLO.TO.ME') == 'SAY HELLO TO ME:)'; // uppercase // 11
|
|
// getText('Say.hello.to.me') == 'Say hello to me:)'; // uppercase first letter, rest lowercase // 12
|
|
// getText('Say.Hello.To.Me') == 'Say Hello To Me:)'; // camelCase // 13
|
|
// getText('SAy.hello.to.me') == 'Say hello To me:)'; // ignore case sensitivity // 14
|
|
// 15
|
|
var _languageDeps = (Meteor.isClient) ? new Deps.Dependency() : null; // 16
|
|
var currentLanguage = 'en'; // 17
|
|
// 18
|
|
// language = 'en' // 19
|
|
Helpers.setLanguage = function (language) { // 20
|
|
if (language && language !== currentLanguage) { // 21
|
|
currentLanguage = language; // 22
|
|
if (Meteor.isClient) _languageDeps.changed(); // 23
|
|
} // 24
|
|
}; // 25
|
|
// 26
|
|
Helpers.language = function () { // 27
|
|
if (Meteor.isClient) _languageDeps.depend(); // 28
|
|
return currentLanguage; // 29
|
|
}; // 30
|
|
// 31
|
|
Helpers.setDictionary = function(dict) { // 32
|
|
languageText = dict; // 33
|
|
}; // 34
|
|
// 35
|
|
Helpers.addDictionary = function(dict) { // 36
|
|
_.extend(languageText, dict); // 37
|
|
}; // 38
|
|
// 39
|
|
// handleCase will mimic text Case making src same case as text // 40
|
|
var handleCase = function (text, src) { // 41
|
|
// Return lowercase // 42
|
|
if (text == text.toLowerCase()) // 43
|
|
return src.toLowerCase(); // 44
|
|
// Return uppercase // 45
|
|
if (text == text.toUpperCase()) // 46
|
|
return src.toUpperCase(); // 47
|
|
// Return uppercase first letter, rest lowercase // 48
|
|
if (text.substr(1) == text.substr(1).toLowerCase()) // 49
|
|
return src.substr(0, 1).toUpperCase() + src.substr(1).toLowerCase(); // 50
|
|
// Return src withour changes // 51
|
|
if (text.substr(0, 2) == text.substr(0, 2).toUpperCase()) // 52
|
|
return src; // 53
|
|
// Return CamelCase // 54
|
|
return src.replace(/( [a-z])/g, function ($1) { // 55
|
|
return $1.toUpperCase(); // 56
|
|
}); // 57
|
|
}; // 58
|
|
// 59
|
|
/** // 60
|
|
* // 61
|
|
* @param {string} text // 62
|
|
* @param {string} [lang] // 63
|
|
* @return {string} // 64
|
|
*/ // 65
|
|
Helpers.getText = function (text, lang) { // 66
|
|
var txt = text.toLowerCase(); // 67
|
|
var langText = languageText && languageText[txt]; // 68
|
|
var langKey = (typeof lang === 'string') ? lang : Helpers.language(); // 69
|
|
return handleCase(text, (langText) ? ( (langText[langKey]) ? langText[langKey] : langText.en) : '[' + text + ']');
|
|
}; // 71
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
}).call(this);
|
|
|
|
|
|
/* Exports */
|
|
if (typeof Package === 'undefined') Package = {};
|
|
Package['raix:handlebar-helpers'] = {
|
|
Helpers: Helpers
|
|
};
|
|
|
|
})();
|
|
|
|
//# sourceMappingURL=raix_handlebar-helpers.js.map
|