本地化Android应用程序

本地化Android应用程序,android,localization,titanium,titanium-mobile,Android,Localization,Titanium,Titanium Mobile,我有一个完整的钛安卓应用程序(开发人员不是我)。 我想本地化它,但是字符串和UI都是在源代码中硬编码的。 应用程序内置于javascript中 UI也很重要,因为我们还需要从右到左的应用程序版本 需要提到的是,我对钛合金环境还很陌生 执行此任务的最佳方法是什么?您需要获取源代码并找到所有硬编码字符串,然后将它们移动到il8n/文件夹的string.xml文件中。您需要在适当的语言目录中创建其中一个文件,其中的字符串对应于要表示的特定硬编码值 例如: var mystring = L('hi_te

我有一个完整的钛安卓应用程序(开发人员不是我)。 我想本地化它,但是字符串和UI都是在源代码中硬编码的。 应用程序内置于javascript中

UI也很重要,因为我们还需要从右到左的应用程序版本

需要提到的是,我对钛合金环境还很陌生


执行此任务的最佳方法是什么?

您需要获取源代码并找到所有硬编码字符串,然后将它们移动到il8n/文件夹的string.xml文件中。您需要在适当的语言目录中创建其中一个文件,其中的字符串对应于要表示的特定硬编码值

例如:

var mystring = L('hi_text');
在Tianium中,此代码将进入language文件夹(设备设置的语言文件夹,即English或en文件夹),并查找如下条目:

il8n/en文件夹:

<string name="hi_text">Hello</string>
你好 如果设备处于西班牙语模式,则相同的代码将查找il8n/es文件夹:

<string name="hi_text">Hola<string>
霍拉
这将允许您切换语言,但更改UI可能是对源代码的重大更改。在app.js文件中,您可以尝试检测设备的语言,并为屏幕切换到完全不同的逻辑。您也可以在特定的屏幕javascript文件中执行此操作,在这里,您可以为每种不同的语言调用一个创建函数。如果应用程序尚未内置该要求,则可能会更改其体系结构。

以下是官方文档:

你试过阅读这本书吗?没有,但是谢谢。为什么投反对票?我问的是一种通用的方法,而不是需要解决方案的特定代码。我的意思是,为什么原始开发人员无法提供源代码?没有它,你将无法做到这一点。情况就是这样。由于某种原因,最初的开发人员不再处于开发循环中,我也不知道。他们只能支持特定的问题。无论如何,我的任务不是维护代码,只是本地化,因为我对钛行业还不熟悉,所以我问什么是最好的方法。我还是不明白为什么投反对票…UI呢?如果我想在rtl语言环境中本地化UI,它将在rtl中工作,反之亦然。不幸的是,我对rtl语言环境不太熟悉。你想改变什么?举个例子。你说的是屏幕动画的方式,还是你必须以不同的方式对齐文本?基本上只需要对齐。也许有可能将布局文件(如css)导出到il8n/文件夹,就像我对字符串所做的那样?(具体的代码是不相关的,因为我谈论的是处理多个布局的一般方法,这些布局取决于区域设置,而不仅仅是rtl到ltr…)我不知道。我认为,如果语言是rtl类型的语言,则需要根据需要创建不同的布局函数。比如doLTL()和doRTL()。应该有这样做的例子与不同的方向,如肖像和景观。类似的想法。在运行时,您可能需要检测语言并调用不同的布局代码。这实际上取决于应用程序的编写方式和模块化程度。在新的Tianium SDK 3.0+版本中,有一些新的布局选项可能更适合您的情况,但它刚刚发布。