diff --git a/readme.md b/readme.md index fc624ebf..91eb17ef 100644 --- a/readme.md +++ b/readme.md @@ -65,7 +65,7 @@ You can do this by using `http(s)://docker_name:port` in the config section. Ins ## Languages The app has been translated into several languages; however, the quality of the translations could do with work. If you would like to improve them, or help with other translations, they are stored in `/resources/lang/`. -To create a new language translation, make a new folder with the ISO 3166-1 alpha-2 code as the name, copy `app.php` from `/resources/lang/en/app.php` into your new folder and replace the English strings. +To create a new language translation, make a new folder with the ISO 3166-1 alpha-2 code as the name, copy `*.php` from `/resources/lang/en/*.php` into your new folder and replace the English strings. When you are finished, create a pull request. @@ -78,6 +78,7 @@ Currently added languages are - Swedish - Spanish - Turkish +- Chinese ## Web Server Configuration diff --git a/resources/lang/cn/app.php b/resources/lang/cn/app.php new file mode 100644 index 00000000..02381352 --- /dev/null +++ b/resources/lang/cn/app.php @@ -0,0 +1,120 @@ + '系统', + 'settings.appearance' => '外观', + 'settings.miscellaneous' => '杂项', + 'settings.support' => '支持', + 'settings.donate' => '捐献', + + 'settings.version' => '版本', + 'settings.background_image' => '背景图片', + 'settings.window_target' => '打开链接', + 'settings.window_target.current' => '在本标签页打开', + 'settings.window_target.one' => '在同一标签页打开', + 'settings.window_target.new' => '在新标签页打开', + 'settings.homepage_search' => '主页搜索', + 'settings.search_provider' => '默认搜索引擎', + 'settings.language' => '语言', + 'settings.reset' => '重置为默认设置', + 'settings.remove' => '删除', + 'settings.search' => '搜索', + 'settings.no_items' => '没有找到内容', + + + 'settings.label' => '标签', + 'settings.value' => '值', + 'settings.edit' => '编辑', + 'settings.view' => '查看', + + 'options.none' => '- 没有设置 -', + 'options.google' => 'Google', + 'options.ddg' => 'DuckDuckGo', + 'options.bing' => 'Bing', + 'options.qwant' => 'Qwant', + 'options.startpage' => '起始页', + 'options.yes' => '是', + 'options.no' => '否', + 'options.nzbhydra' => 'NZBHydra', + 'options.jackett' => 'Jackett', + + 'buttons.save' => '保存', + 'buttons.cancel' => '取消', + 'buttons.add' => '添加', + 'buttons.upload' => '上传图标', + 'buttons.downloadapps' => '更新应用列表', + + 'dash.pin_item' => '固定到仪表盘', + 'dash.no_apps' => '当前没有固定应用, :link1 或者 :link2', + 'dash.link1' => '在此添加应用', + 'dash.link2' => '添加应用到表盘', + 'dash.pinned_items' => '已固定项目', + + 'apps.app_list' => '应用列表', + 'apps.view_trash' => 'View trash', + 'apps.add_application' => '添加应用', + 'apps.application_name' => '应用名称', + 'apps.colour' => '颜色', + 'apps.icon' => '图标', + 'apps.pinned' => '已固定', + 'apps.title' => '标题', + 'apps.hex' => 'Hex colour', + 'apps.username' => '用户名', + 'apps.password' => '密码', + 'apps.config' => '配置', + 'apps.apikey' => 'API Key', + 'apps.enable' => 'Enable', + 'apps.tag_list' => '标签列表', + 'apps.add_tag' => '添加标签', + 'apps.tag_name' => '标签名称', + 'apps.tags' => '标签', + 'apps.override' => '当不同于主 url', + 'apps.preview' => '预览', + 'apps.apptype' => '应用类型', + + 'dashboard' => '主仪表盘', + + 'user.user_list' => '用户', + 'user.add_user' => '添加用户', + 'user.username' => '用户名', + 'user.avatar' => '头像', + 'user.email' => '电子邮件', + 'user.password_confirm' => '确认密码', + 'user.secure_front' => '允许公开访问主页 - 仅当设置有密码是时有效.', + 'user.autologin' => '允许从特定 URL 登陆. 任何用户都可以从此 URL 登陆.', + + 'url' => 'URL', + 'title' => '标题', + 'delete' => '删除', + 'optional' => '可选', + 'restore' => '恢复', + + 'alert.success.item_created' => '成功创建条目', + 'alert.success.item_updated' => '成功更新条目', + 'alert.success.item_deleted' => '成功删除条目', + 'alert.success.item_restored' => '成功恢复条目', + 'alert.success.updating' => '正在更新应用列表', + + 'alert.success.tag_created' => '成功创建标签', + 'alert.success.tag_updated' => '成功更新标签', + 'alert.success.tag_deleted' => '成功删除标签', + 'alert.success.tag_restored' => '成功恢复标签', + + 'alert.success.setting_updated' => '成功编辑配置', + 'alert.error.not_exist' => '此配置不存在', + + 'alert.success.user_created' => '成功创建用户', + 'alert.success.user_updated' => '成功更新用户', + 'alert.success.user_deleted' => '成功删除用户', + 'alert.success.user_restored' => '成功恢复标签', + + +]; diff --git a/resources/lang/cn/auth.php b/resources/lang/cn/auth.php new file mode 100644 index 00000000..364d6401 --- /dev/null +++ b/resources/lang/cn/auth.php @@ -0,0 +1,19 @@ + '认证信息与记录不符合.', + 'throttle' => '太多次登陆尝试. 请 :seconds 秒后再试.', + +]; diff --git a/resources/lang/cn/pagination.php b/resources/lang/cn/pagination.php new file mode 100644 index 00000000..4e8dea7c --- /dev/null +++ b/resources/lang/cn/pagination.php @@ -0,0 +1,19 @@ + '« 上一页', + 'next' => '下一页 »', + +]; diff --git a/resources/lang/cn/passwords.php b/resources/lang/cn/passwords.php new file mode 100644 index 00000000..53693ad4 --- /dev/null +++ b/resources/lang/cn/passwords.php @@ -0,0 +1,22 @@ + '密码至少 6 个字符,并与确认一致.', + 'reset' => '密码被重置!', + 'sent' => '密码重置链接已通过 email 发送!', + 'token' => '密码重置令牌无效.', + 'user' => "无法找到匹配此 email 的用户.", + +]; diff --git a/resources/lang/cn/validation.php b/resources/lang/cn/validation.php new file mode 100644 index 00000000..2b7607b8 --- /dev/null +++ b/resources/lang/cn/validation.php @@ -0,0 +1,121 @@ + '必须接受 :attribute.', + 'active_url' => ':attribute 不是有效 URL.', + 'after' => ':attribute 必须是晚于 :date 的时间.', + 'after_or_equal' => ':attribute 必须是晚于或等于 :date 的时间.', + 'alpha' => ':attribute 只接受英文字符.', + 'alpha_dash' => ':attribute 只接受英文字符,数字和短横线.', + 'alpha_num' => ':attribute 只接受英文字符,数字.', + 'array' => ':attribute 只接受数组.', + 'before' => ':attribute 必须是早于 :date 的时间.', + 'before_or_equal' => ':attribute 必须是早于或等于 :date 的时间.', + 'between' => [ + 'numeric' => ':attribute 必须介于 :min and :max.', + 'file' => ':attribute 必须介于 :min and :max KB.', + 'string' => ':attribute 必须介于 :min and :max 英文字符.', + 'array' => ':attribute 必须包含介于 :min and :max 元素.', + ], + 'boolean' => ':attribute 值必须是 true 或 false.', + 'confirmed' => ':attribute 确认信息不匹配.', + 'date' => ':attribute 不是有效日期.', + 'date_format' => ':attribute 不符合格式 :format.', + 'different' => ':attribute 与 :other 必须不同.', + 'digits' => ':attribute 必须 :digits 位.', + 'digits_between' => ':attribute 必须介于 :min and :max digits.', + 'dimensions' => ':attribute 含有无效图像维度.', + 'distinct' => ':attribute 值有重复.', + 'email' => ':attribute 必须是有效email.', + 'exists' => '选中的 :attribute 无效.', + 'file' => ':attribute 必须是文件.', + 'filled' => ':attribute 必须有值.', + 'image' => ':attribute 必须是图像.', + 'in' => '选中的 :attribute 无效.', + 'in_array' => ':other 中不包含 :attribute.', + 'integer' => ':attribute 必须是整数.', + 'ip' => ':attribute 必须是有效 IP 地址.', + 'ipv4' => ':attribute 必须是有效 IPv4 地址.', + 'ipv6' => ':attribute 必须是有效 IPv6 地址.', + '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' => 'unless :other is in :values.', + 'required_with' => '当 :values 存在时,:attribute 必需.', + 'required_with_all' => '当 :values 存在时,:attribute 必需.', + 'required_without' => '当 :values 不存在时,:attribute 必需.', + 'required_without_all' => '当 :values 都不存在时,:attribute 必需.', + 'same' => ':attribute 与 :other 必须匹配.', + 'size' => [ + 'numeric' => 'The :attribute 必须是 :size.', + 'file' => 'The :attribute 必须是 :size KB.', + 'string' => 'The :attribute 必须是 :size 字符.', + 'array' => 'The :attribute 必须包含 :size 元素.', + ], + 'string' => 'The :attribute 必须是字符串.', + 'timezone' => 'The :attribute 必须是有效时区.', + 'unique' => 'The :attribute 已经存在.', + 'uploaded' => 'The :attribute 上传失败.', + 'url' => 'The :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 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' => [], + +];