Sha256: f85f6ff7e7ade429414aec48882ce2c33898d8dbd676d42b8fd41fe903c0ddaf

Contents?: true

Size: 1.14 KB

Versions: 11

Compression:

Stored size: 1.14 KB

Contents

require "japanese_calendar"
require "twitter_cldr"

module IsoDoc
  module Jis
    class I18n < IsoDoc::Iso::I18n
      def jis_load_file(fname)
        f = File.join(File.dirname(__FILE__), fname)
        File.exist?(f) ? YAML.load_file(f) : {}
      end

      def load_yaml1(lang, script)
        y = jis_load_file("i18n-#{yaml_lang(lang, script)}.yaml")
        if y.empty?
          jis_load_file("i18n-en.yaml").merge(super)
        else
          super.deep_merge(y)
        end
      end

      # use Japanese ordinals for era years
      def japanese_date(date)
        date.nil? and return date
        d = date.split(/-/).map(&:to_i)
        time = Date.new(*d)
        yr = japanese_year(time)
        case d.size
        when 1 then yr
        when 2 then yr + time.strftime("%-m月")
        when 3 then yr + time.strftime("%-m月%-d日")
        else date
        end
      end

      def japanese_year(time)
        era_yr = time.era_year.to_i.localize(:ja)
          .to_rbnf_s("SpelloutRules", "spellout-numbering-year")
        "#{time.strftime('%JN')}#{era_yr}年"
      rescue StandardError
        time.year.to_s
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
metanorma-jis-0.5.1 lib/isodoc/jis/i18n.rb
metanorma-jis-0.5.0 lib/isodoc/jis/i18n.rb
metanorma-jis-0.4.6 lib/isodoc/jis/i18n.rb
metanorma-jis-0.4.5 lib/isodoc/jis/i18n.rb
metanorma-jis-0.4.4 lib/isodoc/jis/i18n.rb
metanorma-jis-0.4.3 lib/isodoc/jis/i18n.rb
metanorma-jis-0.4.2 lib/isodoc/jis/i18n.rb
metanorma-jis-0.4.1 lib/isodoc/jis/i18n.rb
metanorma-jis-0.4.0 lib/isodoc/jis/i18n.rb
metanorma-jis-0.3.7 lib/isodoc/jis/i18n.rb
metanorma-jis-0.3.6 lib/isodoc/jis/i18n.rb