加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails中数字编号的本地化

发布时间:2020-12-17 03:48:09 所属栏目:百科 来源:网络整理
导读:[对不起,这篇新帖子,但我的第一篇专注于阿拉伯语/波斯语数字,但似乎问题更大.] 我想知道是否有人做过宝石来处理ruby / rails中数字数字的本地化. I18n官方语言环境(https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale)似乎没有照顾到这一点.
[对不起,这篇新帖子,但我的第一篇专注于阿拉伯语/波斯语数字,但似乎问题更大.]

我想知道是否有人做过宝石来处理ruby / rails中数字数字的本地化. I18n官方语言环境(https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale)似乎没有照顾到这一点.

帮助者做的很复杂.

阿拉伯语很简单:

0 1 2 3 4 5 6 7 8 9

波斯语:

?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ??

但是所有语言都与1-1的英语转换不匹配,例如:

0: 〇 (零) líng
1: 一 (壹) yī
2: 二 (Simplified:贰;Traditional:貳) èr
3: 三 (Simplified:叁;Traditional:叄、參) sān
4: 四 (肆) sì
5: 五 (伍) wǔ
6: 六 (Simplified:陆;Traditional:陸) liù
7: 七 (柒) qī
8: 八 (捌) bā
9: 九 (玖) jiǔ
10: 十 (拾) shí
100: 百 (佰) bǎi
1000: 千 (仟) qiān
10,000: Simplified:万;Traditional萬 wàn
100,000,000: Simplified:亿;Traditional億 yì
1,000: 兆 zhào

我们有其他类似问题的语言.以前没有人似乎有过这样的表面,这似乎很奇怪.

您是否知道在所有区域设置中处理该数字的最佳方法?

解决方法

好的,我想出了:

def number to_convert,locale,text = nil,to_convert = to_convert.to_i.to_s
    case locale
    when 'ar'
      to_convert = to_convert.unpack('U*').map{ |e| e + 1584 }.pack('U*')
      text ? to_convert + ' ' + text : to_convert
    when 'fa'
      to_convert = to_convert.unpack('U*').map{ |e| e + 1728 }.pack('U*')
      text ? to_convert + ' ' + text : to_convert
    when 'hi'
      to_convert = to_convert.unpack('U*').map{ |e| e + 2358 }.pack('U*')
      text ? to_convert + ' ' + text : to_convert
    else
      text ? to_convert + ' ' + text : to_convert
    end
  end

其他语言不需要自定义本地化. IE浏览器.中国/日本人了解我们的号码,因为当地人在网上使用我们的号码,支持他们的本地号码会很奇怪.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读