20260903173038

This commit is contained in:
oneao committed 2026-09-03 17:30:39 +08:00
1 parent c8940f6e03
commit 0faf44cffc
55 files changed
+3278 -208

No files matched your search

+37
View File
@@ -0,0 +1,37 @@
import { computed, readonly, ref } from 'vue'
// 翻译目录独立于 Pinia:组件、服务和非组件代码都可以复用,切换目录时保持响应式。
const localeRef = ref('zh-CN')
const messagesRef = ref({})
export function translate(key, fallback = '') {
const normalizedKey = String(key || '')
const value = messagesRef.value[normalizedKey]
if (value !== undefined && value !== null && String(value) !== '') return String(value)
return fallback || normalizedKey
}
export function setLocale(locale) {
localeRef.value = String(locale || '')
}
export function setMessages(messages, locale = undefined) {
messagesRef.value = messages && typeof messages === 'object' ? { ...messages } : {}
if (locale !== undefined) setLocale(locale)
}
export function clearMessages() {
messagesRef.value = {}
}
export function useI18n() {
return {
locale: readonly(localeRef),
messages: readonly(messagesRef),
t: translate,
setLocale,
setMessages,
clearMessages,
localeValue: computed(() => localeRef.value),
}
}