通知に出るアプリ名を KxNotifyUtils だけにする - #42
Conversation
トレイのバルーンは Windows 10 以降でトーストとして描かれ、パッケージ化して いない exe ではアプリ名の行が FileDescription から引かれる。そこに 「各種通知を XSOverlay へ中継する常駐アプリ」と入っていたため、通知のたびに 長い 1 行が出ていた。 FileDescription をアプリ名だけにする。 説明文は Comments へ移す。exe のプロパティには出るが、通知には出ない。 文言を捨てないのは、CI の文字化け検査に日本語が要るためでもある。 ASCII はどのコードページで読んでも同じになるので、全て ASCII にすると issue #25 で入れた検査が符号化の誤りを素通りさせるようになる。 CI は FileDescription と Comments の両方を .rc と突き合わせる。 実質の検出力は Comments 側が持つ。
|
通知は下記にしてください KxNotifyUtils |
指定された文言に合わせる。 KxNotifyUtils 更新の取得を開始 0.0.2-test9 を取得しています 題は体言止めにし、本文からは「終わったらお知らせします」を落とす。 取得が終われば notify.update_downloaded が出るため、 予告が無くても知らせが届かなくなるわけではない。
|
本文の「終わったらお知らせします」も落としています。書いていただいた 3 行にその一文が無かったためです。予告を消しても知らせが届かなくなるわけではありません。 取得が終われば 英語も揃えました( 1 点、決めていただきたいことがあります題を体言止めにしたのは、いまのところこの 1 つだけです。 他の通知の題は #26 で敬体へ揃えてあります。 短い題は体言止めのほうが読みやすいので、他の題も揃えるならまとめて直します。 その場合は この 1 つだけでよければ、このままにします。 Generated by Claude Code |
|
まとめて直してください |
「更新の取得を開始」だけが体言止めで、他の 16 件は敬体のままだった。 バルーンの題は 1 行しか出ず、長いと途中で切られる。 「更新を取得できませんでした」より「更新の取得に失敗」のほうが 同じことを短く言える。何が起きたかは題で分かればよく、 事情と対処は本文が受け持つ。 本文は敬体のままとする。あちらは利用者への語りかけであり、 「回線を確認してください」を体言止めにすると指示に読めなくなる。 update_no_asset は「更新を取得できません」から 「更新の実行ファイルが未添付」へ変えた。取得の失敗(回線)と 添付の欠落は対処が違うので、題の時点で分かれるようにする。 i18n.cr の文体の方針にも書き足す。
|
1 件だけ、短縮以上のことをしています
そのまま縮めると「更新の取得に失敗」と「更新の取得が不可」で見分けがつかなくなるので、題の時点で分かれるよう「更新の実行ファイルが未添付」にしました。 本文は敬体のまま
英語の題は触っていません。英語には敬体・常体の区別が無く、いまの短い文で収まっているためです。 Generated by Claude Code |
|
すいません今の変更を取りやめます |
This reverts commit 82fca57. 一括で揃える案を取り下げる指示があったため戻す。 他 16 件の題は敬体へ戻り、i18n.cr の文体の方針も元に戻る。 指定のあった「更新の取得を開始」と本文の短縮(64bd189)は残す。
|
ご指定の分は残しています。 戻ったのは他の 16 件の題で、
この PR に残るのは次の 2 つです。
Generated by Claude Code |
何を直したか
トレイのバルーンは Windows 10 以降でトーストとして描かれ、パッケージ化していない exe ではアプリ名の行が
FileDescriptionから引かれます。そこに説明文が入っていたため、通知のたびに長い 1 行が出ていました。FileDescriptionをアプリ名だけにします。この行が
FileDescriptionから来ていることは #25 の調査で確定済みです。あのとき化けていた文字列を CP1252 で読み直すと、FileDescriptionの値と 1 文字ずつ一致しました。説明文は
Commentsへ移した消さずに移しています。理由は 2 つあります。
Commentsは Windows のプロパティ → 詳細に「コメント」として出ますが、通知には出ません2 つ目が重要です。#25 で入れた「バージョン情報が文字化けしていないことを確かめる」は、exe から読んだ値と
.rcの値を突き合わせるものでした。FileDescriptionをKxNotifyUtilsにすると、その検査は符号化の誤りを検出できなくなります。ASCII はどのコードページで読んでも同じになるためです。#pragma code_page(65001)が落ちても素通りする状態に戻ってしまうので、日本語を含む文字列を.rcのどこかに残す必要がありました。CI の検査
2 つのフィールドを回して突き合わせるようにしました。
実質の検出力は
Comments側が持ちます。FileDescription側はリソースが正しく載っていることの確認です。確かめたこと
.rcに当てる正規表現が両フィールドを正しく拾うこと(FileDescription→KxNotifyUtils、Comments→ 説明文)action.ymlが YAML として壊れていないこと(ステップ 4 つを確認)scripts/build.ps1が-Versionで書き換える 4 つの正規表現(FILEVERSION/PRODUCTVERSION/VALUE "FileVersion"/VALUE "ProductVersion")が、追加した行と衝突しないことcrystal spec242 examples, 0 failures確かめられていないこと
rc.exeは Linux で動かせないため、リソースが実際にコンパイルを通るかは CI の Windows ジョブが初めての確認になります。とくにVERSIONINFOブロックの内側へ入れた//コメントです。RC のプリプロセッサはコメントを字句段階で落とすため括弧の内外で差は出ないはずですが、手元では確かめられません。表示そのものは実機で見る必要があります。
KxNotifyUtilsになることGenerated by Claude Code