关于 Java 中的区域设置 class
About Locale class in Java
我在 Android 上使用 TTS 方法,它以 Locale
实例作为参数。所以我用谷歌搜索了 class Locale
并找到了一些示例代码。但是我不明白下面的用法有什么不同,因为我用 TTS 方法测试了它们,它似乎对我来说都是一样的。
Locale("ja")
Locale("ja_JP")
Locale("ja", "JP", "")
Locale.JAPAN
Locale.JAPANESE
有什么不同吗?
documentation for the Locale class describes this in (almost excruciating) detail. The valid language, country, and variant codes are described in ISO 639.
以下是您给出的五个例子之间的区别:
ja
简单描述没有国家的日语。
ja_JP
指定日语和日本国家
- 三参数构造函数将语言、国家和变体拆分为单独的参数。
Locale("ja", "JP", "")
等同于 Locale("ja_JP")
,因为没有提供变体。
Locale.JAPAN
是 ja_JP
(日本国家/地区)的常量快捷方式。
Locale.JAPANESE
是 ja
(日语)的固定快捷方式。
这一切是什么意思?好吧,这取决于它的使用位置。区域设置与许多不同的 API 一起使用,包括日期时间 API、文本到语音 API 等等。
在文本到语音的上下文中,可以通过多种方式使用语言环境,例如:
- 选择合适的语音
- 对某些单词应用适当的变形。不同的语言环境可能会以不同的方式说出同一种语言中的同一个词。
- 将某些非单词翻译成语音。例如,不同的语言环境可能会以不同的方式表达数字或分数。
一般来说,您希望在选择语言环境时尽可能具体和准确。
我在 Android 上使用 TTS 方法,它以 Locale
实例作为参数。所以我用谷歌搜索了 class Locale
并找到了一些示例代码。但是我不明白下面的用法有什么不同,因为我用 TTS 方法测试了它们,它似乎对我来说都是一样的。
Locale("ja")
Locale("ja_JP")
Locale("ja", "JP", "")
Locale.JAPAN
Locale.JAPANESE
有什么不同吗?
documentation for the Locale class describes this in (almost excruciating) detail. The valid language, country, and variant codes are described in ISO 639.
以下是您给出的五个例子之间的区别:
ja
简单描述没有国家的日语。ja_JP
指定日语和日本国家- 三参数构造函数将语言、国家和变体拆分为单独的参数。
Locale("ja", "JP", "")
等同于Locale("ja_JP")
,因为没有提供变体。 Locale.JAPAN
是ja_JP
(日本国家/地区)的常量快捷方式。Locale.JAPANESE
是ja
(日语)的固定快捷方式。
这一切是什么意思?好吧,这取决于它的使用位置。区域设置与许多不同的 API 一起使用,包括日期时间 API、文本到语音 API 等等。
在文本到语音的上下文中,可以通过多种方式使用语言环境,例如:
- 选择合适的语音
- 对某些单词应用适当的变形。不同的语言环境可能会以不同的方式说出同一种语言中的同一个词。
- 将某些非单词翻译成语音。例如,不同的语言环境可能会以不同的方式表达数字或分数。
一般来说,您希望在选择语言环境时尽可能具体和准确。