问题标签 [messageformat]

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 投票
2 回答
361 浏览

java - 带有变音符号的 JAVA MessageFormat.Format (ä / ö / ü)

我的 Java 后端有问题MessageFormat.format。我有一个邮件功能,它可以将带有内容的邮件从我的前端(通过 api 传递到后端)发送给一些用户。

例如,某些值(例如processedRoleContent)可能包含ü但在发送的电子邮件中显示为Ü.

如何配置MessageFormat.format它发送的变音符号?

先感谢您!

0 投票
2 回答
294 浏览

ios - 使用 iOS Stringsdict 文件的显式复数字符串

我开始学习iOS Stringsdict 文件,并在使用以下语法的项目中找到了一些现有代码:

根据 CLDR,zero在英语中是无效的复数​​,我们希望使用明确的复数规则(=0使用 ICU MessageFormat 时)

我试图找到如何在 iOS Stringsdict 文件中使用显式复数规则,但找不到任何方法来实现这一点。有人可以确认这是否受支持吗?


解决方案示例(我无法测试它们,但也许有人可以?)

或者


关于 ICU MessageFormat 的 CLDR 实现的显式复数规则部分的额外参考:

https://formatjs.io/guides/message-syntax/#plural-format

=value 这用于匹配特定值,而不考虑当前语言环境的多个类别。

0 投票
1 回答
184 浏览

localization - 如何在 ICU MessageFormat 中表示俄语或其他复杂复数语言的复数规则

鉴于复数规则的不寻常性质,我们如何在 ICU MessageFormat 中表示俄语?

MessageFormat 支持复数形式{arg, plural, =1 {one} other {other}}和更复杂的形式{arg, plural, =0 {none} =1 {one} =2 {few} other {several}}

但是,有时不经过一些计算,无法直接由数字确定要使用的文本;我们该怎么做?俄语有三个基于数字中最后一位数字的复数规则,但 11-14 除外。

我查看的信息:

俄语多元化

http://www.russianlessons.net/lessons/lesson11_main.php

消息格式规则

http://userguide.icu-project.org/formatparse/messages

各种语言的复数规则数

https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_and_Plurals

0 投票
1 回答
168 浏览

java - 日期 toString 没有 MessageFormat 的时区转换

我正在使用ibm 的MessageFormat库来本地化传入日期。

这里的任务是在将日期显示给最终用户之前对其进行一些检查。我得到了一个 ZonedDateTime 对象,我需要确保它不会出现在周末,我使用getDayOfWeek.

当我尝试使用 MessageFormat 将日期转换为字符串时,就会出现问题。由于 MessageFormat 只接受java.util.Date对象,因此我转换了 ZonedDateTime -> Instant-> Date。不幸的是,这种方法导致我的“星期一”变成了“星期日”,如下所示。

我注意到这种“损失”发生在Date转换时。这是因为 MessageFormat 正在调用 Date.toString() 对象,而前者使用 JVM 的默认时区(在我的例子中是 PST)。结果,我的 UTC 被隐式转换为 PST,我损失了一天。

任何想法如何解决这个问题?还有什么可以传递给 MessageFormat 的吗?有没有办法使用 Date 但不会得到这种不受欢迎的行为?我可以使用另一个本地化库吗?

调试时的断点显示不良行为

0 投票
1 回答
502 浏览

java - java.text.MessageFormat 增加 BigDecimal / Number 的小数位精度

java.text.MessageFormat用来替换显示每单位价格的模板中的占位符。以下是执行此操作的一段代码。

pattern

{0} {1} 每 {2}

并且arguments

参数 [0] = "美元",参数 [1] = BigDecimal(0.0002),参数 [2] = "衬衫"

我希望格式化程序输出

“每件衬衫 0.0002 美元”

但是格式化程序正在降低精度并产生

“每件衬衫 0 美元”

看起来MessageFormat只考虑小数点后 3 位数字。“BigDecimal(0.01)”按预期工作。

那么我可以调整任何属性来告诉MessageFormat它应该使用一定的精度吗?改变pattern不是我的选择。

我可以在格式化之前将参数转换为Stringfrom 。BigDecimal但这将是我最后的选择。

编辑: 3 个小数点的限制来自NumberFormat.

有没有办法改变这个值并让 MessageFormat 使用它?

0 投票
2 回答
154 浏览

java - 无法使用 MessageFormat 解析文本

我正在尝试使用 MessageFormat 类来解析消息。但我得到“MessageFormat 解析错误!”。我从互联网上得到了这个代码。这是链接

我在控制台中得到以下输出。

为什么我会收到此错误,我该如何解决?谢谢。

0 投票
1 回答
81 浏览

java - 使用 MessageFormat,分组小数位

我正在使用消息格式。目前的模式是:

因为0.123456它给了我

这是预期的。但是我想对小数位进行分组,以便显示

我也想要尾随零,所以0.1234显示为

我似乎无法为此找到正确的自定义模式

0 投票
1 回答
61 浏览

java - 是否有一个库,它在给定的两个字符串上提供占位符值?

给定两个字符串

我想获得价值图。

我在 Java Comparing two strings with placeholder values 上引用了这个答案,对我的使用做了一点调整。

但是,可能有很多极端情况。我对我的解决方案的担心是我可能会错过一个角落案例,然后是生产错误。

是否有围绕此编写的成熟库?我正在检查 MessageFormat/StrSubstitutor 但我无法获得任何符合我期望的方法。

0 投票
0 回答
16 浏览

php - 使用 PHP 获取 ICU MessageFormatter 参数

我想构建一个 ICU MessageFormat 编辑器,并且我想获取一个简单字符串的参数列表。

例子 :

结果$args将是:

我知道如何在 Javascript 中做到这一点。但是在 PHP 中?MessageFormathttps://www.php.net/manual/en/class.messageformatter.php)不提供获取字符串参数列表的可能性。

我认为使用 Regex 是可能的,但是编写所有 ICU MessageFormat 模式应该有点复杂......

有什么想法可以实现这一目标吗?

谢谢。

0 投票
1 回答
32 浏览

encoding - 根据前缀确定 HSM_KX 标头长度

我有一个示例 HSM_KW 消息。它有一个 3 个字符的前缀,用于确定消息头的长度。在此示例消息中,它是00w. 那么如何将其转换为数字以了解标头的长度?

示例消息: