mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-22 07:03:53 +08:00
- Adiciona arquivo de tradução pt_BR.js para manager-web (~1332 chaves) - Adiciona arquivo de tradução pt_BR.ts para manager-mobile (~440 chaves) - Cria README_pt_BR.md com documentação traduzida completa - Registra pt_BR no sistema i18n de ambos os frontends (web e mobile) - Adiciona pt_BR nos seletores de idioma (HeaderBar, login, retrievePassword) - Adiciona badge "Português (Brasil)" em todos os READMEs existentes - Adiciona detecção automática de idioma pt/pt-BR no navegador - Adiciona chave language.ptBR em todos os arquivos de tradução existentes https://claude.ai/code/session_01XJMVWKBjy7UwqskN9BbsYM
40 lines
1007 B
TypeScript
40 lines
1007 B
TypeScript
import { ref } from 'vue'
|
|
import { defineStore } from 'pinia'
|
|
|
|
// 支持的语言类型
|
|
export type Language = 'zh_CN' | 'en' | 'zh_TW' | 'de' | 'vi' | 'pt_BR'
|
|
|
|
export interface LangStore {
|
|
currentLang: Language
|
|
changeLang: (lang: Language) => void
|
|
}
|
|
|
|
export const useLangStore = defineStore(
|
|
'lang',
|
|
(): LangStore => {
|
|
// 从本地存储获取语言设置,如果没有则使用默认值
|
|
const savedLang = uni.getStorageSync('app_language') as Language | null
|
|
const currentLang = ref<Language>(savedLang || 'zh_CN')
|
|
|
|
// 切换语言
|
|
const changeLang = (lang: Language) => {
|
|
currentLang.value = lang
|
|
// 将语言设置保存到本地存储
|
|
uni.setStorageSync('app_language', lang)
|
|
}
|
|
|
|
return {
|
|
currentLang,
|
|
changeLang,
|
|
}
|
|
},
|
|
{
|
|
persist: {
|
|
key: 'lang',
|
|
serializer: {
|
|
serialize: state => JSON.stringify(state.currentLang),
|
|
deserialize: value => ({ currentLang: JSON.parse(value) }),
|
|
},
|
|
},
|
|
},
|
|
) |