INASOFT 管理人のひとこと


フリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。
2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。
・INASOFT Webサイト: https://www.inasoft.org/
・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/

目次 | ←前へ / 2021-11-21 00:00 / 次へ→ / 最新へ⇒

■マイクロソフト社からWindows 11(英語)の仮想マシンイメージが公開されたので試したら…早速バグが!

2021年11月21日(日) 0:00:00



RSSRSS配信中

https://www.inasoft.org/








大変ありがたいことに、Microsoft社が「Windows 11」ベースの開発者向け仮想マシンを無償公開してくれることになりました。

こういうことは以前にもあって、Windows 7, 8.1, 10のテスト用の仮想マシンの提供もしてくれています。ただし、英語版です。

僕は自宅ではVirtualBoxを使っているので、VirtualBox用の仮想マシンをダウンロードして利用しています。

で、今回、Windows 11(Enterprise評価版、英語)の提供を受けて、早速試してみることにしました。

英語版ということもあり、技術用語の英語の勉強にもなったりします。例えば、。

Windows 11(Enterprise評価版、英語)

日本語版で「悪意のあるソフトウェアの削除ツール」とは、原語では "Malicious Software Removal Tool" となっています。Malicious Softwareは、日本語ではマルウェアとされることが多いですが、日本語版ではあえて「悪意のあるソフトウェアの削除ツール」と直訳されていたことが分かります。

それから、一時期話題になっていた……というか、今でも話題になっているのがこれ。

あなたはそこに○○%です、の英語

日本語版では「あなたはそこに30%です。」と翻訳され、失笑…というか本気で、マイクロソフト社の技術力が落ちたんだなと実感させられてしまったという人もおおいのですが、原語では「You're 30% there. Please keep your computer on.」となっており、やはり直訳だったんだなと分かります。直訳というか、機械翻訳というか。

その他に、技術用語以外の部分については、中学校レベルの英語力でも読めたりしますね。

Windows 11(Enterprise評価版、英語)

例えば、「メモ帳 - タイトルなし への変更内容を保存しますか? 上書き保存 / 保存しない / キャンセル」は「Notepad - Do you want to save changes to Untitled? Save / Don't Save / Cancel」になっています。なお、Untitled(タイトルなし.txt) はデフォルトのファイル名です。

そういえば、昔のWindowsで、「○○してもよろしいですか?」は「Are you sure you want to ○○?」を使っていたことを見て、英語での控えめな確認表現ってこんな感じなんだな、と思ったことがありました。


さて、余談はこれくらいにして。このテスト環境を用いて動作検証を行うことにしました。

当サイトで公開している各ソフトのうち、いくつかのものは、日本語環境以外で動作させると、英語版として動作するようになっています。なので、ごく最近追加したバルーンチップ(トースト)機能がどのように動作をするのか、一応を見てみることにしました。

英語だけになるはずのところに、何故日本語が?

ん?早速、違和感。なんで、日本語の名称が出てくるんだ?

実は日本語だけの時もおかしな感じだった

そういえば、日本語の時点でおかしいことに気づくべきでした。「マウスのお供」という名前が2つ表示されています。ということは、1つ目の文字列がどこから得た情報なのか?よくわかりません。バルーンチップ(トースト)を出すためのAPIには、タイトル1つとメッセージ1つしか伝えていないので。

で、どうやら、バージョン情報のFileDescriptionから勝手に拾ってきているっぽいことが分かりました。環境を日本語以外と判別して、それ以降の時点で英語モードで動いていたとしても、プログラムリソース内のバージョン情報のFileDescriptionは日本語だから、日本語が出てしまうということのようです。これはマズイ…。

バージョン情報のFileDescription

実はWindows 10でも下に小さく表示されていたのか。見逃してた…。
実はWindows 10でも下に小さく表示されていたのか。見逃してた…

というわけで、プログラムリソース内のバージョン情報のニュートラル言語ブロックを、様々なソフトウェアに追加していく作業をこれからやっていくことになります。

バージョン情報にニュートラル原語ぼろっくを追加してFileDescriptionを英語にする

ああ、先に気づけていれば、一昨日まで行っていたWindows 11への対応のための全ソフト一斉更新と併せて実施し公開することができたのに……。ただ、残念なことに、仮想マシン版はWindows 11登場からしばらく経ったからこそ提供していただけたものなので、先に気づけたら…という仮定は(仮想マシンの公開を予見して対応行動を遅延させていた場合くらいしか)原理的にあり得なかったとも言えそうです。

ところで、プログラムリソース内のバージョン情報のニュートラル言語ブロックを追加しようとして、ふと気づきました。これをやってしまうと、exeファイルを右クリックしたときに表示されるファイルの説明は、ニュートラル言語ブロックで書いたものに引きずられてしまうみたいですね。これでは本末転倒。そもそも多言語対応はおまけ機能であり、本来の日本語環境向けの説明が疎かになってしまっては、元も子もない。さて、どうしようか…。

日本語環境でもファイルのプロパティが英語になってしまう

BeginUpdateResource / UpdateResource / EndUpdateResource というAPIがあるらしいが、これらはexeファイルを直接書き換えてしまうようなので、ちょっと違う。あくまで実行中の自プロセスのバージョン情報をメモリ上だけで?一時的に書き換えるようなテクニックが必要。あるいは、トースト機能に追加で情報を与えられないだろうか。

【追記1】それとも、別の手段でトースト表示だけを行うようにするとか。例えば、PowerShellを呼び出してトースト表示をするとか。
(以下のコマンドを1行で実行する)

PowerShell -Command "$ti = \"Mouse no Otomo\";$me = \"Close the dialog box.\";
$t=[Windows.UI.Notifications.ToastNotificationManager,Windows.UI.Notifications,ContentType=WindowsRuntime]::
GetTemplateContent([Windows.UI.Notifications.ToastTemplateType, Windows.UI.Notifications, ContentType=WindowsRuntime]::ToastText01);
$t.GetElementsByTagName(\"text\").Item(0).InnerText=$me;
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($ti).Show($t);"
PowerShellでトースト表示

これならば、余計な1行がそもそも表示されないで済む。ただし、PowerShellを呼び出してから、トースト表示が行われるまで、時間がかかるという問題アリ。(特に初回は)何秒か待たないといけないのがツライ。それから、Windows 10の一部環境でうまく動かないという現象も確認されてて、これで完全に解決とはいいがたい。

自由な形式で出したければ、自力でウィンドウを作って、自力でアイコンを置いて、自力で文字を置いて、バルーンっぽいウィンドウを表示すればよいのですが、おまけ機能のためだけにそこまで労力を掛けるのも、ちょっと違う気がする…。



【追記2】というわけで、本件への対応はいったんペンディングにして、良い(簡単な)解決法が見つかったら対応を行いたいと思います。明日付で4つのソフトウェアの更新を行いますが、上記の対応は行われていません。



目次 | ←前へ / 2021-11-21 00:00 / 次へ→ / 最新へ⇒


目次の表示:


ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメールフィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。
当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。本ページは公開から1年半後の任意のタイミングで削除される予定です。




2680877 (+0304)[+1424]

Copyright© 2010-2021 INASOFT