Kenshi Guide

如何進行中文翻譯 for Kenshi

如何進行中文翻譯

Overview

這是一篇將 Kenshi 的文件翻譯成中文的指南

感謝與參考資料

首先要感謝 AquariusBlack 的協助和討論,AquariusBlack 更是提供了簡體中文已經翻譯好的檔案作為參照。
[link]

參考

  • Guide to Translations[link]

pot 更新庫

翻譯前,先清除相關的檔案,避免 pot 合併錯誤,包括

  • __translations/
  • locale/zh_TW/

開啟遊戲,進入編輯模式(Launch Game Editor)

  • 到 Translation mode 區塊,勾選 Enable,選擇 New Translation,選擇繁體中文,點擊 DONE
  • 這時候會進入 FCS,點擊選單的 Translations,勾選 Export dialogue,點擊 Export

這時候檔案就會產生在 __translations/zh_TW/ 底下,包括

  • gamedata.pot
  • dialogue/ – 包括近千個 pot 檔案

這時候再把遊戲目錄的 locale/en_GB/LC_MESSAGES/main.pot 也拷貝出來

  • locale/en_GB/LC_MESSAGES/main.pot

這樣子更新翻譯所需要的檔案就已經完成了

  • __translations/zh_TW/gamedata.pot
  • __translations/zh_TW/dialogue/ – 包括近千個 pot 檔案
  • locale/en_GB/LC_MESSAGES/main.pot

po 翻譯庫

如果是完全沒翻譯過的檔案,可以直接把 .pot 改成 .po,如果是有翻譯的,就需要合併

  • msgmerge -U old.po new.pot

new.pot 是從 __translation/ 裡面新產生的檔案, old.po 是翻譯好的,這時要把 new.pot 新增的翻譯項目合併,產生為 new.po 後,再覆蓋回 old.po

因為合併需要對所有的 pot+po,所以建議使用程序來更新

翻譯完成後

  • gamedata.po
  • dialogue/ – 包括近千個 po 檔案
  • LC_MESSAGES/main.po

接下來需要 Forgotten Construction Set(FCS) 來把檔案匯入,將

  • gamedata.po
  • dialogue/ – 包括近千個 po 檔案

拷貝回遊戲的 __translation/zh_TW/,使用 Translations 的 Import 將翻譯匯入,會利用 gamedata.po 和 dialogue/ 下的所有 po 檔案,更新 __translation/zh_TW/zh_TW.translation

發布

將 __translation/zh_TW/zh_TW.translation 拷貝到發布目錄

main.pot 需要用指令轉為 main.mo

  • msgfmt LC_MESSAGES/main.po -o LC_MESSAGES/main.mo

這時候還有一些檔案是不在 pot 翻譯範圍的,像是小秘訣(tips.txt)

而中文字體也會需要額外加入,檔案要放在 gui/fonts/ 並且編輯該目錄下的 kenshi_fonts.xml

工作坊發布需要遊戲工具協助,而 Kenshi 的功能也是做在 FCS 裡面

開啟遊戲,進入編輯模式(Launch Game Editor)

  • 點擊 New mod,輸入名稱,點擊目錄,將上述的檔案結構拷貝到該 mod 目錄下
  • 點擊發布取得工作坊編號,這時候就發布完成了

發布目錄規範

到 mods/ 的目錄結構,放這邊可以和 FCS 上傳共用,一般都是放在這

  • mod/locale/zh_TW/zh_TW.translation
  • mod/locale/zh_TW/LC_MESSAGES/main.mo
  • mod/tips.txt
  • mod/gui/fonts/kenshi_fonts.xml
  • mod/gui/fonts/SourceHanSansTC-Medium.otf

SourceHanSansTC-Medium.otf 為思源黑體 2.0 [link]

程式自動化

建立 po 目錄當作工作目錄: merge.php

  • msgmerge po/locale/zhTW/LC_MESSAGES/main.po locale/en_GB/LC_MESSAGES/main.pot
  • msgmerge po/locale/zhTW/gamedata.po __translation/zh_TW/gamedata.pot
  • loop: msgmerge po/locale/zhTW/dialogue/ __translation/zh_TW/dialogue/

建立 mod 目錄當作發布目錄: release.php

  • msgfmt po/locale/zh_TW/LC_MESSAGES/main.po -o mod/locale/zh_TW/LC_MESSAGES/main.mo
  • cp __translation/zh_TW/zh_TW.translation mod/locale/zh_TW/zh_TW.translation
  • cp po/*.txt mod/
  • cp -r gui/ mod/

Github: [link]

SteamSolo.com