syghの新フラグメント置き場

プログラミングTipsやコード断片の保管場所です。お絵描きもときどき載せます。

TortoiseGitの言語パックを削除する

TortoiseGitやGitに慣れたら、日本語の言語パックをインストールしてローカライズするとかえって分かりづらくなるし、いちいちバージョンアップのたびに言語パックを入れ直すのもダルいため、言語パックをアンインストールすることにしました。

しかし、コントロールパネルの「プログラムのアンインストール」では、TortoiseGitの言語パックが表示されない。
MSIインストーラーは修復やアンインストールも実行できるので、"TortoiseGit-LanguagePack-x.y.z.w-64bit-ja.msi" を右クリックしてコンテキストメニューから「アンインストール」を実行してみましたが、

この操作は現在インストールされている製品に対してのみ有効です。

と表示されてアンインストールできない。

推測するに、どうやらTortoiseGitの言語パックは以下の場所に言語DLLを配置するだけで、システムレジストリに情報を登録しているわけではないらしい。だったらMSIインストーラーなんか使うなよな……紛らわしいだろうが……

%ProgramFiles%\TortoiseGit\Languages

日本語のものとおぼしき以下のDLLをすべて削除することで、SettingsのLanguageに日本語が出てこなくなりました(1041はja-jpの言語ID)。

  • TortoiseGitBlame1041.dll
  • TortoiseGitUDiff1041.dll
  • TortoiseIDiff1041.dll
  • TortoiseMerge1041.dll
  • TortoiseProc1041.dll
  • TortoiseProc321041.dll

ローカライズは情弱への第一歩

日本語はほぼ日本国内でしか使われておらず、話者は概ね日本人に限られているのにもかかわらず、メジャーなソフトウェアやサービスはたいてい日本語にローカライズされていることが多く、日本人はかなり優遇されています。
しかし一般人はともかく、技術者は翻訳・ローカライズされた文言なんか読まないほうがいいです。日本語のドキュメントというのはことごとくクソで嘘だらけですから。特に最近は、極めて低品質で幼稚な機械翻訳が我が物顔で大量に氾濫しています*1
あと、無理やり直訳した不自然で古臭い用語が満載で、カビの生えた時代遅れのガラパゴスJIS規格を崇め奉る連中をなんとかして欲しい。JISが優れているのはSI単位系メートル法)を採用していることくらいです。
情報通信系のJIS規格を読んだことがある人は知っていると思いますが、あまりの直訳ぶりに読んでいてこっちが恥ずかしくなります。軽く明治時代くらいにタイムスリップした気分になれます。C/C++はまだマシなほうですが、C#のJIS規格を書いた人間はマジで死んでください。ちなみにJIS X 3010:2003はC99、JIS X 3014:2003はC++03、JIS X 3015:2008はC# 2.0相当ですが、JIS規格は全然改訂されておらず、完全に時代遅れとなっています。特にC#は完全に害悪でしかないので読まないほうがよいです。

MSのクソザコ機械翻訳

Microsoft Docs(旧MSDN)の日本語版はゴミクズみたいな機械翻訳であふれていますが、C#の言語仕様関連は一応人間の翻訳者が関わっているらしく、ある程度は読めるレベルになっています。ただ、誤訳もいくつか多々あるので、やはりMS Docsの英語版や、ISO規格またはECMA規格を参照するほうが正確です。

一例として挙げると、以下のように「with」キーワードが「ある場合」と誤訳されてしまっています(2021年現在)。

※2025-11-16追記:withの問題に関しては比較的最近修正されたようですが、この部分だけピンポイントで修正されたらしく、下記のように日本語の文法がメチャクチャで恥ずかしい翻訳を含んだ状態のまま放置されています。日本語ネイティブどころか、ちょっと文法を知っている人間であれば誰でもすぐに気づくような奇文であり、要するにドキュメント全体をチェックしているわけではないようです。

For example, @if is a valid identifier, but if isn't because if is a keyword.

たとえば、@ifは有効な識別子ですが、ififがキーワードであるためではありません。

このような極めて基本的な部分でお粗末な機械翻訳の名残が残っているようでは、とうてい信頼できるドキュメントとして利用することなどできません。他にも重篤なミスが放置されていると考えたほうがいい。このようなゴミをありがたがっているのは情弱だけです。

以下にも恥ずかしい機械翻訳の名残があります(2021年現在)。

The unary * operator is the pointer indirection operator.

単項 * 演算子は、*です。

アッハイ。そうですね。
翻訳に失敗した部分はゴッソリ削ってなかったことにしてしまうか、余計なものをしれっと捏造してしまうのが現在の機械翻訳の特性というか限界です。クソザコですね。
ちなみに人間による翻訳や通訳では、たとえ未知の語に遭遇したとしても文法構造と品詞さえつかめれば、未知の部分だけ原語のままにして全体の翻訳をいったん完成させることができるという柔軟性があります。
※2023-12-02追記:この問題に関しては修正されたようです。

以下では原文と日本語訳がまるで逆の意味になっています(2021年現在)。いったい何をどうしたらこんな初歩的なミスを犯すのか、小一時間問い詰めたい

The following example uses explicit typing in a foreach statement.

次の例では、foreach ステートメント暗黙の型指定が使用されています。

