From b704a2c30a7735e6b1577a9fa3c3ecc39deaf9f9 Mon Sep 17 00:00:00 2001 From: WispX Date: Fri, 23 Jul 2021 17:46:26 +0800 Subject: [PATCH] :sparkles: Adaptive Multilingualism. --- application/common.php | 39 ++-- application/index/controller/Base.php | 10 +- application/index/view/admin/group/index.html | 50 ++--- .../index/view/admin/images/index.html | 12 +- .../index/view/admin/system/console.html | 56 ++--- .../index/view/admin/system/index.html | 45 ++-- application/index/view/admin/users/index.html | 88 ++++---- application/index/view/common/base.html | 49 ++-- application/index/view/index/gallery.html | 14 +- application/index/view/index/home.html | 6 +- application/index/view/index/index.html | 22 +- application/index/view/user/images.html | 104 ++++----- application/index/view/user/settings.html | 34 +-- application/lang/en.php | 5 + application/lang/zh-cn.php | 211 ++++++++++++++++++ application/sql/install.sql | 102 ++++----- application/sql/update.sql | 34 +-- config/app.php | 2 +- public/static/app/css/app.css | 5 +- public/static/app/css/app.css.map | 2 +- public/static/app/css/app.less | 4 + public/static/app/js/app.js | 20 ++ 22 files changed, 586 insertions(+), 328 deletions(-) create mode 100644 application/lang/en.php create mode 100644 application/lang/zh-cn.php diff --git a/application/common.php b/application/common.php index 562f85de..41339c9c 100644 --- a/application/common.php +++ b/application/common.php @@ -42,33 +42,30 @@ function format_size($size, $array = false) /** * 格式化友好时间戳 * - * @param $unixTime * @return false|string */ -function format_time($unixTime) +function format_time($remote, $local = null) { - $showTime = date('Y', $unixTime) . "年" . date('n', $unixTime) . "月" . date('j', $unixTime) . "日"; - if (date('Y', $unixTime) == date('Y')) { - $showTime = date('n', $unixTime) . "月" . date('j', $unixTime) . "日 " . date('H:i', $unixTime); - if (date('n.j', $unixTime) == date('n.j')) { - $timeDifference = time() - $unixTime + 1; - if ($timeDifference < 30) { - return "刚刚"; - } - if ($timeDifference >= 30 && $timeDifference < 60) { - return $timeDifference . "秒前"; - } - if ($timeDifference >= 60 && $timeDifference < 3600) { - return floor($timeDifference / 60) . "分钟前"; - } - return date('H:i', $unixTime); - } - if (date('n.j', ($unixTime + 86400)) == date('n.j')) { - return "昨天 " . date('H:i', $unixTime); + $timediff = (is_null($local) || $local ? time() : $local) - $remote; + $chunks = array( + array(60 * 60 * 24 * 365, 'year'), + array(60 * 60 * 24 * 30, 'month'), + array(60 * 60 * 24 * 7, 'week'), + array(60 * 60 * 24, 'day'), + array(60 * 60, 'hour'), + array(60, 'minute'), + array(1, 'second') + ); + $name = $count =''; + for ($i = 0, $j = count($chunks); $i < $j; $i++) { + $seconds = $chunks[$i][0]; + $name = $chunks[$i][1]; + if (($count = floor($timediff / $seconds)) != 0) { + break; } } - return $showTime; + return lang("%s {$name}%s ago", [$count, ($count > 1 ? 's' : '')]); } /** diff --git a/application/index/controller/Base.php b/application/index/controller/Base.php index 97d84b55..f0ecd6c7 100644 --- a/application/index/controller/Base.php +++ b/application/index/controller/Base.php @@ -15,6 +15,8 @@ use PHPMailer\PHPMailer\PHPMailer; use think\Controller; use think\Exception; use think\facade\Config; +use think\facade\Cookie; +use think\facade\Lang; use think\facade\Session; use think\facade\Env; @@ -33,10 +35,16 @@ class Base extends Controller $this->user = request()->user; + if ($this->request->has('lang')) { + Cookie::set('think_var', $this->request->get('lang')); + } + $this->assign([ 'config' => $this->getConfig(), 'user' => $this->user, - 'uri' => strtolower($this->request->controller() . '/' . $this->request->action()) + 'uri' => strtolower($this->request->controller() . '/' . $this->request->action()), + 'lang' => Lang::range(), + 'languages' => json_encode(Lang::get()), ]); } diff --git a/application/index/view/admin/group/index.html b/application/index/view/admin/group/index.html index aaf4a3fa..43c283c8 100644 --- a/application/index/view/admin/group/index.html +++ b/application/index/view/admin/group/index.html @@ -1,6 +1,6 @@ {extend name="common:base" /} -{block name="title"}角色组 - {$config.site_name}{/block} +{block name="title"}{:lang('Role group')} - {$config.site_name}{/block} {block name="main"}
@@ -8,7 +8,7 @@
-

不同的角色组下的用户,上传图片将使用不同的储存策略。
至少有一个默认角色组,新注册用户和访客将会使用默认的角色组。
角色组删除后,该组下面的用户将重置默认角色组。

+

{:lang('Role group tips')}

@@ -17,10 +17,10 @@ - - - - + + + + @@ -42,8 +42,8 @@ @@ -56,13 +56,13 @@
-
添加角色组
+
{:lang('Add role group')}
- - + +
- +
- +
- - + +
@@ -86,13 +86,13 @@
-
编辑角色组
+
{:lang('Edit role group')}
- - + +
- +
- +
- - + +
@@ -128,9 +128,9 @@ var editDialog = new mdui.Dialog('#edit-dialog'); var methods = { delete: function (id, batch, callback) { - var msg = '确认删除该角色组吗?'; + var msg = lang('Are you sure to delete this role group?'); if (batch) { - msg = '确认删除选中项角色组吗?'; + msg = lang('Are you sure to delete the selected item role group?'); } mdui.confirm(msg, function () { app.request("{:url('admin/group/del')}", {id: id}, function () { @@ -138,7 +138,7 @@ }); }, function () { - }, {confirmText: '确定', cancelText: '取消'}); + }, {confirmText: lang('Confirm'), cancelText: lang('Cancel')}); }, }; // 编辑提交 diff --git a/application/index/view/admin/images/index.html b/application/index/view/admin/images/index.html index e1d1044e..77830622 100644 --- a/application/index/view/admin/images/index.html +++ b/application/index/view/admin/images/index.html @@ -1,6 +1,6 @@ {extend name="common:base" /} -{block name="title"}图片管理 - {$config.site_name}{/block} +{block name="title"}{:lang('Picture management')} - {$config.site_name}{/block} {block name="css"} @@ -11,22 +11,22 @@
- 共有 {$images->total()} 张图片 + {:lang('There are %s pictures in total', [''.$images->total().''])}
- +
diff --git a/application/index/view/admin/system/console.html b/application/index/view/admin/system/console.html index f38fc671..331e052b 100644 --- a/application/index/view/admin/system/console.html +++ b/application/index/view/admin/system/console.html @@ -1,6 +1,6 @@ {extend name="common:base" /} -{block name="title"}控制台 - {$config.site_name}{/block} +{block name="title"}{:lang('Console')} - {$config.site_name}{/block} {block name="main"}
@@ -10,7 +10,7 @@
-

占用储存

+

{:lang('Occupied storage')}

{$storage[0]} {if $storage[0]}{$storage[1]}{else/}Kb{/if} @@ -18,44 +18,44 @@
-

图片数量

- {$images_num} +

{:lang('Number of pictures')}

+ {$images_num} {:lang('Zhang')}
-

可疑图片

- {$suspicious_images_num} +

{:lang('Suspicious picture')}

+ {$suspicious_images_num} {:lang('Zhang')}
-

用户数量

- {$users_num} +

{:lang('Number of users')}

+ {$users_num} {:lang('Ge')}
-

今日上传

- {$today} +

{:lang('Upload today')}

+ {$today} {:lang('Zhang')}
-

昨日上传

- {$yesterday} +

{:lang('Uploaded yesterday')}

+ {$yesterday} {:lang('Zhang')}
-

本月上传

- {$month} +

{:lang('Upload this month')}

+ {$month} {:lang('Zhang')}
-

游客上传

- {$tourists} +

{:lang('Visitor upload')}

+ {$tourists} {:lang('Zhang')}
@@ -64,22 +64,22 @@
使用策略名称注册默认操作{:lang('Strategy used')}{:lang('Name')}{:lang('Register default')}{:lang('Operation')}
- - + +
- + - + - + - + - + - + - + @@ -89,22 +89,22 @@
系统配置{:lang('System configuration')}
操作系统:{:lang('Operating system')}: {:php_uname('s')}服务器 IP:{:lang('Server IP:')} {:GetHostByName($Think.server.http_host)}网站域名:{:lang('Website domain name:')} {$Think.server.http_host}
运行环境:{:lang('Operating environment:')} {$Think.server.server_software}PHP 版本:{:lang('PHP version:')} {$Think.PHP_VERSION}文件上传限制:{:lang('File upload restrictions:')} {:ini_get('upload_max_filesize')}
- + - + - + - + - + diff --git a/application/index/view/admin/system/index.html b/application/index/view/admin/system/index.html index 9761585e..2a040347 100644 --- a/application/index/view/admin/system/index.html +++ b/application/index/view/admin/system/index.html @@ -1,6 +1,6 @@ {extend name="common:base" /} -{block name="title"}系统管理 - {$config.site_name}{/block} +{block name="title"}{:lang('System management')} - {$config.site_name}{/block} {block name="main"}
@@ -9,18 +9,17 @@

- 系统配置,统计代码中注意要使用<script></script>标签,不设置可为空。
- 基础配置如果出现无法保存的情况请检查请求是否被防火墙拦截。 + {:lang('System management tips')}

{foreach $configs as $key => $value} @@ -28,7 +27,7 @@
{foreach $value as $val}
- + {switch $val.type} {case text} @@ -45,18 +44,18 @@ {case select} {/case} {/switch}
{/foreach} - - + + {if 'mail' eq $key} - + {/if}
@@ -70,9 +69,9 @@
软件信息{:lang('Software information')}
软件版本:{:lang('Software version:')} v{$config.system_version}
使用手册:{:lang('User manual:')} https://www.kancloud.cn/wispx/lsky-pro/content
仓库地址:{:lang('Warehouse address:')} https://github.com/wisp-x/lsky-pro
联系作者:{:lang('Contact author:')} i@wispx.cn
- - - + + + @@ -94,9 +93,9 @@
变量名示例说明{:lang('Variable name')}{:lang('Example')}{:lang('Explain')}
- - - + + + @@ -128,7 +127,7 @@ }); $('#test-send-mail').click(function () { - mdui.prompt('请输入邮箱', + mdui.prompt(lang('Please input email'), function (value) { app.request("{:url('admin/system/testMail')}", {email: value}); }, @@ -136,8 +135,8 @@ }, { - confirmText: '确定', - cancelText: '取消' + confirmText: lang('Confirm'), + cancelText: lang('Cancel') } ); }); diff --git a/application/index/view/admin/users/index.html b/application/index/view/admin/users/index.html index 7449a798..b26c6949 100644 --- a/application/index/view/admin/users/index.html +++ b/application/index/view/admin/users/index.html @@ -1,39 +1,39 @@ {extend name="common:base" /} -{block name="title"}用户管理 - {$config.site_name}{/block} +{block name="title"}{:lang('User management')} - {$config.site_name}{/block} {block name="main"}
- 共有 {$users->total()} 个用户 - + {:lang('There are %s users in total', [''.$users->total().''])} +
- +
变量名示例说明{:lang('Variable name')}{:lang('Example')}{:lang('Explain')}
- - - - - - - - - + + + + + + + + + @@ -53,15 +53,15 @@ @@ -76,39 +76,39 @@
-
修改用户数据
+
{:lang('Modify user data')}
- - + +
- - + +
- - + +
- - + +
- - + +
- - + +
- - + +
- - + +
@@ -134,9 +134,9 @@ diff --git a/application/index/view/index/gallery.html b/application/index/view/index/gallery.html index ad74602c..fa5c0e25 100644 --- a/application/index/view/index/gallery.html +++ b/application/index/view/index/gallery.html @@ -1,6 +1,6 @@ {extend name="common:base" /} -{block name="title"}画廊 - {$config.site_name}{/block} +{block name="title"}{:lang('Gallery')} - {$config.site_name}{/block} {block name="css"} @@ -43,7 +43,7 @@
{/foreach} - + {/block} @@ -64,12 +64,12 @@ $more.click(function () { if (loading) return; loading = true; - $more.attr('disabled', true).text("加载中..."); + $more.attr('disabled', true).text(lang('Loading...')); app.ajax("", {page: page, limit: limit}, function (response) { if (response.code) { var data = response.data; if (data.length === 0) { - $more.text("我也是有底线的~"); + $more.text(lang('No more')); } else { var html = ''; for (var key in data) { @@ -89,9 +89,9 @@ $viewer.data('viewer').update(); loading = false; if (data.length < limit) { - $more.text("我也是有底线的~"); + $more.text(lang('No more')); } else { - $more.attr('disabled', false).text("查看更多"); + $more.attr('disabled', false).text(lang('See more')); page++; } } @@ -99,4 +99,4 @@ }); }); -{/block} \ No newline at end of file +{/block} diff --git a/application/index/view/index/home.html b/application/index/view/index/home.html index 7bd93917..d921b037 100644 --- a/application/index/view/index/home.html +++ b/application/index/view/index/home.html @@ -16,9 +16,9 @@
SIGN IN
- - - + + +
diff --git a/application/index/view/index/index.html b/application/index/view/index/index.html index 530b6ada..1cb06dbe 100755 --- a/application/index/view/index/index.html +++ b/application/index/view/index/index.html @@ -20,7 +20,7 @@ {/if}

Image Upload

-

最大可上传 {:format_size($config.upload_max_size)} 的图片,单次同时可选择 {$config.upload_single_num} 张。本站已托管 {$images_count} 张图片。

+

{:lang('Home upload info', [format_size($config.upload_max_size), $config.upload_single_num, $images_count])}

@@ -44,10 +44,10 @@
-
请登录后体验
+
{:lang('Sign in tip')}
@@ -63,7 +63,9 @@ +{if ($lang === 'zh-cn')} +{/if} diff --git a/application/index/view/user/images.html b/application/index/view/user/images.html index 7ee8406f..7f8a4678 100644 --- a/application/index/view/user/images.html +++ b/application/index/view/user/images.html @@ -1,6 +1,6 @@ {extend name="common:base" /} -{block name="title"}图片管理 - {$config.site_name}{/block} +{block name="title"}{:lang('Picture management')} - {$config.site_name}{/block} {block name="css"} @@ -14,20 +14,20 @@
- 共有 0 张图片 - + {:lang('There are %s pictures in total', ['0'])} +
- +
- +
用户名角色组昵称邮箱已使用容量总容量账号状态注册IP操作{:lang('User name')}{:lang('Role group')}{:lang('Nickname')}{:lang('Email')}{:lang('Used capacity')}{:lang('Total capacity')}{:lang('Account status')}{:lang('Register IP')}{:lang('Operation')}
{$value.quota|format_size} {$value.reg_ip}
- - + +
- + - + - + - + - + - + @@ -86,10 +86,10 @@
- 打开链接 - - - + {:lang('Open link')} + + +
@@ -104,8 +104,8 @@
- - + +
@@ -141,7 +141,7 @@ getData: function (options) { params = options || params; var more = $(".more"); - more.attr('disabled', true).text('加载中...'); + more.attr('disabled', true).text(lang('Loading...')); app.ajax("{:url('user/images')}", params, function (response) { if (response.code) { var images = response.data.images.data; @@ -190,12 +190,12 @@ } if (response.data.images.current_page == response.data.images.last_page) { - return more.attr('disabled', true).text('我也是有底线的~'); + return more.attr('disabled', true).text(lang('No more')); } params.page++; - return more.attr('disabled', false).text('加载更多'); + return more.attr('disabled', false).text(lang('Loading more')); } else { - more.attr('disabled', true).text('暂无数据'); + more.attr('disabled', true).text(lang('No data available')); } } }); @@ -207,9 +207,9 @@ }, // 删除 delete: function (id, batch, callback) { - var msg = '确认删除该图片吗?'; + var msg = lang('Are you sure to delete this picture?'); if (batch) { - msg = '确认删除选中项图片吗?'; + msg = lang('Are you sure to delete the selected picture?'); } mdui.confirm(msg, function () { app.request("{:url('user/deleteImages')}", {id: id}, function () { @@ -217,7 +217,7 @@ }); }, function () { - }, {confirmText: '确定', cancelText: '取消'}); + }, {confirmText: lang('Confirm'), cancelText: lang('Cancel')}); }, getFolders: function (options, openDialog, callback) { openDialog = openDialog || false; @@ -238,7 +238,7 @@ ); } } else { - $('#folders ul.mdui-list').html('
  • 没有找到文件夹
  • '); + $('#folders ul.mdui-list').html('
  • ' + lang('Folder not found') + '
  • '); } foldersDialog.handleUpdate(); openDialog && foldersDialog.open(); @@ -253,14 +253,14 @@ // 监听复制操作 var clipboard = new ClipboardJS('.copy-url'); clipboard.on('success', function(e) { - app.msg(true, '复制成功!'); + app.msg(true, lang('Copy success')); e.clearSelection(); }); clipboard.on('error', function(e) { console.error('Action:', e.action); console.error('Trigger:', e.trigger); - app.msg(false, '复制失败!'); + app.msg(false, lang('Copy fail')); }); // Context Start @@ -278,13 +278,13 @@ if ($that.parents().hasClass('folders-box')) { context.attach('.folders-box .item', [ {header: 'Compressed Menu'}, - {text: '打开', action: function (e) { + {text: lang('Open'), action: function (e) { $item.click(); } }, - {text: '重新命名', action: function (e) { + {text: lang('Rename'), action: function (e) { e.preventDefault(); - mdui.prompt('请输入文件夹名称', + mdui.prompt(lang('Please enter a folder name'), function (value) { app.ajax("{:url('user/renameFolder')}", { id: $item.data('id'), @@ -302,9 +302,9 @@ } }, {divider: true}, - {text: '删除', action: function (e) { + {text: lang('Delete'), action: function (e) { e.preventDefault(); - mdui.confirm('确认删除该文件夹吗?', function() { + mdui.confirm(lang('Are you sure to delete this folder?'), function() { app.ajax("{:url('user/deleteFolder')}", {id: $item.data('id')}, function (response) { if (response.code) { $item.parent().remove(); @@ -320,16 +320,16 @@ var $item = $that.closest('.item'), data = $item.data('json'); context.attach('.images-box .item', [ {header: 'Compressed Menu'}, - {text: '查看图片', action: function (e) { + {text: lang('See picture'), action: function (e) { e.preventDefault(); $item.find('img').click(); } }, - {text: '新窗口打开图片', href: data.url, target: '_blank'}, + {text: lang('Open picture in new window'), href: data.url, target: '_blank'}, {divider: true}, - {text: '重命名', action: function (e) { + {text: lang('Rename'), action: function (e) { e.preventDefault(); - mdui.prompt('请输入图片名称', + mdui.prompt(lang('Please enter a picture name'), function (value) { app.ajax("{:url('user/renameImage')}", { id: data.id, @@ -345,13 +345,13 @@ ); } }, - {text: '复制链接', action: function (e) { + {text: lang('Copy link'), action: function (e) { e.preventDefault(); $('#copy-url').attr('data-clipboard-text', data.url).click(); } }, { - text: '删除', action: function (e) { + text: lang('Delete'), action: function (e) { e.preventDefault(); methods.delete(data.id, false, function () { $item.parent().remove(); @@ -360,7 +360,7 @@ } }, { - text: '属性', action: function (e) { + text: lang('Attribute'), action: function (e) { e.preventDefault(); $item.find('i.info').click(); } @@ -369,9 +369,9 @@ } else { context.attach('.box', [ {header: 'Compressed Menu'}, - {text: '新建文件夹', action: function (e) { + {text: lang('New folder'), action: function (e) { e.preventDefault(); - mdui.prompt('请输入文件夹名称', + mdui.prompt(lang('Please enter a folder name'), function (value) { app.ajax("{:url('user/createFolder')}", { parent_id: $('ul.breadcrumb li.active:last-child a').data('id'), @@ -388,7 +388,7 @@ } }, {divider: true}, - {text: '刷新', action: function (e) { + {text: lang('Refresh'), action: function (e) { // e.preventDefault(); methods.resetData(); } @@ -502,7 +502,7 @@ } } else { - app.msg(false, '至少选择一项数据!') + app.msg(false, lang('Select at least one data!')) } } }); @@ -514,16 +514,16 @@ if (0 === item.length) { return mdui.snackbar({ position: 'right-top', - message: '暂无数据!' + message: lang('No data available!') }); } if (all) { item.removeClass('choice'); - $(this).text('全选'); + $(this).text(lang('Select all')); all = false; } else { item.removeClass('choice').addClass('choice'); - $(this).text('取消全选'); + $(this).text(lang('Deselect all')); all = true; } }); @@ -563,7 +563,7 @@ infoDialog.find('.delete-image').attr('data-id', data.id); info.open(); } else { - app.msg(false, '数据异常!'); + app.msg(false, lang('Data exception!')); } }); @@ -577,7 +577,7 @@ totalBox.text(parseInt(totalBox.text()) - 1); }); } else { - app.msg(false, '数据异常!'); + app.msg(false, lang('Data exception!')); } }); diff --git a/application/index/view/user/settings.html b/application/index/view/user/settings.html index f35b8add..5f6b38a9 100644 --- a/application/index/view/user/settings.html +++ b/application/index/view/user/settings.html @@ -1,6 +1,6 @@ {extend name="common:base" /} -{block name="title"}设置 - {$config.site_name}{/block} +{block name="title"}{:lang('Setting')} - {$config.site_name}{/block} {block name="main"}
    @@ -8,41 +8,41 @@
    - +
    - +
    -
    注意:Token 具有管理图片权限,请不要随意泄漏。
    +
    {:lang('Token tip')}
    - - + +
    - - + +
    - - + +
    - - + +
    - - + +
    - - + +
    @@ -60,4 +60,4 @@ }); }); -{/block} \ No newline at end of file +{/block} diff --git a/application/lang/en.php b/application/lang/en.php new file mode 100644 index 00000000..ca5d8ed5 --- /dev/null +++ b/application/lang/en.php @@ -0,0 +1,5 @@ + '首页', + 'Gallery' => '画廊', + 'Api' => '接口', + 'My picture' => '我的图片', + 'Setting' => '设置', + 'System management' => '系统管理', + 'Console' => '控制台', + 'Role group' => '角色组', + 'User management' => '用户管理', + 'Picture management' => '图片管理', + 'Storage' => '储存策略', + 'System setting' => '系统设置', + 'Sign In' => '登录', + 'Sign Up' => '注册', + 'Logout' => '退出账号', + 'Used capacity' => '使用容量', + 'Sign in tip' => '请登录后体验', + 'Home upload info' => '最大可上传 %s 的图片,单次同时可选择 %s 张。本站已托管 %s 张图片。', + 'Account input tip' => '请输入用户名或邮箱', + 'Password input tip' => '请输入密码', + 'Copy success' => '复制成功', + 'Copy fail' => '复制失败', + 'Upload pasted photos?' => '是否上传粘贴的图片?', + 'Confirm' => '确定', + 'Cancel' => '取消', + 'Exception occurred' => '发生异常', + 'Footer tip' => '请勿上传违反中国大陆和香港法律的图片,违者后果自负。', + '%s second%s ago' => '%s秒前', + '%s minute%s ago' => '%s分钟前', + '%s hour%s ago' => '%s小时前', + '%s day%s ago' => '%s天前', + '%s week%s ago' => '%s周前', + '%s month%s ago' => '%s月前', + '%s year%s ago' => '%s年前', + 'See more' => '查看更多', + 'Loading more' => '加载更多', + 'Loading...' => '加载中...', + 'No more' => '我也是有底线的~', + 'No data available' => '暂无数据', + 'There are %s pictures in total' => '共有 %s 张图片', + 'Select all' => '全选', + 'Deselect all' => '取消全选', + 'Selected items' => '选中项', + 'Move' => '移动', + 'Delete' => '删除', + 'Reset data' => '重置数据', + 'Enter search...' => '回车搜索...', + 'Are you sure to delete this picture?' => '确认删除该图片吗?', + 'Are you sure to delete the selected picture?' => '确认删除选中项图片吗?', + 'Folder not found' => '没有找到文件夹', + 'Open' => '打开', + 'Close' => '关闭', + 'Rename' => '重新命名', + 'Please enter a folder name' => '请输入文件夹名称', + 'Are you sure to delete this folder?' => '确认删除该文件夹吗?', + 'See picture' => '查看图片', + 'Open picture in new window' => '新窗口打开图片', + 'Please enter a picture name' => '请输入图片名称', + 'Copy link' => '复制链接', + 'Open link' => '打开链接', + 'Attribute' => '属性', + 'New folder' => '新建文件夹', + 'Refresh' => '刷新', + 'Select at least one data!' => '至少选择一项数据!', + 'No data available!' => '暂无数据', + 'Data exception!' => '数据异常!', + 'Picture link' => '图片外链', + 'Alias:' => '别名:', + 'Link:' => '链接:', + 'Position:' => '位置:', + 'Size:' => '大小:', + 'MD5:' => 'MD5:', + 'Type:' => '类型:', + 'User name' => '用户名', + 'Email' => '邮箱', + 'Token tip' => '注意:Token 具有管理图片权限,请不要随意泄漏。', + 'Nickname' => '昵称', + 'Default upload folder' => '默认上传文件夹', + 'Default upload folder tip' => '默认上传文件夹名(不存在上传时自动创建)', + 'Old password' => '原密码', + 'Old password tip' => '原密码,不修改请留空', + 'Password' => '密码', + 'Password tip' => '密码,不修改请留空', + 'Confirm password' => '确认密码', + 'Save' => '保存', + 'Reset' => '重置', + 'Occupied storage' => '占用储存', + 'Zhang' => '张', + 'Ge' => '个', + 'Suspicious picture' => '可疑图片', + 'Number of users' => '用户数量', + 'Upload today' => '今日上传', + 'Uploaded yesterday' => '昨日上传', + 'Upload this month' => '本月上传', + 'Visitor upload' => '游客上传', + 'System configuration' => '系统配置', + 'Operating system' => '操作系统', + 'Server IP:' => '服务器 IP:', + 'Website domain name:' => '网站域名:', + 'Operating environment:' => '运行环境:', + 'PHP version:' => 'PHP 版本', + 'File upload restrictions:' => '文件上传限制:', + 'Software information' => '软件信息', + 'Software version:' => '软件版本:', + 'User manual:' => '用户手册:', + 'Warehouse address:' => '仓库地址:', + 'System management tips' => '系统配置,统计代码中注意要使用<script></script>标签,不设置可为空。
    基础配置如果出现无法保存的情况请检查请求是否被防火墙拦截。', + 'Basic configuration' => '基础配置', + 'Upload configuration' => '上传配置', + 'Mail configuration' => '邮件配置', + 'Other configuration' => '其他配置', + 'Picture identification yellow' => '图片鉴黄', + 'Test mail sending' => '测试邮件发送', + 'Variable name' => '变量名', + 'Example' => '示例', + 'Explain' => '说明', + 'Please input email' => '请输入邮箱', + 'Turn off registration' => '关闭注册', + 'Website title' => '网站标题', + 'Website keywords' => '网站关键字', + 'Website description' => '网站描述', + 'Custom CSS' => '自定义CSS', + 'Statistical code' => '统计代码', + 'Allow visitors to upload' => '允许游客上传', + 'Allow visitors to upload tip' => '是否允许游客上传', + 'Upload max size' => '最大上传大小', + 'Upload max size tip' => '单位:b,默认5242880:5M', + 'Upload single num' => '单次同时上传数量', + 'Same ip day max upload' => '相同ip一天内最大上传限制', + 'Same ip day max upload tip' => '为0则不限制', + 'Upload allowed exts' => '允许上传的文件后缀', + 'Upload allowed exts tip' => '逗号隔开', + 'Path naming rule' => '文件路径命名规则', + 'File naming rule' => '文件命名规则', + 'Path naming variable cross reference table' => '路径命名变量对照表', + 'File naming variable cross reference table' => '文件命名变量对照表', + 'User initial quota' => '用户初始配额容量', + 'User initial quota tip' => '单位:b,默认1073741824:1G,最大18位', + 'Mail send mode' => '邮件发送方式', + 'Mail smtp secure' => 'SMTP验证方式', + 'Mail smtp host' => 'SMTP主机地址', + 'Mail smtp username' => 'SMTP用户名', + 'Mail smtp password' => 'SMTP密码', + 'Mail smtp port' => 'SMTP端口', + 'Mail form email' => '发件人邮箱', + 'Soft delete' => '软删除', + 'Soft delete tip' => '删除图片时不删除源文件,不建议开启', + 'Open gallery' => '开启画廊', + 'Open gallery tip' => '开启画廊功能,游客上传的图片将会出现在画廊中', + 'Open api' => '开启API', + 'Open api tip' => '是否开放接口', + 'Ban ip' => '封禁IP', + 'Ban ip tip' => '封禁IP, 多个使用逗号隔开', + 'Storage strategy' => '储存策略', + 'Domain name' => '域名', + 'Regional node' => '地域节点', + 'Region' => '所属区域', + 'Bucket name' => '储存桶名称', + 'Operator account' => '操作员账号', + 'Operator password' => '操作员密码', + 'Cloud storage service name' => '云储存服务名称', + 'System notice' => '系统公告', + 'System notice tip' => '支持html', + 'Remote storage type' => '远程储存类型', + 'Passive mode' => '被动模式', + 'Connection address' => '连接地址', + 'Login account' => '登录账号', + 'Login password' => '登录密码', + 'Connection port' => '连接端口', + 'Turn on picture yellow identification' => '开启图片鉴黄', + 'Turn on picture yellow identification tip' => '接口申请地址:https://www.moderatecontent.com', + 'Content rating' => '内容评级', + 'Content rating tip' => '1=非常严格,2=严格,3=一般', + 'Very strict' => '非常严格', + 'Strict' => '严格', + 'Commonly' => '一般', + 'System version' => '系统版本', + 'Default group' => '默认组', + 'Role group tips' => '不同的角色组下的用户,上传图片将使用不同的储存策略。
    至少有一个默认角色组,新注册用户和访客将会使用默认的角色组。
    角色组删除后,该组下面的用户将重置默认角色组。', + 'Strategy used' => '使用策略', + 'Name' => '名称', + 'Register default' => '注册默认', + 'Operation' => '操作', + 'Edit' => '编辑', + 'Add role group' => '添加角色组', + 'Edit role group' => '编辑角色组', + 'Group name' => '组名称', + 'Is default' => '是否默认', + 'Modify' => '修改', + 'Are you sure to delete this role group?' => '确认删除该角色组吗?', + 'Are you sure to delete the selected item role group?' => '确认删除选中项角色组吗?', + 'There are %s users in total' => '共有 %s 个用户', + 'All' => '全部', + 'Normal' => '正常', + 'Frozen' => '冻结', + 'Total capacity' => '总容量', + 'Account status' => '账号状态', + 'Register IP' => '注册IP', + 'Modify user data' => '修改用户数据', + 'Storage capacity' => '储存容量', + 'Used storage capacity' => '已使用储存容量', + 'Are you sure to delete this user?' => '确认删除该用户吗?', + 'Are you sure to delete the selected user?' => '确认删除选中项用户吗?', + 'Are you sure to freeze this user?' => '确认冻结该用户吗?', + 'Are you sure to freeze the selected users?' => '确认冻结选中项用户吗?', + 'Visitor picture' => '访客图片', +]; diff --git a/application/sql/install.sql b/application/sql/install.sql index fdf9fe0c..2b9dccc9 100644 --- a/application/sql/install.sql +++ b/application/sql/install.sql @@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS `lsky_config` ( `input_type` varchar(32) NOT NULL DEFAULT 'text' COMMENT 'input type属性', `name` varchar(32) CHARACTER SET utf8mb4 NOT NULL UNIQUE COMMENT '配置名', `title` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '配置标题', - `tip` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '配置描述', + `tip` varchar(1000) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '配置描述', `value` text CHARACTER SET utf8mb4 NOT NULL COMMENT '配置值', `extend` text CHARACTER SET utf8mb4 NOT NULL COMMENT '扩展属性', PRIMARY KEY (`id`) @@ -109,67 +109,67 @@ CREATE TABLE `lsky_group` ( -- INSERT INTO `lsky_config` (`id`, `key`, `type`, `input_type`, `name`, `title`, `tip`, `value`, `extend`) VALUES -(NULL, 'basics', 'bool', 'checkbox', 'close_register', '关闭注册', NULL, '0', ''), -(NULL, 'basics', 'text', 'text', 'site_name', '网站标题', NULL, 'Lsky Pro', ''), -(NULL, 'basics', 'text', 'text', 'site_keywords', '网站关键字', NULL, 'Lsky Pro', ''), -(NULL, 'basics', 'text', 'text', 'site_description', '网站描述', NULL, 'Lsky Pro, Your photo album on the cloud.', ''), -(NULL, 'basics', 'textarea', 'textarea', 'custom_style', '自定义CSS', NULL, '\r\n', ''), -(NULL, 'basics', 'textarea', 'textarea', 'statistics_code', '统计代码', NULL, '', ''), -(NULL, 'basics', 'text', 'text', 'icp_number', '备案号', NULL, '', ''), -(NULL, 'upload', 'bool', 'checkbox', 'allowed_tourist_upload', '允许游客上传', '是否允许游客上传', '1', ''), -(NULL, 'upload', 'text', 'text', 'upload_max_size', '最大上传大小', '单位:b,默认5242880:5M', '5242880', ''), -(NULL, 'upload', 'text', 'number', 'upload_single_num', '单次同时上传数量', NULL, '10', ''), -(NULL, 'upload', 'text', 'number', 'same_ip_day_max_upload', '相同ip一天内最大上传限制', '为0则不限制', '0', ''), -(NULL, 'upload', 'text', 'text', 'upload_allowed_exts', '允许上传的文件后缀', '逗号隔开', 'jpg,jpeg,gif,png,ico', ''), -(NULL, 'upload', 'text', 'text', 'path_naming_rule', '文件路径命名规则', '路径命名变量对照表', '{Y}/{m}/{d}', ''), -(NULL, 'upload', 'text', 'text', 'file_naming_rule', '文件命名规则', '文件命名变量对照表', '{uniqid}', ''), -(NULL, 'user', 'text', 'text', 'user_initial_quota', '用户初始配额容量', '单位:b,默认1073741824:1G,最大18位', '1073741824', ''), -(NULL, 'mail', 'select', 'text', 'mail_send_mode', '邮件发送方式', NULL, 'smtp', '{\"smtp\":\"SMTP\"}'), -(NULL, 'mail', 'select', 'text', 'mail_smtp_secure', 'SMTP验证方式', NULL, 'none', '{\"none\":\"None\",\"tls\":\"TLS\",\"ssl\":\"SSL\"}'), -(NULL, 'mail', 'text', 'text', 'mail_smtp_host', 'SMTP主机地址', NULL, '', ''), -(NULL, 'mail', 'text', 'text', 'mail_smtp_username', 'SMTP用户名', NULL, '', ''), -(NULL, 'mail', 'text', 'password', 'mail_smtp_password', 'SMTP密码', NULL, '', ''), -(NULL, 'mail', 'text', 'number', 'mail_smtp_port', 'SMTP端口', '25/465', '25', ''), -(NULL, 'mail', 'text', 'email', 'mail_form_email', '发件人邮箱', NULL, '', ''), +(NULL, 'basics', 'bool', 'checkbox', 'close_register', 'Turn off registration', NULL, '0', ''), +(NULL, 'basics', 'text', 'text', 'site_name', 'Website title', NULL, 'Lsky Pro', ''), +(NULL, 'basics', 'text', 'text', 'site_keywords', 'Website keywords', NULL, 'Lsky Pro', ''), +(NULL, 'basics', 'text', 'text', 'site_description', 'Website description', NULL, 'Lsky Pro, Your photo album on the cloud.', ''), +(NULL, 'basics', 'textarea', 'textarea', 'custom_style', 'Custom CSS', NULL, '\r\n', ''), +(NULL, 'basics', 'textarea', 'textarea', 'statistics_code', 'Statistical code', NULL, '', ''), +(NULL, 'basics', 'text', 'text', 'icp_number', 'Icp number', NULL, '', ''), +(NULL, 'upload', 'bool', 'checkbox', 'allowed_tourist_upload', 'Allow visitors to upload', 'Allow visitors to upload tip', '1', ''), +(NULL, 'upload', 'text', 'text', 'upload_max_size', 'Upload max size', 'Upload max size tip', '5242880', ''), +(NULL, 'upload', 'text', 'number', 'upload_single_num', 'Upload single num', NULL, '10', ''), +(NULL, 'upload', 'text', 'number', 'same_ip_day_max_upload', 'Same ip day max upload', 'Same ip day max upload tip', '0', ''), +(NULL, 'upload', 'text', 'text', 'upload_allowed_exts', 'Upload allowed exts', 'Upload allowed exts tip', 'jpg,jpeg,gif,png,ico', ''), +(NULL, 'upload', 'text', 'text', 'path_naming_rule', 'Path naming rule', 'Path naming variable cross reference table', '{Y}/{m}/{d}', ''), +(NULL, 'upload', 'text', 'text', 'file_naming_rule', 'File naming rule', 'File naming variable cross reference table', '{uniqid}', ''), +(NULL, 'user', 'text', 'text', 'user_initial_quota', 'User initial quota', 'User initial quota tip', '1073741824', ''), +(NULL, 'mail', 'select', 'text', 'mail_send_mode', 'Mail send mode', NULL, 'smtp', '{\"smtp\":\"SMTP\"}'), +(NULL, 'mail', 'select', 'text', 'mail_smtp_secure', 'Mail smtp secure', NULL, 'none', '{\"none\":\"None\",\"tls\":\"TLS\",\"ssl\":\"SSL\"}'), +(NULL, 'mail', 'text', 'text', 'mail_smtp_host', 'Mail smtp host', NULL, '', ''), +(NULL, 'mail', 'text', 'text', 'mail_smtp_username', 'Mail smtp username', NULL, '', ''), +(NULL, 'mail', 'text', 'password', 'mail_smtp_password', 'Mail smtp password', NULL, '', ''), +(NULL, 'mail', 'text', 'number', 'mail_smtp_port', 'Mail smtp port', '25/465', '25', ''), +(NULL, 'mail', 'text', 'email', 'mail_form_email', 'Mail form email', NULL, '', ''), -(NULL, 'other', 'bool', 'checkbox', 'soft_delete', '软删除', '删除图片时不删除源文件,不建议开启', '0', ''), -(NULL, 'other', 'bool', 'checkbox', 'open_gallery', '开启画廊', '开启画廊功能,游客上传的图片将会出现在画廊中', '0', ''), -(NULL, 'other', 'bool', 'checkbox', 'open_api', '开启API', '是否开放接口', '0', ''), -(NULL, 'other', 'textarea', 'textarea', 'ban_ip', '封禁IP', '封禁IP, 多个使用逗号隔开', '', ''), +(NULL, 'other', 'bool', 'checkbox', 'soft_delete', 'Soft delete', 'Soft delete tip', '0', ''), +(NULL, 'other', 'bool', 'checkbox', 'open_gallery', 'Open gallery', 'Open gallery tip', '0', ''), +(NULL, 'other', 'bool', 'checkbox', 'open_api', 'Open api', 'Open api tip', '0', ''), +(NULL, 'other', 'textarea', 'textarea', 'ban_ip', 'Ban ip', 'Ban ip tip', '', ''), -(NULL, 'storage_strategy', 'select', 'text', 'storage_strategy', '储存策略', NULL, 'local', ''), -(NULL, 'local', 'text', 'text', 'local_cdn_domain', '域名', NULL, '', ''), -(NULL, 'oss', 'text', 'text', 'oss_cdn_domain', '域名', NULL, '', ''), +(NULL, 'storage_strategy', 'select', 'text', 'storage_strategy', 'Storage strategy', NULL, 'local', ''), +(NULL, 'local', 'text', 'text', 'local_cdn_domain', 'Domain name', NULL, '', ''), +(NULL, 'oss', 'text', 'text', 'oss_cdn_domain', 'Domain name', NULL, '', ''), (NULL, 'oss', 'text', 'text', 'oss_access_key_id', 'AccessKeyId', NULL, '', ''), (NULL, 'oss', 'text', 'text', 'oss_access_key_secret', 'AccessKeySecret', NULL, '', ''), -(NULL, 'oss', 'text', 'text', 'oss_endpoint', 'Endpoint', '地域节点', '', ''), +(NULL, 'oss', 'text', 'text', 'oss_endpoint', 'Endpoint', 'Regional node', '', ''), (NULL, 'oss', 'text', 'text', 'oss_bucket', 'Bucket', NULL, '', ''), -(NULL, 'cos', 'text', 'text', 'cos_cdn_domain', '域名', NULL, '', ''), +(NULL, 'cos', 'text', 'text', 'cos_cdn_domain', 'Domain name', NULL, '', ''), (NULL, 'cos', 'text', 'text', 'cos_secret_id', 'SecretId', NULL, '', ''), (NULL, 'cos', 'text', 'text', 'cos_secret_key', 'SecretKey', NULL, '', ''), -(NULL, 'cos', 'text', 'text', 'cos_region', '所属地域', NULL, '', ''), -(NULL, 'cos', 'text', 'text', 'cos_bucket', 'Bucket', '储存桶名称', '', ''), -(NULL, 'kodo', 'text', 'text', 'kodo_cdn_domain', '域名', NULL, '', ''), +(NULL, 'cos', 'text', 'text', 'cos_region', 'Region', NULL, '', ''), +(NULL, 'cos', 'text', 'text', 'cos_bucket', 'Bucket', 'Bucket name', '', ''), +(NULL, 'kodo', 'text', 'text', 'kodo_cdn_domain', 'Domain name', NULL, '', ''), (NULL, 'kodo', 'text', 'text', 'kodo_access_key', 'AccessKey', NULL, '', ''), (NULL, 'kodo', 'text', 'text', 'kodo_secret_key', 'SecretKey', NULL, '', ''), (NULL, 'kodo', 'text', 'text', 'kodo_bucket', 'Bucket', NULL, '', ''), -(NULL, 'uss', 'text', 'text', 'uss_cdn_domain', '域名', NULL, '', ''), -(NULL, 'uss', 'text', 'text', 'uss_operator_name', 'OperatorName', '操作员账号', '', ''), -(NULL, 'uss', 'text', 'password', 'uss_operator_pwd', 'OperatorPwd', '操作员密码', '', ''), -(NULL, 'uss', 'text', 'text', 'uss_service_name', 'ServiceName', '云储存服务名称', '', ''), -(NULL, 'basics', 'textarea', 'textarea', 'notice', '系统公告', '支持html', '', ''), -(NULL, 'remote', 'text', 'text', 'remote_cdn_domain', '域名', NULL, '', ''), -(NULL, 'remote', 'select', 'text', 'remote_type', '远程储存类型', NULL, 'ftp', '{\"ftp\":\"ftp\"}'), -(NULL, 'remote', 'bool', 'checkbox', 'remote_pasv', '被动模式', NULL, '0', ''), -(NULL, 'remote', 'text', 'text', 'remote_host', '连接地址', NULL, '', ''), -(NULL, 'remote', 'text', 'text', 'remote_name', '登录账号', NULL, '', ''), -(NULL, 'remote', 'text', 'password', 'remote_password', '登录密码', NULL, '', ''), -(NULL, 'remote', 'text', 'number', 'remote_port', '连接端口', NULL, '21', ''), +(NULL, 'uss', 'text', 'text', 'uss_cdn_domain', 'Domain name', NULL, '', ''), +(NULL, 'uss', 'text', 'text', 'uss_operator_name', 'OperatorName', 'Operator account', '', ''), +(NULL, 'uss', 'text', 'password', 'uss_operator_pwd', 'OperatorPwd', 'Operator password', '', ''), +(NULL, 'uss', 'text', 'text', 'uss_service_name', 'ServiceName', 'Cloud storage service name', '', ''), +(NULL, 'basics', 'textarea', 'textarea', 'notice', 'System notice', 'System notice tip', '', ''), +(NULL, 'remote', 'text', 'text', 'remote_cdn_domain', 'Domain name', NULL, '', ''), +(NULL, 'remote', 'select', 'text', 'remote_type', 'Remote storage type', NULL, 'ftp', '{\"ftp\":\"ftp\"}'), +(NULL, 'remote', 'bool', 'checkbox', 'remote_pasv', 'Passive mode', NULL, '0', ''), +(NULL, 'remote', 'text', 'text', 'remote_host', 'Connection address', NULL, '', ''), +(NULL, 'remote', 'text', 'text', 'remote_name', 'Login account', NULL, '', ''), +(NULL, 'remote', 'text', 'password', 'remote_password', 'Login password', NULL, '', ''), +(NULL, 'remote', 'text', 'number', 'remote_port', 'Connection port', NULL, '21', ''), -(NULL, 'audit', 'bool', 'checkbox', 'open_audit', '开启图片鉴黄', '接口申请地址:https://www.moderatecontent.com', '0', ''), +(NULL, 'audit', 'bool', 'checkbox', 'open_audit', 'Turn on picture yellow identification', 'Turn on picture yellow identification tip', '0', ''), (NULL, 'audit', 'text', 'text', 'audit_key', 'Key', NULL, '', ''), -(NULL, 'audit', 'select', 'text', 'audit_index', '内容评级', '1=非常严格,2=严格,3=一般', '3', '{\"1\": \"非常严格\", \"2\": \"严格\", \"3\": \"一般\"}'), +(NULL, 'audit', 'select', 'text', 'audit_index', 'Content rating', 'Content rating tip', '3', '{\"1\": \"Very strict\", \"2\": \"Strict\", \"3\": \"Commonly\"}'), -(NULL, '', 'text', 'text', 'system_version', '系统版本', NULL, '1.6.4', ''); +(NULL, '', 'text', 'text', 'system_version', 'System version', NULL, '1.6.4', ''); -INSERT INTO `lsky_group` (`id`, `strategy`, `name`, `default`, `update_time`, `create_time`) VALUES (NULL, 'local', '默认组', '1', '0', '0'); +INSERT INTO `lsky_group` (`id`, `strategy`, `name`, `default`, `update_time`, `create_time`) VALUES (NULL, 'local', 'Default group', '1', '0', '0'); diff --git a/application/sql/update.sql b/application/sql/update.sql index 1a93238a..1f6a11c8 100644 --- a/application/sql/update.sql +++ b/application/sql/update.sql @@ -9,10 +9,10 @@ UPDATE `lsky_config` SET `value` = '1.2.1' WHERE `lsky_config`.`name` = 'system_ UPDATE `lsky_config` SET `value` = '1.3.2' WHERE `lsky_config`.`name` = 'system_version'; INSERT IGNORE INTO `lsky_config` (`id`, `key`, `type`, `input_type`, `name`, `title`, `tip`, `value`, `extend`) VALUES -(NULL, 'audit', 'bool', 'checkbox', 'open_audit', '开启图片鉴黄', '鉴黄接口申请地址:https://www.moderatecontent.com', '0', ''), +(NULL, 'audit', 'bool', 'checkbox', 'open_audit', 'Turn on picture yellow identification', 'Turn on picture yellow identification tip', '0', ''), (NULL, 'audit', 'text', 'text', 'audit_key', 'Key', NULL, '', ''), -(NULL, 'audit', 'select', 'text', 'audit_index', '内容评级', '1=非常严格,2=严格,3=一般', '3', '{\"1\": \"非常严格\", \"2\": \"严格\", \"3\": \"一般\"}'), -(NULL, 'other', 'bool', 'checkbox', 'open_api', '开启API', '是否开放接口', '0', ''); +(NULL, 'audit', 'select', 'text', 'audit_index', 'Content rating', 'Content rating tip', '3', '{\"1\": \"Very strict\", \"2\": \"Strict\", \"3\": \"Commonly\"}'), +(NULL, 'other', 'bool', 'checkbox', 'open_api', 'Open api', 'Open api tip', '0', ''); -- v1.3.3 UPDATE `lsky_config` SET `value` = '1.3.3' WHERE `lsky_config`.`name` = 'system_version'; @@ -49,10 +49,10 @@ UPDATE `lsky_images` SET `strategy` = 'kodo' WHERE `lsky_images`.`strategy` = 'q -- v1.5.0 UPDATE `lsky_config` SET `value` = '1.5.0' WHERE `lsky_config`.`name` = 'system_version'; -UPDATE `lsky_config` SET `tip` = '接口申请地址:https://www.moderatecontent.com' WHERE `lsky_config`.`name` = 'open_audit'; +UPDATE `lsky_config` SET `tip` = 'Turn on picture yellow identification tip' WHERE `lsky_config`.`name` = 'open_audit'; INSERT IGNORE INTO `lsky_config` (`id`, `key`, `type`, `input_type`, `name`, `title`, `tip`, `value`, `extend`) VALUES -(NULL, 'basics', 'textarea', 'textarea', 'custom_style', '自定义CSS', NULL, '\r\n', ''), -(NULL, 'basics', 'textarea', 'textarea', 'statistics_code', '统计代码', NULL, '', ''); +(NULL, 'basics', 'textarea', 'textarea', 'custom_style', 'Custom CSS', NULL, '\r\n', ''), +(NULL, 'basics', 'textarea', 'textarea', 'statistics_code', 'Statistical code', NULL, '', ''); CREATE TABLE IF NOT EXISTS `lsky_group` ( `id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID', `strategy` varchar(32) NOT NULL COMMENT '使用策略', @@ -80,13 +80,13 @@ UPDATE `lsky_config` SET `value` = '1.5.4' WHERE `lsky_config`.`name` = 'system_ -- v1.5.5 UPDATE `lsky_config` SET `value` = '1.5.5' WHERE `lsky_config`.`name` = 'system_version'; INSERT IGNORE INTO `lsky_config` (`id`, `key`, `type`, `input_type`, `name`, `title`, `tip`, `value`, `extend`) VALUES -(NULL, 'basics', 'textarea', 'textarea', 'notice', '系统公告', '支持html', '', ''), -(NULL, 'remote', 'text', 'text', 'remote_cdn_domain', '域名', NULL, '', ''), -(NULL, 'remote', 'select', 'text', 'remote_type', '远程储存类型', NULL, 'ftp', '{\"ftp\":\"Ftp\"}'), -(NULL, 'remote', 'text', 'text', 'remote_host', '连接地址', NULL, '', ''), -(NULL, 'remote', 'text', 'text', 'remote_name', '登录账号', NULL, '', ''), -(NULL, 'remote', 'text', 'password', 'remote_password', '登录密码', NULL, '', ''), -(NULL, 'remote', 'text', 'number', 'remote_port', '连接端口', NULL, '21', ''); +(NULL, 'basics', 'textarea', 'textarea', 'notice', 'System notice', 'System notice tip', '', ''), +(NULL, 'remote', 'text', 'text', 'remote_cdn_domain', 'Domain name', NULL, '', ''), +(NULL, 'remote', 'select', 'text', 'remote_type', 'Remote storage type', NULL, 'ftp', '{\"ftp\":\"Ftp\"}'), +(NULL, 'remote', 'text', 'text', 'remote_host', 'Connection address', NULL, '', ''), +(NULL, 'remote', 'text', 'text', 'remote_name', 'Login account', NULL, '', ''), +(NULL, 'remote', 'text', 'password', 'remote_password', 'Login password', NULL, '', ''), +(NULL, 'remote', 'text', 'number', 'remote_port', 'Connection port', NULL, '21', ''); -- v1.5.6 UPDATE `lsky_config` SET `value` = '1.5.6' WHERE `lsky_config`.`name` = 'system_version'; @@ -100,8 +100,8 @@ UPDATE `lsky_config` SET `value` = '1.5.8' WHERE `lsky_config`.`name` = 'system_ -- v1.6.0 UPDATE `lsky_config` SET `value` = '1.6.0' WHERE `lsky_config`.`name` = 'system_version'; INSERT IGNORE INTO `lsky_config` (`id`, `key`, `type`, `input_type`, `name`, `title`, `tip`, `value`, `extend`) VALUES -(NULL, 'other', 'textarea', 'textarea', 'ban_ip', '封禁IP', '封禁IP, 多个使用逗号隔开', '', ''), -(NULL, 'remote', 'bool', 'checkbox', 'remote_pasv', '被动模式', NULL, '0', ''); +(NULL, 'other', 'textarea', 'textarea', 'ban_ip', 'Ban ip', 'Ban ip tip', '', ''), +(NULL, 'remote', 'bool', 'checkbox', 'remote_pasv', 'Passive mode', NULL, '0', ''); -- v1.6.1 UPDATE `lsky_config` SET `value` = '1.6.1' WHERE `lsky_config`.`name` = 'system_version'; @@ -109,9 +109,9 @@ UPDATE `lsky_config` SET `value` = '1.6.1' WHERE `lsky_config`.`name` = 'system_ -- v1.6.3 UPDATE `lsky_config` SET `value` = '1.6.3' WHERE `lsky_config`.`name` = 'system_version'; INSERT IGNORE INTO `lsky_config` (`id`, `key`, `type`, `input_type`, `name`, `title`, `tip`, `value`, `extend`) VALUES -(NULL, 'other', 'bool', 'checkbox', 'open_gallery', '开启画廊', '开启画廊功能,游客上传的图片将会出现在画廊中', '', ''); +(NULL, 'other', 'bool', 'checkbox', 'open_gallery', 'Open gallery', 'Open gallery tip', '', ''); -- v1.6.4 UPDATE `lsky_config` SET `value` = '1.6.4' WHERE `lsky_config`.`name` = 'system_version'; INSERT IGNORE INTO `lsky_config` (`id`, `key`, `type`, `input_type`, `name`, `title`, `tip`, `value`, `extend`) VALUES -(NULL, 'upload', 'text', 'number', 'same_ip_day_max_upload', '相同ip一天内最大上传限制', '为0则不限制', '0', ''); +(NULL, 'upload', 'text', 'number', 'same_ip_day_max_upload', 'Same ip day max upload', 'Same ip day max upload tip', '0', ''); diff --git a/config/app.php b/config/app.php index 61dc0dd6..8ddad88b 100644 --- a/config/app.php +++ b/config/app.php @@ -39,7 +39,7 @@ return [ // 默认时区 'default_timezone' => 'Asia/Shanghai', // 是否开启多语言 - 'lang_switch_on' => false, + 'lang_switch_on' => true, // 默认全局过滤方法 用逗号分隔多个 'default_filter' => '', // 默认语言 diff --git a/public/static/app/css/app.css b/public/static/app/css/app.css index 1a49c62e..6da0281d 100644 --- a/public/static/app/css/app.css +++ b/public/static/app/css/app.css @@ -69,6 +69,9 @@ body { .mdui-drawer-body-left footer { width: calc(100% - 240px); } +.mdui-tab a { + text-transform: capitalize; +} main { position: relative; top: 0; @@ -310,7 +313,7 @@ main ul.breadcrumb li.active a { } main .mdui-table td, main .mdui-table th { - padding: 0 10px; + padding: 7px 10px; } main .mask { position: absolute; diff --git a/public/static/app/css/app.css.map b/public/static/app/css/app.css.map index 7eb9cb04..b0d0927d 100644 --- a/public/static/app/css/app.css.map +++ b/public/static/app/css/app.css.map @@ -1 +1 @@ -{"version":3,"sources":["app.less"],"names":[],"mappings":"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","file":"app.css"} \ No newline at end of file +{"version":3,"sources":["app.less"],"names":[],"mappings":"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","file":"app.css"} \ No newline at end of file diff --git a/public/static/app/css/app.less b/public/static/app/css/app.less index 859a07ab..441d959f 100644 --- a/public/static/app/css/app.less +++ b/public/static/app/css/app.less @@ -43,6 +43,10 @@ body { } } +.mdui-tab a { + text-transform: capitalize; +} + main { position: relative; top: 0; diff --git a/public/static/app/js/app.js b/public/static/app/js/app.js index 53c88a81..8ea8552d 100644 --- a/public/static/app/js/app.js +++ b/public/static/app/js/app.js @@ -1,4 +1,12 @@ var app = { + sprintf: function () { + var args = arguments, string = args[0]; + for (var i = 1; i < args.length; i++) { + var item = arguments[i]; + string = string.replace('%s', item); + } + return string; + }, /** * ajax * @param url @@ -286,3 +294,15 @@ var app = { $('#set-theme i').html(theme === 'dark' ? '' : ''); } }; + +window.lang = function (name, vars) { + vars = vars || []; + var k = name.toLowerCase(); + for (var key in languages) { + if (k === key) { + return app.sprintf(languages[k], ...vars); + } + } + return name; +}; +
    别名:{:lang('Alias:')}
    链接:{:lang('Link:')} - +
    位置:{:lang('Position:')}
    大小:{:lang('Size:')}
    MD5:{:lang('MD5:')}
    类型:{:lang('Type:')}