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' => '选择一个或多个(按住 CtrlCmd)', + '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' => '订阅工具',