Browse Source

i18n: Improve Traditional Chinese translations (#8712)

* Update the zh-tw translation for admin.php

* Update the zh-tw translation for index.php

* Update the zh-tw translation for user.php

* Correct the typos in install.php

* make fix-all

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
IEEE-754 4 weeks ago
parent
commit
3ec1920cc5
6 changed files with 137 additions and 137 deletions
  1. 1 1
      README.fr.md
  2. 1 1
      README.md
  3. 67 67
      app/i18n/zh-TW/admin.php
  4. 47 47
      app/i18n/zh-TW/index.php
  5. 2 2
      app/i18n/zh-TW/install.php
  6. 19 19
      app/i18n/zh-TW/user.php

+ 1 - 1
README.fr.md

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

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

+ 67 - 67
app/i18n/zh-TW/admin.php

@@ -12,36 +12,36 @@
 
 return array(
 	'auth' => array(
-		'allow_anonymous' => '允許匿名閱讀預設使用者(%s)的文章',
+		'allow_anonymous' => '允許匿名閱讀預設使用者的文章 (%s)',
 		'allow_anonymous_refresh' => '允許匿名刷新文章',
-		'api_enabled' => '允許 <abbr>API</abbr> 訪問 <small>(用於手機應用 and sharing user queries)</small>',	// DIRTY
-		'form' => '網頁表單(傳統方式, 需要 JavaScript)',
-		'http' => 'HTTP (advanced: managed by Web server, OIDC, SSO…)',	// TODO
-		'none' => '無認證(危險)',
-		'title' => '證',
-		'token' => '主要驗證權杖',
-		'token_help' => '允許存取使用者的所有 RSS 輸出以及重整源而無需身份驗證:',
-		'type' => '證方式',
+		'api_enabled' => '允許 <abbr>API</abbr> 存取 <small>(移動端應用程式與分享使用者查詢需要)</small>',
+		'form' => 'Web 表單 (傳統方式,需要 JavaScript)',
+		'http' => 'HTTP (進階: 由 Web 伺服器、OIDC、SSO 等管理)',
+		'none' => '無 (危險)',
+		'title' => '身份驗證',
+		'token' => '主要身分驗證權杖',
+		'token_help' => '允許使用者存取所有 RSS 輸出並且無需身份驗證就能刷新訂閱源:',
+		'type' => '身份驗證方式',
 	),
 	'extensions' => array(
 		'author' => '作者',
 		'community' => '可用的社群擴充功能',
 		'description' => '描述',
-		'disabled' => '已用',
+		'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' => '是否相容',
 		'latest' => '已安裝',
 		'name' => '名稱',
-		'no_configure_view' => '此擴充功能不能配置。',
+		'no_configure_view' => '此擴充功能無法配置。',
 		'system' => array(
 			'_' => '系統擴充功能',
-			'no_rights' => '系統擴充功能(你無權修改)',
+			'no_rights' => '系統擴充功能 (您沒有所需權限)',
 		),
 		'title' => '擴充功能',
 		'update' => '更新可用',
-		'user' => '用戶擴充功能',
+		'user' => '使用者擴充功能',
 		'version' => '版本',
 	),
 	'stats' => array(
@@ -51,68 +51,68 @@ return array(
 		'date_published' => 'Publication date',	// TODO
 		'date_received' => 'Received date',	// TODO
 		'entry_count' => '文章數',
-		'entry_per_category' => '分類文章數',
-		'entry_per_day' => '近三十日每日文章數',
-		'entry_per_day_of_week' => '一週各日(平均:%.2f 條消息)',
-		'entry_per_hour' => '各小時(平均:%.2f 條消息)',
-		'entry_per_month' => '各月(平均:%.2f 條消息)',
-		'entry_repartition' => '文章分',
+		'entry_per_category' => '分類文章數',
+		'entry_per_day' => '每日文章數 (過去 30 天)',
+		'entry_per_day_of_week' => '一星期的每天 (平均: %.2f 個消息)',
+		'entry_per_hour' => '每小時 (平均: %.2f 個消息)',
+		'entry_per_month' => '每月 (平均: %.2f 個消息)',
+		'entry_repartition' => '文章分',
 		'feed' => '訂閱源',
-		'feed_per_category' => '分類訂閱源數',
-		'idle' => '長期無更新訂閱源',
+		'feed_per_category' => '分類訂閱源數',
+		'idle' => '閒置的訂閱源',
 		'main' => '主要統計',
-		'main_stream' => '首頁',
-		'nb_unreads' => 'Number of unread articles',	// TODO
+		'main_stream' => '主資訊流',
+		'nb_unreads' => '未讀文章數',
 		'no_idle' => '訂閱源近期皆有更新!',
 		'number_entries' => '%d 篇文章',
-		'overview' => 'Overview',	// TODO
+		'overview' => '概覽',
 		'percent_of_total' => '%',
-		'repartition' => '文章分布: %s',	// DIRTY
+		'repartition' => '文章分配: %s',
 		'status_favorites' => '收藏',
 		'status_read' => '已讀',
 		'status_total' => '總計',
 		'status_unread' => '未讀',
 		'title' => '統計',
 		'top_feed' => '前十訂閱源',
-		'unread_dates' => 'Dates with most unread articles',	// TODO
+		'unread_dates' => '最多未讀文章的日期',
 	),
 	'system' => array(
 		'_' => '系統配置',
-		'auto-update-url' => '自動升級伺服器地址',
+		'auto-update-url' => '自動升級伺服器 URL',
 		'base-url' => array(
-			'_' => '基本URL',
+			'_' => '基本 URL',
 			'recommendation' => '自動推薦: <kbd>%s</kbd>',
 		),
-		'closed_registration_message' => 'Message if registrations are closed',	// TODO
+		'closed_registration_message' => '註冊已關閉時顯示的訊息',
 		'cookie-duration' => array(
-			'help' => '單位(秒)',
-			'number' => '保持登的時長',
+			'help' => '以秒為單位',
+			'number' => '保持登的時長',
 		),
-		'default_closed_registration_message' => 'This server does not accept new registrations at the moment.',	// TODO
-		'force_email_validation' => '強制驗證郵箱地址',
+		'default_closed_registration_message' => '目前此伺服器不接受新的註冊。',
+		'force_email_validation' => '強制驗證電子郵件位址',
 		'instance-name' => '實例名稱',
-		'max-categories' => '各使用者分類數限制',
-		'max-feeds' => '各使用者訂閱源數限制',
+		'max-categories' => '每個使用者的最大分類數',
+		'max-feeds' => '每個使用者的最大訂閱源數',
 		'registration' => array(
-			'number' => '最大使用者數',
+			'number' => '最大帳號數',
 			'select' => array(
 				'label' => '註冊表單',
 				'option' => array(
-					'noform' => '禁用,無註冊表單',
-					'nolimit' => '啟用,且無帳號限制',
-					'setaccountsnumber' => '設置使用者數的最大值',
+					'noform' => '已停用: 無註冊表單',
+					'nolimit' => '已啟用: 無帳號限制',
+					'setaccountsnumber' => '設定最大帳號數',
 				),
 			),
 			'status' => array(
-				'disabled' => '註冊表單禁用',
-				'enabled' => '註冊表單啟用',
+				'disabled' => '表單已停用',
+				'enabled' => '表單啟用',
 			),
 			'title' => '使用者註冊表單',
 		),
-		'sensitive-parameter' => '敏感參數。手動編輯於 <kbd>./data/config.php</kbd>',
+		'sensitive-parameter' => '敏感參數。請在 <kbd>./data/config.php</kbd> 中手動編輯',
 		'tos' => array(
-			'disabled' => '未被給予',
-			'enabled' => '<a href="./?a=tos">為啟用</a>',
+			'disabled' => '未提供',
+			'enabled' => '<a href="./?a=tos">為啟用</a>',
 			'help' => '如何 <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">啟用服務條款</a>',
 		),
 		'websub' => array(
@@ -120,41 +120,41 @@ return array(
 		),
 	),
 	'update' => array(
-		'_' => '更新系統',
-		'apply' => '應用',
-		'changelog' => '更紀錄',
+		'_' => '更新 FreshRSS',
+		'apply' => '開始更新',
+		'changelog' => '更紀錄',
 		'check' => '檢查更新',
-		'copiedFromURL' => 'update.php 複製從 %s 至 ./data',
-		'current_version' => '當前 版本為',
+		'copiedFromURL' => '從 %s 複製 update.php 到 ./data',
+		'current_version' => '當前安裝的版本',
 		'last' => '上次檢查',
 		'loading' => '更新中…',
-		'none' => '沒有可用更新',
+		'none' => '可用更新',
 		'releaseChannel' => array(
-			'_' => '發佈通道',
-			'edge' => '滾動式發佈(“edge”)',
-			'latest' => '穩定式發佈(“latest”)',
+			'_' => '發行方式',
+			'edge' => '滾動發行 (“edge”)',
+			'latest' => '穩定發行 (“latest”)',
 		),
-		'title' => '系統更新',
-		'viaGit' => '從git並由GitHub.com開始',
+		'title' => '更新 FreshRSS',
+		'viaGit' => '透過 git 和 GitHub.com 開始更新',
 	),
 	'user' => array(
 		'admin' => '管理員',
 		'article_count' => '文章數',
-		'back_to_manage' => '← 返回使用者列表',
-		'create' => '新使用者',
+		'back_to_manage' => '← 返回到使用者清單',
+		'create' => '建立新使用者',
 		'database_size' => '資料庫大小',
-		'email' => '郵箱地址',
+		'email' => '電子郵件位址',
 		'enabled' => '已啟用',
 		'feed_count' => '訂閱源數',
-		'is_admin' => '管理員',
+		'is_admin' => '是否為管理員',
 		'language' => '語言',
-		'last_user_activity' => '上次使用者活',
-		'list' => '使用者列表',
-		'number' => '已有 %d 個使用者',
-		'numbers' => '已有 %d 個使用者',
-		'password_form' => '密碼<br /><small>(用於網頁表單登錄方式)</small>',
+		'last_user_activity' => '上次使用者活',
+		'list' => '使用者清單',
+		'number' => '已建立 %d 個帳號',
+		'numbers' => '已建立 %d 個帳號',
+		'password_form' => '密碼<br /><small>(用於 Web 表單登入方式)</small>',
 		'password_format' => '至少 7 個字元',
-		'title' => '使用者管理',
+		'title' => '管理使用者',
 		'username' => '使用者名稱',
 	),
 );

+ 47 - 47
app/i18n/zh-TW/index.php

@@ -16,26 +16,26 @@ 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' => '報告錯誤',
-		'documentation' => 'Documentation',	// TODO
-		'freshrss_description' => 'FreshRSS 是一個自托管的 RSS 聚合服務。 它不僅輕快又易用,而且強大又易於配置。',
-		'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">GitHub Issues</a>',
+		'bugs_reports' => '漏洞報告',
+		'documentation' => '說明文件',
+		'freshrss_description' => 'FreshRSS 是個可自託管的 RSS 聚合器和閱讀器。它允許您一次閱讀和追蹤多個新聞網站而無需在不同網站之間切換。FreshRSS 輕量、可配置且易於使用。',
+		'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">在 GitHub 上</a>',
 		'license' => '授權',
-		'project_website' => '項目網站',
+		'project_website' => '專案網站',
 		'title' => '關於',
 		'version' => '版本',
 	),
 	'feed' => array(
-		'empty' => '暫時沒有文章可顯示。',
+		'empty' => '文章可顯示。',
 		'published' => array(
 			'_' => 'Published',	// TODO
 			'future' => 'Published in the future',	// TODO
@@ -47,10 +47,10 @@ return array(
 			'today' => 'Received today',	// TODO
 			'yesterday' => 'Received yesterday',	// TODO
 		),
-		'rss_of' => '%s 的訂閱源',
-		'title' => '首頁',
+		'rss_of' => '%s 的 RSS 訂閱源',
+		'title' => '主資訊流',
 		'title_fav' => '收藏',
-		'title_global' => '全局視圖',
+		'title_global' => '全域檢視',
 		'userModified' => array(
 			'_' => 'Modified by user',	// TODO
 			'today' => 'Modified by user today',	// TODO
@@ -58,62 +58,62 @@ return array(
 		),
 	),
 	'log' => array(
-		'_' => '日誌',
-		'clear' => '清除日誌',
-		'empty' => '日誌文件為空',
-		'title' => '日誌',
+		'_' => '紀錄',
+		'clear' => '清除紀錄',
+		'empty' => '紀錄檔案為空',
+		'title' => '紀錄',
 	),
 	'menu' => array(
 		'about' => '關於 FreshRSS',
 		'before_one_day' => '一天前',
 		'before_one_week' => '一週前',
 		'bookmark_query' => '收藏當前查詢',
-		'favorites' => '收藏(%s)',
-		'global_view' => '全局視圖',
-		'important' => '重要源',
-		'main_stream' => '首頁',
-		'mark_all_read' => '全部為已讀',
-		'mark_cat_read' => '此分類設為已讀',
-		'mark_feed_read' => '此訂閱源設為已讀',
-		'mark_selection_unread' => '選中設為已讀',
+		'favorites' => '收藏 (%s)',
+		'global_view' => '全域檢視',
+		'important' => '重要訂閱源',
+		'main_stream' => '主資訊流',
+		'mark_all_read' => '標記全部為已讀',
+		'mark_cat_read' => '標記類別為已讀',
+		'mark_feed_read' => '標記訂閱源為已讀',
+		'mark_selection_unread' => '標記選取條目為已讀',
 		'mylabels' => '我的標籤',
 		'non-starred' => '顯示未收藏',
-		'normal_view' => '普通視',
-		'queries' => '自定義查詢',
+		'normal_view' => '普通視',
+		'queries' => '使用者查詢',
 		'read' => '顯示已讀',
-		'reader_view' => '閱讀視',
-		'rss_view' => '訂閱源',
+		'reader_view' => '閱讀視',
+		'rss_view' => 'RSS 訂閱源',
 		'search_short' => '搜尋',
 		'sort' => array(
-			'asc' => 'Ascending',	// TODO
+			'asc' => '升序',
 			'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
-			'desc' => 'Descending',	// TODO
+			'desc' => '降序',
 			'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
+			'length_asc' => '內容長度 1→9',
+			'length_desc' => '內容長度 9→1',
+			'link_asc' => '連結 A→Z',
+			'link_desc' => '連結 Z→A',
 			'primary' => array(
-				'_' => 'Sorting criterion',	// TODO
+				'_' => '排序標準',
 				'help' => 'Sorting by <em>received</em> date is recommended in most cases, for consistency and performance',	// TODO
 			),
-			'rand' => 'Random order',	// TODO
+			'rand' => '隨機順序',
 			'secondary' => array(
-				'_' => 'Secondary sorting criterion',	// TODO
+				'_' => '次要排序標準',
 				'help' => 'Only relevant when the primary sorting criterion is categories or feeds titles',	// TODO
 			),
-			'title_asc' => 'Title A→Z',	// TODO
-			'title_desc' => 'Title Z→A',	// TODO
+			'title_asc' => '標題 A→Z',
+			'title_desc' => '標題 Z→A',
 			'user_modified_asc' => 'User modified 1→9',	// TODO
 			'user_modified_desc' => 'User modified 9→1',	// TODO
 		),

+ 2 - 2
app/i18n/zh-TW/install.php

@@ -130,8 +130,8 @@ return array(
 			'ok' => '您擁有解析 XML 所需的函式庫。',
 		),
 		'zip' => array(
-			'nok' => '無法找到推薦的 ZIP 擴充功能 (php-zip package)。',
-			'ok' => '您擁有推薦的 ZIP 擴充功能 (php-zip package)。',
+			'nok' => '無法找到推薦的 ZIP 擴充功能 (php-zip 套件)。',
+			'ok' => '您擁有推薦的 ZIP 擴充功能 (php-zip 套件)。',
 		),
 	),
 	'conf' => array(

+ 19 - 19
app/i18n/zh-TW/user.php

@@ -13,42 +13,42 @@
 return array(
 	'email' => array(
 		'feedback' => array(
-			'invalid' => '電子郵箱地址無效',
-			'required' => '必須填寫郵箱地址',
+			'invalid' => '此電子郵件位址無效。',
+			'required' => '需要電子郵件位址。',
 		),
 		'validation' => array(
-			'change_email' => '您可以在 <a href="%s">使用者管理</a> 中變更您的郵箱地址',
-			'email_sent_to' => '我們已通過 <strong>%s</strong> 發送驗證郵件給您,請按其中指示來驗證郵箱地址。',
+			'change_email' => '您可以 <a href="%s">在簡介頁面</a> 變更電子郵件位址。',
+			'email_sent_to' => '我們已發送一封電子郵件到 <strong>%s</strong>。請遵循其說明驗證您的位址。',
 			'feedback' => array(
-				'email_failed' => '由於伺服器配置錯誤,我們無法向您發送郵件。',
-				'email_sent' => '郵件已發送到您的郵箱中',
-				'error' => '郵箱地址無法通過驗證',
-				'ok' => '郵箱地址已成功通過驗證',
-				'unnecessary' => '該郵箱地址已被驗證',
-				'wrong_token' => '由於令牌錯誤,郵箱地址無法通過驗證。',
+				'email_failed' => '因為伺服器配置錯誤,我們無法給您發送電子郵件。',
+				'email_sent' => '一封電子郵件已發送到您的位址。',
+				'error' => '電子郵件位址驗證失敗。',
+				'ok' => '此電子郵件位址已驗證。',
+				'unnecessary' => '此電子郵件位址已驗證過。',
+				'wrong_token' => '由於錯誤的權杖,此電子郵件位址驗證失敗。',
 			),
-			'need_to' => '您需要先驗證郵箱地址才能使用 %s',
-			'resend_email' => '重發郵件',
-			'title' => '驗證郵箱地址',
+			'need_to' => '您需要先驗證電子郵件位址才能使用 %s。',
+			'resend_email' => '重送電子郵件',
+			'title' => '電子郵件位址驗證',
 		),
 	),
 	'mailer' => array(
 		'email_need_validation' => array(
-			'body' => '%s,歡迎',
+			'body' => '您剛剛在 %s 註冊,但仍需要驗證電子郵件位址。請點擊以下連結:',
 			'title' => '您需要驗證您的帳號',
-			'welcome' => '您已註冊 %s 現在只需點擊下方連結通過郵箱驗證即可完成註冊:',
+			'welcome' => '歡迎 %s,',
 		),
 	),
 	'password' => array(
-		'invalid' => '無效密碼',
+		'invalid' => '密碼無效',
 	),
 	'tos' => array(
 		'feedback' => array(
-			'invalid' => '您必須接受服務條款才能註冊',
+			'invalid' => '您必須接受服務條款才能註冊',
 		),
 	),
 	'username' => array(
-		'invalid' => '無效用戶名',
-		'taken' => '已存在此用戶名',
+		'invalid' => '此使用者名稱無效。',
+		'taken' => '此使用者名稱,%s,已被使用。',
 	),
 );