其他分享
首页 > 其他分享> > 如何在MessageFormat中使用单引号

如何在MessageFormat中使用单引号

作者:互联网

在我当前的项目中,我们使用属性文件作为字符串.然后使用MessageFormat“格式化”这些字符串.不幸的是,MessagFormat处理单引号会成为语言中的一个障碍,例如法语,它使用了大量的撇号.

例如,假设我们有这个条目

login.userUnknown=User {0} does not exist

当这被翻译成法语时,我们得到:

login.userUnknown=L'utilisateur {0} n'existe pas

这个,MessageFormat不喜欢……

我不喜欢以下内容,即必须使用双引号:

login.userUnknown=L''utilisateur {0} n''existe pas

我不喜欢它的原因是它在任何地方都会导致拼写错误.

问题:我正在寻找下面说明的替代方案,这是一种不需要加倍引号但仍使用位置占位符({0},{1} …)的替代方法.还有什么我可以使用的吗?

MessageFormat.format(Messages.getString("login.userUnkown"), username);

解决方法:

不,没有别的办法,因为根据javadoc,我们应该怎么做.

A single quote itself must be represented by doubled single quotes ” throughout a String

作为解决方法,您可以做的是使用replace(“’”,“””)以编程方式执行此操作,或者对于此特定用例,您可以使用撇号字符,即“它实际上比使用单个字符更正确”引用.

标签:java,localization,properties-file
来源: https://codeday.me/bug/20190706/1394969.html