グローバル マーケットに向けた Windows 7 のエンジニアリング

Microsoft は長い間グローバルなソフトウェア会社であり続け、常に世界中のお客様をベースとした製品開発を心がけています。また、インターナショナルへの対応というのは開発がとても複雑な分野でもありますーおそらく、みなさんが思っているよりはるかに複雑であり、私たちもいつも学習し改善しようとしている分野です。グローバルなソフトウェアを構築することはチーム全員の責任です。また、グローバルな機能と特定のマーケットに特化した機能の両方を開発することに注力しているチームもありますーたとえば、フォントの処理や、東アジア言語用の入力システムなどです。もちろん、 Windows 100 近い言語にローカライズ ( 「翻訳」はあまり正確な表現ではありません ) することに対しても、私たちは莫大な開発労力をつぎ込んでいます。 Julie Bennett がグローバル開発およびローカライズのチームを代表し、同じチームの John McConnell と一緒にチーム全体と協調して、グローバルマーケット用の開発の概略を説明するためにこの投稿を書きました。--Steven

E7 ブログの読者の多くは、アメリカ以外の場所に住んでいたり、英語以外の言語を話していたりします。そこで、Windows 7 におけるインターナショナルおよび多言語の改良点について共有するのも役に立つのではないかと考えました。私たちの Windows 7 での目標は、世界中のユーザーのためになるワクワクするような機能や、すべてのユーザーが Windows は地域に密着していると感じるような機能を提供することです。Windows 7 がパフォーマンスや信頼性の基礎的なシナリオを向上することに重点を置いているように、私たちがサービスを提供しているすべての国のすべての言語ですばらしいカスタマー エクスペリエンスをもたらすことができるように、プロセスを改善しました。Windows 7 を世界中でできるだけ同時に提供しようとする試みもその 1 つです。このブログでは、Windows 7 が世界中ですばらしいリリースになると信じるに値する新機能と改善されたプロセスについて説明します。

 

インターナショナル機能

Windows 7 のインターナショナル機能は、NTFS ファイル名でサポートされる文字 (Unicode 5.1 と一致するようにアップグレードされました) といった低レベルの側面から、背景やテーマの選択 (地域と関連のある写真が入りました) といった高レベルの側面まで、システム全体に波及します。しかし、世界のたくさんの言語や文化を適切にサポートするのに本質的に重大な特定の機能があります。ここでは、そのいくつかについて見ていきたいと思います。

フォント

言語と書くことはどんな文化においても中心的存在であり、そのためフォントのサポートはインターナショナル ユーザーのサポートに欠くことのできないものです。Windows 7 ではフォントの幅と品質の両方がかなり増えました。次の 50 のフォントを新しく追加しました。

New fonts in Windows 7

上記の表のフォント名から推測されるように、新しいフォントの多くはラテン系ではない書体用です。実際、Windows 7 は、ラテン系書体より非ラテン系書体用のフォントの方が多い、初めての Windows です。大きな改善点の 1 つが、インドの言語に対するものです。Vista では 9 つのインド言語用フォントが入っていましたが、Windows 7 では40 以上のフォントを追加しました。Windows 7 には、インドの公式言語のそれぞれについて、複数のフォント (通常は、複数の太さ) が入っています。

Indian font examples

Aparajita: 新しいデーヴァナーガリーフォントの標準、太字、斜体、および太字斜体

新しいフォント以外にも、多くの既存フォントも改良しました。たとえば、Consolas、Calibri、Cambria Bold、および Cambria Math に対して 2000 を超える字形 (グリフ) を追加しました。しかし、もっとも大規模な改善は、非ラテン系の書体に対してです。たとえば、Windows 7 は、アラビア語で一般的である Lam-Alef リガチャ (合字) (下の図を参照) と母音記号の配置の表示が大変よくなりました。

Ligature example
: Vista での Lam-Alef リガチャ右 : Windows 7 での Lam-Alef リガチャ

