Merge pull request #856 from toeverything/fix/language-menu-ui

fix: retrieves missing default language
This commit is contained in:
JimmFly
2023-02-07 16:23:57 +08:00
committed by GitHub
3 changed files with 19 additions and 6 deletions

View File

@@ -45,6 +45,7 @@ export const LanguageMenu = () => {
iconPosition="end" iconPosition="end"
noBorder={true} noBorder={true}
style={{ textTransform: 'capitalize' }} style={{ textTransform: 'capitalize' }}
data-testid="language-menu-button"
> >
{currentLanguage?.originalName} {currentLanguage?.originalName}
</Button> </Button>

View File

@@ -33,15 +33,18 @@ const resources = LOCALES.reduce<Resource>(
const fallbackLng = LOCALES[0].tag; const fallbackLng = LOCALES[0].tag;
const standardizeLocale = (language: string) => { const standardizeLocale = (language: string) => {
if (LOCALES.find(locale => locale.tag === language)) return language;
if (language === 'zh-CN' || language === 'zh') { if (language === 'zh-CN' || language === 'zh') {
return 'zh-Hans'; language = 'zh-Hans';
} else if (language.slice(0, 2).toLowerCase() === 'zh') {
language = 'zh-Hant';
} }
if (language.slice(0, 2).toLowerCase() === 'zh') { if (LOCALES.find(locale => locale.tag === language)) return language;
return 'zh-Hant'; if (
LOCALES.find(locale => locale.tag === language.slice(0, 2).toLowerCase())
) {
return language.slice(0, 2).toLowerCase();
} }
if (LOCALES.find(locale => locale.tag === language.slice(0, 2).toLowerCase()))
return language;
return fallbackLng; return fallbackLng;
}; };
let language = 'en'; let language = 'en';

View File

@@ -17,3 +17,12 @@ test.describe('Local first default workspace', () => {
).not.toBeNull(); ).not.toBeNull();
}); });
}); });
test.describe('Language switch', () => {
test('Open language switch menu', async ({ page }) => {
await page.getByTestId('current-workspace').click();
const languageMenuButton = page.getByTestId('language-menu-button');
await expect(languageMenuButton).toBeVisible();
const actual = await languageMenuButton.innerText();
expect(actual).toEqual('English');
});
});