问题标签 [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.
java - 带有变音符号的 JAVA MessageFormat.Format (ä / ö / ü)
我的 Java 后端有问题MessageFormat.format
。我有一个邮件功能,它可以将带有内容的邮件从我的前端(通过 api 传递到后端)发送给一些用户。
例如,某些值(例如processedRoleContent
)可能包含ü
但在发送的电子邮件中显示为Ü
.
如何配置MessageFormat.format
它发送的变音符号?
先感谢您!
ios - 使用 iOS Stringsdict 文件的显式复数字符串
我开始学习iOS Stringsdict 文件,并在使用以下语法的项目中找到了一些现有代码:
根据 CLDR,zero
在英语中是无效的复数,我们希望使用明确的复数规则(=0
使用 ICU MessageFormat 时)
我试图找到如何在 iOS Stringsdict 文件中使用显式复数规则,但找不到任何方法来实现这一点。有人可以确认这是否受支持吗?
解决方案示例(我无法测试它们,但也许有人可以?)
或者
关于 ICU MessageFormat 的 CLDR 实现的显式复数规则部分的额外参考:
https://formatjs.io/guides/message-syntax/#plural-format
=value 这用于匹配特定值,而不考虑当前语言环境的多个类别。
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
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 但不会得到这种不受欢迎的行为?我可以使用另一个本地化库吗?
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
不是我的选择。
我可以在格式化之前将参数转换为String
from 。BigDecimal
但这将是我最后的选择。
编辑:
3 个小数点的限制来自NumberFormat
.
有没有办法改变这个值并让 MessageFormat 使用它?
java - 无法使用 MessageFormat 解析文本
我正在尝试使用 MessageFormat 类来解析消息。但我得到“MessageFormat 解析错误!”。我从互联网上得到了这个代码。这是链接:
我在控制台中得到以下输出。
为什么我会收到此错误,我该如何解决?谢谢。
java - 使用 MessageFormat,分组小数位
我正在使用消息格式。目前的模式是:
因为0.123456
它给了我
这是预期的。但是我想对小数位进行分组,以便显示
我也想要尾随零,所以0.1234
显示为
我似乎无法为此找到正确的自定义模式
java - 是否有一个库,它在给定的两个字符串上提供占位符值?
给定两个字符串
我想获得价值图。
我在 Java Comparing two strings with placeholder values 上引用了这个答案,对我的使用做了一点调整。
但是,可能有很多极端情况。我对我的解决方案的担心是我可能会错过一个角落案例,然后是生产错误。
是否有围绕此编写的成熟库?我正在检查 MessageFormat/StrSubstitutor 但我无法获得任何符合我期望的方法。
php - 使用 PHP 获取 ICU MessageFormatter 参数
我想构建一个 ICU MessageFormat 编辑器,并且我想获取一个简单字符串的参数列表。
例子 :
结果$args
将是:
我知道如何在 Javascript 中做到这一点。但是在 PHP 中?MessageFormat
(https://www.php.net/manual/en/class.messageformatter.php)不提供获取字符串参数列表的可能性。
我认为使用 Regex 是可能的,但是编写所有 ICU MessageFormat 模式应该有点复杂......
有什么想法可以实现这一目标吗?
谢谢。
encoding - 根据前缀确定 HSM_KX 标头长度
我有一个示例 HSM_KW 消息。它有一个 3 个字符的前缀,用于确定消息头的长度。在此示例消息中,它是00w
. 那么如何将其转换为数字以了解标头的长度?
示例消息: