一键导入
sync-translations
日本語の翻訳ファイル(ja/translation.json)から他の言語ファイルに不足しているキーを同期し、READMEの変更も多言語READMEに反映する。翻訳キーの追加、翻訳ファイルの同期、i18nキーの更新、READMEの多言語同期時に使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
日本語の翻訳ファイル(ja/translation.json)から他の言語ファイルに不足しているキーを同期し、READMEの変更も多言語READMEに反映する。翻訳キーの追加、翻訳ファイルの同期、i18nキーの更新、READMEの多言語同期時に使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
aituber-kitでdevelop=>mainのPRをマージし、新しいマイナーバージョンをリリースする。フッターのver表記更新、PRチェックとCodeRabbit reviewThreads確認、PRマージ、ローカルmain最新化、軽量タグ作成・push、CodeRabbit文を除外したGitHub Release発行時に使用。
aituber-kitでdevelop=>mainのPRをマージし、新しいマイナーバージョンをリリースする。フッターのver表記更新、PRチェックとCodeRabbit reviewThreads確認、PRマージ、ローカルmain最新化、軽量タグ作成・push、CodeRabbit文を除外したGitHub Release発行時に使用。
aituber-kitでdevelopからmainへ向けるリリース用プルリクエストを作成・更新する。過去のdevelop=>main PR形式を参考に、PR本文を新機能/改善/バグ修正/テスト/ドキュメント・翻訳/その他の日本語セクションで作成し、CodeRabbit自動生成ブロックは含めない。developからmainへのPR作成、リリースPR作成、Develop => main PR作成時に使用。
aituber-kit-docsのドキュメントサイトを最新バージョンに更新する。バージョンごとの差分を分析し、日本語→英語→中国語の順で3言語のドキュメントを更新する。ドキュメント更新、docs更新、バージョンアップ対応、リリースノート反映などの作業で使用する。
全AIプロバイダーのAPIエンドポイント(チャット・TTS・STT・Embedding)を動作確認し、レポートを出力する。
日本語の翻訳ファイル(ja/translation.json)から他の言語ファイルに不足しているキーを同期し、READMEの変更も多言語READMEに反映する。翻訳キーの追加、翻訳ファイルの同期、i18nキーの更新、READMEの多言語同期時に使用。
| name | sync-translations |
| description | 日本語の翻訳ファイル(ja/translation.json)から他の言語ファイルに不足しているキーを同期し、READMEの変更も多言語READMEに反映する。翻訳キーの追加、翻訳ファイルの同期、i18nキーの更新、READMEの多言語同期時に使用。 |
| user-invocable | true |
日本語の翻訳ファイル(locales/ja/translation.json)をマスターとして、他の言語ファイルに不足しているキーを同期します。
この .agents/skills/sync-translations/SKILL.md を現在のエージェント向け手順の正本として扱います。.claude/skills/sync-translations/SKILL.md は既存Claude環境向けの互換コピーで、Codex/AgentTools向けの手順更新はまず .agents/ 側へ反映します。
以下の15言語ファイルを更新対象とします:
| 言語 | ファイルパス |
|---|---|
| 英語 | locales/en/translation.json |
| 中国語(簡体字) | locales/zh-CN/translation.json |
| 中国語(繁体字) | locales/zh-TW/translation.json |
| 韓国語 | locales/ko/translation.json |
| フランス語 | locales/fr/translation.json |
| ドイツ語 | locales/de/translation.json |
| スペイン語 | locales/es/translation.json |
| イタリア語 | locales/it/translation.json |
| ポルトガル語 | locales/pt/translation.json |
| ロシア語 | locales/ru/translation.json |
| ポーランド語 | locales/pl/translation.json |
| タイ語 | locales/th/translation.json |
| ベトナム語 | locales/vi/translation.json |
| ヒンディー語 | locales/hi/translation.json |
| アラビア語 | locales/ar/translation.json |
まず、翻訳JSONだけでなく、画面に出る文言を追加・変更したコードも確認します。
git status --short
git diff --name-only
rg -n "isJa\\s*\\?|i18n\\.language === 'ja'|i18n\\.language === \"ja\"|Search settings|Easy setup|Start here|Display settings|Detailed .* settings|Optional features|Choose a category|Core settings" src/components src/features src/pages
必ず確認すること:
isJa ? '日本語' : 'English' のような2言語だけの分岐i18n.language === 'ja' ? ... : ... のUI文言placeholder、aria-label、title、alt、ボタン文言、見出し、説明文の直書きt('...') を通らず表示されていないか対応ルール:
t('KeyName') に置き換えるlocales/ja/translation.json に日本語キーを追加し、その後このスキルで15言語へ同期するまず、マスターとなる日本語の翻訳ファイルを読み込みます:
locales/ja/translation.json
各言語ファイルを1つずつ読み込み、日本語ファイルに存在するが対象言語ファイルに存在しないキーを特定します。
チェック対象:
MemorySettings, PNGTuber)PNGTuber.FileInfo)不足しているキーを以下のルールで追加します:
新しいセクション(オブジェクト)の場合:
既存セクション内のキーの場合:
値の設定(重要):
{{count}}、{{min}}、{{max}} 等のプレースホルダーはそのまま保持するnode -e)を使って不足キーの検出・マージを行うと効率的翻訳JSON同期後、変更したUIファイルを再検索して、英語・日本語の直書き分岐が残っていないか確認します。
git diff --name-only | xargs rg -n "isJa\\s*\\?|i18n\\.language === 'ja'|i18n\\.language === \"ja\"|Search settings|Easy setup|Start here|Display settings|Detailed .* settings|Optional features|Choose a category|Core settings"
さらに、翻訳キーの不足が0であることを確認します。
node - <<'NODE'
const fs = require('fs')
const langs = ['en','zh-CN','zh-TW','ko','fr','de','es','it','pt','ru','pl','th','vi','hi','ar']
function walk(o, p = [], out = []) {
if (o && typeof o === 'object' && !Array.isArray(o)) {
for (const k of Object.keys(o)) walk(o[k], [...p, k], out)
} else {
out.push(p.join('.'))
}
return out
}
function has(o, path) {
let current = o
for (const part of path.split('.')) {
if (!current || typeof current !== 'object' || !(part in current)) return false
current = current[part]
}
return true
}
let total = 0
let keys = []
try {
const ja = JSON.parse(fs.readFileSync('locales/ja/translation.json', 'utf8'))
keys = walk(ja)
} catch (error) {
console.error(`ja: ${error.message}`)
process.exit(1)
}
if (keys.length > 0) {
for (const lang of langs) {
try {
const obj = JSON.parse(fs.readFileSync(`locales/${lang}/translation.json`, 'utf8'))
const missing = keys.filter((key) => !has(obj, key))
total += missing.length
console.log(`${lang}: ${missing.length}`)
} catch (error) {
process.exitCode = 1
console.error(`${lang}: ${error.message}`)
}
}
}
console.log(`total missing: ${total}`)
NODE
可能なら、対象UIのスクリーンショットまたはビルドで、選択中の非日本語言語でも見出し・説明文・ボタンがその言語で表示されることを確認します。
/sync-translations
これにより、日本語ファイルに追加された新しいキーが全15言語ファイルに翻訳付きで同期されます。
翻訳ファイルの同期に加えて、日本語の README.md の変更を docs/ 配下の多言語READMEにも反映します。
| 言語 | ファイルパス |
|---|---|
| 英語 | docs/README_en.md |
| 中国語(簡体字) | docs/README_zh-CN.md |
| 中国語(繁体字) | docs/README_zh-TW.md |
| 韓国語 | docs/README_ko.md |
| ポーランド語 | docs/README_pl.md |
git diff origin/main -- README.md で日本語READMEの変更内容を確認する../public/ になる(ルートREADMEは ./public/)処理完了後、以下の情報を報告します:
t('...') 化した文言・ファイルの一覧