mirror of https://github.com/ghostfolio/ghostfolio
9 changed files with 76 additions and 22 deletions
@ -0,0 +1,31 @@ |
|||
import { DEFAULT_LANGUAGE_CODE } from '@ghostfolio/common/config'; |
|||
|
|||
import { |
|||
getLanguageCodeFromHeader, |
|||
getSupportedLanguageCode |
|||
} from './language.helper'; |
|||
|
|||
describe('getLanguageCodeFromHeader', () => { |
|||
it('should get the primary language code', () => { |
|||
expect(getLanguageCodeFromHeader('de-CH,de;q=0.9,en;q=0.8')).toEqual('de'); |
|||
}); |
|||
|
|||
it('should use the default language code if the header is missing', () => { |
|||
expect(getLanguageCodeFromHeader()).toEqual(DEFAULT_LANGUAGE_CODE); |
|||
}); |
|||
|
|||
it('should use the default language code if the language is not supported', () => { |
|||
expect(getLanguageCodeFromHeader('xx')).toEqual(DEFAULT_LANGUAGE_CODE); |
|||
}); |
|||
}); |
|||
|
|||
describe('getSupportedLanguageCode', () => { |
|||
it('should return a supported language code', () => { |
|||
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('xx')).toEqual(DEFAULT_LANGUAGE_CODE); |
|||
}); |
|||
}); |
|||
@ -0,0 +1,16 @@ |
|||
import { |
|||
DEFAULT_LANGUAGE_CODE, |
|||
SUPPORTED_LANGUAGE_CODES |
|||
} from '@ghostfolio/common/config'; |
|||
|
|||
export function getLanguageCodeFromHeader(acceptLanguage?: string): string { |
|||
const languageCode = acceptLanguage?.split(',')[0].split('-')[0]; |
|||
|
|||
return getSupportedLanguageCode(languageCode); |
|||
} |
|||
|
|||
export function getSupportedLanguageCode(languageCode?: string): string { |
|||
return (SUPPORTED_LANGUAGE_CODES as readonly string[]).includes(languageCode) |
|||
? languageCode |
|||
: DEFAULT_LANGUAGE_CODE; |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
import { IsOptional, IsString } from 'class-validator'; |
|||
|
|||
export class CreateUserDto { |
|||
@IsOptional() |
|||
@IsString() |
|||
languageCode?: string; |
|||
} |
|||
Loading…
Reference in new issue