.NET Framework v4 以降の国と地域のデータの更新と取得方法に関するご意見をお寄せください

大変多くの支援機能が付き、ますます日々の開発作業が楽しみな次期バージョンの .NET Framework と Visual Studio ですが、ここで皆さまに国際化データの更新に関するお知らせと、それに対するご意見をうかがわさせていただきたく、こちらの内容を書かせていただいています。詳細は .NET Framework デベロッパー センターに最近アップロードされた「Microsoft .NET Framework 4 (Beta 1): グローバリゼーションの更新情報」にございますが、要約すると以下のような更新が入ります。 ユーロ通貨対応など最新の国際市場の反映とニュートラル カルチャのつながりを完成させるための、150以上のカルチャに関するデータの追加。 中国語の命名規則の整合化と国際標準への準拠。 Windows 7 以降の OS において、最新の OSからの国際化データを反映するように、取得方法の変更 (これにより WindowsOnlyCultures, FrameworkCultures は古い形式となります)。 ソート、大文字/小文字の処理、正規化に関して、文字列の Unicode 5.1 への準拠。 東アジア圏の言語 (日本語を含む) に対する代替ソートの削除。 GetConsoleFallbackUICulture がニュートラル から特定のカルチャ (日本語の場合は ja から ja-JP へ) を返すよう変更。 v2で作成された、置換カルチャの読み込みサポートの廃止。 Redmond の担当のチームは、こちらの変更に関して、ぜひ、日本の開発者の皆さまからのご意見、ご質問、ご要望を拝聴させていただければと申しております。つきましては、こちらの blog に対するトラックバック、もしくは、MSDN フォーラム内にございます Visual Studio International…

0

YomiganaExtender の使い方とスマート タグ表示

今回は、International Feature Pack 2.0 の 読み仮名の機能として入りました YomiganaExtender の機能についてご紹介したいと思います。読み仮名エクステンダ コントロールは ASP.NET AJAX のエクステンダの機能を応用し、読み仮名を取得することを可能にしたコントロールです。 簡単に読み仮名を取得し、別なコントロールの Text プロパティに設定することが出来ます。 プロジェクトの作成と参照の追加 Visual Studio を起動し、任意の名前の新しい Web アプリケーションを作ります。参照設定をしますが、[ソリューション エクスプローラ] から[参照の追加]を選びインストール先の “YomiganaExtender.dll”、”YomiganaFramework.dll”、 “YomiganaCommon.dll” を選び参照を追加してください。 参照の追加後、一度、 [リビルド] が必要なので、ソリューション エクスプローラ、もしくは [ビルド] メニューからかけてください。    次に、[ツールボックス] へコンポーネントを追加するために、[全般] タブを右クリックし [アイテムの選択] を選んでください。 [.NET Framework コンポーネント] のタブで、[参照] ボタンを押し、現在のプロジェクトの [Bin] フォルダーの中から、 “YomiganaExtender.dll” を選択します。 これで、YomiganaExtender が [全般] タブに追加されました。   画面のデザインとエクステンダの追加 “Default.aspx” に…

0

Visual Studio International Feature Pack 2.0 Beta をリリースいたしました

Visual Studio International Feature Pack 2.0 Beta (Visual Studio インターナショナル機能パック ベータ版) を公開いたしました。ダウンロード サイトより本日からダウンロードすることができます。 製品名を変更いたしましたが、Visual Studio International Pack 1.0 と同一の製品系列で、よみがなや文字セットなど一般的な慣習に即した日本語処理に対応してほしいという皆様の声にお応えするために企画された .NET Framework 用の拡張ライブラリです。 バージョン 2.0 では、日本語処理用に以下のライブラリを提供しています。   読み仮名フレームワーク 日本語の特徴である、「表記」と「読み」が一致しない点からくる英語版との差分を埋めるための基本フレームワークを構成し、.NET Framework の技術を使った日本語での利便性を高めるためのクラス ライブラリおよびコントロール群です。 フレームワーク 文字列型を対象に、読み仮名を付ける機能を提供します。また、汎用的なクラスとしてジェネリックを使用したクラスも用意されていますので、読み仮名に限らず、任意のオブジェクトを注釈として文字列に付けることもできますし、文字列でなく任意の列挙可能コレクションに注釈を付けることも可能になっています。 文字列を対象とし、読み仮名をつけるクラスでは、読み仮名付きの文字列として並び替えや比較を行うための Comparer が提供されています。 相互運用性を考慮し Unicode の Interlinear Annotation や JIS X 4052 形式の入力と出力を提供します。 コントロール 以下のコントロールが提供されます。 ASP.NET、Windows フォーム、WPF を使った開発者向けに、キーボード入力から読み仮名を取得することのできる TextBox コントロール ASP.NET 開発者向けにルビ表記を使った表示のコントロールを提供…

0

新年のご挨拶とお願い

新年あけましておめでとうございます 昨年中は弊社の開発製品と技術をご愛顧いただきまして誠にありがとうございました。今年も引き続き、よりよい開発体験をご提供できるように製品作りに励んでまいりますので、よろしくお願い申し上げます。 さて、昨年末より継続して、日本語版Visual Studio 2008に対する皆様からのご意見をうかがうためのアンケートを行なっております。自由記入のコメント欄に関しましても、私どもはすべて目を通すようにしておりますので、2008になって改善されたと評価される点、また、今後改善がなされるべきだと思われる点に関してまして、ぜひ具体的にご記入いただけますようお願い申し上げます。 つきましては、年頭のご挨拶とお願いまで。 Microsoftディベロッパー製品開発統括部

1

異分野と異文化

秋分の日も過ぎて朝晩は肌寒く感じることも多くなりました。 皆さま、風邪などひかれてはいらっしゃらないでしょうか。 さて、ここ最近は、皆さまへ、より良いサービスや開発体験への理解を深めようと思い、そういった系統の資料を入手して読んだり、社内のチームから話を聞いたりといったことをしています。もちろん、これまで様々なお客さまからお聞かせいただいた、ご要望やご苦労といったものを、どのように体系化して、さらに製品を改善していくのかという日頃の活動の一環なのですが、私どもの場合は国際化の観点から、文化や言葉の違いを乗り越えて情報や目的を共有する必要性があります。 そういったなかで、偶然の成り行きだったのですが、昨年、弊社でユーザビリティの調査をしているSteven Clarkと会う機会がありました。Stevenは、元々はレドモンドのCLRチームに在籍し、基本クラス ライブラリのAPIのユーザビリティを指導していたのですが、いまは開発者や開発ツール全般の使用体験を考慮するチームのメンバーとなり英国のケンブリッジに在住しています。すでにいくつかの社内の成果をDr. Dobb’sやACMの学会誌などに発表している、その道の人ですので、私は入門者に近い形でOffice Communicator使っていろいろとアドバイスを受けています。先日、帳票に対する要件のような、いわゆる「日本での特殊事情」と考えられていることを話すと、意外にも共感してくれ、どのように調査をしていけば上手く説明できる可能性があるかといったガイダンスをくれたりします。国際化の範疇に括られていては上手く解決や説明ができなかった問題に対して、少し別な方向性が見えてきたりするので面白いものです。 彼に会うまでは、ユーザビリティやユーザー エクスペリエンスというと、なにかビジュアルなUIのことであったり、画面のデザインであったりといった固定観念が私にはありましたが、彼のリサーチの成果は、認知心理学や認知工学の要素をAPI設計に応用して評価するといったアプローチです。当人はコンピューター科学の博士号を持っていますが、自分自身でもこのキャリアは意外だったと私に話します。「日本やアジアの文化や、そこでのソフトウェア開発は私にはまったく分からないけれど」と話すなかで、こういった別な分野での応用や情報の共有が面白い成果を生み出すのかもしれません。

5

Microsoft Visual Studio International Pack 1.0 製品版リリース!!

Microsoft Visual Studio International Pack 1.0 製品版を本日正式にリリースしました。 Microsoft Visual Studio International Pack 1.0 はVisual Studio や.NET Framework の標準機能だけでは不十分だった、カナ文字の変換や「よみがな」への対応など、日本語の処理や日本文化に即した機能に対応した新しい製品です。 Microsoft Visual Studio International Pack は、Visual Studio のすべてのエディションのユーザーが無償にてダウンロードセンターからダウンロードして利用することができます。また、コンポーネント毎にセットアップが用意されているため、必要なコンポーントのみインストールすることができます。ぜひ一度お試しください。 日本向けには、以下の4つのコンポーネントが提供されています。 East Asia Numeric Formatting Library数値データを日本語、繁体字中国語、簡体字中国語および韓国語における漢数字の文字列に変換します。  Japanese Kana Conversion Libraryひらがな、カタカナ、半角カタカナの相互変換、およびローマ字からかなへのの変換をするためのライブラリです。 ベータ版からの変更点:変換が正常に行われていていない文字を修正しました。 Japanese Text Alignment Library決められた範囲に文字間の空白が均等になるように文字を割りつけて描画するためのライブラリです。ディスプレイ、プリンタの両方に使用することができます。 ベータ版からの変更点:ベータ版では既定の動作が、英文字の間には空白を置かないようになっていましたが、製品版では、すべての文字の間の空白を均等にするようになりました。割り付け単位が1つの際に中央に表示されない問題を修正しました。環境によってインストールが失敗する問題を修正しました。 Japanese Yomi Auto-Completion Library入力された読みに一致する候補を表示するオートコンプリート機能を実現するためのライブラリです。この機能を使用することで、まず読みを入力してから漢字に変換する日本語IME の入力プロセスと、途中までの入力に応じて入力候補を表示するオートコンプリート機能の相性の悪さを解消し、日本語の入寮効率を高めることができます。ベータ版からの変更点:環境によってインストールが失敗する問題を修正しました。 上記の4つのコンポーネントに加え、中国、韓国、台湾向けの3つのコンポーネントあわせて提供しています。   Korean Auto Complete TextBox Control韓国語入力に対応したオートコンプリート機能を持つTextBox コントロールを提供します。 …

2

開発者共通の悩み?Yomi-Autocompletion の動作に関して

皆様、もう Microsoft Visual Studio International Pack ベータ1 はご覧になりましたでしょうか? けっして、規模の大きなものではありませんが、もし、まだという方がいらしhたら是非一度ドキュメントだけでも目を通していただけると幸いです。専用フォーラム(http://forums.microsoft.com/MSDN-JA/ShowForum.aspx?ForumID=1989&SiteID=7)では、現在提供しているコンポーネントに関するフィードバックはもちろん、「こんなものが欲しい」というご意見も是非お伺いたいと思っています。さて、今回は、その Microsoft Visual Studio International Pack より、Japanese Yomi-Autocompletion Library を簡単に紹介させていただきだいと思います。 このライブラリは、一言でいえば、読みに対応した自動補完機能をコントロールに追加するための拡張ライブラリです。読みに対応した自動補完とは、そのままですが、IMEによる入力時に、変換前の読みを入力した段階で、入力された読みに対応する候補を表示するという機能です。たとえば、都道府県名の一覧が候補になっている場合には、「お」と入力すると、「大阪」「大分」「沖縄」など「お」から始まる名前が候補として表示されます。 説明するまでもありませんが、日本語を入力する場合には直接文字を入力するかわりに、「読み」を入力した後変換することが必要になります。さらに、入力が長ければ長いほど文脈に適した変換候補を提供する日本語IMEの特性も加わり、日本語システムに関しては自動補完やインクリメンタルサーチが期待したように動作しないのが現状です。これを解決するために、「読み」への対応をご自分で実装されている方もいらっしゃると思います。より良いユーザーインターフェースの探究も皆様、開発者の方の工夫の部分ではあると思いますが、一方で、基本的な機能の作りこみに時間をとられたくないというご意見もあると思います。そこで、このライブラリでは、基本的な動作を実現するためのライブラリを提供しています。 Japanese Yomi-Autocompletion ライブラリでは、自動補完機能を持つ複数のコントロールを提供する代わりに、既存のコントロールに自動補完を追加するために必要な機能をライブラリという形で提供しています。ライブラリは、2つの中心的なクラスとデータ型や状態を表す列挙型などの周辺のクラスより構成されています。はじめに、一番中心になるのが、YomiAutoCompletionContextManager クラスで、候補の一覧や自動補完機能の状態など、ほとんどすべての情報がこのクラスによって一括管理されています。次に、機能をコントロールに組み込む際にコンテキストマネージャとコントロールの橋渡しをするのが YomiAutoCompletionListener です。 詳細はドキュメントを見ていただく方が良いと思いますので、紹介はこれくらいにしておきましょう。 さて、実はこのライブラリを設計するにあたって、いくつかの問題がありました。特に大きな問題は、どのように読み仮名を提供するかということです。都道府県名のように読みが決まっているものや、ユーザー登録の名前のように登録時に「ふりがな」があらかじめ提供されている場合には、話は簡単です。しかし、自動補完機能を付加したい項目に必ずしも読みが与えられているとは限りませんし、読みがない項目への対応も考慮しないといけません。特定のアプリケーション向けに設計するのであれば、活用できる読みのデータがどこにあるのかが分かっていますし、「読みがなデータのある項目さえ表示されれば良い」というようにアプリケーションのシナリオに沿ってルールを決めれば解決できる場合も多くあると思います。しかし、これを汎用にするとなると、いろいろな方法や考えがあります。例えば、すべての項目は事前に読みが与えれられていることを前提にすると、割り切ってしまうのもの一つの方法だと思いますが、それだと使用できる場面がかなり限定されてしまうなど、バランスが難しい。この点を決めるまで(決意するまで?)にはずいぶんと悩みました。 結局、このライブラリでは、インターフェースが多少複雑になるのを覚悟して、以下のような、どちらかというと柔軟を重視したアプローチをとってみました。 1) 読みが分かっているものに関しては、項目の追加の際にアプリケーションが読みを提供する。2) 読みが与えられていない項目に関しては、自動的に読みが与えられるようにする。3) 自動の場合には、IYomiProvider インターフェースを介して、読みを取得するようにし、開発者がIYomiProvider の独自実装を提供することで、読み仮名のソースを自由に選択できるようにする。4) IYomiProvider の一実装として、IMEの辞書から読み仮名を取得するクラスを提供する。5) IME の辞書が対応する読みがなを複数持っている場合には、先頭の候補のみを使用する。6) 入力補完はベストエフォートする。つまり、入力された読みが項目に与えられた読みと違う場合には、候補として表示されない。7) ユーザーが入力した読みが項目に関連付けられた読みと一致せず、候補がでない場合を考慮し、変換後の文字列に対しては、通常の自動補完のように動作するようにする。 最後の3点は、ちょっとわかりづらいと思いますので、例をあげると、たとえば、「大和~~~」という名前の会社があったとします(現存する会社名とは一切関係ありません)。これだけでは「だいわ」と読むのか「やまと」と読むのか分かりません。この場合には、残念ながらIME から取得した読み仮名が正しいとは限りません。仮にIMEから取得した読みがなが「だいわ」の場合、ユーザーが「や」と入力してもヒットしません。したがって、ベストエフォートということになります。辛いところですが、ここは諦めるしかありませんでした。ひとつの項目に複数の読み仮名を関連づけることも検討はしましたが、5~6個の読みの候補が示されるものはざらで、もっと多くの読みをもつ単語も非常に多いうえ、それでさえ必ずしも完全に網羅しているとはいえません。結局、パフォーマンスの観点から見送りました。話は戻りますが、上の例のような場合に、読みがな自動補完だけですと、ユーザーは結局会社名をすべて入力する必要があり非常に不便です。そのため、ライブラリでは、「やまと」と入力して変換しても「大和」に変換された際には、読み仮名ではなく(7)のように項目自体の文字列にヒットするようにしました。 柔軟で拡張性に富んだものを作ろうとすると複雑で分かりづらいものになってしまうし、反対に、簡単で分かりやすいものにした場合、一歩間違えると、かゆいところに手の届かないものになってしまいます。「7割から8割の人のニーズを満たすようにして、あとは思い切って諦める。諦めるとはいいつつ、技術力のある人なら実現不可能というわけではなく、情報も提供されている。」というあたりが良いのはないかな、という漠然とした想像はできなくはないのですが、どこまでが7割の人にニーズを満たすかということは分からないというわけです。特別なことではなく、設計過程では常に悩みのたねとなる部分ですが。やはり今回も悩みに悩んでしまいました。公式で答えの出るようなものではないですね。データ解析で線引きできれば理想ですが、十分なバイアスされていないデータを集めるというのも一朝一夕にできることではありません。結局のところ、皆様、お客様のニーズに対して、地道に、そしてもっともっと勉強する以外に答えに近づく方法はないのでしょう。 というわけで、フィードバックお待ちしております。      

0

KanaConverterとTransliteralConverter

昨年は、International Pack ということで、東アジア圏の地域向けの機能を追加させていだくベータを出すことに成功したのですが、そのなかから「仮名」の変換をする機能のKanaConverterと、その基礎になっている状態機械を使ったTransliteralConverterに関して、この場を借りてご紹介をさせたいただこうと思います。 これらを作成に至った経緯には、私どものblogにも幾度か投稿させていただいた、「仮名文字」という日本語の基礎的な要素の処理を使って、日本語や日本文化に親和性の高い機能ができるのではないだろうかという考えがございました。私どもは国際化の仕事に携わる関係から、英語文化圏との比較をよく行うことがありますが、その中で、英数字表記をコミュニケーションの中心とした文化と、日本語のように多くの文字種の表記を扱う文化の間では、やはり使い勝手や操作性などに差があります。 .NET Framework は、英語文化圏や他のアジア、ヨーロッパ、中東文化圏に対応するシナリオと日本でのソフトウェアの使用シナリオの整合性を取った上で、それぞれの文化圏のシナリオに対応可能なよう設計をさせていただいていますが、その過程で特定の文化圏にのみに依存した機能の追加が困難となる場合もあります。その結果として、日本向けのアプリケーションをお作りいただく過程で作りこみの作業が発生し、追加のご負担をおかけしている点を少しでも改善できれば良いのではと考えておりました。 また、私たちの日常的なシナリオを考えますと、IMEによる仮名漢字変換やUnicodeなどによって多くの種類の文字が入出力可能になっているとともに、読み仮名や索引などで「ひらがな」や「カタカナ」を扱う局面も多くあります。そこで、新規、既存を問わず「仮名」のデータを活用する場面に何かお役にたてていただけるものを作りたいと思い、仮名文字を処理する機能を作成いたしました。 KanaConverter クラスには、既存の関数のような、簡単に文字列を変換する静的メソッドをUnicodeの仮名文字に合わせて集めてみました。また、限定的な用途だけではなく、複雑な要求にもお応えできるように、状態機械と構成ファイルを使ったTransliteralConverterを仕組みとしてご用意させていただいております。こちらは処理の遷移過程でのイベントの発生や、変換の割り当てを構成ファイルによって変更が可能になっています。用途は限定はしていませんが、仮名やローマ字を使った対話型のUI、日本語が表示できても英数字しか入力できないような海外の端末での補助的な入力手段、特殊な仮名文字の正規化などにお使いいただけるのではないかと考えております。 日本語を扱っても生産性が高く、さらに機能的なアプリケーションの作成にお使いいただければ幸いと考えております。また、お使いいただいたご感想やご要望などをMSDN フォーラム、もしくはこちらの投稿へのトラックバックにて、お聞かせいただき、将来に向けての、機能の向上、改善にご協力いただければと存じます。 長くなってしまいましたが、今回は、International Packの中のKanaConvertersとTransliteralConverterを作った経緯を紹介させていただきました。付属のドキュメントには簡単なサンプル コードを掲載させていただきましたが、もし機会がありましたら、近いうちに簡単な使用方法の説明をさせていただければと思います。

1

Visual Studio International Pack 1.0 ベータ1のリリース

11月30日にVisual Studio International Pack 1.0 ベータ1をリリースしました。   Visual Studio のリリースは数年に1回です。これでは、フィードバックに素早く対応できないので、ご存知のように、Visual Studio のリリースの間にも、様々な技術がリリースされています。私たちは、このような流れの中で、日本の開発者の皆様に向けても、長く待たせることなく日本の慣習や日本語の処理に係る機能を提供したいと考えました。これに加え、いままでVisual Studio や .NET Framework では、各国固有の部分に対しては、かゆいところに手の届くようなサービスを提供できていなかったという反省も踏まえて、これらを同時に解決してしまおうという、ちょっと欲張りな気持ちで企画したのが International Pack です。もちろん、Visual Studio や.NET Framework本体に組み込まないと意味のない機能も多いのですが、それは仕方がないものとして、International Pack では、独立したライブラリとして提供可能なもののうち、要望の多いもの、日本固有の機能という条件で絞り込んだ結果、以下の4つの機能を.NET Framework 用の拡張ライブラリとして提供することにしました。 かな相互変換ライブラリ 日本語均等割り付け よみがな認識自動補完 漢数字変換ライブラリ 詳しくは、Visual Studio International Pack ベータ1は、ダウンロードサイトを見てください。大きなものではないので、ダウンロードにさほど時間は掛りません。ぜひダウンロードして試してみていただけると嬉しく思います。 ベータ版のリリースに合わせて、MSDNフォーラム上にVisual Studio International Pack 専用のフォーラムを開設いたしました。早い対応が一つの目的ですから、ベータ版に対するフィードバックも可能な限り積極的に製品版に反映していきたいと思いますので、ささいなことでも、どんどんフィードバックをお寄せください。 また、専用フォーラムはベータ専用のフォーラムというわけではありません。今回リリースしたベータ版のバグの報告、ご要望等はもちろん、将来に期待する機能に関してのご意見もお待ちしております。

3