ベストアンサーのシンプルな回答が、すべてだが、補足しておきます。
起動直後の数秒間だけ表示するスプラッシュ画像を、多言語対応したい場合、
当初、試みるであろう
LaunchScreen.storyboard での多言語対応はできない。
Localizeできるので、あたかも簡単にできそうに見えるが、騙されてはいけない。
できないのに、できるように表示する、アップルの中途半端な表示は、未完成なのに商品化してしまったのではないかという疑いさえ、感じさせる。
Images.xcasssetsのLaunchImageに、Localizeしたイメージファイルを設定する方法もうまくいかない。
つまり、上記2つは、最初誰もが、これでいけそうに思って、はまる道ではないかと思う。
しかし、結局、できないということだ。(ふざけるな、アップル と怒るべきなのか?)
結局、ベスト回答で紹介頂いたURLページの記載の通りに、設定すれば、解決するということです。
https://qiita.com/moriteru/items/b25b6dfe67ccb362b5e9
ただし、注意点として、試験対象となる画面サイズがないと、スプラッシュ画像は真っ黒で、何も表示されない。
したがって、info.plistの例が掲載されているが、丸ごとコピーして、バージョンの番号と、イメージファイル名だけ、合わせるようにしたほうが、間違いはないだろう。
シミュレータで、iPhone6モードで試験をしていたが、おそらくこの画面サイズだろうと、info.plistを作成していたが、うまくいかなかった。このへんの知識がない人は、紹介頂いたURLページに記載されている、info.plistの内容まるごとコピーして、必要なところだけ修正する形のほうが、苦労しなくて済むということだ。
イメージファイルを全部のサイズ分、用意するのは大変なので、試験的に試みたい場合は、全部、同じイメージファイル名にしても、エラーにはならなかったし、結局、この粗雑なやり方でも、スプラッシュの多言語対応が確認できた。
あと、イメージファイル名のせいで、うまくいかないことが初期の頃、あったので、イメージファイル名もアンダーバーを入れるとかそういうのは止めたほうがいいかもしれない。ただ、これはこちらの偏見なので、まともに信じないこと。そういうことがあったというだけで、まじないのつもりで、試してみるといいかもというだけの話である。
ちなみに、General->App Icons and Launch images のところは、
Launch Image Source は、Don't use asset catalogs で何もセットしなくていいし、
Launch Screen File も空、何もセットしなくていい。
わかってしまえば、これほど、簡単なものはないが、わからないと、かなり試行錯誤することになり、私のように3日間も時間を浪費することになる。
Appleの開発に入って数ヶ月だが、もういい加減、C++の開発のほうに戻りたい気分だ。
アップルの奴隷になっている気がして仕方がない。
イメージファイルのLocalizeは、紹介頂いたURLページの通りにすればいいが、置き場所は、どこでもよさげ、と書いてあったが、どこでもということはないようだ。Projectフォルダの下、というか、Main.storyboardと同じディレクトリであれば、間違いがないだろう。私はそれより上のところにコピーしてしまったので、Localizeボタンが表示されず、最初、戸惑ったことを付記しておく。
それと、シミュレータで動作試験を行う場合、スプラッシュに関しては、設定言語を切り替えるために利用する、XcodeのProduct->Scheme->Application Language は、スプラッシュ画面のテストの時だけは、信用してはいけない。
それ以外はこれを信用して利用してもいいが、スプラッシュのテストについては、注意が必要ということだ。
Xcode側ではなく、Simulator側での言語設定に従っているとしか思えない動きをしているからだ。
おそらく、実機の言語設定の切り替えで、テストしたほうが、誤認することはないだろうが、シミュレータでテストしている人が圧倒的多数だろうと思うので、忠告しておく。
もし、実機でのテストが難しいようであれば、XcodeのProduct->Scheme->Application Languageにおいて、英語とか、日本語とかを選択するのではなく、System Languageを選択して、面倒だが、Simulatorのほうの設定で、言語を切り替えて、テストするべきだ。
しかし、これはスプラッシュという画面のテストをするときだけの注意事項であることに留意して欲しい。
Main.Storyboard上でのイメージ画面などは、従来通り、XcodeのProduct->Scheme->Application Languageで言語設定しても、きちんと連動して、多言語対応ができていることを確認できるだろう。
あくまで、スプラッシュ画像のテストのときだけ、気をつけたほうが良いということである。
これがアップルのバグなのか、こちらのやり方の問題なのか、正直、分からないが、個人的には、そういう結論に至ったということだ。
あと、スプラッシュ画像は、キャッシュに残るので、一度テストしたら、再度テストするときは、インストールされたアイコンは削除してから、行うように習慣づけないと、いつまでも原因が分からず、挫折することになるだろう。
最後に、info.plistをいじるので、自信のない人は、できるだけバックアップを確保しておくこと。
info.plistに間違って改行しただけで、エラーになるので、わからない人はパニックになるだろうし、修復不能になって、何度、おしゃかにしたことか。。。
以上、協力頂いた方々には感謝します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/16 12:03
2018/03/16 12:09
2018/03/16 13:00
2018/03/16 16:55