问题标签 [l20n]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
650 浏览

html - l20n 带有 HTML 标记?

如果我想创建这样的东西,我将如何使用 l20n:

我想整体翻译这句话,但我也想要标记。我不想这样做:

...因为翻译本身现在被复制了。

我知道这可能不在 l20n 的范围内,但它可能在现实世界中很常见。是否有某种既定的方法来解决这个问题?

0 投票
1 回答
705 浏览

javascript - l20n.js - 如何从 javascript 访问本地化子实体

在这个例子中,我可以看到如何访问 LOL 资源中的变量

但是,我也希望能够在 javascript 中做类似的事情,例如:

但这对我不起作用。我调试了一下,但我觉得我在浪费时间,而且可能已经有一种简单的方法可以做到这一点。在那儿?

0 投票
2 回答
2595 浏览

javascript - 如何使用 l20n.js 指示在浏览器中呈现哪种语言?

我正在使用 l20n.js 向 Angular.js 应用程序添加本地化。这是我的项目结构:

/index.html

/locales/manifest.json

/locales/en-US/strings.l20n

/locales/fr-FR/strings.l20n

如何将英语(即/locales/en/strings.l20n文件)换成法语?尽管lang="fr-FR"index.html.

0 投票
0 回答
324 浏览

angularjs - L20n.js 框架不会在 Angular 视图中呈现文本

我正在使用 l20n.js 为 Angular 应用程序提供本地化。它适用于 index.html 中的元素,但本地化文本不会显示在 Angular 局部视图中。这是我的项目结构:

我目前的工作理论是存在某种竞争条件;Angular 正在重新渲染某些东西,l20n 没有意识到发生了重新渲染,也没有从资源文件中获取翻译后的文本。我怎样才能解决这个问题?

0 投票
1 回答
360 浏览

mozilla - 什么可能导致 L20N 不处理实体变量和包含?

L20N是在我的 ReactJS 项目中设置的,我在它的事件触发后调用getSync它(context 所以ready事情应该很好)。但是,我得到的不是我预期的包含其他实体值和变量扩展的字符串,而是原始实体字符串。

我得到的字符串如下所示:

{{$user.name}} - {{appName}}

但当然,我期待这样的事情:

Ben Taylor - My Cool App

我试图在这个 plunker 中重现问题。不幸的是,它工作正常!当您运行它时,警报框会显示预期的 L20N 扩展字符串。

什么可能导致实体值返回原始值? 我有一个有效的context并且检查器中没有错误,所以看起来一切都配置得很好。我想知道是否与我正在做的其他事情有一些互动,这会破坏 L20N。任何想法表示赞赏!

我无法包含我正在开发的应用程序,但不用说它有更多的移动部件。它是一个基于此模板的 React 应用程序。

0 投票
1 回答
976 浏览

localization - L20n 翻译来自文本区域和输入字段的占位符/属性

如何从 textarea 或 input 本地化占位符?
如果我使用以下示例,它会将翻译直接作为文本放入 textarea。

语言文件

0 投票
1 回答
117 浏览

ember.js - 在 ember-cli 应用程序中存储 l20n ctx 对象的位置

我正在使用 l20n 的 bower 版本来本地化 ember-cli 应用程序。

我正在使用以下流程本地化应用程序:

  1. 我创建了一个初始化程序,它根据用户的语言设置创建一个 l20n 上下文对象。

  2. 使用 ember 助手,我将每个单词从 DOM 传递到要翻译的 l20n 上下文对象。

在车把模板中:

在 ember 助手中:

这行得通,但我刚刚在 Ember 上标记了一个全局变量,以使帮助程序可以访问 l20n 上下文。我知道这不是最佳做法。我试图弄清楚如何创建一个仅用于存储 l20n 上下文对象的 ES6 模块。这样,在我的 ember 助手中,我可以这样做:

并防止 l20n 对象陷入应用程序的其余部分。

提前感谢您的帮助!!!

更新:

一种解决方案是使用 application.register,如下所示:

但是,那么我的问题将是从我的助手访问容器。这个:

将不起作用,因为容器对助手不可用!

0 投票
1 回答
886 浏览

html - 使用 l20n 本地化属性

我想placeholder用 L20N 本地化一个属性。我在他们的文档中找不到任何东西,这样做(不出所料)是行不通的。

0 投票
1 回答
136 浏览

javascript - L20n complex plurals

According to the documentation example, the library can support "complex language plurals".

In the Firefox download panel, a string like this shows up while downloading file:

4 hours, 1 minute and 26 seconds remaining.

Unfortunately, the given example seems not work with the 3.0.4 release.

HTML markup:

Language file (en-US.l20n):

Current Result:

Expected result:

What is the current syntax for plurals?

0 投票
1 回答
205 浏览

html - 在具有自定义属性的浏览器中使用 l20n

我遇到了一个问题,即 l20n 仅适用于标准 HTML 元素的默认属性。

就我而言,我正在尝试使用 JSON 格式的翻译。我的虚拟数据如下:

我的测试HMTL如下:

但是,浏览器会生成以下 HTML:

我已经尝试了属性排序和属性名称的各种组合,看起来只有每个元素类型的适当默认 HTML 属性由 l20n 本地化。

当在自定义元素中使用标准 HTML 属性(例如“title”)时,该问题也很明显,尽管 l20n 可以处理标准元素的标准属性(当它们被放置在<content>自定义元素的标记中时)。

围绕其处理属性的 l20n 文档似乎并不十分广泛。到目前为止,在 Stack Overflow 和 Google 上寻找答案已被证明是徒劳的,而 Mozilla 拥有自己的讨论列表和错误跟踪器,公众似乎不太容易获得这些信息。

l20n 项目似乎处于不断变化的状态,在我使用的版本(3.0.5)中,据称与 ES5 兼容的 webcompat/l20n.js 需要 Polyfill,因为它使用了 Array.from(); 此外,示例和学习资源似乎与框架的使用方式不完全匹配。源代码完全没有文档记录,但尽管如此,到目前为止我对框架的大部分理解都是通过查看那里获得的。我在他们的代码中看不到对属性名称的任何过滤,所以我觉得这个问题可能是由于需要在 l20n 传递数据属性之前向浏览器注册元素(及其属性)。

提前感谢任何可能提供帮助的人。