在JS文件的开头存储“资源”(ui组件的文本)的地方和方法

时间:2015-10-20 09:31:12

标签: extjs extjs4 extjs4.1 extjs4.2 extjs5

任何人都可以让我知道他们为标签和类似的东西输入文字是做什么的吗?

我让他们进入了项目,但这非常混乱,因为我必须搜索我的所有代码才发现和编辑文本。即。

     {
        xtype: 'fieldcontainer',
        fieldLabel: 'Save', // Abstracting this to a common place ???

我考虑将这些放在“配置”部分,但后来我需要做一个getNameOfConfig,即

 config: {
    cancelButtonText: 'Cancel',
    saveButtonText: 'Save',
    deleteButtonText: 'Delete',
    ........

任何做不同事情的人,我真的不想重新发明轮子。

我还想过将对象直接放在组件上,即

 uiRes: {
    cancelButtonText: 'Cancel',
    saveButtonText: 'Save',
    deleteButtonText: 'Delete',
    ........

我相信这样我就可以做一个this.uiRes.saveButtonText而不是使用getter。

这里最好的想法是什么?

我认为我当然需要改进它,因为当我需要编辑UI元素的文本时,我正在查找我的代码并执行此操作会更容易吗?

 {
    xtype: 'fieldcontainer',
    fieldLabel: this.uiRes.saveButtonText //OR// getSaveButtonText()

是否有一些内置方法可以做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:1)

除非您在initComponent()函数中定义所有组件配置,否则您提出的解决方案都不会有效(请查看this fiddle - 它不会渲染)。使用'这个'只是有问题。

您在寻找什么是本地化支持。官方指南(支持)是将所有字符串放在组件配置中(在config: {}块中不必要)并使用替代进行翻译。但这种解决方案远非理想。

如果您真的在寻找本地化解决方案,我强烈建议您阅读@Saki的Localization of Ext Applications article。它分析了可用的优势等优点等+提出的解决方案。这比我在这里写的任何东西都要好......

如果本地化不是您的目标,我会将文本保留在代码中。