2011-10-20 3 views
2

あなたが知っているように、MozillaはネイティブのJava/Android UIとしてfennec上でモバイルUIを行うことを目指しています。 L10Nをやって、デフォルトの使用のもので@string/text_aAndroidのレイアウトXMLをどのように曲げることができますか?

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    android:text="@string/text_a" 
    /> 

ようstrings.xmlファイルにtext_aに解決されたレイアウトXMLファイルを、使用することを含む

私たちは何か他のものを使いたいと思っています。それをXMLファイルにどのように埋め込むことができますか?

私はアンドロイドのソースコードへのポインタを取得したいのですが、それは実際には文字列検索を行います。

そして私は、私はまだ何かを行うコードを見つけるために管理していない基本的にので、事実確認ではない何かのカスタム、フックアップする方法の3つのアイデアを持っている:で、

  1. @moz-l10n/text_aをJavaに実装されたサービス(2)
を追加し、
  • サブクラス生成ウィジェット私たちは私たちのスキームにローカライズしたいウィジェットをプロセスを投稿するフックアップになるだろうというリソースタイプ
  • moz:l10n="text_a"カスタム属性の値をバック与えます

    私はここに、良い道を指し示すか、何かを撃つことが良い人がいることを願っています。

    PS:私はアンドロイド110n方式が良いかどうかについて自転車の欠如に感謝します。

  • 答えて

    2

    だから、私は実際に文字列検索を行うアンドロイドのソースコードへのポインタを取得したいと思います。 android.content.res.AssetManager

    android.content.res.Resources代表者とgetResourceText()方法。その結果、ネイティブのloadResourceValue()メソッドが生まれました。そして、あなたはいない限り、そのリソースタイプ

    の値をバック与えるのjava-実装されたサービスで、MOZ-L10N/text_a @)

    :-) ...そこから自分で

    1ですあなたはres/ディレクトリに有効なAndroidリソースファイルを生成して、独自のビルドツールであなたのfauxリソースファイルを前処理します。新しいリソースタイプ(例えば、@moz-10n)を作成することはできません。ビルドツールとファームウェアを変更する必要があります。

    2)MOZ:L10Nは=生成されたウィジェット )私たちは私たちのスキームにローカライズしたいウィジェットをサブクラス化プロセスを投稿するフックアップになるだろう「text_a」カスタム属性は、追加2)

    あなたのオプション#3は間違いなく可能であり、カスタムウィジェットを作成するときはかなり一般的です。そのためのテクニック(通常のファイルにdeclare-styleableというリソースが含まれています)は、何とか標準のウィジェットクラスに適用できますが、これは決して行われていないことが考えられます。もちろん、オプション#1をどのように実行するかのように、前処理をいつでも行うことができます。

    関連する問題