Skip to content

Commit 0978ed6

Browse files
committed
refactor(service): moved ITranslateService to separate file
1 parent 3227984 commit 0978ed6

14 files changed

+205
-159
lines changed

projects/ngx-translate/src/lib/missing-translation-handler.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Injectable } from "@angular/core";
22
import { Observable } from "rxjs";
3-
import { StrictTranslation, TranslateService } from "./translate.service";
3+
import { TranslateService } from "./translate.service";
4+
import { StrictTranslation } from "./translate.service.interface";
45

56
export interface MissingTranslationHandlerParams {
67
/**

projects/ngx-translate/src/lib/translate.compiler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
InterpolatableTranslation,
55
InterpolatableTranslationObject,
66
TranslationObject,
7-
} from "./translate.service";
7+
} from "./translate.service.interface";
88

99
export abstract class TranslateCompiler {
1010
abstract compile(value: string, lang: string): InterpolatableTranslation;

projects/ngx-translate/src/lib/translate.directive.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,19 @@ import {
88
OnDestroy,
99
} from "@angular/core";
1010
import { isObservable, Subscription } from "rxjs";
11+
import {
12+
TranslateService,
13+
14+
} from "./translate.service";
15+
import { equals, isDefinedAndNotNull, isString } from "./util";
1116
import {
1217
FallbackLangChangeEvent,
1318
InterpolatableTranslation,
1419
InterpolationParameters,
1520
LangChangeEvent,
1621
StrictTranslation,
17-
TranslateService,
1822
TranslationChangeEvent,
19-
} from "./translate.service";
20-
import { equals, isDefinedAndNotNull, isString } from "./util";
23+
} from "./translate.service.interface";
2124

2225
interface ExtendedNode extends Text {
2326
originalContent: string;

projects/ngx-translate/src/lib/translate.loader.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Injectable } from "@angular/core";
22
import { Observable, of } from "rxjs";
3-
import { TranslationObject } from "./translate.service";
3+
4+
import { TranslationObject } from "./translate.service.interface";
45

56
export abstract class TranslateLoader {
67
abstract getTranslation(lang: string): Observable<TranslationObject>;

projects/ngx-translate/src/lib/translate.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import {
1313
provideTranslateParser,
1414
TranslateProviders,
1515
} from "./translate.providers";
16-
import { Language } from "./translate.service";
16+
17+
import { Language } from "./translate.service.interface";
1718

1819
export interface TranslateModuleConfig extends TranslateProviders {
1920
isolate?: boolean;

projects/ngx-translate/src/lib/translate.parser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Injectable } from "@angular/core";
2-
import { InterpolationParameters } from "./translate.service";
32
import { getValue, isArray, isFunction, isObject, isString } from "./util";
3+
import { InterpolationParameters } from "./translate.service.interface";
44

55
export type InterpolateFunction = (params?: InterpolationParameters) => string;
66

projects/ngx-translate/src/lib/translate.pipe.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,18 @@ import {
77
PipeTransform,
88
} from "@angular/core";
99
import { isObservable, Subscription } from "rxjs";
10+
import {
11+
TranslateService,
12+
13+
} from "./translate.service";
14+
import { equals, isDefinedAndNotNull, isDict, isString } from "./util";
1015
import {
1116
InterpolatableTranslationObject,
1217
InterpolationParameters,
1318
LangChangeEvent,
1419
StrictTranslation,
15-
TranslateService,
1620
TranslationChangeEvent,
17-
} from "./translate.service";
18-
import { equals, isDefinedAndNotNull, isDict, isString } from "./util";
21+
} from "./translate.service.interface";
1922

2023
@Injectable()
2124
@Pipe({

projects/ngx-translate/src/lib/translate.providers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ import { TranslateCompiler, TranslateNoOpCompiler } from "./translate.compiler";
77
import { TranslateLoader, TranslateNoOpLoader } from "./translate.loader";
88
import { TranslateDefaultParser, TranslateParser } from "./translate.parser";
99
import {
10-
Language,
1110
TRANSLATE_SERVICE_CONFIG,
1211
TranslateService,
1312
TranslateServiceConfig,
1413
} from "./translate.service";
1514
import { TranslateStore } from "./translate.store";
15+
import { Language } from "./translate.service.interface";
1616

1717
export interface TranslateProviders {
1818
loader?: Provider;
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
import { InterpolateFunction } from "./translate.parser";
2+
import { Observable } from "rxjs";
3+
4+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
5+
export type InterpolationParameters = Record<string, any>;
6+
export type StrictTranslation = string | StrictTranslation[] | TranslationObject | undefined | null;
7+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
8+
export type Translation = StrictTranslation | any;
9+
10+
export interface TranslationObject {
11+
[key: string]: StrictTranslation;
12+
}
13+
14+
export type InterpolatableTranslation =
15+
| string
16+
| InterpolatableTranslation[]
17+
| InterpolateFunction
18+
| InterpolatableTranslationObject
19+
| undefined
20+
| null;
21+
22+
export interface InterpolatableTranslationObject {
23+
[key: string]: InterpolatableTranslation;
24+
}
25+
26+
export type Language = string;
27+
28+
export interface TranslationChangeEvent {
29+
translations: InterpolatableTranslationObject;
30+
lang: string;
31+
}
32+
33+
export interface LangChangeEvent {
34+
lang: string;
35+
translations: InterpolatableTranslationObject;
36+
}
37+
38+
export interface FallbackLangChangeEvent {
39+
lang: string;
40+
translations: InterpolatableTranslationObject;
41+
}
42+
43+
/** @deprecated use `FallbackLangChangeEvent` */
44+
export type DefaultLangChangeEvent = FallbackLangChangeEvent;
45+
46+
export abstract class ITranslateService {
47+
public abstract readonly onTranslationChange: Observable<TranslationChangeEvent>;
48+
public abstract readonly onLangChange: Observable<LangChangeEvent>;
49+
public abstract readonly onFallbackLangChange: Observable<FallbackLangChangeEvent>;
50+
51+
public abstract use(lang: Language): Observable<InterpolatableTranslationObject>;
52+
53+
public abstract setFallbackLang(lang: Language): Observable<InterpolatableTranslationObject>;
54+
public abstract getFallbackLang(): Language | null;
55+
56+
public abstract addLangs(languages: Language[]): void;
57+
public abstract getLangs(): readonly Language[];
58+
public abstract reloadLang(lang: Language): Observable<InterpolatableTranslationObject>;
59+
public abstract resetLang(lang: Language): void;
60+
61+
public abstract instant(
62+
key: string | string[],
63+
interpolateParams?: InterpolationParameters,
64+
): Translation;
65+
66+
public abstract stream(
67+
key: string | string[],
68+
interpolateParams?: InterpolationParameters,
69+
): Observable<Translation>;
70+
71+
public abstract getStreamOnTranslationChange(
72+
key: string | string[],
73+
interpolateParams?: InterpolationParameters,
74+
): Observable<Translation>;
75+
76+
public abstract set(
77+
key: string,
78+
translation: string | TranslationObject,
79+
lang?: Language,
80+
): void;
81+
82+
public abstract get(
83+
key: string | string[],
84+
interpolateParams?: InterpolationParameters,
85+
): Observable<Translation>;
86+
87+
public abstract setTranslation(
88+
lang: Language,
89+
translations: TranslationObject,
90+
shouldMerge?: boolean,
91+
): void;
92+
93+
public abstract getParsedResult(
94+
key: string | string[],
95+
interpolateParams?: InterpolationParameters,
96+
): StrictTranslation | Observable<StrictTranslation>;
97+
98+
public abstract getBrowserLang(): Language | undefined;
99+
100+
public abstract getBrowserCultureLang(): Language | undefined;
101+
102+
/**
103+
* Returns the current language
104+
* @deprecated use `getCurrentLang()`
105+
*/
106+
public abstract readonly currentLang: Language;
107+
108+
/**
109+
* Returns a list of known languages - either loaded
110+
* or set by using `addLangs()`
111+
* @deprecated use `getLangs()`
112+
*/
113+
public abstract readonly langs: readonly Language[];
114+
115+
/**
116+
* Sets the fallback language
117+
* @param lang The language to set
118+
* @deprecated use `setFallbackLang(lang)`
119+
*/
120+
public abstract setDefaultLang(lang: Language): Observable<InterpolatableTranslationObject>;
121+
122+
/**
123+
* Gets the fallback language
124+
* @deprecated use `getFallbackLang()`
125+
*/
126+
public abstract getDefaultLang(): Language | null;
127+
128+
/**
129+
* Returns the fallback language
130+
* @deprectated use `getFallbackLang()`
131+
*/
132+
public abstract readonly defaultLang: Language | null;
133+
134+
/**
135+
* @deprectated use `getFallbackLang()`
136+
*/
137+
public abstract readonly onDefaultLangChange: Observable<DefaultLangChangeEvent>;
138+
}

0 commit comments

Comments
 (0)