読者です 読者をやめる 読者になる 読者になる

ionic(corodva)info.plistに追記して日本語化対応する - ios

アプリ内から別アプリを開いたら起動したアプリが全て英語だったのでその対応。というかionicで作ったアプリ自体が日本語化されてなかった。

xcodeでの開発の場合は、info.plistを直接いじればよいけどcorodva使ってる場合はxcode上で直接編集したものはbuild時に戻ってしまうのでcordovaで完結するようにする。

config.xmlへの記述でいけるのかと思ったのだがなぜかうまくいかなかったので別途プラグインを用意してplugin.xmlから追記する形でやってる人がいたのでそのやり方を真似させてもらった。

plugins-dev/plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" id="plugin-localization-ios" version="0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
  <name>Localization Ios</name>
  <platform name="ios">
    <config-file target="*-Info.plist" parent="CFBundleDevelopmentRegion">
      <array>
        <string>Japanese</string>
      </array>
    </config-file>
    <config-file target="*-Info.plist" parent="CFBundleLocalizations">
      <array>
        <string>ja</string>
      </array>
    </config-file>
  </platform>
</plugin>

プラグインをプロジェクトへ組み込む

$ ionic plugin add plugins-dev/

platforms/ios/Sample/SampleCalendar-Info.plist

<key>CFBundleDevelopmentRegion</key>
<array>
 <string>Japanese</string>
</array>                                                                                                                                                                                                           
・・・                                                                                                                                                                                                             
<key>CFBundleLocalizations</key>
<array>
  <string>ja</string>
</array>

info.plistに追記されていればOK。

これで終わろうと思ったらプラグインありました。

https://github.com/enricodeleo/cordova-plugin-ios-localized-strings

$ ionic plugin add cordova-plugin-ios-localized-strings --variable MAIN_LANGUAGE=Japanese --variable ADDITIONAL_LANGUAGES=ja

これだけでいける。けど、指定したパラメータの情報ってどこにも保持されない気がするのでチーム開発だと厳しいのかな。。。以上です