2018年3月4日日曜日

iPhoneアプリの多言語対応(英語)

こんにちは。EtoMkMkです。

iPhoneアプリはもうそろそろ完成かと思っていましたが、少し詰めがあまかったです。
#今日は少し専門的な内容です。

SWIFT(プログラミング言語)の入門書を片手に今回開発を行なっていますが、入門書の最後の方に『アプリ開発の仕上げ』という見出しのページがあったので、仕上げ仕上げ!というか〜るい気持ちで見ていた所、


「多言語対応」
の見出しが目につきました。

日本以外でもアプリを展開したい場合に対応するとの事ですが、まあもともと日本の子供向けに作ろうと考えていたので多言語対応など全くもって考えていませんでした。
が、アップルへの申請前という事もあり気になったのでサイトを飛び回っていると、「あとで多言語に変更するのは面倒だ。手間がかかる。」などなど少し焦る内容のものが多く目につきました。

この手のものは自分の経験上

「始めが特に肝心」

だと思うたちなので、英語対応版も考えてみようと対応を始めて見ました。

簡単に手順をまとめてみましたのでこちらは参考までに。

①多言語設定にするためにproject内のLocalizations欄で、
「+」して「Japanese」を追加して、ローカライズ対象のファイルを選択する。
#後で書きますが、あることをしていたがためにファイルが選択できませんでした。。。これはハマりました。


②「Strings File」を作成して、変換をかけたい側の言語にどのように訳すのかを設定します。




③「NsLocalizedString」関数を使用すれば、変換の準備は完了です。
lblMsg1.text = NSLocalizedString(”はじめるよ”, comment: "")

あとはiPhone側で「English」の言語に設定を変えれば「lblMsg1.text」には「Start」が表示されるようになります。もちろん「Japanese」の言語にした場合は、「はじめるよ」が表示されます。


とまあひたすらこの関数とString Fileに定義を追加する作業なのですが、自分が使用していたFontは日本語対応のみのFontを使用していたので、他の言語の場合はFontも変えないといけない事に陥り、対応もなかなか大変でした。

まあ、次からはその構成まで考えた設計ができるので、もう少しスマートにできそうだけど、今回も本当に色々と勉強になりました。
ただやりきって良かったですね。ほんとそう思います。
そして無事ローカライズ対応も完了です。今後こそ後少しかな。
怖いけど入門書の『アプリ開発の仕上げ』を読み進めようと思います。#汗

<補足> #ハマった箇所です。
「Base.lproj」というディレクトリの中に「StoryBoard」関連のファイル格納されているのですが、色々と自分が対応していくうちに変なディレクトリを作ってしまったと勘違いし、そこのディレクトリから他のSWIFTファイルが格納されている方に「StoryBoard」ファイル類を移動させたりしてしまったせいで、そもそも①の時点でローカライズ対象のファイルが選択できなくなってハマってもいました。。。
このおかげで一からプロジェクトを作成し直してファイルをコピペして、podの設定もやり直してなどなど、時間を食ってしまいましたね。
ただ、一連の流れを復習できたので良かったかな。#強がり泣






0 件のコメント:

コメントを投稿

【最新アプリ紹介】”CountDown 5 Bomber Plus”

新しいアプリの紹介です。 瞬間的な判断力を要する超高速タップアクションゲーム。 ”CountDown 5 Bomber Plus” iOS : goo.gl/jnLd5W   5秒で爆発する爆弾が画面上に設置されるので、 ポンポンポンと指でタップしていきましょう。 操作は非常...