Xamarin.Formsにてアプリに表示する言語を多言語対応しようと思うのですが、自分でそれぞれの言語のリソースを用意する必要がありますか?
はい、あります。
Xamarin.Forms アプリの多言語対応については以下に解説があります。
何かAPIなど呼び出すようにしていたら、自動でローカルの言語に合わせて表示できたりしないでしょうか?
自分の意図しない意味の言葉で表示されると困るため、やはり自動というのは難しいと思いますが...
これは不可能ですね。少なくとも Xamarin や Android/iOS の API はこれを提供しません。
自分で用意する場合、例えば日本語と英語のリソースを用意していたとき、中国語に設定されている端末はどちらの言語で表示されるのでしょうか?
ローカライズとは、 AppResources.resx
にデフォルト(対応する言語がない場合)の言語リソースを用意し(通常これは英語でしょう)、さらに、各言語のリソースを用意します。例えば日本語なら AppResources.ja.resx
を用意します。
アプリに対応する言語がない場合にアプリ内で日本語と英語から選択して表示したりなどできますか?
前述のやり方の場合、対応する言語が無い場合は AppResources.resx
が使用されます。選択させる機能は Xamarin.Forms は提供しません。
端末で設定されている言語 以外 の言語リソースを使用させることは、以下のように可能なようなので、選択させるUIを作りこめば可能なのかもしれません(試したことはありません)。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。