返信時の引用のヘッダ文の編集

 Apple Mail で「返信」すると、引用文の先頭に、
On 2006年 5月 1日 , at 23:04, ○○ wrote:
のように英語でヘッダ文が付きます(正式な呼称は知りません)。Eudora 等ではこれが自由に編集できるのですが、Apple Mail では標準機能ではできません。これを任意の言語のものに書き換えてしまいたい要求は、私以外にも、私の周囲には結構おります。素人考えでは、ライブラリの何らかの Apple Mail の設定ファイルをテキストエディターで書き換えてしまえばできるのではないかと思うのですが、いかがでしょう? 方法をご存知の方はいらっしゃいませんか?
 更に贅沢を言えば、複数の言語を登録しておいて、返信先の相手の使用言語に応じて、トグルして自由にメッセージを選べるようにできればとも思うのですが、さすがに、これは別途何らかの haxie を用意しないとダメでしょうねぇ...?

投稿日 2006/05/01 20:55

返信: 17

2006/05/05 20:49 Community User への返信

>ライブラリの何らかの Apple Mail の設定ファイルをテキストエディ
>ターで書き換えてしまえばできるのではないかと思う
/System/Library/Frameworks/Message.framework/Versions/B/Resources/Japanese.lproj/Delayed.strings
の中の下記の行が、Mail.app で返信時に引用部分の前に付記される文
字列の指定です:
"REPLY_ATTRIBUTION" = "On %1$@, at %2$@, %3$@ wrote:\n\n";
上記の文字列中の=以降のクォーテーションマークで挟まれている部分
が実際の指定文字列です。この部分を変更すれば、改変できます。
/System 配下にあるファイルの編集ですので Terminal で sudo を使って
vi/vim なり emacs なりを管理者権限にて起動して編集するか、Path Finder
や Pseudo などを使って Text Edit.app なりを管理者権限で起動してから
Delayed.strings ファイルを開いて編集しないと、保存できません。
作業前に、Delayed.strings のオリジナルをバックアップ保存してから作
業してください。

2006/05/07 11:17 Community User への返信

 大変有益なアドバイス、ありがとうございます。
 いただいたアドバイスに従って、Apple Mail を終了して、
    "REPLY_ATTRIBUTION" = "On %1$@, at %2$@, %3$@ wrote:\n\n";
の部分を
    "REPLY_ATTRIBUTION" = "%1$@@@ i´rta:\n\n";
(ハンガリー語)に書き換えてみました。
 しかし、再度 Apple Mail を起動しても、英語のままです。そこで念のため、PowerBook G4 を再起動してみたところ、見事、ハンガリー語に変身してくれました。ありがとうございます。どうやら、この設定はアプリケーション起動時に読み込むのではなく、システム起動時に読み込むようになっているようですね。
 ところが、問題は解決したかと喜んだのもつかの間、それは以下のようになってしまうのですね:
    2006年 5月 7日 -n, 06:45-kor, ***** i´rta:
(「*****」は返信する元のメールの差出人の名前)。つまり、日付の部分が日本語になってしまうのです。(そう言えば、デフォルトの設定でも“On 2006年 5月 7日”のようになっていましたね。これは、英語としてもちょっとねぇ...。)
 「システム環境設定」→「パーソナル」→「言語環境」→「書式」→「地域」では「カスタム」にしてあり、日付は「すべて」で「2006年 5月 7日 日曜日」、「長」と「中」で「2006年 5月 7日」、「短」で「2006.05.07.」のように表示するように設定されております。ここで、日付が「短」の「2006.05.07.」で表示されれば問題は解決します(ハンガリー語では日本語同様に、年・月・日の順の表示なので)。
 「%1$@」の部分をどうにか書き換えれば、「短」表示に変更できるのでしょうか? また、ハンガリー語の場合は、「短」で日付が表示できれば良いのでしょうが、他の言語にしたい方の場合は、「07/05/2006」のようにしたい場合もあるでしょう。そういう場合はどうしたらよいのでしょうか? また、こういう設定に関する文書が登録されているサイトなどはありますでしょうか?
