Skip to content

Change Ruby I18n localize to use parsi digits and jalaly dates in farsi locale

Notifications You must be signed in to change notification settings

hzamani/parsi-localize

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ParsiLocalize

Enhance I18n localize to use Parsi digits and Jalaly dates in Farsi (فارسی) locale.

For changing digits in string/integer/float with Unicode Parsi ones, we use parsi-digits:

require 'parsi-localize'
I18n.l ‪‪"15,000 تومان"
  => ‫‫"۱۵,۰۰۰ تومان"

Another useful feature of parsi-digits is that you can parse strings with Unicode digits to numerics:

"۱۲۳۴۵".to_i
  => 12345
"۱۹/۸".to_f
  => 19.8

To have a real localization of dates in I18n#localize (converting them to Jalali date), we uses parsi-date:

I18n.l Time.now, fromat: "%y/%m/%d %H:%M:%S"
  => "۹۰/۱۰/۱۳ ۰۵:۴۳:۳۲"

As you know, date and time formats can be stored in the locale file. For example with

fa:
  time:
    formats:
      default: "%y/%m/%d %H:%M:%S"
      short: "%d %B، %H:%M"
      long: "%A، %e %B %Y، ساعت %H:%M:%S"
  date:
    formats:
      default: "%y/%m/%d"
      short: "%d %B"
      long: "%A، %e %B %Y"

in your locale file, you will get:

date = Date.today
I18n.l date
  => ‫"۹۰/۱۱/۱۶"
I18n.l date, format: :short
  => ‫"۱۶ بهمن"
I18n.l date, format: :long
  => ‫"یک‌شنبه، ۱۶ بهمن ۱۳۹۰"

time = Time.now
I18n.l time
  => "۹۰/۱۱/۱۶ ۱۵:۴۳:۳۰"
I18n.l time, format: :short
  => ‫"۱۶ بهمن، ۱۵:۴۳"
I18n.l time, format: :long
  => ‫"یک‌شنبه، ۱۶ بهمن ۱۳۹۰، ساعت ۱۵:۴۳:۳۰"

For more info on date formating see parsi-date and Ruby's built-in date docs.

Copyright (c) 2012 Hassan Zamani, released under the MIT license.

About

Change Ruby I18n localize to use parsi digits and jalaly dates in farsi locale

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages