メむンコンテンツぞスキップ

Claude Codeに自䜜WordPressプラグむンの英語化を任せた翻蚳ファむルを同梱しおも切り替わらない原因が load_plugin_textdomain 䞍圚だった党蚘録Plugin Check未完了たで曞く

    ① 公開䞭のプラグむンに、日本語が305か所残っおいた

    「orgに通ったプラグむンっお、英語圏の人も䜿える仕様になっおるよね」

    2026幎9月14日の深倜0時すぎ。䜕気なく口にしたこの䞀蚀で、私の週末の予定が消えたした。

    私は普段、゚ンゞニアずしお開発に関わりながら、AI導入支揎やAI掻甚のレクチャヌも行っおいたす。個人開発のWordPressプラグむンを公匏ディレクトリで5本配垃しおいお、どれもreadmeは英語。説明文も英語。だから「英語圏の人が入れおも普通に䜿える」ず思い蟌んでいたした。

    答えは「5本䞭1本が未達」でした。

    問い合わせフォヌムのプラグむン圓時2.0.2は、翻蚳関数の䞭に日本語の原文が305か所ナニヌク253残っおいた。しかもJavaScriptの䞭には翻蚳関数すら通っおいない日本語が admin.js に19行・frontend.js に16行。極め぀けは、同梱した日本語の翻蚳ファむル.moを読み蟌む load_plugin_textdomain() ず Domain Path ヘッダがそもそも存圚しなかったこず。

    ぀たり英語ロケヌルのサむトに入れおも日本語が出る。そしお日本語サむトに入れおも「翻蚳ファむルで日本語にしおる」わけではなく、単に原文が日本語だから日本語に芋えおいただけ。翻蚳の仕組みは1ミリも動いおいたせんでした。

    このnoteは、その状態から翻蚳呌び出し313箇所を旧版ず1察1で照合しお差分0、英語ロケヌルでの日本語残存0件たで持っおいった蚘録です。䜜業の実行はClaude Code私のAI秘曞に任せ、私は怜収ず刀断だけをやりたした。同じ週に別のプラグむン4本でも翻蚳ファむルの同梱をやっおいお、そこで螏んだ倱敗もたずめお曞きたす。

    Plugin Checkが未完了のたた終わっおいるずころたで、正盎に曞きたす。

    ② 「翻蚳ファむル入れたから倧䞈倫」っお思っおたせんでした

    思っおたした。私が。

    • languages/ フォルダに xxx-ja.po ず xxx-ja.mo を眮いた

    • readme.txt は英語で曞いた

    • プラグむンヘッダに Text Domain は曞いおある

    • 手元の日本語サむトで動かしたら日本語で衚瀺された

    この4぀が揃うず「倚蚀語察応できおる」っお気分になる。でもこの4぀は党郚翻蚳が動いおいる蚌拠にはならないんですよ。

    手元の日本語サむトで日本語が出るのは圓たり前です。原文が日本語なんだから。翻蚳ファむルが読たれおいようがいたいが日本語が出る。だから「読たれおいない」こずに気づけない。

    逆に英語のサむトを1回でも立おお入れおみれば秒で分かる。私はそれをやっおいなかった。公開しおから数日、誰も指摘しなかった。英語圏の人が入れお日本語の管理画面を芋お黙っお消しおいった可胜性はある。それは蚈枬できおいないので「分からない」ずしか曞けたせん。

    もしあなたが今、次のどれかなら、この蚘事は自分事です。

    • .po/.mo を同梱したのに、WordPressの蚀語蚭定を倉えおも衚瀺が倉わらない

    • 英語のサむトに入れたら日本語が混ざっお出たたたはその逆

    • 管理画面は切り替わるのに、JavaScriptで出しおいるメッセヌゞだけ日本語のたた

    • 翻蚳したら管理画面のCSSやJSが読み蟌たれなくなった

    • 曎新版を出したのに、自分のサむトの管理画面に曎新の通知が出ない

    䞊の5぀、党郚私が2026幎9月の1週間で螏んだや぀です。←党郚です

    ③ 問題の正䜓「翻蚳察象」ず「読蟌経路」が分断されおいる

    原因を1぀ず぀朰す前に、構造を芋せたす。翻蚳が効かない自䜜プラグむンは、だいたい次の5局のどこかで切れおいたす。

    å±€1: 原文が日本語のたた

    WordPressの翻蚳gettextは「英語の原文 → ロケヌルごずの蚳」ずいう䞀方向の仕組みです。__( '送信', 'my-plugin' ) ず曞いおしたうず、原文が「送信」になる。英語ロケヌルのサむトで英語を出すには「送信 → Send」ずいうen_US向けの翻蚳ファむルが芁る。そんなものは普通䜜らないので、英語サむトでも「送信」が出る。

    私のフォヌムプラグむンはこれが305か所。翻蚳関数は通っおいるのに原文が日本語だから、翻蚳の仕組みずしおは「日本語→日本語」しかできない状態でした。

    å±€2: 同梱した .mo が読たれおいない

    ここが今回の本䞞です。

    .mo を languages/ に眮くだけではWordPressは読みたせん。プラグむンが自分で load_plugin_textdomain() を呌ぶか、あるいは公匏ディレクトリ配垃版で translate.wordpress.org の蚀語パックに乗るか。どちらかが必芁です。

    公匏ドキュメントにはこうありたす。WordPress 4.6以降、translate.wordpress.org の翻蚳が優先されるため、そこで翻蚳されおいるプラグむンは load_plugin_textdomain() を必ずしも必芁ずしない。 https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/

    これを逆から読むず、translate.wordpress.org に翻蚳が無い自分で .mo を同梱しおいるプラグむンは、自分で読み蟌たないず䜕も起きないずいうこずです。

    私のフォヌムプラグむン 2.0.2 には load_plugin_textdomain() が無かった。぀いでに Domain Path ヘッダも無かった。同梱した .mo は「眮いおあるだけ」でした。

    さらに厄介なのが、同じ週に盎した内郚リンクのプラグむンで1.0.2 で load_plugin_textdomain が削陀されおいたこず。過去のバヌゞョンには入っおいた。リファクタのどこかで消えおいた。「前は動いおたから」は圓おにならないず身をもっお孊びたした。

    å±€3: JavaScript の䞭のハヌドコヌド日本語

    PHP偎を党郚英語にしおも、JSファむルに盎曞きした日本語は翻蚳関数を通っおいないので絶察に切り替わりたせん。

    フォヌムプラグむンで admin.js に19行・frontend.js に16行。内郚リンクのプラグむンでは link-map.js に7文蚀。PDFスラむドのプラグむンでは44文蚀のうちJSが33PHP8・共通1・block.json 2。JSの方が倚いプラグむンもあるんですよ。PHPだけ棚卞しするず半分以䞊を芋逃す。

    WordPress偎の正攻法は2぀。wp_localize_script() で翻蚳枈み文字列をPHPからJSぞ枡す方法ず、wp_set_script_translations()5.0以降でJS偎の wp.i18n に翻蚳を玐づける方法です。 https://developer.wordpress.org/reference/functions/wp_localize_script/ https://developer.wordpress.org/reference/functions/wp_set_script_translations/

    私はフォヌムプラグむンで前者、PDFスラむドで埌者を䜿いたした。どちらが正しいずいうより、既存コヌドの䜜りで遞びたした理由は⑀で。

    å±€4: 「既定倀」ずしお保存される日本語

    芋萜ずしがちなのがここ。蚭定画面の初期倀に日本語が入っおいるケヌスです。

    フォヌムプラグむンには問い合わせを自動分類するキヌワヌドの既定倀が5本あっお、これが日本語で盎曞きされおいた。英語ロケヌルで入れた人は、蚭定画面を開いた瞬間に日本語のキヌワヌドが䞊ぶ。しかも䞀床保存するず蚭定倀ずしおDBに残るので、あずから翻蚳を足しおも保存枈みの倀の方が優先されお倉わらない。

    「衚瀺の翻蚳」ず「デヌタの初期倀」は別物です。ここは _x()文脈぀き翻蚳でロケヌルごずに違う既定倀を返すようにしたした。

    å±€5: 配垃物ず導入先の版がずれおいる

    盎したあずの話です。修正版を配垃しおも、自分のサむトに入っおいるのが叀い版のたたなら、確認は党郚無意味。

    私は修正版を公開した盎埌に自分のサむト2぀を曎新しようずしお、公匏の曎新チェックAPIが未反映で管理画面に曎新の行が出ないずいう状態に圓たりたした。さらに片方はマルチサむト。しかも確認に䜿おうずしたURLが実は存圚しないペヌゞで、それでも ?ver=2.0.3 が取れおしたう眠たであった。

    「盎した」ず「盎ったものが動いおいる」の間には、ちゃんず溝がありたす。

    5局をたずめるず

    | å±€       | 症状                                     | 原因                                         |
    |----------|------------------------------------------|----------------------------------------------|
    | 1 原文   | 英語サむトでも日本語が出る               | 翻蚳関数の原文が日本語                       |
    | 2 読蟌   | .mo を眮いおも䜕も倉わらない             | load_plugin_textdomain()Domain Path が無い |
    | 3 JS     | 画面は切り替わるのにメッセヌゞだけ日本語 | JSに盎曞き                                   |
    | 4 既定倀 | 蚭定画面の初期倀が日本語                 | 既定倀が翻蚳を通っおいない・保存倀が優先     |
    | 5 版     | 盎したはずなのに倉わらない               | 導入先が旧版・曎新通知が未反映               |
    

    このnoteの有料郚分は、この5局を順番に朰す手順ず、各局で私が実際に枬った数字ず、螏んだ穎です。

    ④ 転機「readmeを英語化しお」ず頌んで、前提が間違っおいた

    順番に曞きたす。成功の前に倱敗が3぀ありたす。

    倱敗1: 存圚しない問題を盎しに行った9月7日

    最初に私が出した指瀺は「公開䞭のプラグむン4本のreadmeを英語化しお」でした。

    結果は前提が誀り。4本ずもreadmeは最初から英語だった。公開時の芁件で英語化枈みで、しかも公開版ず開発版が同䞀。AI秘曞は「readmeは既に英語です」ず報告しおきお、私は配車前に自分で確認しおいなかったこずに気づきたした。配車前のAPI確認が倱敗しおいたのに、そのたた前提を確かめずに投げおいた。

    でもこの空振りが転機になった。AI秘曞が「readmeは英語だが、代わりにこういう穎がありたす」ず3぀持っおきたからです。

    1. 内郚リンクのプラグむンはUIが日本語 103/103。英語圏の人が入れおも日本語の管理画面が出る

    2. AI匕甚蚺断のプラグむンはスクリヌンショット0枚・「Tested up to」が7.0他3本は7.1で䞀芧面で䞍利

    3. PDFスラむド・AI匕甚蚺断・WooCommerce連携の3本はUIは英語だが ja.po/.mo が無い。日本語ナヌザヌには英語画面

    そしお3番目には泚釈が぀いおいた。「WooCommerce連携は8月31日の蚘録に『ja.po/mo同梱』ずあるが、䜜業フォルダには .pot しか無い。芁確認」。

    確認したら蚘録が間違っおいたした。同梱した぀もりで .pot しか䜜っおいなかった。自分の蚘録すら圓おにならない。

    倱敗2: 「103か所残っおいる」ずいう報告が、叀い゜ヌスを芋た誀報だった9月14日

    9月7日にAI秘曞は内郚リンクのプラグむンを 1.0.3 ずしお英語UI化したした翻蚳関数103箇所・ナニヌク78を英語原文ぞ。

    ずころが9月14日の深倜、冒頭の「英語圏の人も䜿えるよね」の問いにAI秘曞が返しおきた第䞀報は「フォヌムプラグむンは未達。内郚リンクも103か所残存」でした。

    え、7日に盎したよね

    調べるず、AI秘曞が芋おいたのがロヌカルの䜜業フォルダに残っおいた叀い版の゜ヌスでした。公開䞭の 1.0.4 を公匏ZIPで取り盎しお実枬したら日本語は0件。぀たり内郚リンク偎の䜜業は䞍芁だった。

    ここで手を動かしおいたら、盎っおいるものを二重に盎しお版だけ䞊がるずころだった。「配垃䞭の珟物を取っお枬る」を最初にやらなかったのが原因です。局5の「配垃物ず導入先の版」を、盎す偎でも螏んだわけです。

    倱敗3: 1.0.2で load_plugin_textdomain が消えおいた

    内郚リンクのプラグむンを英語化する途䞭で、AI秘曞が「調査で芋萜ずしおいた3点」を远加で芋぀けお盎したした。

    1. link-map.js にハヌドコヌドの日本語7文蚀 → wp_localize_script 経由ぞ

    2. enqueue_scripts() がメニュヌ名由来のhook suffix '内郚リンク_page_
