core: 支持系统级语言设置

This commit is contained in:
undefined committed 2021-01-09 22:44:38 +08:00
1 parent 5a7114ed8c
commit 1aeaf14a03
4 files changed
+10 -5

No files matched your search

+1
View File
@@ -32,6 +32,7 @@ export interface SystemKeys {
'server.xff': string, 'server.xff': string,
'server.worker': number, 'server.worker': number,
'server.port': number, 'server.port': number,
'server.language': string,
'session.keys': string[], 'session.keys': string[],
'session.secure': boolean, 'session.secure': boolean,
'session.expire_seconds': number, 'session.expire_seconds': number,
+1 -1
View File
@@ -43,7 +43,7 @@ String.prototype.rawformat = function rawFormat(object) {
}; };
String.prototype.translate = function translate(...languages: string[]) { String.prototype.translate = function translate(...languages: string[]) {
if (!languages.length) languages = ['zh_CN']; languages.push(global.Hydro.model.system.get('server.language'));
for (const language of languages) { for (const language of languages) {
if (!language) continue; if (!language) continue;
if (locales[language]) { if (locales[language]) {
+2 -1
View File
@@ -81,7 +81,7 @@ export const SystemSetting = (...settings: _Setting[]) => {
}; };
PreferenceSetting( PreferenceSetting(
Setting('setting_display', 'viewLang', langRange, 'zh_CN', 'select', 'UI Language'), Setting('setting_display', 'viewLang', langRange, null, 'select', 'UI Language'),
Setting('setting_display', 'timeZone', timezones, 'Asia/Shanghai', 'select', 'Timezone'), Setting('setting_display', 'timeZone', timezones, 'Asia/Shanghai', 'select', 'Timezone'),
Setting('setting_usage', 'codeLang', builtin.LANG_TEXTS, 'c', 'select', 'Default Code Language'), Setting('setting_usage', 'codeLang', builtin.LANG_TEXTS, 'c', 'select', 'Default Code Language'),
Setting('setting_usage', 'codeTemplate', null, '', 'textarea', 'Default Code Template', Setting('setting_usage', 'codeTemplate', null, '', 'textarea', 'Default Code Template',
@@ -141,6 +141,7 @@ SystemSetting(
Setting('setting_server', 'server.cdn', null, '/', 'text', 'CDN Prefix', 'Ends with /'), Setting('setting_server', 'server.cdn', null, '/', 'text', 'CDN Prefix', 'Ends with /'),
Setting('setting_server', 'server.port', null, 8888, 'number', 'Server Port'), Setting('setting_server', 'server.port', null, 8888, 'number', 'Server Port'),
Setting('setting_server', 'server.xff', null, null, 'text', 'IP Header', 'e.g. x-forwarded-for (lowercase)'), Setting('setting_server', 'server.xff', null, null, 'text', 'IP Header', 'e.g. x-forwarded-for (lowercase)'),
Setting('setting_server', 'server.language', langRange, 'zh_CN', 'select', 'Default display language'),
Setting('setting_session', 'session.keys', null, [String.random(32)], 'text', 'session.keys', null, FLAG_HIDDEN), Setting('setting_session', 'session.keys', null, [String.random(32)], 'text', 'session.keys', null, FLAG_HIDDEN),
Setting('setting_session', 'session.secure', null, false, 'boolean', 'session.secure'), Setting('setting_session', 'session.secure', null, false, 'boolean', 'session.secure'),
Setting('setting_session', 'session.saved_expire_seconds', null, 3600 * 24 * 30, 'number', 'Saved session expire seconds'), Setting('setting_session', 'session.saved_expire_seconds', null, 3600 * 24 * 30, 'number', 'Saved session expire seconds'),
+6 -3
View File
@@ -13,6 +13,8 @@ declare module 'terminal-kit/Terminal' {
} }
} }
const useTerminal = cluster.isMaster && process.stdout.isTTY && !argv.legacy;
export namespace Progress { export namespace Progress {
export class Progress { export class Progress {
constructor(public args) { constructor(public args) {
@@ -31,7 +33,8 @@ export namespace Progress {
} }
export function create(args) { export function create(args) {
return (process.stdout.isTTY && !argv.legacy) // TODO handle worker process
return useTerminal
? terminal.progressBar(args) ? terminal.progressBar(args)
: new Progress(args); : new Progress(args);
} }
@@ -44,7 +47,7 @@ async function terminate() {
} catch (e) { } catch (e) {
hasError = true; hasError = true;
} }
if (cluster.isMaster && process.stdout.isTTY && !argv.legacy) { if (useTerminal) {
terminal.hideCursor(false); terminal.hideCursor(false);
terminal.styleReset(); terminal.styleReset();
terminal.resetScrollingRegion(); terminal.resetScrollingRegion();
@@ -55,7 +58,7 @@ async function terminate() {
} }
process.on('SIGINT', terminate); process.on('SIGINT', terminate);
if (cluster.isMaster && process.stdout.isTTY && !argv.legacy) { if (useTerminal) {
terminal.clear(); terminal.clear();
terminal.grabInput(); terminal.grabInput();
terminal.hideCursor(); terminal.hideCursor();