Configure language by value, not by index.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
This commit is contained in:
Anders Kaseorg
2020-04-22 12:59:15 -07:00
parent 714cd926ae
commit 7ffddded5d
2 changed files with 4 additions and 6 deletions

View File

@@ -47,7 +47,7 @@ export default class BaseSection extends BaseComponent {
generateSelectTemplate(options: {[key: string]: string}, className?: string, idName?: string): string { generateSelectTemplate(options: {[key: string]: string}, className?: string, idName?: string): string {
let select = `<select class="${escape(className)}" id="${escape(idName)}">\n`; let select = `<select class="${escape(className)}" id="${escape(idName)}">\n`;
Object.keys(options).forEach(key => { Object.keys(options).forEach(key => {
select += `<option value="${escape(key)}">${escape(options[key])}</option>\n`; select += `<option name="${escape(key)}" value="${escape(key)}">${escape(options[key])}</option>\n`;
}); });
select += '</select>'; select += '</select>';
return select; return select;

View File

@@ -416,14 +416,12 @@ export default class GeneralSection extends BaseSection {
const langMenu: HTMLSelectElement = document.querySelector('.lang-menu'); const langMenu: HTMLSelectElement = document.querySelector('.lang-menu');
// The next three lines set the selected language visible on the dropdown button // The next three lines set the selected language visible on the dropdown button
let langIndex = ConfigUtil.getConfigItem('languageIndex'); let language = ConfigUtil.getConfigItem('appLanguage');
langIndex = (langIndex === null) ? 4 : langIndex; language = language && langMenu.options.namedItem(language) ? language : 'en-US';
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion langMenu.options.namedItem(language).selected = true;
(langMenu.options[langIndex] as HTMLOptionElement).setAttribute('selected', '');
langMenu.addEventListener('change', (event: Event) => { langMenu.addEventListener('change', (event: Event) => {
ConfigUtil.setConfigItem('appLanguage', (event.target as HTMLSelectElement).value); ConfigUtil.setConfigItem('appLanguage', (event.target as HTMLSelectElement).value);
ConfigUtil.setConfigItem('languageIndex', (event.target as HTMLSelectElement).selectedIndex);
}); });
} }