フォントに対する変更は (明白な改善点であっても)、下位互換性の問題により、常に扱いにくいことです。たとえば、ある文字の幅や位置が変わると、既存のドキュメントのリフロー (再作成) が必要になるでしょうが、これは受け入れがたいことです。そのため、フォントを変更するときはいつも、変更に対して大規模な検証テストを実行し、フォント メトリックや他の表が変更されないか確認する必要があります。先に示した Lam-Alef の修正の場合、既存のアプリケーションの中には、古いフォント中のグリフの (文書化されていない) 順番に依存しているものがあることが判明しました。そのようなアプリケーションは、単にグリフを置き換えるだけでは壊れてしまうでしょう。そこで、フォント チームはインターナショナル アプリケーション互換性チームと緊密に働き、変更がフォント中のグリフの順番に影響を及ぼさないようにし、その結果下位互換性を提供できるようにしました。

[ フォント ] コントロールパネル

Windows 7 での非常にたくさんの新しくそして拡張されたフォントとともに、私たちはユーザーがもっと簡単にフォントを管理できるようにしたいと思いました。そこで、数年ぶりに、コントロール パネルの [フォント] の徹底的な見直しを行いました。

下記の最初の図は、[フォント] コントロール パネルを大アイコンで表示させたところです。最も顕著な違いは、フォントのアイコンがフォントの外観についてより多くの情報を伝えてくれることです。アイコンの内容は、フォントのグリフのレパートリーに関するヒントを与えてくれます。非ラテン語のフォントは、それがどうデザインされているか分かるように書体から代表的なグリフを表示します。微妙な変更点として、あるフォントのアイコンは薄くなっていますが、これはインストールされているが隠されていることを示しています。隠しフォントはデフォルトではリボンやフォント ダイアログには表示されません。ユーザーは、[フォント] コントロール パネルで、日常的に使用するフォントを調整できます。まったく使用しないフォントを隠すことにより、アプリケーション内で適切なフォントを選択する動作を単純化できます。デフォルトでは、ユーザーがインストールしている入力ロケール (キーボード レイアウトと言語) で書ける言語をサポートしているフォントのみが表示されます。たとえば、英語とフランス語の入力ロケールをインストールしているユーザーは、ラテン語のフォントのみを見ることになりますし、一方で日本語入力方式をインストールしているユーザーは、日本語フォントだけを見ることになります。このデフォルト設定は、コントロール パネルでフォントを右クリックすることにより、変更することができます。隠しフォントはインストールされているので、隠しフォントを使用するような既存のアプリケーションもこれまでと同様に動作します。

image

大アイコン表示の [ フォント ] コントロールパネル

次の下の図は、[フォント] コントロール パネルを詳細表示させたものです。これにより、ユーザーはフォントについてこれまでよりも詳しい情報を得ることができます。たとえば、フォントをスタイルや表示/非表示、フォントの製作者で並び替えることができます。通常、フォント ファイルにはフォントのデザイン言語の情報しか含まれていません (たとえば、日本語のフォントは、情報を日本語でしか持っていません)。Windows 7 では、すべての言語ですべてのフォントに対して機能するソリューションが必要でした。そこで、フォント自身からの情報をメタデータ (システム上のフォントについて情報を提供する XML ファイル) と組み合わせるハイブリッドなやり方を考え出しました。

Font control panel detail view

詳細表示の [ フォント ] コントロールパネル

ローカルパック

Windows 7 では個人用設定の選択肢が増えました。新しいテーマ、背景、およびサウンドにより、Windows 7 を自身の個性にマッチさせるよう簡単にカスタマイズできます。私たちの好みは言語や地域によって影響を受けるという点を、Windows 7 はローカル パックの導入という形で反映しています。ローカル パックは、特定の地域用にカスタマイズされた Windows 7 の視覚テーマを提供します。視覚テーマには、その地域に関連する壁紙の画像や、カスタマイズされた Aero グラスの色、地域色の濃いサウンド設定が含まれます。Windows® Internet Explorer® のお気に入りや RSS フィードも、コンピューター上でローカル パックが有効になっていると更新されます。たとえば、フランスのローカル パックを追加して有効にすると、コントロール パネルの [個人設定] にフランスの市場用にカスタマイズされたテーマが追加され、ユーザーのプロファイルに役に立つフランス公共部門のウェブサイトへのリンクや RSS フィードが追加されます。

 

Local Packs [ 個人設定 ] コントロールパネルのカスタマイズされたテーマ

ローカル パックの中身は、すぐに使えるシームレスな地域のエクスペリエンスを提供します。ローカル パック自体はユーザーの目には触れません。ユーザーは単に Windows の「ようこそ」でいつもどおり自分の場所を選ぶだけです。そうすると、設定に基づいて、適切な地域のコンテンツが表示されます。

他の国用のテーマを探しているユーザー、または他の分野に興味のあるユーザーは、コントロール パネルの [個人設定] の [オンラインで追加のテーマを取得] リンクからアクセスできる、Windows オンライン ギャラリーで見つけることができます。

その他の機能

他の新機能には、5 つの新しいロケール (これにより、サポートされるロケール数の合計は 210 になりました)、12 の新しい入力ロケール、および中国語繁体字の改善された並び替えがあります。また、概して、システムのデータベースを Unicode 標準の最新バージョンである 5.1 にアップデートしました。開発者がよりよいグローバル アプリケーションを開発できるようにインターフェイスも改善しました。後述の [インターナショナルの適時性と品質] セクションで説明しますが、Extended Linguistic Services (ELS) はクールな新しい機能です。

おそらく、コアのインターナショナルの機能以外で最も重要な改善は、検索についで、より多くの言語を認識するようになりました。たとえば、Windows 7 のデスクトップ検索はロシア語の形態論 (単数、複数、時制、および格の決まり) を認識します。つまり、ロシア語のある特定の単語の検索は、これまでの完全一致の単語だけでなく、単語の一般的なバリエーションに対してもマッチさせ、検索結果が格段に向上します。

 

インターナショナル版リリースのタイミングと品質

前回のバージョンの Windows では、すべての言語の最終製品をすべての市場へ提供するのに数ヶ月かかりました。Windows 7 では、この時差をかなり短くするためにインターナショナル版への取り組み方を変え、世界中のユーザーができるだけ同時に Windows を楽しめるようにしました。この目標は、エンジニアとしてどのように作業を行うか、また、公開テスト期間中にパートナーや顧客とどのようにやりとりするかに対し、広範囲にわたって影響を及ぼしました。

私たちの取り組みを理解していただくために、まず 2 つの重要なコンセプトであるローカリゼーションとグローバリゼーションについて説明します。

ローカリゼーションは、ユーザー エクスペリエンスを他の言語に適応させるプロセスです。文字列の翻訳だけでなく、ダイアログのサイズを変更したり、ヘブライ語やアラビア語のように右から左へ書く言語のためにアイコンを逆にするといった作業があります。メニューの翻訳ミスのようなローカリゼーションのバグは、このプロセスで発生する欠陥です。

一方、グローバリゼーションとは、ユーザー インターフェイスが何語であろうと、すべての国で正しく動作する製品を作るプロセスのことです。グローバリゼーションのバグは、誤った言語で UI の要素を表示するような単純なものから、右から左への文字列の処理が正しく動作しないなど複雑なものまで多岐にわたります。グローバリゼーションのバグは、本質的にローカライゼーションのバグよりも深刻です。なぜなら、グローバリゼーションのバグは通常、多くのまたはすべての言語に影響を与え、技術的な設計を考え直さなければならないことがよくあるからです。過去の Windows では、グローバリゼーションのバグを修正することで、長いリリースの時差が必要になっていました。しかし Windows 7 では、グローバリゼーションのバグを、開発プロセスのできるだけ初期の段階で防ぎ、見つけ、修正するように取り組みました。

擬似ローカリゼーション

一般的なグローバリゼーションのバグを防ぐために、擬似ローカリゼーション ビルドが作られました。擬似ローカリゼーションとは、人工言語でローカライズした製品を作るプロセスのことです。その言語は英語とそっくりですが、それぞれの文字は英語の文字に見た目が似た別の文字で書かれています。完全にマシンによって生成されることを除き、擬似ローカライズ ビルドはローカライズ ビルドを作るのとまったく同じ方法で作られます。英語しかわからないソフトウェア開発者でさえ擬似ローカライズのテキストは読めるので、開発サイクルの初期にグローバリゼーションの問題を発見する大変優れた方法となっています。Windows 7 のベータでは、いくつかの UI 要素はまだ擬似ローカライズの状態でしたが、この意味について面白い説が唱えられていました。このブログの投稿で謎が解けたかと思います J

Pseudo-loc control panel

擬似ローカライズ版 Windows 7のコントロールパネル

パイロット言語

ベータ版は私たちにとって常にワクワクするときです。なぜなら、みなさんから私たちの努力に対して本当に意見を聞くことができる最初のチャンスだからです。113 の国の人たちが Windows 7 Beta をダウンロードしたと聞いて、感激しました。このように規模が大きく、多様性のあるベータ プログラムでは、フィードバックを集めて具体化するには、高度に拡張性のあるプロセスが必要です。Windows 7 では、新しい取り組みに大変張り切りました。

過去に、Windows のベータ版用のローカリゼーション言語は、実用的な理由が入り混じって選択されていました。このような場当たり的なアプローチはメリットもありましたが、重大なグローバリゼーションの欠陥が選ばれた言語では現れず、報告されなかったということがよくありました。Windows 7 Beta では、私たちの優先事項はグローバリゼーションのバグを見つけることであり、そのため、これまでの経験上、特定の種類の欠陥が見つかりやすい 4 つの言語 (プラス 英語) に集中することにしました。

· ドイツ語 – とても長い単語があるため、ダイアログのサイズや配置の欠陥が他の言語より明らかになりやすいです。

· 日本語 – 何万もの文字、複数の非ラテン語の書体、入力方式エンジンの代替手段、特に複雑なつづりといった理由により、日本語は東アジア言語に影響する欠陥を見つけるにはうってつけです。

· アラビア語 – 右から左へ書き、前後関係によって形が変わるので (文字の形は隣接した文字による)、ドイツ語や日本語では実施できないテストで役立ちます。

· ヒンディー語 - Windows 95 と Windows 98 ではヒンディー語はサポートされておらず、この言語は完全に Unicode に依存しています。ヒンディー語をテストすると、古い (Unicode ではない) 欠陥を見つけるのに役立ちます。

ベータ期間中にこの 4 つの言語に集中することにより、多くの言語に影響を及ぼすグローバリゼーションのバグを見つけて修正できるチャンスを最大限に高めました。それに、実際の製品をリリースする前に、すべての言語のローカリゼーションを向上させるための時間も増えました。下記の図は、ベータで見つかった 2 つのバグですが、パイロット言語に注力したことの利点を示しています。

image

Windows 7 Beta 中に見つかったグローバリゼーションの欠陥

これらの言語を通じてグローバリゼーションのバグを見つけることに加え、OEM メーカーに対しても、彼らの製造プロセスにおいて言語に関するフィードバックを提供してくれるようお願いしています。多くの OEM メーカーは東アジアに拠点があるので、Windows 7 Beta を簡体字中国語、繁体字中国語、および韓国語にもローカライズしました。

RC の言語パック

先に説明したようなエンジニアリング プロセスの向上を主な理由として、Windows 7 RC では過去の Windows で実現したしたよりも多くの言語パックを提供することができました。Windows 7 RC の Ultimate バージョンを実行している方は、下記の 32 の言語パックを Windows Update からダウンロードできることにお気づきでしょう。

clip_image018

Windows Update にある 32 Windows 7 RC 用言語パック

将来的には、Beta 版で利用可能な言語はすべて、RC版でも提供できるようにする予定です (たとえば、ヒンディー語は Windows 7 RC には入っていません) 。将来のバージョンではこの点を改善します。

 

世界中からのフィードバックを理解することについて

Windows 7 の Beta 版は 5 つの言語にローカライズされ、プラス数百の言語用にグローバル対応されているので、Beta 版のバグ報告も世界中のユーザーから受け取ります。Windows 7 の改善にはこのようなバグ報告が欠かせないので、製品の問題かどうか判断するために、バグ報告を読むのにかなりの時間をかけました。バグ報告は世界中のユーザーから非常に多くの言語で寄せられるので、単にフィードバックを理解するだけでなく、できるだけ迅速に対応できるような方法を模索しました。問題を早く理解すればするほど、フィードバックに対応できるチャンスが高まります。バグ報告はユーザーが話すあらゆる言語で寄せられるので、これは時に大変困難な課題です。

過去に、私たちは複数の言語によるバグ報告を手作業で処理していました。それは、個々のバグを確認し、原因となるコンポーネントの責任チームに適切にフォローしてもらえるようひとつひとつ手作業で翻訳するといったプロセスでしたが、とても時間がかかり、しかも Windows 7 Beta のように規模の大きく多様性に富んだプログラムでは、見積もりを間違いやすい方法でした。最悪のケースでは、最終製品に影響を及ぼすような価値のあるインターナショナルのフィードバックが見過ごされ、Service Pack や次期バージョンまで対応がなされない可能性もあります。

Windows 7 では、新しい拡張言語サービス (Extended Linguistic Services, ELS) の言語検出 API を使用することにより、報告されたユーザーからのバグの言語を自動的に検出できるようになりました。ELS は Windows 7 の新機能で、OS の高度な言語機能を活用したい開発者は誰でも利用可能です。Windows 7 から、開発者は Unicode テキストの言語やスクリプトの検出や、文字間でテキストをマップさせるような書き直しに ELS を使用できます。この Windows 7 のサービスおよび今後のリリースに追加する予定のさらなるサービスを使用するには、開発者は 1 つのシンプルで統合されたインターフェイスを学ぶだけです。100 以上の言語を検出する能力が Windows 7 のアプリケーション開発者に提供されますが、この機能をみなさんが世界中から送ってくださったベータ フィードバックの優先度を判定して処理するのに適用することができました。ユーザーからのグローバルな問題に対する対応を向上するため、私たちは自身のインターナショナルの開発機能を使用したわけです。

言語を検出すると、続いてその結果のテキストを用いて、機械翻訳サポートを使用します。機械翻訳は、オンラインの Live Translator で利用可能です。これにより、テキストを英語に翻訳し、フィードバックの言わんとすることを理解します。そしてエンジニアは、特徴や機能性の分野を、私たちのフィードバック データベースで検索します。ユーザーが報告するとすぐに、問題となりそうなインターナショナル アプリケーションのエクスペリエンスについて学べるので、インターナショナル アプリケーションの互換性の確認にも役立ちます。機械翻訳は完全な翻訳ではありませんが、どの問題がさらなる調査が必要そうかの判断には使えます。その結果、ユーザーの問題に対して耳を傾け対応することが、前回のリリースよりも格段に短い所要時間で実現できるようになりました。つまり、世界に Windows 7 をリリースしたとき、それはよりよい品質であるということです。

Windows 7 Beta の終了時までに、このプロセスを使用して、フィードバック ツールを使って寄せられた 35,408 件の問題や意見を翻訳しました。

まとめ

グローバリゼーションとローカリゼーションの品質向上に対する取り組みの最終結果は、「すべての完全にローカライズされた言語版の Windows 7 は、10 月の最初のリリースから 2 週間以内にリリースされる」と言う発表に現れています。私たちは、ユーザーのみなさんが、このリリースの全体的な品質がこれまでで一番よいと思ってくださることを願っていますし、それを信じています!

clip_image020

2009 10 月にリリースされる Windows 7 36 言語

10 月にリリース予定の 36 言語に加え、追加の言語が、どのエディションの Windows 7 にもインストール可能な言語インターフェイス パック (Language Interface Packs, LIP) の形でダウンロードできるようになる予定です。これは、世界中の政府、大学、言語学者との共同研究である、ローカル言語プログラム (Local Language Program, LLP) の一環です。LLP の一環です。(LLP の詳細については、https://www.microsoft.com/unlimitedpotential/programs/llp.mspx を参照してください)。LIP の作業は RTM と同時に開始し、パートナーのスケジュールに基づいてその後何か月も続きます。2 つの LIP が 10 月の Windows 7 と同時にダウンロード可能になる予定です。それは、カタロニア語とヒンディー語です。その他の LIP は、パートナーのスケジュールに基づいて随時ダウンロードできるようになる予定です。最初の 38 言語 (36 + 2 LIP) について、提供時期を改善できたことをうれしく思います。そして、将来のリリースにおいて、さらに改善していきます。私たちの方で信頼できる実績を作り上げることは、世界中の人々が、より統一されたリリース スケジュールの計画を立てるのに役立ちます。

拡張言語サービス (ELS) およびその他の Windows 7 のすばらしい新機能についての詳細は、オンラインで MSDN で提供しています。特に、Windows 7 用の Windows SDK をダウンロードし、「International」セクションで最新情報について読まれることをお勧めします。また、MSDN の新しい Go Global Developer Center には、インターナショナルのテクノロジーについて豊富な情報があります。

フィードバックについては、このブログ エントリに対してコメントしていただくか、Windows 7 のフィードバック ツールを使用してください。皆さんからのご意見を (どの言語でも) お待ちしています。

-- Windows International Team