Просмотр исходного кода

Improve simplified chinese translation (#8313)

* Improve simplified chinese translation

* Update translation progress

* Add yzx9 to contributors
Zexin Yuan 3 месяцев назад
Родитель
Сommit
e6cb6e65a4
10 измененных файлов с 149 добавлено и 148 удалено
  1. 1 0
      CREDITS.md
  2. 1 1
      README.fr.md
  3. 1 1
      README.md
  4. 10 10
      app/i18n/zh-CN/admin.php
  5. 11 11
      app/i18n/zh-CN/api.php
  6. 23 23
      app/i18n/zh-CN/conf.php
  7. 4 4
      app/i18n/zh-CN/feedback.php
  8. 26 26
      app/i18n/zh-CN/gen.php
  9. 35 35
      app/i18n/zh-CN/index.php
  10. 37 37
      app/i18n/zh-CN/sub.php

+ 1 - 0
CREDITS.md

@@ -286,6 +286,7 @@ People are sorted by name so please keep this order.
 * [XtremeOwnage](https://github.com/XtremeOwnage): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:XtremeOwnageDotCom), [Web](https://static.xtremeownage.com/)
 * [Yamakuni](https://github.com/Yamakuni): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Yamakuni), [Web](https://ofanch.me/)
 * [yzqzss|一座桥在水上](https://github.com/yzqzss): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:yzqzss), [Web](https://blog.othing.xyz/)
+* [Zexin Yuan](https://github.com/yzx9): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:yzx9)
 * [Zhaofeng Li](https://github.com/zhaofengli): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:zhaofengli), [Web](https://zhaofeng.li/)
 * [Zhiyuan Zheng](https://github.com/zhzy0077): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:zhzy0077)
 * [Zihao "Eric" Diao](https://github.com/EricDiao): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:EricDiao), [Web](https://ericdiao.com/)

+ 1 - 1
README.fr.md

@@ -251,7 +251,7 @@ Voir le [dépôt dédié à ces extensions](https://github.com/FreshRSS/Extensio
 | Slovenčina (sk) | ■■■■■■■■・・ 85% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fsk+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Türkçe (tr) | ■■■■■■■■■・ 92% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Українська (uk) | ■■■■■■■■■・ 95% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fuk+%2F%28TODO%7CDIRTY%29%24%2F) |
-| 简体中文 (zh-CN) | ■■■■■■■■・・ 87% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-CN+%2F%28TODO%7CDIRTY%29%24%2F) |
+| 简体中文 (zh-CN) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-CN+%2F%28TODO%7CDIRTY%29%24%2F) |
 | 正體中文 (zh-TW) | ■■■■■■■■・・ 85% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-TW+%2F%28TODO%7CDIRTY%29%24%2F) |
 
 </translations>

+ 1 - 1
README.md

@@ -147,7 +147,7 @@ See the [repository dedicated to those extensions](https://github.com/FreshRSS/E
 | Slovenčina (sk) | ■■■■■■■■・・ 85% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fsk+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Türkçe (tr) | ■■■■■■■■■・ 92% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Українська (uk) | ■■■■■■■■■・ 95% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fuk+%2F%28TODO%7CDIRTY%29%24%2F) |
-| 简体中文 (zh-CN) | ■■■■■■■■・・ 87% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-CN+%2F%28TODO%7CDIRTY%29%24%2F) |
+| 简体中文 (zh-CN) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-CN+%2F%28TODO%7CDIRTY%29%24%2F) |
 | 正體中文 (zh-TW) | ■■■■■■■■・・ 85% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-TW+%2F%28TODO%7CDIRTY%29%24%2F) |
 
 </translations>

+ 10 - 10
app/i18n/zh-CN/admin.php

@@ -14,9 +14,9 @@ return array(
 	'auth' => array(
 		'allow_anonymous' => '允许匿名阅读默认用户(%s)的文章',
 		'allow_anonymous_refresh' => '允许匿名刷新文章',
-		'api_enabled' => '允许 <abbr>API</abbr> 访问 <small>(用于手机应用 and sharing user queries)</small>',	// DIRTY
+		'api_enabled' => '允许 <abbr>API</abbr> 访问 <small>(用于手机应用和分享用户查询)</small>',
 		'form' => '网页表单(传统方式, 需要 JavaScript)',
-		'http' => 'HTTP (advanced: managed by Web server, OIDC, SSO…)',	// TODO
+		'http' => 'HTTP(高级:由 Web 服务器、OIDC、SSO 管理…)',
 		'none' => '无(危险)',
 		'title' => '认证',
 		'token' => '主验证 token',
@@ -115,9 +115,9 @@ return array(
 		'description' => '描述',
 		'disabled' => '已禁用',
 		'empty_list' => '没有已安装的扩展',
-		'empty_list_help' => 'Check the logs to determine the reason behind the empty extension list.',	// TODO
+		'empty_list_help' => '检查日志以确定扩展列表为空的原因。',
 		'enabled' => '已启用',
-		'is_compatible' => 'Is compatible',	// TODO
+		'is_compatible' => '兼容',	// DIRTY
 		'latest' => '已安装',
 		'name' => '名称',
 		'no_configure_view' => '此扩展无法配置。',
@@ -134,8 +134,8 @@ return array(
 		'_' => '统计数据',
 		'all_feeds' => '所有订阅源',
 		'category' => '分类',
-		'date_published' => 'Publication date',	// TODO
-		'date_received' => 'Received date',	// TODO
+		'date_published' => '发布日期',
+		'date_received' => '接收日期',
 		'entry_count' => '文章数',
 		'entry_per_category' => '各分类文章数',
 		'entry_per_day' => '每日文章数(近三十日)',
@@ -148,10 +148,10 @@ return array(
 		'idle' => '长期无更新订阅源',
 		'main' => '主要统计数据',
 		'main_stream' => '首页',
-		'nb_unreads' => 'Number of unread articles',	// TODO
+		'nb_unreads' => '未读文章数',
 		'no_idle' => '订阅源近期皆有更新!',
 		'number_entries' => '%d 篇文章',
-		'overview' => 'Overview',	// TODO
+		'overview' => '概览',
 		'percent_of_total' => '%',
 		'repartition' => '文章分布: %s',	// DIRTY
 		'status_favorites' => '收藏',
@@ -160,7 +160,7 @@ return array(
 		'status_unread' => '未读',
 		'title' => '统计',
 		'top_feed' => '前十订阅源',
-		'unread_dates' => 'Dates with most unread articles',	// TODO
+		'unread_dates' => '未读文章最多的日期',
 	),
 	'system' => array(
 		'_' => '系统配置',
@@ -219,7 +219,7 @@ return array(
 			'latest' => '稳定版本 (“latest”)',
 		),
 		'title' => '更新系统',
-		'viaGit' => '开始通过 git and GitHub.com 更新',
+		'viaGit' => '开始通过 git  GitHub.com 更新',
 	),
 	'user' => array(
 		'admin' => '管理员',

+ 11 - 11
app/i18n/zh-CN/api.php

@@ -12,22 +12,22 @@
 
 return array(
 	'information' => array(
-		'address' => 'Your API address:',	// TODO
+		'address' => '你的 API 地址:',
 		'output' => array(
-			'encoding-support' => '⚠️ WARN: no <code>%2F</code> support, some clients might not work!',	// TODO
-			'invalid-configuration' => '⚠️ WARN: Probable invalid base URL in ./data/config.php',	// TODO
-			'pass' => '✔️ PASS',	// TODO
-			'unknown-error' => '❌ ',	// TODO
+			'encoding-support' => '⚠️ 警告:<code>%2F</code> 支持缺失,部分客户端可能无法正常工作!',
+			'invalid-configuration' => '⚠️ 警告:./data/config.php 中可能存在无效的 base URL',	// DIRTY
+			'pass' => '✔️ 通过',
+			'unknown-error' => '❌ ',	// IGNORE
 		),
 		'test' => array(
-			'fever' => 'Fever API configuration test:',	// TODO
-			'greader' => 'Google Reader API configuration test:',	// TODO
+			'fever' => 'Fever API 配置测试:',
+			'greader' => 'Google Reader API 配置测试',
 		),
 		'title' => array(
-			'_' => 'FreshRSS API endpoints',	// TODO
-			'extension' => 'API for extensions',	// TODO
-			'fever' => 'Fever compatible API',	// TODO
-			'greader' => 'Google Reader compatible API',	// TODO
+			'_' => 'FreshRSS API 端点',	// DIRTY
+			'extension' => '供拓展使用的 API',
+			'fever' => 'Fever 兼容的 API',
+			'greader' => 'Google Reader 兼容的 API',
 		),
 	),
 );

+ 23 - 23
app/i18n/zh-CN/conf.php

@@ -107,16 +107,16 @@ return array(
 	),
 	'notification_timeout' => array(
 		'bad' => array(
-			'label' => 'Show warning banner',	// TODO
-			'seconds' => 'seconds (at least 1)',	// TODO
+			'label' => '显示警告横幅',
+			'seconds' => '秒(至少 1)',
 		),
 		'good' => array(
-			'label' => 'Show acknowledgement banner',	// TODO
-			'seconds' => 'seconds (0 means not shown)',	// TODO
+			'label' => '显示确认横幅',
+			'seconds' => '秒(0 表示不显示)',
 		),
 	),
 	'privacy' => array(
-		'_' => 'Privacy',	// TODO
+		'_' => '隐私',
 		'retrieve_extension_list' => '获取扩展列表',
 	),
 	'profile' => array(
@@ -125,14 +125,14 @@ return array(
 			'_' => 'API 管理',
 			'api_not_set' => 'API密码未设置',
 			'api_set' => 'API密码已设置',
-			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
-			'disabled' => 'The API access is disabled.',	// TODO
-			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
+			'check_link' => '通过以下地址检查 API 状态:<kbd><a href="../api/" target="_blank">%s</a></kbd>',
+			'disabled' => 'API 访问已禁用。',
+			'documentation_link' => '查看 <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">文档和已知应用列表</a>',
+			'help' => '查看 <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>文档</a>',
 		),
 		'change_password' => '修改密码',
 		'confirm_new_password' => '确认新密码',
-		'current_password' => 'Current password<br /><small>(for the Web-form login method)</small>',	// TODO
+		'current_password' => '当前密码<br /><small>(用于网页表单登录方式)</small>',
 		'delete' => array(
 			'_' => '账户删除',
 			'warn' => '你的帐户以及所有相关数据将被删除。',
@@ -146,13 +146,13 @@ return array(
 	'query' => array(
 		'_' => '自定义查询',
 		'deprecated' => '此查询不再有效。相关的分类或订阅源已被删除。',
-		'description' => 'Description',	// TODO
+		'description' => '描述',
 		'filter' => array(
 			'_' => '生效的过滤器:',
 			'categories' => '按分类显示',
 			'feeds' => '按订阅源显示',
 			'order' => '按日期排序',
-			'publish_labels_instead_of_tags' => 'Replace <i>feed tags</i> by <i>user labels</i> in the shared RSS',	// TODO
+			'publish_labels_instead_of_tags' => '在共享的 RSS 中用 <i>用户标签</i> 替换 <i>订阅源标签</i>',	// DIRTY
 			'search' => '表达式',
 			'shareOpml' => '启用相应类别和 feed 的 OPML 分享',
 			'shareRss' => '启用 HTML 和 RSS 分享',
@@ -160,8 +160,8 @@ return array(
 			'tags' => '按标签显示',
 			'type' => '类型',
 		),
-		'get_A' => 'Show all feeds, also those shown in their category',	// TODO
-		'get_Z' => 'Show all feeds, also archived ones',	// TODO
+		'get_A' => '显示所有订阅源,包括仅其分类中显示的订阅源',
+		'get_Z' => '显示所有订阅源,包括已归档的订阅源',
 		'get_all' => '显示所有文章',
 		'get_all_labels' => '显示所有打了标签的文章',
 		'get_category' => '显示分类“%s”',
@@ -170,12 +170,12 @@ return array(
 		'get_important' => '显示来自“重要的订阅”的文章',
 		'get_label' => '显示打了“%s”标签的文章',
 		'help' => '参见文档: <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">queries and resharing by HTML / RSS / OPML</a>.',
-		'image_url' => 'Image URL',	// TODO
+		'image_url' => '图片 URL',
 		'name' => '名称',
 		'no_filter' => '无过滤器',
 		'no_queries' => array(
-			'_' => 'No user queries are saved yet.',	// TODO
-			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation</a>',	// TODO
+			'_' => '尚未保存任何用户查询。',
+			'help' => '查看 <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">文档</a>',
 		),
 		'number' => '查询 n°%d',
 		'order_asc' => '由旧至新显示文章',
@@ -187,7 +187,7 @@ return array(
 				'_' => '已禁用',
 				'title' => '分享',
 			),
-			'greader' => 'Shareable link to the GReader JSON',	// TODO
+			'greader' => 'GReader JSON 的分享链接',	// DIRTY
 			'help' => '获取此自定义查询的分享链接',
 			'html' => 'HTML 页面的分享链接',
 			'opml' => '订阅源 OPML 的分享链接',
@@ -215,7 +215,7 @@ return array(
 		'_' => '阅读',
 		'after_onread' => '“全部标记为已读”后',
 		'always_show_favorites' => '默认显示收藏夹中所有的文章',
-		'apply_to_individual_feed' => 'Applies to feeds individually',	// TODO
+		'apply_to_individual_feed' => '单独应用于各订阅源',
 		'article' => array(
 			'authors_date' => array(
 				'_' => '作者和日期',
@@ -275,8 +275,8 @@ return array(
 			'upon_gone' => '在被原订阅源被移除后',
 			'upon_reception' => '在接收文章后',
 			'when' => '何时将文章标记为已读',
-			'when_same_title_in_category' => 'if an identical title already exists in the top <i>n</i> newest articles of the category',	// TODO
-			'when_same_title_in_feed' => '已存在 n 条相同标题文章 (of the feed)',	// DIRTY
+			'when_same_title_in_category' => '如果分类中已经存在相同标题的最新 <i>n</i> 篇文章',
+			'when_same_title_in_feed' => '如果订阅源中已经存在相同标题的最新 <i>n</i> 篇文章',
 		),
 		'show' => array(
 			'_' => '文章显示',
@@ -297,7 +297,7 @@ return array(
 			'older_first' => '由旧至新',
 		),
 		'star' => array(
-			'when' => 'Mark an article as favourite…',	// TODO
+			'when' => '将文章标记为收藏时…',
 		),
 		'sticky_post' => '打开文章时将其置顶',
 		'title' => '阅读',
@@ -359,7 +359,7 @@ return array(
 		'skip_next_article' => '跳转到下一篇文章而不打开',
 		'skip_previous_article' => '跳转到上一篇文章而不打开',
 		'title' => '快捷键',
-		'toggle_aside' => 'Toggle sidebar',	// TODO
+		'toggle_aside' => '切换侧边栏',
 		'toggle_media' => '播放/暂停媒体',
 		'user_filter' => '显示自定义查询',
 		'user_filter_help' => '如果有多个自定义过滤器,则会按照它们的序号依次访问。',

+ 4 - 4
app/i18n/zh-CN/feedback.php

@@ -50,7 +50,7 @@ return array(
 			'ko' => '%s 启用失败。<a href="%s">检查 FreshRSS 日志</a> 查看详情。',
 			'ok' => '%s 现已启用',
 		),
-		'invalid_view_mode' => 'Invalid view mode “%s”! Fall back to “Normal view”.',	// TODO
+		'invalid_view_mode' => '无效的视图 "%s"!回退到"普通视图"。',
 		'no_access' => '你无权访问 %s',
 		'not_enabled' => '%s 未启用',
 		'not_found' => '%s 不存在',
@@ -66,7 +66,7 @@ return array(
 	),
 	'profile' => array(
 		'error' => '你的帐户无法修改',
-		'passwords_dont_match' => 'Passwords don’t match',	// TODO
+		'passwords_dont_match' => '密码不匹配',
 		'updated' => '你的帐户已修改',
 	),
 	'sub' => array(
@@ -97,8 +97,8 @@ return array(
 			'deleted' => '已删除订阅源',
 			'error' => '订阅源更新失败',
 			'favicon' => array(
-				'too_large' => 'Uploaded icon is too large. The maximum file size is <em>%s</em>.',	// TODO
-				'unsupported_format' => 'Unsupported image file format!',	// TODO
+				'too_large' => '上传的图标过大。最大文件大小为 <em>%s</em>。',
+				'unsupported_format' => '不支持的图片文件格式!',
 			),
 			'internal_problem' => '订阅源添加失败,<a href="%s">检查 FreshRSS 日志</a> 查看详情。你可以在 URL 后添加 <code>#force_feed</code> 尝试强制添加。',
 			'invalid_url' => 'URL <em>%s</em> 无效',

+ 26 - 26
app/i18n/zh-CN/gen.php

@@ -33,12 +33,12 @@ return array(
 		'manage' => '管理',
 		'mark_read' => '标记已读',
 		'menu' => array(
-			'open' => 'Open menu',	// TODO
+			'open' => '打开菜单',
 		),
 		'nav_buttons' => array(
 			'next' => '下一篇文章',
 			'prev' => '上一篇文章',
-			'up' => 'Go up',	// TODO
+			'up' => '向上',
 		),
 		'open_url' => '打开链接',
 		'promote' => '设为管理员',
@@ -154,7 +154,7 @@ return array(
 		'labels_empty' => '无标签',
 		'new_article' => '发现新文章,点击刷新页面。',
 		'should_be_activated' => '必须启用 JavaScript',
-		'unsafe_csp_header' => 'The CSP header in use is unsafe and FreshRSS may be vulnerable to XSS attacks. <a target="_blank" href="https://freshrss.github.io/FreshRSS/en/admins/10_ServerConfig.html#security">See documentation</a>',	// TODO
+		'unsafe_csp_header' => '当前使用的 CSP 头部不安全,FreshRSS 可能容易受到 XSS 攻击。<a target="_blank" href="https://freshrss.github.io/FreshRSS/en/admins/10_ServerConfig.html#security">查看文档</a>',
 	),
 	'lang' => array(
 		'cs' => 'Čeština',	// IGNORE
@@ -223,31 +223,31 @@ return array(
 		'translated' => 'Progress',	// IGNORE
 	),
 	'search' => array(
-		'advanced_search_help' => 'This form helps construct search queries, but manual queries are even more powerful.',	// TODO
+		'advanced_search_help' => '此表单帮助构建搜索查询,但手写查询更加强大。',
 		'authors' => '作者',
 		'categories' => '类别',
-		'content' => 'Content',	// TODO
-		'date_from' => 'From',	// TODO
-		'date_past' => 'In the past',	// TODO
-		'date_published' => 'Publication Date',	// TODO
-		'date_range' => 'Date Range',	// TODO
-		'date_received' => 'Received Date',	// TODO
-		'date_to' => 'To',	// TODO
-		'date_user' => 'User Modification Date',	// TODO
-		'feeds' => 'Feeds',	// TODO
-		'free_text' => 'Free Text',	// TODO
-		'free_text_help' => 'Search both in title and content',	// TODO
-		'full_documentation' => 'View <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">full search documentation</a>',	// TODO
-		'labels' => 'My Labels',	// TODO
-		'multiple_help' => 'Select one or more (hold <kbd>Ctrl</kbd> or <kbd>Cmd</kbd>)',	// TODO
-		'sources' => 'Sources',	// TODO
-		'tags' => 'Article Tags',	// TODO
-		'text' => 'Text Search',	// TODO
-		'text_help' => 'Multiple lines are combined by a logical <i>or</i>. Also supports <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#regex" target="_blank">regular expressions</a>.',	// TODO
-		'text_placeholder' => 'Keyword',	// TODO
-		'title' => 'Title',	// TODO
-		'url' => 'URL',	// TODO
-		'user_queries' => 'User Queries',	// TODO
+		'content' => '内容',
+		'date_from' => '从',
+		'date_past' => '过去',	// DIRTY
+		'date_published' => '发布日期',
+		'date_range' => '日期范围',
+		'date_received' => '接收日期',
+		'date_to' => '到',
+		'date_user' => '用户修改日期',
+		'feeds' => '订阅源',
+		'free_text' => '自由文本',	// DIRTY
+		'free_text_help' => '在标题和内容中搜索',
+		'full_documentation' => '查看 <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">完整搜索文档</a>',
+		'labels' => '我的标签',
+		'multiple_help' => '选择一个或多个(按住 <kbd>Ctrl</kbd> 或 <kbd>Cmd</kbd>)',
+		'sources' => '来源',
+		'tags' => '文章标签',
+		'text' => '文本搜索',
+		'text_help' => '多行通过逻辑 <i>或</i> 组合。也支持 <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#regex" target="_blank">正则表达式</a>。',
+		'text_placeholder' => '关键词',
+		'title' => '标题',
+		'url' => 'URL',	// IGNORE
+		'user_queries' => '用户查询',
 	),
 	'share' => array(
 		'Known' => '基于 Known 的站点',

+ 35 - 35
app/i18n/zh-CN/index.php

@@ -16,13 +16,13 @@ return array(
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',	// IGNORE
 		'bug_reports' => array(
 			'environment_information' => array(
-				'_' => 'System information',	// TODO
-				'browser' => 'Browser',	// TODO
-				'database' => 'Database',	// TODO
-				'server_software' => 'Server software',	// TODO
-				'version_curl' => 'cURL version',	// TODO
-				'version_frss' => 'FreshRSS version',	// TODO
-				'version_php' => 'PHP version',	// TODO
+				'_' => '系统信息',
+				'browser' => '浏览器',
+				'database' => '数据库',
+				'server_software' => '服务器软件',
+				'version_curl' => 'cURL 版本',
+				'version_frss' => 'FreshRSS 版本',
+				'version_php' => 'PHP 版本',
 			),
 		),
 		'bugs_reports' => '报告错误',
@@ -37,24 +37,24 @@ return array(
 	'feed' => array(
 		'empty' => '没有文章可以显示。',
 		'published' => array(
-			'_' => 'Published',	// TODO
-			'future' => 'Published in the future',	// TODO
-			'today' => 'Published today',	// TODO
-			'yesterday' => 'Published yesterday',	// TODO
+			'_' => '已发布',
+			'future' => '未来发布',
+			'today' => '今日发布',
+			'yesterday' => '昨日发布',
 		),
 		'received' => array(
-			'_' => 'Received',	// TODO
-			'today' => 'Received today',	// TODO
-			'yesterday' => 'Received yesterday',	// TODO
+			'_' => '已接收',
+			'today' => '今日接收',
+			'yesterday' => '昨日接收',
 		),
 		'rss_of' => '%s 的订阅源',
 		'title' => '首页',
 		'title_fav' => '收藏',
 		'title_global' => '全局视图',
 		'userModified' => array(
-			'_' => 'Modified by user',	// TODO
-			'today' => 'Modified by user today',	// TODO
-			'yesterday' => 'Modified by user yesterday',	// TODO
+			'_' => '用户已修改',
+			'today' => '用户今日修改',
+			'yesterday' => '用户昨日修改',
 		),
 	),
 	'log' => array(
@@ -87,28 +87,28 @@ return array(
 		'rss_view' => '订阅源',
 		'search_short' => '搜索',
 		'sort' => array(
-			'_' => 'Sorting criteria',	// TODO
+			'_' => '排序标准',
 			'c' => array(
-				'name_asc' => 'Category, feed titles A→Z',	// TODO
-				'name_desc' => 'Category, feed titles Z→A',	// TODO
+				'name_asc' => '分类、订阅源标题 A→Z',
+				'name_desc' => '分类、订阅源标题 Z→A',
 			),
-			'date_asc' => 'Publication date 1→9',	// TODO
-			'date_desc' => 'Publication date 9→1',	// TODO
+			'date_asc' => '发布日期 1→9',
+			'date_desc' => '发布日期 9→1',
 			'f' => array(
-				'name_asc' => 'Feed title A→Z',	// TODO
-				'name_desc' => 'Feed title Z→A',	// TODO
+				'name_asc' => '订阅源标题 A→Z',
+				'name_desc' => '订阅源标题 Z→A',
 			),
-			'id_asc' => 'Freshly received last',	// TODO
-			'id_desc' => 'Freshly received first',	// TODO
-			'length_asc' => 'Content length 1→9',	// TODO
-			'length_desc' => 'Content length 9→1',	// TODO
-			'link_asc' => 'Link A→Z',	// TODO
-			'link_desc' => 'Link Z→A',	// TODO
-			'rand' => 'Random order',	// TODO
-			'title_asc' => 'Title A→Z',	// TODO
-			'title_desc' => 'Title Z→A',	// TODO
-			'user_modified_asc' => 'User modified 1→9',	// TODO
-			'user_modified_desc' => 'User modified 9→1',	// TODO
+			'id_asc' => '最新接收在后',
+			'id_desc' => '最新接收在前',
+			'length_asc' => '内容长度 1→9',
+			'length_desc' => '内容长度 9→1',
+			'link_asc' => '链接 A→Z',
+			'link_desc' => '链接 Z→A',
+			'rand' => '随机顺序',
+			'title_asc' => '标题 A→Z',
+			'title_desc' => '标题 Z→A',
+			'user_modified_asc' => '用户修改 1→9',
+			'user_modified_desc' => '用户修改 9→1',
 		),
 		'starred' => '显示收藏',
 		'stats' => '统计',

+ 37 - 37
app/i18n/zh-CN/sub.php

@@ -29,9 +29,9 @@ return array(
 			'help' => '使用 URL 上的 <a href="http://opml.org/" target="_blank">OPML 文件</a> 中的订阅源填充这一分类',
 		),
 		'empty' => '空分类',
-		'expand' => 'Expand category',	// TODO
+		'expand' => '展开分类',
 		'information' => '信息',
-		'open' => 'Open category',	// TODO
+		'open' => '打开分类',
 		'opml_url' => 'OPML URL',	// IGNORE
 		'position' => '显示位置',
 		'position_help' => '控制分类排列顺序',
@@ -50,7 +50,7 @@ return array(
 			'password' => 'HTTP 密码',
 			'username' => 'HTTP 用户名',
 		),
-		'change_favicon' => 'Change…',	// TODO
+		'change_favicon' => '修改…',
 		'clear_cache' => '总是清除缓存',
 		'content_action' => array(
 			'_' => '获取原文后的操作',
@@ -58,7 +58,7 @@ return array(
 			'prepend' => '添加在现有内容前部',
 			'replace' => '替换现有内容',
 		),
-		'content_retrieval' => 'Content retrieval',	// TODO
+		'content_retrieval' => '内容获取',
 		'css_cookie' => '获取原文时的 Cookies',
 		'css_cookie_help' => '例:<kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
 		'css_help' => '用于获取全文(注意,这将耗费更多时间!)',
@@ -72,28 +72,28 @@ return array(
 		'error' => '此源遇到一些问题。请在确认是否能正常访问后重试。',	// DIRTY
 		'export-as-opml' => array(
 			'download' => '下载',
-			'help' => 'XML 文件 (data subset. <a href="https://freshrss.github.io/FreshRSS/en/developers/OPML.html" target="_blank">See documentation</a>)',	// DIRTY
+			'help' => 'XML 文件(数据子集。<a href="https://freshrss.github.io/FreshRSS/en/developers/OPML.html" target="_blank">查看文档</a>)',
 			'label' => '导出为 OPML',
 		),
-		'ext_favicon' => 'Set automatically',	// TODO
-		'favicon_changed_by_ext' => 'The icon has been set by the <b>%s</b> extension.',	// TODO
+		'ext_favicon' => '自动设置',
+		'favicon_changed_by_ext' => '图标已由 <b>%s</b> 扩展设置。',
 		'filteractions' => array(
 			'_' => '过滤动作',
 			'help' => '每行写一条过滤规则,过滤规则可见 <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">文档</a>。',
-			'view_filter' => 'Preview filters on existing articles (new window)',	// TODO
+			'view_filter' => '在现有文章上预览过滤器(新窗口)',
 		),
-		'http_headers' => 'HTTP Headers',	// TODO
-		'http_headers_help' => 'Headers are separated by a newline, and the name and value of a header are separated by a colon (e.g: <kbd><code>Accept: application/atom+xml<br />Authorization: Bearer some-token</code></kbd>).',	// TODO
-		'icon' => 'Icon',	// TODO
+		'http_headers' => 'HTTP 头部',
+		'http_headers_help' => '头部之间用换行符分隔,头部名称和值用冒号分隔(例如:<kbd><code>Accept: application/atom+xml<br />Authorization: Bearer some-token</code></kbd>)。',
+		'icon' => '图标',
 		'information' => '信息',
 		'keep_min' => '至少保存的文章数',
 		'kind' => array(
 			'_' => '订阅源类型',
 			'html_json' => array(
-				'_' => 'HTML + XPath + JSON dot notation (JSON in HTML)',	// TODO
+				'_' => 'HTML + XPath + JSON 点表示法(HTML 中的 JSON)',	// DIRTY
 				'xpath' => array(
-					'_' => 'XPath for JSON in HTML',	// TODO
-					'help' => 'Example: <code>normalize-space(//script[@type="application/json"])</code> (single JSON)<br />or: <code>//script[@type="application/ld+json"]</code> (one JSON object per article)',	// TODO
+					'_' => '用于 HTML 中 JSON 的 XPath',	// DIRTY
+					'help' => '示例:<code>normalize-space(//script[@type="application/json"])</code>(单个 JSON)<br />或:<code>//script[@type="application/ld+json"]</code>(每篇文章一个 JSON 对象)',
 				),
 			),
 			'html_xpath' => array(
@@ -152,7 +152,7 @@ return array(
 				'help' => 'JSON 点表达式(JSON 路径)在对象之间使用点,在数组中使用中括号 (例如 <code>data.items[0].title</code>)',
 				'item' => array(
 					'_' => '寻找新的 <strong>文章</strong><br /><small>(最重要的参数)</small>',
-					'help' => '包含文章数组的 JSON 路径, 例如 <code>$</code> or <code>newsItems</code>',	// DIRTY
+					'help' => '包含文章数组的 JSON 路径,例如 <code>$</code> 或 <code>newsItems</code>',	// DIRTY
 				),
 				'item_author' => '文章作者',
 				'item_categories' => '文章标签',
@@ -202,23 +202,23 @@ return array(
 		'moved_category_deleted' => '删除分类时,其中的订阅源会自动归类到 <em>%s</em>',
 		'mute' => array(
 			'_' => '暂停',
-			'state_is_muted' => 'This feed is muted',	// TODO
+			'state_is_muted' => '此订阅源已静音',	// DIRTY
 		),
 		'no_selected' => '未选择订阅源',
 		'number_entries' => '%d 篇文章',
-		'open_feed' => 'Open feed %s',	// TODO
-		'path_entries_conditions' => 'Conditions for content retrieval',	// TODO
+		'open_feed' => '打开订阅源 %s',
+		'path_entries_conditions' => '内容检索条件',
 		'priority' => array(
 			'_' => '可见性',
 			'category' => '在分类中显示',
-			'feed' => 'Show in its feed',	// TODO
+			'feed' => '在其订阅源中显示',	// DIRTY
 			'hidden' => '不显示',
 			'important' => '在“重要的订阅”中显示',
 			'main_stream' => '在首页中显示',
 		),
 		'proxy' => '获取订阅源时的代理',
 		'proxy_help' => '选择协议(例:SOCKS5)和代理地址(例:<kbd>127.0.0.1:1080</kbd> 或者 <kbd>username:password@127.0.0.1:1080</kbd>)',
-		'reset_favicon' => 'Reset to default',	// TODO
+		'reset_favicon' => '重置为默认',
 		'selector_preview' => array(
 			'show_raw' => '显示源码',
 			'show_rendered' => '显示内容',
@@ -238,20 +238,20 @@ return array(
 		'title_add' => '添加订阅源',
 		'ttl' => '最小自动更新间隔',
 		'unicityCriteria' => array(
-			'_' => 'Article unicity criteria',	// TODO
-			'forced' => '<span title="Block the unicity criteria, even when the feed has duplicate articles">forced</span>',	// TODO
-			'help' => 'Relevant for invalid feeds.<br />⚠️ Changing the policy will create duplicates.',	// TODO
-			'id' => 'Standard ID (default)',	// TODO
-			'link' => 'Link',	// TODO
-			'sha1:content' => 'Content',	// TODO
-			'sha1:content_published' => 'Content + Date',	// TODO
-			'sha1:link_published' => 'Link + Date',	// TODO
-			'sha1:link_published_title' => 'Link + Date + Title',	// TODO
-			'sha1:link_published_title_content' => 'Link + Date + Title + Content',	// TODO
-			'sha1:published' => 'Date',	// TODO
-			'sha1:title' => 'Title',	// TODO
-			'sha1:title_published' => 'Title + Date',	// TODO
-			'sha1:title_published_content' => 'Title + Date + Content',	// TODO
+			'_' => '文章唯一性标准',
+			'forced' => '<span title="阻止唯一性标准,即使订阅源有重复文章">强制</span>',
+			'help' => '适用于无效的订阅源。<br />⚠️ 更改策略将创建重复项。',
+			'id' => '标准 ID(默认)',
+			'link' => '链接',
+			'sha1:content' => '内容',
+			'sha1:content_published' => '内容 + 日期',
+			'sha1:link_published' => '链接 + 日期',
+			'sha1:link_published_title' => '链接 + 日期 + 标题',
+			'sha1:link_published_title_content' => '链接 + 日期 + 标题 + 内容',
+			'sha1:published' => '日期',
+			'sha1:title' => '标题',
+			'sha1:title_published' => '标题 + 日期',
+			'sha1:title_published_content' => '标题 + 日期 + 内容',
 		),
 		'url' => '源地址',
 		'useragent' => '设置用于获取此源的 User Agent',
@@ -263,7 +263,7 @@ return array(
 	'import_export' => array(
 		'export' => array(
 			'_' => '导出',
-			'sqlite' => 'Download user database as SQLite',	// TODO
+			'sqlite' => '导出用户数据库为 SQLite 文件',
 		),
 		'export_labelled' => '导出有标签的文章',
 		'export_opml' => '导出订阅源列表(OPML)',
@@ -283,7 +283,7 @@ return array(
 			'idle' => '长期无更新订阅源',
 			'main' => '主要统计',
 			'repartition' => '文章分布',
-			'unread_dates' => 'Unread dates',	// TODO
+			'unread_dates' => '未读日期',
 		),
 		'subscription_management' => '订阅管理',
 		'subscription_tools' => '订阅工具',
@@ -301,7 +301,7 @@ return array(
 		'add_dynamic_opml' => '添加订阅源动态列表',
 		'add_feed' => '添加订阅源',
 		'add_label' => '打标签',
-		'add_opml_category' => 'OPML category name',	// TODO
+		'add_opml_category' => 'OPML 分类名称',
 		'delete_label' => '删除标签',
 		'feed_management' => '订阅源管理',
 		'subscription_tools' => '订阅工具',