У меня есть функция, которая получает LCID (идентификатор локали) от текущего пользователя. Я хочу сопоставить этот номер с соответствующим языком в другом свойстве. Например, я сначала извлекаю LCID из пользователя, скажем, «1043» для голландского. У меня есть свойство с «1043: голландский», и я хочу извлечь имя из этого свойства с идентификатором.
Мой код:
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, он вернет «голландский», а это не так.