2013-02-13 69 views
0

我使用i18next本地化網站,我/locales/dev/translation.json我有以下幾點:與目標項目i18next節點問題

"guide": { 
    "sections": { 
     "the-basics": {"title": "The Basics", 
         "contents": [{"title": "Introduction", 
             "content": {"p1": "", "p2": "", "p3": ""}} 
            ,{"title": "A Chapter in the Zeitgeist Movement", 
             "content": {"p1": "", "p2": "", "p3": ""}} 
            ] 
         } 
     ,"setting-up-a-national-chapter": {"title": "Setting up a National Chapter", 
         "contents": [{"title": "Gathering Volunteers & Social Media", 
             "content": {"p1": "", "p2": "", "p3": ""}} 
            ] 
         } 
    } 
    } 

和我的模板是這樣的:

aside#nav-container(role="complementary") 
    nav#primary-nav.overview(role="nav") 
     - for(var i in items) 
      h3.section 
       span.menu-toggle 
       span(data-content=""+i data-i18n="guide.sections."+i+".title")=i18n.t("guide.sections."+i+".title") 
      ul.sub-section 
       - var contents = items[i].contents 
       - for(var c in contents) 
        li 
         - console.log(contents[c].title) // returns the correct item title 
         a.nav-link(href="#" data-content=""+c data-i18n="guide.sections."+i+".contents.title")=i18n.t("guide.sections."+i+".contents.title") 

這只是返回 「guide.sections。」 + I + 「contents.title」

的問題是,"guide.sections."+i+".contents"與一個或多個項目的對象!

當我檢查代碼,我得到如下:

<ul class="sub-section active"><li><a href="#" class="nav-link" data-content="0" data-i18n="guide.sections.the-basics.contents.title">guide.sections.the-basics.contents.title</a></li><li><a href="#" class="nav-link" data-content="1" data-i18n="guide.sections.the-basics.contents.title">guide.sections.the-basics.contents.title</a></li></ul> 

我已經啓用.sub-section.i18n()

是什麼使i18next顯示正確的翻譯項目的正確方法是什麼?

任何意見非常讚賞。

回答

0

guide.sections.the-basics.contents.title將返回對象{ 「P1」: 「」, 「P2」: 「」, 「P3」: 「」}只有當您啓用返回對象:

http://i18next.com/pages/doc_features.html#objecttree

解析這個對象(多個段落)正確,你將需要添加後處理器的對象轉換爲有效的HTML:

http://i18next.com/pages/doc_features.html#postprocessing

+0

啊好吧,我看到' - VAR含量=國際化。 t(「guide.sections。」+ i +「。contents」,{returnObjectTrees:true});'返回我可以做後處理的對象,謝謝。 – khinester 2013-02-14 18:04:01

+0

我嘗試了以下方法,http://pastie.org/6166447但我仍然無法看到如何啓用與此後處理此翻譯?因爲後處理涉及已翻譯的文本,或者我錯過了什麼? – khinester 2013-02-14 18:20:25

+0

好的這個作品i18n.t(content [c] .title) – khinester 2013-02-14 18:31:33