-
Notifications
You must be signed in to change notification settings - Fork 9
/
Dictionary.ts
75 lines (67 loc) · 2.31 KB
/
Dictionary.ts
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
import { ObjectParameters } from '../types';
export type DictionaryConfig = {
$Language: string;
dictionary: DictionaryData;
};
export type DictionaryData = {
[key: string]: DictionaryData | LocalizationFunction;
};
export type LocalizationFunction = (parameters: ObjectParameters) => string;
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface DictionaryMap {}
/**
* The Dictionary is a manager and preprocessor of localization phrases for a
* single language. The format of the localization phrases depends on the
* implementation of this interface.
*/
export abstract class Dictionary {
/**
* Initializes this dictionary with the provided language and localization
* phrases.
*
* @param config The dictionary configuration.
* @param config.$Language The language property is an ISO 639-1
* language code specifying the language of the provided phrases.
* @param config.dictionary The dictionary property contains the
* localization phrases organized in an implementation-specific way.
*/
init(config: DictionaryConfig): void {
return;
}
/**
* Returns the ISO 639-1 language code of the language this dictionary was
* initialized with.
*
* @return The language code representing the language of the
* localization phrases in this dictionary.
*/
getLanguage(): string {
return '';
}
/**
* Retrieves the localization phrase identified by the specified key,
* evaluates the phrase's placeholder expressions using the provided
* parameters and returns the result.
*
* @param key The key identifying the localization phrase.
* @param parameters The
* map of parameter names to the parameter values to use.
* Defaults to an empty plain object.
* @return The specified localization phrase with its placeholders
* evaluated using the provided parameters.
*/
get(key: keyof DictionaryMap, parameters?: ObjectParameters): string {
return '';
}
/**
* Tests whether the specified localization phrase exists in the
* dictionary.
*
* @param key The key identifying the localization phrase.
* @return`true` if the key exists and denotes a single
* localization phrase, otherwise `false`.
*/
has(key: string): boolean {
return false;
}
}