@sil/data 0.1.10 → 0.1.12

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.
@@ -0,0 +1,646 @@
1
+ declare const _default: {
2
+ countries: {
3
+ AD: {
4
+ name: string;
5
+ };
6
+ AE: {
7
+ name: string;
8
+ };
9
+ AF: {
10
+ name: string;
11
+ };
12
+ AG: {
13
+ name: string;
14
+ };
15
+ AL: {
16
+ name: string;
17
+ };
18
+ AM: {
19
+ name: string;
20
+ };
21
+ AO: {
22
+ name: string;
23
+ };
24
+ AR: {
25
+ name: string;
26
+ };
27
+ AT: {
28
+ name: string;
29
+ };
30
+ AU: {
31
+ name: string;
32
+ };
33
+ AZ: {
34
+ name: string;
35
+ };
36
+ BA: {
37
+ name: string;
38
+ };
39
+ BB: {
40
+ name: string;
41
+ };
42
+ BD: {
43
+ name: string;
44
+ };
45
+ BE: {
46
+ name: string;
47
+ };
48
+ BF: {
49
+ name: string;
50
+ };
51
+ BG: {
52
+ name: string;
53
+ };
54
+ BH: {
55
+ name: string;
56
+ };
57
+ BI: {
58
+ name: string;
59
+ };
60
+ BJ: {
61
+ name: string;
62
+ };
63
+ BN: {
64
+ name: string;
65
+ };
66
+ BO: {
67
+ name: string;
68
+ };
69
+ BR: {
70
+ name: string;
71
+ };
72
+ BS: {
73
+ name: string;
74
+ };
75
+ BT: {
76
+ name: string;
77
+ };
78
+ BW: {
79
+ name: string;
80
+ };
81
+ BY: {
82
+ name: string;
83
+ };
84
+ BZ: {
85
+ name: string;
86
+ };
87
+ CA: {
88
+ name: string;
89
+ };
90
+ CD: {
91
+ name: string;
92
+ };
93
+ CF: {
94
+ name: string;
95
+ };
96
+ CG: {
97
+ name: string;
98
+ };
99
+ CH: {
100
+ name: string;
101
+ };
102
+ CL: {
103
+ name: string;
104
+ };
105
+ CM: {
106
+ name: string;
107
+ };
108
+ CN: {
109
+ name: string;
110
+ };
111
+ CO: {
112
+ name: string;
113
+ };
114
+ CR: {
115
+ name: string;
116
+ };
117
+ CU: {
118
+ name: string;
119
+ };
120
+ CV: {
121
+ name: string;
122
+ };
123
+ CY: {
124
+ name: string;
125
+ };
126
+ CZ: {
127
+ name: string;
128
+ };
129
+ DE: {
130
+ name: string;
131
+ };
132
+ DJ: {
133
+ name: string;
134
+ };
135
+ DK: {
136
+ name: string;
137
+ };
138
+ DM: {
139
+ name: string;
140
+ };
141
+ DO: {
142
+ name: string;
143
+ };
144
+ DZ: {
145
+ name: string;
146
+ };
147
+ EC: {
148
+ name: string;
149
+ };
150
+ EE: {
151
+ name: string;
152
+ };
153
+ EG: {
154
+ name: string;
155
+ };
156
+ ER: {
157
+ name: string;
158
+ };
159
+ ES: {
160
+ name: string;
161
+ };
162
+ ET: {
163
+ name: string;
164
+ };
165
+ FI: {
166
+ name: string;
167
+ };
168
+ FJ: {
169
+ name: string;
170
+ };
171
+ FM: {
172
+ name: string;
173
+ };
174
+ FR: {
175
+ name: string;
176
+ };
177
+ GA: {
178
+ name: string;
179
+ };
180
+ GB: {
181
+ name: string;
182
+ };
183
+ GD: {
184
+ name: string;
185
+ };
186
+ GE: {
187
+ name: string;
188
+ };
189
+ GH: {
190
+ name: string;
191
+ };
192
+ GM: {
193
+ name: string;
194
+ };
195
+ GN: {
196
+ name: string;
197
+ };
198
+ GQ: {
199
+ name: string;
200
+ };
201
+ GR: {
202
+ name: string;
203
+ };
204
+ GT: {
205
+ name: string;
206
+ };
207
+ GW: {
208
+ name: string;
209
+ };
210
+ GY: {
211
+ name: string;
212
+ };
213
+ HN: {
214
+ name: string;
215
+ };
216
+ HR: {
217
+ name: string;
218
+ };
219
+ HT: {
220
+ name: string;
221
+ };
222
+ HU: {
223
+ name: string;
224
+ };
225
+ ID: {
226
+ name: string;
227
+ };
228
+ IE: {
229
+ name: string;
230
+ };
231
+ IL: {
232
+ name: string;
233
+ };
234
+ IN: {
235
+ name: string;
236
+ };
237
+ IQ: {
238
+ name: string;
239
+ };
240
+ IR: {
241
+ name: string;
242
+ };
243
+ IS: {
244
+ name: string;
245
+ };
246
+ IT: {
247
+ name: string;
248
+ };
249
+ JM: {
250
+ name: string;
251
+ };
252
+ JO: {
253
+ name: string;
254
+ };
255
+ JP: {
256
+ name: string;
257
+ };
258
+ KE: {
259
+ name: string;
260
+ };
261
+ KG: {
262
+ name: string;
263
+ };
264
+ KH: {
265
+ name: string;
266
+ };
267
+ KI: {
268
+ name: string;
269
+ };
270
+ KM: {
271
+ name: string;
272
+ };
273
+ KN: {
274
+ name: string;
275
+ };
276
+ KP: {
277
+ name: string;
278
+ };
279
+ KR: {
280
+ name: string;
281
+ };
282
+ KW: {
283
+ name: string;
284
+ };
285
+ KZ: {
286
+ name: string;
287
+ };
288
+ LA: {
289
+ name: string;
290
+ };
291
+ LB: {
292
+ name: string;
293
+ };
294
+ LC: {
295
+ name: string;
296
+ };
297
+ LI: {
298
+ name: string;
299
+ };
300
+ LK: {
301
+ name: string;
302
+ };
303
+ LR: {
304
+ name: string;
305
+ };
306
+ LS: {
307
+ name: string;
308
+ };
309
+ LT: {
310
+ name: string;
311
+ };
312
+ LU: {
313
+ name: string;
314
+ };
315
+ LV: {
316
+ name: string;
317
+ };
318
+ LY: {
319
+ name: string;
320
+ };
321
+ MA: {
322
+ name: string;
323
+ };
324
+ MC: {
325
+ name: string;
326
+ };
327
+ MD: {
328
+ name: string;
329
+ };
330
+ ME: {
331
+ name: string;
332
+ };
333
+ MG: {
334
+ name: string;
335
+ };
336
+ MH: {
337
+ name: string;
338
+ };
339
+ MK: {
340
+ name: string;
341
+ };
342
+ ML: {
343
+ name: string;
344
+ };
345
+ MM: {
346
+ name: string;
347
+ };
348
+ MN: {
349
+ name: string;
350
+ };
351
+ MR: {
352
+ name: string;
353
+ };
354
+ MT: {
355
+ name: string;
356
+ };
357
+ MU: {
358
+ name: string;
359
+ };
360
+ MV: {
361
+ name: string;
362
+ };
363
+ MW: {
364
+ name: string;
365
+ };
366
+ MX: {
367
+ name: string;
368
+ };
369
+ MY: {
370
+ name: string;
371
+ };
372
+ MZ: {
373
+ name: string;
374
+ };
375
+ NA: {
376
+ name: string;
377
+ };
378
+ NE: {
379
+ name: string;
380
+ };
381
+ NG: {
382
+ name: string;
383
+ };
384
+ NI: {
385
+ name: string;
386
+ };
387
+ NL: {
388
+ name: string;
389
+ };
390
+ NO: {
391
+ name: string;
392
+ };
393
+ NP: {
394
+ name: string;
395
+ };
396
+ NR: {
397
+ name: string;
398
+ };
399
+ NZ: {
400
+ name: string;
401
+ };
402
+ OM: {
403
+ name: string;
404
+ };
405
+ PA: {
406
+ name: string;
407
+ };
408
+ PE: {
409
+ name: string;
410
+ };
411
+ PG: {
412
+ name: string;
413
+ };
414
+ PH: {
415
+ name: string;
416
+ };
417
+ PK: {
418
+ name: string;
419
+ };
420
+ PL: {
421
+ name: string;
422
+ };
423
+ PS: {
424
+ name: string;
425
+ };
426
+ PT: {
427
+ name: string;
428
+ };
429
+ PW: {
430
+ name: string;
431
+ };
432
+ PY: {
433
+ name: string;
434
+ };
435
+ QA: {
436
+ name: string;
437
+ };
438
+ RO: {
439
+ name: string;
440
+ };
441
+ RS: {
442
+ name: string;
443
+ };
444
+ RU: {
445
+ name: string;
446
+ };
447
+ RW: {
448
+ name: string;
449
+ };
450
+ SA: {
451
+ name: string;
452
+ };
453
+ SB: {
454
+ name: string;
455
+ };
456
+ SC: {
457
+ name: string;
458
+ };
459
+ SD: {
460
+ name: string;
461
+ };
462
+ SE: {
463
+ name: string;
464
+ };
465
+ SG: {
466
+ name: string;
467
+ };
468
+ SI: {
469
+ name: string;
470
+ };
471
+ SK: {
472
+ name: string;
473
+ };
474
+ SL: {
475
+ name: string;
476
+ };
477
+ SM: {
478
+ name: string;
479
+ };
480
+ SN: {
481
+ name: string;
482
+ };
483
+ SO: {
484
+ name: string;
485
+ };
486
+ SR: {
487
+ name: string;
488
+ };
489
+ SS: {
490
+ name: string;
491
+ };
492
+ ST: {
493
+ name: string;
494
+ };
495
+ SV: {
496
+ name: string;
497
+ };
498
+ SY: {
499
+ name: string;
500
+ };
501
+ SZ: {
502
+ name: string;
503
+ };
504
+ TD: {
505
+ name: string;
506
+ };
507
+ TG: {
508
+ name: string;
509
+ };
510
+ TH: {
511
+ name: string;
512
+ };
513
+ TJ: {
514
+ name: string;
515
+ };
516
+ TL: {
517
+ name: string;
518
+ };
519
+ TM: {
520
+ name: string;
521
+ };
522
+ TN: {
523
+ name: string;
524
+ };
525
+ TO: {
526
+ name: string;
527
+ };
528
+ TR: {
529
+ name: string;
530
+ };
531
+ TT: {
532
+ name: string;
533
+ };
534
+ TV: {
535
+ name: string;
536
+ };
537
+ TW: {
538
+ name: string;
539
+ };
540
+ TZ: {
541
+ name: string;
542
+ };
543
+ UA: {
544
+ name: string;
545
+ };
546
+ UG: {
547
+ name: string;
548
+ };
549
+ US: {
550
+ name: string;
551
+ };
552
+ UY: {
553
+ name: string;
554
+ };
555
+ UZ: {
556
+ name: string;
557
+ };
558
+ VA: {
559
+ name: string;
560
+ };
561
+ VC: {
562
+ name: string;
563
+ };
564
+ VE: {
565
+ name: string;
566
+ };
567
+ VN: {
568
+ name: string;
569
+ };
570
+ VU: {
571
+ name: string;
572
+ };
573
+ WS: {
574
+ name: string;
575
+ };
576
+ XK: {
577
+ name: string;
578
+ };
579
+ XN: {
580
+ name: string;
581
+ };
582
+ YE: {
583
+ name: string;
584
+ };
585
+ ZA: {
586
+ name: string;
587
+ };
588
+ ZM: {
589
+ name: string;
590
+ };
591
+ ZW: {
592
+ name: string;
593
+ };
594
+ };
595
+ continents: {
596
+ AF: string;
597
+ AN: string;
598
+ AS: string;
599
+ EU: string;
600
+ NA: string;
601
+ OC: string;
602
+ SA: string;
603
+ };
604
+ cities: {
605
+ Beijing: string;
606
+ Shanghai: string;
607
+ Tokyo: string;
608
+ Seoul: string;
609
+ Moscow: string;
610
+ London: string;
611
+ Paris: string;
612
+ "New York": string;
613
+ "New Delhi": string;
614
+ Bangkok: string;
615
+ Singapore: string;
616
+ "Hong Kong": string;
617
+ Taipei: string;
618
+ Osaka: string;
619
+ Cairo: string;
620
+ Vienna: string;
621
+ Athens: string;
622
+ Brussels: string;
623
+ Warsaw: string;
624
+ Prague: string;
625
+ Kyiv: string;
626
+ };
627
+ currencies: {
628
+ USD: string;
629
+ EUR: string;
630
+ GBP: string;
631
+ JPY: string;
632
+ CHF: string;
633
+ CNY: string;
634
+ CAD: string;
635
+ AUD: string;
636
+ HKD: string;
637
+ KRW: string;
638
+ INR: string;
639
+ RUB: string;
640
+ BRL: string;
641
+ SGD: string;
642
+ TWD: string;
643
+ MXN: string;
644
+ };
645
+ };
646
+ export default _default;
@@ -0,0 +1,66 @@
1
+ import type { Country, City, Continent, Currency } from "../types/index.js";
2
+ /**
3
+ * Translation record for a single country.
4
+ */
5
+ export interface CountryTranslation {
6
+ /** Translated country name */
7
+ name: string;
8
+ /** Translated capital city name (optional; omit if same as the English name) */
9
+ capital?: string;
10
+ }
11
+ /**
12
+ * All translations for a single language.
13
+ */
14
+ export interface TranslationMap {
15
+ /** Country translations keyed by ISO 3166-1 alpha-2 code */
16
+ countries: Record<string, CountryTranslation>;
17
+ /** Continent translations keyed by two-letter continent code */
18
+ continents: Record<string, string>;
19
+ /** City name translations keyed by English city name */
20
+ cities: Record<string, string>;
21
+ /** Currency name translations keyed by ISO 4217 code */
22
+ currencies: Record<string, string>;
23
+ }
24
+ /**
25
+ * All supported translation language codes (BCP 47 language tags).
26
+ * English ("en") is the default and is always derived from the source data.
27
+ */
28
+ export type TranslationLanguage = "en" | "ar" | "de" | "es" | "fr" | "hi" | "it" | "ja" | "ko" | "nl" | "pl" | "pt" | "ru" | "tr" | "zh";
29
+ /**
30
+ * Translation data for all supported languages.
31
+ * Each language is defined in its own file under src/data/translations/.
32
+ * English ("en") is intentionally omitted – the source data already contains English strings.
33
+ */
34
+ export declare const translations: Record<string, TranslationMap>;
35
+ /**
36
+ * Return the list of BCP 47 language codes that have translation data.
37
+ * "en" is always included because the source data is in English.
38
+ */
39
+ export declare function getSupportedLanguages(): TranslationLanguage[];
40
+ /**
41
+ * Retrieve the full translation map for a given language code.
42
+ * Returns `undefined` for unsupported languages (including "en", which uses the
43
+ * source data directly).
44
+ */
45
+ export declare function getTranslations(lang: string): TranslationMap | undefined;
46
+ /**
47
+ * Return a shallow copy of `country` with `name` (and optionally `capital`)
48
+ * replaced by the translated values for `lang`.
49
+ * Falls back to the original English values when no translation is found.
50
+ */
51
+ export declare function translateCountry(country: Country, lang: string): Country;
52
+ /**
53
+ * Return a shallow copy of `city` with `name` replaced by the translated value
54
+ * for `lang`. Falls back to the original English name when no translation exists.
55
+ */
56
+ export declare function translateCity(city: City, lang: string): City;
57
+ /**
58
+ * Return a shallow copy of `continent` with `name` replaced by the translated
59
+ * value for `lang`. Falls back to the original English name when no translation exists.
60
+ */
61
+ export declare function translateContinent(continent: Continent, lang: string): Continent;
62
+ /**
63
+ * Return a shallow copy of `currency` with `name` replaced by the translated
64
+ * value for `lang`. Falls back to the original English name when no translation exists.
65
+ */
66
+ export declare function translateCurrency(currency: Currency, lang: string): Currency;
@@ -16,6 +16,8 @@
16
16
  * ```
17
17
  */
18
18
  export type { Country, PhoneCountryCode, City, State, StateType, Continent, ContinentName, Currency, CountryGeography, CountryBounds, ClimateZone, FlagInfo, FlagColor, CardinalDirection, WorldMapCountry, WorldMapOptions, WorldMapHighlight, ReligionBreakdown, EthnicGroup, CountryDemographics, CountryMapOptions, } from "./types/index.js";
19
+ export type { CountryTranslation, TranslationMap, TranslationLanguage, } from "./data/translations.js";
20
+ export { translations, getSupportedLanguages, getTranslations, translateCountry, translateCity, translateContinent, translateCurrency, } from "./data/translations.js";
19
21
  export { countries, getCountryByCode, getCountriesByContinent, getCountryFlag, getRecognizedCountries, } from "./data/countries.js";
20
22
  export { phoneCountryCodes, getPhoneCodeByCountry, getCountriesByPhoneCode, } from "./data/phoneCodes.js";
21
23
  export { cities, getCitiesByCountry, getCapitalCity, getCitiesByPopulation, searchCities, } from "./data/cities.js";
@@ -22,6 +22,10 @@ export interface Country {
22
22
  continent: ContinentName;
23
23
  /** ISO 4217 currency code (e.g., "USD") */
24
24
  currency: string;
25
+ /** Full currency name, optionally translated (e.g., "US Dollar", "US-Dollar") */
26
+ currencyName?: string;
27
+ /** Currency symbol (e.g., "$") */
28
+ currencySymbol?: string;
25
29
  /** Primary language(s) spoken */
26
30
  languages: string[];
27
31
  /** Top-level domain (e.g., ".us") */