2016-05-02 17 views
3

developer.android.comによれば、複数の言語をサポートするために、各言語に固有のxmlファイルを作成する必要があります。彼らの例:単一言語のXML文書は、アプリにこれらの多くをバンドルすることは不必要に重いようだという考えを数百の文字列のエントリを持つことができると仮定AndroidStudio:言語xmlファイルはapkにコンパイルされていますか?

MyProject/ 
res/ 
    values/ 
     strings.xml 
    values-es/ 
     strings.xml 
    values-fr/ 
     strings.xml 

言語XMLファイルは.apkにコンパイルされますか?

やAndroidには、必要な言語のコンテンツ(私はアンドロイド生態圏に新しいですので、私は、Android OSはその上のアプリケーションとどのように相互作用するかはまだわかりません)を提供するための別のシステムを持っていません。

通常、ウェブサイトの場合、言語コンテンツはデータベースに格納され、必要に応じてajaxで取得されます。

+0

Androidには別の言語システムがありません。 –

答えて

1

デフォルトでは、yesです。あなたが持っているすべてのxmlファイルは、APKにパックされています。これは、ユーザーがデフォルトの言語を「英語」から「フランス語」に変更すると、再ダウンロードや再インストールを必要とせずに言語がアプリ内で変更されるようになります。

ただし、特定のバンドルのみでパックされた複数のAPKをリリースし、Google Playストアを通じて異なるユーザー層にリリースすることは可能です。これは一般にDrawablesにとっては良いことです.Doorablesは、ダウンロードした電話機で使用されていないスペースを多く取ることができます。たとえば、低解像度画面でXXHDPI解像度のアセットを使用してアプリをダウンロードするのは意味がありません。上記の理由から、言語は一般的には良い考えではありません。

1

XMLファイルはAPKにバンドルされています。はい、すべての言語ファイルがアプリと共にインストールされます。参照:https://en.wikipedia.org/wiki/Android_application_package(XMLファイルは/resディレクトリにあります)。

私は翻訳された文字列を含むXMLファイルを提供する以外に、アプリケーション内のテキストを翻訳する別の方法を知らず、あなたが見たように、Docsごとにそれを行う方法です。そうではありません、別の方法ではないようです。

しかし、私は2400以上の単語を含むXMLファイルを持っており、そのファイルはそれほど大きくない約90KBにしかなりません。あなたが16(または18)の "主要"言語をすべてサポートしていたとしても、これはまだ1.62 Mbです。

個人的には、それは国際的なサポートのために支払う小さな値段だと思います。それはXMLテキストファイルのサイズであることは言うまでもありません。コンパイルされたXMLは小さくなる可能性があります。

その大きさはまだ問題がある場合は、リリースには、いくつかの言語を提供し、より多くの言語をダウンロードするオプションを持って、ユーザーは自分が必要とするものを指定させることができます。

また、separate APKsをリリースし、ユーザーがダウンロードしている場所の言語を基にすることもできます。

関連する問題