サポート » バグ報告と提案 » ダッシュボード「最近のコメント」の翻訳文字列

  • モデレーター IKEDA Yuriko

    (@lilyfan)


    やっと 2.7 を本格使用していますが、ダッシュボードの「最近のコメント」で訳が少し変なことに気がつきました。

    トラックバック・ピンバックのとき「(投稿タイトル) に ピンバック より」のような表記になっています。どう考えても、ピンバックに「より」は不自然です。

    この翻訳文字列は、ja.po の 4083 行目にある「%1$s on %2$s」で、以下で使われています。

    #: wp-admin/includes/dashboard.php:520
    #: wp-includes/widgets.php:1401

    dashboard.php の場合、コメントとそれ以外で分岐していて、コメントには「From %1$s on %2$s%3$s」の文字列 (4063行目) が使われており、当該文字列はトラックバック・ピンバックのみに使われます。なので、単純に「より」を削除すれば自然になりそうです。

    printf( __( '%1$s on %2$s' ), "<strong>$type</strong>",
    $comment_post_link );

    しかし、同じ翻訳文字列が wiidgets.php でも使われています。こちらは以下のようなコードで、コメント・トラックバック等すべてで共通です。そして、これに対して「○○ に ×× より」という訳は自然です (×× がコメント・トラックバック主のため)。

    sprintf(__('%1$s on %2$s'), get_comment_author_link(),
    '<a href="'. get_comment_link($comment->comment_ID) . '">' .
    get_the_title($comment->comment_post_ID) . '</a>')

    結局のところ、同じ翻訳文字列を使い回すのが間違っているわけです。ダッシュボードの方は %1$s にトラックバック・ピンバックの種別が入るのに対し、ウィジェットの方はコメント主の名前やサイト名が入るんですから、別モノです。

    したがって、|comment_author, |comment_type といったコンディショナル文字列を付与した翻訳文字列にしなければならないと思われますが、いかがでしょうか?

    もしくは、ウィジェットの方は「From %1$s on %2$s%3$s」の翻訳文字列を使ってみる手もあります。この方が意味的には自然かもしれません。

    よければ trac に投げてみます。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    けっきょく日本語版作成チームの返事がなくて放置していたため trac に投げるのを忘れていました。残念ながら 2.7.1 でも改善されていません。

    2.7.1 日本語版はまだ出ていませんが、これに対する改善は何か予定していますか?

    モデレーター IKEDA Yuriko

    (@lilyfan)

    これも報告ずみだった気がしますが (検索しても出てこない……)、投稿編集でタイトルの直後に付く「レビュー待ち」を示す文字列が「Pending」という表記になっていて日本語化されていません。ja.po の修正で直ると思って楽観視していましたが、今見てみるとコードの修正が必要でした。

    wp-admin/includes/template.php の 3289 行目 (2.7 の場合) にローカライズ文字列があるんですが、これまた ja.po の方では複数形になっていて、ローカライズが効きません (2.7 ベータ版にあった Spam とかと同じ現象)。

    これを直すには、Pending に conditional 文字列をつけて Pending|post として、_c() 関数を使い、1つローカライズ文字列を増やすのがよいと思われます。ズボラするには ‘Pending’ を ‘Pending Preview’ に変更してしまう手があります。

    # ja.po の 1586 行目に “Pending|adjective” → “承認待ち” がありますが、
    # これはコメント用なので使えません。あくまで「レビュー待ち」と翻訳されるべきなので。

    2.7 ベータ版における Spam, Approved とかもそうですが、*.po ファイルでは plural になっているローカライズ文字列を、*.php の方では __() とかの単数形用関数で呼び出すというミスマッチは明らかにバグなわけで困りますね。

    こういうコーディングミスをうまく検出する方法はないんでしょうか?? *.pot ファイルの作成時に判明しそうな気もしますが……。

    モデレーター JOTAKI, Taisuke

    (@tai)

    すみません、この投稿を見逃してました。
    2.7.1日本語版では対処してません。

    このような本体の明らかなバグは私たちも結局はTracに投げることになるので、日本語版作成チームの返事を待たず遠慮なくTracに投げちゃってください:-)。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    日本語版作成チームの返事を待たず遠慮なくTracに投げちゃってください:-)。

    言語リソースの中身は日本語版作成チームが詳しいと思いますが、trac のパッチ案を後で直すこともできるので、「とりあえず投げる」のがいいかもしれませんね。今回も動きが早ければ、2.7.1 で直せたはずですから……。

    2.7.2 は出ないと思われるので、2.8 まで放置になっちゃいそうなのが、くやしいところです。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    trac に投げました。

    #9122: Localize string for recent comments mismatched.
    #9123: The word ‘Pending’ for posts must be separated

    かなりいい加減な英語で、意図が通じてるかちょっと心配です 😉 不自然と思う箇所があればツッコミをお願いします。

    以前投げた「#8801: Low privilege user can see email address of comment author by HTML source」はパッチもあるのに 2.7.2 送りにされてしまいました。HTML ソースを見ない限りバレないから安全という判断だとしたら、かなり残念です。誰でも登録可能としている WordPress ブログでは、個人情報の漏洩になりかねない不具合なんですが。

    あと、trac のサイトがいつのまにか core.trac.wordpress.org になってて Safari では SSL の証明書が確認できませんでした。Firefox では確認できたので、Safari がワイルドカード証明書を認めないという厳格な運用なのかな??

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「ダッシュボード「最近のコメント」の翻訳文字列」には新たに返信することはできません。