use YAML for localization

This commit is contained in:
printempw 2016-09-11 11:10:02 +08:00
parent 8571384c4a
commit cb04820196
14 changed files with 329 additions and 396 deletions

View File

@ -5,7 +5,8 @@
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"gregwar/captcha": "^1.1"
"gregwar/captcha": "^1.1",
"devitek/yaml-translation": "^2.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",

140
composer.lock generated
View File

@ -4,8 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "341e92f67792be07a7de2c90cd70efa9",
"content-hash": "4388065752ad5d2aec40b5fd446f16da",
"hash": "e958cf75dad17ac662e486ae476ef335",
"content-hash": "7942c0324050826b3a5cfdcc39ffcd87",
"packages": [
{
"name": "classpreloader/classpreloader",
@ -61,6 +61,44 @@
],
"time": "2015-11-09 22:51:51"
},
{
"name": "devitek/yaml-translation",
"version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/Devitek/laravel-yaml-translation.git",
"reference": "53a191aca2c224f667801bf78a7a93a0d025b469"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/Devitek/laravel-yaml-translation/53a191aca2c224f667801bf78a7a93a0d025b469.zip",
"reference": "53a191aca2c224f667801bf78a7a93a0d025b469",
"shasum": ""
},
"require": {
"illuminate/translation": "5.x",
"php": ">=5.4.0",
"symfony/yaml": "3.*"
},
"type": "library",
"autoload": {
"psr-4": {
"Devitek\\": "src/Devitek"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Thomas Sieffert",
"email": "thomas.sieffert@devitek.fr"
}
],
"description": "Add YAML file support to Laravel TranslationServiceProvider",
"time": "2016-08-20 17:12:37"
},
{
"name": "dnoegel/php-xdg-base-dir",
"version": "0.1",
@ -1777,6 +1815,55 @@
],
"time": "2016-07-26 08:03:56"
},
{
"name": "symfony/yaml",
"version": "v3.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "1819adf2066880c7967df7180f4f662b6f0567ac"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/yaml/1819adf2066880c7967df7180f4f662b6f0567ac.zip",
"reference": "1819adf2066880c7967df7180f4f662b6f0567ac",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.1-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Yaml\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2016-07-17 14:02:08"
},
{
"name": "vlucas/phpdotenv",
"version": "v2.3.0",
@ -3161,55 +3248,6 @@
"homepage": "https://symfony.com",
"time": "2016-07-30 07:22:48"
},
{
"name": "symfony/yaml",
"version": "v3.1.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "1819adf2066880c7967df7180f4f662b6f0567ac"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/yaml/1819adf2066880c7967df7180f4f662b6f0567ac.zip",
"reference": "1819adf2066880c7967df7180f4f662b6f0567ac",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.1-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Yaml\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2016-07-17 14:02:08"
},
{
"name": "webmozart/assert",
"version": "1.1.0",

View File

@ -153,7 +153,7 @@ return [
Illuminate\Redis\RedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Devitek\Core\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,

View File

@ -1,19 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];

View File

@ -0,0 +1,11 @@
login:
login: Log In
message: Login in to manage your skin & players
identification: Email or Player Name
password: Password
captcha: Enter the CAPTCHA
change-captcha: Click to change another image.
keep: Remember me
forgot-link: Forgot your password?
register-link: Register a new account

View File

@ -1,19 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/
'previous' => '&laquo; Previous',
'next' => 'Next &raquo;',
];

View File

@ -1,22 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Password Reset Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/
'password' => 'Passwords must be at least six characters and match the confirmation.',
'reset' => 'Your password has been reset!',
'sent' => 'We have e-mailed your password reset link!',
'token' => 'This password reset token is invalid.',
'user' => "We can't find a user with that e-mail address.",
];

View File

@ -1,123 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
'accepted' => 'The :attribute must be accepted.',
'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.',
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
'array' => 'The :attribute must be an array.',
'before' => 'The :attribute must be a date before :date.',
'between' => [
'numeric' => 'The :attribute must be between :min and :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.',
'array' => 'The :attribute must have between :min and :max items.',
],
'boolean' => 'The :attribute field must be true or false.',
'confirmed' => 'The :attribute confirmation does not match.',
'date' => 'The :attribute is not a valid date.',
'date_format' => 'The :attribute does not match the format :format.',
'different' => 'The :attribute and :other must be different.',
'digits' => 'The :attribute must be :digits digits.',
'digits_between' => 'The :attribute must be between :min and :max digits.',
'distinct' => 'The :attribute field has a duplicate value.',
'email' => 'The :attribute must be a valid email address.',
'exists' => 'The selected :attribute is invalid.',
'filled' => 'The :attribute field is required.',
'image' => 'The :attribute must be an image.',
'in' => 'The selected :attribute is invalid.',
'in_array' => 'The :attribute field does not exist in :other.',
'integer' => 'The :attribute must be an integer.',
'ip' => 'The :attribute must be a valid IP address.',
'json' => 'The :attribute must be a valid JSON string.',
'max' => [
'numeric' => 'The :attribute may not be greater than :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.',
'array' => 'The :attribute may not have more than :max items.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'min' => [
'numeric' => 'The :attribute must be at least :min.',
'file' => 'The :attribute must be at least :min kilobytes.',
'string' => 'The :attribute must be at least :min characters.',
'array' => 'The :attribute must have at least :min items.',
],
'not_in' => 'The selected :attribute is invalid.',
'numeric' => 'The :attribute must be a number.',
'present' => 'The :attribute field must be present.',
'regex' => 'The :attribute format is invalid.',
'required' => 'The :attribute field is required.',
'required_if' => 'The :attribute field is required when :other is :value.',
'required_unless' => 'The :attribute field is required unless :other is in :values.',
'required_with' => 'The :attribute field is required when :values is present.',
'required_with_all' => 'The :attribute field is required when :values is present.',
'required_without' => 'The :attribute field is required when :values is not present.',
'required_without_all' => 'The :attribute field is required when none of :values are present.',
'same' => 'The :attribute and :other must match.',
'size' => [
'numeric' => 'The :attribute must be :size.',
'file' => 'The :attribute must be :size kilobytes.',
'string' => 'The :attribute must be :size characters.',
'array' => 'The :attribute must contain :size items.',
],
'string' => 'The :attribute must be a string.',
'timezone' => 'The :attribute must be a valid zone.',
'unique' => 'The :attribute has already been taken.',
'url' => 'The :attribute format is invalid.',
'username' => ':attribute format is invalid.',
'nickname' => ':attribute format is invalid.',
'playername' => 'The :attribute may only contain letters, numbers and dashes.',
'pname_chinese' => 'The :attribute may only contain letters, numbers, dashes and chinese characters.',
'no_special_chars' => 'The :attribute must not contain special characters.',
'preference' => 'The :attribute must be default or slim.',
'model' => 'The :attribute must be steve, alex or cape.',
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => [
'player_name' => 'Player Name'
],
];

View File

@ -0,0 +1,92 @@
# Blessing Skin
username: ':attribute format is invalid.'
nickname: ':attribute format is invalid.'
playername: 'The :attribute may only contain letters, numbers and dashes.'
pname_chinese: 'The :attribute may only contain letters, numbers, dashes and chinese characters.'
no_special_chars: 'The :attribute must not contain special characters.'
preference: 'The :attribute must be default or slim.'
model: 'The :attribute must be steve, alex or cape.'
accepted: 'The :attribute must be accepted.'
active_url: 'The :attribute is not a valid URL.'
after: 'The :attribute must be a date after :date.'
alpha: 'The :attribute may only contain letters.'
alpha_dash: 'The :attribute may only contain letters, numbers, and dashes.'
alpha_num: 'The :attribute may only contain letters and numbers.'
array: 'The :attribute must be an array.'
before: 'The :attribute must be a date before :date.'
between:
numeric: 'The :attribute must be between :min and :max.'
file: 'The :attribute must be between :min and :max kilobytes.'
string: 'The :attribute must be between :min and :max characters.'
array: 'The :attribute must have between :min and :max items.'
boolean: 'The :attribute field must be true or false.'
confirmed: 'The :attribute confirmation does not match.'
date: 'The :attribute is not a valid date.'
date_format: 'The :attribute does not match the format :format.'
different: 'The :attribute and :other must be different.'
digits: 'The :attribute must be :digits digits.'
digits_between: 'The :attribute must be between :min and :max digits.'
distinct: 'The :attribute field has a duplicate value.'
email: 'The :attribute must be a valid email address.'
exists: 'The selected :attribute is invalid.'
filled: 'The :attribute field is required.'
image: 'The :attribute must be an image.'
in: 'The selected :attribute is invalid.'
in_array: 'The :attribute field does not exist in :other.'
integer: 'The :attribute must be an integer.'
ip: 'The :attribute must be a valid IP address.'
json: 'The :attribute must be a valid JSON string.'
max:
numeric: 'The :attribute may not be greater than :max.'
file: 'The :attribute may not be greater than :max kilobytes.'
string: 'The :attribute may not be greater than :max characters.'
array: 'The :attribute may not have more than :max items.'
mimes: 'The :attribute must be a file of type: :values.'
min:
numeric: 'The :attribute must be at least :min.'
file: 'The :attribute must be at least :min kilobytes.'
string: 'The :attribute must be at least :min characters.'
array: 'The :attribute must have at least :min items.'
not_in: 'The selected :attribute is invalid.'
numeric: 'The :attribute must be a number.'
present: 'The :attribute field must be present.'
regex: 'The :attribute format is invalid.'
required: 'The :attribute field is required.'
required_if: 'The :attribute field is required when :other is :value.'
required_unless: 'The :attribute field is required unless :other is in :values.'
required_with: 'The :attribute field is required when :values is present.'
required_with_all: 'The :attribute field is required when :values is present.'
required_without: 'The :attribute field is required when :values is not present.'
required_without_all: 'The :attribute field is required when none of :values are present.'
same: 'The :attribute and :other must match.'
size:
numeric: 'The :attribute must be :size.'
file: 'The :attribute must be :size kilobytes.'
string: 'The :attribute must be :size characters.'
array: 'The :attribute must contain :size items.'
string: 'The :attribute must be a string.'
timezone: 'The :attribute must be a valid zone.'
unique: 'The :attribute has already been taken.'
url: 'The :attribute format is invalid.'
# --------------------------------------------------------------------------
# Custom Validation Language Lines
# --------------------------------------------------------------------------
#
# Here you may specify custom validation messages for attributes using the
# convention "attribute.rule" to name the lines. This makes it quick to
# specify a specific custom language line for a given attribute rule.
custom:
attribute-name: { rule-name: custom-message }
# --------------------------------------------------------------------------
# Custom Validation Attributes
# --------------------------------------------------------------------------
#
# The following language lines are used to swap attribute place-holders
# with something more reader friendly such as E-Mail Address instead
# of "email". This simply helps us make messages a little cleaner.
#
attributes:
player_name: 'Player Name'

View File

@ -0,0 +1,11 @@
login:
login: 登录
message: 登录以管理您的角色及皮肤
identification: 邮箱或角色名
password: 密码
captcha: 输入验证码
change-captcha: 点击以更换图片
keep: 保持登录状态
forgot-link: 忘记密码了?
register-link: 注册新账号

View File

