我有一个从当前用户那里获取LCID(语言环境ID)的函数。我想将此数字与另一个属性中的对应语言进行映射。例如,我首先从用户中提取LCID,对于荷兰语来说是“ 1043”。我有一个带有“ 1043:Dutch”的属性,我想从该属性中提取具有ID的名称。
我的代码:
export class Languages {
public static languages = {
1033: 'English',
1035: 'Finnish',
1036: 'French',
1037: 'Hebrew',
1038: 'Hungarian',
1040: 'Italian',
1041: 'Japanese',
1042: 'Korean',
1043: 'Dutch',
1044: 'Norwegian',
1045: 'Polish',
};
}
localeId = applicationContext.pageContext.legacyPageContext.currentLanguage; //get the LCID
}
let language: any;
const pos: number = Object.keys(Languages.languages).indexOf(localeId.toString());
//WRONG BELOW
if (pos > -1) {
let languageObject = Object.keys(Languages.languages).map(e => Languages.languages[pos]);
language = languageObject;
//WRONG UP
}
return language; //Should return the correct NAME of the languages via the ID
}
请参阅我写的代码“下面有错”。它没有返回正确的值。例如,如果localeId为1043,则它将返回“ Dutch”,但不是。
答案 0 :(得分:0)
只需使用括号符号:
const languages = {1033:'English',1035:'Finnish',1036:'French',1037:'Hebrew',1038:'Hungarian',1040:'Italian',1041:'Japanese',1042:'Korean',1043:'Dutch',1044:'Norwegian',1045:'Polish'};
const id = 1036;
const language = languages[id];
console.log(language);
答案 1 :(得分:0)
public static languages = {
1033: 'English',
.....etc
};
如果以上代码采用localeId的格式:语言名称。 您可以直接访问,例如Languages [localeId]