module CrystalI18n

Overview

Namespace for logic relating to the crystal-i18n format.

This is a reimplementation of the crystal-i18n format from the following projects:

and any of the other similar implementations the community has made.

Note that this is still experimental, mainly in regards to plural-forms. Other than that, it should be fully usable and accurate.

EXPERIMENTAL

Defined in:

backend/crystal-i18n/crystal-i18n.cr

Class Method Summary

Class Method Detail

def self.define_rule(locale : String, value : Int32 | Int64 | Float64 -> String) #

Set pluralization rules for the given locale

This allows you to overwrite or even define new pluralization rules for whatever locale you desire.

CrystalI18n.define_rule("ar", ->(n : Int32 | Int64 | Float64) {
  case
  when n == 0             then "zero"
  when n == 1             then "one"
  when n == 2             then "two"
  when 3..10 === n % 100  then "few"
  when 11..99 === n % 100 then "many"
  else                         "other"
  end
})

[View source]
def self.plural_rules : Hash(String, Int32 | Int64 | Float64 -> String) #

Returns all defined CLDR plural rules


[View source]