diff --git a/package.json b/package.json index debd7c0fc..7a48dce24 100644 --- a/package.json +++ b/package.json @@ -69,8 +69,8 @@ "cli:help": "electron . --help", "cli": "cross-env DEBUG=r2:*,readium-desktop:* electron .", "i18n-sort": "node ./scripts/locales-sort.js", - "i18n-scan": "node ./scripts/translate-scan.js \"src/resources/locales/temp.json\" && sync-i18n --files 'src/resources/locales/*.json' --primary temp --languages en de es fr ja ka lt nl pt-br pt-pt it zh-cn ru fi sv ca gl eu --space \" \" --finalnewline --newkeysempty && rimraf \"src/resources/locales/temp.json\"", - "i18n-check": "sync-i18n --files 'src/resources/locales/*.json' --primary en --languages de es fr ja ka lt nl pt-br pt-pt it zh-cn ru fi sv ca gl eu --space \" \" --finalnewline --newkeysempty", + "i18n-scan": "node ./scripts/translate-scan.js \"src/resources/locales/temp.json\" && sync-i18n --files 'src/resources/locales/*.json' --primary temp --languages en de es fr ja ka lt nl pt-br pt-pt it zh-cn zh-tw ru fi sv ca gl eu --space \" \" --finalnewline --newkeysempty && rimraf \"src/resources/locales/temp.json\"", + "i18n-check": "sync-i18n --files 'src/resources/locales/*.json' --primary en --languages de es fr ja ka lt nl pt-br pt-pt it zh-cn zh-tw ru fi sv ca gl eu --space \" \" --finalnewline --newkeysempty", "i18n-typed": "node ./scripts/locale-wrap.js \"src/resources/locales/en.json\" \"en.json\" && typed_i18n -i \"en.json\" -o src/typings -l typescript && rimraf \"en.json\"", "style-typed": "tcm \"src/renderer/assets/styles\"", "ts-unused-exports_": "tcm --namedExports \"src/renderer/assets/styles\" && ts-unused-exports ./tsconfig.json $(find ./src/renderer/assets/styles -name '*.d.ts') || npm run style-typed", diff --git a/src/common/services/translator.ts b/src/common/services/translator.ts index e8b342f94..ecb1caf03 100644 --- a/src/common/services/translator.ts +++ b/src/common/services/translator.ts @@ -21,6 +21,7 @@ import ptBrCatalog from "readium-desktop/resources/locales/pt-br.json"; import ptPtCatalog from "readium-desktop/resources/locales/pt-pt.json"; import ruCatalog from "readium-desktop/resources/locales/ru.json"; import zhCnCatalog from "readium-desktop/resources/locales/zh-cn.json"; +import zhTwCatalog from "readium-desktop/resources/locales/zh-tw.json"; import koCatalog from "readium-desktop/resources/locales/ko.json"; import svCatalog from "readium-desktop/resources/locales/sv.json"; import caCatalog from "readium-desktop/resources/locales/ca.json"; @@ -90,6 +91,9 @@ i18nextInstance.init({ "zh-CN": { translation: zhCnCatalog, }, + "zh-TW": { + translation: zhTwCatalog, + }, "it" : { translation: itCatalog, }, @@ -152,7 +156,8 @@ export const AvailableLanguages = { "lt": "Lietuvių", "pt-BR": "Português Brasileiro", "pt-PT": "Português", - "zh-CN": "中文", + "zh-CN": "中文 - 中国", // "中文 - 中國" + "zh-TW": "中文 - 台灣", // "中文 - 台湾" "it": "Italiano", "ru": "Русский", "ko": "한국어", diff --git a/src/resources/information/zh-tw.xhtml b/src/resources/information/zh-tw.xhtml new file mode 100644 index 000000000..22382a0b4 --- /dev/null +++ b/src/resources/information/zh-tw.xhtml @@ -0,0 +1,194 @@ + + +
+Thorium閱讀器是適用於Windows 10,MacOS和Linux平台的專用閱讀軟體。
++ 這款EDRLab軟體目前正處於持續開發過程中, + 旨在為訪問EPUB出版物,PDF文件,有聲書,可視化敘述讀物,包括可選性地受到 + LCP DRM(DRM指數位版權管理) 保護的出版物提供參考。 +
+本軟體已翻譯為多種語言;得益於社區的幫助,軟體的每個版本都可提供新的語言。
+我們也付出了巨大的努力使Thorium閱讀器具備針對視力障礙和閱讀障礙人群的強大無障礙功能。
+本軟體完全免費,無廣告,也無隱私數據洩露。
+它是重度閱讀者、圖書館讀者以及在校學生的完美閱讀工具。
+ ++ 在線的: + https://www.edrlab.org/software/thorium-reader/doc/ +
+ ++ EPUB2: 這是一種舊格式,只適合於基礎性電子書。文本內容採用XHTML1格式排版, + 並且不支持任何多媒體功能。如果格式正確,EPUB2電子書仍可供訪問。 +
++ EPUB3: 這是21世紀推薦使用的電子書格式。文本內容採用(X)HTML5格式排版, + 可以創建固定布局電子書和富文本電子書,並具有良好的無障礙功能設計。 +
++ PDF: 儘管以缺乏靈活性(無法重排)和無障礙功能著稱,許多電子書仍然只提供PDF版本, + 特別是在公共圖書館中。 +
++ 有聲書: 一種 + 有聲書的標準格式 + 已於2020年由W3C出版工作組設計完成,EDRLab參與了此工作組。Thorium當前支持的 + 打包(LPF)有聲書格式, 有望在不久的將來得到電子書商的廣泛應用。 +
++ 可視化敘述讀物: + EDRLab已為連環漫畫、日漫、網路漫畫和其他風格的數字作品設計出一種基於圖像序列的標準格式。 這種格式名為Divina, 目前仍處於實驗階段, 我們希望出版商能在2021年以後擴大其使用範圍。 +
+ ++ Thorium閱讀器是為所有人設計的,包括盲人和具有其他閱讀障礙的人士。 本軟體與JAWS, NVDA, Narrator and + VoiceOver等螢幕閱讀器相容, + 並且包含一個帶有可視高亮顯示的大聲朗讀功能。Thorium閱讀器能夠透過滑鼠或鍵盤使用, + 可以配置鍵盤快捷鍵。書籍的顯示方式,包括顏色、文字大小、 + 文字間距、字體和頁面布局等都可根據使用者的需要進行個性化設置。 +
+ ++ EDRLab與DAISY聯盟保持著緊密聯繫。 + 與參與本軟體的設計與測試工作的閱讀障礙人士一道, 我們正使Thorium閱讀器成為具有最強大無障礙功能的閱讀軟體。 +
+ ++ 眾多公共圖書館與出版商都採用 + OPDS作為在網路上發布其書籍目錄的標準方式。 +
++ 使用OPDS,圖書館或書商也可發布讀者或顧客的個人書架,例如用戶已獲取的電子書, + 以及可以立即下載和閱讀的電子書。 +
++ Thorium閱讀器可以瀏覽OPDS1和OPDS2目錄。它還支持若干種符合OPDS標準的身份驗證機制, + 因此可以允許用戶訪問他們的個人書架。 +
+ ++ Thorium閱讀器支持最初由Readium基金會設計的 + Readium LCP數位版權管理, 這一 + 數位版權管理的具體規範可以公開查閱, 以下是一份ISO技術規範,參考 + ISO 23078-2。 +
+ ++ LCP已被全世界眾多公共圖書館、大學 以及書商所採用 (列表見此)。 +
++ 我們鼓勵世界範圍內的出版部門採用LCP保護電子書免於過度分享,同時為用戶提供流暢的閱讀體驗, + 並保持對於書籍內容的適當訪問。 如果您的組織有興趣採用LDP, 請聯繫EDRLab。 +
+ ++ 歐洲數位閱讀實驗室(EDRLab)2019版權所有。保留一切權利。 + 根據一個或多個貢獻者許可協議向Readium基金會頒發許可證。 +
+ +此應用程式是開源的,在BSD3許可證下發布。它基於開源Readium桌面工具包。
+ +Thorium目前由下列人員開發:
+ +其他幾位幫助Thorium走到今天的開發人員:
+ +本項目由EDRLab技術長Laurent Le Meur擔任主管。
+ ++ EDRLab是一個非營利性組織。我們的預算基本來自於本組織成員。EDRLab創始於法國, + 目前已擁有來自歐洲、北美洲、南美洲與亞洲的總計60位成員。 +
+ +沒有這些支持,本項目將無從開展:
++ 1- 本組織創始成員的財務承擔: 埃迪蒂出版集團(Editis), 阿歇特出版集團(Hachette Livre), Magrigall出版集團, + 達高集團(Media-Participations), Cercle de la Librarie, 法國全國出版協會(Syndicat national de + l'Edition)。他們明白,為開放標準和開源軟體提供融資, 是為出版行業創造一個開放和創新的市場的最佳方式。 +
+ +2- 來自以下法國公共組織的財政資助:
+3- 因添加特定功能而引發興趣的EDRLab成員的額外資助:
++ 您也可以通過 + 成為EDRLab成員幫助Thorium閱讀器持續改進。 +
++ 或者, 您可以通過 + Github贊助商 + "piggy-bank"向EDRLab捐款, 接受小額按月捐贈。 +
+ + diff --git a/src/resources/locales/zh-tw.json b/src/resources/locales/zh-tw.json new file mode 100644 index 000000000..12a2d42f6 --- /dev/null +++ b/src/resources/locales/zh-tw.json @@ -0,0 +1,401 @@ +{ + "accessibility": { + "bookMenu": "菜單", + "closeDialog": "關閉", + "importFile": "匯入出版物", + "leftSlideButton": "將列表劃至左側", + "mainContent": "主要內容", + "rightSlideButton": "將列表劃至右側", + "searchBook": "按書名搜索", + "skipLink": "跳轉至內容", + "toolbar": "工具欄" + }, + "apiapp": { + "noLibraryFound": "" + }, + "app": { + "edit": { + "copy": "複製", + "cut": "剪下", + "paste": "貼上", + "redo": "重做", + "selectAll": "全選", + "title": "編輯", + "undo": "復原" + }, + "hide": "隱藏 {{- appName}}", + "quit": "退出 {{- appName}}", + "session": { + "exit": { + "askBox": { + "button": { + "no": "否", + "yes": "是" + }, + "message": "是否保存當前連線?", + "title": "保存連線" + } + } + }, + "window": { + "showLibrary": "顯示 書庫/書架" + } + }, + "catalog": { + "about": { + "button": "更多訊息", + "title": "關於{{appName}}" + }, + "addBookToLib": "匯入", + "addTags": "添加標籤", + "addTagsButton": "添加", + "allBooks": "全部圖書", + "bookInfo": "關於此書", + "column": { + "ascending": "升冪", + "descending": "降冪", + "unsorted": "亂序" + }, + "delete": "刪除", + "deleteBook": "刪除", + "deleteTag": "刪除標籤", + "description": "概要", + "emptyTagList": "尚無帶標籤電子書", + "entry": { + "continueReading": "繼續閱讀", + "continueReadingAudioBooks": "繼續聽讀", + "continueReadingDivina": "繼續閱讀divina", + "continueReadingPdf": "繼續閱讀PDF", + "lastAdditions": "最近添加" + }, + "export": "導出", + "format": "", + "lang": "語言", + "lastRead": "", + "moreInfo": "更多訊息", + "myBooks": "我的圖書", + "noPublicationHelpL1": "拖放EPUB至此處。", + "noPublicationHelpL2": "或者使用上面的\"+\"按鈕。", + "noPublicationHelpL3": "支持受LCP保護的文件。", + "noPublicationHelpL4": "支持的副檔名:", + "numberOfPages": "頁碼", + "opds": { + "auth": { + "cancel": "取消", + "login": "登入" + }, + "info": { + "availableSince": "開始時間", + "availableState": { + "available": "在售", + "ready": "準備中", + "reserved": "已預訂", + "unavailable": "售空", + "unknown": "不明" + }, + "availableUntil": "結束時間", + "copyAvalaible": "在售數", + "copyTotal": "拷貝數", + "holdPosition": "你的持倉位置", + "holdTotal": "已持有", + "numberOfItems": "項目數", + "priveValue": "價格", + "state": "狀態" + } + }, + "publisher": "出版社", + "readBook": "閱讀", + "released": "出版日期", + "sort": "排序方式", + "tagCount": "標籤數", + "tags": "標籤" + }, + "dialog": { + "closeModalWindow": "關閉此模式窗口", + "deleteFeed": "你真的要刪除此出版目錄嗎?", + "deletePublication": "你真的要刪除此出版物嗎?", + "import": "你真的要匯入這些文件嗎:", + "importError": "出現錯誤, 請確認文件的副檔名({{acceptedExtension}})", + "no": "否", + "renew": "你真的要更新此出版物的許可證嗎?", + "return": "你真的要歸還此出版物的許可證嗎?", + "yes": "是" + }, + "error": { + "errorBox": { + "error": "錯誤訊息:", + "message": "{{- filename}}出現錯誤", + "title": "內部{{- appName}}錯誤" + } + }, + "header": { + "allBooks": "全部圖書", + "books": "我的圖書", + "catalogs": "出版目錄", + "downloads": "下載", + "gridTitle": "網格視圖", + "home": "書架菜單", + "homeTitle": "主頁", + "importTitle": "匯入出版物", + "listTitle": "列表視圖", + "refreshTitle": "重新載入", + "searchPlaceholder": "搜索", + "searchTitle": "開始搜索", + "settings": "設置" + }, + "library": { + "lcp": { + "cancel": "取消", + "hint": "(提示: {{- hint}})", + "password": "密碼", + "sentence": "打開此出版物需要LCP密碼: ", + "submit": "提交", + "urlHint": "忘記密碼?在此取得幫助" + } + }, + "message": { + "download": { + "error": "下載{{- title}}失敗: [{{- err}}]" + }, + "import": { + "alreadyImport": "{{- title}}已被匯入", + "fail": "匯入{{- path}}失敗。{{- err}}", + "success": "匯入{{- title}}完成。" + }, + "open": { + "error": "無法打開出版物: {{- err}}" + } + }, + "opds": { + "addForm": { + "addButton": "添加", + "name": "名稱:", + "namePlaceholder": "名稱", + "title": "添加 OPDS 訂閱來源", + "url": "連結:", + "urlPlaceholder": "連結" + }, + "addFormApiapp": { + "title": "" + }, + "addMenu": "添加 OPDS 訂閱來源", + "back": "返回", + "breadcrumbRoot": "出版目錄", + "empty": "未找到出版物", + "firstPage": "首頁", + "lastPage": "尾頁", + "menu": { + "aboutBook": "關於此書", + "addExtract": "匯入摘錄", + "goBuyBook": "購買此書", + "goLoanBook": "借閱此書", + "goRevokeLoanBook": "歸還此書", + "goSubBook": "訂閱" + }, + "network": { + "error": "無法訪問 OPDS 訂閱來源", + "noInternet": "未連線至網際網路", + "noInternetMessage": "請重新嘗試: 檢查網路連線", + "reject": "抱歉, 處理 OPDS 訂閱來源時出現意外錯誤", + "timeout": "網路連線超時, 請稍後重試" + }, + "next": "下一個", + "previous": "上一個", + "shelf": "書架" + }, + "publication": { + "audio": { + "tracks": "音軌" + }, + "author": "作者", + "cancelledLcp": "此書無法閱讀,因為 LCP 許可證已被取消。", + "certificateRevoked": "認證撤銷", + "certificateSignatureInvalid": "認證簽名無效", + "cover": { + "img": "封面圖像" + }, + "duration": { + "title": "播放時長" + }, + "expiredLcp": "此書無法閱讀,因為 LCP 許可證已到期。", + "lcpEnd": "結束", + "lcpRightsCopy": "許可證拷貝", + "lcpRightsPrint": "許可證打印", + "lcpStart": "開始", + "licenseOutOfDate": "許可證過期", + "licenseSignatureDateInvalid": "許可證簽名日期無效", + "licenseSignatureInvalid": "許可證簽名無效", + "progression": { + "title": "進程" + }, + "renewButton": "更新", + "returnButton": "歸還", + "returnedLcp": "此書無法閱讀,因為 LCP 許可證已被歸還。", + "revokedLcp": "此書無法閱讀,因為 LCP 許可證已被撤銷。", + "seeLess": "查看更少", + "seeMore": "查看更多", + "title": "標題", + "userKeyCheckInvalid": "密碼不正確" + }, + "reader": { + "divina": { + "mute": "靜音", + "unmute": "取消靜音" + }, + "footerInfo": { + "lessInfo": "不顯示閱讀位置", + "moreInfo": "顯示閱讀位置" + }, + "marks": { + "annotations": "筆記", + "bookmarks": "書籤", + "delete": "刪除", + "edit": "編輯", + "landmarks": "結構", + "search": "搜尋", + "toc": "目錄" + }, + "media-overlays": { + "activate": "啟動語音朗讀", + "captions": "字幕 / 簡明視圖", + "next": "朗讀下一段", + "pause": "暫停朗讀", + "play": "開始朗讀", + "previous": "朗讀上一段", + "skip": "自動跳過功能", + "speed": "語音朗讀速度", + "stop": "停止朗讀", + "title": "語音朗讀" + }, + "navigation": { + "backHomeTitle": "返回書架", + "bookmarkTitle": "書籤", + "currentPage": "當前頁面: {{- current}}", + "currentPageTotal": "當前頁面: {{- current}}/{{- total}}", + "detachWindowTitle": "顯示 書庫/書架 窗口", + "fullscreenTitle": "開啟全螢幕模式", + "goTo": "轉到", + "goToError": "此頁不存在", + "goToPlaceHolder": "輸入頁碼", + "goToTitle": "轉到頁", + "infoTitle": "訊息", + "magnifyingGlassButton": "在出版物中搜索", + "openTableOfContentsTitle": "導航", + "pdfscalemode": "適合頁面寬度", + "quitFullscreenTitle": "退出全屏模式", + "readBookTitle": "開始閱讀圖書", + "settingsTitle": "設定" + }, + "picker": { + "annotationTitle": "筆記:", + "search": { + "founds": "{{- nResults}}個匹配", + "input": "輸入搜索文字", + "next": "後一個", + "notFound": "無匹配", + "previous": "前一個", + "submit": "尋找" + }, + "searchTitle": "搜索:" + }, + "settings": { + "column": { + "auto": "自動", + "one": "1欄", + "oneTitle": "一欄", + "title": "欄", + "two": "2欄", + "twoTitle": "兩欄" + }, + "display": "顯示", + "disposition": { + "title": "布局" + }, + "font": "字體", + "fontSize": "字體大小", + "justification": "排版", + "justify": "兩端對齊", + "letterSpacing": "字符間距", + "lineSpacing": "行間距", + "margin": "頁邊距", + "noFootnotes": "沒有腳註", + "paginated": "分頁", + "paraSpacing": "段落間距", + "pdfZoom": { + "name": { + "100pct": "100 %", + "150pct": "150 %", + "200pct": "200 %", + "300pct": "300 %", + "500pct": "500 %", + "50pct": "50 %", + "fit": "適合頁面", + "width": "頁面寬度" + }, + "title": "放大" + }, + "reduceMotion": "減少動態效果", + "save": { + "apply": "套用", + "reset": "重置", + "title": "配置" + }, + "scrolled": "捲動", + "spacing": "間距", + "text": "文字", + "theme": { + "name": { + "Neutral": "無色", + "Night": "夜間", + "Sepia": "茶色" + }, + "title": "主題" + }, + "wordSpacing": "文字間距" + }, + "svg": { + "left": "左", + "right": "右" + }, + "toc": { + "publicationNoToc": "此出版物沒有目錄" + }, + "tts": { + "activate": "啟動文字語音轉換", + "default": "聲音: 系統默認", + "next": "下一段", + "pause": "暫停", + "play": "播放", + "previous": "上一段", + "sentenceDetect": "句子檢測", + "speed": "語速", + "stop": "停止", + "voice": "聲音" + } + }, + "settings": { + "auth": { + "wipeData": "清除登入數據" + }, + "keyboard": { + "advancedMenu": "菜單", + "cancel": "取消", + "edit": "編輯", + "editUserJson": "編輯使用者文件...", + "hide": "隱藏", + "keyboardShortcuts": "鍵盤快捷鍵", + "loadUserJson": "從使用者檔案載入", + "resetDefaults": "重置 (載入初始設定)", + "save": "保存", + "show": "顯示" + }, + "language": { + "languageChoice": "選擇語言" + }, + "session": { + "no": "禁用", + "title": "保存會話", + "yes": "啟用" + } + } +}