feat(locale): provide code (#2611)

This commit is contained in:
Alex
2024-11-12 16:57:40 +05:00
committed by GitHub
parent 30218f1b5b
commit 8a8b1ee2e1
16 changed files with 45 additions and 14 deletions

View File

@@ -1,8 +1,9 @@
import type { Locale, LocalePair } from '../types/locale'
export function defineLocale(name: string, pair: LocalePair): Locale {
export function defineLocale(name: string, code: string, pair: LocalePair): Locale {
return {
name,
code,
ui: pair
}
}

View File

@@ -1,6 +1,6 @@
import { defineLocale } from '../composables/defineLocale'
export default defineLocale('العربية', {
export default defineLocale('العربية', 'ar', {
inputMenu: {
noMatch: 'لا توجد نتائج مطابقة',
noData: 'لا توجد بيانات'

View File

@@ -1,6 +1,6 @@
import { defineLocale } from '../composables/defineLocale'
export default defineLocale('Čeština', {
export default defineLocale('Čeština', 'cs', {
inputMenu: {
noMatch: 'Žádná shoda',
noData: 'Žádná data'

View File

@@ -1,6 +1,6 @@
import { defineLocale } from '../composables/defineLocale'
export default defineLocale('Deutsch', {
export default defineLocale('Deutsch', 'de', {
inputMenu: {
noMatch: 'Nichts gefunden',
noData: 'Keine Daten'

View File

@@ -1,6 +1,6 @@
import { defineLocale } from '../composables/defineLocale'
export default defineLocale('English', {
export default defineLocale('English', 'en', {
inputMenu: {
noMatch: 'No matching data',
noData: 'No data'

View File

@@ -1,6 +1,6 @@
import { defineLocale } from '../composables/defineLocale'
export default defineLocale('Français', {
export default defineLocale('Français', 'fr', {
inputMenu: {
noMatch: 'Aucune donnée correspondante',
noData: 'Aucune donnée'

View File

@@ -1,6 +1,6 @@
import { defineLocale } from '../composables/defineLocale'
export default defineLocale('Italiano', {
export default defineLocale('Italiano', 'it', {
inputMenu: {
noMatch: 'Nessun dato corrispondente',
noData: 'Nessun dato'

View File

@@ -1,6 +1,6 @@
import { defineLocale } from '../composables/defineLocale'
export default defineLocale('Русский', {
export default defineLocale('Русский', 'ru', {
inputMenu: {
noMatch: 'Совпадений не найдено',
noData: 'Нет данных'

View File

@@ -1,6 +1,6 @@
import { defineLocale } from '../composables/defineLocale'
export default defineLocale('简体中文', {
export default defineLocale('简体中文', 'zh-Hans', {
inputMenu: {
noMatch: '没有匹配的数据',
noData: '没有数据'

View File

@@ -1,6 +1,6 @@
import { defineLocale } from '../composables/defineLocale'
export default defineLocale('繁体中文', {
export default defineLocale('繁体中文', 'zh-Hant', {
inputMenu: {
noMatch: '沒有匹配的資料',
noData: '沒有資料'

View File

@@ -36,5 +36,6 @@ export type LocalePair = {
export type Locale = {
name: string
code: string
ui: LocalePair
}

View File

@@ -9,6 +9,7 @@ export type Translator = (path: string, option?: TranslatorOption) => string
export type LocaleContext = {
locale: Ref<Locale>
lang: Ref<string>
code: Ref<string>
t: Translator
}
@@ -27,10 +28,12 @@ export function translate(path: string, option: undefined | TranslatorOption, lo
export function buildLocaleContext(locale: MaybeRef<Locale>): LocaleContext {
const lang = computed(() => unref(locale).name)
const code = computed(() => unref(locale).code)
const localeRef = isRef(locale) ? locale : ref(locale)
return {
lang,
code,
locale: localeRef,
t: buildTranslator(locale)
}