Feature(custom): optimize i18n and platform funcs

This commit is contained in:
Kuingsmile
2025-08-01 13:38:37 +08:00
parent 15e2f11b69
commit 70396c3e5c
38 changed files with 16 additions and 164 deletions
+1 -7
View File
@@ -1,17 +1,11 @@
import picgo from '@core/picgo'
import { app, IpcMainEvent, shell } from 'electron'
import { app, shell } from 'electron'
import { IRPCActionType } from '#/types/enum'
import { IIPCEvent } from '#/types/rpc'
import { i18nManager } from '~/i18n'
export default [
{
action: IRPCActionType.GET_PLATFORM,
handler: async (event: IIPCEvent) => {
(event as IpcMainEvent).returnValue = process.platform
}
},
{
action: IRPCActionType.RELOAD_APP,
handler: async () => {
+1 -1
View File
@@ -4,8 +4,8 @@ import path from 'node:path'
import { dbPathChecker } from '@core/datastore/dbChecker'
import fs from 'fs-extra'
import yaml from 'js-yaml'
import { ILocales } from 'root/src/universal/types/i18n'
import { ILocales } from '#/types/i18n'
import { i18nManager } from '~/i18n'
const configPath = dbPathChecker()
+1
View File
@@ -49,6 +49,7 @@ try {
clipboard: {
writeText: clipboard.writeText
},
platform: process.platform,
sendRpcSync,
triggerRPC,
sendToMain,
+1 -1
View File
@@ -438,7 +438,7 @@ async function getBucketList () {
function transPathToUnix (filePath: string | undefined) {
if (!filePath) return ''
return window.electron.sendRpcSync(IRPCActionType.GET_PLATFORM) === 'win32'
return window.electron.platform === 'win32'
? filePath
.split(window.node.path.sep)
.join(window.node.path.posix.sep)
+8 -8
View File
@@ -1417,12 +1417,12 @@ const languageList = [
}
]
const startModeList = Object.values(ISartMode).map(item => ({
const startModeList = computed(() => Object.values(ISartMode).map(item => ({
label: t(`SETTINGS_START_MODE_${item.toUpperCase().replace(/-/g, '_')}` as any),
value: item
}))
})))
const manualPageOpenList = [
const manualPageOpenList = computed(() => [
{
label: t('MANUAL_PAGE_OPEN_BY_BUILD_IN'),
value: 'window'
@@ -1431,7 +1431,7 @@ const manualPageOpenList = [
label: t('MANUAL_PAGE_OPEN_BY_BROWSER'),
value: 'browser'
}
]
])
const showPicBedList = computed(
() =>
@@ -1676,12 +1676,12 @@ async function initData () {
formOfSetting.value.logLevel = initArray(settings.logLevel || [], ['all'])
formOfSetting.value.autoImportPicBed = initArray(settings.autoImportPicBed || [], [])
currentLanguage.value = valueToOptionItem(settings.language || 'zh-CN', languageList)
currentStartMode.value = valueToOptionItem(settings.startMode || ISartMode.QUIET, startModeList)
currentStartMode.value = valueToOptionItem(settings.startMode || ISartMode.QUIET, startModeList.value)
if (osGlobal.value === 'darwin' && currentStartMode.value.value === ISartMode.MINI) {
currentStartMode.value = valueToOptionItem(ISartMode.QUIET, startModeList)
currentStartMode.value = valueToOptionItem(ISartMode.QUIET, startModeList.value)
saveConfig(configPaths.settings.startMode, ISartMode.QUIET)
}
currentManualPageOpen.value = valueToOptionItem(settings.manualPageOpen || 'window', manualPageOpenList)
currentManualPageOpen.value = valueToOptionItem(settings.manualPageOpen || 'window', manualPageOpenList.value)
currentShortUrlServer.value = valueToOptionItem(settings.shortUrlServer || 'c1n', shortUrlServerList)
customLink.value = settings.customLink || '![$fileName]($url)'
proxy.value = picBed.proxy || ''
@@ -2040,7 +2040,7 @@ function handleStartModeChange (val: ISartModeValues) {
if (val === ISartMode.NO_TRAY) {
if (formOfSetting.value.isHideDock) {
ElMessage.warning(t('SETTINGS_ISHIDEDOCK_TIPS'))
currentStartMode.value = valueToOptionItem(ISartMode.QUIET, startModeList)
currentStartMode.value = valueToOptionItem(ISartMode.QUIET, startModeList.value)
return
}
$message.info(t('TIPS_NEED_RELOAD'))
+2 -2
View File
@@ -3,8 +3,8 @@ import { ref } from 'vue'
import { IRPCActionType } from '#/types/enum'
import { IPicBedType } from '#/types/types'
console.log('global.ts loaded', window.node.crypto.randomBytes(16).toString('hex'))
const osGlobal = ref<string>(window.electron.sendRpcSync(IRPCActionType.GET_PLATFORM))
console.log('global.ts loaded', window.electron.platform)
const osGlobal = ref<string>(window.electron.platform)
const picBedGlobal = ref<IPicBedType[]>([])
const pageReloadCount = ref(0)
+1 -3
View File
@@ -1,5 +1,3 @@
import { IRPCActionType } from '#/types/enum'
const isSpecialKey = (key: string) => {
const keyArr = ['Shift', 'Control', 'Alt', 'Meta']
@@ -7,7 +5,7 @@ const isSpecialKey = (key: string) => {
}
const keyBinding = (event: KeyboardEvent) => {
const meta = window.electron.sendRpcSync(IRPCActionType.GET_PLATFORM) === 'darwin' ? 'Cmd' : 'Super'
const meta = window.electron.platform === 'darwin' ? 'Cmd' : 'Super'
const specialKey = {
Ctrl: event.ctrlKey,
Shift: event.shiftKey,
-1
View File
@@ -95,7 +95,6 @@ export enum IRPCActionType {
MAIN_WINDOW_ON_TOP = 'MAIN_WINDOW_ON_TOP',
UPDATE_MINI_WINDOW_ICON = 'UPDATE_MINI_WINDOW_ICON',
REFRESH_SETTING_WINDOW = 'REFRESH_SETTING_WINDOW',
GET_PLATFORM = 'GET_PLATFORM',
// picbed RPC
PICBED_GET_PICBED_CONFIG = 'PICBED_GET_PICBED_CONFIG',
PICBED_GET_CONFIG_LIST = 'PICBED_GET_CONFIG_LIST',
+1
View File
@@ -22,6 +22,7 @@ declare global {
}
export interface Window {
electron: {
platform: string
setVisualZoomLevelLimits: (min: number, max: number) => void
sendRpcSync: (action: IRPCActionType, ...args: any[]) => any
triggerRPC: <T>(action: IRPCActionType, ...args: any[]) => Promise<T | undefined>