Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java语言文件_Java_Yaml_Translation_Multilingual - Fatal编程技术网

java语言文件

java语言文件,java,yaml,translation,multilingual,Java,Yaml,Translation,Multilingual,我正在制作java应用程序,我想让她能说多种语言。应用程序内部有超过1000条消息需要翻译,我制作了一个简单的系统来从文件中加载消息。我在创建translates文件时遇到问题,因为我想为特定消息中使用的描述和parmas(占位符)之类的翻译器提供一些提示,以使这项工作更容易,但在我看来(现在我使用的是YAML文件): 这非常难看,尤其是yaml高亮显示,我想将其改为: # Params: # 1 = USER_NAME # 2 = SESSION_NAME # Message exec

我正在制作java应用程序,我想让她能说多种语言。应用程序内部有超过1000条消息需要翻译,我制作了一个简单的系统来从文件中加载消息。我在创建translates文件时遇到问题,因为我想为特定消息中使用的描述和parmas(占位符)之类的翻译器提供一些提示,以使这项工作更容易,但在我看来(现在我使用的是YAML文件):

这非常难看,尤其是yaml高亮显示,我想将其改为:

# Params:
#   1 = USER_NAME
#   2 = SESSION_NAME
# Message executed on player join to session
hello: Hello $1! (session: $2)

有没有办法在yaml中的指定键上添加注释的“堆栈”?或者存在其他类型的支持java的文件,这些文件允许我这样做,也可以从一个键中获取yaml中的字符串列表?

在java中实现这一点的标准方法是使用资源包,将文本放入
*.properties
文件中。请参阅Oracle的Java教程。使用标准格式,可能基于XML:xliff(或tmx)并由此生成YAML或类似格式。这使得翻译机构能够更好地自动化这些评论。额外的步骤不起作用,因为每种语言也必须进行版本控制。我看到了这一点。但是,对于我来说,.properties文件中的一个问题是,要将多个注释从java语言文件保存到属性文件+我想列出文本文件中的字符串,就像yaml中的字符串一样,每个字符串都从新行开始,并且没有用特殊字符或其他东西分隔。您的第二个代码清单是有效的YAML,似乎完全符合您的期望。您的问题是什么?您的问题没有说明您使用代码自动生成YAML。您可能不能使用YAML发射器,因为很少有人可以生成和格式化注释(因为它们是一个表示细节,因此通常作为API的一部分提供)。使用属性可能会更好。在Java中,实现这一点的标准方法是使用资源包,将文本放入
*.properties
文件中。请参阅Oracle的Java教程。使用标准格式,可能基于XML:xliff(或tmx)并由此生成YAML或类似格式。这使得翻译机构能够更好地自动化这些评论。额外的步骤不起作用,因为每种语言也必须进行版本控制。我看到了这一点。但是,对于我来说,.properties文件中的一个问题是,要将多个注释从java语言文件保存到属性文件+我想列出文本文件中的字符串,就像yaml中的字符串一样,每个字符串都从新行开始,并且没有用特殊字符或其他东西分隔。您的第二个代码清单是有效的YAML,似乎完全符合您的期望。您的问题是什么?您的问题没有说明您使用代码自动生成YAML。您可能不能使用YAML发射器,因为很少有人可以生成和格式化注释(因为它们是一个表示细节,因此通常作为API的一部分提供)。你的财产可能会更好。
# Params:
#   1 = USER_NAME
#   2 = SESSION_NAME
# Message executed on player join to session
hello: Hello $1! (session: $2)