Java 从右到左阅读的语言的消息属性选择

Java Message Properties choice for languages reading from right to left

我的应用程序需要支持大约 30 种语言。我为他们每个人提供了一些相当简单的文本,但在该文本中我确实需要使用 {0, choice, 0# ...|0<...}

做出一个选择

目前我什至还没有测试它是否有效,因为我在说服我的文本编辑器允许我合并从左到右和从右到左的文本时遇到了很多麻烦,但是我真的很想知道这是否可能...

问题:是否可以使用 Java 消息属性嵌入选择,语言从右到左流动。

如果有人能想到任何额外的标签来解决这个问题,我将不胜感激。

简短的回答是有可能。这是一个棘手的问题,但 BIDI (bi-directionl) 支持是文本编辑器的问题,而不是您的问题。所以如果你的文本编辑器支持它(大多数编辑器支持)那么它是可能的。首先,您必须确保使用支持多种语言的编码(字符集)——推荐使用 UTF-8(但也可以使用 UTF-16,其他一些可能也可以),而不是 ISO-8859-X(其中 X是一个数字),仅支持 2 种语言。您也可以将字符串写入 属性 文件或代码中的任何位置作为 unicode 序列。

有一个开源 java 库 MgntUtils,它有一个实用程序,可以将任何语言的字符串(包括特殊字符和表情符号转换为 unicode 序列,反之亦然:

result = "Hello World";
result = StringUnicodeEncoderDecoder.encodeStringToUnicodeSequence(result);
System.out.println(result);
result = StringUnicodeEncoderDecoder.decodeUnicodeSequenceToString(result);
System.out.println(result);

这段代码的输出是:

\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064
Hello World

库可以在 Maven Central or at Github 找到它作为 maven 工件和来源以及 javadoc

这是 javaclassStringUnicodeEncoderDecoder

的文档