Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.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 I18n-数据在一个区域设置中,ui在另一个区域设置中,我使用哪个区域设置进行排序?_Java_Internationalization_Locale - Fatal编程技术网

Java I18n-数据在一个区域设置中,ui在另一个区域设置中,我使用哪个区域设置进行排序?

Java I18n-数据在一个区域设置中,ui在另一个区域设置中,我使用哪个区域设置进行排序?,java,internationalization,locale,Java,Internationalization,Locale,我正在开发java应用程序的I18n,我们决定只支持一个区域设置中的数据,而用户界面可能支持多个区域设置 我的问题是: 应该使用用户的区域设置还是数据的区域设置对数据进行排序和过滤? 最初,我们假设根据数据的区域设置进行排序是有意义的,但阅读了下面的文章后,根据用户的区域设置进行排序似乎更有意义 根据语言和文化对字母表使用的基本顺序,排序也可能有所不同。例如,瑞典语有一个“Ä”字符,它在字母表中的“Z”之后排序。德语也有这个字符,但在字母表中的“A”之后排序,它像“ae”一样 以前有人做过这个决

我正在开发java应用程序的I18n,我们决定只支持一个区域设置中的数据,而用户界面可能支持多个区域设置

我的问题是:

应该使用用户的区域设置还是数据的区域设置对数据进行排序和过滤?

最初,我们假设根据数据的区域设置进行排序是有意义的,但阅读了下面的文章后,根据用户的区域设置进行排序似乎更有意义

根据语言和文化对字母表使用的基本顺序,排序也可能有所不同。例如,瑞典语有一个“Ä”字符,它在字母表中的“Z”之后排序。德语也有这个字符,但在字母表中的“A”之后排序,它像“ae”一样

以前有人做过这个决定吗?你决定了什么?意见

有人能想到需要使用数据的区域设置进行排序或筛选的示例吗


提前感谢。

我想这将取决于用例,即什么对用户帮助最大


如果你是一个使用瑞典名字和瑞典人的美国人,那么查看使用瑞典规则排序的数据确实会有帮助,因为这是大多数与你互动的人所期望的。

如果你对数据进行排序只是为了在屏幕上为用户显示一个漂亮的列表。使用UI区域设置进行排序


如果要对数据进行存储或排序,请使用数据区域设置。

应使用用户期望的区域设置进行排序。在您的情况下,根据用户在UI中选择的区域设置进行排序。否则会让用户感到困惑。

显而易见的答案是“用户期望什么” 只是猜测用户的期望值并不是那么容易:-)

第一个答案是:“一个用瑞典名字工作的美国人”。我们能确定美国人熟悉瑞典的分类规则吗?我想不是。但我们确信他熟悉美国的分类规则。(如果我想搜索一个瑞典朋友的电话号码,这是否意味着我知道他们在那里是如何分类的?)

一些框架/操作系统可以提供帮助。“控制面板”(或等效工具)中通常有关于应使用何种语言环境进行格式化或排序的设置。 找出检索和使用该信息的API

通常,用户界面只局限于一种语言的“风格”,不足以决定如何格式化、排序等(想想英语用户界面。但我可以在澳大利亚、英国或印度,那里的一些惯例是不同的)


如果您提供一些关于您的环境的信息,我可能会为您指出适当的API。

Hm.我冒昧地编辑了问题中的“Æ”,因为瑞典语肯定没有这样的字母。然后我意识到错误是微软的,引用的文本来自MSDN。如果您希望报价与bug兼容,请随意编辑。我想,99%的情况下,您应该根据ui区域设置进行筛选/排序。这是(大多数)用户所期望的。同意。如果要向用户显示,则在用户的区域设置中。如果您在内部对列表进行排序以支持二进制搜索之类的,那么请按最快的方式进行排序。