本文へ移動
cccskills
無料GitHub で公開日本語紹介

i18n-context

同じ英語文字列が文脈によって異なる意味になる場合に、gettextの文脈情報を追加し、対象言語のPO翻訳を修正するスキルです。

原文原文の説明を見る

Add gettext context for ambiguous user-facing strings and repair affected PO translations.

cataclysmbn/Cataclysm-BNスター 1,289(GitHub 1,289 + cccskills 0)

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • 同じラベルを用途ごとに訳し分けたいとき
  • JSON翻訳に文脈を加えたいとき
  • PO翻訳を更新して検証したいとき

日本語での紹介

できること

同じ英語の文字列が複数の意味で使われ、言語ごとに訳し分けたい場合に、gettextの文脈情報を追加する作業を案内します。C++の実行時文字列にはpgettext、翻訳対象を示すだけの文字列にはtranslate_marker_contextを使い、JSONやスニペット配列にはctxtとstrを含む形式を適用します。必要に応じてJSON読み込み側の型をtranslationへ変更し、新しい文脈ごとに対象言語のPOファイルの翻訳も更新します。文字列の利用箇所を探す方法と、抽出・翻訳形式の検証手順も含まれます。

こんなときに便利

ボタン名やゲーム内用語など、同じ表記でも画面や用途によって訳語を変える必要があるときに向いています。ソース側の文脈追加からPO翻訳の修正、検証まで一連の変更を行う場合に使えます。

使い方の例

  • 「この文字列を画面の用途ごとに訳し分けられるようにして」
  • 「JSONの翻訳文字列に文脈を追加して、POも更新して」
  • 「変更したロケールの翻訳チェックを実行して」

注意点

git、rg、gettextツール、Pythonが必要です。対象ロケールに変更を加えた場合、msgfmtとprintf形式の検査が通る必要があります。JSON変更時はJSON lintも案内されています。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(1)

  • SKILL.md2.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

I18n Context

Use this when one English msgid has multiple meanings and a locale needs different translations.

Hard requirements

  • Do not reduce requested word/context coverage for review risk, churn, or convenience.
  • If a requested meaning needs loader support for contextual translation, add loader support.
  • Do not open or update a PR while msgfmt or printf checks fail for the touched locale.
  • Do not dismiss msgfmt/printf failures as pre-existing when this task touches that locale.

Workflow

  • Find every shared msgid before editing:
    • rg -n 'msgid "<word>"|msgctxt .*\nmsgid "<word>"' lang/po/<lang>.po
    • rg -n '"<word>"|translate_marker\( "<word>" \)|_\( "<word>" \)' data src
  • Split meanings at the source, following #8729 and #8741:
    • C++ runtime strings: pgettext( "short specific context", "text" ).
    • C++ marker-only strings: translate_marker_context( "short specific context", "text" ).
    • JSON translated strings: { "ctxt": "short specific context", "str": "text" } or matching plural fields.
    • Snippet arrays: { "text": { "ctxt": "short specific context", "str": "text" } }.
    • If a JSON field is currently std::string, convert it to translation so contextual JSON can load.
  • Keep context names terse and UI-specific, e.g. time format, map extra, music genre, damage type.
  • Update lang/po/<lang>.po for each new msgctxt; do not rely on the old shared msgstr.
  • Preserve old uncontexted entries only when some source still uses the shared msgid.
  • For Korean, check existing glossary first:
    • rg -C2 -i '<term>' lang/po/ko.po | rg -v '^(#:|--)' | head -n 20
  • Validate after editing:
    • python3 lang/extract_json_strings.py -i data/json -o /tmp/catabn-i18n-context.pot --tracked-only
    • msgfmt -f -c -o /tmp/ko.mo lang/po/ko.po
    • ./tools/check_po_printf_format.py
    • If JSON changed, run ./build-scripts/lint-json.sh.

PR references

  • #8729 split ambiguous yes/no labels in C++ with pgettext and translate_marker_context.
  • #8741 split ambiguous animal/action/species/fish names in JSON with ctxt and updated PO entries.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

add-lua-binding-api

無料概要あり

Cataclysm-BNのC++側で、ゲーム機能や定数、コールバックなどをLuaから呼び出せるAPIとして登録するスキルです。

  • Luaからマップ操作を呼び出したいとき
  • Lua APIに定数を追加したいとき
  • Luaからコールバックを登録したいとき
cataclysmbn/Cataclysm-BN1,2892026年10月27日 更新

add-lua-binding-complex

無料概要あり

複雑なC++クラスをLuaから利用できるように、メソッドや継承、プロパティ、演算子、オブジェクトの所有権を含むバインディングの追加を支援します。

  • C++クラスをLuaに公開したいとき
  • 継承を含むバインディングを追加したいとき
  • Lua向けのプロパティや演算子を登録したいとき
cataclysmbn/Cataclysm-BN1,2892026年10月27日 更新

add-lua-binding-simple

無料概要あり

C++の`string_id`や列挙型、読み取り専用の基本型をLuaへ公開するためのバインディング追加手順を示し、登録と動作確認を支援します。

  • C++のID型をLuaに公開したいとき
  • 列挙型をLuaスクリプトで使いたいとき
  • 基本クラスの読み取り専用バインディング追加
cataclysmbn/Cataclysm-BN1,2892026年10月27日 更新

changelog-gen

無料概要あり

Gitの指定範囲に含まれる変更を調べ、英語・韓国語・日本語のゲーム更新履歴を作成・同期します。プレイヤー向けの項目整理や画像・動画の掲載にも対応します。

  • Gitの差分から更新履歴を作りたいとき
  • 複数言語のリリースノートを整えたいとき
  • 関連する変更をまとめて掲載したいとき
cataclysmbn/Cataclysm-BN1,2892026年10月27日 更新

deno-script

無料概要あり

Cataclysm-BN向けのDeno/TypeScriptスクリプトを、プロジェクトの規約に沿って作成・修正します。CLIや移行処理、コード生成、Gitフックなどの実装を支援します。

  • Deno製のCLIを作りたいとき
  • データ移行スクリプトを書きたいとき
  • コードやドキュメントを生成したいとき
cataclysmbn/Cataclysm-BN1,2892026年10月27日 更新

lua-binding-reference

無料概要あり

Cataclysm-BNのLuaバインディング実装で使うLunaマクロ、型登録、ライブラリ、ビルド手順やよくあるエラーを調べるリファレンスです。

  • Lua向けの型登録方法を確認したいとき
  • オーバーロード関数を登録したいとき
  • バインディングのビルドエラーを調べたいとき
cataclysmbn/Cataclysm-BN1,2892026年10月27日 更新

cataclysmbn のスキルをすべて見る

このスキルの問題を報告する