'use strict' /** * Copyright (c) 2017~2020, OBCon Inc. * All rights reserved. */ /** * @file * @copyright 2017~2020, OBCon Inc. * @author gye hyun james kim [pnuskgh@gmail.com] */ //--- modules.devices.lang.getModuleName() //--- modules.devices.lang.getFieldName(req.session.lang, '') //--- modules.devices.lang.getMsg(req.session.lang, '') class Lang { constructor() { this._model = null; this.langs = {}; // this.langs = this.setLang(); } setLang() { return { ko_KR: { //--- 언어 name: 'moduleName', //--- 모듈 이름 fields: { }, msgs: { //--- Messages }, sites: { //--- Site별 언어 설정 (Reserved) name: 'moduleName', //--- 모듈 이름 fields: { }, msgs: { //--- Messages } } } }; } _exist(paramObject, paramField) { return typeof(paramObject[paramField]) != 'undefined'; // return Object.getOwnPropertyNames(paramObject).includes(paramField); // return -1 < Object.getOwnPropertyNames(paramObject).indexOf(paramField); } getModuleName(lang = config.service.lang) { if ((this._exist(this.langs, lang)) && (this._exist(this.langs[lang], 'name'))) { return this.langs[lang].name; } if (lang != config.service.lang) { lang = config.service.lang; if ((this._exist(this.langs, lang)) && (this._exist(this.langs[lang], 'name'))) { return this.langs[lang].name; } } return this._model._title; } getFieldName(lang, field) { if (arguments.length == 0) { lang = config.service.lang; } if ((this._exist(this.langs, lang)) && (this._exist(this.langs[lang].fields, field))) { return this.langs[lang].fields[field]; } if (lang != config.service.lang) { lang = config.service.lang; if ((this._exist(this.langs, lang)) && (this._exist(this.langs[lang].fields, field))) { return this.langs[lang].fields[field]; } } return this._model.fields[field].title; } getMsg(lang, msg) { if (arguments.length == 0) { lang = config.service.lang; } if ((this._exist(this.langs, lang)) && (this._exist(this.langs[lang].msgs, msg))) { return this.langs[lang].msgs[msg]; } if (lang != config.service.lang) { lang = config.service.lang; if ((this._exist(this.langs, lang)) && (this._exist(this.langs[lang].msgs, msg))) { return this.langs[lang].msgs[msg]; } } return ''; } } module.exports = Lang;