我正在使用Makara,这是Kraken.jsExpress.js的I18N模块。

假设我有一个句子,其中由于每种语言语法的原因,我想为一个恰好位于随机位置的特定单词设置样式,并且我想在呈现阶段之前使用I18N属性文件以不同的语言轻松处理它,例如:


我想吃一个苹果
埃森·艾因·阿普费尔·祖埃森


我的属性文件是:

//en-GB.properties
sentence=I want to eat an <span style="font-weight: bold;">apple</span>

//de-DE.properties
sentence=Ich möchte einen <span style="font-weight: bold;">Apfel</span> zu essen


CSS样式仅是为了简单起见才是内联的,大胆的样式仅是示例。

但是,属性文件只能包含纯文字。如何在不强制将HTML标签放在属性文件中的情况下获得相同的结果?

最佳答案

处理配置参数的一种方法是使用占位符而不是标签,并在使用诸如“ Grunt”之类的工具构建代码的阶段替换它们:我发现了这个名为“ grunt-placeholder”的Grunt任务。这是资源的链接。

https://www.npmjs.com/package/grunt-placeholder

该配置基于json对象而不是属性,在编译之前,您可以在其中创建自定义属性,并将其用于将文件配置到文件中。


app / ui / componentA / de.json

{ "componentA": { "title": "Titel der Komponente A" }}
app / ui / componentA / en.json

{ "componentA": { "title": "Title of component A" }}
app / ui / componentA / componentA.html

<markup id="componentA"> <div class="componentA"> <div data-i18n="componentA.title;[title]componentA.title"></div> </div></markup>
app / ui / componentA / componentA.less

.componentA { background: grey; color: red;}

关于html - 如何使用Express和Kraken.js的Makara模块从I18N属性文件中“拉出”样式HTML标签?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35869437/

10-09 04:16