From 6b3dee67779157e66705ee884b684730848ac67f Mon Sep 17 00:00:00 2001 From: Lipis Date: Thu, 19 Mar 2020 22:12:47 +0200 Subject: [PATCH] New Crowdin translations (#1011) --- src/i18n.ts | 25 +++--- src/locales/{de.json => de-DE.json} | 0 src/locales/{es.json => es-ES.json} | 0 src/locales/{fr.json => fr-FR.json} | 0 src/locales/{id.json => id-ID.json} | 0 src/locales/{ko.json => ko-KR.json} | 0 src/locales/{no.json => no-NO.json} | 0 src/locales/{pl.json => pl-PL.json} | 0 src/locales/{pt.json => pt-PT.json} | 0 src/locales/{ru.json => ru-RU.json} | 0 src/locales/{tr.json => tr-TR.json} | 0 src/locales/{zh.json => zh-CN.json} | 0 src/locales/zh-TW.json | 124 ++++++++++++++++++++++++++++ 13 files changed, 139 insertions(+), 10 deletions(-) rename src/locales/{de.json => de-DE.json} (100%) rename src/locales/{es.json => es-ES.json} (100%) rename src/locales/{fr.json => fr-FR.json} (100%) rename src/locales/{id.json => id-ID.json} (100%) rename src/locales/{ko.json => ko-KR.json} (100%) rename src/locales/{no.json => no-NO.json} (100%) rename src/locales/{pl.json => pl-PL.json} (100%) rename src/locales/{pt.json => pt-PT.json} (100%) rename src/locales/{ru.json => ru-RU.json} (100%) rename src/locales/{tr.json => tr-TR.json} (100%) rename src/locales/{zh.json => zh-CN.json} (100%) create mode 100644 src/locales/zh-TW.json diff --git a/src/i18n.ts b/src/i18n.ts index 23840e89..fcbe584c 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -2,16 +2,21 @@ import LanguageDetector from "i18next-browser-languagedetector"; export const languages = [ { lng: "en", label: "English", data: require("./locales/en.json") }, - { lng: "de", label: "Deutsch", data: require("./locales/de.json") }, - { lng: "es", label: "Español", data: require("./locales/es.json") }, - { lng: "fr", label: "Français", data: require("./locales/fr.json") }, - { lng: "id", label: "Bahasa Indonesia", data: require("./locales/id.json") }, - { lng: "no", label: "Norsk", data: require("./locales/no.json") }, - { lng: "pl", label: "Polski", data: require("./locales/pl.json") }, - { lng: "pt", label: "Português", data: require("./locales/pt.json") }, - { lng: "ru", label: "Русский", data: require("./locales/ru.json") }, - { lng: "tr", label: "Türkçe", data: require("./locales/tr.json") }, - { lng: "ko", label: "한국어", data: require("./locales/ko.json") }, + { lng: "de-DE", label: "Deutsch", data: require("./locales/de-DE.json") }, + { lng: "es-ES", label: "Español", data: require("./locales/es-ES.json") }, + { lng: "fr-FR", label: "Français", data: require("./locales/fr-FR.json") }, + { + lng: "id-ID", + label: "Bahasa Indonesia", + data: require("./locales/id-ID.json"), + }, + { lng: "no-No", label: "Norsk", data: require("./locales/no-NO.json") }, + { lng: "pl-PL", label: "Polski", data: require("./locales/pl-PL.json") }, + { lng: "pt-PT", label: "Português", data: require("./locales/pt-PT.json") }, + { lng: "ru-RU", label: "Русский", data: require("./locales/ru-RU.json") }, + { lng: "tr-TR", label: "Türkçe", data: require("./locales/tr-TR.json") }, + { lng: "ko-KR", label: "한국어", data: require("./locales/ko-KR.json") }, + { lng: "zh-TW", label: "繁體中文", data: require("./locales/zh-TW.json") }, ]; let currentLanguage = languages[0]; diff --git a/src/locales/de.json b/src/locales/de-DE.json similarity index 100% rename from src/locales/de.json rename to src/locales/de-DE.json diff --git a/src/locales/es.json b/src/locales/es-ES.json similarity index 100% rename from src/locales/es.json rename to src/locales/es-ES.json diff --git a/src/locales/fr.json b/src/locales/fr-FR.json similarity index 100% rename from src/locales/fr.json rename to src/locales/fr-FR.json diff --git a/src/locales/id.json b/src/locales/id-ID.json similarity index 100% rename from src/locales/id.json rename to src/locales/id-ID.json diff --git a/src/locales/ko.json b/src/locales/ko-KR.json similarity index 100% rename from src/locales/ko.json rename to src/locales/ko-KR.json diff --git a/src/locales/no.json b/src/locales/no-NO.json similarity index 100% rename from src/locales/no.json rename to src/locales/no-NO.json diff --git a/src/locales/pl.json b/src/locales/pl-PL.json similarity index 100% rename from src/locales/pl.json rename to src/locales/pl-PL.json diff --git a/src/locales/pt.json b/src/locales/pt-PT.json similarity index 100% rename from src/locales/pt.json rename to src/locales/pt-PT.json diff --git a/src/locales/ru.json b/src/locales/ru-RU.json similarity index 100% rename from src/locales/ru.json rename to src/locales/ru-RU.json diff --git a/src/locales/tr.json b/src/locales/tr-TR.json similarity index 100% rename from src/locales/tr.json rename to src/locales/tr-TR.json diff --git a/src/locales/zh.json b/src/locales/zh-CN.json similarity index 100% rename from src/locales/zh.json rename to src/locales/zh-CN.json diff --git a/src/locales/zh-TW.json b/src/locales/zh-TW.json new file mode 100644 index 00000000..ce628c59 --- /dev/null +++ b/src/locales/zh-TW.json @@ -0,0 +1,124 @@ +{ + "labels": { + "paste": "貼上", + "selectAll": "選擇全部", + "copy": "複製", + "copyAsPng": "複製為 PNG 到剪貼板", + "bringForward": "往前移動一層", + "sendToBack": "移動至最底層", + "bringToFront": "移動至最上層", + "sendBackward": "往後移動一層", + "delete": "刪除", + "copyStyles": "複製樣式", + "pasteStyles": "貼上樣式", + "stroke": "邊框", + "background": "背景", + "fill": "填充", + "strokeWidth": "邊框寬度", + "sloppiness": "Sloppiness", + "opacity": "透明度", + "fontSize": "字體大小", + "fontFamily": "字體", + "onlySelected": "Only selected", + "withBackground": "With Background", + "handDrawn": "手寫", + "normal": "正常", + "code": "程式碼", + "small": "Small", + "medium": "Medium", + "large": "Large", + "veryLarge": "Very Large", + "solid": "Solid", + "hachure": "Hachure", + "crossHatch": "Cross-Hatch", + "thin": "細", + "bold": "粗", + "extraBold": "特粗", + "architect": "Architect", + "artist": "Artist", + "cartoonist": "Cartoonist", + "fileTitle": "檔案名稱", + "colorPicker": "色彩選擇工具", + "canvasBackground": "Canvas 背景", + "drawingCanvas": "繪製 Canvas", + "layers": "圖層", + "language": "語系", + "createRoom": "分享即時協作會議", + "duplicateSelection": "複製所有已選擇的元素" + }, + "buttons": { + "clearReset": "重置 canvas", + "export": "輸出", + "exportToPng": "輸出成 PNG", + "exportToSvg": "輸出成 SVG", + "copyToClipboard": "複製到剪貼板", + "save": "儲存", + "load": "載入", + "getShareableLink": "取得共享連結", + "close": "關閉", + "selectLanguage": "選擇語系", + "scrollBackToContent": "滾動回到內容", + "zoomIn": "放大", + "zoomOut": "縮小", + "resetZoom": "重設縮放", + "menu": "選單", + "done": "完成", + "edit": "編輯", + "undo": "復原", + "redo": "重做", + "roomDialog": "分享即時協作會議", + "createNewRoom": "建立新的會議室" + }, + "alerts": { + "clearReset": "這將會清除整個 canvas。你確定嗎?", + "couldNotCreateShareableLink": "無法建立共享連結", + "importBackendFailed": "從後端導入失敗。", + "cannotExportEmptyCanvas": "無法輸出空白的 canvas。", + "couldNotCopyToClipboard": "無法複製到剪貼簿。嘗試使用 Chrome 瀏覽器。", + "decryptFailed": "無法解密資料。", + "uploadedSecurly": "上傳已通過 end-to-end 加密,意思是 Excalidraw 伺服器和第三方無法讀取其內容。" + }, + "toolBar": { + "selection": "選擇", + "rectangle": "長方形", + "diamond": "菱形", + "ellipse": "橢圓", + "arrow": "箭頭", + "line": "線條", + "text": "文字", + "lock": "繪圖後使所選工具保持活動狀態" + }, + "headings": { + "canvasActions": "Canvas actions", + "selectedShapeActions": "Selected shape actions", + "shapes": "Shapes" + }, + "hints": { + "linearElement": "Click to start multiple points, drag for single line", + "linearElementMulti": "按下 Escape 或 Enter 來完成", + "resize": "當你再調整大小時可以按住 SHIFT 來約束比例" + }, + "errorSplash": { + "headingMain_pre": "Encountered an error. Try ", + "headingMain_button": "reloading the page.", + "clearCanvasMessage": "If reloading doesn't work, try ", + "clearCanvasMessage_button": "clearing the canvas.", + "clearCanvasCaveat": " This will result in loss of work ", + "openIssueMessage_pre": "Before doing so, we'd appreciate if you opened an issue on our ", + "openIssueMessage_button": "bug tracker.", + "openIssueMessage_post": " Please include the following error stack trace (and if it's not private, also the scene content):", + "errorStack": "Error stack trace:", + "errorStack_loading": "Loading data. please wait...", + "sceneContent": "Scene content:" + }, + "roomDialog": { + "desc_intro": "你可以邀請其他人到你的目前的畫面與你合作。", + "desc_privacy": "別擔心,此會議使用 end-to-end 加密,因此無論你畫了什麼都會保持私密,甚至連我們的伺服器都無法看到。", + "button_startSession": "啟動會議", + "button_stopSession": "暫停會議", + "desc_inProgressIntro": "即時協作會議正在進行中。", + "desc_persistenceWarning": "注意,畫面的資料是透過 P2P 方式與協作者之間共享,不會保留在我們的伺服器。因此,如果所有人中斷連線時,將會遺失資料,除非將資料導出成檔案或是一個可共享的連結。", + "desc_shareLink": "與要協作的任何人分享此連結:", + "desc_exitSession": "停止會議將會中斷你與會議室的連線,但你可以繼續在本機端繼續處理工作。注意,這不會影響到其他人,他們仍然可以在他們自己的版本上繼續協作。" + } +}