feat: language setting

parent bcd0a01a
...@@ -39,5 +39,6 @@ ...@@ -39,5 +39,6 @@
"labels": "标签管理", "labels": "标签管理",
"user": "用户", "user": "用户",
"user group": "用户组", "user group": "用户组",
"login logs": "登陆日志" "login logs": "登陆日志",
"language": "语言选择"
} }
...@@ -150,6 +150,10 @@ export class LocalStorageService { ...@@ -150,6 +150,10 @@ export class LocalStorageService {
set(key: string, value: any) { set(key: string, value: any) {
return localStorage.setItem(key, value); return localStorage.setItem(key, value);
} }
delete(key: string) {
return localStorage.removeItem(key);
}
} }
@Injectable() @Injectable()
......
...@@ -6,10 +6,10 @@ ...@@ -6,10 +6,10 @@
* @author liuzheng <liuzheng712@gmail.com> * @author liuzheng <liuzheng712@gmail.com>
*/ */
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {AppService, HttpService, LogService} from '../../app.service'; import {AppService, HttpService, LocalStorageService, LogService} from '../../app.service';
import {CleftbarComponent} from '../../ControlPage/cleftbar/cleftbar.component'; import {CleftbarComponent} from '../../ControlPage/cleftbar/cleftbar.component';
import {ControlComponent, NavList} from '../../ControlPage/control/control.component'; import {ControlComponent, NavList} from '../../ControlPage/control/control.component';
import {DataStore} from '../../globals'; import {DataStore, i18n} from '../../globals';
import * as jQuery from 'jquery/dist/jquery.min.js'; import * as jQuery from 'jquery/dist/jquery.min.js';
// import * as layer from 'layui-layer/src/layer.js'; // import * as layer from 'layui-layer/src/layer.js';
declare let layer: any; declare let layer: any;
...@@ -28,7 +28,8 @@ export class ElementNavComponent implements OnInit { ...@@ -28,7 +28,8 @@ export class ElementNavComponent implements OnInit {
constructor(private _appService: AppService, constructor(private _appService: AppService,
private _http: HttpService, private _http: HttpService,
private _logger: LogService) { private _logger: LogService,
private _localStorage: LocalStorageService) {
this._logger.log('nav.ts:NavComponent'); this._logger.log('nav.ts:NavComponent');
this.getnav(); this.getnav();
} }
...@@ -89,6 +90,14 @@ export class ElementNavComponent implements OnInit { ...@@ -89,6 +90,14 @@ export class ElementNavComponent implements OnInit {
this.EnterLicense(); this.EnterLicense();
break; break;
} }
case 'English': {
this.English();
break;
}
case 'Chinese': {
this.Language('cn');
break;
}
default: { default: {
break; break;
} }
...@@ -228,9 +237,24 @@ export class ElementNavComponent implements OnInit { ...@@ -228,9 +237,24 @@ export class ElementNavComponent implements OnInit {
'click': 'BBS', 'click': 'BBS',
'name': 'BBS' 'name': 'BBS'
}] }]
}]; }, {
'id': 'Language',
'name': 'Language',
'children': [
{
'id': 'English',
'click': 'English',
'name': 'English'
},
{
'id': 'Chinese',
'click': 'Chinese',
'name': '中文'
}
]
}
];
} }
Connect() { Connect() {
layer.prompt({ layer.prompt({
...@@ -248,4 +272,24 @@ export class ElementNavComponent implements OnInit { ...@@ -248,4 +272,24 @@ export class ElementNavComponent implements OnInit {
}); });
} }
English() {
this._localStorage.delete('lang');
i18n.clear();
}
Language(lan: string) {
this._http.get('/i18n/' + lan).subscribe(
data => {
this._localStorage.set('lang', JSON.stringify(data));
}
);
const l = this._localStorage.get('lang');
if (l) {
const data = JSON.parse(l);
Object.keys(data).forEach((k, _) => {
i18n.set(k, data[k]);
});
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment