Skip to content
Hunger edited this page Apr 1, 2024 · 2 revisions

本次專案建立翻譯流程與測試網站,使用 Weblate 與 Github 搭建翻譯平台,協助譯者與校閱者在翻譯、校閱過程中的溝通與作業。

工作平台簡介

Weblate

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

GitHub 是一個線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體並支援建立私有倉庫。

翻譯平台建構

本次專案使用 Weblate (docker-compose) 版本建立,並依軟體基本需求,在 AWS EC2 建立一個 t4g.medium instance、Ubuntu 22.04.1 LTS(20 GB),並全程連線使用 TLS1.3(憑證發行商 Let's Encrypt)確保資料傳遞安全與避免網絡連線被攔截和竄改。

Weblate 下載

本次專案使用 weblate (docker compose) 版本,可直接使用 git 將此版本下載。

git clone https://github.com/WeblateOrg/docker-compose.git
cd docker-compose

Weblate 設定檔

調整以下設定檔至合適的資訊:

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 啟動

設定檔完成後可以在 weblate 資料夾建立與啟動。

docker compose up –build

第一次執行需要等待些許時間初始化。

建立翻譯設定檔

來源

來源 https://github.com/nextcloud/ios
分支(branch) master
提交(commit) 9b5e1eae5748e26594f61563fc16045780d2b9f5
版本 4.9.3
日期 2023/12/04

翻譯

  • 來源:

  • 「iOSClient/Supporting Files/en.lproj/Localizable.strings」

  • 「iOSClient/Supporting Files/zh-Hant-TW.lproj/Localizable.strings」

  • po檔案:

  • 「locales/en.po」

  • 「locales/zh_Hant.po」

  • 將「來源」轉換成「*.po」檔案:

執行「專案目錄/python/toPo.py」

正常會產生在「專案目錄/locales」底下

檔案為 en.po 、 zh_Hant.po。

  • 將「*.po」覆蓋回「Localizable.strings」:

執行「專案目錄/python/toStrings.py」

正常會覆蓋掉en與zh-Hant-TW底下的Localizable.strings。

注意:會直接覆蓋掉來源檔。

Weblate 元件

組件名稱 ios
檔案格式 gettext PO 檔 (單語)
檔案遮罩 locales/*.po
單語言的基底語言檔 locales/en.po
語言篩選 ^(zh_TW)$

建立Demo測試

安裝Xcode 15.3

https://developer.apple.com/xcode/

下載Nextcloud iOS

git clone https://github.com/nextcloud/ios.git

開啟 Nextcloud iOS 專案

開啟 nextcloud.ios 專案目錄

清除Build Folder

選擇 product > Clean Build Folder… 進行建置目錄清除

設定並下在GoogleService-info

在Firebase developer console上設訂好專案後下載GoogleService-info.plist放進nextclodu.ios的專案目錄根目錄中

補安裝Carthage

如果因為缺乏Carthage framework因而無法進行編譯,可開啟terminal並在專案目中執行 carthage build –use-xcframeworks

設定模擬器目標並執行

Run/Debug 設定好目標模擬器
執行專案後會將APP安裝於模擬器並開始執行