2011-10-20 14 views
2

正如您可能知道的那樣,Mozilla的目標是將fennec上的移動UI作爲原生Java/Android UI進行操作。如何才能扭轉Android的佈局XML l10n明智?

,包括使用佈局的XML文件,在默認情況下使用的東西一樣

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

@string/text_astrings.xml文件解析爲text_a,做本地化。

我們想要使用別的東西,並且我想知道我們是否能夠在XML文件中將其掛鉤。

所以,我很想得到一個指向android源代碼的指針,它實際上是對字符串進行查找的。

而且我對如何連接東西的習慣,這不是事實覈對,主要是因爲我還沒有設法找到,做的東西還沒有代碼三個想法:

  1. @moz-l10n/text_a,用Java的實現的服務回報值是資源型
  2. moz:l10n="text_a"自定義屬性會得到迷上了發佈過程中產生的小部件
  3. 子類,我們希望與我們的方案本地化的窗口小部件,添加(2)

我希望有人在這裏有一個好主意,指向我的好路徑或拍攝一些。 PS:我很欣賞缺少關於android l10n方案好不好的自行車棚的問題。

回答

2

所以,我很想得到一個指向android源代碼的指針,它實際上是對字符串進行查找的。

android.content.res.Resources委託給android.content.res.AssetManagergetResourceText()方法。這反過來潛入本地loadResourceValue()方法。你對你自己從那裏... :-)

1)@ MOZ-本地化/ text_a,與Java實現的服務回報值是資源型

除非您將使用自己的構建工具預處理您的人造資源文件,並在res/目錄中生成有效的Android資源文件,但無法發明新的資源類型(例如@moz-10n)。這將需要修改構建工具和固件。

2)MOZ:本地化=將得到迷上了發佈過程中產生的小部件

3)繼承我們希望與我們的方案本地化的小工具「text_a」自定義屬性,加入2)

您的選項#3絕對可行,在創建自定義小部件時相當典型。可以想象,它的技術(通常涉及res/values/attrs.xml文件和declare-styleable資源)可以以某種方式應用於標準的窗口小部件類,但我從來沒有見過這樣做。當然,您可以隨時按照如何完成選項#1的方式進行預處理。