テーマ翻訳:実践編
テーマ翻訳についての理解を深めるため「実践編」として「Search Form(検索メニュー)」を翻訳(日本語化)する方法を説明します。「Fotografie」テーマではトップページなどに表示される「虫メガネ」アイコンをクリックすると小さなダイアログが現れます。何もしないと「英語」表記のままです。キーワードを入力するフィールドには「Enter Keyword…」その下のボタンには「SEARCH」と表示されます。このダイアログを表示しているのは以下のソースコードです。
<form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <label> <span class="screen-reader-text"><?php echo esc_attr_x( 'Search for:', 'label', 'fotografie' ); ?></span> <input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Enter keyword…', 'placeholder', 'fotografie' ); ?>" value="<?php the_search_query(); ?>" name="s" /> </label> <button type="submit" class="search-submit"><span class="search-button-text"><?php echo esc_html_x( 'Search', 'submit button', 'fotografie' ); ?></span></button> </form>
これらのソースコードの中で「翻訳」したいのは、「’Search for:’」「’Enter keyword…’」「’Search’」の3つです。そのうち「’Search for:’」は翻訳ファイルにすでに含まれているので、ここで対応しなければならないのは後の2つということになります。もちろんここを直接修正しても表示は日本語化出来ますが、そのような「ハードコーディング」は後々のメンテナンス性低下を招くので、ここは面倒でも「WordPress」の国際化に従って処理をしたいと思います。具体的には翻訳ファイル(ja.po)に以下のような翻訳を追加すれば良いと思います。「msgstr」が実際に変換される文字列となるのでここはお好みで変更して下さい。
#: ../searchform.php:14 msgctxt "placeholder" msgid "Enter keyword…" msgstr "キーワードを入力" #: ../searchform.php:17 msgctxt "submit button" msgid "Search" msgstr "検索"
「msgfmt」などで「ja.po」をバイナリファイル「ja.mo」にコンパイルすれば「翻訳」は完了です。ブラウザのロケール設定を見て「日本語」であれば「ja.mo」のメッセージを使用します。未翻訳のメッセージはオリジナル言語である「英語」で表記されます。この方法を覚えればクールなテーマで日本語未対応でも自分で対応することが出来るので「テーマ選択」の幅がぐっと広がります。中身も大事ですが見た目も大切ですw