diff options
| author | Matt Mayer <[email protected]> | 2023-04-22 23:26:46 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-04-22 18:26:46 +0200 |
| commit | a49aa0d7831a949728b6831b96f15c4971f1e1d9 (patch) | |
| tree | 92db99904c58afea9a6bdc2909138767e82aacec | |
| parent | ed19befb04dbb7a8c5b59b1c015c6ccbce109869 (diff) | |
| download | faker-a49aa0d7831a949728b6831b96f15c4971f1e1d9.tar.xz faker-a49aa0d7831a949728b6831b96f15c4971f1e1d9.zip | |
feat(locale): add additional metadata properties (#2025)
67 files changed, 569 insertions, 142 deletions
diff --git a/docs/guide/localization.md b/docs/guide/localization.md index e6e16c42..407d411f 100644 --- a/docs/guide/localization.md +++ b/docs/guide/localization.md @@ -74,7 +74,7 @@ In this example there are 5 locales. Each of these is checked in order, and the | Locale | Name | Faker | | :------------ | :------------------------ | :----------------- | -| `af_ZA` | Afrikaans | `fakerAF_ZA` | +| `af_ZA` | Afrikaans (South Africa) | `fakerAF_ZA` | | `ar` | Arabic | `fakerAR` | | `az` | Azerbaijani | `fakerAZ` | | `base` | Base | `fakerBASE` | @@ -98,7 +98,7 @@ In this example there are 5 locales. Each of these is checked in order, and the | `en_ZA` | English (South Africa) | `fakerEN_ZA` | | `es` | Spanish | `fakerES` | | `es_MX` | Spanish (Mexico) | `fakerES_MX` | -| `fa` | Farsi | `fakerFA` | +| `fa` | Farsi/Persian | `fakerFA` | | `fi` | Finnish | `fakerFI` | | `fr` | French | `fakerFR` | | `fr_BE` | French (Belgium) | `fakerFR_BE` | @@ -109,15 +109,15 @@ In this example there are 5 locales. Each of these is checked in order, and the | `hr` | Croatian | `fakerHR` | | `hu` | Hungarian | `fakerHU` | | `hy` | Armenian | `fakerHY` | -| `id_ID` | Indonesian | `fakerID_ID` | +| `id_ID` | Indonesian (Indonesia) | `fakerID_ID` | | `it` | Italian | `fakerIT` | | `ja` | Japanese | `fakerJA` | | `ka_GE` | Georgian (Georgia) | `fakerKA_GE` | | `ko` | Korean | `fakerKO` | | `lv` | Latvian | `fakerLV` | | `mk` | Macedonian | `fakerMK` | -| `nb_NO` | Norwegian | `fakerNB_NO` | -| `ne` | Nepalese | `fakerNE` | +| `nb_NO` | Norwegian (Norway) | `fakerNB_NO` | +| `ne` | Nepali | `fakerNE` | | `nl` | Dutch | `fakerNL` | | `nl_BE` | Dutch (Belgium) | `fakerNL_BE` | | `pl` | Polish | `fakerPL` | @@ -125,15 +125,15 @@ In this example there are 5 locales. Each of these is checked in order, and the | `pt_PT` | Portuguese (Portugal) | `fakerPT_PT` | | `ro` | Romanian | `fakerRO` | | `ru` | Russian | `fakerRU` | -| `sk` | Slovakian | `fakerSK` | -| `sr_RS_latin` | Serbian (Latin) | `fakerSR_RS_latin` | +| `sk` | Slovak | `fakerSK` | +| `sr_RS_latin` | Serbian (Serbia, Latin) | `fakerSR_RS_latin` | | `sv` | Swedish | `fakerSV` | | `th` | Thai | `fakerTH` | | `tr` | Turkish | `fakerTR` | | `uk` | Ukrainian | `fakerUK` | | `ur` | Urdu | `fakerUR` | | `vi` | Vietnamese | `fakerVI` | -| `zh_CN` | Chinese | `fakerZH_CN` | +| `zh_CN` | Chinese (China) | `fakerZH_CN` | | `zh_TW` | Chinese (Taiwan) | `fakerZH_TW` | | `zu_ZA` | Zulu (South Africa) | `fakerZU_ZA` | diff --git a/src/definitions/definitions.ts b/src/definitions/definitions.ts index 112c2c1a..dd477beb 100644 --- a/src/definitions/definitions.ts +++ b/src/definitions/definitions.ts @@ -32,7 +32,7 @@ export type LocaleEntry<T extends Record<string, unknown>> = Partial<T> & * that most properties are optional and extra properties are allowed. */ export type LocaleDefinition = { - metadata: MetadataDefinitions; + metadata?: MetadataDefinitions; airline?: AirlineDefinitions; animal?: AnimalDefinitions; color?: ColorDefinitions; diff --git a/src/definitions/metadata.ts b/src/definitions/metadata.ts index 398c2c2a..c5ee074b 100644 --- a/src/definitions/metadata.ts +++ b/src/definitions/metadata.ts @@ -1,6 +1,60 @@ -export type MetadataDefinitions = { +import type { LocaleEntry } from './definitions'; + +/** + * Metadata for pre-built locales. + */ +export type PreBuiltMetadataDefinitions = { /** * The English name of the language (and the specific country, if defined). */ title: string; -} & Record<string, unknown>; + /** + * The full code of the locale, including the country code if applicable. + */ + code: string; + /** + * The endonym (native name) of the language (and the specific country, if defined). + * + * @see https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_and_their_capitals_in_native_languages + */ + endonym: string; + /** + * The ISO 639-1 code of the language. + * + * @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes + */ + language: string; + /** + * The specific variant of the language. This usually refers to a dialect or slang. + */ + variant?: string; + /** + * The direction of the language, either 'ltr' (left to right) or 'rtl' (right to left). + */ + dir: 'ltr' | 'rtl'; + /** + * The ISO 15924 code of the script. + * + * @see https://en.wikipedia.org/wiki/ISO_15924 + */ + script: string; +}; + +/** + * Metadata for pre-built locales for a specific country. + */ +export type PreBuiltMetadataDefinitionsForCountry = + PreBuiltMetadataDefinitions & { + /** + * The ISO 3166-1 alpha-2 code of the country. + * + * @see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 + */ + country: string; + }; + +/** + * Metadata for the current locale. + */ +export type MetadataDefinitions = + LocaleEntry<PreBuiltMetadataDefinitionsForCountry>; diff --git a/src/locales/af_ZA/metadata.ts b/src/locales/af_ZA/metadata.ts index 32120b00..f4787014 100644 --- a/src/locales/af_ZA/metadata.ts +++ b/src/locales/af_ZA/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { - title: 'Afrikaans', +const metadata: PreBuiltMetadataDefinitionsForCountry = { + title: 'Afrikaans (South Africa)', + code: 'af_ZA', + country: 'ZA', + language: 'af', + endonym: 'Afrikaans (Suid-Afrika)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/ar/metadata.ts b/src/locales/ar/metadata.ts index f94ccd80..8199b51a 100644 --- a/src/locales/ar/metadata.ts +++ b/src/locales/ar/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Arabic', + code: 'ar', + language: 'ar', + endonym: 'اَلْعَرَبِيَّةُ', + dir: 'rtl', + script: 'Arab', }; export default metadata; diff --git a/src/locales/az/metadata.ts b/src/locales/az/metadata.ts index c1360366..1ca74673 100644 --- a/src/locales/az/metadata.ts +++ b/src/locales/az/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Azerbaijani', + code: 'az', + language: 'az', + endonym: 'azərbaycan dili', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/base/metadata.ts b/src/locales/base/metadata.ts index 888b4d88..11369341 100644 --- a/src/locales/base/metadata.ts +++ b/src/locales/base/metadata.ts @@ -2,6 +2,7 @@ import type { MetadataDefinitions } from '../..'; const metadata: MetadataDefinitions = { title: 'Base', + code: 'base', }; export default metadata; diff --git a/src/locales/cs_CZ/metadata.ts b/src/locales/cs_CZ/metadata.ts index 98ab47df..2ccd3520 100644 --- a/src/locales/cs_CZ/metadata.ts +++ b/src/locales/cs_CZ/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'Czech (Czechia)', + code: 'cs_CZ', + country: 'CZ', + language: 'cs', + endonym: 'čeština (Česká republika)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/de/metadata.ts b/src/locales/de/metadata.ts index d66b6de1..f38350f9 100644 --- a/src/locales/de/metadata.ts +++ b/src/locales/de/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'German', + code: 'de', + language: 'de', + endonym: 'Deutsch', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/de_AT/metadata.ts b/src/locales/de_AT/metadata.ts index db773f77..2604409b 100644 --- a/src/locales/de_AT/metadata.ts +++ b/src/locales/de_AT/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'German (Austria)', + code: 'de_AT', + country: 'AT', + language: 'de', + endonym: 'Deutsch (Österreich)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/de_CH/metadata.ts b/src/locales/de_CH/metadata.ts index 4e462b89..75bbb76b 100644 --- a/src/locales/de_CH/metadata.ts +++ b/src/locales/de_CH/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'German (Switzerland)', + code: 'de_CH', + country: 'CH', + language: 'de', + endonym: 'Deutsch (Schweiz)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/dv/metadata.ts b/src/locales/dv/metadata.ts index d30d10a2..5329afce 100644 --- a/src/locales/dv/metadata.ts +++ b/src/locales/dv/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Maldivian', + code: 'dv', + language: 'dv', + endonym: 'ދިވެހި', + dir: 'rtl', + script: 'Thaa', }; export default metadata; diff --git a/src/locales/el/metadata.ts b/src/locales/el/metadata.ts index 17dd91dc..76197ab3 100644 --- a/src/locales/el/metadata.ts +++ b/src/locales/el/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Greek', + code: 'el', + language: 'el', + endonym: 'Ελληνικά', + dir: 'ltr', + script: 'Grek', }; export default metadata; diff --git a/src/locales/en/metadata.ts b/src/locales/en/metadata.ts index 30a93637..f31fcffc 100644 --- a/src/locales/en/metadata.ts +++ b/src/locales/en/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'English', + code: 'en', + language: 'en', + endonym: 'English', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_AU/metadata.ts b/src/locales/en_AU/metadata.ts index be925f15..b50713a9 100644 --- a/src/locales/en_AU/metadata.ts +++ b/src/locales/en_AU/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (Australia)', + code: 'en_AU', + country: 'AU', + language: 'en', + endonym: 'English (Australia)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_AU_ocker/metadata.ts b/src/locales/en_AU_ocker/metadata.ts index b877b114..3159e688 100644 --- a/src/locales/en_AU_ocker/metadata.ts +++ b/src/locales/en_AU_ocker/metadata.ts @@ -1,7 +1,14 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (Australia Ocker)', + code: 'en_AU_ocker', + country: 'AU', + language: 'en', + variant: 'ocker', + endonym: 'English (Australia)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_BORK/metadata.ts b/src/locales/en_BORK/metadata.ts index 7349bdca..d250e9ce 100644 --- a/src/locales/en_BORK/metadata.ts +++ b/src/locales/en_BORK/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'English (Bork)', + code: 'en_BORK', + variant: 'BORK', + language: 'en', + endonym: 'English (Bork)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_CA/metadata.ts b/src/locales/en_CA/metadata.ts index 40ea4ad0..31777930 100644 --- a/src/locales/en_CA/metadata.ts +++ b/src/locales/en_CA/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (Canada)', + code: 'en_CA', + country: 'CA', + language: 'en', + endonym: 'English (Canada)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_GB/metadata.ts b/src/locales/en_GB/metadata.ts index 4007132e..bd33818d 100644 --- a/src/locales/en_GB/metadata.ts +++ b/src/locales/en_GB/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (Great Britain)', + code: 'en_GB', + country: 'GB', + language: 'en', + endonym: 'English (Great Britain)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_GH/metadata.ts b/src/locales/en_GH/metadata.ts index 9bd30240..46171582 100644 --- a/src/locales/en_GH/metadata.ts +++ b/src/locales/en_GH/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (Ghana)', + code: 'en_GH', + country: 'GH', + language: 'en', + endonym: 'English (Ghana)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_IE/metadata.ts b/src/locales/en_IE/metadata.ts index 765b371c..a853c874 100644 --- a/src/locales/en_IE/metadata.ts +++ b/src/locales/en_IE/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (Ireland)', + code: 'en_IE', + country: 'IE', + language: 'en', + endonym: 'English (Ireland)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_IN/metadata.ts b/src/locales/en_IN/metadata.ts index dd7ce2ca..9eafd9f5 100644 --- a/src/locales/en_IN/metadata.ts +++ b/src/locales/en_IN/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (India)', + code: 'en_IN', + country: 'IN', + language: 'en', + endonym: 'English (India)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_NG/metadata.ts b/src/locales/en_NG/metadata.ts index fed81e3f..98833de3 100644 --- a/src/locales/en_NG/metadata.ts +++ b/src/locales/en_NG/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (Nigeria)', + code: 'en_NG', + country: 'NG', + language: 'en', + endonym: 'English (Nigeria)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_US/metadata.ts b/src/locales/en_US/metadata.ts index c08c0170..a0bbdd39 100644 --- a/src/locales/en_US/metadata.ts +++ b/src/locales/en_US/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (United States)', + code: 'en_US', + country: 'US', + language: 'en', + endonym: 'English (United States)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/en_ZA/metadata.ts b/src/locales/en_ZA/metadata.ts index dbca3b10..6047da0a 100644 --- a/src/locales/en_ZA/metadata.ts +++ b/src/locales/en_ZA/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'English (South Africa)', + code: 'en_ZA', + country: 'ZA', + language: 'en', + endonym: 'English (South Africa)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/es/metadata.ts b/src/locales/es/metadata.ts index b6c6cf19..c1cc17a5 100644 --- a/src/locales/es/metadata.ts +++ b/src/locales/es/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Spanish', + code: 'es', + language: 'es', + endonym: 'Español', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/es_MX/metadata.ts b/src/locales/es_MX/metadata.ts index 540895d6..a9cacd66 100644 --- a/src/locales/es_MX/metadata.ts +++ b/src/locales/es_MX/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'Spanish (Mexico)', + code: 'es_MX', + country: 'MX', + language: 'es', + endonym: 'Español (México)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/fa/metadata.ts b/src/locales/fa/metadata.ts index 0fc4f55c..88503c54 100644 --- a/src/locales/fa/metadata.ts +++ b/src/locales/fa/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { - title: 'Farsi', +const metadata: PreBuiltMetadataDefinitions = { + title: 'Farsi/Persian', + code: 'fa', + language: 'fa', + endonym: 'فارسی', + dir: 'rtl', + script: 'Arab', }; export default metadata; diff --git a/src/locales/fi/metadata.ts b/src/locales/fi/metadata.ts index 08115a1a..43d45fcb 100644 --- a/src/locales/fi/metadata.ts +++ b/src/locales/fi/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Finnish', + code: 'fi', + language: 'fi', + endonym: 'suomi', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/fr/metadata.ts b/src/locales/fr/metadata.ts index 45f83699..eb49f56f 100644 --- a/src/locales/fr/metadata.ts +++ b/src/locales/fr/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'French', + code: 'fr', + language: 'fr', + endonym: 'Français', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/fr_BE/metadata.ts b/src/locales/fr_BE/metadata.ts index 87a70b27..d98eb72b 100644 --- a/src/locales/fr_BE/metadata.ts +++ b/src/locales/fr_BE/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'French (Belgium)', + code: 'fr_BE', + country: 'BE', + language: 'fr', + endonym: 'Français (Belgique)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/fr_CA/metadata.ts b/src/locales/fr_CA/metadata.ts index 306b3296..62e54062 100644 --- a/src/locales/fr_CA/metadata.ts +++ b/src/locales/fr_CA/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'French (Canada)', + code: 'fr_CA', + country: 'CA', + language: 'fr', + endonym: 'Français (Canada)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/fr_CH/metadata.ts b/src/locales/fr_CH/metadata.ts index 5b191b81..86b69f34 100644 --- a/src/locales/fr_CH/metadata.ts +++ b/src/locales/fr_CH/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'French (Switzerland)', + code: 'fr_CH', + country: 'CH', + language: 'fr', + endonym: 'Français (Suisse)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/fr_LU/metadata.ts b/src/locales/fr_LU/metadata.ts index 79da9cef..b8656a67 100644 --- a/src/locales/fr_LU/metadata.ts +++ b/src/locales/fr_LU/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'French (Luxembourg)', + code: 'fr_LU', + country: 'LU', + language: 'fr', + endonym: 'Français (Luxembourg)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/he/metadata.ts b/src/locales/he/metadata.ts index e816e529..a3c41bac 100644 --- a/src/locales/he/metadata.ts +++ b/src/locales/he/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Hebrew', + code: 'he', + language: 'he', + endonym: 'עברית', + dir: 'rtl', + script: 'Hebr', }; export default metadata; diff --git a/src/locales/hr/metadata.ts b/src/locales/hr/metadata.ts index bc95cdaa..e4014aaf 100644 --- a/src/locales/hr/metadata.ts +++ b/src/locales/hr/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Croatian', + code: 'hr', + language: 'hr', + endonym: 'Hrvatski', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/hu/metadata.ts b/src/locales/hu/metadata.ts index 8602d9a0..48da69ad 100644 --- a/src/locales/hu/metadata.ts +++ b/src/locales/hu/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Hungarian', + code: 'hu', + language: 'hu', + endonym: 'magyar', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/hy/metadata.ts b/src/locales/hy/metadata.ts index c20110c1..835636e1 100644 --- a/src/locales/hy/metadata.ts +++ b/src/locales/hy/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Armenian', + code: 'hy', + language: 'hy', + endonym: 'Հայերեն', + dir: 'ltr', + script: 'Armn', }; export default metadata; diff --git a/src/locales/id_ID/metadata.ts b/src/locales/id_ID/metadata.ts index 73df9ea4..795e1585 100644 --- a/src/locales/id_ID/metadata.ts +++ b/src/locales/id_ID/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { - title: 'Indonesian', +const metadata: PreBuiltMetadataDefinitionsForCountry = { + title: 'Indonesian (Indonesia)', + code: 'id_ID', + country: 'ID', + language: 'id', + endonym: 'Bahasa Indonesia (Indonesia)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/it/metadata.ts b/src/locales/it/metadata.ts index 78e7e2ee..b53e4057 100644 --- a/src/locales/it/metadata.ts +++ b/src/locales/it/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Italian', + code: 'it', + language: 'it', + endonym: 'Italiano', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/ja/metadata.ts b/src/locales/ja/metadata.ts index e1f2e3a2..3e61ca96 100644 --- a/src/locales/ja/metadata.ts +++ b/src/locales/ja/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Japanese', + code: 'ja', + language: 'ja', + endonym: '日本語', + dir: 'ltr', + script: 'Jpan', }; export default metadata; diff --git a/src/locales/ka_GE/metadata.ts b/src/locales/ka_GE/metadata.ts index 5a049913..bef4d2b1 100644 --- a/src/locales/ka_GE/metadata.ts +++ b/src/locales/ka_GE/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'Georgian (Georgia)', + code: 'ka_GE', + country: 'GE', + language: 'ka', + endonym: 'ქართული (საქართველო)', + dir: 'ltr', + script: 'Geor', }; export default metadata; diff --git a/src/locales/ko/metadata.ts b/src/locales/ko/metadata.ts index f5343b2f..4fa91e58 100644 --- a/src/locales/ko/metadata.ts +++ b/src/locales/ko/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Korean', + code: 'ko', + language: 'ko', + endonym: '한국어', + dir: 'ltr', + script: 'Kore', }; export default metadata; diff --git a/src/locales/lv/metadata.ts b/src/locales/lv/metadata.ts index 60b0cf2f..6685a322 100644 --- a/src/locales/lv/metadata.ts +++ b/src/locales/lv/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Latvian', + code: 'lv', + language: 'lv', + endonym: 'latviešu valoda', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/mk/metadata.ts b/src/locales/mk/metadata.ts index 6c564a10..1ce27a68 100644 --- a/src/locales/mk/metadata.ts +++ b/src/locales/mk/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Macedonian', + code: 'mk', + language: 'mk', + endonym: 'македонски јазик', + dir: 'ltr', + script: 'Cyrl', }; export default metadata; diff --git a/src/locales/nb_NO/metadata.ts b/src/locales/nb_NO/metadata.ts index 5037872f..5eb03faf 100644 --- a/src/locales/nb_NO/metadata.ts +++ b/src/locales/nb_NO/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { - title: 'Norwegian', +const metadata: PreBuiltMetadataDefinitionsForCountry = { + title: 'Norwegian (Norway)', + code: 'nb_NO', + country: 'NO', + language: 'nb', + endonym: 'Norsk bokmål (Norge)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/ne/metadata.ts b/src/locales/ne/metadata.ts index 8b3043c6..c8429288 100644 --- a/src/locales/ne/metadata.ts +++ b/src/locales/ne/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { - title: 'Nepalese', +const metadata: PreBuiltMetadataDefinitions = { + title: 'Nepali', + code: 'ne', + language: 'ne', + endonym: 'नेपाली', + dir: 'ltr', + script: 'Deva', }; export default metadata; diff --git a/src/locales/nl/metadata.ts b/src/locales/nl/metadata.ts index d69a9a2f..a72d9790 100644 --- a/src/locales/nl/metadata.ts +++ b/src/locales/nl/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Dutch', + code: 'nl', + language: 'nl', + endonym: 'Nederlands', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/nl_BE/metadata.ts b/src/locales/nl_BE/metadata.ts index 6da791a1..73b0f1dc 100644 --- a/src/locales/nl_BE/metadata.ts +++ b/src/locales/nl_BE/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'Dutch (Belgium)', + code: 'nl_BE', + country: 'BE', + language: 'nl', + endonym: 'Nederlands (België)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/pl/metadata.ts b/src/locales/pl/metadata.ts index fb70cd86..c9e95c34 100644 --- a/src/locales/pl/metadata.ts +++ b/src/locales/pl/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Polish', + code: 'pl', + language: 'pl', + endonym: 'Polski', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/pt_BR/metadata.ts b/src/locales/pt_BR/metadata.ts index 0ef5efd8..7feb002f 100644 --- a/src/locales/pt_BR/metadata.ts +++ b/src/locales/pt_BR/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'Portuguese (Brazil)', + code: 'pt_BR', + country: 'BR', + language: 'pt', + endonym: 'Português (Brasil)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/pt_PT/metadata.ts b/src/locales/pt_PT/metadata.ts index 020f3bbd..65078207 100644 --- a/src/locales/pt_PT/metadata.ts +++ b/src/locales/pt_PT/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'Portuguese (Portugal)', + code: 'pt_PT', + country: 'PT', + language: 'pt', + endonym: 'Português (Portugal)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/ro/metadata.ts b/src/locales/ro/metadata.ts index 711017cf..e10c0d35 100644 --- a/src/locales/ro/metadata.ts +++ b/src/locales/ro/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Romanian', + code: 'ro', + language: 'ro', + endonym: 'Română', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/ru/metadata.ts b/src/locales/ru/metadata.ts index de20840d..8e6db955 100644 --- a/src/locales/ru/metadata.ts +++ b/src/locales/ru/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Russian', + code: 'ru', + language: 'ru', + endonym: 'Русский', + dir: 'ltr', + script: 'Cyrl', }; export default metadata; diff --git a/src/locales/sk/metadata.ts b/src/locales/sk/metadata.ts index 88e8fee4..0bc938d1 100644 --- a/src/locales/sk/metadata.ts +++ b/src/locales/sk/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { - title: 'Slovakian', +const metadata: PreBuiltMetadataDefinitions = { + title: 'Slovak', + code: 'sk', + language: 'sk', + endonym: 'slovenčina', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/sr_RS_latin/metadata.ts b/src/locales/sr_RS_latin/metadata.ts index 1491476c..b94b3410 100644 --- a/src/locales/sr_RS_latin/metadata.ts +++ b/src/locales/sr_RS_latin/metadata.ts @@ -1,7 +1,14 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { - title: 'Serbian (Latin)', +const metadata: PreBuiltMetadataDefinitionsForCountry = { + title: 'Serbian (Serbia, Latin)', + code: 'sr_RS_latin', + country: 'RS', + language: 'sr', + variant: 'latin', + endonym: 'srpski (Srbija, latinica)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/sv/metadata.ts b/src/locales/sv/metadata.ts index 42fe6a4a..e206b2d6 100644 --- a/src/locales/sv/metadata.ts +++ b/src/locales/sv/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Swedish', + code: 'sv', + language: 'sv', + endonym: 'Svenska', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/th/metadata.ts b/src/locales/th/metadata.ts index 373affbd..ae53d4ac 100644 --- a/src/locales/th/metadata.ts +++ b/src/locales/th/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Thai', + code: 'th', + language: 'th', + endonym: 'ไทย', + dir: 'ltr', + script: 'Thai', }; export default metadata; diff --git a/src/locales/tr/metadata.ts b/src/locales/tr/metadata.ts index 8d914062..9315cae1 100644 --- a/src/locales/tr/metadata.ts +++ b/src/locales/tr/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Turkish', + code: 'tr', + language: 'tr', + endonym: 'Türkçe', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/uk/metadata.ts b/src/locales/uk/metadata.ts index e2d58ed3..6f305d89 100644 --- a/src/locales/uk/metadata.ts +++ b/src/locales/uk/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Ukrainian', + code: 'uk', + language: 'uk', + endonym: 'Українська', + dir: 'ltr', + script: 'Cyrl', }; export default metadata; diff --git a/src/locales/ur/metadata.ts b/src/locales/ur/metadata.ts index b0610ece..6977c4ae 100644 --- a/src/locales/ur/metadata.ts +++ b/src/locales/ur/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Urdu', + code: 'ur', + language: 'ur', + endonym: 'اردو', + dir: 'rtl', + script: 'Arab', }; export default metadata; diff --git a/src/locales/vi/metadata.ts b/src/locales/vi/metadata.ts index 4d8e01f0..abf574f3 100644 --- a/src/locales/vi/metadata.ts +++ b/src/locales/vi/metadata.ts @@ -1,7 +1,12 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitions = { title: 'Vietnamese', + code: 'vi', + language: 'vi', + endonym: 'Tiếng Việt', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/locales/zh_CN/metadata.ts b/src/locales/zh_CN/metadata.ts index ad2dc1a3..44f79bbe 100644 --- a/src/locales/zh_CN/metadata.ts +++ b/src/locales/zh_CN/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { - title: 'Chinese', +const metadata: PreBuiltMetadataDefinitionsForCountry = { + title: 'Chinese (China)', + code: 'zh_CN', + country: 'CN', + language: 'zh', + endonym: '中文 (中国)', + dir: 'ltr', + script: 'Hans', }; export default metadata; diff --git a/src/locales/zh_TW/metadata.ts b/src/locales/zh_TW/metadata.ts index 54e15cac..269c4e0c 100644 --- a/src/locales/zh_TW/metadata.ts +++ b/src/locales/zh_TW/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'Chinese (Taiwan)', + code: 'zh_TW', + country: 'TW', + language: 'zh', + endonym: '中文 (臺灣)', + dir: 'ltr', + script: 'Hant', }; export default metadata; diff --git a/src/locales/zu_ZA/metadata.ts b/src/locales/zu_ZA/metadata.ts index 3e30c09d..c6553acd 100644 --- a/src/locales/zu_ZA/metadata.ts +++ b/src/locales/zu_ZA/metadata.ts @@ -1,7 +1,13 @@ -import type { MetadataDefinitions } from '../..'; +import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata'; -const metadata: MetadataDefinitions = { +const metadata: PreBuiltMetadataDefinitionsForCountry = { title: 'Zulu (South Africa)', + code: 'zu_ZA', + country: 'ZA', + language: 'zu', + endonym: 'isiZulu (Iningizimu Afrika)', + dir: 'ltr', + script: 'Latn', }; export default metadata; diff --git a/src/utils/merge-locales.ts b/src/utils/merge-locales.ts index e8bdef33..8fb531dd 100644 --- a/src/utils/merge-locales.ts +++ b/src/utils/merge-locales.ts @@ -14,7 +14,7 @@ import type { LocaleDefinition } from '..'; * const de_CH_with_fallbacks = mergeLocales([ de_CH, de, en ]); */ export function mergeLocales(locales: LocaleDefinition[]): LocaleDefinition { - const merged: LocaleDefinition = {} as LocaleDefinition; + const merged: LocaleDefinition = {}; for (const locale of locales) { for (const key in locale) { diff --git a/test/locale-imports.spec.ts b/test/locale-imports.spec.ts index bfe639ec..2a691b26 100644 --- a/test/locale-imports.spec.ts +++ b/test/locale-imports.spec.ts @@ -29,6 +29,41 @@ describe('locale imports', () => { ); }); + it('should have complete metadata values', () => { + const metadata = allLocales[locale].metadata; + expect(metadata.title).toBeTypeOf('string'); + expect(metadata.code).toBeTypeOf('string'); + expect(metadata.code).toEqual(locale); + if (locale !== 'base') { + expect(metadata.language).toBeTypeOf('string'); + expect(metadata.language).toMatch(/^[a-z]{2}$/); + expect(metadata.script).toBeTypeOf('string'); + expect([ + 'Arab', + 'Armn', + 'Cyrl', + 'Deva', + 'Geor', + 'Grek', + 'Hans', + 'Hant', + 'Hebr', + 'Jpan', + 'Kore', + 'Latn', + 'Thaa', + 'Thai', + ]).toContain(metadata.script); + expect(metadata.endonym).toBeTypeOf('string'); + expect(metadata.dir).toBeTypeOf('string'); + expect(['ltr', 'rtl']).toContain(metadata.dir); + if (metadata.country) { + expect(metadata.country).toBeTypeOf('string'); + expect(metadata.country).toMatch(/^[A-Z]{2}$/); + } + } + }); + describe('Internal tests to cover `src/locale/*.ts`', () => { it(`should be possible to directly require('../locale/${locale}')`, () => { // eslint-disable-next-line @typescript-eslint/no-var-requires |
