Mac標準のアプリ「メール」「プレビュー」などは、日本語環境で日本語名が表示されるようになっています。Xojoで作るMac版アプリの名前を日本語にするときも同じようにしたいですよね。
ここではビルド時に自動的に日本語ローカライズ名にするための仕込み方を説明します。
前提
これから説明する方法は、Xojoのプロジェクトファイルで言語を「English」にしていて、日本語表記はすべてグローバル定数でローカライズしているのを前提にしています。
目標
最終的にどうなればいいのかを先に説明しておきます。2ヵ所の仕込みが必要です。
Info.plist
.app内のContentsフォルダにあるInfo.plistに「Bundle display name」が必要です。Xojoのデフォルトでは記述されないので、追加する必要があります。
InfoPlist.strings
Contents/Resources/ja.lprojフォルダの中にInfoPlist.stringsファイルが必要です。
InfoPlist.stringsはただのプレーンテキストファイルです。ここにローカライズ名が記述されています。Xojoのデフォルトでは、このファイルは生成されません。自分でこのファイルを作って入れる必要があります。
ビルドした後にこれらを手動で仕込むのは可能です。でもビルドする毎にいちいち仕込むのはかなり面倒です。
自動的に仕込む方法
Info.plistに「Bundle display name」を追加する
Xojo 2014 Release 2でできるようになった方法です。
出典:Adding plist Settings To Your OS X Apps
プレーンテキストで「Info.plist」という名前で新規ファイルを作ります。中は下記のように記述します。stringタグにアプリの英語名を書いておきます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>CFBundleDisplayName</key>
<string>Ukigami 8</string>
</dict>
</plist>
Xojoのプロジェクトファイルを開き、左サイドバーにこの「Info.plist」ファイルをドラッグ&ドロップします。これだけでビルド時に「Bundle display name」が追加されるようになります。
ja.lprojフォルダにInfoPlist.stringsをコピーする
新規で「ja.lproj」フォルダを作り、中にInfoPlist.stringsファイルを入れておきます。InfoPlist.stringsには下記のように日本語ローカライズ名を書いておきます。
CFBundleName = "浮紙8";
CFBundleDisplayName = "浮紙8";
左サイドバーの[macOS]を右クリックし、[Copy Files]を選択します。
「CopyFiles1」が追加されるので、そのままコピー先を「Resources Folder」に変更します。
「CopyFiles1」の真っ白いスペースに先ほど用意した「ja.lproj」フォルダをドラッグ&ドロップします。フルパスが表示されればOK。
この「ja.lproj」フォルダにはInfoPlist.stringsファイルが1つ入っているだけですが、ビルドすると上書されることなく、Xojoが生成するLocalizable.stringsと一緒に「ja.lproj」フォルダの中に入ってくれます。
これで仕込みは完了。これを一度しておけば、以降はビルドする毎に自動的に日本語ローカライズ名になります。