HN 日本語サマリー

← 一覧へ戻る
プログラミング

ポーランド語の「Ś」が消える奇妙なケース

The curious case of the disappearing Polish S (aresluna.org)

216 pointsby colinprince73 コメント

要約

この記事は、Mediumでポーランド語の「Ś」が入力できないというバグを巡る話です。このバグは、ポーランド語のキーボードレイアウト、共産主義時代のPC輸入制限、長年のCtrl+S保存習慣、そしてMicrosoft Windowsのアクセシビリティ機能という、数十年にわたる4つの要因が偶然に重なって引き起こされました。最終的に、これらの歴史的背景と技術的な相互作用が、なぜ特定の文字だけが消えるのかという謎を解明する鍵となりました。

全文翻訳

ポーランド語の「Ś」が消える奇妙なケース 30年越しのキーボードバグ 数週間前、Mediumでこんな報告を受けました。「ポーランド語で記事を書き始めたのですが、Ś以外の文字はすべて入力できます。Śのキーを押しても、文字が表示されないのです。Mediumだけで起こります。」これは奇妙でした。私たちは言語を特別扱いしているわけではありませんし、もしそうだとしても…ポーランド語の32文字のうち、なぜこのランダムな文字だけが問題を引き起こすのでしょうか? 結局、それはそれほどランダムではありませんでした。これは、数十年(あるいは数世紀)にわたる4つの偶発的な要素が組み合わさり、最も奇妙なバグを引き起こし、それをどのように修正したかという物語です。 要素 1/4: ポーランド語 ポーランド語は、ロシア語のすぐ後、ウクライナ語のすぐ前に位置する、2番目によく使われるスラブ語です。しかし、これら2つとは対照的に、ドイツ語やフランス語のような西ヨーロッパ言語と同様に、ポーランド語は英語/ラテン語アルファベットにいくつかのカスタマイズを加えて使用します。これは基本的な英語アルファベットで、古典的なラテン/ローマ字アルファベットとほぼ同じです。 ポーランド語の元の単語にはQ、V、Xは含まれていませんが、ラテン語や他の借用語のために残されています。 しかし、その3つの代わりに、ポーランド語はラテン文字を基にした9つの追加のダイアクリティカルマークを追加しており、すべてが比較的頻繁に使用されています。 20世紀初頭から、タイプライターは追加の9文字に対応する必要がありました。アメリカのタイプライターとポーランドのタイプライターを比較すると… …キーボードの右側を見ると、ŁとŻの2つのダイアクリティカルマークが独立したキーに昇格し、残りは数字とキーを共有していることがわかります。(タイピストは、ラテン文字を入力し、バックスペースを押し、アクセントを上書きして適切な文字を「シミュレート」することで、残りの7文字の大文字を作成するよう推奨されていました。これはタイプライター時代には珍しいことではありませんでした。) 追加の文字のためのスペースを見つけるために、タイプライターはいくつかの句読点、特にセミコロン(コンマ+バックスペース+コロン)と括弧(スラッシュで代用されるのが一般的)を廃止する必要がありました。 要素 2/4: 共産主義 1980年代の初期パーソナルコンピューティングに興味のある人にとって、ポーランドの共産主義は2つのことを意味しました。自由に使える所得が少ないこと、そして西側からのコンピュータの商業輸入が禁止されていたこと(個人の輸入は、十分な外貨とそれを手に入れる手段があればまだ可能でした)。 私はポーランドで育ちました。私の最初のコンピュータ、素晴らしいAtari 800XLは、1979年のオリジナル技術で、1983年に再パッケージ化されたものです。私は1986年に中古でそれを手に入れました。これは珍しいことではありませんでした。鉄のカーテンの向こう側では技術が遅れていました。ほとんどのコンピュータは西側から輸入されていました。 商業輸入が禁止されていたため、長い間、ポーランドでコンピュータを使用できるように準備できる商業的な事業体が存在しませんでした。外国のコンピュータは、オリジナルの説明書、未翻訳のソフトウェア、そしてこのようなアメリカのキーボードが付属していました。 フランス、ドイツ、その他の国々が、その前のタイプライターのレイアウトを忠実に反映したカスタマイズされたキーボードを備えた初期のPCを手に入れたのに対し… フランス語AZERTYおよびドイツ語QWERTZレイアウトの初期IBMキーボード …ポーランドでは、私たち独自の言語に固有の追加の9つのダイアクリティカルマークを入力する別の方法を見つける必要がありました。私たちの追加文字はラテン語の対応物と非常によく似ていて、文字分布の約8%に過ぎませんが(スクラブルをプレイする際には嫌になるでしょう)、重要です。ただ入れ替えるだけでは済みません。 これらの2つの似たフレーズを考えてみてください。 完全に互換性がある、ですよね?まあ、そうではありません。 他にもそのような例があります。実際、その初期のPC時代には、私のフルネームであるMarcin Kazimierz Wicharyに、私の人生を複雑にするようなダイアクリティカルマークが含まれていなかったことにさえ満足していました。しかし、きっと何かできることがあるはずですよね? キーボードに戻りましょう。ハードウェアに手を加える必要があるので、それを変更することはできませんが、賢い解決策を見つけることはできます。2つの修飾キーがあります — Ctrl(今日のCaps Lockがある場所)とAltです。Ctrlは、Ctrl+CとCtrl+Vがコピー&ペーストの一般的な手段になる前から、共通のショートカットキーとして使われていました。しかし、Altは比較的珍しいものでした。こうして、8つのダイアクリティカルマークをそれらのラテン語の対応物に割り当て、1つを近くの何かと割り当てるというデファクトスタンダードが生まれました。 人々は古いレイアウトを「タイピストの」、新しい発明を「プログラマーの」と呼び始めました。これは、初期のPCユーザーがほとんどプログラマーだったからか、あるいはプログラミングでよく使われるすべての句読点記号が保存されていたからかのどちらかです。新しいレイアウトは人間工学的な悪夢でした—これらの文字の多くが左の孤立したAltに非常に近く、同じ手で押す必要があることを見てください—しかし、理解しやすく、高価なハードウェア変更や安価な変更(例えばステッカー)も必要ありませんでした。それは定着しました。 他のいくつかの近くの国々—ルーマニア、そして当時のチェコスロバキア—も同様のスキームを考案しました。この設定は非常に成功したため、10年後に適切なタイピストのキーボードが登場し始めたときでさえ、約80年前に理想的とは言えないQWERTYが台頭したのを反映して、ほとんど誰もそれらに切り替えませんでした。 現代のタイピストのレイアウトと現代のプログラマーのレイアウト(またはアメリカのキーボード) 要素 3/4: 古い習慣はなかなか抜けない 今日では一般的な自動保存も、適切なタイミングを待つ必要がありました。特に1980年代、さらには1990年代には、ドキュメントの保存は時間がかかり(フロッピーディスクドライブを起動してディスクに書き込むのに時間がかかりました)、使用しているメディアをゆっくりと摩耗させ、時にはCPUを非常に集中して占有し、他の何にも使用できなくなることもありました。手動での保存は、今日でいうバックアップと同じでした。自分のために学ぶ必要のある習慣です。 不運な人は、残酷で頻繁にクラッシュする傾向のあるコンピューターで何時間も作業し、作業を保存し忘れたことに気づくというつらい経験を通してそれを学びました。私もその一人です。私たちは皆、一息つくたびにCommand+SまたはCtrl+Sを押すことを学びました。時には段落ごとに。しばしば、文ごとに。その後は、2語ごとにさえ。Ctrl+Sは人々の運動記憶に埋め込まれたキーストロークとなり、白紙のページを恐れることと同じくらい書くことの本質的な一部となった習慣でした。 そしてその習慣が彼らに牙をむきました。Webベースのエディターで書いている場合、保存キーの組み合わせを押すとデフォルトで起こるのは、ブラウザーウィンドウです。現在のウェブサイトのHTMLコードを保存するという完全に役に立たないオプションを提供し、多くの場合、遅く、迷惑なアニメーションで通知します。 Mediumでも、昔は同じでした。 しかし、ある時点で、保存ダイアログを消すためにエディターに少しコードを追加しました。 ```javascript if ((e.metaKey || e.ctrlKey) && e.keyCode === goog.events.KeyCodes.S) { this._editors.save() e.preventDefault() } ``` これは次のように翻訳されます。SがCommand(Macintoshで使用されるmetaKey)またはCtrl(WindowsまたはLinux PCで使用される)と一緒に押された場合、まず:エディターに作業を保存するように促し(いずれにしても自動保存されるのですが)、次に:通常起こるはずの他のすべてを防ぎます…この場合は迷惑なブラウザーの保存ダイアログです。 これは正しいことだと感じられました。(必要であれば、メニューから保存ダイアログにアクセスすることもできます。) さて、最初に言及したバグ報告を覚えているなら、これは頭の中であらゆる種類の警報を鳴らすはずです。「ポーランド語で記事を書き始めたのですが、Ś以外の文字はすべて入力できます。Śのキーを押しても、文字が表示されないのです。Mediumだけで起こります。」 しかし、何かが計算が合いません。MediumはCommand+SとCtrl+Sをブロックしていますが、ŚはAlt+Sで入力します。これら2つの世界が衝突するためには、もう1つの要素が必要です。 要素 4/4: Microsoft Windows Windows 3.xと95の両方には、素晴らしいキーボードサポートがありました。メニュー項目とダイアログには、マウスで簡単にアクセスできるコントロールがありましたが…Altと下線付きの文字を押すことで、はるかに迅速にアクセスすることもできました。 Microsoft WindowsのUIのほとんどは、キーボードの連打のシーケンスに変えることができ、これは信じられないほどでした