AbV*_*Vog 8 java localization properties-file
在我当前的项目中,我们使用字符串的属性文件。然后使用 MessageFormat 对这些字符串进行“格式化”。不幸的是,MessagFormat 处理了单引号,这在使用大量撇号的语言(例如法语)中有点障碍。
例如,假设我们有这个条目
login.userUnknown=User {0} does not exist
Run Code Online (Sandbox Code Playgroud)
当这被翻译成法语时,我们得到:
login.userUnknown=L'utilisateur {0} n'existe pas
Run Code Online (Sandbox Code Playgroud)
这个,MessageFormat 不喜欢...
而我,不喜欢以下内容,即必须使用双引号:
login.userUnknown=L''utilisateur {0} n''existe pas
Run Code Online (Sandbox Code Playgroud)
我不喜欢它的原因是它到处都会导致拼写检查错误。
问题:我正在寻找以下说明的替代方法,即不需要双引号但仍使用位置占位符({0}、{1}...)的替代方法。还有什么我可以使用的吗?
MessageFormat.format(Messages.getString("login.userUnkown"), username);
Run Code Online (Sandbox Code Playgroud)
不,没有其他方法,因为它是我们根据 javadoc 应该如何做的。
单引号本身必须由整个字符串中的双引号 '' 表示
作为解决方法,您可以使用replace("'", "''")以编程方式执行此操作,或者对于此特定用例,您可以使用撇号字符代替,’这实际上比使用单引号更正确。
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |