まず最初に、Gopeed への貢献に興味を持っていただきありがとうございます。このガイドは、あなたが Gopeed の 開発に参加するための手助けとなるでしょう。
このプロジェクトのメインブランチは main ブランチのみです。Gopeed の開発に参加したい場合は、
まずこのプロジェクトをフォークし、フォークしたプロジェクトで開発を行ってください。開発が完了したら、
このプロジェクトに PR を提出し、main ブランチにマージしてください。
開発およびデバッグはウェブ上で行うことを推奨する。まずバックエンドのサービスを起動し、
コマンドライン go run cmd/api/main.go で起動する。サービスのデフォルトポートは 9999 で、
次にフロントエンドの flutter プロジェクトを debug モードで起動して実行します。
Flutter の翻訳ファイルは ui/flutter/lib/l10n にあります。app_en.arb を原文テンプレートとして、
app_<locale>.arb(例: app_de.arb、app_zh_TW.arb)を編集または追加してください。すべての言語で
英語テンプレートと同じメッセージ key が必要です。
翻訳するのはメッセージ値だけです。{count} や {name} など、中括弧内の変数名は変更しないでください。
@ で始まるメタデータ key は翻訳しません。変更した ARB ソースファイルだけをコミットし、
app_localizations*.dart は生成もコミットも不要です。PR の CI が全言語を検証し、国際化コードを生成して
統合結果を確認します。
以下の例では、ARB に記述する定義と、アプリが値を渡した後にユーザーが実際に見る表示を示します。
-
メッセージに変数を挿入する
ARB 定義:
"welcomeUser": "こんにちは、{name}"
最終表示:
name = 太郎の場合は「こんにちは、太郎」と表示されます。語順は変更できますが、{name}は残します。 -
数量に応じて表示を切り替える
ARB 定義:
"fileCount": "{count, plural, =0{ファイルなし} =1{1 個のファイル} other{{count} 個のファイル}}"
最終表示:
count = 0→「ファイルなし」count = 1→「1 個のファイル」count = 3→「3 個のファイル」
=0、=1、otherはそれぞれ 0、1、その他の数量を表します。各分岐の中で画面に表示される文字だけを翻訳します。 -
変数の値に応じて表示を切り替える
ARB 定義:
"taskState": "{state, select, running{実行中} paused{一時停止} other{不明}}"
最終表示:
state = running→「実行中」state = paused→「一時停止」- その他の値 →「不明」
running、paused、otherはアプリが渡す分岐値なので翻訳せず、その後の中括弧内にある表示文字だけを翻訳します。
コミットする前に dart format ./ui/flutter を実行し、コードを標準の dart フォーマットにしておくことを忘れないでください
api/models を編集したい場合は build_runner watcher をオンにします:
flutter pub run build_runner watch