@ -1,150 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| such as the size rules. Feel free to tweak each of these messages.
|
*/
'accepted' => ':attribute 必须接受。',
'active_url' => ':attribute 不是一个有效的网址。',
'after' => ':attribute 必须是一个在 :date 之后的日期。',
'alpha' => ':attribute 只能由字母组成。',
'alpha_dash' => ':attribute 只能由字母、数字和斜杠组成。',
'alpha_num' => ':attribute 只能由字母和数字组成。',
'array' => ':attribute 必须是一个数组。',
'before' => ':attribute 必须是一个在 :date 之前的日期。',
'between' => [
'numeric' => ':attribute 必须介于 :min - :max 之间。',
'file' => ':attribute 必须介于 :min - :max kb 之间。',
'string' => ':attribute 必须介于 :min - :max 个字符之间。',
'array' => ':attribute 必须只有 :min - :max 个单元。',
],
'boolean' => ':attribute 必须为布尔值。',
'confirmed' => ':attribute 两次输入不一致。',
'date' => ':attribute 不是一个有效的日期。',
'date_format' => ':attribute 的格式必须为 :format。',
'different' => ':attribute 和 :other 必须不同。',
'digits' => ':attribute 必须是 :digits 位的数字。',
'digits_between' => ':attribute 必须是介于 :min 和 :max 位的数字。',
'dimensions' => ':attribute 图片尺寸不正确。',
'distinct' => ':attribute 已经存在。',
'email' => ':attribute 不是一个合法的邮箱。',
'exists' => ':attribute 不存在。',
'file' => ':attribute 必须是文件。',
'filled' => ':attribute 不能为空。',
'image' => ':attribute 必须是图片。',
'in' => '已选的属性 :attribute 非法。',
'in_array' => ':attribute 没有在 :other 中。',
'integer' => ':attribute 必须是整数。',
'ip' => ':attribute 必须是有效的 IP 地址。',
'json' => ':attribute 必须是正确的 JSON 格式。',
'max' => [
'numeric' => ':attribute 不能大于 :max。',
'file' => ':attribute 不能大于 :max kb。',
'string' => ':attribute 不能大于 :max 个字符。',
'array' => ':attribute 最多只有 :max 个单元。',
],
'mimes' => ':attribute 必须是一个 :values 类型的文件。',
'mimetypes' => ':attribute 必须是一个 :values 类型的文件。',
'min' => [
'numeric' => ':attribute 必须大于等于 :min。',
'file' => ':attribute 大小不能小于 :min kb。',
'string' => ':attribute 至少为 :min 个字符。',
'array' => ':attribute 至少有 :min 个单元。',
],
'not_in' => '已选的属性 :attribute 非法。',
'numeric' => ':attribute 必须是一个数字。',
'present' => ':attribute 必须存在。',
'regex' => ':attribute 格式不正确。',
'required' => ':attribute 不能为空。',
'required_if' => '当 :other 为 :value 时 :attribute 不能为空。',
'required_unless' => '当 :other 不为 :value 时 :attribute 不能为空。',
'required_with' => '当 :values 存在时 :attribute 不能为空。',
'required_with_all' => '当 :values 存在时 :attribute 不能为空。',
'required_without' => '当 :values 不存在时 :attribute 不能为空。',
'required_without_all' => '当 :values 都不存在时 :attribute 不能为空。',
'same' => ':attribute 和 :other 必须相同。',
'size' => [
'numeric' => ':attribute 大小必须为 :size。',
'file' => ':attribute 大小必须为 :size kb。',
'string' => ':attribute 必须是 :size 个字符。',
'array' => ':attribute 必须为 :size 个单元。',
],
'string' => ':attribute 必须是一个字符串。',
'timezone' => ':attribute 必须是一个合法的时区值。',
'unique' => ':attribute 已经存在。',
'url' => ':attribute 格式不正确。',
'username' => ':attribute 格式不正确。',
'nickname' => ':attribute 格式不正确。',
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention 'attribute.rule' to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of 'email'. This simply helps us make messages a little cleaner.
|
*/
'attributes' => [
'name' => '名称',
'username' => '用户名',
'nickname' => '昵称',
'email' => '邮箱',
'first_name' => '名',
'last_name' => '姓',
'password' => '密码',
'password_confirmation' => '确认密码',
'city' => '城市',
'country' => '国家',
'address' => '地址',
'phone' => '电话',
'mobile' => '手机',
'age' => '年龄',
'sex' => '性别',
'gender' => '性别',
'day' => '天',
'month' => '月',
'year' => '年',
'hour' => '时',
'minute' => '分',
'second' => '秒',
'title' => '标题',
'content' => '内容',
'description' => '描述',
'excerpt' => '摘要',
'date' => '日期',
'time' => '时间',
'available' => '可用的',
'size' => '大小',
],
];

