import line_i18n from "line-i18n"; import { LanguageService } from "./languageService"; import { LanguageDefinedFunction } from "./../processor/definedFunctions"; import Langs from "./../../i18n"; import { Operators } from "./../ast/operators"; class IVProgLocalizedStrings extends line_i18n.LocalizedStrings { constructor (langService, langsJsons, shouldListenToChange = false) { super(langService, langsJsons, shouldListenToChange); } translateType (type, dim) { const type_string = this.getUI(`type_${type}`); switch (dim) { case 0: return type_string; default: if (dim > 1) return this.getUI("matrix_info_string", [type_string]); else return this.getUI("vector_info_string", [type_string]); } } translateOp (op) { switch (op.ord) { case Operators.AND.ord: case Operators.OR.ord: case Operators.NOT.ord: return this.getUI(`logic_operator_${op.value}`); default: return op.value; } } translateInternalFunction (name, category = null) { if (category == null) { return LanguageDefinedFunction.getLocalName(name); } else { return LanguageDefinedFunction.getLocalName(`${category}.${name}`); } } } export const LocalizedStrings = Object.freeze( new IVProgLocalizedStrings(LanguageService, Langs, true) ); let _instance = null; export function getInstance () { if (_instance == null) { _instance = new IVProgLocalizedStrings(LanguageService, Langs); } return _instance; }