@wix/multilingual-manager 1.0.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/README.md +154 -0
- package/dist/cjs/index.d.ts +34 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +36 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/languages-display-names.d.ts +2 -0
- package/dist/cjs/languages-display-names.d.ts.map +1 -0
- package/dist/cjs/languages-display-names.js +186 -0
- package/dist/cjs/languages-display-names.js.map +1 -0
- package/dist/cjs/multilingual.d.ts +37 -0
- package/dist/cjs/multilingual.d.ts.map +1 -0
- package/dist/cjs/multilingual.js +166 -0
- package/dist/cjs/multilingual.js.map +1 -0
- package/dist/cjs/types.d.ts +165 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +13 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +32 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/languages-display-names.d.ts +2 -0
- package/dist/esm/languages-display-names.d.ts.map +1 -0
- package/dist/esm/languages-display-names.js +183 -0
- package/dist/esm/languages-display-names.js.map +1 -0
- package/dist/esm/multilingual.d.ts +37 -0
- package/dist/esm/multilingual.d.ts.map +1 -0
- package/dist/esm/multilingual.js +161 -0
- package/dist/esm/multilingual.js.map +1 -0
- package/dist/esm/types.d.ts +165 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +10 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +79 -0
package/README.md
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# @wix/multilingual
|
|
2
|
+
|
|
3
|
+
A type-safe Wix Multilingual SDK for accessing available languages on a site. This package provides a browser-only interface that proxies to the global `window.multilingual` methods with full TypeScript support.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @wix/multilingual
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { listSupportedLanguages } from "@wix/multilingual";
|
|
15
|
+
|
|
16
|
+
// Get all available languages
|
|
17
|
+
const languages = listSupportedLanguages();
|
|
18
|
+
console.log("Available languages:", languages);
|
|
19
|
+
|
|
20
|
+
// Find the primary language
|
|
21
|
+
const primaryLanguage = languages.find(lang => lang.primary);
|
|
22
|
+
if (primaryLanguage) {
|
|
23
|
+
console.log("Primary language:", primaryLanguage.displayName);
|
|
24
|
+
console.log("Primary language URL:", primaryLanguage.url);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Iterate through all languages
|
|
28
|
+
languages.forEach(lang => {
|
|
29
|
+
console.log(`${lang.displayName} (${lang.id}): ${lang.url}`);
|
|
30
|
+
});
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Features
|
|
34
|
+
|
|
35
|
+
- ✅ **Type-safe** - Full TypeScript support for all language operations
|
|
36
|
+
- ✅ **Browser-only** - Works in Wix applications where `window.multilingual` is available
|
|
37
|
+
- ✅ **Zero dependencies** - Lightweight proxy implementation
|
|
38
|
+
- ✅ **Silent failure** - Graceful handling of missing dependencies with console warnings
|
|
39
|
+
- ✅ **External site support** - Supports URLs for sites hosted outside Wix
|
|
40
|
+
- ✅ **Comprehensive API** - Full access to language information including URLs and regional formats
|
|
41
|
+
|
|
42
|
+
## API Reference
|
|
43
|
+
|
|
44
|
+
### `listSupportedLanguages()`
|
|
45
|
+
|
|
46
|
+
Gets an array of all available languages as defined in ML. Provides an array of all the available languages as defined in ML. Array of Language object.
|
|
47
|
+
|
|
48
|
+
**Returns:** `Language[]` - Array of Language objects, or empty array if not available
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
const languages = listSupportedLanguages();
|
|
52
|
+
// [
|
|
53
|
+
// {
|
|
54
|
+
// id: "en",
|
|
55
|
+
// displayName: "English",
|
|
56
|
+
// regionalFormat: "en-US",
|
|
57
|
+
// url: "https://mysite.com/en",
|
|
58
|
+
// primary: true
|
|
59
|
+
// },
|
|
60
|
+
// {
|
|
61
|
+
// id: "fr",
|
|
62
|
+
// displayName: "Français",
|
|
63
|
+
// regionalFormat: "fr-FR",
|
|
64
|
+
// url: "https://mysite.com/fr",
|
|
65
|
+
// primary: false
|
|
66
|
+
// }
|
|
67
|
+
// ]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Language Type
|
|
71
|
+
|
|
72
|
+
### Language
|
|
73
|
+
|
|
74
|
+
Represents a language available on the site:
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
interface Language {
|
|
78
|
+
/**
|
|
79
|
+
* The language identifier (e.g., "en", "fr", "es").
|
|
80
|
+
*/
|
|
81
|
+
id: string;
|
|
82
|
+
/**
|
|
83
|
+
* The display name of the language (e.g., "English", "Français", "Español").
|
|
84
|
+
*/
|
|
85
|
+
displayName: string;
|
|
86
|
+
/**
|
|
87
|
+
* The regional format identifier (e.g., "en-US", "fr-FR", "es-ES").
|
|
88
|
+
*/
|
|
89
|
+
regionalFormat: string;
|
|
90
|
+
/**
|
|
91
|
+
* The URL for the language version of the site. Supports URLs for sites hosted outside Wix.
|
|
92
|
+
* (e.g., "https://mysite.com/en", "https://mysite.com/fr").
|
|
93
|
+
*/
|
|
94
|
+
url: string;
|
|
95
|
+
/**
|
|
96
|
+
* Whether this is the primary language for the site.
|
|
97
|
+
*/
|
|
98
|
+
primary: boolean;
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Examples
|
|
103
|
+
|
|
104
|
+
### Get Primary Language
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
import { listSupportedLanguages } from "@wix/multilingual";
|
|
108
|
+
|
|
109
|
+
const languages = listSupportedLanguages();
|
|
110
|
+
const primaryLanguage = languages.find(lang => lang.primary);
|
|
111
|
+
|
|
112
|
+
if (primaryLanguage) {
|
|
113
|
+
console.log(`Primary language: ${primaryLanguage.displayName}`);
|
|
114
|
+
console.log(`URL: ${primaryLanguage.url}`);
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Build Language Switcher
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
import { listSupportedLanguages } from "@wix/multilingual";
|
|
122
|
+
|
|
123
|
+
const languages = listSupportedLanguages();
|
|
124
|
+
|
|
125
|
+
// Create language switcher dropdown
|
|
126
|
+
const languageSwitcher = languages.map(lang => ({
|
|
127
|
+
label: lang.displayName,
|
|
128
|
+
value: lang.id,
|
|
129
|
+
url: lang.url,
|
|
130
|
+
isPrimary: lang.primary,
|
|
131
|
+
}));
|
|
132
|
+
|
|
133
|
+
// Use in your UI component
|
|
134
|
+
languageSwitcher.forEach(lang => {
|
|
135
|
+
console.log(`${lang.label} - ${lang.url}`);
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Support External Sites
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
import { listSupportedLanguages } from "@wix/multilingual";
|
|
143
|
+
|
|
144
|
+
const languages = listSupportedLanguages();
|
|
145
|
+
|
|
146
|
+
// Works with both Wix-hosted and externally-hosted sites
|
|
147
|
+
languages.forEach(lang => {
|
|
148
|
+
// lang.url can be:
|
|
149
|
+
// - "https://mysite.com/en" (external site)
|
|
150
|
+
// - "https://www.wixsite.com/mysite/en" (Wix-hosted)
|
|
151
|
+
console.log(`Switch to ${lang.displayName}: ${lang.url}`);
|
|
152
|
+
});
|
|
153
|
+
```
|
|
154
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wix/multilingual - Wix Multilingual SDK
|
|
3
|
+
*
|
|
4
|
+
* This package provides a type-safe interface for accessing available languages
|
|
5
|
+
* by proxying to the browser's window.multilingual methods.
|
|
6
|
+
*/
|
|
7
|
+
import type { Language } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Gets an array of all available languages as defined in ML.
|
|
10
|
+
*
|
|
11
|
+
* Provides an array of all the available languages as defined in ML. Array of Language object.
|
|
12
|
+
* Supports URLs for sites hosted outside Wix.
|
|
13
|
+
*
|
|
14
|
+
* @returns Array of Language objects
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { listSupportedLanguages } from '@wix/site';
|
|
19
|
+
*
|
|
20
|
+
* const languages = listSupportedLanguages();
|
|
21
|
+
* languages.forEach(lang => {
|
|
22
|
+
* console.log(`${lang.displayName} (${lang.id}): ${lang.URL}`);
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Find primary language
|
|
26
|
+
* const primaryLanguage = languages.find(lang => lang.primary);
|
|
27
|
+
* if (primaryLanguage) {
|
|
28
|
+
* console.log('Primary language:', primaryLanguage.displayName);
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export { listSupportedLanguages } from "./multilingual.js";
|
|
33
|
+
export type { Language };
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAO,mBAAmB,CAAC;AAG5D,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @wix/multilingual - Wix Multilingual SDK
|
|
4
|
+
*
|
|
5
|
+
* This package provides a type-safe interface for accessing available languages
|
|
6
|
+
* by proxying to the browser's window.multilingual methods.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.listSupportedLanguages = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Gets an array of all available languages as defined in ML.
|
|
12
|
+
*
|
|
13
|
+
* Provides an array of all the available languages as defined in ML. Array of Language object.
|
|
14
|
+
* Supports URLs for sites hosted outside Wix.
|
|
15
|
+
*
|
|
16
|
+
* @returns Array of Language objects
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { listSupportedLanguages } from '@wix/site';
|
|
21
|
+
*
|
|
22
|
+
* const languages = listSupportedLanguages();
|
|
23
|
+
* languages.forEach(lang => {
|
|
24
|
+
* console.log(`${lang.displayName} (${lang.id}): ${lang.URL}`);
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Find primary language
|
|
28
|
+
* const primaryLanguage = languages.find(lang => lang.primary);
|
|
29
|
+
* if (primaryLanguage) {
|
|
30
|
+
* console.log('Primary language:', primaryLanguage.displayName);
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
var multilingual_js_1 = require("./multilingual.js");
|
|
35
|
+
Object.defineProperty(exports, "listSupportedLanguages", { enumerable: true, get: function () { return multilingual_js_1.listSupportedLanguages; } });
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qDAA4D;AAAnD,yHAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages-display-names.d.ts","sourceRoot":"","sources":["../../src/languages-display-names.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqLxD,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.languagesDisplayNames = void 0;
|
|
4
|
+
exports.languagesDisplayNames = {
|
|
5
|
+
"cs": "Čeština",
|
|
6
|
+
"da": "Dansk",
|
|
7
|
+
"de": "Deutsch",
|
|
8
|
+
"en": "English",
|
|
9
|
+
"es": "Español",
|
|
10
|
+
"fr": "Français",
|
|
11
|
+
"hi": "हिन्दी",
|
|
12
|
+
"id": "Bahasa Indonesia",
|
|
13
|
+
"it": "Italiano",
|
|
14
|
+
"ja": "日本語",
|
|
15
|
+
"ko": "한국어",
|
|
16
|
+
"nl": "Nederlands",
|
|
17
|
+
"no": "Norsk",
|
|
18
|
+
"pl": "Polski",
|
|
19
|
+
"pt": "Português",
|
|
20
|
+
"ru": "Русский",
|
|
21
|
+
"sv": "Svenska",
|
|
22
|
+
"th": "ไทย",
|
|
23
|
+
"tr": "Türkçe",
|
|
24
|
+
"uk": "Українська",
|
|
25
|
+
"vi": "Tiếng Việt",
|
|
26
|
+
"zh": "繁體中文",
|
|
27
|
+
"sq": "Shqip",
|
|
28
|
+
"am": "አማርኛ",
|
|
29
|
+
"ar": "العربية",
|
|
30
|
+
"hy": "Հայերեն",
|
|
31
|
+
"az": "Azərbaycan dili",
|
|
32
|
+
"eu": "Euskara",
|
|
33
|
+
"be": "Беларуская",
|
|
34
|
+
"bn": "বাংলা",
|
|
35
|
+
"bs": "Bosanski",
|
|
36
|
+
"bg": "Български",
|
|
37
|
+
"ca": "Català",
|
|
38
|
+
"ny": "ChiCheŵa",
|
|
39
|
+
"co": "Corsu",
|
|
40
|
+
"hr": "Hrvatski",
|
|
41
|
+
"et": "Eesti",
|
|
42
|
+
"fj": "Vosa Vakaviti",
|
|
43
|
+
"fi": "Suomi",
|
|
44
|
+
"ga": "Gaeilge",
|
|
45
|
+
"gl": "Galego",
|
|
46
|
+
"ka": "ქართული",
|
|
47
|
+
"el": "Ελληνικά",
|
|
48
|
+
"gu": "ગુજરાતી",
|
|
49
|
+
"ht": "Kreyòl Ayisyen",
|
|
50
|
+
"ha": "Hausa",
|
|
51
|
+
"he": "עברית",
|
|
52
|
+
"hu": "Magyar",
|
|
53
|
+
"is": "Íslenska",
|
|
54
|
+
"ig": "Igbo",
|
|
55
|
+
"kn": "ಕನ್ನಡ",
|
|
56
|
+
"kk": "Қазақ тілі",
|
|
57
|
+
"km": "ភាសាខ្មែរ",
|
|
58
|
+
"ku": "Kurdî",
|
|
59
|
+
"ky": "Кыргызча",
|
|
60
|
+
"lb": "Lëtzebuergesch",
|
|
61
|
+
"lo": "ລາວ",
|
|
62
|
+
"la": "Latina",
|
|
63
|
+
"lv": "Latviešu",
|
|
64
|
+
"lt": "Lietuvių",
|
|
65
|
+
"mk": "Македонски",
|
|
66
|
+
"mg": "Malagasy",
|
|
67
|
+
"ms": "Bahasa Melayu",
|
|
68
|
+
"ml": "മലയാളം",
|
|
69
|
+
"mt": "Malti",
|
|
70
|
+
"mn": "Монгол",
|
|
71
|
+
"ne": "नेपाली",
|
|
72
|
+
"ps": "پښتو",
|
|
73
|
+
"fa": "فارسی",
|
|
74
|
+
"ro": "Română",
|
|
75
|
+
"sm": "Gagana Samoa",
|
|
76
|
+
"sr": "Српски",
|
|
77
|
+
"sn": "Shona",
|
|
78
|
+
"sd": "سنڌي",
|
|
79
|
+
"si": "සිංහල",
|
|
80
|
+
"sk": "Slovenčina",
|
|
81
|
+
"sl": "Slovenščina",
|
|
82
|
+
"so": "Soomaaliga",
|
|
83
|
+
"su": "Basa Sunda",
|
|
84
|
+
"sw": "Kiswahili",
|
|
85
|
+
"tl": "Filipino",
|
|
86
|
+
"tg": "Тоҷикӣ",
|
|
87
|
+
"ta": "தமிழ்",
|
|
88
|
+
"te": "తెలుగు",
|
|
89
|
+
"tk": "Türkmen",
|
|
90
|
+
"ur": "اردو",
|
|
91
|
+
"uz": "O'zbek",
|
|
92
|
+
"cy": "Cymraeg",
|
|
93
|
+
"xh": "isiXhosa",
|
|
94
|
+
"yi": "ייִדיש",
|
|
95
|
+
"yo": "Yorùbá",
|
|
96
|
+
"zu": "isiZulu",
|
|
97
|
+
"kl": "Kalaallisut",
|
|
98
|
+
"fo": "Føroyskt",
|
|
99
|
+
"ln": "Lingála",
|
|
100
|
+
"mi": "Māori",
|
|
101
|
+
"mr": "मराठी",
|
|
102
|
+
"my": "မြန်မာ",
|
|
103
|
+
"se": "Sámegiella",
|
|
104
|
+
"ug": "ئۇيغۇرچە",
|
|
105
|
+
"qu": "Runa Simi",
|
|
106
|
+
"aa": "Afar",
|
|
107
|
+
"ab": "Аҧсуа",
|
|
108
|
+
"ae": "Avestan",
|
|
109
|
+
"ak": "Akan",
|
|
110
|
+
"an": "Aragonés",
|
|
111
|
+
"as": "অসমীয়া",
|
|
112
|
+
"av": "Авар",
|
|
113
|
+
"ay": "Aymar aru",
|
|
114
|
+
"ba": "Башҡортса",
|
|
115
|
+
"bh": "भोजपुरी",
|
|
116
|
+
"bi": "Bislama",
|
|
117
|
+
"bm": "Bamanankan",
|
|
118
|
+
"bo": "བོད་སྐད་",
|
|
119
|
+
"br": "Brezhoneg",
|
|
120
|
+
"ce": "Нохчийн",
|
|
121
|
+
"ch": "Chamoru",
|
|
122
|
+
"cr": "ᓀᐦᐃᔭᐍᐏᐣ",
|
|
123
|
+
"cu": "Црькъвьнословѣньскъ",
|
|
124
|
+
"cv": "Чӑвашла",
|
|
125
|
+
"dv": "ދިވެހިބަސް",
|
|
126
|
+
"dz": "རྫོང་ཁ",
|
|
127
|
+
"ee": "Eʋegbe",
|
|
128
|
+
"eo": "Esperanto",
|
|
129
|
+
"ff": "Fulah",
|
|
130
|
+
"fy": "Frysk",
|
|
131
|
+
"gd": "Gàidhlig",
|
|
132
|
+
"gn": "Avañe'ẽ",
|
|
133
|
+
"gv": "Gaelg",
|
|
134
|
+
"ho": "Hiri Motu",
|
|
135
|
+
"hz": "Otjiherero",
|
|
136
|
+
"ia": "Interlingua",
|
|
137
|
+
"ie": "Interlingue",
|
|
138
|
+
"ii": "ꆈꌠꉙ",
|
|
139
|
+
"ik": "Iñupiaq",
|
|
140
|
+
"io": "Ido",
|
|
141
|
+
"iu": "ᐃᓄᒃᑎᑐᑦ",
|
|
142
|
+
"jv": "Basa Jawa",
|
|
143
|
+
"ki": "Gikuyu",
|
|
144
|
+
"kr": "Kanuri",
|
|
145
|
+
"ks": "کٲشُر",
|
|
146
|
+
"kw": "Kernewek",
|
|
147
|
+
"lg": "Luganda",
|
|
148
|
+
"li": "Limburgs",
|
|
149
|
+
"lu": "Tshiluba",
|
|
150
|
+
"mh": "Kajin M̧ajeļ",
|
|
151
|
+
"na": "Dorerin Naoero",
|
|
152
|
+
"nb": "Norsk Bokmål",
|
|
153
|
+
"nd": "isiNdebele",
|
|
154
|
+
"ng": "Oshiwambo",
|
|
155
|
+
"nn": "Norsk Nynorsk",
|
|
156
|
+
"nr": "isiNdebele (South)",
|
|
157
|
+
"nv": "Diné Bizaad",
|
|
158
|
+
"oc": "Occitan",
|
|
159
|
+
"oj": "Anishinaabemowin",
|
|
160
|
+
"om": "Afaan Oromoo",
|
|
161
|
+
"or": "ଓଡ଼ିଆ",
|
|
162
|
+
"os": "Ирон",
|
|
163
|
+
"pa": "ਪੰਜਾਬੀ",
|
|
164
|
+
"pi": "𑀅𑀯𑀢",
|
|
165
|
+
"rm": "Rumantsch",
|
|
166
|
+
"rn": "Ikirundi",
|
|
167
|
+
"rw": "Kinyarwanda",
|
|
168
|
+
"sa": "संस्कृतम्",
|
|
169
|
+
"sc": "Sardu",
|
|
170
|
+
"sg": "Sängö",
|
|
171
|
+
"ss": "SiSwati",
|
|
172
|
+
"st": "Sesotho",
|
|
173
|
+
"ti": "ትግርኛ",
|
|
174
|
+
"tn": "Setswana",
|
|
175
|
+
"to": "Faka Tonga",
|
|
176
|
+
"ts": "Xitsonga",
|
|
177
|
+
"tt": "Татарча",
|
|
178
|
+
"tw": "Twi",
|
|
179
|
+
"ty": "Reo Tahiti",
|
|
180
|
+
"ve": "Tshivenḓa",
|
|
181
|
+
"vo": "Volapük",
|
|
182
|
+
"wa": "Walon",
|
|
183
|
+
"wo": "Wolof",
|
|
184
|
+
"za": "Saɯ cueŋƅ"
|
|
185
|
+
};
|
|
186
|
+
//# sourceMappingURL=languages-display-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages-display-names.js","sourceRoot":"","sources":["../../src/languages-display-names.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { GlobalThisSupportedLanguage, VeloGlobalsSiteLanguage, Language } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Gets an array of all available languages as defined in ML.
|
|
4
|
+
*
|
|
5
|
+
* Provides an array of all the available languages as defined in ML. Array of Language object.
|
|
6
|
+
* Supports URLs for sites hosted outside Wix.
|
|
7
|
+
*
|
|
8
|
+
* @returns Array of Language objects, or empty array if not available
|
|
9
|
+
*
|
|
10
|
+
* @example Get available languages
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { listSupportedLanguages } from '@wix/site';
|
|
13
|
+
*
|
|
14
|
+
* const languages = listSupportedLanguages();
|
|
15
|
+
* console.log('Available languages:', languages);
|
|
16
|
+
* // [
|
|
17
|
+
* // {
|
|
18
|
+
* // id: "en",
|
|
19
|
+
* // displayName: "English",
|
|
20
|
+
* // regionalFormat: "en-US",
|
|
21
|
+
* // URL: "https://mysite.com/en",
|
|
22
|
+
* // primary: true
|
|
23
|
+
* // },
|
|
24
|
+
* // {
|
|
25
|
+
* // id: "fr",
|
|
26
|
+
* // displayName: "Français",
|
|
27
|
+
* // regionalFormat: "fr-FR",
|
|
28
|
+
* // URL: "https://mysite.com/fr",
|
|
29
|
+
* // primary: false
|
|
30
|
+
* // }
|
|
31
|
+
* // ]
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function listSupportedLanguages(): Language[];
|
|
35
|
+
export declare function buildDisplayName(language: VeloGlobalsSiteLanguage | GlobalThisSupportedLanguage): string | undefined;
|
|
36
|
+
export declare function buildUrlForLanguage(language: VeloGlobalsSiteLanguage | GlobalThisSupportedLanguage, cleanUrl: string): string | undefined;
|
|
37
|
+
//# sourceMappingURL=multilingual.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multilingual.d.ts","sourceRoot":"","sources":["../../src/multilingual.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,QAAQ,EAET,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,sBAAsB,IAAI,QAAQ,EAAE,CASnD;AAoED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,2BAA2B,GAAG,MAAM,GAAG,SAAS,CAapH;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,2BAA2B,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA0BzI"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listSupportedLanguages = listSupportedLanguages;
|
|
4
|
+
exports.buildDisplayName = buildDisplayName;
|
|
5
|
+
exports.buildUrlForLanguage = buildUrlForLanguage;
|
|
6
|
+
const types_js_1 = require("./types.js");
|
|
7
|
+
const languages_display_names_js_1 = require("./languages-display-names.js");
|
|
8
|
+
const headless_localization_utils_1 = require("@wix/headless-localization-utils");
|
|
9
|
+
/**
|
|
10
|
+
* Gets an array of all available languages as defined in ML.
|
|
11
|
+
*
|
|
12
|
+
* Provides an array of all the available languages as defined in ML. Array of Language object.
|
|
13
|
+
* Supports URLs for sites hosted outside Wix.
|
|
14
|
+
*
|
|
15
|
+
* @returns Array of Language objects, or empty array if not available
|
|
16
|
+
*
|
|
17
|
+
* @example Get available languages
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import { listSupportedLanguages } from '@wix/site';
|
|
20
|
+
*
|
|
21
|
+
* const languages = listSupportedLanguages();
|
|
22
|
+
* console.log('Available languages:', languages);
|
|
23
|
+
* // [
|
|
24
|
+
* // {
|
|
25
|
+
* // id: "en",
|
|
26
|
+
* // displayName: "English",
|
|
27
|
+
* // regionalFormat: "en-US",
|
|
28
|
+
* // URL: "https://mysite.com/en",
|
|
29
|
+
* // primary: true
|
|
30
|
+
* // },
|
|
31
|
+
* // {
|
|
32
|
+
* // id: "fr",
|
|
33
|
+
* // displayName: "Français",
|
|
34
|
+
* // regionalFormat: "fr-FR",
|
|
35
|
+
* // URL: "https://mysite.com/fr",
|
|
36
|
+
* // primary: false
|
|
37
|
+
* // }
|
|
38
|
+
* // ]
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
function listSupportedLanguages() {
|
|
42
|
+
const multilingualObject = getMultilingualObject();
|
|
43
|
+
if (!multilingualObject) {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
const languages = getLanguages(multilingualObject);
|
|
47
|
+
return languages;
|
|
48
|
+
}
|
|
49
|
+
function getMultilingualObject() {
|
|
50
|
+
const maybeMultilingualVeloObject =
|
|
51
|
+
// @ts-expect-error - ignoring globals type error
|
|
52
|
+
typeof globals !== "undefined"
|
|
53
|
+
? // @ts-expect-error - ignoring globals type error
|
|
54
|
+
globals?.$ns?.["wix-window"]?.multilingual
|
|
55
|
+
: undefined;
|
|
56
|
+
const maybeMultilingualWindowObject = typeof window !== "undefined" ? window?.essentials?.multilingual : undefined;
|
|
57
|
+
return (maybeMultilingualVeloObject ?? maybeMultilingualWindowObject ?? globalThis?.__wix_site_metadata__?.multilingual);
|
|
58
|
+
}
|
|
59
|
+
function getLanguages(multilingualObject) {
|
|
60
|
+
try {
|
|
61
|
+
// GlobalThisSupportedLanguage
|
|
62
|
+
if (multilingualObject?.supportedLanguages?.length) {
|
|
63
|
+
const supportedLanguages = multilingualObject.supportedLanguages;
|
|
64
|
+
const availableLanguageCodes = supportedLanguages.map(lang => lang.languageCode).filter(Boolean);
|
|
65
|
+
const cleanUrl = cleanCurrentUrl(availableLanguageCodes);
|
|
66
|
+
return supportedLanguages.map((language) => {
|
|
67
|
+
return {
|
|
68
|
+
id: language.languageCode,
|
|
69
|
+
displayName: buildDisplayName(language),
|
|
70
|
+
regionalFormat: [
|
|
71
|
+
language.locale?.languageCode,
|
|
72
|
+
language.locale?.country,
|
|
73
|
+
]
|
|
74
|
+
.filter(Boolean)
|
|
75
|
+
.join("-"),
|
|
76
|
+
url: buildUrlForLanguage(language, cleanUrl),
|
|
77
|
+
primary: language.isPrimary,
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
// VeloGlobalsSiteLanguage
|
|
82
|
+
else if (multilingualObject?.siteLanguages?.length) {
|
|
83
|
+
const siteLanguages = multilingualObject.siteLanguages;
|
|
84
|
+
const availableLanguageCodes = siteLanguages.map(lang => lang.languageCode).filter(Boolean);
|
|
85
|
+
const cleanUrl = cleanCurrentUrl(availableLanguageCodes);
|
|
86
|
+
return siteLanguages.map((language) => {
|
|
87
|
+
return {
|
|
88
|
+
id: language.languageCode,
|
|
89
|
+
displayName: buildDisplayName(language),
|
|
90
|
+
regionalFormat: language.locale,
|
|
91
|
+
url: buildUrlForLanguage(language, cleanUrl),
|
|
92
|
+
primary: language.isPrimaryLanguage,
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.warn("[Multilingual Manager] listSupportedLanguages failed", error);
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
console.warn("[Multilingual Manager] listSupportedLanguages is not available");
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
function buildDisplayName(language) {
|
|
105
|
+
const staticDisplayName = languages_display_names_js_1.languagesDisplayNames[language.languageCode];
|
|
106
|
+
if (staticDisplayName) {
|
|
107
|
+
return staticDisplayName;
|
|
108
|
+
}
|
|
109
|
+
const dynamicDisplayName = language.name ?? language.countryCode;
|
|
110
|
+
if (dynamicDisplayName) {
|
|
111
|
+
return dynamicDisplayName;
|
|
112
|
+
}
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
function buildUrlForLanguage(language, cleanUrl) {
|
|
116
|
+
// If language already has a URL, or we don't have the necessary data, return as is
|
|
117
|
+
if (language.url || typeof window === "undefined" || !window.location.href || !language.resolutionMethod) {
|
|
118
|
+
return language.url;
|
|
119
|
+
}
|
|
120
|
+
const targetLangCode = language.languageCode;
|
|
121
|
+
if (!targetLangCode) {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
try {
|
|
125
|
+
return (0, headless_localization_utils_1.applyLanguageToUrl)(cleanUrl, {
|
|
126
|
+
languageCode: language.languageCode,
|
|
127
|
+
countryCode: language.countryCode,
|
|
128
|
+
resolutionMethod: toResolutionMethodEnum(language.resolutionMethod),
|
|
129
|
+
locale: {
|
|
130
|
+
languageCode: language.languageCode,
|
|
131
|
+
country: language.countryCode,
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
console.warn("[Multilingual Manager] buildUrlForLanguage failed", error);
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function toResolutionMethodEnum(resolutionMethod) {
|
|
141
|
+
switch (resolutionMethod) {
|
|
142
|
+
case "QUERY_PARAM":
|
|
143
|
+
case "QueryParam":
|
|
144
|
+
return types_js_1.ResolutionMethod.QUERY_PARAM;
|
|
145
|
+
case "SUBDOMAIN":
|
|
146
|
+
case "Subdomain":
|
|
147
|
+
return types_js_1.ResolutionMethod.SUBDOMAIN;
|
|
148
|
+
case "SUBDIRECTORY":
|
|
149
|
+
case "Subdirectory":
|
|
150
|
+
return types_js_1.ResolutionMethod.SUBDIRECTORY;
|
|
151
|
+
default:
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function cleanCurrentUrl(supportedLanguageCodes) {
|
|
156
|
+
const currentUrl = typeof window !== "undefined" && window.location?.href ? window.location.href : "";
|
|
157
|
+
try {
|
|
158
|
+
return (0, headless_localization_utils_1.clearLanguageFromUrl)(currentUrl, supportedLanguageCodes);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
// If clearLanguageFromUrl fails (e.g., invalid URL), just return the current URL
|
|
162
|
+
console.warn("[Multilingual Manager] cleanCurrentUrl failed", error);
|
|
163
|
+
return currentUrl;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=multilingual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multilingual.js","sourceRoot":"","sources":["../../src/multilingual.ts"],"names":[],"mappings":"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"}
|