さらに謎なのは、"%1$@@@ i´rta:\n\n" の設定において、時間の部分はちゃんと“06:45-kor”のように時刻とハイフンの間にスペースが入らないのですが(入ってはいけない)、日付の部分は“2006年 5月 7日 -n”のように、“7日”と“-n”の間にスペースが入ってしまっていることです。これはどうしたら防げるのでしょうか?

2006/05/07 12:25 Community User への返信

>「%1$@」の部分をどうにか書き換えれば、「短」表示に変更できるの
>でしょうか?
「システム環境設定」→「パーソナル」→「言語環境」→「書式」での
設定が 〜/Library/Preferences/.GlobalPreferences.plist の中の Apple
ICUDateFormatStrings 及び AppleICUTimeFormatStrings に記録され
ます。しかし Mail.app が Message.Framework の Delayed.strings 経
由で呼び出す日付と時間の形式を「短」・「中」・「長」・「すべて」
から任意に呼び出せるようにはなっていないので、日付は現状の「中」、
時間は「短」に決め打ちされているように思います。ここら辺を柔軟に
変更可能にする plug-in があれば、Mail.app の設定で自在に変更可能
になるとは思いますが、現状では無理です。
"ISO-8601:2004 "Data elements and interchange formats -- Information
interchange -- Representation of dates and times" と言う文書の中で
Date and time represents a specified time of a specified day. When
use is made of the calendar date the representation is:
YYYY-MM-DDThh:mm:ss
where the capital letter T is used to separate the date and time
components. Thus, for a very precise date and time, look at this:
Example: 2003-04-01T13:01:02 represents one minute and two
seconds after one o'clock in the afternoon of 2003-04-01.
と言う記述があります。これに従って、設定してみると地域・言語に関わ
りなく一定の形式で日時を同じフォーマットで表記できます。そのように
「システム環境設定」→「パーソナル」→「言語環境」→「書式」の日付
と時間をカスタマイズしてみるとどうでしょう?私は 5〜6 年前からそう
しています。
日付と時間のセパレータである「T」方は、Delayed.strings の REPLY_
ATTRIBUTION の方で
"%1$@T%2$ 〜〜〜:\n\n";
みたいにハードコーディングしておけばいいですし、T を空白で代用し
ても良いようです。又、%2$@ の方の時間は、時間帯を表す (+09:00)
も追加しておいた方が送信者にも受信者にも明確になりやすいでしょう。

2006/05/07 12:50 Community User への返信

 Mac OS X が使用言語に応じて色々な書式を自動設定してくれるのは親切ではあるのですが、融通が利かないのが難点ですね。“On 2006年 5月 7日”なんて誰が見てもおかしいのに、未だに問題になっていないようですものねぇ...。いや、多分、「おかしい」という意見は米国本社に出されているのでしょうが、「仕様だ」で済まされているのだと思います。返信先が日本語ができない相手だといちいち修正するのが面倒です。
 ISO で YYYY-MM-DDThh:mm:ss のように「年・月・日」になっているというのは面白いですね。(原文はチェックしていません。何で ISO の文書ってこんなに高いのでしょうね?)しかし、これだと、「2006-05-07T15:39」のように「T」も表示されてしまうのでしょうか?(これから実験をやってみます。)
 で、先ほどもお尋ねしたことですが、「"%1$@@@ i´rta:\n\n" の設定において、時間の部分はちゃんと“06:45-kor”のように時刻とハイフンの間にスペースが入らないのですが(入ってはいけない)、日付の部分は“2006年 5月 7日 -n”のように、“7日”と“-n”の間にスペースが入ってしまう」問題は解決方法はないのでしょうか?
 ちなみに、時間帯を表わす (+09:00) ですが、これはもう最初から固定で決め打ちでそう入力しておくのでしょうか? それとも、やはり何かの関数が使えるのでしょうか? もっと言えば、Apple Mail の表示時刻は、受信時の日本時間ではなく、送信者の「現地時間 (時差)」という表示にしたいのですが、それは不可能なんでしょうね? Eudora なんかではそういう設定ができるのですが...。(今では、Eudora で「返信」を作成して、その引用ヘッダ部分だけをコピペして、Apple Mail の「返信」編集文書の引用ヘッダ部分に置き換えるような**なまねをしています...。)

2006/05/07 13:46 Community User への返信

 〜/Library/Preferences/.GlobalPreferences.plist の中の Apple
