Improve language selector (#5487)

* Improve language selector

* Add Germany to German

* Run prepr:frontend

* Remove `'` in icon map

* Add Italy to Italian
This commit is contained in:
Jerozgen
2026-03-09 00:33:41 +03:00
committed by GitHub
parent 43eb53eda5
commit 913dee9090
71 changed files with 318 additions and 1906 deletions

View File

@@ -3,7 +3,13 @@ import { RadioButtonCheckedIcon, RadioButtonIcon, SearchIcon } from '@modrinth/a
import Fuse from 'fuse.js/dist/fuse.basic'
import { computed, ref, watchSyncEffect } from 'vue'
import { defineMessages, type LocaleDefinition, useVIntl } from '../../composables/i18n'
import {
buildLocaleMessages,
defineMessages,
type LocaleDefinition,
useVIntl,
} from '../../composables/i18n'
import { metaLocaleModules } from '../../locales.ts'
import { isModifierKeyDown } from '../../utils/events'
import StyledInput from '../base/StyledInput.vue'
@@ -40,34 +46,34 @@ const messages = defineMessages({
},
})
const localeMetas = buildLocaleMessages(metaLocaleModules)
type Category = 'default' | 'searchResult'
type LocaleInfo = {
category: Category
tag: string
displayName: string
nativeName: string
translatedName: string
searchTerms?: string[]
}
const displayNames = new Intl.DisplayNames(['en'], { type: 'language' })
const $locales = computed(() => {
const result: LocaleInfo[] = []
for (const loc of props.locales) {
const tag = loc.code
const name = loc.name || displayNames.of(tag) || tag
const nativeDisplayNames = new Intl.DisplayNames([tag], { type: 'language' })
const nativeName = nativeDisplayNames.of(tag) || tag
const meta = localeMetas[tag] ?? null
const displayName = meta?.displayName ?? loc.name
const translatedName = formatMessage(loc.translatedName)
const searchTerms = meta?.searchTerms === '-' ? undefined : meta?.searchTerms?.split('\n')
result.push({
tag,
category: 'default',
displayName: name,
nativeName,
searchTerms: [tag, name, nativeName],
displayName,
translatedName,
searchTerms,
})
}
@@ -156,7 +162,7 @@ function onItemClick(e: MouseEvent, loc: LocaleInfo) {
}
function getItemLabel(loc: LocaleInfo) {
return `${loc.nativeName}. ${loc.displayName}`
return `${loc.translatedName}. ${loc.displayName}`
}
function getCategoryName(category: Category): string {
@@ -227,13 +233,13 @@ function getCategoryName(category: Category): string {
<RadioButtonCheckedIcon v-if="$activeLocale === loc.tag" class="size-6" />
<RadioButtonIcon v-else class="size-6" />
<div class="flex flex-1 flex-wrap justify-between">
<div class="flex flex-1 flex-wrap justify-between gap-x-6">
<div class="font-bold">
{{ loc.displayName }}
</div>
<div>
{{ loc.nativeName }}
{{ loc.translatedName }}
</div>
</div>
</div>

View File

@@ -28,6 +28,7 @@ export function defineMessages<K extends string, T extends MessageDescriptorMap<
export interface LocaleDefinition {
code: string
name: string
translatedName: MessageDescriptor
numeric?: Intl.RelativeTimeFormatNumeric
dir?: 'ltr' | 'rtl'
iso?: string
@@ -36,39 +37,181 @@ export interface LocaleDefinition {
export const LOCALES: LocaleDefinition[] = [
// Commented out as it's RTL - will enable when we have better RTL support
// { code: 'ar-SA', name: 'العربية (السعودية)', dir: 'rtl' },
{ code: 'cs-CZ', name: 'Čeština' },
{ code: 'da-DK', name: 'Dansk' },
{ code: 'de-CH', name: 'Deutsch (Schweiz)' },
{ code: 'de-DE', name: 'Deutsch' },
{ code: 'en-US', name: 'English (United States)' },
{ code: 'es-419', name: 'Español (Latinoamérica)' },
{ code: 'es-ES', name: 'Español (España)' },
{ code: 'fi-FI', name: 'Suomi' },
{ code: 'fil-PH', name: 'Filipino' },
{ code: 'fr-FR', name: 'Français' },
{ code: 'he-IL', name: 'עברית', dir: 'rtl' },
{ code: 'hu-HU', name: 'Magyar' },
{ code: 'id-ID', name: 'Bahasa Indonesia' },
{ code: 'it-IT', name: 'Italiano', numeric: 'always' },
{ code: 'ja-JP', name: '日本語' },
{ code: 'ko-KR', name: '한국어' },
{ code: 'ms-MY', name: 'Bahasa Melayu' },
{ code: 'nl-NL', name: 'Nederlands' },
{ code: 'no-NO', name: 'Norsk' },
{ code: 'pl-PL', name: 'Polski' },
{ code: 'pt-BR', name: 'Português (Brasil)' },
{ code: 'pt-PT', name: 'Português (Portugal)' },
{ code: 'ro-RO', name: 'Română' },
{ code: 'ru-RU', name: 'Русский', numeric: 'always' },
{ code: 'sr-CS', name: 'Srpski (latinica)' },
{ code: 'sv-SE', name: 'Svenska' },
{ code: 'th-TH', name: 'ไทย' },
{ code: 'tr-TR', name: 'Türkçe' },
{ code: 'uk-UA', name: 'Українська' },
{ code: 'vi-VN', name: 'Tiếng Việt' },
{ code: 'zh-CN', name: '简体中文' },
{ code: 'zh-TW', name: '繁體中文' },
// {
// code: 'ar-SA',
// name: 'العربية (السعودية)',
// translatedName: defineMessage({ id: 'locale.ar-SA', defaultMessage: 'Arabic' }),
// dir: 'rtl',
// },
{
code: 'cs-CZ',
name: 'Čeština',
translatedName: defineMessage({ id: 'locale.cs-CZ', defaultMessage: 'Czech' }),
},
{
code: 'da-DK',
name: 'Dansk',
translatedName: defineMessage({ id: 'locale.da-DK', defaultMessage: 'Danish' }),
},
{
code: 'de-CH',
name: 'Deutsch (Schweiz)',
translatedName: defineMessage({ id: 'locale.de-CH', defaultMessage: 'German (Switzerland)' }),
},
{
code: 'de-DE',
name: 'Deutsch (Deutschland)',
translatedName: defineMessage({ id: 'locale.de-DE', defaultMessage: 'German (Germany)' }),
},
{
code: 'en-US',
name: 'English (United States)',
translatedName: defineMessage({
id: 'locale.en-US',
defaultMessage: 'English (United States)',
}),
},
{
code: 'es-419',
name: 'Español (Latinoamérica)',
translatedName: defineMessage({
id: 'locale.es-419',
defaultMessage: 'Spanish (Latin America)',
}),
},
{
code: 'es-ES',
name: 'Español (España)',
translatedName: defineMessage({ id: 'locale.es-ES', defaultMessage: 'Spanish (Spain)' }),
},
{
code: 'fi-FI',
name: 'Suomi',
translatedName: defineMessage({ id: 'locale.fi-FI', defaultMessage: 'Finnish' }),
},
{
code: 'fil-PH',
name: 'Filipino',
translatedName: defineMessage({ id: 'locale.fil-PH', defaultMessage: 'Filipino' }),
},
{
code: 'fr-FR',
name: 'Français',
translatedName: defineMessage({ id: 'locale.fr-FR', defaultMessage: 'French' }),
},
{
code: 'he-IL',
name: 'עברית',
translatedName: defineMessage({ id: 'locale.he-IL', defaultMessage: 'Hebrew' }),
dir: 'rtl',
},
{
code: 'hu-HU',
name: 'Magyar',
translatedName: defineMessage({ id: 'locale.hu-HU', defaultMessage: 'Hungarian' }),
},
{
code: 'id-ID',
name: 'Bahasa Indonesia',
translatedName: defineMessage({ id: 'locale.id-ID', defaultMessage: 'Indonesian' }),
},
{
code: 'it-IT',
name: 'Italiano (Italia)',
translatedName: defineMessage({ id: 'locale.it-IT', defaultMessage: 'Italian (Italy)' }),
numeric: 'always',
},
{
code: 'ja-JP',
name: '日本語',
translatedName: defineMessage({ id: 'locale.ja-JP', defaultMessage: 'Japanese' }),
},
{
code: 'ko-KR',
name: '한국어',
translatedName: defineMessage({ id: 'locale.ko-KR', defaultMessage: 'Korean' }),
},
{
code: 'ms-MY',
name: 'Bahasa Melayu',
translatedName: defineMessage({ id: 'locale.ms-MY', defaultMessage: 'Malay' }),
},
{
code: 'nl-NL',
name: 'Nederlands',
translatedName: defineMessage({ id: 'locale.nl-NL', defaultMessage: 'Dutch' }),
},
{
code: 'no-NO',
name: 'Norsk (Bokmål)',
translatedName: defineMessage({ id: 'locale.no-NO', defaultMessage: 'Norwegian Bokmål' }),
},
{
code: 'pl-PL',
name: 'Polski',
translatedName: defineMessage({ id: 'locale.pl-PL', defaultMessage: 'Polish' }),
},
{
code: 'pt-BR',
name: 'Português (Brasil)',
translatedName: defineMessage({ id: 'locale.pt-BR', defaultMessage: 'Portuguese (Brazil)' }),
},
{
code: 'pt-PT',
name: 'Português (Portugal)',
translatedName: defineMessage({ id: 'locale.pt-PT', defaultMessage: 'Portuguese (Portugal)' }),
},
{
code: 'ro-RO',
name: 'Română',
translatedName: defineMessage({ id: 'locale.ro-RO', defaultMessage: 'Romanian' }),
},
{
code: 'ru-RU',
name: 'Русский',
translatedName: defineMessage({ id: 'locale.ru-RU', defaultMessage: 'Russian' }),
numeric: 'always',
},
{
code: 'sr-CS',
name: 'Srpski (latinica)',
translatedName: defineMessage({ id: 'locale.sr-CS', defaultMessage: 'Serbian (Latin)' }),
},
{
code: 'sv-SE',
name: 'Svenska',
translatedName: defineMessage({ id: 'locale.sv-SE', defaultMessage: 'Swedish' }),
},
{
code: 'th-TH',
name: 'ไทย',
translatedName: defineMessage({ id: 'locale.th-TH', defaultMessage: 'Thai' }),
},
{
code: 'tr-TR',
name: 'Türkçe',
translatedName: defineMessage({ id: 'locale.tr-TR', defaultMessage: 'Turkish' }),
},
{
code: 'uk-UA',
name: 'Українська',
translatedName: defineMessage({ id: 'locale.uk-UA', defaultMessage: 'Ukrainian' }),
},
{
code: 'vi-VN',
name: 'Tiếng Việt',
translatedName: defineMessage({ id: 'locale.vi-VN', defaultMessage: 'Vietnamese' }),
},
{
code: 'zh-CN',
name: '简体中文',
translatedName: defineMessage({ id: 'locale.zh-CN', defaultMessage: 'Chinese (Simplified)' }),
},
{
code: 'zh-TW',
name: '繁體中文',
translatedName: defineMessage({ id: 'locale.zh-TW', defaultMessage: 'Chinese (Traditional)' }),
},
]
export function transformCrowdinMessages(messages: CrowdinMessages): Record<string, string> {
@@ -99,8 +242,8 @@ export function buildLocaleMessages(
const messages: Record<string, Record<string, string>> = {}
for (const modules of allModules) {
for (const [path, module] of Object.entries(modules)) {
// Extract locale code from path like './locales/en-US/index.json' or './src/locales/en-US/index.json'
const match = path.match(/\/([^/]+)\/index\.json$/)
// Extract locale code from path like './locales/en-US/index.json', './src/locales/en-US/index.json' or './locales/en-US/meta.json'
const match = path.match(/\/([^/]+)\/(index|meta)\.json$/)
if (match) {
const locale = match[1]
// Only include locales that are in our LOCALES list

View File

@@ -4,3 +4,8 @@ export const uiLocaleModules = import.meta.glob<{ default: CrowdinMessages }>(
'./locales/*/index.json',
{ eager: false },
)
export const metaLocaleModules = import.meta.glob<{ default: CrowdinMessages }>(
'./locales/*/meta.json',
{ eager: true },
)

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "العربية (المملكة العربية السعودية)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "المملكة العربية السعودية \nالعربية السعودية"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Čeština (Česko)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "ČR\nČesky"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Dansk"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Dansk\nDanmark"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Deutsch (Schweiz)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Schweiz\nDE\nDEU\nDE_CH\nCH\nSwitzerland\nGerman"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Deutsch (Deutschland)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Deutschland\nDeutsch\nHochdeutsch\nDE\nDEU\nGerman\nGermany\nGER"
}
}

View File

@@ -542,6 +542,102 @@
"label.yes": {
"defaultMessage": "Yes"
},
"locale.cs-CZ": {
"defaultMessage": "Czech"
},
"locale.da-DK": {
"defaultMessage": "Danish"
},
"locale.de-CH": {
"defaultMessage": "German (Switzerland)"
},
"locale.de-DE": {
"defaultMessage": "German (Germany)"
},
"locale.en-US": {
"defaultMessage": "English (United States)"
},
"locale.es-419": {
"defaultMessage": "Spanish (Latin America)"
},
"locale.es-ES": {
"defaultMessage": "Spanish (Spain)"
},
"locale.fi-FI": {
"defaultMessage": "Finnish"
},
"locale.fil-PH": {
"defaultMessage": "Filipino"
},
"locale.fr-FR": {
"defaultMessage": "French"
},
"locale.he-IL": {
"defaultMessage": "Hebrew"
},
"locale.hu-HU": {
"defaultMessage": "Hungarian"
},
"locale.id-ID": {
"defaultMessage": "Indonesian"
},
"locale.it-IT": {
"defaultMessage": "Italian (Italy)"
},
"locale.ja-JP": {
"defaultMessage": "Japanese"
},
"locale.ko-KR": {
"defaultMessage": "Korean"
},
"locale.ms-MY": {
"defaultMessage": "Malay"
},
"locale.nl-NL": {
"defaultMessage": "Dutch"
},
"locale.no-NO": {
"defaultMessage": "Norwegian Bokmål"
},
"locale.pl-PL": {
"defaultMessage": "Polish"
},
"locale.pt-BR": {
"defaultMessage": "Portuguese (Brazil)"
},
"locale.pt-PT": {
"defaultMessage": "Portuguese (Portugal)"
},
"locale.ro-RO": {
"defaultMessage": "Romanian"
},
"locale.ru-RU": {
"defaultMessage": "Russian"
},
"locale.sr-CS": {
"defaultMessage": "Serbian (Latin)"
},
"locale.sv-SE": {
"defaultMessage": "Swedish"
},
"locale.th-TH": {
"defaultMessage": "Thai"
},
"locale.tr-TR": {
"defaultMessage": "Turkish"
},
"locale.uk-UA": {
"defaultMessage": "Ukrainian"
},
"locale.vi-VN": {
"defaultMessage": "Vietnamese"
},
"locale.zh-CN": {
"defaultMessage": "Chinese (Simplified)"
},
"locale.zh-TW": {
"defaultMessage": "Chinese (Traditional)"
},
"modal.add-payment-method.action": {
"defaultMessage": "Add payment method"
},

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "English (United States)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "USA\nAmerican English"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Español (Latinoamérica)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "ES\nMX\nSpanish\nCastellano\nLATAM\nEspañol latinoamericano"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Inglés (Estados Unidos)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "EE. UU.\nInglés Americano"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Finnish (Suomi)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "USA\nAmerikkalainen Englanti"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Filipino"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "-"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Anglais (États-Unis)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "France\nFrançais"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Hebrew (Israel) עברית"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "ישראל\nIsrael\nHebrew"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Magyar"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Magyarország\nmagyar"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Bahasa Indonesia"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Indonesia\nBahasa Indonesia\nIndonesian\nIND\nID"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Italiano (Italia)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "ITA\nItaliano"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "日本語"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Japan\nJapanese\n日本\n日本語"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "한국어 (대한민국)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "대한민국\n한국어"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Bahasa Melayu"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Melayu\nMalaysia\nBahasa Melayu\nBahasa Malaysia\nMalay\nMS\nMY"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Nederlands (Nederland)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "NL\nNederlands\nNederland\nDutch\nVlaams\nBelgië"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Norsk (Bokmål)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Norway\nNorwegian"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Polski"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Polska\nPolski"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Português (Brasil)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Brasil\nPortuguês do Brasil\nBrasileiro\nPortuguês brasileiro\npt-br\nptbr"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Português (Portugal)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Português\nPortuguês Europeu\nPT\npt-pt\nPortuguês Portugal\nPortugal"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Română (România)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "SUA\nEngleză Americană"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Русский"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Россия\nРусский\nРусский язык\nРоссийский\nРФ\nРоссийская Федерация\nRussian\nRussia"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Srpski (Latinica)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "SRB\nSrbija"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Engelska (USA)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "USA\nAmerikansk Engelska"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "ภาษาอังกฤษ (สหรัฐอเมริกา)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "ภาษาไทย"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Türkçe"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "TR\nTurkey\nTürkiye\nTurkish"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Українська"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Ukraine\nUkrainian\nUA\nУкраїна\nМова"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "Tiếng Anh (Hoa Kỳ)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Vietnamese"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "简体中文(中国大陆)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "China\nChinese\nSimplified Chinese\nChinese Simplified\n简体中文\n华文\n汉语\n华语\n中文\n中国"
}
}

View File

@@ -0,0 +1,10 @@
{
"displayName": {
"description": "Please enter the name of the language in its specific variant or regional form (e.g., English (US) for American English, not just English). If the language does not have any specific variant, simply enter the name of the language (e.g., Français, Deutsch).",
"message": "正體中文(臺灣)"
},
"searchTerms": {
"description": "Please provide additional search terms associated with the language, if needed, to enhance the search functionality (e.g., American English, Deutschland). Each search term should be entered on a separate line. Translate as a hyphen (-) if no additional terms are needed.",
"message": "Taiwan\nChinese\nTraditional Chinese\nChinese Traditional\nTC\n正體\n繁體\n繁中\n中文\n漢語\n華語\n臺灣\n台灣"
}
}