BLOG

【WPML】カスタム投稿ラベルを多言語化する

2015-06-07

まあ、フロントだけ多言語かすれば良いなら、別に気にすることないのでしょうが、
クライアントに管理画面を渡すことになると、管理画面もそれ相応に多言語化しておく必要があります。
ということで、メモ。

まず、カスタム投稿をプラグインかfunctions.phpで生成します。
Custom Post Types UIか何かでコードを吐き出してもらうと楽でしょう。
ざっと以下のようになりますが、labelのところがミソです。

add_action( 'init', 'cptui_register_my_cpts' );
function cptui_register_my_cpts() {
    $labels = array(
        "name" => __( 'ニュース' ),
        "singular_name" => __( 'ニュース' ),
        );

    $args = array(
        "labels" => $labels,
        "description" => "",
        "public" => true,
        "show_ui" => true,
        "has_archive" => true,
        "show_in_menu" => true,
        "exclude_from_search" => false,
        "capability_type" => "post",
        "map_meta_cap" => true,
        "hierarchical" => false,
        "rewrite" => array( "slug" => "news", "with_front" => true ),
        "query_var" => true,
                                    );
    register_post_type( "news", $args );

// End of cptui_register_my_cpts()
}

 

「__( 'ニュース' )」のように、Gettext化しておき、

「テーマとプラグインローカライゼーション」でテーマやプラグインをスキャンすると、

WPMLのストリング翻訳に載ってくるという訳です。
後は、「翻訳」でそれぞれの言語を入力すれば、管理画面での使用言語によって表示が変わります。

なんとも素晴らしいプラグインですね。