1

我无法从 l20n-node Github 页面运行示例代码而不会出现错误。

import { Env, fetchResource } from 'l20n';

const env = new Env('en-US', fetchResource);
const ctx = env.createContext(['locales/{locale}.l20n']);
const langs = [
  {code: 'es-ES'},
  {code: 'en-US'}
];

ctx.resolveValues(langs, ['foo', 'bar']).then(
  ([foo, bar]) => console.log(foo, bar));

首先,它使用 ES6 导入语法,这实际上并没有被节点应用。我稍微编辑了一下:

var Env =  require('l20n').Env;
var fetchResource = require('l20n').fetchResource;
var env = new Env('ru', fetchResource);

但还有一个问题:function resolveValues不存在。是否有人为 l20n 提供了良好实现的 node.js 片段?非常需要它

4

2 回答 2

1

这是一个文档错误,很抱歉给您带来麻烦。Node 支持是实验性的,EnvAPI 是内部的,它在没有对文档进行相应更改的情况下进行了更改。该文档现在是最新的

const L20n = require('l20n');
const langs = [
  {code: 'es-ES'},
  {code: 'en-US'}
];

// fetchResource is node-specific, Env isn't
const env = new L20n.Env(L20n.fetchResource);

// helpful for debugging
env.addEventListener('*', e => console.log(e));

// contexts are immutable;  if langs change a new context must be created
const ctx = env.createContext(langs, ['./locales/{locale}.l20n']);

// pass string ids or tuples of [id, args]
ctx.formatValues('foo', ['bar', {baz: 'Baz'}]).then(values => {
  // values is an array of resolved translations
  console.log(values);
});

// -> ['Foo en español', 'Bar only exists in English']
于 2016-02-25T21:39:24.983 回答
0

为 Node.js + Polymer + L20n 集成创建了一个“案例研究”教程。
教程:基于 L20n 库的 node.js / Polymer i18n 解决方案

于 2016-02-28T00:26:39.847 回答