現在の機械翻訳の特性というか限界として、肯定と否定を逆に訳してしまうという致命的なミスを犯すことがときどきあるらしく、これもまたその系統の間違いなのかもしれません。あるいは暗黙の型指定(varによる型推論)を使っているforループの例と、明示的な型指定(char)を使っているforeachループの例が続いており、そのせいで翻訳がグチャグチャになってしまっているのかもしれません。いずれにせよ、おそらく機械翻訳をベースにして部分的に人の手を加えているので、こういったアホな誤訳が散見されるのだと思います。それにしてもひどい。
そもそも日本語はその後に続くコード例と一致しないので、ちょっと考えれば日本語が間違っていることに気づくと思いますが、こういう明らかなクソを放置している時点で程度が知れます。肝心な主力言語のリファレンスのメンテナンスすらコミュニティ任せにしているMSの日本人エンジニアの怠惰さとレベルの低さがうかがえます。特に最近のC#は言語仕様のアップデートが頻繁に入るようになったので、そういう意味でも翻訳が遅くて稚拙な日本語版は参照してはいけません。

以下も逆の意味です。命名規則において優先するべきは簡潔さ (brevity) ではなく明瞭さ (clarity) です。そもそもclarityの翻訳はどこいった。これもまるごとすっ飛ばして、なかったことにしてやがりますね。
しかし小さな子供でも語彙力さえあれば分かるような単純明快な文章の翻訳にミスするなんて何が起きたのか。こんなクソを放置していて恥ずかしいと思わないんですかね。

Prefer clarity over brevity.

簡潔さを優先します。

その他の事例

GoogleAndroid関連ドキュメントは、APIリファレンスは英語のみですが、機能や仕様などの技術的な解説記事やチュートリアルの多くは日本語に翻訳されています。MS Docsのクソ日本語版と違って丁寧で翻訳ミスも少なく、比較的有用です。ただし日本語版はNDKやAndroidXライブラリの更新履歴の反映などが遅く、情報が古いことが難点で、やはり英語版を優先的に参照するべきであることに変わりはありません。
※2024-03追記:
2023年からは、Androidの日本語版ドキュメントはCloud Translation APIによって機械翻訳されるようになったようです。これにより、最新の情報が反映されるようになりましたが、翻訳精度が低下しています。とはいえ、MSの機械翻訳と比べたらGoogleのほうが遥かに品質が上で、違いは歴然としています。MSの機械翻訳は相変わらず稚拙な迷惑メールレベルにとどまっていて、まったく使い物になりません。英語版の原文をGoogle機械翻訳にかけたほうがよっぽどマシです。
※2024-09追記:
ページによってはなぜかMSの機械翻訳なみ、あるいはそれ以上ににひどいものもあるようです。以下のドキュメントも、人間が翻訳していた頃はまともだったんですが、現在Cloud Translation APIで翻訳されたものは1行たりとも読むに耐えません。やっぱり機械翻訳はダメですね。開発者は必ず英語版の原文を読んでください。

Appleは現状テクニカルドキュメントに機械翻訳を採用していないらしく、APIリファレンスも昔から英語のみで、デザインガイドラインのような非エンジニアも利用するものだけ各国語に翻訳されているようです。個人的にはAppleのスタイルがベストだと思います。英語をまともに読み書きする能力のないエンジニアは所詮学習意欲もないので、ふるいにかけてもらったほうがいい。どれだけプログラミングに熟達していても、最新の正確な情報に触れる努力をしようとしないというのは致命的です。

developer.apple.com

日本人の大半は英語に苦手意識を持っていて、事実まともな英語運用能力を持っていません。ですが、何も努力せずローカライズに甘んじているようでは、いずれ世界の潮流に取り残されていくことは目に見えています。というかすでに取り残されています。日本は決して先進国ではありません。日本の政治家はどいつもこいつも知能が低く、国のトップには科学技術はおろか読み書きすら軽んじるようなバカどもしかいませんから、落ちぶれて当然です。そもそも現与党の自民公明は、日本の国土を外国人に売り渡し、国立大学を弱体化させて高等教育を破壊し国際競争力を低下させ、国民をコントロールしやすいように白痴化させようとしている国賊売国奴・犯罪者集団ですからね。

結論:日本語のドキュメントは読むな、信用するな。

※2025-11-16追記:
Mozillaのサポートページのドキュメントにも機械翻訳が導入され、あろうことかこれまでコミュニティが日本語に翻訳してきた資産をBotが上書きで破壊したようです。最低ですね。筋を通さず勝手にこんな暴挙をされれば誰でも協力などしたくなくなります。開発者向けのMDNに関しても機械翻訳が導入されるようになってしまうかもしれません。MDNに関しては、人力による翻訳の品質も微妙な部分はあり、翻訳しきれていない部分も多いので、自分は英語版のドキュメントを主に参照していますが、それとこれとは話が別です。
Firefoxは最近UIの改悪も多く、Mozillaの上層部には頭にウジ虫の湧いた魑魅魍魎が跳梁跋扈しているようです。今回の事案に関しては、英語以外読み書きできない連中(特にアジア圏を見下している連中)だけで意思決定していることが原因でしょうね。

gigazine.net
softantenna.com

*1:英語・ドイツ語・フランス語のように、ヨーロッパ言語同士であれば文法も比較的似通っており、1対1で対応する概念が多いので、雑な機械翻訳でもなんとかなるでしょうが、言語特性が対極の位置にある日本語は、英語との相互機械翻訳が特に難しい言語です。熟練の人間の翻訳家であれば適用分野や文脈といったシチュエーション、歴史、文化的習慣などの背景情報を暗黙のうちに考慮しますが、そういったことをしない今の機械翻訳のやり方では、学習データをどれだけ増やしても自然な翻訳には近づきません。