@mpgd/i18n 0.4.1 → 0.5.1
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 +8 -0
- package/dist/index.js +20 -5
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,14 @@ import type { PlatformCapabilities } from '@mpgd/platform';
|
|
|
2
2
|
import { type Locale } from './paraglideAdapter.js';
|
|
3
3
|
export { baseLocale, locales, m, type Locale } from './paraglideAdapter.js';
|
|
4
4
|
export type MpgdLocale = Locale;
|
|
5
|
+
export interface ResolveTargetMpgdLocaleInput {
|
|
6
|
+
readonly capabilities: Pick<PlatformCapabilities, 'localizedContent'>;
|
|
7
|
+
readonly savedLocale?: unknown;
|
|
8
|
+
readonly preferredLocales?: readonly string[];
|
|
9
|
+
readonly fallbackLocale: MpgdLocale;
|
|
10
|
+
}
|
|
5
11
|
export declare function isMpgdLocale(input: string): input is MpgdLocale;
|
|
6
12
|
export declare function normalizeMpgdLocale(input: string): MpgdLocale | null;
|
|
7
13
|
export declare function resolveMpgdLocale(capabilities: Pick<PlatformCapabilities, 'localizedContent'>, preferredLocales?: readonly string[]): MpgdLocale;
|
|
14
|
+
/** Resolves locale policy without assigning defaults to specific platform names. */
|
|
15
|
+
export declare function resolveTargetMpgdLocale(input: ResolveTargetMpgdLocaleInput): MpgdLocale;
|
package/dist/index.js
CHANGED
|
@@ -15,16 +15,31 @@ export function normalizeMpgdLocale(input) {
|
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
17
17
|
export function resolveMpgdLocale(capabilities, preferredLocales = readPreferredLocales()) {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
return resolveTargetMpgdLocale({
|
|
19
|
+
capabilities,
|
|
20
|
+
preferredLocales,
|
|
21
|
+
fallbackLocale: baseLocale,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/** Resolves locale policy without assigning defaults to specific platform names. */
|
|
25
|
+
export function resolveTargetMpgdLocale(input) {
|
|
26
|
+
const fallbackLocale = input.fallbackLocale;
|
|
27
|
+
if (!input.capabilities.localizedContent) {
|
|
28
|
+
return fallbackLocale;
|
|
29
|
+
}
|
|
30
|
+
if (typeof input.savedLocale === 'string') {
|
|
31
|
+
const savedLocale = normalizeMpgdLocale(input.savedLocale);
|
|
32
|
+
if (savedLocale !== null) {
|
|
33
|
+
return savedLocale;
|
|
34
|
+
}
|
|
20
35
|
}
|
|
21
|
-
for (const preferredLocale of preferredLocales) {
|
|
36
|
+
for (const preferredLocale of input.preferredLocales ?? readPreferredLocales()) {
|
|
22
37
|
const locale = normalizeMpgdLocale(preferredLocale);
|
|
23
38
|
if (locale !== null) {
|
|
24
39
|
return locale;
|
|
25
40
|
}
|
|
26
41
|
}
|
|
27
|
-
return
|
|
42
|
+
return fallbackLocale;
|
|
28
43
|
}
|
|
29
44
|
function readPreferredLocales() {
|
|
30
45
|
const navigatorLanguages = globalThis.navigator?.languages;
|
|
@@ -32,5 +47,5 @@ function readPreferredLocales() {
|
|
|
32
47
|
return navigatorLanguages;
|
|
33
48
|
}
|
|
34
49
|
const navigatorLanguage = globalThis.navigator?.language;
|
|
35
|
-
return navigatorLanguage === undefined ? [
|
|
50
|
+
return navigatorLanguage === undefined ? [] : [navigatorLanguage];
|
|
36
51
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mpgd/i18n",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Paraglide-backed message catalog for mpgd demos and target-aware UI.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -44,13 +44,13 @@
|
|
|
44
44
|
"project.inlang"
|
|
45
45
|
],
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@mpgd/platform": "0.
|
|
47
|
+
"@mpgd/platform": "0.5.1"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@inlang/paraglide-js": "2.20.2",
|
|
51
51
|
"@inlang/plugin-message-format": "4.4.0",
|
|
52
52
|
"@types/node": "^24.0.0",
|
|
53
|
-
"ttsc": "0.
|
|
53
|
+
"ttsc": "0.18.4",
|
|
54
54
|
"typescript": "5.9.3"
|
|
55
55
|
},
|
|
56
56
|
"main": "./dist/index.js",
|