Skip to content

仕様など

yukineko edited this page Jun 30, 2022 · 6 revisions

BetterJapaneseは複数人で共同でCookieClickerの翻訳を行い、公式の日本語訳を置き換えることが出来る、CookieClicker用のModです。
翻訳ファイルはGitHub Pages上でホストされるため、翻訳ファイルの更新をする度にSteamWorkshopの更新を行う必要がなく、翻訳をすばやく追加/更新/リリースすることが出来るという特徴があります。

開発

Release/Developブランチ

主にModの開発/翻訳に使用するファイルを扱っています。

locales/*.json5

localesディレクトリ内には、対象の言語の翻訳ファイルが格納されています。
翻訳ファイルはjson5で管理されているため、コメントアウトすることも可能です。
翻訳を行う際は、こちらのファイルを編集します。

src/common/main.js

CookieClicker起動時に、ブラウザ(Electron)のlocalStorageに保存されている翻訳データのハッシュを確認し、このリポジトリ上でホストされている翻訳データのハッシュと異なれば、新しい翻訳データをダウンロードしてlocalStorageに保存します。 このため、翻訳が更新されてから反映されるまでに1度リロードを挟む必要があります。

src/steam/*

Steam版Modのビルド時に同梱される静的ファイル類です。

src/steam/lang.js

Steam版の翻訳置き換え用スクリプトです。
ブラウザのlocalStorageに保存されている翻訳データを確認し、翻訳データが存在すればModLanguage()で日本語訳を置き換えます。

Note
以前はGitHubPages上にホストされているtranslate.jsonをそのままfetchし、ModLanguageで反映させようとしていましたが、この手法だとデータの取得に500msほど掛かり、DOMの構築が先に終わってしまうため、一部の翻訳が正しく適応されないという問題が発生していました。
そのため、現在のようなlocalStorageに一旦保存するという仕様になっています。

src/web/*

Web版Mod用のファイル類です。
このディレクトリにあるファイルはビルド時に pages.yukineko.me/better-japanese に自動的にデプロイされます。

src/web/mod.js

Web版Modの翻訳置き換え用スクリプトです。
翻訳を置き換えた後にmain.jsを読み込みます。

src/web/BetterJapanese.user.js

Web版ModのUserScriptです。

src/web-embed/JA.js

セルフホスト用のWeb版Modの翻訳置き換え用スクリプトです。
翻訳を置き換えた後にmain.jsを読み込みます。

tools/*.js

npmのscriptやGithubActionsで使用するスクリプト類です。

.github/workflows/*.yml

後述するGithubActions用のファイルです。

gh-pagesブランチ

Modで使用する翻訳ファイルなどを扱っています。

translate.json

Mod内で使用している翻訳データです。

api/release.json

Mod内で使用している、翻訳データ更新確認用のファイルです。

GitHub Actions

このリポジトリではGitHub Actionsを利用しているため、Modのソースコード、または翻訳ファイルが更新された際に自動的に以下の処理を行います。

  • package.jsonに記載されているバージョンのタグがこのリポジトリに存在しなかった場合は新しいバージョンがリリースされます。
  • 翻訳ファイル(locales/*.json5)に変更があった場合には翻訳ファイルがビルドされ、新しい翻訳データがgh-pagesでリリースされます。