小编DeB*_*oer的帖子

i18n for react,formatjs,react-intl

我想在我的反应应用中为我的i18n使用ICU标准.我想存储我的语言文件,如http://userguide.icu-project.org/locale/localizing#TOC-.txt-resource-bundles:

de {
  key1 { "Deutsche Sprache "
         "schwere Sprache" }
  key2 { "Düsseldorf" }
}
Run Code Online (Sandbox Code Playgroud)

我找到了这个图书馆http://formatjs.io/react/.http://formatjs.io/支持ICU,但我找不到任何好的例子如何用我的应用程序连接我的语言文件.

我正在阅读他们的教程,似乎我可以使用该组件<FormattedMessage>.所以,例如

var intlData = {
    "locales": "en-US",
    "messages": {
        "photos": "{name} took {numPhotos, plural,\n  =0 {no photos}\n  =1 {one photo}\n  other {# photos}\n} on {takenDate, date, long}.\n"
    }
};

React.render(
    <Component {...intlData} />,
    document.getElementById('example')
);
Run Code Online (Sandbox Code Playgroud)

然后在我的一些组件中

...
render: function () {
        return (
            <p>
                <FormattedMessage
                    message={this.getIntlMessage('photos')}
                    name="Annie"
                    numPhotos={1000}
                    takenDate={Date.now()} />
            </p>
        );
    }
Run Code Online (Sandbox Code Playgroud)

我最大的问题是如何转换我的语言文件,例如

en-US …
Run Code Online (Sandbox Code Playgroud)

icu reactjs formatjs

13
推荐指数
1
解决办法
1万
查看次数

在sbt中运行npm build for play框架

我不太熟悉sbt/play配置.我正在使用play 2.3.8来提供我的javascript应用程序.在该项目中有:

.enablePlugins(SbtWeb)
.enablePlugins(play.PlayScala)
.settings(
  ...
  libraryDependencies ++= WebDependancies :+ evobufAkka,
  pipelineStages in Assets := Seq(closure, digest),
  ...
  // Some closure compiler settings
)
Run Code Online (Sandbox Code Playgroud)

该项目使用闭包编译器来缩小代码等.但我想改变它.我想停止使用闭包编译器,而只是使用简单的npm包.我知道sbt可以运行一些shell任务.所有这一切的原因是将服务器与前端分开,因此所有与前端相关的任务(较少,uglify,指纹识别等)实际上都是由类似节点的javascript工具完成的.我正在阅读关于sbt-web但我想尽可能避免这种情况.我想到的是:1.启动sbt,打开我的项目2.运行编译: - sbt将运行我的npm任务,最终得到一些build.js文件,然后可以通过/ public目录中的play框架或其他任何方式提供.3.如果可能的话,我希望有一个单独的单元测试过程.

在npm设置方面,我考虑将package.json放在我的project/public文件夹中,除非把它放在更好的位置project/app/assets.

这一切都可能吗?

2015年8月8日更新

我做了一些研究,发现了外部过程.基于我创建的一些例子:

lazy val npmBuildTask = taskKey[Unit]("Execute the npm build command to build the ui")

npmBuildTask := {
  "cd public/ && npm install" !
}  
Run Code Online (Sandbox Code Playgroud)

但不确定如何将此任务添加到编译过程中?

javascript sbt playframework npm sbt-web

4
推荐指数
1
解决办法
2889
查看次数

标签 统计

formatjs ×1

icu ×1

javascript ×1

npm ×1

playframework ×1

reactjs ×1

sbt ×1

sbt-web ×1