feat: update language storage key and enhance theme button styles
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("electron");
|
require("electron");
|
||||||
require("./main-BSugeX-C.js");
|
require("./main-D4EDpIiu.js");
|
||||||
require("electron-squirrel-startup");
|
require("electron-squirrel-startup");
|
||||||
require("electron-log");
|
require("electron-log");
|
||||||
require("bytenode");
|
require("bytenode");
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ function buildResources() {
|
|||||||
// 获取持久化的语言设置(稍后由 Pinia store 提供)
|
// 获取持久化的语言设置(稍后由 Pinia store 提供)
|
||||||
function getPersistedLanguage(): LanguageCode | null {
|
function getPersistedLanguage(): LanguageCode | null {
|
||||||
try {
|
try {
|
||||||
const saved = localStorage.getItem('diona-language');
|
const saved = localStorage.getItem('zn-language');
|
||||||
return saved && SUPPORTED_LANGUAGE_CODES.includes(saved as LanguageCode) ? saved as LanguageCode : null;
|
return saved && SUPPORTED_LANGUAGE_CODES.includes(saved as LanguageCode) ? saved as LanguageCode : null;
|
||||||
} catch {
|
} catch {
|
||||||
return null;
|
return null;
|
||||||
@@ -88,7 +88,7 @@ export async function setLanguage(lang: LanguageCode, _i18n?: I18n) {
|
|||||||
|
|
||||||
// 持久化到 localStorage(稍后由 Pinia store 处理)
|
// 持久化到 localStorage(稍后由 Pinia store 处理)
|
||||||
try {
|
try {
|
||||||
localStorage.setItem('diona-language', lang);
|
localStorage.setItem('zn-language', lang);
|
||||||
} catch {}
|
} catch {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
class="theme-button px-5 py-1.5 rounded-full border text-[14px] font-medium transition-all duration-200 flex items-center gap-2"
|
class="theme-button px-5 py-1.5 rounded-full border text-[14px] font-medium transition-all duration-200 flex items-center gap-2"
|
||||||
:class="[
|
:class="[
|
||||||
currentTheme === 'light'
|
currentTheme === 'light'
|
||||||
? 'bg-green-50 dark:bg-green-900/20 border-green-500 dark:border-green-400 text-green-700 dark:text-green-300'
|
? 'bg-blue-50 dark:bg-blue-900/20 border-blue-500 dark:border-blue-400 text-blue-700 dark:text-blue-300'
|
||||||
: 'bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700'
|
: 'bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700'
|
||||||
]" @click="handleThemeChange('light')">
|
]" @click="handleThemeChange('light')">
|
||||||
<RiSunLine class="w-4 h-4" />
|
<RiSunLine class="w-4 h-4" />
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
class="theme-button px-5 py-1.5 rounded-full border text-[14px] font-medium transition-all duration-200 flex items-center gap-2"
|
class="theme-button px-5 py-1.5 rounded-full border text-[14px] font-medium transition-all duration-200 flex items-center gap-2"
|
||||||
:class="[
|
:class="[
|
||||||
currentTheme === 'dark'
|
currentTheme === 'dark'
|
||||||
? 'bg-green-50 dark:bg-green-900/20 border-green-500 dark:border-green-400 text-green-700 dark:text-green-300'
|
? 'bg-blue-50 dark:bg-blue-900/20 border-blue-500 dark:border-blue-400 text-blue-700 dark:text-blue-300'
|
||||||
: 'bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700'
|
: 'bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700'
|
||||||
]" @click="handleThemeChange('dark')">
|
]" @click="handleThemeChange('dark')">
|
||||||
<RiMoonLine class="w-4 h-4" />
|
<RiMoonLine class="w-4 h-4" />
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
class="theme-button px-5 py-1.5 rounded-full border text-[14px] font-medium transition-all duration-200 flex items-center gap-2"
|
class="theme-button px-5 py-1.5 rounded-full border text-[14px] font-medium transition-all duration-200 flex items-center gap-2"
|
||||||
:class="[
|
:class="[
|
||||||
currentTheme === 'system'
|
currentTheme === 'system'
|
||||||
? 'bg-green-50 dark:bg-green-900/20 border-green-500 dark:border-green-400 text-green-700 dark:text-green-300'
|
? 'bg-blue-50 dark:bg-blue-900/20 border-blue-500 dark:border-blue-400 text-blue-700 dark:text-blue-300'
|
||||||
: 'bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700'
|
: 'bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700'
|
||||||
]" @click="handleThemeChange('system')">
|
]" @click="handleThemeChange('system')">
|
||||||
<RiComputerLine class="w-4 h-4" />
|
<RiComputerLine class="w-4 h-4" />
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
class="theme-button px-5 py-1.5 rounded-full border text-[14px] font-medium transition-all duration-200 flex items-center gap-2"
|
class="theme-button px-5 py-1.5 rounded-full border text-[14px] font-medium transition-all duration-200 flex items-center gap-2"
|
||||||
:class="[
|
:class="[
|
||||||
currentLanguage === lang.code
|
currentLanguage === lang.code
|
||||||
? 'bg-green-50 dark:bg-green-900/20 border-green-500 dark:border-green-400 text-green-700 dark:text-green-300'
|
? 'bg-blue-50 dark:bg-blue-900/20 border-blue-500 dark:border-blue-400 text-blue-700 dark:text-blue-300'
|
||||||
: 'bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700'
|
: 'bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700'
|
||||||
]">
|
]">
|
||||||
{{ lang.label }}
|
{{ lang.label }}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { SUPPORTED_LANGUAGES, SUPPORTED_LANGUAGE_CODES } from '@src/i18n/constan
|
|||||||
import { resolveSupportedLanguage, detectSystemLanguage } from '@src/i18n/resolver';
|
import { resolveSupportedLanguage, detectSystemLanguage } from '@src/i18n/resolver';
|
||||||
|
|
||||||
// 持久化键
|
// 持久化键
|
||||||
const STORAGE_KEY = 'diona-language';
|
const STORAGE_KEY = 'zn-language';
|
||||||
|
|
||||||
interface LocaleState {
|
interface LocaleState {
|
||||||
language: LanguageCode;
|
language: LanguageCode;
|
||||||
|
|||||||
Reference in New Issue
Block a user