[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][TOP]

Re: gnome-utils - master


松澤です。

# なお、これらの選択肢にアクセラレータが付いていますが、
# 皆さんの環境では動作しますか?
開発版の2.91.0で確認しましたが、動作しませんでした。
この件についてはバグだと私は考えますが(後述)、意図的にそういう動作としているように見えました。
具体的には、
gsearchtool/gsearchtool.c:1078 で
  gchar * text = remove_mnemonic_character
(_(GSearchOptionTemplates[idx].desc));
とやっており、わざとアクセラレータキーを識別する先頭のアンダースコアを削除しています。
単純にアンダースコアを残すように修正して試してみたのですが、やはりアクセラレータは機能しませんでした。ちなみにこの場合はアンダースコアが文字の下線として表示されるのではなく、文字列順通り対象文字にアンダースコアが前置される形で表示されました。
(gtkのことは詳しくないのですが(汗)、そもそもリスト項目はアクセラレータが機能しないか、あるいは何か特別な方法があるのかもしれません。)
わざとアンダースコアを削除していることから、アクセラレータが機能しないこと自体は、そういうものなのだと言えるのかもしれません。

じゃあ、何がバグなのかと言うと。
アンダースコアを削除しているのに(言い換えればアクセラレータを無効にしているのに)、日本語で表示すると「〜変更した(D)」などのようにアクセラレータキーが表示されてしまうことが問題だと思われます。
ご存知のとおりですが、日本語ではニーモニックを表現するのに、言語の特性上、メッセージの末尾に対象文字をパーレンで括った符号を配置するという特殊な方法をとっています。
一方、原語となる英語ではメッセージ文字列中にダイレクトにアンダースコアを埋め込みます。
なので、英語の場合はアンダースコアを削除しても、まったく自然なメッセージであり(「_Date modified less
than」が「Date modified less
than」になるだけ)、かつニーモニックが見えないのでアクセラレータが機能しないことも明白になります。
これは日本語の都合を知らない海外の実装者の所以でしょうが、そもそもニーモニックを削除するのであれば、元からニーモニックを含めるべきではないでしょうし、何か理由があってそうしているとしても、実装としてアンダースコアが削除されることをコメントなりで翻訳者に伝えるべきでしょうし、何らかの方法で直しが必要になると考えます。
英語などのニーモニック埋め込み型の言語なら問題ありませんが、日本語では問題になります。

翻訳にニーモニックを含めない、という運用対処もありますが、そんな実装の都合を翻訳者に強要されても困ります。

少し長くなりましたが、以上が私なりの見解です。

-- 
Jiro Matsuzawa