Skip to content

extensions.ent の XML エンティティ化に追従し、do-not-translate 指定ファイルのコピーを整理#417

Merged
KentarouTakeda merged 3 commits into
php:masterfrom
KentarouTakeda:migrate-extcat-entities-and-drop-dnt-copies
Jul 26, 2026
Merged

extensions.ent の XML エンティティ化に追従し、do-not-translate 指定ファイルのコピーを整理#417
KentarouTakeda merged 3 commits into
php:masterfrom
KentarouTakeda:migrate-extcat-entities-and-drop-dnt-copies

Conversation

@KentarouTakeda

@KentarouTakeda KentarouTakeda commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

doc-en のエンティティ移行と do-not-translate マーカー導入に、doc-ja が追従していなかった分をまとめて処理します。

entities/entities.extcat.ent(新規)

doc-en

php/doc-en#5697 で、トップレベルの extensions.ent(DTD の <!ENTITY> 宣言)が entities/entities.extcat.ent(XML の <entity> 要素)に置き換わりました。存続したのは 10 エンティティです。

doc-ja で起きていたこと

付録「拡張モジュールの一覧/分類」が全体英語で出力されていました。エンティティの解決順によるものです。

  1. text-entities.phpen/entities/ から temp/entities.ent を生成する
  2. doc-base/manual.xml の 10 行目 %manual-entities; がこれを最初に読む
  3. 既訳を持つ ja/extensions.ent は 15 行目 %translation-extensions; で後から読まれる
  4. DTD は先勝ちなので英語定義が勝つ

ビルド成果物での確認:

doc-base/temp/manual.xml:1421218
 <title>Extension List/Categorization</title>

対応

ja/entities/ に新形式で 10 エンティティを配置し、訳文は ja/extensions.ent の既訳から移植しました。原文側の変更は空白の詰め方と、extcat.stateextcat.state.experimental で ASCII の - になった点だけです。

訳文には移植にあたり 3 点手を入れています。

  • extcat.state: 既訳に旧原文のダッシュが 挙げます。- として残っていたため、落としました。
  • extcat.intro: 既訳で by several criteria が訳されていなかったため、「いくつかの基準で」を補いました。
  • 全ファイル: 「拡張」を「拡張モジュール」に統一しました(15 箇所)。README_Glossary.md の統一用語であり、ja の .xml 側も「この拡張モジュール」176 件に対し「この拡張」9 件です。

移植元の既訳の Maintainer は takagi のため、CREDITS に記載しています。

extensions.ent(削除)

doc-en

上記 php/doc-en#5697 で削除されました。

doc-ja で起きていたこと

ja 側にのみ残り、revcheck が NotInEnTree: 1 として数えていました。43 エンティティの既訳はいずれもビルド出力に反映されていませんでした。

対応

削除しました。存続する 10 件は entities/entities.extcat.ent に移してあります。extcat.purpose.* 系 33 件は doc-en で廃止され appendices/extensions.xml からも参照が消えているため、このファイルとともに落としています。

doc-base/manual.xml%translation-extensions;ja/extensions.ent)と %extensions.default;(既に存在しない en/extensions.ent)を参照し続けていますが、いずれも欠けた状態でビルドが通ることを確認しています。

bookinfo.xml(更新)

doc-en

php/doc-en#5704&frontpage.authors;&frontpage.editors; の参照が削除され、両エンティティは entities/entities.remove.ent に「Erased in 2026-06, */bookinfo.xml」として廃止予告が置かれました。

doc-ja で起きていたこと

両方の参照が残ったままでした。

対応

2 行を除去し、EN-Revision を追従させました。原文側の行末空白の除去も併せて反映しています。

entities/entities.remove.ent(新規)

doc-en

廃止・削除されたエンティティを置く translate="remove" のファイルです。「翻訳側では末尾に空の <entities/> を置き、revtag だけ更新する」とファイル自身に明記されています。

doc-ja で起きていたこと

未配置でした。エンティティ削除を翻訳側に予告する仕組みなので、追従していないと bookinfo.xml のような参照残りに気づけません。

対応

指示どおり空の <entities> 要素を持つスタブを配置しました。doc-ru と doc-pt_br にも同じ形のファイルがありますが、そちらのファイル名は entities-remove.ent です。doc-en が上記 php/doc-en#5704entities.remove.ent にリネームしているため、ja は新しい名前に合わせています。

appendices/license.xml(削除)

doc-en

php/doc-en#5657<?do-not-translate?> マーカーが付与されました。

doc-ja で起きていたこと

TranslatedOld として revcheck の候補に出続けていました。byMark() は ja 側にファイルが無い場合しか参照されない(RevcheckRun::calculateStatus()$target == null 分岐)ため、コピーを残す限りマーカーが効きません。

対応

削除しました。393 行すべてが英語の丸写しで日本語を 1 文字も含んでおらず、表示は doc-en へのフォールバックにより変わりません。保持しているのは doc-ja と doc-ru だけで、doc-es・doc-fr・doc-it・doc-pt_br・doc-zh・doc-de はいずれも持っていません。

検証

付録「拡張モジュールの一覧/分類」の見出し 10 件がすべて日本語で出力されることを、ビルド成果物で確認しました。

revcheck の変化:

before after
TranslatedOk 8054 8057
TranslatedOld 2 0
NotInEnTree 1 0

text-entities.php147 entities, 134 untranslated, 10 errors を出します。この PR の前は 147 entities, 144 untranslated(errors なし)で、--debug で挙がる 10 件はすべて Multiple redefined/translated として今回訳した 10 エンティティが並びます。Entities::checkReplaces() は同名エンティティの定義回数から $replaced = nameCount - 1 を求めており、en と ja の 2 言語で走らせる限り、翻訳されたエンティティは必ずこの分岐に入ります。ビルド自体は成功するため、この PR では触っていません。

@KentarouTakeda
KentarouTakeda force-pushed the migrate-extcat-entities-and-drop-dnt-copies branch 2 times, most recently from 05bab85 to 0edbb97 Compare July 26, 2026 13:19
@KentarouTakeda
KentarouTakeda force-pushed the migrate-extcat-entities-and-drop-dnt-copies branch from 0edbb97 to cf0502b Compare July 26, 2026 13:25
@KentarouTakeda
KentarouTakeda merged commit 02af77d into php:master Jul 26, 2026
2 checks passed
@KentarouTakeda
KentarouTakeda deleted the migrate-extcat-entities-and-drop-dnt-copies branch July 26, 2026 13:29
@alfsb

alfsb commented Jul 26, 2026

Copy link
Copy Markdown
Member

Hi. The wrong statistic of text-entities.php is to be fixed on doc-base PR 330. The defect of revcheck.php showing do-not-translet files as outdated, will take time. The revcheck will gain two new sections, one called "only in doc-en", and files marked do-not-translate will be moved to this new section.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants