テーマ翻訳

閲覧数: 23(0)

ワードプレスの国際化対応はソースコードと翻訳ファイルで行っています。現在のテーマである「Fotografie」ではテンプレートファイルが提供されいていて、それを元に自分で翻訳ファイルを作成すれば、ソースコードの変更無しに「日本語対応」可能です(もちろん日本語以外も)。テンプレートには下のような内容が記載されています。「msgid」がソースコードに書かれるオリジナル言語でのメッセージで、通常「英語」です。ちなみにテンプレートは翻訳対応記述されたソースコードから生成します。例えば、下のソースコードからは、

                                printf(
                                        /* translators: 1: number of comments, 2: post title */
                                        esc_html(
                                                _nx(
                                                        '%1$s Reply to “%2$s”',
                                                        '%1$s Replies to “%2$s”',
                                                        $comments_number,
                                                        'comments title',
                                                        'fotografie'
                                                )

⬇️このようなテンプレートが生成されるわけです。この例は「記事に対するコメント数」です。日本語では「3件の”テーマ翻訳”へのコメント」などと訳されます。

#: ../comments.php:39
#, php-format
msgctxt "comments title"
msgid "%1$s Reply to “%2$s”"
msgid_plural "%1$s Replies to “%2$s”"
msgstr[0] ""
msgstr[1] ""

この流れで「翻訳結果」を確認していたところ、コメントが1件の場合に日本語へ翻訳されていない事が発覚!ソースコード上はちゃんと翻訳対応しているので、翻訳ファイルの方にメッセージが無いことが原因でした。ソースコードは下のように対応済みでした。

                        <?php
                        $comments_number = get_comments_number();
                        if ( '1' === $comments_number ) {
                                /* translators: %s: post title */
                                printf( esc_html_x( 'One Reply to &ldquo;%s&rdquo;', 'comments title', 'fotografie' ), get_the_title() );
                        } else {

「’One Reply to “%s”’」に対応した翻訳メッセージを以下のように用意することで日本語化されることが確認できました。英語では「1件の、、、コメント」となりますが、日本語の場合「1件の」とわざわざ書くと違和感があるので、ここでは日本語らしく件数は省略して「、、、へのコメント」としています。

#: ../comments.php:33
#, php-format
msgctxt "comments title"
msgid "One Reply to &ldquo;%s&rdquo;"
msgstr "&ldquo;%s&rdquo;へのコメント"

この.poファイルを.moファイルへコンパイルするには、「POEDIT」などのGUIツールを使うか、「gettext」を使ってコマンドラインで実行する必要があります。「gettext」がインストールされていない場合、「yum」などを使ってインストールしておきます。コマンドは以下の通りです。

[root@linux-ec2 languages]# msgfmt -o ja.mo ja.po
[root@linux-ec2 languages]# dir
合計 40K
-rw-r--r-- 1 apache 5.5K  6月  1 19:47 2018 ja.mo
-rw-r--r-- 1 apache  30K  6月  1 19:41 2018 ja.po
[root@linux-ec2 languages]# 

前回の記事で書いた通り、子テーマのフォルダから読み込んでいるので、このファイルの配置先は子テーマの「languages」フォルダとなります。

タイトル画像は「ヘルシンキ ヴァンター空港」の案内表示です。英語の他に、フィンランド語、日本語、中国語、韓国語とロシア語?で表記されていました。

最終更新日: 2019年5月20日

カテゴリー公開, 閑話(IT)タグ, ,
Sudachiプラグイン

このサイトで最も力を入れている設定が「検索」です。初稿である「検索に悩む」から既に8年弱が経過し、当  続きを読む

最近の更新
blank

3月の初投稿は、ネタが無いのでIT閑話でw mediawikiのバージョン制限で、しばらくElast  続きを読む

鬼門に再挑戦?
blank

はい、またテーマ変えました。ガラッと。パソコンとスマホで表示の統一感を持たせるのに一苦労、MacとW  続きを読む

テーマの日本語化
blank

今回は単なる「翻訳」とかではなくて「文化的」な面での日本語化についての対応。今回の元になったテーマ「  続きを読む

dockerとproxy
blank

dockerやdocker-composeをプロキシ環境下で使うのに苦労したので忘れないようにメモし  続きを読む

検索結果の期待値
blank

Wordpress標準の「検索」は入力された「検索ワード」をデータベースに直接照会する方法と言うのは  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください