cometchat-react-ui-kit2
Version:
CometChat UI Kit for React App
190 lines (179 loc) • 7.47 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.localize = exports.CometChatLocalize = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _translation = _interopRequireDefault(require("./resources/ar/translation.json"));
var _translation2 = _interopRequireDefault(require("./resources/de/translation.json"));
var _translation3 = _interopRequireDefault(require("./resources/en/translation.json"));
var _translation4 = _interopRequireDefault(require("./resources/es/translation.json"));
var _translation5 = _interopRequireDefault(require("./resources/fr/translation.json"));
var _translation6 = _interopRequireDefault(require("./resources/hi/translation.json"));
var _translation7 = _interopRequireDefault(require("./resources/ms/translation.json"));
var _translation8 = _interopRequireDefault(require("./resources/pt/translation.json"));
var _translation9 = _interopRequireDefault(require("./resources/ru/translation.json"));
var _translation10 = _interopRequireDefault(require("./resources/zh/translation.json"));
var _translation11 = _interopRequireDefault(require("./resources/zh-tw/translation.json"));
var _translation12 = _interopRequireDefault(require("./resources/sv/translation.json"));
var _translation13 = _interopRequireDefault(require("./resources/lt/translation.json"));
/**
* @example
* let resources = {
en: {
"PARAGRAPH": "Cometchat is a powerful internationalization framework ",
"CHATS": "Recent Chats",
},
es: {
"PARAGRAPH": "Cometchat es un poderoso marco de internacionalización",
"CHATS": "chats recientes"
},
};
this.init({
lang: "es",
resources: resources
});
*
*/var CometChatLocalize = /*#__PURE__*/function () {
function CometChatLocalize() {
(0, _classCallCheck2["default"])(this, CometChatLocalize);
}
(0, _createClass2["default"])(CometChatLocalize, null, [{
key: "localize",
value: /**Properties and constants */
/**
* Needs to be called at the start of the application in order to set the language
* @param {Object} - language & resources
*/
/**
* Returns the browser language
* @returns {String} browser langauge i.e. en-US
*/
/**
* Returns the language code
* @returns {String} language code i.e. en
*/
/**
* Returns the active language. Return fallback language if translation is not available for the active language
* @returns {String} active language
*/
/**
* Set the active language
* @param {String} language
*/
/**
* Accepts the string to localize and return the localized string
* @param {String} str
* @returns {String} localized str
*/
function localize(str) {
var language = this.getLocale();
return this.translations[language][str];
}
/**
* Sets the default lannguage if no language is passed in init method
*/
}]);
return CometChatLocalize;
}(); /**
* Returns localized string based on active language
* @param {String} str
* @returns {String} localized str
*/
exports.CometChatLocalize = CometChatLocalize;
(0, _defineProperty2["default"])(CometChatLocalize, "fallbackLanguage", "en");
(0, _defineProperty2["default"])(CometChatLocalize, "locale", void 0);
(0, _defineProperty2["default"])(CometChatLocalize, "rtlLanguages", ["ar"]);
(0, _defineProperty2["default"])(CometChatLocalize, "direction", Object.freeze({
ltr: "ltr",
rtl: "rtl"
}));
(0, _defineProperty2["default"])(CometChatLocalize, "translations", {
ar: _translation["default"],
de: _translation2["default"],
en: _translation3["default"],
es: _translation4["default"],
fr: _translation5["default"],
hi: _translation6["default"],
ms: _translation7["default"],
pt: _translation8["default"],
ru: _translation9["default"],
zh: _translation10["default"],
"zh-tw": _translation11["default"],
sv: _translation12["default"],
lt: _translation13["default"]
});
(0, _defineProperty2["default"])(CometChatLocalize, "init", function (_ref) {
var language = _ref.language,
resources = _ref.resources;
if (language) {
CometChatLocalize.locale = language;
} else {
CometChatLocalize.setDefaultLanguage();
}
/**Override resources */
if (resources) {
for (var resource in resources) {
/**Add to the original array of translations if language code is not found */
if (!CometChatLocalize.translations[resource]) {
CometChatLocalize.translations[resource] = resources[resource];
} else {
for (var key in resources[resource]) {
CometChatLocalize.translations[resource][key] = resources[resource][key];
}
}
}
}
});
(0, _defineProperty2["default"])(CometChatLocalize, "getBrowserLanguage", function () {
return navigator.languages && navigator.languages[0] || navigator.language || navigator.userLanguage;
});
(0, _defineProperty2["default"])(CometChatLocalize, "getLanguageCode", function () {
var languageCode = CometChatLocalize.getBrowserLanguage().toLowerCase();
// check if the language set in the browser has hyphen(-), if yes split and take the first element of the array
if (languageCode.indexOf("-") !== -1 && languageCode !== "zh-tw") {
return languageCode.split("-")[0];
}
return languageCode;
});
(0, _defineProperty2["default"])(CometChatLocalize, "getLocale", function () {
var language = CometChatLocalize.locale;
if (!CometChatLocalize.translations.hasOwnProperty(language)) {
language = CometChatLocalize.fallbackLanguage;
}
return language;
});
(0, _defineProperty2["default"])(CometChatLocalize, "setLocale", function (language) {
CometChatLocalize.locale = language;
});
(0, _defineProperty2["default"])(CometChatLocalize, "setDefaultLanguage", function () {
// get the active language
var activeLanguage = CometChatLocalize.getLocale();
// get the browser language code
var browserLanguageCode = CometChatLocalize.getLanguageCode();
// if there is no active language or active language is different from browser language, update active language with browser language
if (!activeLanguage || activeLanguage !== browserLanguageCode) {
CometChatLocalize.setLocale(browserLanguageCode);
}
});
(0, _defineProperty2["default"])(CometChatLocalize, "isRTL", function () {
var _CometChatLocalize$rt;
if ((_CometChatLocalize$rt = CometChatLocalize.rtlLanguages) !== null && _CometChatLocalize$rt !== void 0 && _CometChatLocalize$rt.includes(CometChatLocalize.getLocale())) {
return true;
}
return false;
});
(0, _defineProperty2["default"])(CometChatLocalize, "getDir", function () {
var _CometChatLocalize$rt2;
if ((_CometChatLocalize$rt2 = CometChatLocalize.rtlLanguages) !== null && _CometChatLocalize$rt2 !== void 0 && _CometChatLocalize$rt2.includes(CometChatLocalize.getLocale())) {
return CometChatLocalize.direction.rtl;
}
return CometChatLocalize.direction.ltr;
});
var localize = function localize(str) {
return CometChatLocalize.localize(str);
};
exports.localize = localize;