私はユーザーがデータベースに情報を追加できるようにするプラグインを書きました。それはうまくいっていますが、WPMLを使って情報を翻訳することはできません。これは問題の簡単な例です。
$ message = 'test'; //ここでDBの情報を取得します
__($ message、 'my-plugin');
この問題を回避する方法はありますか?翻訳に文字列ではなく変数を使用できるかどうかわかりません。管理パネルでウィジェットを解析すると、翻訳する文字列が表示されません。
これは文字列なので、この例はWPMLで機能します。__( 'test'、 'my-plugin');
前もって感謝します。
テキスト内の変数を翻訳対象にしたい場合、通常の方法は、次のような文字列フォーマットを使用することです。
<?php
printf(__("text %s text2."), $message);
?>
整数の場合:
<?php
printf(__("text %d text2."), $count);
?>
複数のプレースホルダーがある場合
<?php
printf(__("text %1$s text2 %2$S."), $message, $message2);
?>
しかし、変数それ自身は決して翻訳されません。
WPMLは__();
や_e();
関数の前にコードを実行せずにファイルを検索するだけなので、このようなものを書くときはそのためです。
$message = 'test'; // here I get the information of the DB
__($message, 'my-plugin');
WPMLは、$ messageが空の__($message, 'my-plugin');
のみを見ます。