@mpgd/i18n 0.5.7 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +6 -0
- package/dist/index.js +18 -9
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -8,8 +8,14 @@ export interface ResolveTargetMpgdLocaleInput {
|
|
|
8
8
|
readonly preferredLocales?: readonly string[];
|
|
9
9
|
readonly fallbackLocale: MpgdLocale;
|
|
10
10
|
}
|
|
11
|
+
export interface MpgdLocaleEnvironment {
|
|
12
|
+
readonly language?: string;
|
|
13
|
+
readonly languages?: readonly string[];
|
|
14
|
+
}
|
|
11
15
|
export declare function isMpgdLocale(input: string): input is MpgdLocale;
|
|
12
16
|
export declare function normalizeMpgdLocale(input: string): MpgdLocale | null;
|
|
13
17
|
export declare function resolveMpgdLocale(capabilities: Pick<PlatformCapabilities, 'localizedContent'>, preferredLocales?: readonly string[]): MpgdLocale;
|
|
14
18
|
/** Resolves locale policy without assigning defaults to specific platform names. */
|
|
15
19
|
export declare function resolveTargetMpgdLocale(input: ResolveTargetMpgdLocaleInput): MpgdLocale;
|
|
20
|
+
/** Read an ordered, de-duplicated browser or WebView language preference list. */
|
|
21
|
+
export declare function readMpgdPreferredLocales(environment?: MpgdLocaleEnvironment | undefined): readonly string[];
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ export function normalizeMpgdLocale(input) {
|
|
|
14
14
|
}
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
17
|
-
export function resolveMpgdLocale(capabilities, preferredLocales =
|
|
17
|
+
export function resolveMpgdLocale(capabilities, preferredLocales = readMpgdPreferredLocales()) {
|
|
18
18
|
return resolveTargetMpgdLocale({
|
|
19
19
|
capabilities,
|
|
20
20
|
preferredLocales,
|
|
@@ -33,7 +33,7 @@ export function resolveTargetMpgdLocale(input) {
|
|
|
33
33
|
return savedLocale;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
for (const preferredLocale of input.preferredLocales ??
|
|
36
|
+
for (const preferredLocale of input.preferredLocales ?? readMpgdPreferredLocales()) {
|
|
37
37
|
const locale = normalizeMpgdLocale(preferredLocale);
|
|
38
38
|
if (locale !== null) {
|
|
39
39
|
return locale;
|
|
@@ -41,11 +41,20 @@ export function resolveTargetMpgdLocale(input) {
|
|
|
41
41
|
}
|
|
42
42
|
return fallbackLocale;
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
/** Read an ordered, de-duplicated browser or WebView language preference list. */
|
|
45
|
+
export function readMpgdPreferredLocales(environment = globalThis.navigator) {
|
|
46
|
+
const candidates = [
|
|
47
|
+
...(environment?.languages ?? []),
|
|
48
|
+
...(environment?.language === undefined ? [] : [environment.language]),
|
|
49
|
+
];
|
|
50
|
+
const seen = new Set();
|
|
51
|
+
const preferredLocales = candidates.filter((locale) => {
|
|
52
|
+
const key = locale.toLowerCase();
|
|
53
|
+
if (locale.length === 0 || seen.has(key)) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
seen.add(key);
|
|
57
|
+
return true;
|
|
58
|
+
});
|
|
59
|
+
return Object.freeze(preferredLocales);
|
|
51
60
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mpgd/i18n",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Paraglide-backed message catalog for mpgd demos and target-aware UI.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"project.inlang"
|
|
45
45
|
],
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@mpgd/platform": "0.
|
|
47
|
+
"@mpgd/platform": "0.12.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@inlang/paraglide-js": "2.20.2",
|