feat(core-app-api): support no en languages

Signed-off-by: JounQin <admin@1stg.me>
This commit is contained in:
JounQin
2025-07-29 17:33:05 +08:00
parent 741adbee6c
commit 5ae6d9dd4b
3 changed files with 22 additions and 4 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-app-api': patch
---
feat: support no en languages
@@ -144,11 +144,26 @@ describe('AppLanguageSelector', () => {
AppLanguageSelector.createWithStorage({
availableLanguages: ['de'],
}),
).toThrow("Supported languages must include 'en'");
).toThrow(
"Initial language must be one of the supported languages, got 'en'",
);
const selector = AppLanguageSelector.createWithStorage(baseOptions);
expect(() => selector.setLanguage('sv')).toThrow(
"Failed to change language to 'sv', available languages are 'en', 'de'",
);
});
it('should support no en languages', () => {
const selector = AppLanguageSelector.createWithStorage({
availableLanguages: ['de'],
defaultLanguage: 'de',
});
expect(selector.getLanguage()).toEqual({ language: 'de' });
expect(() => selector.setLanguage('en')).toThrow(
"Failed to change language to 'en', available languages are 'de'",
);
});
});
@@ -44,11 +44,9 @@ export class AppLanguageSelector implements AppLanguageApi {
)}'`,
);
}
if (!languages.includes(DEFAULT_LANGUAGE)) {
throw new Error(`Supported languages must include '${DEFAULT_LANGUAGE}'`);
}
const initialLanguage = options?.defaultLanguage ?? DEFAULT_LANGUAGE;
if (!languages.includes(initialLanguage)) {
throw new Error(
`Initial language must be one of the supported languages, got '${initialLanguage}'`,