@ovineko/spa-guard 0.0.2-alpha-1 → 0.0.4
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 +22 -173
- package/dist/ForceRetryError-BWLv3UVK.d.mts +6 -0
- package/dist/_internal.d.ts +149 -20
- package/dist/_internal.js +113 -170
- package/dist/chunk-CfYAbeIz.mjs +13 -0
- package/dist/common/index.d.ts +29 -9
- package/dist/common/index.js +47 -83
- package/dist/errorDispatchers-Cl_pa0DT.mjs +105 -0
- package/dist/i18n/index.d.ts +2 -21
- package/dist/i18n/index.js +344 -341
- package/dist/index-DL8CfPXg.d.mts +26 -0
- package/dist/index-rPxPv6iu.d.mts +16 -0
- package/dist/logger-Cp1Eyk6S.mjs +534 -0
- package/dist/retryOrchestrator-DNGIHV2M.mjs +758 -0
- package/dist/retryOrchestrator-mn9XcIVu.d.mts +257 -0
- package/dist/runtime/debug/index.d.ts +6 -4
- package/dist/runtime/debug/index.js +218 -238
- package/dist/runtime/index.d.ts +66 -8
- package/dist/runtime/index.js +279 -367
- package/dist/schema/index.d.ts +2 -13
- package/dist/schema/index.js +1 -0
- package/dist/schema/parse.d.ts +6 -2
- package/dist/schema/parse.js +29 -44
- package/dist/spinner-BbZVKZ-6.mjs +60 -0
- package/dist/spinner-X23gI09z.d.mts +37 -0
- package/dist/state-I20jENMD.mjs +93 -0
- package/dist/types-DrN8pgyc.d.mts +107 -0
- package/package.json +1 -4
- package/dist/chunk-3UJ67DPX.js +0 -98
- package/dist/chunk-GE63YJOT.js +0 -865
- package/dist/chunk-MLKGABMK.js +0 -9
- package/dist/chunk-PERG4557.js +0 -74
- package/dist/chunk-VZ2DLGXX.js +0 -111
- package/dist/chunk-XIFXSNSD.js +0 -678
- package/dist/common/checkVersion.d.ts +0 -5
- package/dist/common/constants.d.ts +0 -14
- package/dist/common/errors/BeaconError.d.ts +0 -12
- package/dist/common/errors/ForceRetryError.d.ts +0 -5
- package/dist/common/events/index.d.ts +0 -2
- package/dist/common/events/internal.d.ts +0 -13
- package/dist/common/events/types.d.ts +0 -104
- package/dist/common/fallbackRendering.d.ts +0 -23
- package/dist/common/fallbackState.d.ts +0 -3
- package/dist/common/handleErrorWithSpaGuard.d.ts +0 -18
- package/dist/common/html.generated.d.ts +0 -3
- package/dist/common/i18n.d.ts +0 -23
- package/dist/common/isChunkError.d.ts +0 -1
- package/dist/common/isStaticAssetError.d.ts +0 -3
- package/dist/common/lastReloadTime.d.ts +0 -17
- package/dist/common/listen/index.d.ts +0 -1
- package/dist/common/listen/internal.d.ts +0 -2
- package/dist/common/log.d.ts +0 -1
- package/dist/common/logger.d.ts +0 -30
- package/dist/common/options.d.ts +0 -182
- package/dist/common/parseVersion.d.ts +0 -9
- package/dist/common/retryImport.d.ts +0 -43
- package/dist/common/retryOrchestrator.d.ts +0 -35
- package/dist/common/retryState.d.ts +0 -11
- package/dist/common/sendBeacon.d.ts +0 -2
- package/dist/common/serializeError.d.ts +0 -1
- package/dist/common/shouldIgnore.d.ts +0 -13
- package/dist/common/spinner.d.ts +0 -8
- package/dist/common/staticAssetRecovery.d.ts +0 -2
- package/dist/i18n/translations.d.ts +0 -2
- package/dist/runtime/debug/errorDispatchers.d.ts +0 -63
- package/dist/runtime/recommendedSetup.d.ts +0 -36
- package/dist/runtime/state.d.ts +0 -20
package/dist/i18n/index.js
CHANGED
|
@@ -1,350 +1,353 @@
|
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
tryAgain: "\u91CD\u8BD5"
|
|
311
|
-
}
|
|
1
|
+
//#region src/i18n/translations.ts
|
|
2
|
+
const translations = {
|
|
3
|
+
ar: {
|
|
4
|
+
heading: "حدث خطأ ما",
|
|
5
|
+
loading: "...جارٍ التحميل",
|
|
6
|
+
message: "يرجى تحديث الصفحة للمتابعة",
|
|
7
|
+
reload: "إعادة تحميل",
|
|
8
|
+
retrying: "محاولة إعادة",
|
|
9
|
+
rtl: true,
|
|
10
|
+
tryAgain: "حاول مرة أخرى"
|
|
11
|
+
},
|
|
12
|
+
az: {
|
|
13
|
+
heading: "Nəsə səhv getdi",
|
|
14
|
+
loading: "Yüklənir...",
|
|
15
|
+
message: "Davam etmək üçün səhifəni yeniləyin",
|
|
16
|
+
reload: "Səhifəni yenidən yüklə",
|
|
17
|
+
retrying: "Yenidən cəhd",
|
|
18
|
+
tryAgain: "Yenidən cərəb edin"
|
|
19
|
+
},
|
|
20
|
+
ca: {
|
|
21
|
+
heading: "Alguna cosa ha anat malament",
|
|
22
|
+
loading: "Carregant...",
|
|
23
|
+
message: "Si us plau, actualitzeu la pàgina per continuar",
|
|
24
|
+
reload: "Recarrega la pàgina",
|
|
25
|
+
retrying: "Intent de reintent",
|
|
26
|
+
tryAgain: "Torna-ho a provar"
|
|
27
|
+
},
|
|
28
|
+
cs: {
|
|
29
|
+
heading: "Něco se pokazilo",
|
|
30
|
+
loading: "Načítání...",
|
|
31
|
+
message: "Obnovte stránku prosím pro pokračování",
|
|
32
|
+
reload: "Znovu načíst stránku",
|
|
33
|
+
retrying: "Pokus o opakování",
|
|
34
|
+
tryAgain: "Zkusit znovu"
|
|
35
|
+
},
|
|
36
|
+
da: {
|
|
37
|
+
heading: "Noget gik galt",
|
|
38
|
+
loading: "Indlæser...",
|
|
39
|
+
message: "Opdater venligst siden for at fortsætte",
|
|
40
|
+
reload: "Genindlæs side",
|
|
41
|
+
retrying: "Forsøg igen",
|
|
42
|
+
tryAgain: "Prøv igen"
|
|
43
|
+
},
|
|
44
|
+
de: {
|
|
45
|
+
heading: "Etwas ist schief gelaufen",
|
|
46
|
+
loading: "Lädt...",
|
|
47
|
+
message: "Bitte aktualisieren Sie die Seite, um fortzufahren",
|
|
48
|
+
reload: "Seite neu laden",
|
|
49
|
+
retrying: "Wiederholungsversuch",
|
|
50
|
+
tryAgain: "Erneut versuchen"
|
|
51
|
+
},
|
|
52
|
+
el: {
|
|
53
|
+
heading: "Κάτι πήγε στραβά",
|
|
54
|
+
loading: "Φόρτωση...",
|
|
55
|
+
message: "Παρακαλώ ανανεώστε τη σελίδα για να συνεχίσετε",
|
|
56
|
+
reload: "Επαναφόρτωση σελίδας",
|
|
57
|
+
retrying: "Προσπάθεια επανάληψης",
|
|
58
|
+
tryAgain: "Δοκιμάστε ξανά"
|
|
59
|
+
},
|
|
60
|
+
en: {
|
|
61
|
+
heading: "Something went wrong",
|
|
62
|
+
loading: "Loading...",
|
|
63
|
+
message: "Please refresh the page to continue",
|
|
64
|
+
reload: "Reload page",
|
|
65
|
+
retrying: "Retry attempt",
|
|
66
|
+
tryAgain: "Try again"
|
|
67
|
+
},
|
|
68
|
+
es: {
|
|
69
|
+
heading: "Algo salió mal",
|
|
70
|
+
loading: "Cargando...",
|
|
71
|
+
message: "Por favor, actualice la página para continuar",
|
|
72
|
+
reload: "Recargar página",
|
|
73
|
+
retrying: "Intento de reintento",
|
|
74
|
+
tryAgain: "Intentar de nuevo"
|
|
75
|
+
},
|
|
76
|
+
eu: {
|
|
77
|
+
heading: "Zerbait gaizki joan da",
|
|
78
|
+
loading: "Kargatzen...",
|
|
79
|
+
message: "Mesedez, freskatu orria jarraitzeko",
|
|
80
|
+
reload: "Orria berritu",
|
|
81
|
+
retrying: "Saiakera berri",
|
|
82
|
+
tryAgain: "Saiatu berriro"
|
|
83
|
+
},
|
|
84
|
+
fa: {
|
|
85
|
+
heading: "مشکلی پیش آمد",
|
|
86
|
+
loading: "در حال بارگذاری...",
|
|
87
|
+
message: "لطفاً صفحه را برای ادامه تازه کنید",
|
|
88
|
+
reload: "بارگذاری مجدد",
|
|
89
|
+
retrying: "تلاش دوباره",
|
|
90
|
+
rtl: true,
|
|
91
|
+
tryAgain: "دوباره امتحان کنید"
|
|
92
|
+
},
|
|
93
|
+
fi: {
|
|
94
|
+
heading: "Jokin meni pieleen",
|
|
95
|
+
loading: "Ladataan...",
|
|
96
|
+
message: "Päivitä sivu jatkaaksesi",
|
|
97
|
+
reload: "Lataa sivu uudelleen",
|
|
98
|
+
retrying: "Uudelleenyritys",
|
|
99
|
+
tryAgain: "Yritä uudelleen"
|
|
100
|
+
},
|
|
101
|
+
fr: {
|
|
102
|
+
heading: "Quelque chose s'est mal passé",
|
|
103
|
+
loading: "Chargement...",
|
|
104
|
+
message: "Veuillez actualiser la page pour continuer",
|
|
105
|
+
reload: "Recharger la page",
|
|
106
|
+
retrying: "Tentative de nouvel essai",
|
|
107
|
+
tryAgain: "Réessayer"
|
|
108
|
+
},
|
|
109
|
+
he: {
|
|
110
|
+
heading: "משהו השתבש",
|
|
111
|
+
loading: "...טוען",
|
|
112
|
+
message: "אנא רענן את הדף כדי להמשיך",
|
|
113
|
+
reload: "טען מחדש",
|
|
114
|
+
retrying: "ניסיון חוזר",
|
|
115
|
+
rtl: true,
|
|
116
|
+
tryAgain: "נסה שוב"
|
|
117
|
+
},
|
|
118
|
+
hr: {
|
|
119
|
+
heading: "Nešto je pošlo po zlu",
|
|
120
|
+
loading: "Učitavanje...",
|
|
121
|
+
message: "Molimo osvježite stranicu da biste nastavili",
|
|
122
|
+
reload: "Ponovno učitaj stranicu",
|
|
123
|
+
retrying: "Pokušaj ponovnog pokušaja",
|
|
124
|
+
tryAgain: "Pokušaj ponovo"
|
|
125
|
+
},
|
|
126
|
+
hu: {
|
|
127
|
+
heading: "Valami hiba történt",
|
|
128
|
+
loading: "Betöltés...",
|
|
129
|
+
message: "Kérjük, frissítse az oldalt a folytatáshoz",
|
|
130
|
+
reload: "Oldal újratöltése",
|
|
131
|
+
retrying: "Újrapróbálkozási kísérlet",
|
|
132
|
+
tryAgain: "Próbálja újra"
|
|
133
|
+
},
|
|
134
|
+
id: {
|
|
135
|
+
heading: "Terjadi kesalahan",
|
|
136
|
+
loading: "Memuat...",
|
|
137
|
+
message: "Silakan segarkan halaman untuk melanjutkan",
|
|
138
|
+
reload: "Muat ulang halaman",
|
|
139
|
+
retrying: "Percobaan ulang",
|
|
140
|
+
tryAgain: "Coba lagi"
|
|
141
|
+
},
|
|
142
|
+
it: {
|
|
143
|
+
heading: "Qualcosa è andato storto",
|
|
144
|
+
loading: "Caricamento...",
|
|
145
|
+
message: "Aggiorna la pagina per continuare",
|
|
146
|
+
reload: "Ricarica pagina",
|
|
147
|
+
retrying: "Tentativo di ripetizione",
|
|
148
|
+
tryAgain: "Riprova"
|
|
149
|
+
},
|
|
150
|
+
ja: {
|
|
151
|
+
heading: "問題が発生しました",
|
|
152
|
+
loading: "読み込み中...",
|
|
153
|
+
message: "ページを更新してください",
|
|
154
|
+
reload: "再読み込み",
|
|
155
|
+
retrying: "リトライ",
|
|
156
|
+
tryAgain: "もう一度試す"
|
|
157
|
+
},
|
|
158
|
+
ka: {
|
|
159
|
+
heading: "რაღაც არასწორად მოხდა",
|
|
160
|
+
loading: "იტვირთება...",
|
|
161
|
+
message: "გთხოვთ განაახლოთ გვერდი გასაგრძელებლად",
|
|
162
|
+
reload: "გვერდის გადატვირთვა",
|
|
163
|
+
retrying: "გამეორების მცდელობა",
|
|
164
|
+
tryAgain: "კიდევ სცადეთ"
|
|
165
|
+
},
|
|
166
|
+
kk: {
|
|
167
|
+
heading: "Бірдеңе дұрыс болмады",
|
|
168
|
+
loading: "Жүктелуде...",
|
|
169
|
+
message: "Жалғастыру үшін бетті жаңартыңыз",
|
|
170
|
+
reload: "Бетті қайта жүктеу",
|
|
171
|
+
retrying: "Қайталау әрекеті",
|
|
172
|
+
tryAgain: "Қайталап көріңіз"
|
|
173
|
+
},
|
|
174
|
+
ko: {
|
|
175
|
+
heading: "문제가 발생했습니다",
|
|
176
|
+
loading: "로딩 중...",
|
|
177
|
+
message: "페이지를 새로고침해 주세요",
|
|
178
|
+
reload: "새로고침",
|
|
179
|
+
retrying: "재시도",
|
|
180
|
+
tryAgain: "다시 시도"
|
|
181
|
+
},
|
|
182
|
+
ky: {
|
|
183
|
+
heading: "Бир нерсе туура эмес болду",
|
|
184
|
+
loading: "Жүктөлүүдө...",
|
|
185
|
+
message: "Улантуу үчүн баракты жаңыртыңыз",
|
|
186
|
+
reload: "Баракты кайра жүктөө",
|
|
187
|
+
retrying: "Кайталоо аракети",
|
|
188
|
+
tryAgain: "Кайра аракет кылыңыз"
|
|
189
|
+
},
|
|
190
|
+
lt: {
|
|
191
|
+
heading: "Kažkas nutiko ne taip",
|
|
192
|
+
loading: "Įkeliama...",
|
|
193
|
+
message: "Prašome atnaujinti puslapį, kad tęstumėte",
|
|
194
|
+
reload: "Iš naujo įkelti puslapį",
|
|
195
|
+
retrying: "Pakartotinis bandymas",
|
|
196
|
+
tryAgain: "Bandyti dar kartą"
|
|
197
|
+
},
|
|
198
|
+
lv: {
|
|
199
|
+
heading: "Kaut kas nogāja greizi",
|
|
200
|
+
loading: "Ielādē...",
|
|
201
|
+
message: "Lūdzu, atsvaidziniet lapu, lai turpinātu",
|
|
202
|
+
reload: "Pārlādēt lapu",
|
|
203
|
+
retrying: "Atkārtots mēģinājums",
|
|
204
|
+
tryAgain: "Mēģiniet vēlreiz"
|
|
205
|
+
},
|
|
206
|
+
nl: {
|
|
207
|
+
heading: "Er is iets misgegaan",
|
|
208
|
+
loading: "Laden...",
|
|
209
|
+
message: "Ververs de pagina om door te gaan",
|
|
210
|
+
reload: "Pagina herladen",
|
|
211
|
+
retrying: "Opnieuw proberen",
|
|
212
|
+
tryAgain: "Probeer opnieuw"
|
|
213
|
+
},
|
|
214
|
+
no: {
|
|
215
|
+
heading: "Noe gikk galt",
|
|
216
|
+
loading: "Laster...",
|
|
217
|
+
message: "Vennligst oppdater siden for å fortsette",
|
|
218
|
+
reload: "Last inn siden på nytt",
|
|
219
|
+
retrying: "Nytt forsøk",
|
|
220
|
+
tryAgain: "Prøv igjen"
|
|
221
|
+
},
|
|
222
|
+
pl: {
|
|
223
|
+
heading: "Coś poszło nie tak",
|
|
224
|
+
loading: "Ładowanie...",
|
|
225
|
+
message: "Odśwież stronę, aby kontynuować",
|
|
226
|
+
reload: "Przeładuj stronę",
|
|
227
|
+
retrying: "Próba ponowienia",
|
|
228
|
+
tryAgain: "Spróbuj ponownie"
|
|
229
|
+
},
|
|
230
|
+
pt: {
|
|
231
|
+
heading: "Algo deu errado",
|
|
232
|
+
loading: "Carregando...",
|
|
233
|
+
message: "Por favor, atualize a página para continuar",
|
|
234
|
+
reload: "Recarregar página",
|
|
235
|
+
retrying: "Tentativa de nova tentativa",
|
|
236
|
+
tryAgain: "Tentar novamente"
|
|
237
|
+
},
|
|
238
|
+
ro: {
|
|
239
|
+
heading: "Ceva nu a mers bine",
|
|
240
|
+
loading: "Se încarcă...",
|
|
241
|
+
message: "Vă rugăm să reîmprospătați pagina pentru a continua",
|
|
242
|
+
reload: "Reîncarcă pagina",
|
|
243
|
+
retrying: "Încercare de reîncercare",
|
|
244
|
+
tryAgain: "Încearcă din nou"
|
|
245
|
+
},
|
|
246
|
+
ru: {
|
|
247
|
+
heading: "Что-то пошло не так",
|
|
248
|
+
loading: "Загрузка...",
|
|
249
|
+
message: "Пожалуйста, обновите страницу, чтобы продолжить",
|
|
250
|
+
reload: "Перезагрузить страницу",
|
|
251
|
+
retrying: "Повторная попытка",
|
|
252
|
+
tryAgain: "Попробовать снова"
|
|
253
|
+
},
|
|
254
|
+
sk: {
|
|
255
|
+
heading: "Niečo sa pokazilo",
|
|
256
|
+
loading: "Načítava sa...",
|
|
257
|
+
message: "Obnovte stránku prosím pre pokračovanie",
|
|
258
|
+
reload: "Znovu načítať stránku",
|
|
259
|
+
retrying: "Pokus o opakovanie",
|
|
260
|
+
tryAgain: "Skúsiť znova"
|
|
261
|
+
},
|
|
262
|
+
sl: {
|
|
263
|
+
heading: "Nekaj je šlo narobe",
|
|
264
|
+
loading: "Nalaganje...",
|
|
265
|
+
message: "Prosimo, osvežite stran za nadaljevanje",
|
|
266
|
+
reload: "Ponovno naloži stran",
|
|
267
|
+
retrying: "Poskus ponovnega poskusa",
|
|
268
|
+
tryAgain: "Poskusi znova"
|
|
269
|
+
},
|
|
270
|
+
sv: {
|
|
271
|
+
heading: "Något gick fel",
|
|
272
|
+
loading: "Laddar...",
|
|
273
|
+
message: "Uppdatera sidan för att fortsätta",
|
|
274
|
+
reload: "Ladda om sidan",
|
|
275
|
+
retrying: "Nytt försök",
|
|
276
|
+
tryAgain: "Försök igen"
|
|
277
|
+
},
|
|
278
|
+
th: {
|
|
279
|
+
heading: "เกิดข้อผิดพลาด",
|
|
280
|
+
loading: "กำลังโหลด...",
|
|
281
|
+
message: "กรุณารีเฟรชหน้าเพื่อดำเนินการต่อ",
|
|
282
|
+
reload: "โหลดหน้าใหม่",
|
|
283
|
+
retrying: "ความพยายามลองใหม่",
|
|
284
|
+
tryAgain: "ลองอีกครั้ง"
|
|
285
|
+
},
|
|
286
|
+
tr: {
|
|
287
|
+
heading: "Bir şeyler ters gitti",
|
|
288
|
+
loading: "Yükleniyor...",
|
|
289
|
+
message: "Devam etmek için lütfen sayfayı yenileyin",
|
|
290
|
+
reload: "Sayfayı yeniden yükle",
|
|
291
|
+
retrying: "Yeniden deneme girişimi",
|
|
292
|
+
tryAgain: "Tekrar dene"
|
|
293
|
+
},
|
|
294
|
+
uk: {
|
|
295
|
+
heading: "Щось пішло не так",
|
|
296
|
+
loading: "Завантаження...",
|
|
297
|
+
message: "Будь ласка, оновіть сторінку, щоб продовжити",
|
|
298
|
+
reload: "Перезавантажити сторінку",
|
|
299
|
+
retrying: "Повторна спроба",
|
|
300
|
+
tryAgain: "Спробувати знову"
|
|
301
|
+
},
|
|
302
|
+
zh: {
|
|
303
|
+
heading: "出了点问题",
|
|
304
|
+
loading: "加载中...",
|
|
305
|
+
message: "请刷新页面以继续",
|
|
306
|
+
reload: "重新加载",
|
|
307
|
+
retrying: "重试次数",
|
|
308
|
+
tryAgain: "重试"
|
|
309
|
+
}
|
|
312
310
|
};
|
|
313
|
-
|
|
314
|
-
|
|
311
|
+
//#endregion
|
|
312
|
+
//#region src/i18n/index.ts
|
|
313
|
+
/**
|
|
314
|
+
* Match a language code or Accept-Language header against available translations.
|
|
315
|
+
*
|
|
316
|
+
* - If `input` is undefined, returns `"en"`.
|
|
317
|
+
* - If `input` contains `,` or `;q=`, it's parsed as an Accept-Language header
|
|
318
|
+
* with quality values sorted descending.
|
|
319
|
+
* - Otherwise it's treated as a direct language code.
|
|
320
|
+
*
|
|
321
|
+
* Resolution: exact match → prefix match → `"en"` (or first available if `"en"` not in list).
|
|
322
|
+
*/
|
|
315
323
|
function matchLang(input, available = Object.keys(translations)) {
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
if (input.includes(",") || input.includes(";q=")) {
|
|
320
|
-
return matchAcceptLanguage(input, available);
|
|
321
|
-
}
|
|
322
|
-
return matchSingle(input, available) ?? defaultLang(available);
|
|
324
|
+
if (input === void 0) return defaultLang(available);
|
|
325
|
+
if (input.includes(",") || input.includes(";q=")) return matchAcceptLanguage(input, available);
|
|
326
|
+
return matchSingle(input, available) ?? defaultLang(available);
|
|
323
327
|
}
|
|
324
328
|
function defaultLang(available) {
|
|
325
|
-
|
|
329
|
+
return available.includes("en") ? "en" : available[0] ?? "en";
|
|
326
330
|
}
|
|
327
331
|
function matchAcceptLanguage(header, available) {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
332
|
+
const entries = header.split(",").map((part) => {
|
|
333
|
+
const [lang = "", ...rest] = part.trim().split(";");
|
|
334
|
+
const qMatch = rest.join(";").match(/q\s*=\s*([\d.]+)/);
|
|
335
|
+
const q = qMatch?.[1] ? Number.parseFloat(qMatch[1]) : 1;
|
|
336
|
+
return {
|
|
337
|
+
lang: lang.trim(),
|
|
338
|
+
q
|
|
339
|
+
};
|
|
340
|
+
}).sort((a, b) => b.q - a.q);
|
|
341
|
+
for (const { lang } of entries) {
|
|
342
|
+
const match = matchSingle(lang, available);
|
|
343
|
+
if (match) return match;
|
|
344
|
+
}
|
|
345
|
+
return defaultLang(available);
|
|
341
346
|
}
|
|
342
347
|
function matchSingle(code, available) {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
348
|
+
const lower = code.toLowerCase();
|
|
349
|
+
const prefix = lower.split("-")[0];
|
|
350
|
+
return available.find((a) => a.toLowerCase() === lower) ?? available.find((a) => a.toLowerCase() === prefix) ?? available.find((a) => a.toLowerCase().startsWith(prefix + "-"));
|
|
346
351
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
translations
|
|
350
|
-
};
|
|
352
|
+
//#endregion
|
|
353
|
+
export { matchLang, translations };
|