ICUDateFormatStrings の「中」の日付設定を書き換えてみました。しかし、考えたら「システム環境設定」→「パーソナル」→「言語環境」→「書式」で変更すれば良かったことでした...。
 これだけで、/System/Library/Frameworks/Message.framework/Versions/B/Resources/Japanese.lproj/Delayed.strings を再度いじることなく、うまく「2006.05.07.-n, 15:06-kor, ***** i´rta:」のように表示されました。とりあえず、当方の初期の目的はこれで達っせられました。大変お世話になりました。ありがとうございました。
 後は、この日時を到着日時ではなく、送信者のローカル日時で表示し、世界標準時との時差が追加して表示されれば万々才なのですが...。
 /System/Library/Frameworks/Message.framework/Versions/B/Resources/Japanese.lproj/Delayed.strings の方で (+09:00) という文字列を入れてしまうという方法もあるかと思いますが、海外にも行くもので、やはりダイナミックに自動的に変更されるようになればと思っています。
 ちなみに、“〜:\n\n”の“\n\n”はどういう意味なのでしょう? こういうのはどの文献を見ればわかるのでしょうか?

2006/05/07 16:10 Community User への返信

>時間帯を表わす (+09:00) ですが、これはもう最初から固定で決め打ち
>でそう入力しておくのでしょうか?
「システム環境設定」→「パーソナル」→「言語環境」→「書式」で時刻
をカスタマイズして「短」の分の表示の後ろに「JST」という表示を追加さ
せる方法もありますが、その場合、「JST」 か 「Japan Standard Time」
と言う選択肢しかなくて、「+0900」とか「+09:00」と言う表記法の選
択肢が現状の仕様としてはないのです。ですので、Message.Framework
の Delayed.strings で 「%2$@ (+09:00)」という風にハードコーディン
グする方法で代用するわけです。JST では日本人や近隣アジア諸国の人に
は分かると思いますが、世界中の人がすぐに日本時間であると認識できな
い可能性の方が高井からです。認識したとしても、実際の時差がすぐに分
かると言う人はさらに少ないでしょうし、日本時間には夏時間がない、と
言うことも普通は知らないでしょうから、「システム環境設定」→「パー
ソナル」→「言語環境」→「書式」の「時刻」で JST を追加するよりも
Delayed.strings の中に (+09:00) とハードコーディングした方が現実的
な選択だと思います。
>受信時の日本時間ではなく、送信者の「現地時間 (時差)」という表示
>にしたいのですが、それは不可能なんでしょうね?
これは現在の Mail.app 及びシステム環境設定の書式設定の仕様としては
無理です。将来の Mail.app 3 や Leopard の書式設定で実現して欲しい
と言う要望を Tell US してみるのがいいでしょう。

2006/05/07 16:18 Community User への返信

>Delayed.strings の方で (+09:00) という文字列を入れてしまうという
>方法もあるかと思いますが、海外にも行くもので、やはりダイナミッ
>クに自動的に変更されるようになれば
現状の Mail.app とシステム環境設定の書式設定が実現している機能には
残念ながら、そう言う機能はありません。iCal の時間帯サポート機能の
ように実装することは可能だと思いますので、将来の Mail.app 3 や
Leopard への要望を Tell US すればいいでしょう。
>“〜:\n\n”の“\n\n”はどういう意味なのでしょう?
「\n」で一つの改行です。二つ続けてあるので、この場合、改行が二つ
入ります。改行を一つにすると、REPLY_ATTRIBUTION 行の下に直ぐ引
用文がコピーされます。改行が二つあると、空白行が一行入り、REPLY_
ATTRIBUTION 行と引用文の最初の行の双方が読みやすくなります。

2006/05/07 16:21 Community User への返信

>“\n\n”はどういう意味なのでしょう?
"\n" は改行コードです(newline)。改行コードを二つ入れるという指示ですね。
おそらく"\t"だとタブコードが入るでしょう。
> こういうのはどの文献を見ればわかるのでしょうか?
文献は存じませんが、C言語でプログラムをしたことがある人間ならすぐにわかります。

