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

2024-02-19

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


本地化(内联)列表不仅仅是翻译单词“and”。 CLDR 处理格式化列表的问题,查看他们的列表页面 http://cldr.unicode.org/translation/lists。恐怕 ICU 还不支持这一点,所以你可能需要单独编码。

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

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

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

如果您可以重新表述句子结构,您可能会避免一些复杂的情况,例如:这样所有的名词都出现在主语位置,并且避免使用诸如“新年计划”之类的“拥挤”表达。例如,“约翰询问 Kim、Kelly、Lee 和 Bob 在新的一年有什么计划”对于自动翻译和基于模式的本地化来说都会更简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

本地化包含名称列表的字符串 的相关文章

  • 在Maven中生成Version.java文件

    我有一个使用 Ant 脚本构建的 Java 项目 我正在尝试将项目转换为 Maven 其中一项任务生成一个名为 Version java 的 Java 源文件 其中包含编译时间戳的静态字符串表示形式 如下所示 package com foo
  • Jackson JSON + Java 泛型

    我正在尝试将以下 JSON 反序列化 映射到List
  • Kafka - 如何同时使用过滤器和过滤器?

    我有一个 Kafka 流 它从一个主题获取数据 并且需要将该信息过滤到两个不同的主题 KStream
  • 查看Java Agent修改的Java类的源代码

    我需要了解 Java 代理如何修改我的初始类 以便我能够理解代码的作用 build gradle configurations jar archiveName agent2 jar jar manifest attributes Prema
  • 有人用过 ServiceLoader 和 Guice 一起使用吗?

    我一直想通过我们的应用程序 构建系统进行更大规模的尝试 但更高的优先级不断将其推到次要地位 这似乎是加载 Guice 模块的好方法 并且避免了关于 硬编码配置 的常见抱怨 单个配置属性很少会自行更改 但您几乎总是会有一组配置文件 通常用于不
  • 无法使用 datastax java 驱动程序通过 UDT 密钥从 cassandra 检索

    我正在尝试使用用户定义的类型作为分区键将对象存储在 cassandra 中 我正在使用 datastax java 驱动程序进行对象映射 虽然我能够插入到数据库中 但无法检索该对象 如果我更改分区键以使用非 udt 例如文本 我就能够保存和
  • 为什么用scala写的代码比用java写的慢6倍?

    我不确定我在编写 scala 代码时是否犯了一些错误 问题是 The four adjacent digits in the 1000 digit number that have the greatest product are 9 9
  • 使用 OkHttp 下载损坏的文件

    我编写的下载文件的方法总是会产生损坏的文件 public static String okDownloadToFileSync final String link final String fileName final boolean te
  • Java AES 256 加密

    我有下面的 java 代码来加密使用 64 个字符密钥的字符串 我的问题是这会是 AES 256 加密吗 String keyString C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE
  • JAXB - 忽略元素

    有什么方法可以忽略 Jaxb 解析中的元素吗 我有一个很大的 XML 文件 如果我可以忽略其中一个大而复杂的元素 那么它的解析速度可能会快很多 如果它根本无法验证元素内容并解析文档的其余部分 即使该元素不正确 那就更好了 例如 这应该只生成
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 为什么在将 String 与 null 进行比较时会出现 NullPointerException?

    我的代码在以下行中出现空指针异常 if stringVariable equals null 在此语句之前 我声明了 stringVariable 并将其设置为数据库字段 在这个声明中 我试图检测该字段是否有null值 但不幸的是它坏了 有
  • Java 8 Stream,获取头部和尾部

    Java 8 引入了Stream http download java net jdk8 docs api java util stream Stream html类似于 Scala 的类Stream http www scala lang
  • 我们如何使用 thymeleaf 绑定对象列表的列表

    我有一个表单 用户可以在其中添加任意数量的内容表对象这也可以包含他想要的列对象 就像在 SQL 中构建表一样 我尝试了下面的代码 但没有任何效果 并且当我尝试绑定两个列表时 表单不再出现 控制器 ModelAttribute page pu
  • Azure Java SDK:ServiceException:ForbiddenError:

    尝试了基本位置检索器代码 如下所示 String uri https management core windows net String subscriptionId XXXXXXXX 5fad XXXXXX 9dfa XXXXXX St
  • 即使禁用安全性,OAuth 令牌 API 也无法在 Elastic Search 中工作

    我是 Elastic search 新手 使用 Elastic search 版本 7 7 1 我想通过以下方式生成 OAuth 令牌弹性搜索文档 https www elastic co guide en elasticsearch re
  • 我所有的 java 应用程序现在都会抛出 java.awt.headlessException

    所以几天前我有几个工作Java应用程序使用Swing图书馆 JFrame尤其 他们都工作得很好 现在他们都抛出了这个异常 java awt headlessexception 我不知道是什么改变了也许我的Java版本不小心更新了 谢谢你尽你
  • 用于请求带有临时缓存的远程 Observable 的 RxJava 模式

    用例是这样的 我想暂时缓存最新发出的昂贵的Observable响应 但在它过期后 返回到昂贵的源Observable并再次缓存它 等等 一个非常基本的网络缓存场景 但我真的很难让它工作 private Observable
  • Selenium 单击在 Internet Explorer 11 上不起作用

    我尝试在 Internet Explorer 上单击 selenium 但它不起作用 我努力了element click moveToElement element click build perform javascript没事了 事实上
  • Spring 作为 JNDI 提供者?

    我想使用 Spring 作为 JNDI 提供程序 这意味着我想在 Spring 上下文中配置一个 bean 可以通过 JNDI 访问该 bean 这看起来像这样

随机推荐