2013-02-13 67 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