LoginSignup
1
1

More than 5 years have passed since last update.

XojoでMac版アプリの名前を自動的に日本語ローカライズする方法

Last updated at Posted at 2018-08-29

Mac標準のアプリ「メール」「プレビュー」などは、日本語環境で日本語名が表示されるようになっています。Xojoで作るMac版アプリの名前を日本語にするときも同じようにしたいですよね。

ここではビルド時に自動的に日本語ローカライズ名にするための仕込み方を説明します。

前提

これから説明する方法は、Xojoのプロジェクトファイルで言語を「English」にしていて、日本語表記はすべてグローバル定数でローカライズしているのを前提にしています。
english.png

目標

最終的にどうなればいいのかを先に説明しておきます。2ヵ所の仕込みが必要です。

Info.plist

.app内のContentsフォルダにあるInfo.plistに「Bundle display name」が必要です。Xojoのデフォルトでは記述されないので、追加する必要があります。
info-plist.png

InfoPlist.strings

Contents/Resources/ja.lprojフォルダの中にInfoPlist.stringsファイルが必要です。
InfoPlist-strings.png
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]を選択します。
copy-files-menu.png
「CopyFiles1」が追加されるので、そのままコピー先を「Resources Folder」に変更します。
copy-files1.png
「CopyFiles1」の真っ白いスペースに先ほど用意した「ja.lproj」フォルダをドラッグ&ドロップします。フルパスが表示されればOK。
copy-files2.png
この「ja.lproj」フォルダにはInfoPlist.stringsファイルが1つ入っているだけですが、ビルドすると上書されることなく、Xojoが生成するLocalizable.stringsと一緒に「ja.lproj」フォルダの中に入ってくれます。

これで仕込みは完了。これを一度しておけば、以降はビルドする毎に自動的に日本語ローカライズ名になります。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1