mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
feat(projects): 1.0 beta
This commit is contained in:
19
src/locales/dayjs.ts
Normal file
19
src/locales/dayjs.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import { locale } from 'dayjs';
|
||||
import 'dayjs/locale/zh-cn';
|
||||
import 'dayjs/locale/en';
|
||||
import { localStg } from '@/utils/storage';
|
||||
|
||||
/**
|
||||
* set dayjs locale
|
||||
* @param lang
|
||||
*/
|
||||
export function setDayjsLocale(lang: App.I18n.LangType = 'zh-CN') {
|
||||
const localMap = {
|
||||
'zh-CN': 'zh-cn',
|
||||
'en-US': 'en'
|
||||
} satisfies Record<App.I18n.LangType, string>;
|
||||
|
||||
const l = lang || localStg.get('lang') || 'zh-CN';
|
||||
|
||||
locale(localMap[l]);
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
import type { App } from 'vue';
|
||||
import { createI18n } from 'vue-i18n';
|
||||
import type { TranslateOptions } from 'vue-i18n';
|
||||
import { localStg } from '@/utils/storage';
|
||||
import messages from './locale';
|
||||
|
||||
const i18n = createI18n({
|
||||
locale: localStg.get('lang') || 'zh-CN',
|
||||
fallbackLocale: 'en',
|
||||
messages,
|
||||
legacy: false
|
||||
});
|
||||
|
||||
export function setupI18n(app: App) {
|
||||
app.use(i18n);
|
||||
}
|
||||
|
||||
interface T {
|
||||
(key: I18nType.I18nKey): string;
|
||||
(key: I18nType.I18nKey, plural: number, options?: TranslateOptions<I18nType.LangType>): string;
|
||||
(key: I18nType.I18nKey, defaultMsg: string, options?: TranslateOptions<I18nType.I18nKey>): string;
|
||||
(key: I18nType.I18nKey, list: unknown[], options?: TranslateOptions<I18nType.I18nKey>): string;
|
||||
(key: I18nType.I18nKey, list: unknown[], plural: number): string;
|
||||
(key: I18nType.I18nKey, list: unknown[], defaultMsg: string): string;
|
||||
(key: I18nType.I18nKey, named: Record<string, unknown>, options?: TranslateOptions<I18nType.LangType>): string;
|
||||
(key: I18nType.I18nKey, named: Record<string, unknown>, plural: number): string;
|
||||
(key: I18nType.I18nKey, named: Record<string, unknown>, defaultMsg: string): string;
|
||||
}
|
||||
|
||||
export const $t = i18n.global.t as T;
|
||||
|
||||
export function setLocale(locale: I18nType.LangType) {
|
||||
i18n.global.locale.value = locale;
|
||||
}
|
@ -1 +1,25 @@
|
||||
export * from './i18n';
|
||||
import type { App } from 'vue';
|
||||
import { createI18n } from 'vue-i18n';
|
||||
import { localStg } from '@/utils/storage';
|
||||
import messages from './locale';
|
||||
|
||||
const i18n = createI18n({
|
||||
locale: localStg.get('lang') || 'zh-CN',
|
||||
fallbackLocale: 'en',
|
||||
messages,
|
||||
legacy: false
|
||||
});
|
||||
|
||||
/**
|
||||
* setup plugin i18n
|
||||
* @param app
|
||||
*/
|
||||
export function setupI18n(app: App) {
|
||||
app.use(i18n);
|
||||
}
|
||||
|
||||
export const $t = i18n.global.t as App.I18n.$T;
|
||||
|
||||
export function setLocale(locale: App.I18n.LangType) {
|
||||
i18n.global.locale.value = locale;
|
||||
}
|
||||
|
214
src/locales/lang/en-us.ts
Normal file
214
src/locales/lang/en-us.ts
Normal file
@ -0,0 +1,214 @@
|
||||
const local: App.I18n.Schema = {
|
||||
system: {
|
||||
title: 'SoybeanAdmin'
|
||||
},
|
||||
common: {
|
||||
tip: 'Tip',
|
||||
add: 'Add',
|
||||
addSuccess: 'Add Success',
|
||||
edit: 'Edit',
|
||||
editSuccess: 'Edit Success',
|
||||
delete: 'Delete',
|
||||
deleteSuccess: 'Delete Success',
|
||||
batchDelete: 'Batch Delete',
|
||||
confirm: 'Confirm',
|
||||
cancel: 'Cancel',
|
||||
pleaseCheckValue: 'Please check whether the value is valid',
|
||||
action: 'Action',
|
||||
backToHome: 'Back to home',
|
||||
lookForward: 'Coming soon',
|
||||
userCenter: 'User Center',
|
||||
logout: 'Logout',
|
||||
logoutConfirm: 'Are you sure you want to log out?'
|
||||
},
|
||||
theme: {
|
||||
themeSchema: {
|
||||
title: 'Theme Schema',
|
||||
light: 'Light',
|
||||
dark: 'Dark',
|
||||
auto: 'Follow System'
|
||||
},
|
||||
layoutMode: {
|
||||
title: 'Layout Mode',
|
||||
vertical: 'Vertical Menu Mode',
|
||||
horizontal: 'Horizontal Menu Mode',
|
||||
'vertical-mix': 'Vertical Mix Menu Mode',
|
||||
'horizontal-mix': 'Horizontal Mix menu Mode'
|
||||
},
|
||||
themeColor: {
|
||||
title: 'Theme Color',
|
||||
primary: 'Primary',
|
||||
info: 'Info',
|
||||
success: 'Success',
|
||||
warning: 'Warning',
|
||||
error: 'Error',
|
||||
followPrimary: 'Follow Primary'
|
||||
},
|
||||
scrollMode: {
|
||||
title: 'Scroll Mode',
|
||||
wrapper: 'Wrapper',
|
||||
content: 'Content'
|
||||
},
|
||||
page: {
|
||||
animate: 'Page Animate',
|
||||
mode: {
|
||||
title: 'Page Animate Mode',
|
||||
fade: 'Fade',
|
||||
'fade-slide': 'Slide',
|
||||
'fade-bottom': 'Fade Zoom',
|
||||
'fade-scale': 'Fade Scale',
|
||||
'zoom-fade': 'Zoom Fade',
|
||||
'zoom-out': 'Zoom Out',
|
||||
none: 'None'
|
||||
}
|
||||
},
|
||||
fixedHeaderAndTab: 'Fixed Header And Tab',
|
||||
header: {
|
||||
height: 'Header Height',
|
||||
breadcrumb: {
|
||||
visible: 'Breadcrumb Visible',
|
||||
showIcon: 'Breadcrumb Icon Visible'
|
||||
}
|
||||
},
|
||||
tab: {
|
||||
visible: 'Tab Visible',
|
||||
cache: 'Tab Cache',
|
||||
height: 'Tab Height',
|
||||
mode: {
|
||||
title: 'Tab Mode',
|
||||
chrome: 'Chrome',
|
||||
button: 'Button'
|
||||
}
|
||||
},
|
||||
sider: {
|
||||
inverted: 'Dark Sider',
|
||||
width: 'Sider Width',
|
||||
collapsedWidth: 'Sider Collapsed Width',
|
||||
mixWidth: 'Mix Sider Width',
|
||||
mixCollapsedWidth: 'Mix Sider Collapse Width',
|
||||
mixChildMenuWidth: 'Mix Child Menu Width'
|
||||
},
|
||||
footer: {
|
||||
visible: 'Footer Visible',
|
||||
fixed: 'Fixed Footer',
|
||||
height: 'Footer Height',
|
||||
right: 'Right Footer'
|
||||
},
|
||||
themeDrawerTitle: 'Theme Configuration',
|
||||
pageFunTitle: 'Page Function',
|
||||
configOperation: {
|
||||
copyConfig: 'Copy Config',
|
||||
copySuccessMsg: 'Copy Success, Please replace the variable "themeSettings" in "src/theme/settings.ts"',
|
||||
resetConfig: 'Reset Config',
|
||||
resetSuccessMsg: 'Reset Success'
|
||||
}
|
||||
},
|
||||
route: {
|
||||
login: 'Login',
|
||||
403: 'No Permission',
|
||||
404: 'Page Not Found',
|
||||
500: 'Server Error',
|
||||
home: 'Home',
|
||||
'user-center': 'User Center',
|
||||
manage: 'System Manage',
|
||||
manage_user: 'User Manage',
|
||||
'manage_user-detail': 'User Detail',
|
||||
manage_role: 'Role Manage',
|
||||
manage_route: 'Route Manage',
|
||||
'multi-menu': 'Multi Menu',
|
||||
'multi-menu_first': 'Menu One',
|
||||
'multi-menu_first_child': 'Menu One Child',
|
||||
'multi-menu_second': 'Menu Two',
|
||||
'multi-menu_second_child': 'Menu Two Child',
|
||||
'multi-menu_second_child_home': 'Menu Two Child Home'
|
||||
},
|
||||
page: {
|
||||
login: {
|
||||
common: {
|
||||
loginOrRegister: 'Login / Register',
|
||||
userNamePlaceholder: 'Please enter user name',
|
||||
phonePlaceholder: 'Please enter phone number',
|
||||
codePlaceholder: 'Please enter verification code',
|
||||
passwordPlaceholder: 'Please enter password',
|
||||
confirmPasswordPlaceholder: 'Please enter password again',
|
||||
codeLogin: 'Verification code login',
|
||||
confirm: 'Confirm',
|
||||
back: 'Back',
|
||||
validateSuccess: 'Verification passed',
|
||||
loginSuccess: 'Login successfully',
|
||||
welcomeBack: 'Welcome back, {userName} !'
|
||||
},
|
||||
pwdLogin: {
|
||||
title: 'Password Login',
|
||||
rememberMe: 'Remember me',
|
||||
forgetPassword: 'Forget password?',
|
||||
register: 'Register',
|
||||
otherAccountLogin: 'Other Account Login',
|
||||
otherLoginMode: 'Other Login Mode',
|
||||
superAdmin: 'Super Administrator',
|
||||
admin: 'Administrator',
|
||||
user: 'Ordinary User'
|
||||
},
|
||||
codeLogin: {
|
||||
title: 'Verification Code Login',
|
||||
getCode: 'Get verification code',
|
||||
imageCodePlaceholder: 'Please enter image verification code'
|
||||
},
|
||||
register: {
|
||||
title: 'Register',
|
||||
agreement: 'I have read and agree to',
|
||||
protocol: '《User Agreement》',
|
||||
policy: '《Privacy Policy》'
|
||||
},
|
||||
resetPwd: {
|
||||
title: 'Reset Password'
|
||||
},
|
||||
bindWeChat: {
|
||||
title: 'Bind WeChat'
|
||||
}
|
||||
}
|
||||
},
|
||||
form: {
|
||||
userName: {
|
||||
required: 'Please enter user name',
|
||||
invalid: 'User name format is incorrect'
|
||||
},
|
||||
phone: {
|
||||
required: 'Please enter phone number',
|
||||
invalid: 'Phone number format is incorrect'
|
||||
},
|
||||
pwd: {
|
||||
required: 'Please enter password',
|
||||
invalid: 'Password format is incorrect'
|
||||
},
|
||||
code: {
|
||||
required: 'Please enter verification code',
|
||||
invalid: 'Verification code format is incorrect'
|
||||
},
|
||||
email: {
|
||||
required: 'Please enter email',
|
||||
invalid: 'Email format is incorrect'
|
||||
}
|
||||
},
|
||||
dropdown: {
|
||||
closeCurrent: 'Close Current',
|
||||
closeOther: 'Close Other',
|
||||
closeLeft: 'Close Left',
|
||||
closeRight: 'Close Right',
|
||||
closeAll: 'Close All'
|
||||
},
|
||||
icon: {
|
||||
themeConfig: 'Theme Configuration',
|
||||
themeSchema: 'Theme Schema',
|
||||
lang: 'Switch Language',
|
||||
fullscreen: 'Fullscreen',
|
||||
fullscreenExit: 'Exit Fullscreen',
|
||||
reload: 'Reload Page',
|
||||
collapse: 'Collapse Menu',
|
||||
expand: 'Expand Menu',
|
||||
pin: 'Pin',
|
||||
unpin: 'Unpin'
|
||||
}
|
||||
};
|
||||
|
||||
export default local;
|
@ -1,219 +0,0 @@
|
||||
const locale: I18nType.Schema = {
|
||||
system: {
|
||||
title: 'SoybeanAdmin'
|
||||
},
|
||||
common: {
|
||||
add: 'Add',
|
||||
addSuccess: 'Add Success',
|
||||
edit: 'Edit',
|
||||
editSuccess: 'Edit Success',
|
||||
delete: 'Delete',
|
||||
deleteSuccess: 'Delete Success',
|
||||
batchDelete: 'Batch Delete',
|
||||
confirm: 'Confirm',
|
||||
cancel: 'Cancel',
|
||||
pleaseCheckValue: 'Please check the value is valid',
|
||||
action: 'Action'
|
||||
},
|
||||
routes: {
|
||||
dashboard: {
|
||||
_value: 'Dashboard',
|
||||
analysis: 'Analysis',
|
||||
workbench: 'Workbench'
|
||||
},
|
||||
document: {
|
||||
_value: 'Document',
|
||||
vue: 'Vue Document',
|
||||
vite: 'Vite Document',
|
||||
naive: 'NaiveUI Document',
|
||||
project: 'Project Document',
|
||||
'project-link': 'Project Document(href)'
|
||||
},
|
||||
component: {
|
||||
_value: 'Component',
|
||||
button: 'Button',
|
||||
card: 'Card',
|
||||
table: 'Table'
|
||||
},
|
||||
plugin: {
|
||||
_value: 'Plugin',
|
||||
charts: {
|
||||
_value: 'Chart',
|
||||
echarts: 'ECharts',
|
||||
antv: 'AntV'
|
||||
},
|
||||
copy: 'Copy',
|
||||
editor: {
|
||||
_value: 'Editor',
|
||||
quill: 'Quill',
|
||||
markdown: 'Markdown'
|
||||
},
|
||||
icon: 'Icon',
|
||||
map: 'Map',
|
||||
print: 'Print',
|
||||
swiper: 'Swiper',
|
||||
video: 'Video'
|
||||
},
|
||||
'auth-demo': {
|
||||
_value: 'Auth Demo',
|
||||
permission: 'Toggle Permission',
|
||||
super: 'Super Auth'
|
||||
},
|
||||
function: {
|
||||
_value: 'Function',
|
||||
tab: 'System Tab'
|
||||
},
|
||||
exception: {
|
||||
_value: 'Exception',
|
||||
403: '403',
|
||||
404: '404',
|
||||
500: '500'
|
||||
},
|
||||
'multi-menu': {
|
||||
_value: 'Multi Degree Menu',
|
||||
first: {
|
||||
_value: 'First Degree',
|
||||
second: 'Second Degree',
|
||||
'second-new': {
|
||||
_value: 'Second Degree With Children',
|
||||
third: 'Third Degree'
|
||||
}
|
||||
}
|
||||
},
|
||||
management: {
|
||||
_value: 'System Management',
|
||||
auth: 'Auth',
|
||||
role: 'Role',
|
||||
route: 'Route',
|
||||
user: 'User'
|
||||
},
|
||||
about: 'About'
|
||||
},
|
||||
layout: {
|
||||
settingDrawer: {
|
||||
title: 'Theme configuration',
|
||||
themeModeTitle: 'Theme mode',
|
||||
darkMode: 'Dark mode',
|
||||
layoutModelTitle: 'Layout mode',
|
||||
systemThemeTitle: 'System theme',
|
||||
pageFunctionsTitle: 'Page functions',
|
||||
pageViewTitle: 'Page view',
|
||||
followSystemTheme: 'Follow the system',
|
||||
isCustomizeDarkModeTransition: 'Custom dark theme animation transition',
|
||||
scrollMode: 'scrollMode',
|
||||
scrollModeList: {
|
||||
wrapper: 'Outer layer scroll',
|
||||
content: 'Main body scroll'
|
||||
},
|
||||
fixedHeaderAndTab: 'Fixed header and multiple tabs',
|
||||
header: {
|
||||
inverted: 'darkHead',
|
||||
height: 'Head Height',
|
||||
crumb: {
|
||||
visible: 'Crumb',
|
||||
icon: 'Crumb icon'
|
||||
}
|
||||
},
|
||||
tab: {
|
||||
visible: 'Multi-page tab',
|
||||
height: 'Multiple tab height',
|
||||
modeList: {
|
||||
mode: 'Multi-tab style',
|
||||
chrome: 'Google style',
|
||||
button: 'Button style'
|
||||
},
|
||||
isCache: 'Multiple tab caching'
|
||||
},
|
||||
sider: {
|
||||
inverted: 'Dark sidebar',
|
||||
width: 'Sidebar expanded width',
|
||||
mixWidth: 'Left hybrid sidebar expanded width'
|
||||
},
|
||||
menu: {
|
||||
horizontalPosition: 'Top menu position',
|
||||
horizontalPositionList: {
|
||||
flexStart: 'Right',
|
||||
center: 'center',
|
||||
flexEnd: 'Left'
|
||||
}
|
||||
},
|
||||
footer: {
|
||||
inverted: 'Dark bottom',
|
||||
visible: 'Show bottom',
|
||||
fixed: 'Fixed bottom',
|
||||
right: 'Bottom to the right'
|
||||
},
|
||||
page: {
|
||||
animate: 'switch animation',
|
||||
animateMode: 'switch animation type',
|
||||
animateModeList: {
|
||||
zoomFade: 'Gradual change',
|
||||
zoomOut: 'Flash',
|
||||
fadeSlide: 'Slide',
|
||||
fade: 'Fade away',
|
||||
fadeBottom: 'Bottom fade',
|
||||
fadeScale: 'Resizing fade away'
|
||||
}
|
||||
},
|
||||
systemTheme: {
|
||||
moreColors: 'More colors'
|
||||
},
|
||||
themeConfiguration: {
|
||||
title: 'Theme configuration',
|
||||
copy: 'Copy the current configuration',
|
||||
reset: 'Reset the current configuration',
|
||||
resetSuccess: 'The configuration has been reset, please copy it again!',
|
||||
operateSuccess: 'Successful operation',
|
||||
copySuccess: 'Copy success, please replace the content of src/settings/theme.json!',
|
||||
confirmCopy: 'Confirm'
|
||||
}
|
||||
}
|
||||
},
|
||||
page: {
|
||||
login: {
|
||||
common: {
|
||||
userNamePlaceholder: 'Please enter user name',
|
||||
phonePlaceholder: 'Please enter phone number',
|
||||
codePlaceholder: 'Please enter verification code',
|
||||
passwordPlaceholder: 'Please enter password',
|
||||
confirmPasswordPlaceholder: 'Please enter password again',
|
||||
codeLogin: 'Verification code login',
|
||||
confirm: 'Confirm',
|
||||
back: 'Back',
|
||||
validateSuccess: 'Verification passed',
|
||||
loginSuccess: 'Login success',
|
||||
welcomeBack: 'Welcome back, {userName}!'
|
||||
},
|
||||
pwdLogin: {
|
||||
title: 'Password Login',
|
||||
rememberMe: 'Remember me',
|
||||
forgetPassword: 'Forget password?',
|
||||
register: 'Register account',
|
||||
otherAccountLogin: 'Other Account Login',
|
||||
otherLoginMode: 'Other Login Mode',
|
||||
superAdmin: 'Super Administrator',
|
||||
admin: 'Administrator',
|
||||
user: 'Ordinary User'
|
||||
},
|
||||
codeLogin: {
|
||||
title: 'Verification Code Login',
|
||||
getCode: 'Get verification code',
|
||||
imageCodePlaceholder: 'Please enter image verification code'
|
||||
},
|
||||
register: {
|
||||
title: 'Register Account',
|
||||
agreement: 'I have read and agree to',
|
||||
protocol: '《User Agreement》',
|
||||
policy: '《Privacy Policy》'
|
||||
},
|
||||
resetPwd: {
|
||||
title: 'Reset Password'
|
||||
},
|
||||
bindWeChat: {
|
||||
title: 'Bind WeChat'
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default locale;
|
@ -1,219 +0,0 @@
|
||||
const locale: I18nType.Schema = {
|
||||
system: {
|
||||
title: 'ប្រព័ន្ធគ្រប់គ្រង'
|
||||
},
|
||||
common: {
|
||||
add: 'បន្ថែម',
|
||||
addSuccess: 'បន្ថែមជោគជ័យ',
|
||||
edit: 'កែប្រែ',
|
||||
editSuccess: 'កែប្រែជោគជ័យ',
|
||||
delete: 'លុប',
|
||||
deleteSuccess: 'លុបជោគជ័យ',
|
||||
batchDelete: 'លុបច្រើន',
|
||||
confirm: 'យល់ព្រម',
|
||||
cancel: 'បោះបង់',
|
||||
pleaseCheckValue: 'សូមពិនិត្យមើលតម្លៃដែលបានបញ្ចូលដើម្បីបញ្ជាក់ថាត្រូវប្រើប្រាស់បាន',
|
||||
action: 'សកម្មភាព'
|
||||
},
|
||||
routes: {
|
||||
dashboard: {
|
||||
_value: 'ផ្ទាំងទិន្នន័យ',
|
||||
analysis: 'ផ្ទាំងវិភាគ',
|
||||
workbench: 'ផ្ទាំងការងារ'
|
||||
},
|
||||
document: {
|
||||
_value: 'ឯកសារ',
|
||||
vue: 'ឯកសារ Vue',
|
||||
vite: 'ឯកសារ Vite',
|
||||
naive: 'ឯកសារ NaiveUI',
|
||||
project: 'ឯកសារគម្រោង',
|
||||
'project-link': 'ឯកសារគម្រោង(href)'
|
||||
},
|
||||
component: {
|
||||
_value: 'សមាសភាគ',
|
||||
button: 'ប៊ូតុង',
|
||||
card: 'កាត',
|
||||
table: 'តារាង'
|
||||
},
|
||||
plugin: {
|
||||
_value: 'មុខងារជំនួយ',
|
||||
charts: {
|
||||
_value: 'តារាង Chart',
|
||||
echarts: 'តារាង ECharts',
|
||||
antv: 'AntV'
|
||||
},
|
||||
copy: 'ចម្លង',
|
||||
editor: {
|
||||
_value: 'កែប្រែ',
|
||||
quill: 'Quill',
|
||||
markdown: 'Markdown'
|
||||
},
|
||||
icon: 'អាយខន',
|
||||
map: 'ផែនទី',
|
||||
print: 'បោះពុម្ភ',
|
||||
swiper: 'Swiper',
|
||||
video: 'វីដេអូ'
|
||||
},
|
||||
'auth-demo': {
|
||||
_value: 'ឌីមូ Auth',
|
||||
permission: 'បិទ/បើកការអនុញ្ញាត',
|
||||
super: 'Super Auth'
|
||||
},
|
||||
function: {
|
||||
_value: 'មុខងារ',
|
||||
tab: 'ថេបប្រព័ន្ធ'
|
||||
},
|
||||
exception: {
|
||||
_value: 'ករណីពិេសស',
|
||||
403: '403',
|
||||
404: '404',
|
||||
500: '500'
|
||||
},
|
||||
'multi-menu': {
|
||||
_value: 'ម៉ឺនុយពហុដឺក្រេ',
|
||||
first: {
|
||||
_value: 'ដឺក្រេទី១',
|
||||
second: 'ដែក្រេទី២',
|
||||
'second-new': {
|
||||
_value: 'ដឺក្រេទី២មានអនុក្រោម',
|
||||
third: 'ដឺក្រេទី៣'
|
||||
}
|
||||
}
|
||||
},
|
||||
management: {
|
||||
_value: 'ការគ្រប់គ្រងប្រព័ន្ធ',
|
||||
auth: 'Auth',
|
||||
role: 'សិទ្ធី',
|
||||
route: 'ផ្លូវប្រព័ន្ធ',
|
||||
user: 'អ្នកប្រើប្រាស់'
|
||||
},
|
||||
about: 'អំពីប្រព័ន្ធ'
|
||||
},
|
||||
layout: {
|
||||
settingDrawer: {
|
||||
title: 'ការកំណត់ស្បែក',
|
||||
themeModeTitle: 'ស្បែករបស់របស់អ្នក',
|
||||
darkMode: 'របៀបងារស្បែកងងឹត',
|
||||
layoutModelTitle: 'របៀបប្រើប្រាស់របស់អ្នក',
|
||||
systemThemeTitle: 'ស្បែករបស់ប្រព័ន្ធគ្រប់គ្រង',
|
||||
pageFunctionsTitle: 'មុខងារទំនាក់ទំនងរបស់ទំព័រ',
|
||||
pageViewTitle: 'ទំព័រទស្សន៍ទាយ',
|
||||
followSystemTheme: 'តាមដានស្បែកប្រព័ន្ធគ្រប់គ្រង',
|
||||
isCustomizeDarkModeTransition: 'ប្រើប្រាស់របៀបងារស្បែកងងឹតផ្ទាល់ខ្លួន',
|
||||
scrollMode: 'របៀបរុករក',
|
||||
scrollModeList: {
|
||||
wrapper: 'រុករកជាក់លាក់',
|
||||
content: 'រុករកមានមុខងារ'
|
||||
},
|
||||
fixedHeaderAndTab: 'បិទការរុករកជាក់លាក់និងរុករកមានមុខងារ',
|
||||
header: {
|
||||
inverted: 'បង្កើតការរុករកជាក់លាក់',
|
||||
height: 'កម្ពស់',
|
||||
crumb: {
|
||||
visible: 'បង្ហាញរុករកជាក់លាក់',
|
||||
icon: 'រុករកជាក់លាក់រូបតំណាង'
|
||||
}
|
||||
},
|
||||
tab: {
|
||||
visible: 'បង្ហាញរុករកជាក់លាក់',
|
||||
height: 'កម្ពស់',
|
||||
modeList: {
|
||||
mode: 'របៀប',
|
||||
chrome: 'ក្រុមហ៊ុន',
|
||||
button: 'ប៊ូតុង'
|
||||
},
|
||||
isCache: 'រក្សាទុកការរុករកជាក់លាក់'
|
||||
},
|
||||
sider: {
|
||||
inverted: 'បង្កើតការរុករកជាក់លាក់',
|
||||
width: 'ទទឹង',
|
||||
mixWidth: 'ទទឹងបញ្ចូល'
|
||||
},
|
||||
menu: {
|
||||
horizontalPosition: 'ទីតាំងផ្ដេក',
|
||||
horizontalPositionList: {
|
||||
flexStart: 'ចាប់ផ្ដើមឈុត',
|
||||
center: 'កណ្តាល',
|
||||
flexEnd: 'ចាប់ផ្ដើមចុងក្រោយ'
|
||||
}
|
||||
},
|
||||
footer: {
|
||||
inverted: 'បង្កើតការរុករកជាក់លាក់',
|
||||
visible: 'បង្ហាញការរុករកជាក់លាក់',
|
||||
fixed: 'ការរុករកជាក់លាក់',
|
||||
right: 'ត្រឡប់ទៅស្តាំ'
|
||||
},
|
||||
page: {
|
||||
animate: 'ការផ្លាស់ប្តូរ',
|
||||
animateMode: 'របៀបផ្លាស់ប្តូរ',
|
||||
animateModeList: {
|
||||
zoomFade: 'ពង្រីកបង្ហាញនិងលាស់ប្តូរ',
|
||||
zoomOut: 'ពង្រីកបង្ហាញនិងលាស់ប្តូរ',
|
||||
fadeSlide: 'ពង្រីកបង្ហាញនិងលាស់ប្តូរ',
|
||||
fade: 'ពង្រីកបង្ហាញនិងលាស់ប្តូរ',
|
||||
fadeBottom: 'ពង្រីកបង្ហាញនិងលាស់ប្តូរ',
|
||||
fadeScale: 'ពង្រីកបង្ហាញនិងលាស់ប្តូរ'
|
||||
}
|
||||
},
|
||||
systemTheme: {
|
||||
moreColors: 'ពន្លឺច្រើនទៀត'
|
||||
},
|
||||
themeConfiguration: {
|
||||
title: 'ការកំណត់ស្បែក',
|
||||
copy: 'ចម្លង',
|
||||
reset: 'កំណត់ឡើងវិញ',
|
||||
resetSuccess: 'កំណត់ឡើងវិញជោគជ័យ, សូមចម្លងឯកសារស្បែកឡើងវិញ!',
|
||||
operateSuccess: 'សម្រាប់ការប្រើប្រាស់ជោគជ័យ',
|
||||
copySuccess: 'ចម្លងជោគជ័យ, សូមជោគជ័យឯកសារ src/settings/theme.json!',
|
||||
confirmCopy: 'យល់ព្រម'
|
||||
}
|
||||
}
|
||||
},
|
||||
page: {
|
||||
login: {
|
||||
common: {
|
||||
userNamePlaceholder: 'ឈ្មោះអ្នកប្រើប្រាស់',
|
||||
phonePlaceholder: 'លេខទូរស័ព្ទ',
|
||||
codePlaceholder: 'លេខកូដ',
|
||||
passwordPlaceholder: 'លេខសម្ងាត់',
|
||||
confirmPasswordPlaceholder: 'បញ្ជាក់លេខសម្ងាត់',
|
||||
codeLogin: 'ចូលតាមលេខកូដ',
|
||||
confirm: 'យល់ព្រម',
|
||||
back: 'ត្រឡប់ក្រោយ',
|
||||
validateSuccess: 'បញ្ជាក់ជោគជ័យ',
|
||||
loginSuccess: 'ចូលជោគជ័យ',
|
||||
welcomeBack: 'សូមស្វាគមន៍ម្តងទៀត, {userName}!'
|
||||
},
|
||||
pwdLogin: {
|
||||
title: 'ចូលគណនី',
|
||||
rememberMe: 'ចងចាំខ្ញុំ',
|
||||
forgetPassword: 'ភ្លេចលេខសម្ងាត់',
|
||||
register: 'ចុះឈ្មោះ',
|
||||
otherAccountLogin: 'ចូលតាមគណនីផ្សេងទៀត',
|
||||
otherLoginMode: 'របៀបចូលគណនីផ្សេងទៀត',
|
||||
superAdmin: 'អ្នកគ្រប់គ្រងសុវត្ថិភាព',
|
||||
admin: 'អ្នកគ្រប់គ្រង',
|
||||
user: 'អ្នកប្រើប្រាស់'
|
||||
},
|
||||
codeLogin: {
|
||||
title: 'ចូលតាមលេខកូដ',
|
||||
getCode: 'ទទួលលេខកូដ',
|
||||
imageCodePlaceholder: 'លេខកូដរូបភាព'
|
||||
},
|
||||
register: {
|
||||
title: 'ចុះឈ្មោះ',
|
||||
agreement: 'យល់ព្រមនឹង',
|
||||
protocol: 'សម្រាប់ការប្រើប្រាស់',
|
||||
policy: 'គោលការណ៍ផ្សេងៗ'
|
||||
},
|
||||
resetPwd: {
|
||||
title: 'កំណត់លេខសម្ងាត់ថ្មី'
|
||||
},
|
||||
bindWeChat: {
|
||||
title: 'ភ្ជាប់គណនីរបស់អ្នកជាមួយគណនីរបស់អ្នក'
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default locale;
|
@ -1,8 +1,9 @@
|
||||
const locale: I18nType.Schema = {
|
||||
const local: App.I18n.Schema = {
|
||||
system: {
|
||||
title: 'Soybean管理系统'
|
||||
title: 'Soybean 管理系统'
|
||||
},
|
||||
common: {
|
||||
tip: '提示',
|
||||
add: '添加',
|
||||
addSuccess: '添加成功',
|
||||
edit: '修改',
|
||||
@ -13,165 +14,118 @@ const locale: I18nType.Schema = {
|
||||
confirm: '确认',
|
||||
cancel: '取消',
|
||||
pleaseCheckValue: '请检查输入的值是否合法',
|
||||
action: '操作'
|
||||
action: '操作',
|
||||
backToHome: '返回首页',
|
||||
lookForward: '敬请期待',
|
||||
userCenter: '个人中心',
|
||||
logout: '退出登录',
|
||||
logoutConfirm: '确认退出登录吗?'
|
||||
},
|
||||
routes: {
|
||||
dashboard: {
|
||||
_value: '仪表盘',
|
||||
analysis: '分析页',
|
||||
workbench: '工作台'
|
||||
theme: {
|
||||
themeSchema: {
|
||||
title: '主题模式',
|
||||
light: '亮色模式',
|
||||
dark: '暗黑模式',
|
||||
auto: '跟随系统'
|
||||
},
|
||||
document: {
|
||||
_value: '文档',
|
||||
vue: 'Vue文档',
|
||||
vite: 'Vite文档',
|
||||
naive: 'NaiveUI文档',
|
||||
project: '项目文档',
|
||||
'project-link': '项目文档(外链)'
|
||||
layoutMode: {
|
||||
title: '布局模式',
|
||||
vertical: '左侧菜单模式',
|
||||
'vertical-mix': '左侧菜单混合模式',
|
||||
horizontal: '顶部菜单模式',
|
||||
'horizontal-mix': '顶部菜单混合模式'
|
||||
},
|
||||
component: {
|
||||
_value: '组件示例',
|
||||
button: '按钮',
|
||||
card: '卡片',
|
||||
table: '表格'
|
||||
themeColor: {
|
||||
title: '主题颜色',
|
||||
primary: '主色',
|
||||
info: '信息色',
|
||||
success: '成功色',
|
||||
warning: '警告色',
|
||||
error: '错误色',
|
||||
followPrimary: '跟随主色'
|
||||
},
|
||||
plugin: {
|
||||
_value: '插件示例',
|
||||
charts: {
|
||||
_value: '图表',
|
||||
echarts: 'ECharts',
|
||||
antv: 'AntV'
|
||||
},
|
||||
copy: '剪贴板',
|
||||
editor: {
|
||||
_value: '编辑器',
|
||||
quill: '富文本',
|
||||
markdown: 'Markdown'
|
||||
},
|
||||
icon: '图标',
|
||||
map: '地图',
|
||||
print: '打印',
|
||||
swiper: 'Swiper',
|
||||
video: '视频'
|
||||
scrollMode: {
|
||||
title: '滚动模式',
|
||||
wrapper: '外层滚动',
|
||||
content: '主体滚动'
|
||||
},
|
||||
'auth-demo': {
|
||||
_value: '权限示例',
|
||||
permission: '切换权限',
|
||||
super: '超级管理员可见'
|
||||
},
|
||||
function: {
|
||||
_value: '功能',
|
||||
tab: 'Tab页签'
|
||||
},
|
||||
exception: {
|
||||
_value: '异常页',
|
||||
403: '403',
|
||||
404: '404',
|
||||
500: '500'
|
||||
},
|
||||
'multi-menu': {
|
||||
_value: '多级菜单',
|
||||
first: {
|
||||
_value: '一级菜单',
|
||||
second: '二级菜单',
|
||||
'second-new': {
|
||||
_value: '二级菜单(有子菜单)',
|
||||
third: '三级菜单'
|
||||
}
|
||||
page: {
|
||||
animate: '页面切换动画',
|
||||
mode: {
|
||||
title: '页面切换动画类型',
|
||||
'fade-slide': '滑动',
|
||||
fade: '淡入淡出',
|
||||
'fade-bottom': '底部消退',
|
||||
'fade-scale': '缩放消退',
|
||||
'zoom-fade': '渐变',
|
||||
'zoom-out': '闪现',
|
||||
none: '无'
|
||||
}
|
||||
},
|
||||
management: {
|
||||
_value: '系统管理',
|
||||
auth: '权限管理',
|
||||
role: '角色管理',
|
||||
route: '路由管理',
|
||||
user: '用户管理'
|
||||
},
|
||||
about: '关于'
|
||||
},
|
||||
layout: {
|
||||
settingDrawer: {
|
||||
title: '主题配置',
|
||||
themeModeTitle: '主题模式',
|
||||
darkMode: '深色主题',
|
||||
layoutModelTitle: '布局模式',
|
||||
systemThemeTitle: '系统主题',
|
||||
pageFunctionsTitle: '界面功能',
|
||||
pageViewTitle: '界面显示',
|
||||
followSystemTheme: '跟随系统',
|
||||
isCustomizeDarkModeTransition: '自定义暗黑主题动画过渡',
|
||||
scrollMode: '滚动模式',
|
||||
scrollModeList: {
|
||||
wrapper: '外层滚动',
|
||||
content: '主体滚动'
|
||||
},
|
||||
fixedHeaderAndTab: '固定头部和多页签',
|
||||
header: {
|
||||
inverted: '头部深色',
|
||||
height: '头部高度',
|
||||
crumb: {
|
||||
visible: '面包屑',
|
||||
icon: '面包屑图标'
|
||||
}
|
||||
},
|
||||
tab: {
|
||||
visible: '多页签',
|
||||
height: '多页签高度',
|
||||
modeList: {
|
||||
mode: '多页签风格',
|
||||
chrome: '谷歌风格',
|
||||
button: '按钮风格'
|
||||
},
|
||||
isCache: '多页签缓存'
|
||||
},
|
||||
sider: {
|
||||
inverted: '侧边栏深色',
|
||||
width: '侧边栏展开宽度',
|
||||
mixWidth: '左侧混合侧边栏展开宽度'
|
||||
},
|
||||
menu: {
|
||||
horizontalPosition: '顶部菜单位置',
|
||||
horizontalPositionList: {
|
||||
flexStart: '居左',
|
||||
center: '居中',
|
||||
flexEnd: '居右'
|
||||
}
|
||||
},
|
||||
footer: {
|
||||
inverted: '底部深色',
|
||||
visible: '显示底部',
|
||||
fixed: '固定底部',
|
||||
right: '底部居右'
|
||||
},
|
||||
page: {
|
||||
animate: '页面切换动画',
|
||||
animateMode: '页面切换动画类型',
|
||||
animateModeList: {
|
||||
zoomFade: '渐变',
|
||||
zoomOut: '闪现',
|
||||
fadeSlide: '滑动',
|
||||
fade: '消退',
|
||||
fadeBottom: '底部消退',
|
||||
fadeScale: '缩放消退'
|
||||
}
|
||||
},
|
||||
systemTheme: {
|
||||
moreColors: '更多颜色'
|
||||
},
|
||||
themeConfiguration: {
|
||||
title: '主题配置',
|
||||
copy: '拷贝当前配置',
|
||||
reset: '重置当前配置',
|
||||
resetSuccess: '已重置配置,请重新拷贝!',
|
||||
operateSuccess: '操作成功',
|
||||
copySuccess: '复制成功,请替换 src/settings/theme.json的内容!',
|
||||
confirmCopy: '确认'
|
||||
fixedHeaderAndTab: '固定头部和标签栏',
|
||||
header: {
|
||||
height: '头部高度',
|
||||
breadcrumb: {
|
||||
visible: '显示面包屑',
|
||||
showIcon: '显示面包屑图标'
|
||||
}
|
||||
},
|
||||
tab: {
|
||||
visible: '显示标签栏',
|
||||
cache: '缓存标签页',
|
||||
height: '标签栏高度',
|
||||
mode: {
|
||||
title: '标签栏风格',
|
||||
chrome: '谷歌风格',
|
||||
button: '按钮风格'
|
||||
}
|
||||
},
|
||||
sider: {
|
||||
inverted: '深色侧边栏',
|
||||
width: '侧边栏宽度',
|
||||
collapsedWidth: '侧边栏折叠宽度',
|
||||
mixWidth: '混合布局侧边栏宽度',
|
||||
mixCollapsedWidth: '混合布局侧边栏折叠宽度',
|
||||
mixChildMenuWidth: '混合布局子菜单宽度'
|
||||
},
|
||||
footer: {
|
||||
visible: '显示底部',
|
||||
fixed: '固定底部',
|
||||
height: '底部高度',
|
||||
right: '底部局右'
|
||||
},
|
||||
themeDrawerTitle: '主题配置',
|
||||
pageFunTitle: '页面功能',
|
||||
configOperation: {
|
||||
copyConfig: '复制配置',
|
||||
copySuccessMsg: '复制成功,请替换 src/theme/settings.ts 中的变量 themeSettings',
|
||||
resetConfig: '重置配置',
|
||||
resetSuccessMsg: '重置成功'
|
||||
}
|
||||
},
|
||||
route: {
|
||||
login: '登录',
|
||||
403: '无权限',
|
||||
404: '页面不存在',
|
||||
500: '服务器错误',
|
||||
home: '首页',
|
||||
'user-center': '个人中心',
|
||||
manage: '系统管理',
|
||||
manage_user: '用户管理',
|
||||
'manage_user-detail': '用户详情',
|
||||
manage_role: '角色管理',
|
||||
manage_route: '路由管理',
|
||||
'multi-menu': '多级菜单',
|
||||
'multi-menu_first': '菜单一',
|
||||
'multi-menu_first_child': '菜单一子菜单',
|
||||
'multi-menu_second': '菜单二',
|
||||
'multi-menu_second_child': '菜单二子菜单',
|
||||
'multi-menu_second_child_home': '菜单二子菜单首页'
|
||||
},
|
||||
page: {
|
||||
login: {
|
||||
common: {
|
||||
loginOrRegister: '登录 / 注册',
|
||||
userNamePlaceholder: '请输入用户名',
|
||||
phonePlaceholder: '请输入手机号',
|
||||
codePlaceholder: '请输入验证码',
|
||||
@ -182,7 +136,7 @@ const locale: I18nType.Schema = {
|
||||
back: '返回',
|
||||
validateSuccess: '验证成功',
|
||||
loginSuccess: '登录成功',
|
||||
welcomeBack: '欢迎回来,{userName}!'
|
||||
welcomeBack: '欢迎回来,{userName} !'
|
||||
},
|
||||
pwdLogin: {
|
||||
title: '密码登录',
|
||||
@ -213,7 +167,48 @@ const locale: I18nType.Schema = {
|
||||
title: '绑定微信'
|
||||
}
|
||||
}
|
||||
},
|
||||
form: {
|
||||
userName: {
|
||||
required: '请输入用户名',
|
||||
invalid: '用户名格式不正确'
|
||||
},
|
||||
phone: {
|
||||
required: '请输入手机号',
|
||||
invalid: '手机号格式不正确'
|
||||
},
|
||||
pwd: {
|
||||
required: '请输入密码',
|
||||
invalid: '密码格式不正确'
|
||||
},
|
||||
code: {
|
||||
required: '请输入验证码',
|
||||
invalid: '验证码格式不正确'
|
||||
},
|
||||
email: {
|
||||
required: '请输入邮箱',
|
||||
invalid: '邮箱格式不正确'
|
||||
}
|
||||
},
|
||||
dropdown: {
|
||||
closeCurrent: '关闭',
|
||||
closeOther: '关闭其它',
|
||||
closeLeft: '关闭左侧',
|
||||
closeRight: '关闭右侧',
|
||||
closeAll: '关闭所有'
|
||||
},
|
||||
icon: {
|
||||
themeConfig: '主题配置',
|
||||
themeSchema: '主题模式',
|
||||
lang: '切换语言',
|
||||
fullscreen: '全屏',
|
||||
fullscreenExit: '退出全屏',
|
||||
reload: '刷新页面',
|
||||
collapse: '折叠菜单',
|
||||
expand: '展开菜单',
|
||||
pin: '固定',
|
||||
unpin: '取消固定'
|
||||
}
|
||||
};
|
||||
|
||||
export default locale;
|
||||
export default local;
|
||||
|
@ -1,11 +1,9 @@
|
||||
import zhCN from './lang/zh-CN';
|
||||
import en from './lang/en';
|
||||
import kmKH from './lang/km-KH';
|
||||
import zhCN from './lang/zh-cn';
|
||||
import enUS from './lang/en-us';
|
||||
|
||||
const locales: Record<I18nType.LangType, I18nType.Schema> = {
|
||||
const locales: Record<App.I18n.LangType, App.I18n.Schema> = {
|
||||
'zh-CN': zhCN,
|
||||
en,
|
||||
'km-KH': kmKH
|
||||
'en-US': enUS
|
||||
};
|
||||
|
||||
export default locales;
|
||||
|
12
src/locales/naive.ts
Normal file
12
src/locales/naive.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import { zhCN, enUS, dateZhCN, dateEnUS } from 'naive-ui';
|
||||
import type { NLocale, NDateLocale } from 'naive-ui';
|
||||
|
||||
export const naiveLocales: Record<App.I18n.LangType, NLocale> = {
|
||||
'zh-CN': zhCN,
|
||||
'en-US': enUS
|
||||
};
|
||||
|
||||
export const naiveDateLocales: Record<App.I18n.LangType, NDateLocale> = {
|
||||
'zh-CN': dateZhCN,
|
||||
'en-US': dateEnUS
|
||||
};
|
Reference in New Issue
Block a user