diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json
index 9048f5a4d..73538403b 100644
--- a/ruoyi-ui/package.json
+++ b/ruoyi-ui/package.json
@@ -55,6 +55,7 @@
"vue": "2.6.12",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
+ "vue-i18n": "^8.25.0",
"vue-meta": "^2.4.0",
"vue-router": "3.4.9",
"vuedraggable": "2.24.3",
diff --git a/ruoyi-ui/src/components/LanguageSelect/index.vue b/ruoyi-ui/src/components/LanguageSelect/index.vue
new file mode 100644
index 000000000..e17601a6e
--- /dev/null
+++ b/ruoyi-ui/src/components/LanguageSelect/index.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+ {{
+ item.label }}
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/i18n/i18n.js b/ruoyi-ui/src/i18n/i18n.js
new file mode 100644
index 000000000..c7f647d24
--- /dev/null
+++ b/ruoyi-ui/src/i18n/i18n.js
@@ -0,0 +1,40 @@
+import Vue from 'vue'
+import Cookies from 'js-cookie'
+import VueI18n from 'vue-i18n'
+import locale from 'element-ui/lib/locale';
+import zh from './langs/zh'
+import en from './langs/en'
+import enLocale from 'element-ui/lib/locale/lang/en'
+import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
+
+
+Vue.use(VueI18n)
+
+const messages = {
+ en: Object.assign(en, enLocale),
+ zh: Object.assign(zh, zhLocale)
+}
+
+export function getLanguage() {
+ const chooseLanguage = Cookies.get('lang')
+ if (chooseLanguage) return chooseLanguage
+
+ const language = (navigator.language || navigator.browserLanguage).toLowerCase()
+ const locales = Object.keys(messages)
+ for (const locale of locales) {
+ if (language.indexOf(locale) > -1) {
+ return locale
+ }
+ }
+ return 'en'
+}
+
+const i18n = new VueI18n({
+ locale: getLanguage(),
+ messages
+})
+
+
+locale.i18n((key, value) => i18n.t(key, value)) //为了实现element插件的多语言切换
+
+export default i18n
diff --git a/ruoyi-ui/src/i18n/langs/en.js b/ruoyi-ui/src/i18n/langs/en.js
new file mode 100644
index 000000000..189abb6af
--- /dev/null
+++ b/ruoyi-ui/src/i18n/langs/en.js
@@ -0,0 +1,50 @@
+const bt = {
+ search: 'Search',
+ reset: 'Reset',
+ create: 'Create',
+ edit: 'Edit',
+ delete: 'Delete',
+ import: 'Import',
+ export: 'Export',
+ more: 'More',
+ resetPassWord: 'ResetPassWord',
+ assigningRoles: 'AssigningRoles',
+ register: 'Register'
+}
+
+const hint = {
+ inputDeptName: 'Please enter the department name',
+ inputUserName: 'Please enter the user name',
+ inputPhonenumber: 'Please enter the phone number',
+ selectUserStatus: 'UserStatus',
+ startDate: 'StartDate',
+ endDate: 'EndDate',
+ operate: 'Operate',
+ inputPassword: 'Please enter the password',
+ inputCode: 'Please enter the verification code'
+}
+
+const system = {
+ user: {
+ managementSystem: 'RuoYi Management System',
+ userId: 'UserId',
+ userName: 'UserName',
+ passWord: 'PassWord',
+ checkCode: 'CheckCode',
+ rememberMe: 'Remember Me',
+ login: 'Login',
+ loggingIn: 'Logging in',
+ phonenumber: 'Phonenumber',
+ status: 'Status',
+ createDate: 'CreateDate',
+ nickName: 'NickName',
+ deptName: 'DeptName',
+ createTime: 'CreateTime'
+ }
+}
+
+module.exports = {
+ bt,
+ hint,
+ system,
+}
diff --git a/ruoyi-ui/src/i18n/langs/zh.js b/ruoyi-ui/src/i18n/langs/zh.js
new file mode 100644
index 000000000..3d5c49981
--- /dev/null
+++ b/ruoyi-ui/src/i18n/langs/zh.js
@@ -0,0 +1,50 @@
+const bt = {
+ search: '搜索',
+ reset: '重置',
+ create: '新增',
+ edit: '修改',
+ delete: '删除',
+ import: '导入',
+ export: '导出',
+ more: '更多',
+ resetPassWord: '重置密码',
+ assigningRoles: '分配角色',
+ register: '注册'
+}
+
+const hint = {
+ inputDeptName: '请输入部门名称',
+ inputUserName: '请输入用户名',
+ inputPhonenumber: '请输入手机号码',
+ selectUserStatus: '用户状态',
+ startDate: '开始日期',
+ endDate: '结束日期',
+ operate: '操作',
+ inputPassword: '请输入密码',
+ inputCode: '请输入验证码'
+}
+
+const system = {
+ user: {
+ managementSystem: '若依后台管理系统',
+ userId: '用户编号',
+ userName: '用户名',
+ passWord: '密码',
+ checkCode: '验证码',
+ rememberMe: '记住我',
+ login: '登 录',
+ loggingIn: '登 录 中...',
+ phonenumber: '手机号码',
+ status: '状态',
+ createDate: '创建日期',
+ nickName: '用户昵称',
+ deptName: '部门',
+ createTime: '创建时间'
+ }
+}
+
+module.exports = {
+ bt,
+ hint,
+ system,
+}
diff --git a/ruoyi-ui/src/layout/components/Navbar.vue b/ruoyi-ui/src/layout/components/Navbar.vue
index 67a53ab67..e0b8128ac 100644
--- a/ruoyi-ui/src/layout/components/Navbar.vue
+++ b/ruoyi-ui/src/layout/components/Navbar.vue
@@ -22,7 +22,10 @@
-
+