ホーム > 開発 > アプリケーションパッケージ名とアプリケーションメニューのローカライズ方法は異なる

アプリケーションパッケージ名とアプリケーションメニューのローカライズ方法は異なる

OS Xのアプリケーションパッケージの名前をローカライズした所、Finder上では正常にローカライズされているのに、起動後のアプリケーションメニューのタイトルがローカライズされないという現象に遭遇しました。
そこでよくよくドキュメントを調べてみたら、パッケージ名とメニュータイトル及びアバウトダイアログでは、参照している情報が異なる事に気がつきました。
正常にローカライズできなかったのは、アプリケーションパッケージに必要なCFBundleDisplayNameだけが設定してあり、メニュータイトルに必要なCFBundleNameが抜け落ちていた事が原因です。

アプリケーションパッケージの場合

  • Info.plistにCFBundleDisplayNameを追加する。値は英語版の名前で良い。
  • 言語別のInfoPlist.stringsでCFBundleDisplayNameをローカライズする。
  • Info.plistにLSHasLocalizedDisplayNameを追加する。値は真。

LSHasLocalizedDisplayNameはiPhoneでは見かけないキーですが、ドキュメントによるとCFBundleDisplayNameの検索速度が向上する事になっています。

メニュー及びアバウトダイアログの場合

  • Info.plistにCFBundleNameを追加する。値は英語版の名前で良い。
  • 言語別のInfoPlist.stringsでCFBundleNameをローカライズする。

今回のトラブルは、こちらが抜けている事が原因でした。

広告
カテゴリー:開発 タグ: ,
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。