diff --git a/CREDITS.md b/CREDITS.md
index 0a8e58fae..36142988a 100644
--- a/CREDITS.md
+++ b/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/)
diff --git a/README.fr.md b/README.fr.md
index 7b69ea9ca..615ac782d 100644
--- a/README.fr.md
+++ b/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) |
diff --git a/README.md b/README.md
index 02c363b33..3aefda8a3 100644
--- a/README.md
+++ b/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) |
diff --git a/app/i18n/zh-CN/admin.php b/app/i18n/zh-CN/admin.php
index 4d32b81d9..4390b6b11 100644
--- a/app/i18n/zh-CN/admin.php
+++ b/app/i18n/zh-CN/admin.php
@@ -14,9 +14,9 @@ return array(
'auth' => array(
'allow_anonymous' => '允许匿名阅读默认用户(%s)的文章',
'allow_anonymous_refresh' => '允许匿名刷新文章',
- 'api_enabled' => '允许 API 访问 (用于手机应用 and sharing user queries)', // DIRTY
+ 'api_enabled' => '允许 API 访问 (用于手机应用和分享用户查询)',
'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' => '管理员',
diff --git a/app/i18n/zh-CN/api.php b/app/i18n/zh-CN/api.php
index 0021dfa98..5e63dbc5f 100644
--- a/app/i18n/zh-CN/api.php
+++ b/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 %2F 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' => '⚠️ 警告:%2F 支持缺失,部分客户端可能无法正常工作!',
+ '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',
),
),
);
diff --git a/app/i18n/zh-CN/conf.php b/app/i18n/zh-CN/conf.php
index 452688b00..a1e332db3 100644
--- a/app/i18n/zh-CN/conf.php
+++ b/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: %s', // TODO
- 'disabled' => 'The API access is disabled.', // TODO
- 'documentation_link' => 'See the documentation and list of known apps', // TODO
- 'help' => 'See documentation', // TODO
+ 'check_link' => '通过以下地址检查 API 状态:%s',
+ 'disabled' => 'API 访问已禁用。',
+ 'documentation_link' => '查看 文档和已知应用列表',
+ 'help' => '查看 文档',
),
'change_password' => '修改密码',
'confirm_new_password' => '确认新密码',
- 'current_password' => 'Current password
(for the Web-form login method)', // TODO
+ 'current_password' => '当前密码
(用于网页表单登录方式)',
'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 feed tags by user labels in the shared RSS', // TODO
+ 'publish_labels_instead_of_tags' => '在共享的 RSS 中用 用户标签 替换 订阅源标签', // 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' => '参见文档: queries and resharing by HTML / RSS / OPML.',
- 'image_url' => 'Image URL', // TODO
+ 'image_url' => '图片 URL',
'name' => '名称',
'no_filter' => '无过滤器',
'no_queries' => array(
- '_' => 'No user queries are saved yet.', // TODO
- 'help' => 'See documentation', // TODO
+ '_' => '尚未保存任何用户查询。',
+ 'help' => '查看 文档',
),
'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 n newest articles of the category', // TODO
- 'when_same_title_in_feed' => '已存在 n 条相同标题文章 (of the feed)', // DIRTY
+ 'when_same_title_in_category' => '如果分类中已经存在相同标题的最新 n 篇文章',
+ 'when_same_title_in_feed' => '如果订阅源中已经存在相同标题的最新 n 篇文章',
),
'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' => '如果有多个自定义过滤器,则会按照它们的序号依次访问。',
diff --git a/app/i18n/zh-CN/feedback.php b/app/i18n/zh-CN/feedback.php
index 3aa767f95..62f1a4694 100644
--- a/app/i18n/zh-CN/feedback.php
+++ b/app/i18n/zh-CN/feedback.php
@@ -50,7 +50,7 @@ return array(
'ko' => '%s 启用失败。检查 FreshRSS 日志 查看详情。',
'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 %s.', // TODO
- 'unsupported_format' => 'Unsupported image file format!', // TODO
+ 'too_large' => '上传的图标过大。最大文件大小为 %s。',
+ 'unsupported_format' => '不支持的图片文件格式!',
),
'internal_problem' => '订阅源添加失败,检查 FreshRSS 日志 查看详情。你可以在 URL 后添加 #force_feed 尝试强制添加。',
'invalid_url' => 'URL %s 无效',
diff --git a/app/i18n/zh-CN/gen.php b/app/i18n/zh-CN/gen.php
index d2a9413c0..f84607672 100644
--- a/app/i18n/zh-CN/gen.php
+++ b/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. See documentation', // TODO
+ 'unsafe_csp_header' => '当前使用的 CSP 头部不安全,FreshRSS 可能容易受到 XSS 攻击。查看文档',
),
'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 full search documentation', // TODO
- 'labels' => 'My Labels', // TODO
- 'multiple_help' => 'Select one or more (hold Ctrl or Cmd)', // TODO
- 'sources' => 'Sources', // TODO
- 'tags' => 'Article Tags', // TODO
- 'text' => 'Text Search', // TODO
- 'text_help' => 'Multiple lines are combined by a logical or. Also supports regular expressions.', // 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' => '查看 完整搜索文档',
+ 'labels' => '我的标签',
+ 'multiple_help' => '选择一个或多个(按住 Ctrl 或 Cmd)',
+ 'sources' => '来源',
+ 'tags' => '文章标签',
+ 'text' => '文本搜索',
+ 'text_help' => '多行通过逻辑 或 组合。也支持 正则表达式。',
+ 'text_placeholder' => '关键词',
+ 'title' => '标题',
+ 'url' => 'URL', // IGNORE
+ 'user_queries' => '用户查询',
),
'share' => array(
'Known' => '基于 Known 的站点',
diff --git a/app/i18n/zh-CN/index.php b/app/i18n/zh-CN/index.php
index ec48038fa..d228043d5 100644
--- a/app/i18n/zh-CN/index.php
+++ b/app/i18n/zh-CN/index.php
@@ -16,13 +16,13 @@ return array(
'agpl3' => 'AGPL 3', // 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' => '统计',
diff --git a/app/i18n/zh-CN/sub.php b/app/i18n/zh-CN/sub.php
index 0b0389c8e..dd89d5c88 100644
--- a/app/i18n/zh-CN/sub.php
+++ b/app/i18n/zh-CN/sub.php
@@ -29,9 +29,9 @@ return array(
'help' => '使用 URL 上的 OPML 文件 中的订阅源填充这一分类',
),
'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' => '例:foo=bar; gdpr_consent=true; cookie=value',
'css_help' => '用于获取全文(注意,这将耗费更多时间!)',
@@ -72,28 +72,28 @@ return array(
'error' => '此源遇到一些问题。请在确认是否能正常访问后重试。', // DIRTY
'export-as-opml' => array(
'download' => '下载',
- 'help' => 'XML 文件 (data subset. See documentation)', // DIRTY
+ 'help' => 'XML 文件(数据子集。查看文档)',
'label' => '导出为 OPML',
),
- 'ext_favicon' => 'Set automatically', // TODO
- 'favicon_changed_by_ext' => 'The icon has been set by the %s extension.', // TODO
+ 'ext_favicon' => '自动设置',
+ 'favicon_changed_by_ext' => '图标已由 %s 扩展设置。',
'filteractions' => array(
'_' => '过滤动作',
'help' => '每行写一条过滤规则,过滤规则可见 文档。',
- '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: Accept: application/atom+xml
Authorization: Bearer some-token).', // TODO
- 'icon' => 'Icon', // TODO
+ 'http_headers' => 'HTTP 头部',
+ 'http_headers_help' => '头部之间用换行符分隔,头部名称和值用冒号分隔(例如:Accept: application/atom+xml
Authorization: Bearer some-token)。',
+ '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: normalize-space(//script[@type="application/json"]) (single JSON)
or: //script[@type="application/ld+json"] (one JSON object per article)', // TODO
+ '_' => '用于 HTML 中 JSON 的 XPath', // DIRTY
+ 'help' => '示例:normalize-space(//script[@type="application/json"])(单个 JSON)
或://script[@type="application/ld+json"](每篇文章一个 JSON 对象)',
),
),
'html_xpath' => array(
@@ -152,7 +152,7 @@ return array(
'help' => 'JSON 点表达式(JSON 路径)在对象之间使用点,在数组中使用中括号 (例如 data.items[0].title)',
'item' => array(
'_' => '寻找新的 文章
(最重要的参数)',
- 'help' => '包含文章数组的 JSON 路径, 例如 $ or newsItems', // DIRTY
+ 'help' => '包含文章数组的 JSON 路径,例如 $ 或 newsItems', // DIRTY
),
'item_author' => '文章作者',
'item_categories' => '文章标签',
@@ -202,23 +202,23 @@ return array(
'moved_category_deleted' => '删除分类时,其中的订阅源会自动归类到 %s',
'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)和代理地址(例:127.0.0.1:1080 或者 username:password@127.0.0.1:1080)',
- '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' => 'forced', // TODO
- 'help' => 'Relevant for invalid feeds.
⚠️ 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' => '强制',
+ 'help' => '适用于无效的订阅源。
⚠️ 更改策略将创建重复项。',
+ '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' => '订阅工具',