gpt4 book ai didi

java - 本地化包含名称列表的字符串

转载 作者:搜寻专家 更新时间:2023-11-01 04:02:14 24 4
gpt4 key购买 nike

我有一个包含名称列表的字符串,如下所示:“约翰向金、凯利、李和鲍勃询问了新年计划”。列表中的名称数量可以非常多。我如何在 Java 中本地化它?我正在考虑 ResourceBundle 和 MessageFormat。我将如何在 MessageFormat 中为此编写模式?有没有更好的方法?

最佳答案

本地化(内联)列表不仅仅是翻译“和”这个词。 CLDR 处理格式化列表的问题,查看他们的 page on lists .恐怕 ICU 还没有对此的支持,所以你可能需要单独编码。

另一个问题是您不能指望能够在这样的句子中使用名称本身。例如,许多语言要求对象呈倾斜形式。在芬兰语中,您的例句可以读作“John kysyi Kimiltä, Kellyltä, Leeltä ja Bobilta uudenvuoden suunnitelmista”。因此,您可能需要找出并包含名称的不同倾斜形式。此外,如果使用的语言没有拉丁字母表,您可能需要名称的音译形式(例如,在阿拉伯语中,John 是ìون)。还有其他问题。在俄语中,与“询问”相对应的动词取决于主语的性别(例如,спросила 与 спросил)。

我知道这听起来很复杂,但本地化通常很复杂。如果你只针对一组有限的语言,事情会容易得多,所以定义你的目标很重要——也许接受一些可能导致语法错误表达的简化。但是对于覆盖范围广泛的语言的本地化,您可能需要将生成函数本地化。也就是说,对于每种语言,您将拥有一个函数,该函数接受名称列表作为参数并返回表示语句的字符串,可能使用包含有关专有名称的信息(音译形式、不同倾斜形式、性别)的资源文件,这些信息可能出现。

在某些情况下,您甚至可以考虑生成英文句子,然后将其发送给在线翻译人员。例如,谷歌翻译可以处理我提到的一些问题。它肯定会产生很多错误的翻译,但对于语法结构非常简单的句子,如果你能接受一些错误,它可能是一个实用的解决方案。如果您考虑尝试这样做,请确保您充分测试了自动翻译器如何处理您将使用的特定句子。通常,您可以通过重新组织句子来改善结果。将包含多个从句的句子分成单独的句子通常会有所帮助。但即使是您的简单句子也会导致自动翻译出现问题。

如果您可以重新组织句子结构,您可能会避免一些复杂情况,例如这样所有的名词都出现在主语位置,并且避免像“new year plans”这样“打包”的表达方式。例如,“John 问 Kim、Kelly、Lee 和 Bob 新年有什么计划”对于自动翻译和基于模式的本地化来说都会更简单。

关于java - 本地化包含名称列表的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8447942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com