' を盎曞きしおいた。メニュヌ名を翻蚳するずこの文字列が䞀臎しなくなっおCSSずJSが読み蟌たれなくなる → add_menu_page() の戻り倀を䜿う圢ぞ

    3. load_plugin_textdomain が 1.0.2 で削陀されおいた。同梱の .mo は無いず読めない → 埩元

    2番は翻蚳ずは無関係に芋えお翻蚳が匕き金になるバグ。翻蚳しお初めお壊れる。日本語のたた䜿っおいたら䞀生気づかなかったや぀です。

    3番は「前の版では入っおいた」もの。差分を远わずに「翻蚳ファむルを同梱すれば終わり」ず思っおいたら、ファむルは同梱されおいるのに䜕も起きないずいう状態を量産するずころでした。

    そしお本䞞のフォヌムプラグむン9月14日 0時半〜1時

    内郚リンクは䜜業䞍芁ず分かり、残るはフォヌムプラグむン1本。ここからは⑀の手順そのものなので、結果だけ。

    • 翻蚳関数内の日本語305か所ナニヌク253→ 英語原文ぞ

    • admin.js 19行・frontend.js 16行 → wp_localize_script の i18n ぞ

    • 分類キヌワヌドの既定倀5本 → _x() 化

    • Domain Path: /languages  init フックでの load_plugin_textdomain() を远加

    • .pot278゚ントリ ja.po/.mo272蚳を同梱

    • 怜蚌: php -l å…šPHP 0゚ラヌnode --check å…šJS 0゚ラヌ翻蚳呌び出し313箇所を旧版2.0.2ず1察1で照合し、.mo適甚埌の日本語が党件䞀臎差分0英語ロケヌルで翻蚳関数内の日本語0ä»¶

    • 2.0.3ずしお公開。公匏ZIP95,367Bを展開しお ._ ファむル0件・languages/ 3ファむル同梱を確認

    • 自分のサむト2぀ぞ適甚し、管理画面の䞀芧ずフロント3ペヌゞで英語混入0を実機確認

    30分ちょっずでここたで行ったんですけど、正盎に蚀うず私が手でやっおいたら1日かかっおたず思いたす。305か所を英語にしお、しかも旧版の日本語衚瀺ず1察1で䞀臎させるっお、人力だず必ず数か所ズレる。

    で、Plugin Check公匏の静的チェックは未実行のたたです。理由はWP-CLI未導入。これは⑥で曞きたす。

    この蚘事が向いおいる人向かない人

    向いおいる人

    • 自䜜のWordPressプラグむンを配垃しおいお、翻蚳ファむルを同梱したのに切り替わらない人

    • 日本語で曞いたプラグむンを英語圏にも出したい人

    • 「翻蚳ファむルを入れたはず」を、動いおいる蚌拠぀きで確認したい人

    • 英語化のような倧量眮換をAIに任せお、自分は怜収に回りたい人

    向かない人

    • translate.wordpress.org の蚀語パックで運甚しおいお、同梱の .mo を䜿う予定が無い人局2の話がそのたた圓おはたらない

    • テヌマの翻蚳を盎したい人。関数名や読み蟌みの䜜法が違うので、この蚘事の手順はプラグむン限定です

    • Plugin Check を通した完成圢のレポヌトが欲しい人。私の蚘録では未完了です

    • 翻蚳の「質」蚳語の自然さを扱いたい人。この蚘事は「仕組みが動いおいるか」の話だけ

    この蚘事で持ち垰れるもの䞀芧

    有料郚分に入っおいるのは次の通りです。

    1. 5局を順に朰す6ステップの手順各ステップに私の実枬数字ず、そこで螏んだ穎

    2. 日本語の棚卞しコマンドPHPJSを分けお数える。翻蚳関数を通っおいない盎曞きだけを炙り出す

    3. コヌドテンプレ4皮プラグむンヘッダload_plugin_textdomainwp_localize_script で枡すJS文蚀プレヌスホルダ眮換の小さなJSヘルパ_x() で既定倀をロケヌル別に返す

    4. 翻蚳呌び出しの1察1突合衚の䜜り方旧版の日本語衚瀺ず新版の .mo 適甚埌の衚瀺を機械的に照合する

    5. 導入先の版確認手順曎新通知が出ないずきの眮き換え・マルチサむトの泚意・「存圚しないペヌゞでも ver= が取れる」眠の回避

    6. ぀たずき切り分け衚症状から局を匕く

    7. 公開前チェックリスト私が実際に通した項目

    動䜜確認枈みの環境は、WordPress 7.1自サむト2぀・うち1぀はマルチサむト、2026幎9月7日ず14日の実䜜業です。现かい条件は⑥に曞きたす。

     
     

    Locany

     
     
    AIコンサルティング・Webコンサルティング・Webデザむナヌ・Web広告・動画制䜜などを䞻業ずしおいたす。 AIコンサルティングで成果が高く高評䟡を埗たプロンプトを業皮別に30遞した蚘事を販売しおいきたす。

    あなたぞのおすすめ