WindowsとMacの両方で動作するはずのアプリケーションがあり、ポルトガル語、スペイン語、ドイツ語にローカライズされています。ローカライズされた文字列が読み取られるiniファイルがあります。ただし、iniファイルは、両方のプラットフォームのファイルに対して同じエンコーディングでは機能しません。Windowsの場合、ファイルをANSI形式にする必要があります。そうしないと、ローカライズされた文字列のアクセント付き文字が台無しになり、Macの場合、同じファイルがWestern(Mac OS)エンコーディングであるか、同じ結果になるはずです。1つのファイルを両方のプラットフォームで動作させる方法はありますか?
4 に答える
(1) ANSI形式のようなものはありません。これは、Windowsで「ローカルコードページ」を意味するものの不幸な用語です。特に、これは、ヨーロッパでは、128〜255バイトの「ANSI形式」としての解釈が国によって異なることを意味します。ですから、両方は言うまでもなく、最初のプラットフォームでも機能しないと強く主張する傾向があります。
最終的に移行するソリューションはUnicodeです。これは、すべての文字でどこでも機能し、文字の数は国や現在の日付に依存しません(€の紹介を参照)。
Mac では、ローカライズされたリソース (テキスト ファイルなど) を .lproj フォルダー内に置くことができ、Cocoa ライブラリはユーザーの言語のバージョンを見つけます。たとえば、English.lproj、Spanish.lproj などです。独自のカスタム ローカリゼーション メカニズムを使用する代わりに、このシステムを使用する方が適切です。
Cocoa 以外のものを使用していて、移植性の理由から独自のローカリゼーションを使用する必要がある場合は、テキスト エンコーディングを指定してファイルを読み込んでみることができます。Windows では、通常は ISO-8859-1 (Windows Latin 1 とも呼ばれます) です。または、テキスト ファイルを Unicode に変換し、UTF-8 であることを指定して読み取ることができます。これに使用している言語またはフレームワークを教えていないため、これ以上の情報がなければこれ以上お手伝いできません.
gettextは、アプリケーションやWebサイトなどの翻訳に広く使用されているフレームワークです。
痛みの世界へようこそ。また、Unicode に切り替えることをお勧めします。これにより、最初から検証可能な基礎が得られ、後で作業が楽になります。