0

配列があるとしましょう。

$less_user_variables = array(
    "bodyBackground" => array( 
        "value" => "#ffffff",
        "description" => __( "Body background", AI1EC_PLUGIN_NAME ),
        "tab" => "general",
        "type" => "color",
    ),

説明を国際化する必要があります。だから私はそれを__()呼び出しにラップします。そのため、.pot ファイルを作成すると、「Body Background」が含まれます。ここで、配列をデータベースに保存し、後でそれを取得するとしましょう

$less_variables = get_option('less_variables');

説明で_ () をもう一度使用して翻訳することはできますか?実行時に _ () が実際に行うことは、取得した変数の翻訳を実際にチェックすることだけだと思います。

$description = __($less_variables["bodyBackground"]["description"], AI1EC_PLUGIN_NAME );

「Body Background」の訳を教えてください。__()変数で使用できないルールは、.pot ファイルを作成するためだけのものですが、実行時には変数で機能します。よろしいですか? または、毎回 $less_user_variables 元の配列を使用する必要がありますか?

もう 1 つ ( 私が思うに ) 私の考えを裏付けていることは、

function __( $text, $domain = 'default' ) {
    return translate( $text, $domain );
}

したがって、変数または文字列を渡しても、実際には何も変わりません。私は正しいですか?

4

2 に答える 2

0

実際、あなたの例では、$ less_user_variables['bodyBackground']['description']変数に翻訳されたテキストが含まれています。したがって、配列を保存するときは、実際に翻訳された値を保存するので、翻訳されたテキストにアクセスするには、$ less_variables ['bodyBackground']['description']をチェックするだけです。

__()関数は、ご覧のとおり非常に単純です。文字列を配置して、翻訳された文字列を受け取ります。

于 2012-10-11T17:43:42.050 に答える
0

この場合、私はこれを行います (pot ファイルの生成後):

$less_user_variables = array(
    "bodyBackground" => array( 
        "value" => "#ffffff",
        "_description" => 'Body background',
        "tab" => "general",
        "type" => "color",
    ),

_description良い文字列が含まれていることを確認してください。

以降 :

$less_variables = get_option('less_variables');
$less_variables['bodyBackground']['description'] = __($less_variables['bodyBackground']['_description'], AI1EC_PLUGIN_NAME);
于 2012-10-11T19:20:02.373 に答える