Date: 2015/12/10 Cate: Android Tags:  

Androidで多言語対応をするときに、res/values-ja/strings.xmlとかres/values-ja/ids.xmlを作ると思います。
で、例えばres/values/strings.xmlhoge_keyがあるのに日本語の方にはない、ってときに

Error: "hoge_key" is not translated in "ja" (Japanese) [MissingTranslation]

みたいなエラーがでるわけです。
普通はまぁ足りていない翻訳を追加したら良いんですけど、それが例えばapp_idとかfacebook_app_idみたいなAndroidManifestで参照している値だと

Error: Resources referenced from the manifest cannot vary by configuration (except for version qualifiers, e.g. -v21.) Found variation in ja [ManifestResource]

みたいなエラーが出てしまいます。
要はAndroidManifestで参照してる値はローカライズすんな、ってことなんでしょうけど、だからといってローカライズしなかったら「翻訳が足りてない」ってエラーがでるので、どうすりゃいいんだとなったのでメモ。

translatable=”false”にする

<string name="facebook_app_id" translatable="false">01234567890</string>

といったかたちでtranslatable="false"というattributeを追加すれば、それは翻訳しないでOKと認識してくれるっぽい。
で、res/values-ja/strings.xmlにはその項目を消しておく、みたいなかんじですね。

Leave a Reply