View File

@ -0,0 +1,110 @@
# Blessing Skin
username: ':attribute 格式错误。'
nickname: ':attribute 格式错误。'
playername: ':attribute 只能包含数字、字母以及下划线。'
pname_chinese: ':attribute 只能包含数字、字母、汉字以及下划线。'
no_special_chars: ':attribute 不能包含特殊字母。'
preference: ':attribute 的值必须为 default 或 slim。'
model: ':attribute 的值必须为 steve、alex 或 cape。'
accepted: ':attribute 必须接受。'
active_url: ':attribute 不是一个有效的网址。'
after: ':attribute 必须是一个在 :date 之后的日期。'
alpha: ':attribute 只能由字母组成。'
alpha_dash: ':attribute 只能由字母、数字和斜杠组成。'
alpha_num: ':attribute 只能由字母和数字组成。'
array: ':attribute 必须是一个数组。'
before: ':attribute 必须是一个在 :date 之前的日期。'
between:
numeric: ':attribute 必须介于 :min - :max 之间。'
file: ':attribute 必须介于 :min - :max kb 之间。'
string: ':attribute 必须介于 :min - :max 个字符之间。'
array: ':attribute 必须只有 :min - :max 个单元。'
boolean: ':attribute 必须为布尔值。'
confirmed: ':attribute 两次输入不一致。'
date: ':attribute 不是一个有效的日期。'
date_format: ':attribute 的格式必须为 :format。'
different: ':attribute 和 :other 必须不同。'
digits: ':attribute 必须是 :digits 位的数字。'
digits_between: ':attribute 必须是介于 :min 和 :max 位的数字。'
dimensions: ':attribute 图片尺寸不正确。'
distinct: ':attribute 已经存在。'
email: ':attribute 不是一个合法的邮箱。'
exists: ':attribute 不存在。'
file: ':attribute 必须是文件。'
filled: ':attribute 不能为空。'
image: ':attribute 必须是图片。'
in: '已选的属性 :attribute 非法。'
in_array: ':attribute 没有在 :other 中。'
integer: ':attribute 必须是整数。'
ip: ':attribute 必须是有效的 IP 地址。'
json: ':attribute 必须是正确的 JSON 格式。'
max:
numeric: ':attribute 不能大于 :max。'
file: ':attribute 不能大于 :max kb。'
string: ':attribute 不能大于 :max 个字符。'
array: ':attribute 最多只有 :max 个单元。'
mimes: ':attribute 必须是一个 :values 类型的文件。'
mimetypes: ':attribute 必须是一个 :values 类型的文件。'
min:
numeric: ':attribute 必须大于等于 :min。'
file: ':attribute 大小不能小于 :min kb。'
string: ':attribute 至少为 :min 个字符。'
array: ':attribute 至少有 :min 个单元。'
not_in: '已选的属性 :attribute 非法。'
numeric: ':attribute 必须是一个数字。'
present: ':attribute 必须存在。'
regex: ':attribute 格式不正确。'
required: ':attribute 不能为空。'
required_if: '当 :other 为 :value 时 :attribute 不能为空。'
required_unless: '当 :other 不为 :value 时 :attribute 不能为空。'
required_with: '当 :values 存在时 :attribute 不能为空。'
required_with_all: '当 :values 存在时 :attribute 不能为空。'
required_without: '当 :values 不存在时 :attribute 不能为空。'
required_without_all: '当 :values 都不存在时 :attribute 不能为空。'
same: ':attribute 和 :other 必须相同。'
size:
numeric: ':attribute 大小必须为 :size。'
file: ':attribute 大小必须为 :size kb。'
string: ':attribute 必须是 :size 个字符。'
array: ':attribute 必须为 :size 个单元。'
string: ':attribute 必须是一个字符串。'
timezone: ':attribute 必须是一个合法的时区值。'
unique: ':attribute 已经存在。'
url: ':attribute 格式不正确。'
custom:
attribute-name: { rule-name: custom-message }
attributes:
name: 名称
username: 用户名
nickname: 昵称
player_name: 角色名
email: 邮箱
first_name:
last_name:
password: 密码
password_confirmation: 确认密码
city: 城市
country: 国家
address: 地址
phone: 电话
mobile: 手机
age: 年龄
sex: 性别
gender: 性别
day:
month:
year:
hour:
minute:
second:
title: 标题
content: 内容
description: 描述
excerpt: 摘要
date: 日期
time: 时间
available: 可用的
size: 大小

