src/modules/language/domain/languageHelpers.ts   A
last analyzed

Complexity

Total Complexity 7
Complexity/F 1

Size

Lines of Code 37
Function Count 7

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 29
dl 0
loc 37
rs 10
c 0
b 0
f 0
wmc 7
mnd 0
bc 0
fnc 7
bpm 0
cpm 1
noi 0

5 Functions

Rating   Name   Duplication   Size   Complexity  
A languageHelpers.ts ➔ isLanguageActive 0 3 1
A languageHelpers.ts ➔ getSavedLanguage 0 3 1
A languageHelpers.ts ➔ getUILanguageCode 0 16 1
A languageHelpers.ts ➔ saveLanguage 0 3 1
A languageHelpers.ts ➔ determineLanguage 0 3 1
1
export function getDefaultLanguage(): string {
2
  return 'english';
3
}
4
5
export function getSavedLanguage(): string | null {
6
  return localStorage.getItem('language');
7
}
8
9
export function saveLanguage(language: string): void {
10
  localStorage.setItem('language', language);
11
}
12
13
export function determineLanguage(savedLanguage: string | null): string {
14
  return savedLanguage || getDefaultLanguage();
15
}
16
17
export function isLanguageActive(optionLang: string, currentLang: string): boolean {
18
  return optionLang === currentLang;
19
}
20
21
export function getUILanguageCode(wordlistLang: string): string {
22
  const mapping: Record<string, string> = {
23
    english: 'en',
24
    spanish: 'es',
25
    french: 'fr',
26
    czech: 'cs',
27
    italian: 'it',
28
    portuguese: 'pt',
29
    japanese: 'ja',
30
    korean: 'ko',
31
    chinese_simplified: 'zh-Hans',
32
    chinese_traditional: 'zh-Hant',
33
  };
34
35
  return mapping[wordlistLang] || 'en';
36
}
37