fix: i18n and lint

This commit is contained in:
kangfenmao
2025-03-22 22:28:02 +08:00
parent dcbe3ac1c6
commit dd1b538687
15 changed files with 129 additions and 101 deletions
+1 -1
View File
@@ -144,7 +144,7 @@ export function registerShortcuts(window: BrowserWindow) {
if (!shortcut.enabled) {
return
}
// only register universal shortcuts when needed
if (onlyUniversalShortcuts && !['show_app', 'mini_window'].includes(shortcut.key)) {
return
+1 -1
View File
@@ -144,7 +144,7 @@ export class WindowService {
private setupWindowEvents(mainWindow: BrowserWindow) {
mainWindow.once('ready-to-show', () => {
mainWindow.webContents.setZoomFactor(configManager.getZoomFactor())
// show window only when laucn to tray not set
const isLaunchToTray = configManager.getLaunchToTray()
if (!isLaunchToTray) {
+12 -1
View File
@@ -1,8 +1,12 @@
import { useSettings } from '@renderer/hooks/useSettings'
import { LanguageVarious } from '@renderer/types'
import { ConfigProvider, theme } from 'antd'
import elGR from 'antd/locale/el_GR'
import enUS from 'antd/locale/en_US'
import esES from 'antd/locale/es_ES'
import frFR from 'antd/locale/fr_FR'
import jaJP from 'antd/locale/ja_JP'
import ptPT from 'antd/locale/pt_PT'
import ruRU from 'antd/locale/ru_RU'
import zhCN from 'antd/locale/zh_CN'
import zhTW from 'antd/locale/zh_TW'
@@ -53,7 +57,14 @@ function getAntdLocale(language: LanguageVarious) {
return ruRU
case 'ja-JP':
return jaJP
case 'el-GR':
return elGR
case 'es-ES':
return esES
case 'fr-FR':
return frFR
case 'pt-PT':
return ptPT
default:
return zhCN
}
+2 -1
View File
@@ -1,5 +1,6 @@
import i18n from 'i18next'
import { initReactI18next } from 'react-i18next'
import elGR from './locales/el-gr.json'
import enUS from './locales/en-us.json'
import esES from './locales/es-es.json'
@@ -19,7 +20,7 @@ const resources = {
'pt-PT': ptPT,
'ru-RU': ruRU,
'zh-CN': zhCN,
'zh-TW': zhTW,
'zh-TW': zhTW
}
export const getLanguage = () => {
+2 -2
View File
@@ -556,7 +556,7 @@
"string": "文本"
},
"pinned": "已固定",
"rerank_model": "重排模型",
"rerank_model": "重排模型",
"rerank_model_support_provider": "目前重排序模型仅支持部分服务商 ({{provider}})",
"rerank_model_tooltip": "在设置->模型服务中点击管理按钮添加",
"search": "搜索模型...",
@@ -1170,4 +1170,4 @@
"visualization": "可视化"
}
}
}
}
+2 -2
View File
@@ -565,7 +565,7 @@
"string": "文字"
},
"pinned": "已固定",
"rerank_model": "重排模型",
"rerank_model": "重排模型",
"rerank_model_support_provider": "目前重排序模型僅支持部分服務商 ({{provider}})",
"rerank_model_tooltip": "在設定->模型服務中點擊管理按鈕添加",
"search": "搜尋模型...",
@@ -1179,4 +1179,4 @@
"visualization": "視覺化"
}
}
}
}
@@ -15,8 +15,8 @@ import { UploadOutlined } from '@ant-design/icons'
import ObsidianExportPopup from '@renderer/components/Popups/ObsidianExportPopup'
import SelectModelPopup from '@renderer/components/Popups/SelectModelPopup'
import TextEditPopup from '@renderer/components/Popups/TextEditPopup'
import { TranslateLanguageOptions } from '@renderer/config/translate'
import { isReasoningModel } from '@renderer/config/models'
import { TranslateLanguageOptions } from '@renderer/config/translate'
import { useMessageOperations } from '@renderer/hooks/useMessageOperations'
import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService'
import { getMessageTitle, resetAssistantMessage } from '@renderer/services/MessagesService'
@@ -24,7 +24,6 @@ import { translateText } from '@renderer/services/TranslateService'
import { Message, Model } from '@renderer/types'
import { Assistant, Topic } from '@renderer/types'
import { captureScrollableDivAsBlob, captureScrollableDivAsDataURL, removeTrailingDoubleSpaces } from '@renderer/utils'
import { withMessageThought } from '@renderer/utils/formats'
import {
exportMarkdownToJoplin,
exportMarkdownToNotion,
@@ -32,12 +31,13 @@ import {
exportMessageAsMarkdown,
messageToMarkdown
} from '@renderer/utils/export'
import { withMessageThought } from '@renderer/utils/formats'
import { Button, Dropdown, Popconfirm, Tooltip } from 'antd'
import dayjs from 'dayjs'
import { clone } from 'lodash'
import { FC, memo, useCallback, useMemo, useState } from 'react'
import { useTranslation } from 'react-i18next'
import styled from 'styled-components'
import { clone } from 'lodash'
interface Props {
message: Message
@@ -258,7 +258,7 @@ const MessageMenubar: FC<Props> = (props) => {
]
}
],
[message, messageContainerRef, onEdit, onNewBranch, t]
[message, messageContainerRef, onEdit, onNewBranch, t, topic.name]
)
const onRegenerate = async (e: React.MouseEvent | undefined) => {
@@ -26,8 +26,8 @@ import BeatLoader from 'react-spinners/BeatLoader'
import styled from 'styled-components'
import ChatNavigation from './ChatNavigation'
import MessageGroup from './MessageGroup'
import MessageAnchorLine from './MessageAnchorLine'
import MessageGroup from './MessageGroup'
import NarrowLayout from './NarrowLayout'
import NewTopicButton from './NewTopicButton'
import Prompt from './Prompt'
@@ -24,6 +24,7 @@ import {
setFontSize,
setMathEngine,
setMessageFont,
setMessageNavigation,
setMessageStyle,
setMultiModelMessageStyle,
setPasteLongTextAsFile,
@@ -31,7 +32,6 @@ import {
setRenderInputMessageAsMarkdown,
setShowInputEstimatedTokens,
setShowMessageDivider,
setMessageNavigation,
setThoughtAutoCollapse
} from '@renderer/store/settings'
import { Assistant, AssistantSettings, CodeStyleVarious, ThemeMode, TranslateLanguageVarious } from '@renderer/types'
@@ -584,10 +584,10 @@ const ModelInfo = styled.div`
.model-row {
display: flex;
align-items: flex-start;
gap: 10px;
}
.label-column {
width: 80px;
flex-shrink: 0;
}
@@ -12,13 +12,13 @@ import {
setWebdavSyncInterval as _setWebdavSyncInterval,
setWebdavUser as _setWebdavUser
} from '@renderer/store/settings'
import { formatFileSize } from '@renderer/utils'
import { Button, Input, Modal, Select, Spin, Tooltip } from 'antd'
import dayjs from 'dayjs'
import { FC, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { SettingDivider, SettingGroup, SettingRow, SettingRowTitle, SettingTitle } from '..'
import { formatFileSize } from '@renderer/utils'
interface BackupFile {
fileName: string
@@ -96,13 +96,13 @@ const GeneralSettings: FC = () => {
const languagesOptions: { value: LanguageVarious; label: string; flag: string }[] = [
{ value: 'zh-CN', label: '中文', flag: '🇨🇳' },
{ value: 'zh-TW', label: '中文(繁体)', flag: '🇭🇰' },
{ value: 'el-GR', label: 'Ελληνικά', flag: '🇬🇷' },
{ value: 'en-US', label: 'English', flag: '🇺🇸' },
{ value: 'ja-JP', label: '日本語', flag: '🇯🇵' },
{ value: 'ru-RU', label: 'Русский', flag: '🇷🇺' },
{ value: 'el-GR', label: 'Ελληνικά', flag: '🇬🇷' },
{ value: 'es-ES', label: 'Español', flag: '🇪🇸' },
{ value: 'fr-FR', label: 'Français', flag: '🇫🇷' },
{ value: 'ja-JP', label: '日本語', flag: '🇯🇵' },
{ value: 'pt-PT', label: 'Português', flag: '🇵🇹' },
{ value: 'ru-RU', label: 'Русский', flag: '🇷🇺' }
{ value: 'pt-PT', label: 'Português', flag: '🇵🇹' }
]
return (
-1
View File
@@ -168,7 +168,6 @@ const initialState: SettingsState = {
obsidianTages: '',
joplinToken: '',
joplinUrl: ''
}
const settingsSlice = createSlice({
+10 -1
View File
@@ -201,7 +201,16 @@ export enum ThemeMode {
export type LanguageVarious = 'zh-CN' | 'zh-TW' | 'el-GR' | 'en-US' | 'es-ES' | 'fr-FR' | 'ja-JP' | 'pt-PT' | 'ru-RU'
export type TranslateLanguageVarious = 'chinese' | 'chinese-traditional' | 'greek' | 'english' | 'spanish' | 'french' | 'japanese' | 'portuguese' | 'russian'
export type TranslateLanguageVarious =
| 'chinese'
| 'chinese-traditional'
| 'greek'
| 'english'
| 'spanish'
| 'french'
| 'japanese'
| 'portuguese'
| 'russian'
export type CodeStyleVarious = BuiltinTheme | 'auto'