Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 1x 1x 3x 3x 1x 4x 6x 1x 8x 10x 8x 7x 1x 1x 1x 1x | /** * Copyright (c) Siemens 2016 - 2025 * SPDX-License-Identifier: MIT */ import { Injectable } from '@angular/core'; import { Observable, of } from 'rxjs'; import { SiTranslateService, TranslationResult } from './si-translate.service'; const arrayToRecord = (keys: string[]): Record<string, string> => keys.reduce( (acc, cur) => { acc[cur] = cur; return acc; }, {} as Record<string, string> ); const replacePlaceholders = (str: string, params: Record<string, unknown>): string => { return str.replace(/{{\s*([^}]+)\s*}}/g, (match, p1) => { return params[p1] !== undefined ? String(params[p1]) : match; }); }; /** * Pass through implementation of the {@link SiTranslateService} which is used as a default. * * @internal */ @Injectable({ providedIn: 'root' }) export class SiNoTranslateService extends SiTranslateService { override get currentLanguage(): string { return 'en'; } override get availableLanguages(): string[] { return ['en']; } override set availableLanguages(lang: string[]) {} override setCurrentLanguage(lang: string): Observable<void> { return of(); } override getDefaultLanguage(): string { return 'en'; } override setDefaultLanguage(lang: string): void {} override translate<T extends string | string[]>( keys: T, _params?: Record<string, unknown> ): TranslationResult<T> { const translateKey = (key: string): string => { return _params ? replacePlaceholders(key, _params) : key; }; if (typeof keys === 'string') { return translateKey(keys) as TranslationResult<T>; } else { const translatedKeys = keys.map(translateKey); return arrayToRecord(translatedKeys) as TranslationResult<T>; } } override translateSync<T extends string | string[]>( keys: T, params?: Record<string, unknown> ): TranslationResult<T> { return this.translate(keys, params); } override translateAsync<T extends string | string[]>( keys: T, params?: Record<string, unknown> ): Observable<TranslationResult<T>> { return of(this.translate(keys, params)); } } |