Merge pull request #856 from toeverything/fix/language-menu-ui
fix: retrieves missing default language
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
@@ -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');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user