2006/05/07 16:32 Community User への返信

  おおなるほど。改行を2回だったのですね!(いや、多分「改行」のことなんだろうなとは想像していたのですが...。)私の場合は、逆に改行が2行あると、間延びしたようで好まず、いちいち手作業で削除していたので、これでこの問題も解決しそうです。ありがとうございました。

2006/05/07 16:34 Community User への返信

  おおなるほど。C言語ですか...。私はプログラミングはやりませんもので存じませんでした...。(いや、言われてみれば、そんなことをかつて聞いたこともあったような...。)

2006/05/07 16:57 Community User への返信

改変前のオリジナルの Delayed.strings を Delayed_bak.strings の様
にバックアップされたと思いますが、念のため、改変後の物も例えば
Delayed_mod_bak.strings 等として保存されることをお勧めします。
将来的に Mac OS X 10.4.x の minor update で Message.framework
がアップデートされて
/System/Library/Frameworks/Message.framework/Versions/B/Resources/Japanese.lproj/Delayed.strings
から
/System/Library/Frameworks/Message.framework/Versions/C/Resources/Japanese.lproj/Delayed.strings
の様になった場合、せっかく改変した Delayed.strings がなくなる可能
性があるからです。

2006/05/07 17:16 Community User への返信

>「おかしい」という意見は米国本社に出されているのでしょうが、
>「仕様だ」で済まされているのだと思います。返信先が日本語が
>できない相手だといちいち修正するのが面倒です。
Japanese.lproj の中にある Delayed.strings の REPLY_ATTRIBUTION
行の文字列が「"On %1$@, at %2$@, %3$@ wrote:\n\n";」と言
うのは考え方にもよりますが、多分ローカライズミス(し忘れ)の
様な気がします。
尤も、「"%1$@の%2$@に%3$@さんが書かれました:\n\n";」と
言うようにローカライズされていたら日本人同士や日本語を読み書
きできる海外の方とのメールでは問題ないですが、外国語で海外の
方へ返信される場合に REPLY_ATTRIBUTION 行だけ日本語のまま、
と言うのもおかしな事になりますので、「その部分はローカライズ
しないのだ」という発想なのかもしれません。
いずれにせよ、REPLY_ATTRIBUTION 行は署名のようにもっと自由
に設定でテンプレート化して、ポップアップメニューから選択でき、
かつ、表示時間を送信者側の物にするか、受信者側の物にするか、
の選択も可能で、又、現在使用者が旅行中などの時に時間帯設定を
システム環境設定の時間帯設定でも iCal の様に簡単にダイナミック
に変更できるような仕様に発展することが望ましいと思います。

2006/05/07 19:29 Community User への返信

 \n\n を \n 1つのみにしたのですが、何と、引用のヘッダと引用文の間の空白行が全く減りません! 相変わらず1行空いています...。なぜなんでしょうね?(予想外の結果です。)

2006/05/07 19:59 Community User への返信

 はい、そこは万端怠りなく、別の方法で新しいファイルもバックアップを取ってあります。わざわざお気遣い、ありがとうございました。

2006/05/07 20:12 Community User への返信

 私は、こういうものの設定が何でも英語にされてしまうのには違和感があるのですが、それでも、日本語と英語が混在しているようなのは一番困りますね。受信者が日本人および外国の方々の両方があるわけですから、デフォルトでは日付表示も含めて英語表示の方がまだましだと考えています。(日付に関しては、米語表示よりも英語表示の方がより国際的かと...。ハンガリー語では日本語と同じ「年・月・日」ですが、英国および欧州大陸のほとんどの国では — 多分、ハンガリー以外は全部? — 正逆の「日・月・年」となっており、これはこれで論理的ではあります。しかし、米国の「月・日・年」という表記はわけがわかりません。)
 「システム環境設定」の「言語」の「書式」では、色々な言語で日付等の設定ができます。なんと、エスペラント語まで用意されておりました。驚きました。ここまでできるのであれば、返信メールの引用ヘッダ部分も、使用言語によって、ポップアップ形式などで自由に選べるようにできればよいと考えますし、多分、そんなに難しいことではないのではないかと思います。それが実現すれば、多くの人はそれの必要性をあまり感じていなかったにせよ、そういうことができるとわかった途端に Apple Mail のアドバンテージとなると確信しております。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

返信時の引用のヘッダ文の編集

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。