rosaenlg-commons
Version:
Common technical elements for RosaeNLG
60 lines • 2.19 kB
JavaScript
;
/**
* @license
* Copyright 2019 Ludan Stoecklé
* SPDX-License-Identifier: Apache-2.0
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildLanguageCommon = exports.getIso2fromLocale = void 0;
const LanguageCommonEnglish_1 = require("./LanguageCommonEnglish");
const LanguageCommonFrench_1 = require("./LanguageCommonFrench");
const LanguageCommonGerman_1 = require("./LanguageCommonGerman");
const LanguageCommonItalian_1 = require("./LanguageCommonItalian");
const LanguageCommonSpanish_1 = require("./LanguageCommonSpanish");
const LanguageCommonOther_1 = require("./LanguageCommonOther");
// should be better
function getIso2fromLocale(locale) {
if (locale && locale.length == 5) {
return locale.substring(0, 2);
}
else {
const err = new Error();
err.name = 'InvalidArgumentException';
err.message = `${locale} is not a valid locale, should be xx_YY (e.g. en_US)`;
throw err;
}
}
exports.getIso2fromLocale = getIso2fromLocale;
function buildLanguageCommon(iso2) {
let languageCommon;
switch (iso2) {
case 'en':
languageCommon = new LanguageCommonEnglish_1.LanguageCommonEnglish();
languageCommon.init();
break;
case 'fr':
languageCommon = new LanguageCommonFrench_1.LanguageCommonFrench();
languageCommon.init();
break;
case 'de':
languageCommon = new LanguageCommonGerman_1.LanguageCommonGerman();
languageCommon.init();
break;
case 'it':
languageCommon = new LanguageCommonItalian_1.LanguageCommonItalian();
languageCommon.init();
break;
case 'es':
languageCommon = new LanguageCommonSpanish_1.LanguageCommonSpanish();
languageCommon.init();
break;
default:
languageCommon = new LanguageCommonOther_1.LanguageCommonOther();
languageCommon.setIso2(iso2);
languageCommon.init();
break;
}
return languageCommon;
}
exports.buildLanguageCommon = buildLanguageCommon;
//# sourceMappingURL=helper.js.map