mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-07 00:36:41 +08:00
更新国际化支持:在多个组件中优化文本翻译,确保系统配置和存储设置相关提示信息的多语言显示。
This commit is contained in:
@@ -426,8 +426,6 @@ export default {
|
|||||||
network: 'Network',
|
network: 'Network',
|
||||||
log: 'Log',
|
log: 'Log',
|
||||||
lab: 'Lab',
|
lab: 'Lab',
|
||||||
reloadSuccess: 'System configuration has taken effect',
|
|
||||||
reloadFailed: 'Failed to reload system!',
|
|
||||||
downloaderSaveSuccess: 'Downloader settings saved successfully',
|
downloaderSaveSuccess: 'Downloader settings saved successfully',
|
||||||
downloaderSaveFailed: 'Failed to save downloader settings!',
|
downloaderSaveFailed: 'Failed to save downloader settings!',
|
||||||
defaultDownloaderNotice: 'No default downloader set, [{name}] has been set as the default downloader',
|
defaultDownloaderNotice: 'No default downloader set, [{name}] has been set as the default downloader',
|
||||||
@@ -445,6 +443,8 @@ export default {
|
|||||||
emby: 'Emby',
|
emby: 'Emby',
|
||||||
jellyfin: 'Jellyfin',
|
jellyfin: 'Jellyfin',
|
||||||
plex: 'Plex',
|
plex: 'Plex',
|
||||||
|
reloadSuccess: 'System configuration has taken effect',
|
||||||
|
reloadFailed: 'Failed to reload system!',
|
||||||
},
|
},
|
||||||
site: {
|
site: {
|
||||||
siteSync: 'Site Synchronization',
|
siteSync: 'Site Synchronization',
|
||||||
@@ -629,6 +629,9 @@ export default {
|
|||||||
organizeSaveSuccess: 'Organization options saved successfully',
|
organizeSaveSuccess: 'Organization options saved successfully',
|
||||||
organizeSaveFailed: 'Failed to save organization options!',
|
organizeSaveFailed: 'Failed to save organization options!',
|
||||||
duplicateDirectoryName: 'Duplicate directory names exist! Cannot save, please modify!',
|
duplicateDirectoryName: 'Duplicate directory names exist! Cannot save, please modify!',
|
||||||
|
defaultDirName: 'Directory',
|
||||||
|
storageSaveSuccess: 'Storage settings saved successfully',
|
||||||
|
storageSaveFailed: 'Failed to save storage settings!',
|
||||||
},
|
},
|
||||||
rule: {
|
rule: {
|
||||||
customRules: 'Custom Rules',
|
customRules: 'Custom Rules',
|
||||||
|
|||||||
@@ -424,8 +424,6 @@ export default {
|
|||||||
network: '网络',
|
network: '网络',
|
||||||
log: '日志',
|
log: '日志',
|
||||||
lab: '实验室',
|
lab: '实验室',
|
||||||
reloadSuccess: '系统配置已生效',
|
|
||||||
reloadFailed: '重载系统失败!',
|
|
||||||
downloaderSaveSuccess: '下载器设置保存成功',
|
downloaderSaveSuccess: '下载器设置保存成功',
|
||||||
downloaderSaveFailed: '下载器设置保存失败!',
|
downloaderSaveFailed: '下载器设置保存失败!',
|
||||||
defaultDownloaderNotice: '未设置默认下载器,已将【{name}】作为默认下载器',
|
defaultDownloaderNotice: '未设置默认下载器,已将【{name}】作为默认下载器',
|
||||||
@@ -443,6 +441,8 @@ export default {
|
|||||||
emby: 'Emby',
|
emby: 'Emby',
|
||||||
jellyfin: 'Jellyfin',
|
jellyfin: 'Jellyfin',
|
||||||
plex: 'Plex',
|
plex: 'Plex',
|
||||||
|
reloadSuccess: '系统配置已生效',
|
||||||
|
reloadFailed: '重载系统失败!',
|
||||||
},
|
},
|
||||||
site: {
|
site: {
|
||||||
siteSync: '站点同步',
|
siteSync: '站点同步',
|
||||||
@@ -616,6 +616,9 @@ export default {
|
|||||||
organizeSaveSuccess: '整理选项设置保存成功',
|
organizeSaveSuccess: '整理选项设置保存成功',
|
||||||
organizeSaveFailed: '整理选项设置保存失败!',
|
organizeSaveFailed: '整理选项设置保存失败!',
|
||||||
duplicateDirectoryName: '存在重复目录名称!无法保存,请修改!',
|
duplicateDirectoryName: '存在重复目录名称!无法保存,请修改!',
|
||||||
|
defaultDirName: '目录',
|
||||||
|
storageSaveSuccess: '存储设置保存成功',
|
||||||
|
storageSaveFailed: '存储设置保存失败!',
|
||||||
},
|
},
|
||||||
rule: {
|
rule: {
|
||||||
customRules: '自定义规则',
|
customRules: '自定义规则',
|
||||||
|
|||||||
@@ -64,8 +64,8 @@ async function reloadSystem() {
|
|||||||
progressDialog.value = true
|
progressDialog.value = true
|
||||||
try {
|
try {
|
||||||
const result: { [key: string]: any } = await api.get('system/reload')
|
const result: { [key: string]: any } = await api.get('system/reload')
|
||||||
if (result.success) $toast.success('系统配置已生效')
|
if (result.success) $toast.success(t('setting.system.reloadSuccess'))
|
||||||
else $toast.error('重载系统失败!')
|
else $toast.error(t('setting.system.reloadFailed'))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
@@ -95,8 +95,8 @@ async function loadStorages() {
|
|||||||
async function saveStorages() {
|
async function saveStorages() {
|
||||||
try {
|
try {
|
||||||
const result: { [key: string]: any } = await api.post('system/setting/Storages', storages.value)
|
const result: { [key: string]: any } = await api.post('system/setting/Storages', storages.value)
|
||||||
if (result.success) $toast.success('存储设置保存成功')
|
if (result.success) $toast.success(t('setting.directory.storageSaveSuccess'))
|
||||||
else $toast.error('存储设置保存失败!')
|
else $toast.error(t('setting.directory.storageSaveFailed'))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
@@ -123,14 +123,14 @@ async function saveDirectories() {
|
|||||||
try {
|
try {
|
||||||
const names = directories.value.map(item => item.name)
|
const names = directories.value.map(item => item.name)
|
||||||
if (new Set(names).size !== names.length) {
|
if (new Set(names).size !== names.length) {
|
||||||
$toast.error('存在重复目录名称!无法保存,请修改!')
|
$toast.error(t('setting.directory.duplicateDirectoryName'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const result: { [key: string]: any } = await api.post('system/setting/Directories', directories.value)
|
const result: { [key: string]: any } = await api.post('system/setting/Directories', directories.value)
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
$toast.success('目录设置保存成功')
|
$toast.success(t('setting.directory.directorySaveSuccess'))
|
||||||
await reloadSystem()
|
await reloadSystem()
|
||||||
} else $toast.error('目录设置保存失败!')
|
} else $toast.error(t('setting.directory.directorySaveFailed'))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
@@ -138,9 +138,11 @@ async function saveDirectories() {
|
|||||||
|
|
||||||
// 添加媒体库目录
|
// 添加媒体库目录
|
||||||
function addDirectory() {
|
function addDirectory() {
|
||||||
let name = `目录${directories.value.length + 1}`
|
let name = `${t('setting.directory.defaultDirName')}${directories.value.length + 1}`
|
||||||
while (directories.value.some(item => item.name === name)) {
|
while (directories.value.some(item => item.name === name)) {
|
||||||
name = `目录${parseInt(name.split('目录')[1]) + 1}`
|
name = `${t('setting.directory.defaultDirName')}${
|
||||||
|
parseInt(name.split(t('setting.directory.defaultDirName'))[1]) + 1
|
||||||
|
}`
|
||||||
}
|
}
|
||||||
directories.value.push({
|
directories.value.push({
|
||||||
name: name,
|
name: name,
|
||||||
@@ -177,8 +179,8 @@ async function saveSystemSettings(value: any) {
|
|||||||
try {
|
try {
|
||||||
const result: { [key: string]: any } = await api.post('system/env', value)
|
const result: { [key: string]: any } = await api.post('system/env', value)
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
$toast.success('整理选项设置保存成功')
|
$toast.success(t('setting.directory.organizeSaveSuccess'))
|
||||||
} else $toast.error('整理选项设置保存失败!')
|
} else $toast.error(t('setting.directory.organizeSaveFailed'))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ import api from '@/api'
|
|||||||
import type { FilterRuleGroup, Site } from '@/api/types'
|
import type { FilterRuleGroup, Site } from '@/api/types'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
|
// 国际化
|
||||||
|
const { t } = useI18n()
|
||||||
|
|
||||||
// 提示框
|
// 提示框
|
||||||
const $toast = useToast()
|
const $toast = useToast()
|
||||||
|
|
||||||
@@ -173,8 +176,6 @@ async function loadSystemSettings() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const { t } = useI18n()
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
querySites()
|
querySites()
|
||||||
queryFilterRuleGroups()
|
queryFilterRuleGroups()
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ import type { FilterRuleGroup, Site } from '@/api/types'
|
|||||||
import ProgressDialog from '@/components/dialog/ProgressDialog.vue'
|
import ProgressDialog from '@/components/dialog/ProgressDialog.vue'
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
|
|
||||||
|
// 国际化
|
||||||
|
const { t } = useI18n()
|
||||||
|
|
||||||
// 提示框
|
// 提示框
|
||||||
const $toast = useToast()
|
const $toast = useToast()
|
||||||
|
|
||||||
@@ -187,8 +190,6 @@ async function saveSubscribeSetting() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const { t } = useI18n()
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
querySites()
|
querySites()
|
||||||
queryFilterRuleGroups()
|
queryFilterRuleGroups()
|
||||||
|
|||||||
Reference in New Issue
Block a user