Browse Source

Localize default account name created during user registration

pull/7888/head
Thomas Kaul 4 weeks ago
parent
commit
4e5ae5fcab
  1. 2
      apps/api/src/app/user/user.controller.ts
  2. 4
      apps/api/src/app/user/user.service.ts
  3. 9
      apps/api/src/helper/language.helper.spec.ts
  4. 20
      apps/api/src/helper/language.helper.ts

2
apps/api/src/app/user/user.controller.ts

@ -161,7 +161,7 @@ export class UserController {
const { accessToken, id, role } = await this.userService.createUser({
data: {},
languageCode: data?.languageCode
languageCode: data.languageCode
});
return {

4
apps/api/src/app/user/user.service.ts

@ -716,8 +716,8 @@ export class UserService {
create: {
currency: DEFAULT_CURRENCY,
name: this.i18nService.getTranslation({
languageCode: getSupportedLanguageCode(languageCode),
id: 'myAccount'
id: 'myAccount',
languageCode: getSupportedLanguageCode(languageCode)
})
}
},

9
apps/api/src/helper/language.helper.spec.ts

@ -24,8 +24,17 @@ describe('getSupportedLanguageCode', () => {
expect(getSupportedLanguageCode('de')).toEqual('de');
});
it('should ignore the region subtag', () => {
expect(getSupportedLanguageCode('de-CH')).toEqual('de');
});
it('should ignore the case', () => {
expect(getSupportedLanguageCode('DE')).toEqual('de');
});
it('should use the default language code if the language is not supported', () => {
expect(getSupportedLanguageCode()).toEqual(DEFAULT_LANGUAGE_CODE);
expect(getSupportedLanguageCode('')).toEqual(DEFAULT_LANGUAGE_CODE);
expect(getSupportedLanguageCode('xx')).toEqual(DEFAULT_LANGUAGE_CODE);
});
});

20
apps/api/src/helper/language.helper.ts

@ -3,14 +3,22 @@ import {
SUPPORTED_LANGUAGE_CODES
} from '@ghostfolio/common/config';
export function getLanguageCodeFromHeader(acceptLanguage?: string): string {
const languageCode = acceptLanguage?.split(',')[0].split('-')[0];
type SupportedLanguageCode = (typeof SUPPORTED_LANGUAGE_CODES)[number];
return getSupportedLanguageCode(languageCode);
export function getLanguageCodeFromHeader(
acceptLanguage?: string
): SupportedLanguageCode {
return getSupportedLanguageCode(acceptLanguage?.split(',')[0]);
}
export function getSupportedLanguageCode(languageCode?: string): string {
return (SUPPORTED_LANGUAGE_CODES as readonly string[]).includes(languageCode)
? languageCode
export function getSupportedLanguageCode(
languageCode?: string
): SupportedLanguageCode {
const languageCodeToUse = languageCode
?.split('-')[0]
.toLowerCase() as SupportedLanguageCode;
return SUPPORTED_LANGUAGE_CODES.includes(languageCodeToUse)
? languageCodeToUse
: DEFAULT_LANGUAGE_CODE;
}

Loading…
Cancel
Save