ピリオド . を句点 。に変えるのに5時間かかった話【WordPress】
(約 2,300文字の記事です。)
タイトル通り。たったの「半角ピリオド」を「全角句点」に変えるためだけに、5時間格闘した。
結果、上手く行ったから今日記を書いている。
読者側からすれば「は?何でそんなに時間かかるの?ウケるwww」と思うかも知れない。それはフロントエンドの話だ。だがバックエンドの話になると「それは割と有り得る話」になるのだ。今回はエンジニア向け。
肝のプラグインは当然海外製=非日本語
WordPressをやっていれば分かると思うが、99%は海外製のプラグインだ。なのでローカライズ=日本語化でつまずくことが多い。でも6割くらいはプラグイン作者側の努力で「そこそこ使える」状態になっている。
だが今回、その成果がそのまま読者に見える形の文字列になって表示される。つまり「不自然な日本語」が表示されるのだ。これは痛い。
なので今日は(というか昨晩から)その表記を修正できないか色々と探っていた。結果、WordPressの翻訳機能について大分深いところまで探って試行錯誤する羽目になった。……、あまり笑えない。
poファイルって何ですか?
今まで全く知らない未知のファイル形式。これ、調べてみたらWordPressで使われる翻訳済みデータの保存形式らしい。"English"という文字列を"英語"という表記に変えるためのデータベースね。1対1の対照表だ。
それの扱い方について知って理解して試して自分の物にするまでに2時間かかった😭
poファイルの構文や仕組みを理解できた。WordPress内でのmoファイルの読み込みの優先順位も理解できた。WordPress内にはmo翻訳ファイルの置き場所が2箇所ある。/wp/wp-content/languages/plugins内のmoファイルが最優先で、そこにないものが各プラグインの言語フォルダ内のmoファイルから読み込まれる。
両方にない文字列は翻訳されずに直接表示される。WordPress内には2箇所にmoファイルがあるってだけでも大混乱だったがその優先順位を理解するのは大変だった。
ではpo, moファイルを書き換えれば問題解決といけば楽だった。だが今回はそうはいかなかった。
<リンク文字列、青色で表示されるアレね>の直後に半角ピリオドが表示されている。日本語の場合、私の場合は全角の読点「。」を表示させたいのだ。だがpoファイルにそれを指示しても上手く行かない。困った。
結局~.phpファイルを修正する羽目に
これは最後の最後までやりたくなかった。というのもプラグインがアプデするとリセットされてしまうから。子テーマのfunction.phpの修正で済むなら楽だったが、今回はそれでも上手く行かなかったのだ。
たいていはpoファイルの修正=対応する原文と変換後のテーブルをいじれば解決するのだろうが、今回はたまたま<リンク文字列>の直後の「半角ピリオド」という悪条件が揃ってしまった。なのでHTML文字列を生成するphpファイルをチェックして修正するしかない。
ようやく . が。になった
んで結局は5時間かかって無事に修正完了。リンクありの文字列の直後の平文の半角ピリオドが、リンク文字列 with 句点になった。たったそれだけ。
一見すると「ど~でもいい」ことのように見えるかも知れない。だがこれ、全然「ど~でもよくない」のだ。理由はいつの日か説明するが、半角ピリオドと全角区点は全く異なる情報なのだ。それを見た人に与える印象が違う。
だからこそ5時間かけてでもリリース前のテストサイトで解決したかった問題だった。でも今回「も」無事に解決できたからよかったものの、解決できなければ泥沼の様相となっていただろう。無事に日常に戻ってこれたことを神様に感謝したい👍
今回の旧サイトリニューアルで最大の山場を乗り越えたと感じた。あとは翻訳の修正と実装も「先が見えている」ので楽だ。あとはコンテンツを充実させて、これまでの実験で成功した「ガワ」の実装を進めるだけ。
疲れたけど、前に進めた。
地味に地味~に一歩、前に進んだ。
今回の創作活動は約1時間30分(累積 約3,373時間)
(938回目のnote更新)
読んでくれてありがとう。気長にマイペースに書いてます。この出会いに感謝😊