上市语言是否有“正确”的订单?

时间:2010-09-03 15:40:37

标签: localization

我们的应用程序正在被翻译成多种语言,我们需要一个列出可能语言的组合框。我们希望使用该语言语言的名称(例如法语Français)。

是否有任何“正确”的订单来列出这些语言?我们是根据他们的英文名字对它们进行按字母顺序排列吗?

更新 这是我目前的列表(我想探索Brian Campbell提到的Unicode整理算法):

"العربية",
"中文",
"Nederlands",
"English",
"Français",
"Deutsch",
"日本語",
"한국어",
"Polski",
"Русский язык",
"Español",
"ภาษาไทย"

更新2 :以下是ICU Demonstration tool生成的列表,为en-US区域设置排序。

Deutsch
English 
Español
Français
Nederlands
Polski
Русский язык
العربية
ภาษาไทย
한국어
中文 
日本語

4 个答案:

答案 0 :(得分:4)

我想说这取决于你的名单的长度。

如果你有5种语言(或者任何数字很容易放入下拉列表而不滚动),那么我会说你把最常用的语言放在顶部,然后按字母顺序排列它们......但只是按字母顺序排列它们就不会成功用户友好的恕我直言。

如果你有足够的你需要滚动我会把你的前3或5(或一些适当数量)最常见的语言放在顶部,并在列表中加粗,然后按字母顺序排列其余的选项。 / p>

对于很长的列表,我可能会列出两次常用语言。 也就是说,“英语”会出现在列表的顶部,位于按字母顺序排列的列表中您所期望的位置。

编辑:我认为你仍然希望按照它们列出的方式对它们进行字母顺序排列......那就是“Espanol”会出现在E中,而不是出现在S中,就好像它是“西班牙语”

用户将能够了解语言根据其翻译名称列出的事实。

EDIT2:现在您已经编辑过以显示您感兴趣的语言,我可以看到排序例程将更具挑战性!

答案 1 :(得分:4)

这是一个棘手的问题,没有一个简单的答案。首先,默认情况下,您应该使用操作系统为您提供的用户首选语言(如果这是您可用的语言之一)(例如,在Windows中,您将使用GetUserPreferredUILanguages,并找到该列表中的第一个您有翻译的。)

如果用户仍然需要选择一种语言(您希望他们能够覆盖他们的默认语言,或者如果您不支持他们的首选语言则选择其他语言),那么您需要担心如何排序语言。如果您有5种或10种语言,那么订单可能并不重要;你可以按字母顺序对它们进行排序。对于更长的列表,我会将您最常用的语言放在顶部,也可能是用户首选的语言,然后按照字母顺序对其余语言进行排序。

当然,这会带来如何在不同脚本中编写语言时按字母顺序排序。例如,Ελληνικά(Ellinika,Greek)与日本语(Nihongo,Japanese)相比如何?有一些可能的解决方案。您可以将每个脚本排序在一起,例如,首先是基于罗马的脚本,然后是西里尔语,希腊语,汉语,韩语等。或者你可以用他们的英文名称或者罗马音译他们的原生名字来排序非罗马文字。可能首选第一种或第三种溶液;人们可能不知道他们的语言的英文名称,但许多语言都有人们可能知道的英语音译。第一个解决方案(每个脚本单独排序)是Mac OS X语言选择的工作方式;第二个(按他们的罗马音译排序)似乎是维基百科对语言进行排序的。

我不相信这个特定用法有一个标准,尽管Unicode Collation Algorithm可能是以相对语言中立的方式在混合脚本中对文本进行排序的最常用标准。

答案 2 :(得分:3)

ISO包含语言代码(此处为Library of Congress description),按代码顺序,英文名称和法语名称提供。

这很棘手。我认为作为用户,我希望根据项目在列表中的表示方式排序任何列表。因此,我会尽可能使用基于您实际显示的名称的字母顺序。

现在,你不能总是这样做,因为许多人会使用其他字母表。在这些情况下,可能会有一种罗马字母表的音译方式(例如,普通话的拼音系统),基于此可以将字母顺序化。然而,罗马化不是一个简单的主题;例如,至少有十几种方法可以将阿拉伯语进行罗马化。

答案 3 :(得分:0)

您可以根据ISO 639语言代码对它们进行字母顺序排列。