View File

@ -1,6 +1,6 @@
@extends('auth.master')
@section('title', '登录')
@section('title', trans('auth.login.login'))
@section('content')
@ -10,27 +10,27 @@
</div>
<!-- /.login-logo -->
<div class="login-box-body">
<p class="login-box-msg">登录以管理您的角色及皮肤</p>
<p class="login-box-msg">{{ trans('auth.login.message') }}</p>
<form id="login-form">
<div class="form-group has-feedback">
<input id="email_or_username" type="email" class="form-control" placeholder="邮箱或角色名">
<input id="email_or_username" type="email" class="form-control" placeholder="{{ trans('auth.login.identification') }}">
<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input id="password"type="password" class="form-control" placeholder="密码">
<input id="password"type="password" class="form-control" placeholder="{{ trans('auth.login.password') }}">
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="row" id="captcha-form" style="{{ (session('login_fails') > 3) ? '' : 'display: none;' }}">
<div class="col-xs-8">
<div class="form-group has-feedback">
<input id="captcha" type="text" class="form-control" placeholder="输入验证码">
<input id="captcha" type="text" class="form-control" placeholder="{{ trans('auth.login.captcha') }}">
</div>
</div>
<!-- /.col -->
<div class="col-xs-4">
<img class="pull-right captcha" src="{{ url('auth/captcha') }}" alt="CAPTCHA" title="点击以更换图片" data-placement="top" data-toggle="tooltip">
<img class="pull-right captcha" src="{{ url('auth/captcha') }}" alt="CAPTCHA" title="{{ trans('auth.login.change-captcha') }}" data-placement="top" data-toggle="tooltip">
</div>
<!-- /.col -->
</div>
@ -41,20 +41,20 @@
<div class="col-xs-8">
<div class="checkbox icheck">
<label for="keep">
<input id="keep" type="checkbox"> 保持登录状态
<input id="keep" type="checkbox"> {{ trans('auth.login.keep') }}
</label>
</div>
</div>
<!-- /.col -->
<div class="col-xs-4">
<button id="login-button" class="btn btn-primary btn-block btn-flat">登录</button>
<button id="login-button" class="btn btn-primary btn-block btn-flat">{{ trans('auth.login.login') }}</button>
</div>
<!-- /.col -->
</div>
</form>
<a href="{{ url('auth/forgot') }}">忘记密码了?</a><br>
<a href="{{ url('auth/register') }}" class="text-center">注册新账号</a>
<a href="{{ url('auth/forgot') }}">{{ trans('auth.login.forgot-link') }}</a><br>
<a href="{{ url('auth/register') }}" class="text-center">{{ trans('auth.login.register-link') }}</a>
</div>
<!-- /.login-box-body -->

3
storage/yaml-translation/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*
!public/
!.gitignore