Skip to content

Commit

Permalink
Merge pull request #1 from faker-js/pr/matthewmayer/2025-suggestions/…
Browse files Browse the repository at this point in the history
…st-ddt

feat(locale): add additional metadata properties
  • Loading branch information
matthewmayer authored Apr 5, 2023
2 parents 497ff9f + 9ec1381 commit a3af163
Show file tree
Hide file tree
Showing 64 changed files with 157 additions and 135 deletions.
2 changes: 1 addition & 1 deletion src/definitions/definitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
44 changes: 33 additions & 11 deletions src/definitions/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,38 +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;
/**
* The full code of the locale, including the country code if applicable.
*/
code?: string;
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;
endonym: string;
/**
* The ISO 639-1 code of the language.
*
* @see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
*/
language?: string;
language: string;
/**
* The ISO 3166-1 alpha-2 code of the country.
*
* @see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
* The specific variant of the language. This usually refers to a dialect or slang.
*/
country?: string;
variant?: string;
/**
* Whether the language is written right-to-left.
*/
rtl?: boolean;
rtl: boolean;
/**
* The ISO 15924 code of the script.
*
* @see https://en.wikipedia.org/wiki/ISO_15924
*/
script?: string;
} & Record<string, unknown>;
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>;
4 changes: 2 additions & 2 deletions src/locales/af_ZA/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'Afrikaans (South Africa)',
code: 'af_ZA',
country: 'ZA',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/ar/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Arabic',
code: 'ar',
language: 'ar',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/az/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Azerbaijani',
code: 'az',
language: 'az',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/cs_CZ/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'Czech (Czechia)',
code: 'cs_CZ',
country: 'CZ',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/de/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'German',
code: 'de',
language: 'de',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/de_AT/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'German (Austria)',
code: 'de_AT',
country: 'AT',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/de_CH/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'German (Switzerland)',
code: 'de_CH',
country: 'CH',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/dv/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Maldivian',
code: 'dv',
language: 'dv',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/el/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Greek',
code: 'el',
language: 'el',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'English',
code: 'en',
language: 'en',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_AU/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'English (Australia)',
code: 'en_AU',
country: 'AU',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_AU_ocker/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
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',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_BORK/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'English (Bork)',
code: 'en_BORK',
variant: 'BORK',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_CA/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'English (Canada)',
code: 'en_CA',
country: 'CA',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_GB/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
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',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_GH/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'English (Ghana)',
code: 'en_GH',
country: 'GH',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_IE/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'English (Ireland)',
code: 'en_IE',
country: 'IE',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_IN/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'English (India)',
code: 'en_IN',
country: 'IN',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_NG/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'English (Nigeria)',
code: 'en_NG',
country: 'NG',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_US/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
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',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/en_ZA/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
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',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/es/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Spanish',
code: 'es',
language: 'es',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/es_MX/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'Spanish (Mexico)',
code: 'es_MX',
country: 'MX',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/fa/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Farsi/Persian',
code: 'fa',
language: 'fa',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/fi/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Finnish',
code: 'fi',
language: 'fi',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/fr/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'French',
code: 'fr',
language: 'fr',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/fr_BE/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'French (Belgium)',
code: 'fr_BE',
country: 'BE',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/fr_CA/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'French (Canada)',
code: 'fr_CA',
country: 'CA',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/fr_CH/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'French (Switzerland)',
code: 'fr_CH',
country: 'CH',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/fr_LU/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'French (Luxembourg)',
code: 'fr_LU',
country: 'LU',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/he/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Hebrew',
code: 'he',
language: 'he',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/hr/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Croatian',
code: 'hr',
language: 'hr',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/hu/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Hungarian',
code: 'hu',
language: 'hu',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/hy/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitions } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitions = {
title: 'Armenian',
code: 'hy',
language: 'hy',
Expand Down
4 changes: 2 additions & 2 deletions src/locales/id_ID/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { MetadataDefinitions } from '../..';
import type { PreBuiltMetadataDefinitionsForCountry } from '../../definitions/metadata';

const metadata: MetadataDefinitions = {
const metadata: PreBuiltMetadataDefinitionsForCountry = {
title: 'Indonesian (Indonesia)',
code: 'id_ID',
country: 'ID',
Expand Down
Loading

0 comments on commit a3af163

Please sign in to comment.