Menu


WordPress __()関数(POファイル)に変数が含まれる文字列を翻訳する方法

2021年10月14日
2024年1月24日

WordPressテーマの翻訳(多言語化)を行うにはいくつかの方法がありますが、poファイルに翻訳文字を編集し、moファイルをコンパイルして所定のディレクトリにアップロードすることが一般的な方法です。

今回は翻訳したい文字列の中(POファイルの中)に変数が入っている場合、どのように翻訳を行うのか、当サイトのトップページの箇所を参考にお話したいと思います。

当記事は WordPress 5.8.1 を利用して検証した備忘録となります。

当ホームページのトップページに「現在460個の写真フリー素材を提供しています。」という表記の箇所があります。

当WordPressページの翻訳をしたい箇所
当WordPressページの翻訳をしたい箇所

この「460個」の個数箇所はWordPressから動的な数字を取得(変数$numに格納)しています。

これは sprintf関数を使用することで実現することができます。
(そのまま出力したい場合はprintf関数を使用)

WordPressのテーマファイルとPOファイルのソースコード

PHP(WordPressテーマ内)

sprintf関数の第二引数に変数$numをセット、今回は$numは数字として格納されていますので、int型として%dを使います。

sprintf( __( "We are currently providing %d stock photos.", 'ict_yorozu' ), $num)

ja.po

msgidとmsgstrは以下の通り記述します。

msgid "We are currently providing %d stock photos."
msgstr "現在%d個の写真フリー素材を提供しています。"

上記のように記述、Poeditなどでmoファイルをコンパイルして、テーマーファイル・po/moファイルをアップロードすれば翻訳が完了できるはずです。

__()関数(POファイル)内に変数が含まれていてもきちんと翻訳されている

__()関数(POファイル)内の変数が含まれる文字列の翻訳について記載しました。

sprintf関数を使いこなすことで、WordPressテーマ翻訳をスムーズに行うことができますね。

ICTよろず相談所ではWordPressをはじめ、ホームページの多言語化対応も承っております

運営しているWordPressサイトやホームページの多言語化にお悩みではありませんか?
ICTよろず相談所では多言語化サイト構築のサポートも承っております。ぜひご相談ください

広告