Maya API 国際化アーキテクチャの概要

Maya は国際化されているアプリケーションです。Maya のユーザ インタフェースは英語以外の別の言語で表示でき、シングル バイトまたはマルチバイトのいずれかのテキスト エンコーディングを必要とするローカライズされたユーザ環境と互換性があります。

Maya は既定では英語で実行されます。Maya を別の言語で実行する場合、ユーザ メッセージ、メニュー、ラベルなどのユーザ インタフェースのテキストが、既定の英語の値ではなく翻訳された値で表示されます。

ローカライズしたユーザ環境と互換性があり、シングル バイトとマルチバイトの両方のテキスト エンコーディングで正しく動作するプラグインを作成する場合は、このセクションをお読みください。英語以外の 1 つ以上のユーザ インタフェース言語をサポートするためにプラグインのコードとスクリプトを調整する方法についての情報もあります。

このセクションでは、主なコンセプトと Maya API で国際化とローカライズ サポートを提供する機能の概要を示します。以降のセクションには、実装の詳細と例があります。

国際化とローカライズ

別の言語とロケールで実行するプラグインの準備に必要な 2 つの主要プロセスは、国際化とローカライズです。

国際化は、ローカライズできるように実行可能コードとスクリプトを変更するプロセスです。プラグインのコンテキストの国際化とは、主に、ハード コードされたユーザ インタフェース文字列を、ユーザの選択言語に一致するように変更できる文字列リソースへ置き換える作業です。すべての言語のエンコーディングで正しく機能できるように、文字列処理コードも変更する必要がある場合があります。

ローカライズは、特定の言語で機能するようにプラグインをカスタマイズするプロセスです。プラグインのローカライズとは、主に、ユーザ インタフェースの文字列を翻訳し、プラグイン リソース パスに正しくインストールする作業です。コードを国際化すれば、1 つ以上のターゲット言語にローカライズできます。

シングルバイナリ戦略

Maya アプリケーションは、シングルバイナリ戦略を使用して国際化しています。つまり、同じ実行コードで異なる言語をサポートできます。ユーザの選択言語によって異なるすべてのデータはソフトウェア自体の外部にあり、個別のローカライズ パッケージとして提供されます。別の言語をサポートしたり、異なるコードページ設定で実行したりするために、ソフトウェア自体を再構築する必要はありません。この理念は、Maya API の国際化機能にも適用されています。

ロケールとエンコーディング

ローカライズしたユーザ環境には、異なるロケールとコードページ(エンコーディング)設定が含まれています。Maya は、ユーザ言語プリファレンスおよび関連するロケールとコードページを自動的に判断します。ユーザ プリファレンスからこれらを判断する方法は、ハードウェア プラットフォームによって異なります。この方法については、Maya のマニュアルで説明されています。

Maya で使用しているユーザ インタフェース言語とコードページを確認するには、次のコマンドを入力します。

about -uiLanguage;
about -codeset;

Maya API のクラスとメソッドを正しく使用すれば、大体において、プラグイン コードをロケール設定とロケール設定による影響から保護できます。ただし、文字列データがどのように解釈され、外部インタフェースの動作にどのように作用するかを理解することは、特にマルチバイトのロケールを取り扱うときに重要です。

ローカライズされた文字列

Maya API には独自の文字列クラス、MString が含まれています。この文字列クラスは、メソッド間でテキスト データを渡すために API 全体で使用されます。MString は、文字列データを操作し、文字列データにアクセスするメソッドを提供します。よって、大体において、コードの文字列の基本的な表現に悩まずに済みます。

キャラクタ ストリームを解釈するには正しいデータ エンコーディングを使用する必要があるため、アプリケーション ロケールは、文字(char *)バッファの文字列データを受け取るまたは返す MString メソッドの動作に作用します。マルチバイト環境では特に、文字列を正しく取り扱うために、文字バッファにアクセスまたは文字バッファを操作するプラグイン コードの調整が必要な場合があります。ローカライズ環境での MString とそのメソッドの使用の詳細については、以下の「文字列の処理」セクションを参照してください。

文字列リソース

Maya API が拡張され、プラグインの文字列リソース メカニズムが提供されました。これにより、プラグインは Maya String Catalog に文字列を追加できます。これらの文字列のローカライズ値は、別の言語で Maya を実行しているときに使用されます。

プラグイン文字列リソースは、C++ コードと MEL スクリプトの両方で使用できます。プラグイン リソース アーキテクチャは、既定(英語)の文字列値をプラグイン ソース コード(C++ またはスクリプト)で直接指定するように設計されています。既定値は「内蔵」されており、常時使用可能です。

ローカライズしたリソース値は、プラグインのロード時に Maya の文字列カタログに読み込まれロードされる外部ファイルから提供されます。ローカライズ リソースを追加するために、プラグイン実行ファイルを再構築する必要はありません。

ローカライズ リソースはオプションです。この手法の利点は、リソースのローカライズ(つまり翻訳)は後に置いておいて、文字列リソースを使用するためのプラグインの調整を先にできることです。ローカライズした値は、使用可能で、ユーザの選択言語に一致する場合のみ使用されます。ローカライズ リソースが何らかの理由で見つからない場合、プラグインは、ローカライズ前と同様に既定の(内蔵)文字列値で実行されます。