2013-06-28 52 views
1

我使用骨幹和jQuery開發一個應用程序,我有什麼地方放東西像標籤表單域,網頁標題,按鈕文字的問題,等等。JS框架 - 字段標籤/文本

我猜測這些應該被外化到某種屬性文件中,特別是爲了支持國際化,但我無法找到任何有關這方面最佳實踐的良好文檔。

在過去的Java應用程序和JSP中,我們將這樣的東西存儲在.properties文件中。我是否應該使用相同的概念並將這些內容放入JSON文件中,然後發出XHR請求來獲取文件並以這種方式插入它們?

基本上,我在使用客戶端/ UI框架開發應用程序時,正在尋找此類事物的最佳實踐。

回答

1

您可以創建語言文件爲對象,如果您使用的需要,例如:

locale/en_gb.js

define({ 
    buttons: { 
     ok: 'Ok', 
     error: 'Error', 
     prompts: { 
      saveChanges: 'You have unsaved changes. Would you like to save them?', 
      quit: 'Are you sure you want to quit?' 
     } 
    }, 

    pages: { 
     home: 'Home' 
     contact: 'Contact' 
    } 
}); 

您有不同的語言,語言文件。

在您的擴展視圖,您可以創建這樣一些方法:

localeBase: null, 
currentLocale: null, 

loadLocale: function(localeName) { 
    require('locale/'+localeName, function(Locale) { 
     this.currentLocale = Locale; 
    }); 
}, 

l: function(lookupStr) { 
    // Lookup 'lookupStr' in 'this.currentLocale' 
} 

l方法採取.標註的查詢字符串,如:

"pages.home"回報"Home"

或者,如果localeBase設爲例如:

"buttons"

這時如果字符串啓動帶.

".prompts.quit"

將相對查找到localeBase(如果它不與點查找從開始AKA絕對查找開始)。

請注意,localeBase不是一個必要的概念,它取決於您的偏好。

在你Viewrender方法,您通過視圖作爲template context

var html = myTemplateRenderer_Function(this); 
this.el.html(html); 

你的模板文件,然後可以訪問l方法,所以你可以做的東西,如:

<button value="<%= l('buttons.ok') %>" />