-
-
Notifications
You must be signed in to change notification settings - Fork 1
Setup
本次專案建立翻譯流程與測試網站,使用 Weblate 與 Github 搭建翻譯平台,協助譯者與校閱者在翻譯、校閱過程中的溝通與作業。
Weblate 主要是整合版本控制(如:git)在網頁介面上編輯的翻譯工具且支援多格式的輸出,並可共用字彙庫,方便譯者達成翻譯一致信。
Weblate 使用 GNU GPLv3+ 方式授權釋出,本次專案使用「自行架設」方案建構翻譯平台。https://weblate.org/zh-hant/hosting/
目前主要開源軟體在地化使用 weblate 為翻譯平台:openSUSE, Mattermost, F-Droid, Tor Project … 與約 900 開源專案使用。https://hosted.weblate.org/projects/
GitHub 是一個線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體並支援建立私有倉庫。
本次專案使用 Weblate (docker-compose) 版本建立,並依軟體基本需求,在 AWS EC2 建立一個 t4g.medium instance、Ubuntu 22.04.1 LTS(20 GB),並全程連線使用 TLS1.3(憑證發行商 Let's Encrypt)確保資料傳遞安全與避免網絡連線被攔截和竄改。
- AWS EC2:t4g.medium
- OS/Arch: Ubuntu 22.04.1 LTS, linux/arm64
- Docker Engine - Community: 20.10.21
- Weblate (docker-compose): 4.14.2 https://github.com/WeblateOrg/docker-compose
本次專案使用 weblate (docker compose) 版本,可直接使用 git 將此版本下載。
git clone https://github.com/WeblateOrg/docker-compose.git
cd docker-compose調整以下設定檔至合適的資訊:
version: '3'
services:
weblate:
image: weblate/weblate:latest
ports:
- 127.0.0.1:8787:8080
environment:
WEBLATE_DEBUG: 0
WEBLATE_ADMIN_EMAIL: {admin mail}
WEBLATE_ADMIN_PASSWORD: {admin password}
WEBLATE_SERVER_EMAIL: {server admin mail}
WEBLATE_DEFAULT_FROM_EMAIL: {sender mail}
WEBLATE_EMAIL_HOST: email-smtp.us-east-1.amazonaws.com
WEBLATE_EMAIL_HOST_USER: {AWS SES API Token}
WEBLATE_EMAIL_HOST_PASSWORD: {AWS SES API Key}
WEBLATE_TIME_ZONE: "Asia/Taipei"
WEBLATE_SITE_DOMAIN: {website domain}
WEBLATE_ENABLE_HTTPS: 1
WEBLATE_REGISTRATION_OPEN: 0
WEBLATE_WORKERS: 1
CELERY_MAIN_OPTIONS: --concurrency=1
CELERY_NOTIFY_OPTIONS: --concurrency=1
CELERY_TRANSLATE_OPTIONS: --concurrency=1設定檔完成後可以在 weblate 資料夾建立與啟動。
docker compose up –build第一次執行需要等待些許時間初始化。
- 檔案格式:
JSON 巢狀結構 - 語言篩選:
^(en|zh_Hant)$ - 檔案遮罩:
src/i18n/strings/*.json - 新翻譯模版:
src/i18n/strings/en_EN.json
這裡以 element-web 建立 Demo 測試網站,其專案的翻譯字串來自 matrix-react-sdk 專案。由於 Element 翻譯流程是直接到官方上游翻譯平台直接貢獻,雖然官方會規律釋出新功能與更新翻譯文檔,但是無明確的釋出時程可供參考,因此當我們在官方上游翻譯完成後,會將翻譯檔案匯出再匯入到團隊臨時的 matrix-react-sdk 專案並合併至測試網站。
mv ./config.sample.json ./config.jsondocker build -t element-web:demo \
--build-arg USE_CUSTOM_SDKS=true \
--build-arg REACT_SDK_REPO="https://github.com/moda-gov-tw/matrix-org.matrix-react-sdk.git" \
--build-arg REACT_SDK_BRANCH="manually_i18n" \
--build-arg JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git" \
--build-arg JS_SDK_BRANCH="develop" \
.其中 REACT_SDK_REPO 與 REACT_SDK_BRANCH 則是指定到團隊臨時的 matrix-react-sdk 專案抽換新的翻譯文檔案。
docker run -p 8887:80 \
-v $(pwd)/config.json:/app/config.json \
element-web:demo