• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

atinc / ngx-tethys / 7f3375ed-2f9c-4aab-b205-91a4367354bc

18 Nov 2024 05:13AM UTC coverage: 90.351% (-0.002%) from 90.353%
7f3375ed-2f9c-4aab-b205-91a4367354bc

push

circleci

minlovehua
feat(i18n): i18n design and review #TINFR-916

5522 of 6760 branches covered (81.69%)

Branch coverage included in aggregate %.

0 of 1 new or added line in 1 file covered. (0.0%)

1 existing line in 1 file now uncovered.

13197 of 13958 relevant lines covered (94.55%)

996.5 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

76.47
/src/i18n/i18n.service.ts
1
import { inject, Injectable, signal, Signal, WritableSignal } from '@angular/core';
2
import { THY_I18N_EN_US, THY_I18N_LOCALE_ID, THY_I18N_ZH_CN, ThyI18nLocale, zhCnLocale, enUsLocale } from '.';
3

4
function normalizeLocale(localeId: string): string {
5
    return localeId?.toLowerCase().replace(/_/g, '-');
241✔
6
}
7

1✔
8
@Injectable({
9
    providedIn: 'root'
241✔
10
})
482✔
11
export class ThyI18nService {
482✔
12
    private locales: { [id: string]: ThyI18nLocale } = {
13
        'zh-cn': inject(THY_I18N_ZH_CN, { optional: true }) || zhCnLocale,
241✔
14
        'en-us': inject(THY_I18N_EN_US, { optional: true }) || enUsLocale
241✔
15
    };
16

17
    private defaultLocaleId: string = normalizeLocale(inject(THY_I18N_LOCALE_ID, { optional: true })) || 'zh-cn';
18

19
    private locale: WritableSignal<ThyI18nLocale> = signal(this.locales[this.defaultLocaleId]);
20

UNCOV
21
    /**
×
NEW
22
     * 设置语言,支持传入 zh-cn(或zh-CN)、 en-us(或en-US)
×
23
     * @param id
24
     */
25
    setLocale(id: string) {
26
        const localeId = normalizeLocale(id);
27
        this.locale.set(this.locales[localeId] || this.locales[this.defaultLocaleId]);
28
    }
935✔
29

30
    /**
31
     * 获取当前语言
1✔
32
     */
33
    getLocale(): Signal<ThyI18nLocale> {
34
        return this.locale;
35
    }
36
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc