Internationalization 如何以多种语言重复使用语言文件,而不必使用Tianium将文件加倍

Internationalization 如何以多种语言重复使用语言文件,而不必使用Tianium将文件加倍,internationalization,titanium,appcelerator,tss,Internationalization,Titanium,Appcelerator,Tss,因此,我正在使用Tianium中的语言文件来提供TSS属性,我希望在整个应用程序的不同位置重复使用这些属性。这些语言文件变量应该在themes文件夹中使用(或者任何其他TSS文件) 目前它只使用一种语言,但我的应用程序有多种语言。但我不想复制所有语言的语言文件。我可以用多种语言重复使用同一文件,而不必将文件复制到其他地方吗?在 代表性 该文件允许您使用任何语言并使用每个“标签” 此外,您还可以在app.js中使用require of文件,并将此变量设置为global language.js(例如

因此,我正在使用Tianium中的语言文件来提供TSS属性,我希望在整个应用程序的不同位置重复使用这些属性。这些语言文件变量应该在themes文件夹中使用(或者任何其他TSS文件)

目前它只使用一种语言,但我的应用程序有多种语言。但我不想复制所有语言的语言文件。我可以用多种语言重复使用同一文件,而不必将文件复制到其他地方吗?

在 代表性

该文件允许您使用任何语言并使用每个“标签”

此外,您还可以在app.js中使用require of文件,并将此变量设置为global

language.js(例如):

app.js(例如):


您可以直接在任何文件上使用appLanguage变量。

否,但您可以使用默认字符串,如:

L('my_string','my default for this string');
在本例中,“my_string”是包含语言文件的字符串。如果您只提供英语文件,您将获得所有其他语言的默认设置


R

如果不将语言文件复制到所有语言中,则似乎不可能重用该语言文件。但是,为TSS文件中使用的参数创建全局go to的最佳解决方案是在
config.json
文件中添加一个节

正确的方法是:

"global": {
    "design": {
        "primaryColor": "red"
    }
},
然后可以通过访问
Alloy.CFG.design.primaryColor
来使用它

使用
config.json
文件的好处是,还可以对文件进行主题化,如所述


这样,它甚至比使用语言文件更好,因为这些文件无法主题化。

我理解这一点,但这并没有回答我的问题。这是否覆盖了钛合金内置的
L('var')
?不。这种方法是另一种形式。您可以使用函数更改语言,例如在language.js上通过self更改语言(newLanguage)并获取标签和appLanguage(variable)的其他信息。谢谢您的建议,但我已经想出了一个正确的实现,所以我自己回答了。谢谢,但这违背了语言文件的全部目的,如果我必须在任何地方定义默认值,我特别想要动态,正确的方法是在您希望支持的语言文件夹中创建文件。如果您有该语言的语言文件,那么Titanium将使用它。如果您不支持用户选择的语言,系统将显示默认文本。如果您正确阅读我的问题,您将看到我的问题不是关于语言字符串,而是关于TSS文件的属性。“默认值”应该是来自该文件的值。在
L()
函数中提供默认值会破坏我试图实现的功能的目的。因此,复制文件比使用默认值更容易。我的问题是如何避免复制文件,而是使用备用文件
L('my_string','my default for this string');
"global": {
    "design": {
        "primaryColor": "red"
    }
},