diff --git a/src/containers/App.js b/src/containers/App.js
index 743e981..3e863e6 100644
--- a/src/containers/App.js
+++ b/src/containers/App.js
@@ -29,6 +29,7 @@ import DocPass from '@rsuite/icons/DocPass';
import InfoOutline from '@rsuite/icons/InfoOutline';
import GlobalIcon from '@rsuite/icons/Global';
import { CgDarkMode } from 'react-icons/cg';
+import translations from '../translations/translations.json';
import SummaryPage from '../components/pages/dashboard';
import TestRunDetailsPage from '../components/pages/test-run';
import TestRunsComparePage from '../components/pages/test-run-compare';
@@ -204,9 +205,7 @@ const App = function (props) {
} title={}>
- setLanguage('en')} href="/">English
- setLanguage('nl')} href="/">Nederlands
- setLanguage('th')} href="/">ไทย
+ { translations.map((translation, index) => ( setLanguage(translation.code)} href="/">{translation.text})) }
} title={}>
setTheme('light')}>
diff --git a/src/translations/cn.json b/src/translations/cn.json
new file mode 100644
index 0000000..41e591f
--- /dev/null
+++ b/src/translations/cn.json
@@ -0,0 +1,224 @@
+{
+ "nav.dashboard": "儀表板",
+ "nav.execution-metrics": "指標",
+ "nav.screenshot-library": "螢幕截圖庫",
+ "nav.language": "語言",
+ "nav.theme": "主題色調",
+ "nav.theme.light": "淺色",
+ "nav.theme.dark": "深色",
+ "nav.about": "關於 Angles",
+
+ "app.utils.duration.seconds": "{seconds} 秒",
+ "app.utils.duration.minutes": "{minutes} 分鐘",
+ "app.utils.duration.hours": "{hours} 小時",
+ "app.utils.duration.not-started": "未啟動",
+ "app.utils.date-range-picker.number-of-days": "過去 {days} 天",
+
+ "app.retrieving-teams": "正在檢索團隊...",
+ "app.retrieving-teams-error": "出了點問題 [{teamsError}]",
+
+ "app.result.pass": "通過",
+ "app.result.fail": "失敗",
+ "app.result.skipped": "已跳過",
+ "app.result.error": "錯誤",
+ "app.result.total": "總計",
+
+ "page.home.bread-crumb" : "首頁",
+
+ "page.dashboard.message.retrieving-builds": "正在擷取 {teamName} 的版本...",
+ "page.dashboard.filters.label.team": "團隊",
+ "page.dashboard.filters.label.period": "期間",
+ "page.dashboard.filters.label.display-limit": "顯示限制",
+
+ "page.dashboard.filters.label.environments": "環境",
+ "page.dashboard.filters.label.components": "元件",
+
+ "page.dashboard.panel.total-test-runs": "測試運行總數",
+ "page.dashboard.panel.total-test-executions": "測試執行總數",
+ "page.dashboard.panel.total-execution-time": "總執行時間",
+
+ "page.dashboard.chart.barchart.pass": "透過",
+ "page.dashboard.chart.barchart.skipped": "已跳過",
+ "page.dashboard.chart.barchart.error": "錯誤",
+ "page.dashboard.chart.barchart.fail": "失敗",
+ "page.dashboard.chart.barchart.execution-time-seconds": "執行時間(秒)",
+
+ "page.dashboard.builds-table.header.build-details": "建構的詳細資料",
+ "page.dashboard.builds-table.header.date-time": "日期/時間",
+ "page.dashboard.builds-table.header.component": "元件",
+ "page.dashboard.builds-table.header.environment": "環境",
+ "page.dashboard.builds-table.header.result": "結果",
+
+ "page.dashboard.menu.compare-test-runs": "比較測試運行",
+ "page.dashboard.menu.toggle-keep-flag": "切換保留標誌",
+ "page.dashboard.menu.clear-selection": "清除選擇",
+ "page.dashboard.menu.one-select-message": "請選擇至少一項測試執行",
+
+ "page.dashboard.execution-barchart.execution-time-seconds": "執行時間(秒)",
+ "page.dashboard.execution-bar-chart.title": "測試運行",
+ "page.dashboard.execution-pie-chart.title": "測試運行總體狀態",
+
+ "page.metrics.bread-crumb": "指標",
+ "page.metrics.filters.labels.team": "團隊",
+ "page.metrics.filters.labels.component": "元件",
+ "page.metrics.filters.labels.period": "期間",
+ "page.metrics.filters.labels.group-by-period": "分組依據",
+ "page.metrics.filters.button.retrieve-metrics": "檢索指標",
+ "page.metrics.tab.execution-metrics": "執行指標",
+ "page.metrics.tab.platform-metrics": "平台指標",
+
+ "page.metrics.execution-metrics-summary.label.period": "期間",
+ "page.metrics.execution-metrics-summary.label.number-of-tests":"測試數量",
+ "page.metrics.execution-metrics-summary.label.number-of-runs": "測試運行次數",
+ "page.metrics.execution-metrics-summary.label.number-of-executions": "執行次數",
+ "page.metrics.execution-metrics-summary.label.result": "結果",
+ "page.metrics.execution-metrics-summary.label.duration": "持續時間",
+
+ "page.metrics.execution-metrics-bar-chart.title": "按結果分組的執行指標",
+ "page.metrics.execution-metrics-bar-chart.yaxis-title": "執行次數",
+ "page.metrics.execution-metrics-phase-bar-chart.title": "按階段分組的執行指標",
+ "page.metrics.execution-metrics-phase-bar-chart.yaxis-title": "執行次數",
+ "page.metrics.platform-distribution-pie-chart.title": "按平台劃分的總體執行分佈",
+ "page.metrics.platform-distribution-bar-chart.title": "依平台執行分佈",
+ "page.metrics.platform-distribution-bar-chart.yaxis-title": "平台",
+ "page.metrics.platform-distribution-bar-chart.xaxis-title": "執行次數",
+
+ "page.metrics.platform-metrics-summary.label.platform":"平台",
+ "page.metrics.platform-metrics-summary.label.version":"版本",
+ "page.metrics.platform-metrics-summary.label.device":"裝置",
+ "page.metrics.platform-metrics-summary.label.total":"總計",
+ "page.metrics.platform-metrics-summary.label.result":"結果",
+ "page.metrics.platform-metrics-summary.label.duration":"持續時間",
+
+ "page.metrics.metrics-test-table.label.unique-testcases": "每個階段的唯一測試案例",
+ "page.metrics.metrics-test-table.label.phase": "階段",
+ "page.metrics.metrics-test-table.label.test": "測試",
+ "page.metrics.metrics-test-table.no-tests-found": "找不到測試",
+
+ "page.test-run.bread-crumb": "測試運行",
+ "page.test-run.steps-header.start": "開始",
+ "page.test-run.steps-header.duration": "持續時間",
+ "page.test-run.steps-header.end": "結束",
+ "page.test-run.menu.enable-keep-flag": "啟用保留標誌",
+ "page.test-run.menu.disable-keep-flag": "停用保留標誌",
+ "page.test-run.menu.download-report": "下載 html 格式的報表",
+ "page.test-run.icons.team.whisper": "團隊",
+ "page.test-run.icons.component.whisper": "元件",
+ "page.test-run.icons.phase.whisper": "測試階段",
+ "page.test-run.icons.artifacts.whisper": "與此測試運行相關的工件數量。",
+ "page.test-run.icons.keep-lock.whisper": "鎖定時,測試運行不會被夜間 cronjob 清理。",
+ "page.test-run.icons.screenshots.whisper": "此測試運行有 {numberOfScreenshots} 個螢幕截圖",
+ "page.test-run.icons.download-report.whisper": "下載此測試執行的 HTML 報表。",
+ "page.test-run.execution-pie-chart.title": "總體執行指標",
+ "page.test-run.feature-distribution-pie-chart.title": "特徵分佈指標",
+
+ "page.test-run-compare.bread-crumb": "比較測試運行",
+
+ "page.screenshot-library.bread-crumb": "螢幕截圖庫",
+ "page.screenshot-library.search-options.label.view": "檢視",
+ "page.screenshot-library.search-options.label.tag": "標籤",
+ "page.screenshot-library.search-options.label.or": "或",
+ "page.screenshot-library.search-options.label.period": "期間",
+ "page.screenshot-library.search-options.label.platform": "平台",
+ "page.screenshot-library.search-options.button.search-screenshots": "搜尋螢幕截圖",
+
+ "page.screenshot-library.search-options.dropdown.yesterday": "昨天",
+ "page.screenshot-library.search-options.dropdown.last-7-days": "過去 7 天",
+ "page.screenshot-library.search-options.dropdown.last-14-days": "過去 14 天",
+ "page.screenshot-library.search-options.dropdown.last-30-days": "過去 30 天",
+ "page.screenshot-library.search-options.dropdown.last-3-months": "過去 3 個月",
+ "page.screenshot-library.search-options.dropdown.last-6-months": "過去 6 個月",
+
+ "page.test-execution-history.bread-crumb": "測試執行歷史記錄",
+ "page.test-execution-history.header.suite": "套件",
+ "page.test-execution-history.messages.retrieving-executions": "檢索測試執行",
+ "page.test-execution-history.charts.execution-pie-chart.title": "總體執行指標",
+ "page.test-execution-history.charts.execution-timeline-chart.title" : "執行時間",
+ "page.test-execution-history.charts.execution-timeline-chart.yaxis-label": "執行時間(秒)",
+
+ "page.about.bread-crumb": "關於",
+ "page.about.header": "關於角度",
+ "page.about.about-angles": "Angles 是一個開源儀表板,可用於存儲來自不同框架的自動測試運行的結果和截圖。",
+ "page.about.about-api": "透過提供明確定義的 {apiLink},任何框架都可以適應將其測試結果存儲在Angles中,使用提供的客戶端之一(或直接使用API)。",
+ "page.about.about-github": "有關 Angles 的更多信息,請訪問頁面:{githubLink}",
+
+ "page.not-found.bread-crumb": "找不到",
+ "page.not-found.description": "哎呀,糟糕,我們無法找到您要找的東西。點選 {homeLink} 返回主頁。",
+ "page.not-found.home-link-text": "此處",
+
+ "common.component.suite-table.header.suite": "套件",
+ "common.component.suite-table.header.test": "測試",
+ "common.component.suite-table.header.duration": "持續時間",
+ "common.component.suite-table.header.total": "總計",
+ "common.component.suite-table.header.collapse-all": "折疊所有測試案例和操作",
+ "common.component.suite-table.header.expand-all": "展開所有測試案例",
+ "common.component.suite-table.header.expand-all-actions": "展開所有測試案例和操作",
+ "common.component.suite-table.icon.test-history": "查看測試的執行歷史記錄",
+
+ "common.component.screenshot-view.header": "螢幕截圖檢視器",
+ "common.component.screenshot-view.tabs.enable-alert": "要啟用「歷史記錄」和「與基線比較」選項卡,請在上傳螢幕截圖時提供視圖和平台詳細資訊",
+ "common.component.screenshot-view.tabs.label.image": "螢幕截圖",
+ "common.component.screenshot-view.tabs.label.history": "歷史記錄",
+ "common.component.screenshot-view.tabs.label.overlay-with-baseline": "與基線疊加",
+ "common.component.screenshot-view.tabs.label.side-by-side": "與基線並排",
+
+ "common.component.screenshot-view.tabs.screenshot.button.make-baseline-image": "製作基線圖片",
+ "common.component.screenshot-view.tabs.screenshot.button.is-baseline-image": "這是基線圖片",
+ "common.component.screenshot-view.tabs.screenshot.button.generate-dynamic-baseline": "產生動態基線",
+ "common.component.screenshot-view.tabs.screenshot.button.delete-screenshot": "刪除螢幕截圖",
+ "common.component.screenshot-view.tabs.screenshot.button.delete-screenshot-description": "僅適用於未配置為基線的動態基線。",
+ "common.component.screenshot-view.tabs.screenshot.message.retrieving-screenshot": "正在檢索螢幕截圖",
+ "common.component.screenshot-view.tabs.screenshot.message.retrieving-screenshot-error": "無法擷取圖片。請重新整理頁面並重試。",
+
+ "common.component.screenshot-view.tabs.history.message.loading-history": "正在載入歷史記錄...",
+ "common.component.screenshot-view.tabs.history.label.baseline": "基線螢幕截圖",
+ "common.component.screenshot-view.tabs.history.label.view": "檢視",
+ "common.component.screenshot-view.tabs.history.label.date": "日期",
+ "common.component.screenshot-view.tabs.history.label.resolution": "解析度",
+ "common.component.screenshot-view.tabs.history.label.platform": "平台",
+ "common.component.screenshot-view.tabs.history.label.device": "裝置",
+
+ "common.component.screenshot-view.tabs.side-by-side.label.current-image-baseline": "目前影像(包括基線)",
+ "common.component.screenshot-view.tabs.side-by-side.label.current-image": "目前影像",
+ "common.component.screenshot-view.tabs.side-by-side.label.baseline": "基線",
+ "common.component.screenshot-view.tabs.side-by-side.message.retrieving-baseline-screenshot": "正在檢索基線螢幕截圖。",
+ "common.component.screenshot-view.tabs.side-by-side.message.retrieving-baseline-screenshot-error": "無法擷取基線影像。請重新整理頁面並重試。",
+ "common.component.screenshot-view.tabs.side-by-side.message.retrieving-screenshot": "正在檢索螢幕截圖。",
+ "common.component.screenshot-view.tabs.side-by-side.message.retrieving-screenshot-error": "無法擷取圖片。請重新整理頁面並重試。",
+
+ "common.component.screenshot-view.tabs.baseline.label.current-image-baseline": "目前影像(包括基線)",
+ "common.component.screenshot-view.tabs.baseline.label.baseline-compare": "基線比較",
+
+
+ "common.component.screenshot-view.tabs.baseline.button.redo-compare-description": "與基線重做比較。",
+ "common.component.screenshot-view.tabs.baseline.button.edit-ignore-blocks": "編輯忽略區塊",
+ "common.component.screenshot-view.tabs.baseline.button.save-ignore-blocks": "儲存忽略區塊",
+ "common.component.screenshot-view.tabs.baseline.button.cancel-changes": "取消更改",
+ "common.component.screenshot-view.tabs.baseline.message.no-baseline-set": "尚未為此視圖和 deviceName 或瀏覽器組合選擇基線。要選擇基線,請導航至要作為基線的圖片然後單擊\"製作基線圖像\"按鈕",
+ "common.component.screenshot-view.tabs.baseline.message.loading-baseline-compare": "正在載入基線比較",
+ "common.component.screenshot-view.tabs.baseline.message.loading-baseline-error": "無法擷取基線比較。",
+
+ "common.component.screenshot-details-table.label.view": "檢視",
+ "common.component.screenshot-details-table.label.view-link": "其他平台",
+ "common.component.screenshot-details-table.label.view-link-description": "查找視圖 {view} 的所有最新螢幕截圖,按平台分組。",
+ "common.component.screenshot-details-table.label.no-view": "未提供視圖",
+ "common.component.screenshot-details-table.label.date": "日期",
+ "common.component.screenshot-details-table.label.baseline-date": "基準日期",
+ "common.component.screenshot-details-table.label.mismatch": "不符",
+ "common.component.screenshot-details-table.label.mismatch-result": "{mismatchPercentage}% (分析時間: {time} ms)",
+ "common.component.screenshot-details-table.label.resolution": "解析度",
+ "common.component.screenshot-details-table.label.platform": "平台",
+ "common.component.screenshot-details-table.label.no-platform": "未提供平台",
+ "common.component.screenshot-details-table.label.platform-version": "平台版本",
+ "common.component.screenshot-details-table.label.device": "裝置",
+ "common.component.screenshot-details-table.label.browser": "瀏覽器",
+ "common.component.screenshot-details-table.label.no-browser": "未提供瀏覽器",
+ "common.component.screenshot-details-table.label.browser-version": "瀏覽器版本",
+ "common.component.screenshot-details-table.label.no-browser-version": "未提供瀏覽器版本",
+ "common.component.screenshot-details-table.label.baseline": "基線",
+ "common.component.screenshot-details-table.label.tags": "標籤",
+ "common.component.screenshot-details-table.label.tags-description": "查找帶有標籤 \"{tag}\" 的所有最新螢幕截圖,按視圖分組。",
+
+ "common.yes": "是",
+ "common.no": "否"
+}
diff --git a/src/translations/translations.json b/src/translations/translations.json
new file mode 100644
index 0000000..c1beff3
--- /dev/null
+++ b/src/translations/translations.json
@@ -0,0 +1,6 @@
+[
+ { "code": "en", "text": "English" },
+ { "code": "nl", "text": "Nederlands" },
+ { "code": "th", "text": "ไทย" },
+ { "code": "cn", "text": "語言" }
+]
\ No newline at end of file