您可能知道,Mozilla的目标是将fennec上的移动UI作为原生Java / Android UI。
这包括使用布局XML文件,默认情况下使用
之类的东西<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/text_a"
/>
将@string/text_a
解析为text_a
文件中的strings.xml
,执行l10n。
我们想要使用其他东西,我想知道是否/如何在XML文件中将其连接起来。
所以,我很想获得指向实际执行字符串查找的android源代码的指针。
我有三个关于如何连接自定义内容的想法,这些内容并未经过事实检查,主要是因为我还没有设法找到那些尚未完成的代码:
@moz-l10n/text_a
,使用java实现的服务返回该资源类型的值moz:l10n="text_a"
自定义属性,可以连接到后处理生成的小部件我希望这里的人们有一个好主意,可以指出我的好路径或拍摄一些。
PS:我很欣赏没有关于android l10n方案是否好的自行车棚。答案 0 :(得分:2)
所以,我很想获得指向实际执行字符串查找的android源代码的指针。
android.content.res.Resources
代表android.content.res.AssetManager
和getResourceText()
方法。这反过来又潜入了本地loadResourceValue()
方法。从那里你自己......: - )
1)@ moz-l10n / text_a,使用java实现的服务返回该资源类型的值
除非您要使用自己的构建工具预处理人工资源文件,否则生成有效的Android资源文件到res/
目录中,您无法创建新的资源类型(例如,@moz-10n
) 。这需要修改构建工具和固件。
2)moz:l10n =“text_a”自定义属性,可以连接到后处理生成的小部件
3)继承我们想要使用我们的方案本地化的小部件,添加2)
您的选项#3绝对可以,并且在创建自定义小部件时非常典型。可以想象,它的技术(通常涉及具有res/values/attrs.xml
资源的declare-styleable
文件)可以某种方式应用于标准窗口小部件类,但我从未见过这样做。当然,您可以随时进行预处理,就像完成选项#1一样。