外観
翻訳コンパイル自動化
プラグインの translations/locale_XX.ts から .qm を生成する手順と、GitHub Actions によるリリース時コンパイルです。
ソーススクリプトはリポジトリの tools/i18n/ にあります。
プラグイン翻訳ツール(i18n)
MuseScore レガシー QML プラグイン向けに、translations/locale_XX.ts の更新と .qm へのコンパイルを自動化します。
| スクリプト | 役割 |
|---|---|
compile-translations.py | lupdate / lrelease を実行 |
extract-musescore-contexts.py | 本体 .ts からコンテキスト一覧を再生成 |
compile-translations.ps1 / .sh | 上記 Python の薄いラッパ |
関連ドキュメント: 国際化開発ガイド / 本体翻訳コンテキスト一覧
前提
- Python 3.9+
lupdateとlreleaseが PATH にあること- Windows: Qt Online Installer で Qt 6 を入れ、
...\Qt\6.x.x\msvc...\binを PATH へ - Ubuntu:
sudo apt-get install -y qt6-l10n-tools - macOS: Qt インストール後に
binを PATH へ
- Windows: Qt Online Installer で Qt 6 を入れ、
ローカルでの使い方
プラグイン構成例:
myplugin/
myplugin.qml
translations/
locale_ja.tsリポジトリルート、またはプラグイン群の親ディレクトリで:
powershell
# Windows
python tools/i18n/compile-translations.py --root .
python tools/i18n/compile-translations.py --plugin .\myplugin --languages ja,de
# 抽出のみ / コンパイルのみ
python tools/i18n/compile-translations.py --lupdate-only --languages ja
python tools/i18n/compile-translations.py --lrelease-onlybash
# macOS / Linux
python3 tools/i18n/compile-translations.py --root .
./tools/i18n/compile-translations.sh --plugin ./myplugin --languages ja,detranslations/ があるディレクトリをプラグインルートとみなして走査します。.ts が無ければ locale_<lang>.ts のスケルトンを作成してから lupdate します。
GitHub Actions(リリース時に自動コンパイル)
テンプレートはリポジトリ内の .github/workflows/compile-plugin-translations.yml です(private のため Web 上の直リンクは置きません)。
動作概要:
release公開時(または手動workflow_dispatch)に起動- Ubuntu 上で
qt6-l10n-toolsを導入 compile-translations.py --lrelease-only(または update+release)を実行- 生成された
**/translations/*.qmを Release 資産としてアップロード
プラグイン専用リポジトリにコピーする場合:
tools/i18n/と workflow をリポジトリへ置く- ソース(
.qml)とtranslations/*.tsを Git 管理する(.qmは Action で生成でも可) - GitHub で Release を作成する →
.qmが添付される
.qm をリポジトリにコミットし続けたい場合は、別ジョブで stefanzweifel/git-auto-commit-action 等を足すか、ローカルでコンパイルしてから push してください。リリース資産として配るだけならコミットは不要です。
本体コンテキスト一覧の更新
powershell
python tools/i18n/extract-musescore-contexts.pyshare/locale/musescore_en.ts と instruments_en.ts を読み、docs/translation-contexts.md の一覧表を更新します。