Sha256: 321b0e2ce78ac161b96e8c86eb4db49dbce858232f22745b03e67197821ba3a3

Contents?: true

Size: 1.53 KB

Versions: 16

Compression:

Stored size: 1.53 KB

Contents

module FastGettext
  # this module should be included
  # Responsibility:
  #  - direct translation queries to the current repository
  #  - handle untranslated values
  #  - understand / enforce namespaces
  #  - decide which plural form is used
  module Translation
    extend self

    #make it usable in class definition, e.g.
    # class Y
    #   include FastGettext::Translation
    #   @@x = _('y')
    # end
    def self.included(klas)  #:nodoc:
      klas.extend self
    end

    def _(key)
      FastGettext.cached_find(key) or key
    end

    #translate pluralized
    # some languages have up to 4 plural forms...
    # n_(singular, plural, plural form 2, ..., count)
    # n_('apple','apples',3)
    def n_(*keys)
      count = keys.pop
      translations = FastGettext.cached_plural_find *keys
      selected = FastGettext.pluralisation_rule.call(count)
      selected = selected ? 1 : 0 unless selected.is_a? Numeric #convert booleans to numbers
      translations[selected] || keys[selected] || keys.last
    end

    #translate, but discard namespace if nothing was found
    # Car|Tire -> Tire if no translation could be found
    def s_(key,seperator=nil)
      translation = FastGettext.cached_find(key) and return translation
      key.split(seperator||NAMESPACE_SEPERATOR).last
    end

    #tell gettext: this string need translation (will be found during parsing)
    def N_(translate)
      translate
    end

    #tell gettext: this string need translation (will be found during parsing)
    def Nn_(*keys)
      keys
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
grosser-fast_gettext-0.4.10 lib/fast_gettext/translation.rb
grosser-fast_gettext-0.4.11 lib/fast_gettext/translation.rb
grosser-fast_gettext-0.4.12 lib/fast_gettext/translation.rb
grosser-fast_gettext-0.4.13 lib/fast_gettext/translation.rb
grosser-fast_gettext-0.4.14 lib/fast_gettext/translation.rb
grosser-fast_gettext-0.4.15 lib/fast_gettext/translation.rb
grosser-fast_gettext-0.4.16 lib/fast_gettext/translation.rb
grosser-fast_gettext-0.4.9 lib/fast_gettext/translation.rb
fast_gettext-0.5.6 lib/fast_gettext/translation.rb
fast_gettext-0.5.5 lib/fast_gettext/translation.rb
fast_gettext-0.5.4 lib/fast_gettext/translation.rb
fast_gettext-0.5.3 lib/fast_gettext/translation.rb
fast_gettext-0.5.2 lib/fast_gettext/translation.rb
fast_gettext-0.5.1 lib/fast_gettext/translation.rb
fast_gettext-0.4.17 lib/fast_gettext/translation.rb
fast_gettext-0.4.16 lib/fast_gettext/translation.rb