私の問題: Polylang を使用して Web サイトを翻訳していますが、カスタム文字列の翻訳に苦労しています。文字列が WP ダッシュボードの [文字列の翻訳] メニューに表示されません。
重要:私はPHPについてあまり知らないので、pll_register_string 関数私にとっては非常に混乱を招きます。
Polylang ドキュメントから引用:
https://polylang.wordpress.com/documentation/documentation-for-developers/functions-reference/
pll_register_string
プラグインが「文字列翻訳」パネルに独自の文字列を追加できるようにします。この関数は管理側で呼び出す必要があります (テーマの場合は functions.php ファイルで問題ありません)。空の文字列を登録することは可能ですが (たとえばオプションから取得する場合)、リスト テーブルには表示されません。
使用法:
pll_register_string($name, $string, $group, $multiline); '$name' => (必須) 並べ替えの便宜上提供される名前 (例: 'myplugin') '$string' => (必須) 翻訳する文字列 '$group' => (オプション) 文字列が登録されているグループ。デフォルトは 'polylang' '$multiline' => (オプション) true に設定すると、翻訳テキスト フィールドは複数行になります。デフォルトは false
お願いします__
以前にpll_register_stringで登録された文字列を翻訳します。使用法:
pll__($string); 固有のパラメータが必要です:
'$string' => 翻訳する文字列は、翻訳された文字列を返します。
pll_e
以前に pll_register_string で登録された翻訳された文字列をエコーします。使用法:
pll_e($string); 固有のパラメータが必要です:
'$string' => 翻訳する文字列
よろしくお願いします
ベストアンサー1
まず、翻訳のためにこれらすべての文字列を登録する必要があります。
たとえば、次のようにテンプレート ファイルで「Hello world」をエコーします。
<?php pll_e('Hello world'); ?>
「文字列の翻訳」に文字列を表示するには、以下を追加しますfunctions.php
:
add_action('init', function() {
pll_register_string('mytheme-hello', 'Hello world');
});
翻訳したいすべてのカスタム文字列をこの関数に追加します。