Repository navigation
日本語テクニカル用語の表記ゆれ正規化ツールと一括適用 - #5
Merged
Merged
Conversation
用語集 (TSV) にもとづいて i18n/ja のカタカナ表記ゆれを検査・修正する 依存パッケージなしのツールを追加します。 - tools/ja-normalize: 用語集・例外定義・変換エンジン・CLI・テスト - コードフェンス/インラインコード/HTML/URL/リンク先パス/front matter の キー名は保護し、翻訳 JSON では "message" の値のみを対象とします - 見出しと同一ページ内アンカーは同時に変換し、リンク切れを防ぎます - npm run ja:check / ja:fix / ja:test - PR・push 時の検査と、手動実行による一括修正 PR 作成のワークフロー - 任意で有効化できる pre-commit フック Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
npm run ja:fix による一括正規化です (2264 ファイル / 8782 箇所)。 プロシージャ → プロシージャー、ユーザ → ユーザー、 インタフェース → インターフェース など。 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
編集者の確認により、正しいルールは ファイアーウォール → ファイアウォール のみであるため、誤記想定のエントリーを削除します。 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
GitHub Actions に不慣れな編集者向けに、ブラウザーだけで 手動実行・自動チェック・例外追加をおこなう手順書を追加します。 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
なぜ
i18n/jaの日本語ドキュメントでは、同じテクニカル用語がユーザ/ユーザー、インタフェース/インターフェイス/インターフェースのように複数の表記で混在していました。レビューのたびに人手で指摘するのは現実的ではないため、用語集にもとづいて機械的に検査・修正できる仕組みを用意します。アプローチ
用語集 (TSV) を唯一の正とし、追加の npm パッケージなしで動作する変換エンジンを
tools/ja-normalizeに追加しました。ルールを足したい場合はスクリプトではなく TSV を編集します。glossary.tsv—変換前 / 変換後 / 備考のタブ区切り。記述順は不問 (常に長い表記が優先)exceptions.tsv—keep(メモリ、ライブラリ、クエリ等、長音を付けない語のガード)、literal、regex、pathnormalize.js/index.js/test.js— 変換エンジン、CLI、16 件のテストnpm run ja:check/ja:fix/ja:testあわせて、用語集で正規化した結果を既存ドキュメント全体に一括適用しています (2264 ファイル / 8782 箇所)。
安全策
Markdown の構造や実行可能なコード例を壊さないよう、以下は変換対象から除外しています。
title/description/sidebar_label/keywords以外の値code.json等) では"message"の値以外すべて変換の性質として以下を保証し、テストで固定しています。
ーのルールは(?!ー)で保護され、長音が二重に付きませんストアード → ストアドがプロシージャ → プロシージャーより先に適用されますストアードプロシージャ→ストアドプロシージャー) が 1 回の実行で収束します#見出し) を同時に変換するため、リンク切れが発生しません自動実行
.github/workflows/ja-normalize.yml—i18n/ja/**を含む PR / push で検査し、表記ゆれがあれば失敗します。workflow_dispatchでmode: fixを選ぶと一括修正の PR を自動作成します.githooks/pre-commit— 任意で有効化できるコミット前チェック (git config core.hooksPath .githooks)レビューで注目してほしい点
glossary.tsvの妥当性が重要です。ユーザインタフェースは汎用ルールインタフェース → インターフェースとユーザ → ユーザーの組み合わせでユーザーインターフェースになりますdocs(ja): normalize technical terminologyの 1 コミットに分離してあり、すべて機械的な置換ですi18n/jaは Crowdin から取り込まれるため、このリポジトリだけを直しても次回のダウンロードで戻る可能性があります。運用としてcrowdin-download直後にnpm run ja:fixを流し、同じ用語集を Crowdin の用語集 / QA にも登録することを README に記載していますドキュメント
tools/ja-normalize/README.md— 仕様とルールの書き方tools/ja-normalize/HOWTO.md— GitHub Actions に不慣れな編集者向けに、ブラウザーだけで手動実行・例外追加をおこなう手順書確認したこと
npm run ja:test— 16 件すべて成功npm run ja:check— 8762 ファイルで残 0 件 (一括適用後)