Skip to content

Fix resource leaks, save/copy path bugs, and tooltip/i18n gaps across… #64

Fix resource leaks, save/copy path bugs, and tooltip/i18n gaps across…

Fix resource leaks, save/copy path bugs, and tooltip/i18n gaps across… #64

# 260618Cl 追加: 多言語化 resx の規約を CI で検出する (pre-commit フックのバックストップ)。
# (1) culture resx が規約形か。他言語=完全 text-only (Size/Location/Font 等の混入を弾く)。
# ja のみ .Font を許容するが、値が正規化済 (Yu Gothic UI + 5 段階ティア) でなければ弾く。
# (2) neutral resx の Font サイズが 5 段階ティアに正規化されているか。
# 修復はしない (CI はリポを書き換えない)。違反時は exit 1 で落とし、ローカルで --fix を促す。
# ローカルの自動修復は tools/git-hooks/pre-commit (git config core.hooksPath tools/git-hooks)。
name: i18n resx check
on:
push:
pull_request:
jobs:
resx-textonly-and-tiers:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.x"
# 260623Cl: tools/ はメインリポから exclude された独立ローカルリポ (CLAUDE.md: 公開リポに出さない)。
# そのため CI ランナーにはこれらのスクリプトが存在せず、無条件実行は "No such file" で必ず落ちていた
# (このジョブは push 毎に赤・Pages とは無関係の別件)。本来の enforcement はローカルの pre-commit フック
# (tools/git-hooks/pre-commit) が担うので、CI は「スクリプトがあれば検査・無ければ通知してスキップ」にする。
# 将来 CI でも強制したくなったら、この 3 スクリプトを追跡パスへ carve out して committed にすればよい。
# 260618Cl: ja を既定スコープへ格上げ (両ルート)。他言語=完全 text-only、
# ja のみ .Font を保持 (値は Yu Gothic UI + ティアへ正規化必須)。neutral snap も両ルート。
- name: Culture resx conform (de/fr/es/pt/zh-Hans=text-only, ja=text+normalized Font; ReciPro + Controls)
run: |
if [ -f tools/check_resx_textonly.py ]; then python tools/check_resx_textonly.py;
else echo "::notice::tools/ is excluded from this repo (local-only per CLAUDE.md); enforced by local pre-commit hook — skipping resx text-only check in CI."; fi
- name: Neutral resx font sizes are tier-normalized (ReciPro + Controls)
run: |
if [ -f tools/snap_neutral_font_tiers.py ]; then python tools/snap_neutral_font_tiers.py;
else echo "::notice::tools/ not present in CI — skipping neutral tier check (local pre-commit hook enforces it)."; fi
# 260618Cl: ja.resx の .Font が neutral と完全ミラーか (neutral にあって ja に無い穴=日本語デザイナで
# Segoe フォールバック→実行時 Yu Gothic とズレる、を検出)。未同期なら fail → ローカルで --fix。
- name: ja resx fonts mirror neutral (designer == runtime)
run: |
if [ -f tools/restore_ja_fonts.py ]; then python tools/restore_ja_fonts.py;
else echo "::notice::tools/ not present in CI — skipping ja-font mirror check (local pre-commit hook enforces it)."; fi