blog-robertops-v2/src/i18n/translation.ts

34 lines
744 B
TypeScript
Raw Normal View History

import { siteConfig } from '../config.ts'
import type I18nKey from './i18nKey.ts'
import { en } from './languages/en.ts'
import { ja } from './languages/ja.ts'
import { zh_CN } from './languages/zh_CN.ts'
import { zh_TW } from './languages/zh_TW.ts'
export type Translation = {
[K in I18nKey]: string
}
const defaultTranslation = en
const map: { [key: string]: Translation } = {
en: en,
en_us: en,
en_gb: en,
en_au: en,
zh_cn: zh_CN,
zh_tw: zh_TW,
ja: ja,
ja_jp: ja,
}
export function getTranslation(lang: string): Translation {
lang = lang.toLowerCase()
return map[lang] || defaultTranslation
}
export function i18n(key: I18nKey): string {
const lang = siteConfig.lang || 'en'
return getTranslation(lang)[key]
}