fix awful indentation in i18n files of option pages

This commit is contained in:
printempw 2017-01-17 22:16:03 +08:00
parent db15ff2314
commit a0494ce3d0
6 changed files with 246 additions and 225 deletions

View File

@ -89,13 +89,12 @@ class AdminController extends Controller
$signIn = Option::form('sign_in', OptionForm::AUTO_DETECT, function($form) $signIn = Option::form('sign_in', OptionForm::AUTO_DETECT, function($form)
{ {
$form->group('sign_score') $form->group('sign_score')
->text('sign_score_from')->addon(trans('options.sign_score.addon1')) ->text('sign_score_from')->addon(trans('options.sign_in.sign_score.addon1'))
->text('sign_score_to')->addon(trans('options.sign_score.addon2')); ->text('sign_score_to')->addon(trans('options.sign_in.sign_score.addon2'));
$form->group('sign_gap_time')->text('sign_gap_time')->addon(OptionForm::AUTO_DETECT); $form->group('sign_gap_time')->text('sign_gap_time')->addon();
$form->checkbox('sign_after_zero')->label(OptionForm::AUTO_DETECT) $form->checkbox('sign_after_zero')->label()->hint();
->hint(OptionForm::AUTO_DETECT);
})->handle(function() { })->handle(function() {
$sign_score = $_POST['sign_score_from'].','.$_POST['sign_score_to']; $sign_score = $_POST['sign_score_from'].','.$_POST['sign_score_to'];
Option::set('sign_score', $sign_score); Option::set('sign_score', $sign_score);
@ -116,27 +115,27 @@ class AdminController extends Controller
{ {
$form->text('site_name'); $form->text('site_name');
$form->text('site_description'); $form->text('site_description');
$form->text('site_url')->hint(OptionForm::AUTO_DETECT); $form->text('site_url')->hint();
$form->checkbox('user_can_register')->label(OptionForm::AUTO_DETECT); $form->checkbox('user_can_register')->label();
$form->text('regs_per_ip'); $form->text('regs_per_ip');
$form->group('max_upload_file_size') $form->group('max_upload_file_size')
->text('max_upload_file_size')->addon('KB') ->text('max_upload_file_size')->addon('KB')
->hint(trans('options.max_upload_file_size.hint', ['size' => ini_get('upload_max_filesize')])); ->hint(trans('options.general.max_upload_file_size.hint', ['size' => ini_get('upload_max_filesize')]));
$form->checkbox('allow_chinese_playername')->label(OptionForm::AUTO_DETECT); $form->checkbox('allow_chinese_playername')->label();
$form->select('api_type') $form->select('api_type')
->option('0', 'CustomSkinLoader API') ->option('0', 'CustomSkinLoader API')
->option('1', 'UniversalSkinAPI'); ->option('1', 'UniversalSkinAPI');
$form->checkbox('auto_del_invalid_texture')->label(OptionForm::AUTO_DETECT)->hint(OptionForm::AUTO_DETECT); $form->checkbox('auto_del_invalid_texture')->label()->hint();
$form->textarea('comment_script')->rows(6)->description(OptionForm::AUTO_DETECT); $form->textarea('comment_script')->rows(6)->description();
$form->checkbox('allow_sending_statistic')->label(OptionForm::AUTO_DETECT)->hint(OptionForm::AUTO_DETECT); $form->checkbox('allow_sending_statistics')->label()->hint();
})->handle(function() { })->handle(function() {
if (substr($_POST['site_url'], -1) == "/") if (substr($_POST['site_url'], -1) == "/")
@ -145,21 +144,21 @@ class AdminController extends Controller
$announ = Option::form('announ', OptionForm::AUTO_DETECT, function($form) $announ = Option::form('announ', OptionForm::AUTO_DETECT, function($form)
{ {
$form->textarea('announcement')->description(OptionForm::AUTO_DETECT); $form->textarea('announcement')->rows(10)->description();
})->renderWithOutTable()->handle(); })->renderWithOutTable()->handle();
$cache = Option::form('cache', OptionForm::AUTO_DETECT, function($form) $resources = Option::form('resources', OptionForm::AUTO_DETECT, function($form)
{ {
$form->checkbox('force_ssl')->label(OptionForm::AUTO_DETECT)->hint(OptionForm::AUTO_DETECT); $form->checkbox('force_ssl')->label()->hint();
$form->checkbox('auto_detect_asset_url')->label(OptionForm::AUTO_DETECT)->description(OptionForm::AUTO_DETECT); $form->checkbox('auto_detect_asset_url')->label()->description();
$form->checkbox('return_200_when_notfound')->label(OptionForm::AUTO_DETECT); $form->checkbox('return_200_when_notfound')->label()->description();
$form->text('cache_expire_time')->hint(OptionForm::AUTO_DETECT); $form->text('cache_expire_time')->hint(OptionForm::AUTO_DETECT);
})->type('warning')->hint(OptionForm::AUTO_DETECT)->handle(); })->type('warning')->hint(OptionForm::AUTO_DETECT)->handle();
return view('admin.options')->with('forms', compact('general', 'cache', 'announ')); return view('admin.options')->with('forms', compact('general', 'resources', 'announ'));
} }
/** /**

View File

@ -67,13 +67,15 @@ class OptionForm
throw new BadMethodCallException("Method [$method] does not exist on option form."); throw new BadMethodCallException("Method [$method] does not exist on option form.");
} }
// assign name for option item
if (!isset($params[1]) || Arr::get($params, 1) == OptionForm::AUTO_DETECT) { if (!isset($params[1]) || Arr::get($params, 1) == OptionForm::AUTO_DETECT) {
$params[1] = Arr::get(trans("options.$params[0]"), 'title', trans("options.$params[0]")); $params[1] = Arr::get(trans("options.$this->id.$params[0]"), 'title', trans("options.$this->id.$params[0]"));
} }
$class = new ReflectionClass('App\Services\OptionForm'.Str::title($method)); $class = new ReflectionClass('App\Services\OptionForm'.Str::title($method));
// use ReflectionClass to create a new OptionFormItem instance // use ReflectionClass to create a new OptionFormItem instance
$item = $class->newInstanceArgs($params); $item = $class->newInstanceArgs($params);
$item->setParentId($this->id);
$this->items[] = $item; $this->items[] = $item;
return $item; return $item;
@ -98,7 +100,7 @@ class OptionForm
* @param array $info * @param array $info
* @return $this * @return $this
*/ */
public function hint($hintContent) public function hint($hintContent = self::AUTO_DETECT)
{ {
if ($hintContent == self::AUTO_DETECT) { if ($hintContent == self::AUTO_DETECT) {
$hintContent = trans("options.$this->id.hint"); $hintContent = trans("options.$this->id.hint");
@ -384,12 +386,21 @@ class OptionFormItem
public $description; public $description;
protected $parentId;
public function __construct($id, $name = null) public function __construct($id, $name = null)
{ {
$this->id = $id; $this->id = $id;
$this->name = $name; $this->name = $name;
} }
public function setParentId($id)
{
$this->parentId = $id;
return $this;
}
public function value($value) public function value($value)
{ {
$this->value = $value; $this->value = $value;
@ -397,10 +408,10 @@ class OptionFormItem
return $this; return $this;
} }
public function hint($hintContent) public function hint($hintContent = OptionForm::AUTO_DETECT)
{ {
if ($hintContent == OptionForm::AUTO_DETECT) { if ($hintContent == OptionForm::AUTO_DETECT) {
$hintContent = trans("options.$this->id.hint"); $hintContent = trans("options.$this->parentId.$this->id.hint");
} }
$this->hint = view('vendor.option-form.hint')->with('hint', $hintContent)->render(); $this->hint = view('vendor.option-form.hint')->with('hint', $hintContent)->render();
@ -415,10 +426,10 @@ class OptionFormItem
return $this; return $this;
} }
public function description($description) public function description($description = OptionForm::AUTO_DETECT)
{ {
if ($description == OptionForm::AUTO_DETECT) { if ($description == OptionForm::AUTO_DETECT) {
$description = trans("options.$this->id.description"); $description = trans("options.$this->parentId.$this->id.description");
} }
$this->description = $description; $this->description = $description;
@ -454,10 +465,10 @@ class OptionFormCheckbox extends OptionFormItem
{ {
protected $label; protected $label;
public function label($label) public function label($label = OptionForm::AUTO_DETECT)
{ {
if ($label == OptionForm::AUTO_DETECT) { if ($label == OptionForm::AUTO_DETECT) {
$label = trans("options.$this->id.label"); $label = trans("options.$this->parentId.$this->id.label");
} }
$this->label = $label; $this->label = $label;
@ -531,10 +542,10 @@ class OptionFormGroup extends OptionFormItem
return $this; return $this;
} }
public function addon($value) public function addon($value = OptionForm::AUTO_DETECT)
{ {
if ($value == OptionForm::AUTO_DETECT) { if ($value == OptionForm::AUTO_DETECT) {
$value = trans("options.$this->id.addon"); $value = trans("options.$this->parentId.$this->id.addon");
} }
$this->items[] = ['type' => 'addon', 'id' => null, 'value' => $value]; $this->items[] = ['type' => 'addon', 'id' => null, 'value' => $value];

View File

@ -3,7 +3,7 @@
* @Author: printempw * @Author: printempw
* @Date: 2016-07-29 11:53:11 * @Date: 2016-07-29 11:53:11
* @Last Modified by: printempw * @Last Modified by: printempw
* @Last Modified time: 2017-01-14 22:05:22 * @Last Modified time: 2017-01-17 21:47:29
*/ */
return [ return [
@ -20,7 +20,7 @@ return [
'custom_js' => '', 'custom_js' => '',
'allow_chinese_playername' => 'true', 'allow_chinese_playername' => 'true',
'comment_script' => '', 'comment_script' => '',
'allow_sending_statistic' => 'true', 'allow_sending_statistics' => 'true',
'user_initial_score' => '1000', 'user_initial_score' => '1000',
'sign_gap_time' => '24', 'sign_gap_time' => '24',
'sign_score' => '10,100', 'sign_score' => '10,100',

View File

@ -2,120 +2,129 @@ option-saved: Option Saved.
homepage: homepage:
title: Homepage title: Homepage
home_pic_url:
title: Picture URL at Homepage home_pic_url:
hint: Path relative to homepage or full URL. title: Picture URL at Homepage
favicon_url: hint: Path relative to homepage or full URL.
title: Website Icon favicon_url:
hint: Path relative to resources/assets/ or full URL. title: Website Icon
description: The given image must have same width and height. hint: Path relative to resources/assets/ or full URL.
copyright_prefer: description: The given image must have same width and height.
title: Program Copyright copyright_prefer:
description: Any evil modification applied on the footer program copyright (including deleting, modifying author, changing link target) with out permission is <b>FORBIDDEN</b>. The author reserves the right to pursue relevant responsibilities. title: Program Copyright
copyright_text: description: Any evil modification applied on the footer program copyright (including deleting, modifying author, changing link target) with out permission is <b>FORBIDDEN</b>. The author reserves the right to pursue relevant responsibilities.
title: Custom Copyright Text copyright_text:
description: Placeholders are available in custom copyright text. e.g. <code>{site_name}</code> & <code>{site_url}</code> title: Custom Copyright Text
description: Placeholders are available in custom copyright text. e.g. <code>{site_name}</code> & <code>{site_url}</code>
customJsCss: customJsCss:
title: Custom CSS/JavaScript title: Custom CSS/JavaScript
message: | message: |
The contents will be attached to &lt;style&gt; and &lt;script&gt; tags.<br> The contents will be attached to &lt;style&gt; and &lt;script&gt; tags.<br>
- Here are some useful examples: <a href="https://github.com/printempw/blessing-skin-server/wiki/Examples-of-custom-CSS-JavaScript">Examples of Custom CSS JavaScript @GitHub WiKi</a> - Here are some useful examples: <a href="https://github.com/printempw/blessing-skin-server/wiki/Examples-of-custom-CSS-JavaScript">Examples of Custom CSS JavaScript @GitHub WiKi</a>
custom_css: CSS
custom_js: JavaScript custom_css: CSS
custom_js: JavaScript
rate: rate:
title: About Scores title: About Scores
score_per_storage:
title: Storage score_per_storage:
addon: scores = 1 KB title: Storage
private_score_per_storage: addon: scores = 1 KB
title: Private Storage private_score_per_storage:
addon: scores = 1 KB title: Private Storage
hint: Uploading private textures will cost more scores. addon: scores = 1 KB
score_per_closet_item: hint: Uploading private textures will cost more scores.
title: Favorites score_per_closet_item:
addon: score = 1 closet item title: Favorites
return_score: addon: score = 1 closet item
title: Score Return return_score:
label: Return scores back to user after deleting players/textures/closet items. title: Score Return
score_per_player: label: Return scores back to user after deleting players/textures/closet items.
title: Players score_per_player:
addon: scores = 1 player title: Players
user_initial_score: User Initial Score addon: scores = 1 player
user_initial_score: User Initial Score
sign_in: sign_in:
title: Signing In title: Signing In
sign_score:
title: Score Granted sign_score:
addon1: scores ~ title: Score Granted
addon2: scores addon1: scores ~
sign_gap_time: addon2: scores
title: Gap Time sign_gap_time:
addon: hours title: Gap Time
sign_after_zero: addon: hours
title: Time sign_after_zero:
label: Can sign in after 0 everyday title: Time
hint: The above option will be ignored if this is checked. label: Users can sign in after 0 everyday.
hint: The above option will be ignored if this is checked.
general: general:
title: General Options title: General Options
site_name: Site Name
site_description: Site Description site_name: Site Name
site_url: site_description: Site Description
title: Site URL site_url:
hint: Begin with http(s)://, nerver ends with slash title: Site URL
user_can_register: hint: Begin with http(s)://, nerver ends with slash
title: Open Registration user_can_register:
label: Everyone is allowed to register title: Open Registration
regs_per_ip: Max accounts of one IP label: Everyone is allowed to register.
max_upload_file_size: regs_per_ip: Max accounts of one IP
title: Max Upload Size max_upload_file_size:
hint: "Limit of PHP in php.ini: :size" title: Max Upload Size
allow_chinese_playername: hint: "Limit of PHP in php.ini: :size"
title: Player Name allow_chinese_playername:
label: Allow chinese player names title: Player Name
api_type: Prefered JSON API label: Allow chinese player names.
auto_del_invalid_texture: api_type: Prefered JSON API
title: Invalid Textures auto_del_invalid_texture:
label: Delete invalid textures from skinlib automatically. title: Invalid Textures
hint: Delete textures records whose file no longer exists automatically. label: Delete invalid textures automatically.
comment_script: hint: Delete textures records whose file no longer exists from skinlib.
title: Comment Script comment_script:
description: Placeholders are available in comment scripts. <code>{tid}</code> will be replaced with texture id, <code>{name}</code> will be replaced with texture name, <code>{url}</code> will be replaced with current URL. title: Comment Script
allow_sending_statistic: description: Placeholders are available in comment scripts. <code>{tid}</code> will be replaced with texture id, <code>{name}</code> will be replaced with texture name, <code>{url}</code> will be replaced with current URL.
title: Statistics allow_sending_statistics:
label: Send usage statistics anonymously. title: Statistics
hint: Information about privacy will nerver be sent. label: Send usage statistics anonymously.
hint: Information about privacy will nerver be sent.
announ: announ:
title: Site Announcement title: Announcement
announcement:
description: Styling with Markdown is supported.
cache: announcement:
description: Styling with Markdown is supported.
resources:
title: Resource Files title: Resource Files
hint: Please adjust these options when CDN cache is on hint: Please adjust these options when CDN cache is on
force_ssl:
title: Force SSL force_ssl:
label: Force to use HTTPS protocol to load resources title: Force SSL
hint: Check SSL available before turning on label: Use HTTPS protocol to load resources forcely.
auto_detect_asset_url: hint: Check SSL available before turning on
title: Assets URL auto_detect_asset_url:
label: Determine assets url automatically title: Assets URL
description: Load asset files according to current URL. The site url will be used if this is not enabled. Please unable this if requests don't go through CDN. label: Determine assets url automatically.
return_200_when_notfound: description: Load asset files according to current URL. The site url will be used if this is not enabled. Please unable this if requests don't go through CDN.
title: HTTP Response Code return_200_when_notfound:
label: Return 200 instead of 404 when requesting un-existent player title: HTTP Response Code
cache_expire_time: label: Return 200 instead of 404 when requesting un-existent player.
title: Cache Exipre Time description: If your CDN doesn't cache 404 pages, please turn this on. A flood of requests to un-existent players will greatly slow down the site.
hint: In seconds, 86400 = one day, 31536000 = one year cache_expire_time:
title: Cache Exipre Time
hint: In seconds, 86400 = one day, 31536000 = one year
update: update:
title: Check Update title: Check Update
check_update:
title: Check Update check_update:
label: Check update automatically and notify me. title: Check Update
update_source: label: Check update automatically and notify me.
title: Update Source update_source:
description: 'Available update source list can be found at: <a href="https://github.com/printempw/blessing-skin-server/wiki/%E6%9B%B4%E6%96%B0%E6%BA%90%E5%88%97%E8%A1%A8">@GitHub Wiki</a>' title: Update Source
description: 'Available update source list can be found at: <a href="https://github.com/printempw/blessing-skin-server/wiki/%E6%9B%B4%E6%96%B0%E6%BA%90%E5%88%97%E8%A1%A8">@GitHub Wiki</a>'

View File

@ -2,120 +2,129 @@ option-saved: 设置已保存。
homepage: homepage:
title: 首页配置 title: 首页配置
home_pic_url:
title: 首页图片地址 home_pic_url:
hint: 相对于首页的路径或者完整的 URL title: 首页图片地址
favicon_url: hint: 相对于首页的路径或者完整的 URL
title: 网站图标 favicon_url:
hint: 相对 resources/assets/ 的路径或者完整的 URL title: 网站图标
description: 所使用的图像必须具有相同的宽度和高度 hint: 相对 resources/assets/ 的路径或者完整的 URL
copyright_prefer: description: 所使用的图像必须具有相同的宽度和高度
title: 程序版权信息 copyright_prefer:
description: 对于任何恶意修改页面<b>右下角</b>的版权信息(包括不限于删除、修改作者信息、修改链接指向)的用户,作者保留对其追究责任的权力。 title: 程序版权信息
copyright_text: description: 对于任何恶意修改页面<b>右下角</b>的版权信息(包括不限于删除、修改作者信息、修改链接指向)的用户,作者保留对其追究责任的权力。
title: 自定义版权文字 copyright_text:
description: 自定义版权文字内可使用占位符,<code>{site_name}</code> 将会被自动替换为站点名称,<code>{site_url}</code> 会被替换为站点地址。 title: 自定义版权文字
description: 自定义版权文字内可使用占位符,<code>{site_name}</code> 将会被自动替换为站点名称,<code>{site_url}</code> 会被替换为站点地址。
customJsCss: customJsCss:
title: 自定义 CSS/JavaScript title: 自定义 CSS/JavaScript
message: | message: |
内容将会被追加至每个页面的 &lt;style&gt; 和 &lt;script&gt; 标签中。<br> 内容将会被追加至每个页面的 &lt;style&gt; 和 &lt;script&gt; 标签中。<br>
- 这里有一些有用的示例:<a href="https://github.com/printempw/blessing-skin-server/wiki/Examples-of-custom-CSS-JavaScript">「自定义 CSS JavaScript」功能的一些实例@GitHub WiKi</a> - 这里有一些有用的示例:<a href="https://github.com/printempw/blessing-skin-server/wiki/Examples-of-custom-CSS-JavaScript">「自定义 CSS JavaScript」功能的一些实例@GitHub WiKi</a>
custom_css: CSS
custom_js: JavaScript custom_css: CSS
custom_js: JavaScript
rate: rate:
title: 积分换算 title: 积分换算
score_per_storage:
title: 存储 score_per_storage:
addon: 积分 = 1 KB title: 存储
private_score_per_storage: addon: 积分 = 1 KB
title: 私密材质存储 private_score_per_storage:
addon: 积分 = 1 KB title: 私密材质存储
hint: 上传私密材质将消耗更多积分 addon: 积分 = 1 KB
score_per_closet_item: hint: 上传私密材质将消耗更多积分
title: 收藏消耗积分 score_per_closet_item:
addon: 积分 = 一个衣柜物品 title: 收藏消耗积分
return_score: addon: 积分 = 一个衣柜物品
title: 积分返还 return_score:
label: 用户删除角色/材质/收藏时返还积分 title: 积分返还
score_per_player: label: 用户删除角色/材质/收藏时返还积分
title: 角色 score_per_player:
addon: 积分 = 一个角色 title: 角色
user_initial_score: 新用户默认积分 addon: 积分 = 一个角色
user_initial_score: 新用户默认积分
sign_in: sign_in:
title: 签到配置 title: 签到配置
sign_score:
title: 签到获得积分 sign_score:
addon1: 积分 ~ title: 签到获得积分
addon2: 积分 addon1: 积分 ~
sign_gap_time: addon2: 积分
title: 签到间隔时间 sign_gap_time:
addon: 小时 title: 签到间隔时间
sign_after_zero: addon: 小时
title: 签到时间 sign_after_zero:
label: 每天零点后可签到 title: 签到时间
hint: 勾选后将无视上一条,每天零时后均可签到 label: 每天零点后可签到
hint: 勾选后将无视上一条,每天零时后均可签到
general: general:
title: 常规选项 title: 常规选项
site_name: 站点标题
site_description: 站点描述 site_name: 站点标题
site_url: site_description: 站点描述
title: 站点地址URL site_url:
hint: 以 http(s):// 开头,不要以 / 结尾 title: 站点地址URL
user_can_register: hint: 以 http(s):// 开头,不要以 / 结尾
title: 开放注册 user_can_register:
label: 任何人都可以注册 title: 开放注册
regs_per_ip: 每个 IP 限制注册数 label: 任何人都可以注册
max_upload_file_size: regs_per_ip: 每个 IP 限制注册数
title: 最大允许上传大小 max_upload_file_size:
hint: PHP 限制::size定义在 php.ini 中。 title: 最大允许上传大小
allow_chinese_playername: hint: PHP 限制::size定义在 php.ini 中。
title: 角色名 allow_chinese_playername:
label: 允许中文角色名 title: 角色名
api_type: 首选 JSON API label: 允许中文角色名
auto_del_invalid_texture: api_type: 首选 JSON API
title: 失效材质 auto_del_invalid_texture:
label: 自动删除失效材质 title: 失效材质
hint: 自动从皮肤库中删除文件不存在的材质记录 label: 自动删除失效材质
comment_script: hint: 自动从皮肤库中删除文件不存在的材质记录
title: 评论代码 comment_script:
description: 评论代码内可使用占位符,<code>{tid}</code> 将会被自动替换为材质的 id<code>{name}</code> 会被替换为材质名称,<code>{url}</code> 会被替换为当前页面地址。 title: 评论代码
allow_sending_statistic: description: 评论代码内可使用占位符,<code>{tid}</code> 将会被自动替换为材质的 id<code>{name}</code> 会被替换为材质名称,<code>{url}</code> 会被替换为当前页面地址。
title: 统计信息 allow_sending_statistics:
label: 发送程序使用情况统计信息以帮助开发 title: 统计信息
hint: 隐私信息不会被收集 label: 发送程序使用情况统计信息以帮助开发
hint: 隐私信息不会被收集
announ: announ:
title: 站点公告 title: 站点公告
announcement:
description: 可使用 Markdown 进行排版
cache: announcement:
description: 可使用 Markdown 进行排版
resources:
title: 资源文件配置 title: 资源文件配置
hint: 如果启用了 CDN 缓存请适当修改这些配置 hint: 如果启用了 CDN 缓存请适当修改这些配置
force_ssl:
title: 强制 SSL force_ssl:
label: 强制使用 HTTPS 协议加载资源 title: 强制 SSL
hint: 请确认 SSL 可用后再开启 label: 强制使用 HTTPS 协议加载资源
auto_detect_asset_url: hint: 请确认 SSL 可用后再开启
title: 资源地址 auto_detect_asset_url:
label: 自动判断资源文件地址 title: 资源地址
description: 根据当前 URL 自动加载资源文件,如果关闭则将根据「站点地址」填写的内容加载。如果出现 CDN 回源问题请关闭 label: 自动判断资源文件地址
return_200_when_notfound: description: 根据当前 URL 自动加载资源文件,如果关闭则将根据「站点地址」填写的内容加载。如果出现 CDN 回源问题请关闭
title: HTTP 响应码 return_200_when_notfound:
label: 请求不存在的角色时返回 200 而不是 404 title: HTTP 响应码
cache_expire_time: label: 请求不存在的角色时返回 200 而不是 404
title: 缓存失效时间 description: 如果你的 CDN 不缓存 404 页面,请打开此项。否则大量对不存在角色的 Profile 请求会加重站点负载。
hint: 秒数86400 = 一天31536000 = 一年 cache_expire_time:
title: 缓存失效时间
hint: 秒数86400 = 一天31536000 = 一年
update: update:
title: 更新选项 title: 更新选项
check_update:
title: 检查更新 check_update:
label: 自动检查更新并提示 title: 检查更新
update_source: label: 自动检查更新并提示
title: 更新源 update_source:
description: 可用的更新源列表可以在这里查看:<a href="https://github.com/printempw/blessing-skin-server/wiki/%E6%9B%B4%E6%96%B0%E6%BA%90%E5%88%97%E8%A1%A8">@GitHub Wiki</a> title: 更新源
description: 可用的更新源列表可以在这里查看:<a href="https://github.com/printempw/blessing-skin-server/wiki/%E6%9B%B4%E6%96%B0%E6%BA%90%E5%88%97%E8%A1%A8">@GitHub Wiki</a>

View File

@ -25,7 +25,7 @@
<div class="col-md-6"> <div class="col-md-6">
{!! $forms['announ']->render() !!} {!! $forms['announ']->render() !!}
{!! $forms['cache']->render() !!} {!! $forms['resources']->render() !!}
</div> </div>
</div> </div>
@ -34,10 +34,3 @@
</div><!-- /.content-wrapper --> </div><!-- /.content-wrapper -->
@endsection @endsection
@section('style')
<style type="text/css">
.box-body > textarea { height: 200px; }
.description { margin: 7px 0 0 0; color: #555; }
</style>
@endsection