对于我的应用程序(Ruby on Rails),我有注册页面的国家/地区选择框。这些国家被本地化为不同的语言。但我无法找到一种方法来对其进行排序,基于其本地化语言。目前我已经根据英文对其进行了整理。有没有办法根据语言环境对国家名称进行排序?即国家的顺序应根据其本地化的语言而改变(升序)。 谢谢..ruby中基于区域设置的排序功能
3
A
回答
-1
3
您可以自定义String
比较法,根据给定的字母,这样的事情(在Ruby 1.9的工程):
class String
# compares two strings based on a given alphabet
def cmp_loc(other, alphabet)
order = Hash[alphabet.each_char.with_index.to_a]
self.chars.zip(other.chars) do |c1, c2|
cc = (order[c1] || -1) <=> (order[c2] || -1)
return cc unless cc == 0
end
return self.size <=> other.size
end
end
class Array
# sorts an array of strings based on a given alphabet
def sort_loc(alphabet)
self.sort{|s1, s2| s1.cmp_loc(s2, alphabet)}
end
end
array_to_sort = ['abc', 'abd', 'bcd', 'bcde', 'bde']
ALPHABETS = {
:language_foo => 'abcdef',
:language_bar => 'fedcba'
}
p array_to_sort.sort_loc(ALPHABETS[:language_foo])
#=>["abc", "abd", "bcd", "bcde", "bde"]
p array_to_sort.sort_loc(ALPHABETS[:language_bar])
#=>["bde", "bcd", "bcde", "abd", "abc"]
然后你要支持每一种语言提供按字母顺序排列的订单。
1
某个时间以前,twitter发布了一个库,可以在Ruby中很好地处理多种语言,它实际上可以工作https://github.com/twitter/twitter-cldr-rb#sorting-collation。他们也提供了更高层次的排序方法以及低层次的方法,只需比较给定语言环境中的两个字符串,这也是非常好的。这让我摆脱了git://github.com/k3rni/ffi-locale.git,到目前为止我已经使用了一种可识别语言环境的字符串排序方式。
相关问题
- 1. 在Ruby/Rails中使用依赖区域的排序功能
- 2. 基于区域设置的验证
- 3. 的Setup.exe基于区域设置
- 4. 基于系统区域设置在C++
- 5. 设置范围为排序功能
- 6. 对基于图像区域的提取数据进行排序
- 7. iOS中的基于位置的功能
- 8. 在android中设置基于本地区域
- 9. 基于功能区的GUI - Winforms vs WPF
- 10. 如何设置安全区域的功能的时间限制
- 11. 具有不同区域设置的TextView的Android辅助功能
- 12. NSLocalizedString()基于用户的语言或其区域设置?
- 13. 如何更改基于区域的环境设置
- 14. 将div的高度设置为基于可见区域
- 15. 基于用户区域的iOS设置日期格式
- 16. 获取货币基于区域设置的ISO 4217代码
- 17. Iphone基于电话号码格式的区域设置
- 18. 基于区域设置的标签文本
- 19. 基于地理位置检测区域
- 20. 如何设置功能测试(Rails)的区域default_url_options
- 21. Django的注销功能删除区域设置
- 22. 考虑区域设置的元组排序列表(瑞典语排序)
- 23. std :: string的区域设置相关排序
- 24. 基于区域设置更改字体家族
- 25. 基于单个/情侣功能项目的排序列表
- 26. 基于2个属性的排序功能
- 27. 基于c头文件的c文件重新排序功能
- 28. 如何基于Django站点上的当前用户区域设置排序集合
- 29. Visual Studio中:有区域描述是基于文本的区域
- 30. iOS操作,基于MapKit中的区域
可能重复:http://stackoverflow.com/questions/2360281/alphabetize-arabic-and-japanese-text-that-is-in-unicode – 2010-05-09 23:58:49