# frozen_string_literal: true

# generated by https://github.com/ruby-i18n/ruby-cldr

# stree-ignore
{
  af: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  ak: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            ((n.to_f % 1).zero? && (0..1).include?(n.to_f)) ? :one : :other
          end,
      },
    },
  },
  am: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
  ar: {
    i18n: {
      plural: {
        keys: %i[zero one two few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 0 ?
              :zero :
              n.to_f == 1 ?
                :one :
                n.to_f == 2 ?
                  :two :
                  (((n.to_f % 100) % 1).zero? && (3..10).include?(n.to_f % 100)) ?
                    :few :
                    (((n.to_f % 100) % 1).zero? && (11..99).include?(n.to_f % 100)) ? :many : :other
          end,
      },
    },
  },
  asa: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  as: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
  ast: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  az: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  bem: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  be: {
    i18n: {
      plural: {
        keys: %i[one few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_f % 10 == 1 && n.to_f % 100 != 11) ?
              :one :
              (
                ((n.to_f % 10) % 1).zero? && (2..4).include?(n.to_f % 10) &&
                  ((n.to_f % 100) % 1).zero? && !(12..14).include?(n.to_f % 100)
              ) ?
                :few :
                if n.to_f % 10 == 0 ||
                       (((n.to_f % 10) % 1).zero? && (5..9).include?(n.to_f % 10)) ||
                       (((n.to_f % 100) % 1).zero? && (11..14).include?(n.to_f % 100))
                  :many
                else
                  :other
                end
          end,
      },
    },
  },
  bez: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  bg: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  bm: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  bn: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
  bo: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  br: {
    i18n: {
      plural: {
        keys: %i[one two few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_f % 10 == 1 && ![11, 71, 91].include?(n.to_f % 100)) ?
              :one :
              (n.to_f % 10 == 2 && ![12, 72, 92].include?(n.to_f % 100)) ?
                :two :
                (
                  (
                    (n.to_f % 10) == 9 ||
                      (((n.to_f % 10) % 1).zero? && (3..4).include?(n.to_f % 10))
                  ) &&
                    ((n.to_f % 100) % 1).zero? &&
                          !(10..19).include?(n.to_f % 100) && !(70..79).include?(n.to_f % 100) &&
                              !(90..99).include?(n.to_f % 100)
                ) ?
                  :few :
                  (n.to_f != 0 && n.to_f % 1_000_000 == 0) ? :many : :other
          end,
      },
    },
  },
  brx: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  bs_BA: {
    i18n: {
      plural: {
        keys: %i[one few other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (
              (
                ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 1 &&
                  n.to_i % 100 != 11
              ) ||
                (
                  ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10 == 1 &&
                    ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100 != 11
                )
            ) ?
              :one :
              if (
                     ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                       (2..4).include?(n.to_i % 10) && !(12..14).include?(n.to_i % 100)
                   ) ||
                     (
                       (2..4).include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10) &&
                         !(12..14).include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100)
                     )
                :few
              else
                :other
              end
          end,
      },
    },
  },
  ca: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  ceb: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            if (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && [1, 2, 3].include?(n.to_i)) ||
                   (
                     ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                       ![4, 6, 9].include?(n.to_i % 10)
                   ) ||
                   (
                     ((v = n.to_s.split(".")[1]) ? v.length : 0) != 0 &&
                       ![4, 6, 9].include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10)
                   )
              :one
            else
              :other
            end
          end,
      },
    },
  },
  ce: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  cgg: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  chr: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  ckb: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  cs: {
    i18n: {
      plural: {
        keys: %i[one few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
              :one :
              ((2..4).include?(n.to_i) && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
                :few :
                ((v = n.to_s.split(".")[1]) ? v.length : 0) != 0 ? :many : :other
          end,
      },
    },
  },
  cy: {
    i18n: {
      plural: {
        keys: %i[zero one two few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 0 ?
              :zero :
              n.to_f == 1 ?
                :one :
                n.to_f == 2 ? :two : n.to_f == 3 ? :few : n.to_f == 6 ? :many : :other
          end,
      },
    },
  },
  da: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            if n.to_f == 1 ||
                   (
                     ((t = n.to_s.split(".")[1]) ? t.gsub(/0+$/, "").to_i : 0) != 0 &&
                       [0, 1].include?(n.to_i)
                   )
              :one
            else
              :other
            end
          end,
      },
    },
  },
  de: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  doi: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
  dsb: {
    i18n: {
      plural: {
        keys: %i[one two few other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (
              (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 100 == 1) ||
                ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100 == 1
            ) ?
              :one :
              (
                (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 100 == 2) ||
                  ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100 == 2
              ) ?
                :two :
                if (
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                         (3..4).include?(n.to_i % 100)
                     ) || (3..4).include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100)
                  :few
                else
                  :other
                end
          end,
      },
    },
  },
  dz: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  ee: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  el: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  en: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  en_GB: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  eo: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  es: {
    i18n: {
      plural: {
        keys: %i[one many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ?
              :one :
              if (
                     (e = 0) == 0 && n.to_i != 0 && n.to_i % 1_000_000 == 0 &&
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0
                   ) || !(0..5).include?(e = 0)
                :many
              else
                :other
              end
          end,
      },
    },
  },
  et: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  eu: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  fa_IR: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
  ff: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            [0, 1].include?(n.to_i) ? :one : :other
          end,
      },
    },
  },
  fil: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            if (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && [1, 2, 3].include?(n.to_i)) ||
                   (
                     ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                       ![4, 6, 9].include?(n.to_i % 10)
                   ) ||
                   (
                     ((v = n.to_s.split(".")[1]) ? v.length : 0) != 0 &&
                       ![4, 6, 9].include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10)
                   )
              :one
            else
              :other
            end
          end,
      },
    },
  },
  fi: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  fo: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  fr: {
    i18n: {
      plural: {
        keys: %i[one many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            [0, 1].include?(n.to_i) ?
              :one :
              if (
                     (e = 0) == 0 && n.to_i != 0 && n.to_i % 1_000_000 == 0 &&
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0
                   ) || !(0..5).include?(e = 0)
                :many
              else
                :other
              end
          end,
      },
    },
  },
  fur: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  fy: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  ga: {
    i18n: {
      plural: {
        keys: %i[one two few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ?
              :one :
              n.to_f == 2 ?
                :two :
                ((n.to_f % 1).zero? && (3..6).include?(n.to_f)) ?
                  :few :
                  ((n.to_f % 1).zero? && (7..10).include?(n.to_f)) ? :many : :other
          end,
      },
    },
  },
  gd: {
    i18n: {
      plural: {
        keys: %i[one two few other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            [1, 11].include?(n.to_f) ?
              :one :
              [2, 12].include?(n.to_f) ?
                :two :
                if (n.to_f % 1).zero? && ((3..10).include?(n.to_f) || (13..19).include?(n.to_f))
                  :few
                else
                  :other
                end
          end,
      },
    },
  },
  gl: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  gsw: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  gu: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
  gv: {
    i18n: {
      plural: {
        keys: %i[one two few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 1) ?
              :one :
              (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 2) ?
                :two :
                (
                  ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                    [0, 20, 40, 60, 80].include?(n.to_i % 100)
                ) ?
                  :few :
                  ((v = n.to_s.split(".")[1]) ? v.length : 0) != 0 ? :many : :other
          end,
      },
    },
  },
  ha: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  haw: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  he: {
    i18n: {
      plural: {
        keys: %i[one two many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
              :one :
              (n.to_i == 2 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
                :two :
                if ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                       (n.to_f % 1).zero? && !(0..10).include?(n.to_f) && n.to_f % 10 == 0
                  :many
                else
                  :other
                end
          end,
      },
    },
  },
  hi: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
  hr: {
    i18n: {
      plural: {
        keys: %i[one few other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (
              (
                ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 1 &&
                  n.to_i % 100 != 11
              ) ||
                (
                  ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10 == 1 &&
                    ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100 != 11
                )
            ) ?
              :one :
              if (
                     ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                       (2..4).include?(n.to_i % 10) && !(12..14).include?(n.to_i % 100)
                   ) ||
                     (
                       (2..4).include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10) &&
                         !(12..14).include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100)
                     )
                :few
              else
                :other
              end
          end,
      },
    },
  },
  hsb: {
    i18n: {
      plural: {
        keys: %i[one two few other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (
              (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 100 == 1) ||
                ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100 == 1
            ) ?
              :one :
              (
                (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 100 == 2) ||
                  ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100 == 2
              ) ?
                :two :
                if (
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                         (3..4).include?(n.to_i % 100)
                     ) || (3..4).include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100)
                  :few
                else
                  :other
                end
          end,
      },
    },
  },
  hu: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  hy: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            [0, 1].include?(n.to_i) ? :one : :other
          end,
      },
    },
  },
  ia: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  id: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  ig: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  ii: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  is: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            if (
                   ((t = n.to_s.split(".")[1]) ? t.gsub(/0+$/, "").to_i : 0) == 0 &&
                     n.to_i % 10 == 1 && n.to_i % 100 != 11
                 ) || ((t = n.to_s.split(".")[1]) ? t.gsub(/0+$/, "").to_i : 0) != 0
              :one
            else
              :other
            end
          end,
      },
    },
  },
  it: {
    i18n: {
      plural: {
        keys: %i[one many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
              :one :
              if (
                     (e = 0) == 0 && n.to_i != 0 && n.to_i % 1_000_000 == 0 &&
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0
                   ) || !(0..5).include?(e = 0)
                :many
              else
                :other
              end
          end,
      },
    },
  },
  ja: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  jgo: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  jmc: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  jv: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  kab: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            [0, 1].include?(n.to_i) ? :one : :other
          end,
      },
    },
  },
  ka: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  kde: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  kea: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  kkj: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  kk: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  kl: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  km: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  kn: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
  ko: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  ksb: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  ksh: {
    i18n: {
      plural: {
        keys: %i[zero one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 0 ? :zero : n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  ks: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  ku: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  kw: {
    i18n: {
      plural: {
        keys: %i[zero one two few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 0 ?
              :zero :
              n.to_f == 1 ?
                :one :
                (
                  [2, 22, 42, 62, 82].include?(n.to_f % 100) ||
                    (
                      n.to_f % 1000 == 0 &&
                        (
                          [40_000, 60_000, 80_000].include?(n.to_f % 100_000) ||
                            (
                              ((n.to_f % 100_000) % 1).zero? &&
                                (1000..20_000).include?(n.to_f % 100_000)
                            )
                        )
                    ) || (n.to_f != 0 && n.to_f % 1_000_000 == 100_000)
                ) ?
                  :two :
                  [3, 23, 43, 63, 83].include?(n.to_f % 100) ?
                    :few :
                    (n.to_f != 1 && [1, 21, 41, 61, 81].include?(n.to_f % 100)) ? :many : :other
          end,
      },
    },
  },
  ky: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  lag: {
    i18n: {
      plural: {
        keys: %i[zero one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 0 ? :zero : ([0, 1].include?(n.to_i) && n.to_f != 0) ? :one : :other
          end,
      },
    },
  },
  lb: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  lg: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  lkt: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  ln: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            ((n.to_f % 1).zero? && (0..1).include?(n.to_f)) ? :one : :other
          end,
      },
    },
  },
  lo: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  lt: {
    i18n: {
      plural: {
        keys: %i[one few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_f % 10 == 1 && ((n.to_f % 100) % 1).zero? && !(11..19).include?(n.to_f % 100)) ?
              :one :
              (
                ((n.to_f % 10) % 1).zero? && (2..9).include?(n.to_f % 10) &&
                  ((n.to_f % 100) % 1).zero? && !(11..19).include?(n.to_f % 100)
              ) ?
                :few :
                ((f = n.to_s.split(".")[1]) ? f.to_i : 0) != 0 ? :many : :other
          end,
      },
    },
  },
  lv: {
    i18n: {
      plural: {
        keys: %i[zero one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (
              n.to_f % 10 == 0 || (((n.to_f % 100) % 1).zero? && (11..19).include?(n.to_f % 100)) ||
                (
                  ((v = n.to_s.split(".")[1]) ? v.length : 0) == 2 &&
                    (11..19).include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100)
                )
            ) ?
              :zero :
              if (n.to_f % 10 == 1 && n.to_f % 100 != 11) ||
                     (
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 2 &&
                         ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10 == 1 &&
                         ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100 != 11
                     ) ||
                     (
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) != 2 &&
                         ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10 == 1
                     )
                :one
              else
                :other
              end
          end,
      },
    },
  },
  mas: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  mgo: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  mg: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            ((n.to_f % 1).zero? && (0..1).include?(n.to_f)) ? :one : :other
          end,
      },
    },
  },
  mk: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            if (
                   ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 1 &&
                     n.to_i % 100 != 11
                 ) ||
                   (
                     ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10 == 1 &&
                       ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100 != 11
                   )
              :one
            else
              :other
            end
          end,
      },
    },
  },
  ml: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  mn: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  mr: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  ms: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  mt: {
    i18n: {
      plural: {
        keys: %i[one few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ?
              :one :
              (n.to_f == 0 || (((n.to_f % 100) % 1).zero? && (2..10).include?(n.to_f % 100))) ?
                :few :
                (((n.to_f % 100) % 1).zero? && (11..19).include?(n.to_f % 100)) ? :many : :other
          end,
      },
    },
  },
  my: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  naq: {
    i18n: {
      plural: {
        keys: %i[one two other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : n.to_f == 2 ? :two : :other
          end,
      },
    },
  },
  nb_NO: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  nd: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  ne: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  nl: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  nnh: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  nn: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  no: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  nyn: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  om: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  or: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  os: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  pa: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            ((n.to_f % 1).zero? && (0..1).include?(n.to_f)) ? :one : :other
          end,
      },
    },
  },
  pcm: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
  pl_PL: {
    i18n: {
      plural: {
        keys: %i[one few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
              :one :
              (
                ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && (2..4).include?(n.to_i % 10) &&
                  !(12..14).include?(n.to_i % 100)
              ) ?
                :few :
                if (
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i != 1 &&
                         (0..1).include?(n.to_i % 10)
                     ) ||
                       (
                         ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                           (5..9).include?(n.to_i % 10)
                       ) ||
                       (
                         ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                           (12..14).include?(n.to_i % 100)
                       )
                  :many
                else
                  :other
                end
          end,
      },
    },
  },
  ps: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  pt_BR: {
    i18n: {
      plural: {
        keys: %i[one many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (0..1).include?(n.to_i) ?
              :one :
              if (
                     (e = 0) == 0 && n.to_i != 0 && n.to_i % 1_000_000 == 0 &&
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0
                   ) || !(0..5).include?(e = 0)
                :many
              else
                :other
              end
          end,
      },
    },
  },
  pt: {
    i18n: {
      plural: {
        keys: %i[one many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
              :one :
              if (
                     (e = 0) == 0 && n.to_i != 0 && n.to_i % 1_000_000 == 0 &&
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0
                   ) || !(0..5).include?(e = 0)
                :many
              else
                :other
              end
          end,
      },
    },
  },
  rm: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  rof: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  ro: {
    i18n: {
      plural: {
        keys: %i[one few other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
              :one :
              if ((v = n.to_s.split(".")[1]) ? v.length : 0) != 0 || n.to_f == 0 ||
                     (((n.to_f % 100) % 1).zero? && (2..19).include?(n.to_f % 100))
                :few
              else
                :other
              end
          end,
      },
    },
  },
  ru: {
    i18n: {
      plural: {
        keys: %i[one few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (
              ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 1 &&
                n.to_i % 100 != 11
            ) ?
              :one :
              (
                ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && (2..4).include?(n.to_i % 10) &&
                  !(12..14).include?(n.to_i % 100)
              ) ?
                :few :
                if (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 0) ||
                       (
                         ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                           (5..9).include?(n.to_i % 10)
                       ) ||
                       (
                         ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                           (11..14).include?(n.to_i % 100)
                       )
                  :many
                else
                  :other
                end
          end,
      },
    },
  },
  rwk: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  sah: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  saq: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  sat: {
    i18n: {
      plural: {
        keys: %i[one two other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : n.to_f == 2 ? :two : :other
          end,
      },
    },
  },
  sc: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  sd: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  seh: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  se: {
    i18n: {
      plural: {
        keys: %i[one two other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : n.to_f == 2 ? :two : :other
          end,
      },
    },
  },
  ses: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  sg: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  shi: {
    i18n: {
      plural: {
        keys: %i[one few other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ?
              :one :
              ((n.to_f % 1).zero? && (2..10).include?(n.to_f)) ? :few : :other
          end,
      },
    },
  },
  si: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            if [0, 1].include?(n.to_f) ||
                   (n.to_i == 0 && ((f = n.to_s.split(".")[1]) ? f.to_i : 0) == 1)
              :one
            else
              :other
            end
          end,
      },
    },
  },
  sk: {
    i18n: {
      plural: {
        keys: %i[one few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
              :one :
              ((2..4).include?(n.to_i) && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ?
                :few :
                ((v = n.to_s.split(".")[1]) ? v.length : 0) != 0 ? :many : :other
          end,
      },
    },
  },
  sl: {
    i18n: {
      plural: {
        keys: %i[one two few other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 100 == 1) ?
              :one :
              (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 100 == 2) ?
                :two :
                if (
                       ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                         (3..4).include?(n.to_i % 100)
                     ) || ((v = n.to_s.split(".")[1]) ? v.length : 0) != 0
                  :few
                else
                  :other
                end
          end,
      },
    },
  },
  smn: {
    i18n: {
      plural: {
        keys: %i[one two other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : n.to_f == 2 ? :two : :other
          end,
      },
    },
  },
  sn: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  so: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  sq: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  sr: {
    i18n: {
      plural: {
        keys: %i[one few other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (
              (
                ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 1 &&
                  n.to_i % 100 != 11
              ) ||
                (
                  ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10 == 1 &&
                    ((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100 != 11
                )
            ) ?
              :one :
              if (
                     ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                       (2..4).include?(n.to_i % 10) && !(12..14).include?(n.to_i % 100)
                   ) ||
                     (
                       (2..4).include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 10) &&
                         !(12..14).include?(((f = n.to_s.split(".")[1]) ? f.to_i : 0) % 100)
                     )
                :few
              else
                :other
              end
          end,
      },
    },
  },
  su: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  sv: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  sw: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  ta: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  teo: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  te: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  th: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  ti: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            ((n.to_f % 1).zero? && (0..1).include?(n.to_f)) ? :one : :other
          end,
      },
    },
  },
  tk: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  to: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  tr_TR: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  tzm: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            if ((n.to_f % 1).zero? && (0..1).include?(n.to_f)) ||
                   ((n.to_f % 1).zero? && (11..99).include?(n.to_f))
              :one
            else
              :other
            end
          end,
      },
    },
  },
  ug: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  uk: {
    i18n: {
      plural: {
        keys: %i[one few many other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (
              ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 1 &&
                n.to_i % 100 != 11
            ) ?
              :one :
              (
                ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && (2..4).include?(n.to_i % 10) &&
                  !(12..14).include?(n.to_i % 100)
              ) ?
                :few :
                if (((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 && n.to_i % 10 == 0) ||
                       (
                         ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                           (5..9).include?(n.to_i % 10)
                       ) ||
                       (
                         ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0 &&
                           (11..14).include?(n.to_i % 100)
                       )
                  :many
                else
                  :other
                end
          end,
      },
    },
  },
  ur: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  uz: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  vi: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  vun: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  wae: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  wo: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  xh: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  xog: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            n.to_f == 1 ? :one : :other
          end,
      },
    },
  },
  yi: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 1 && ((v = n.to_s.split(".")[1]) ? v.length : 0) == 0) ? :one : :other
          end,
      },
    },
  },
  yo: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  yue: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  zh_CN: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  zh_TW: {
    i18n: {
      plural: {
        keys: [:other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            :other
          end,
      },
    },
  },
  zu: {
    i18n: {
      plural: {
        keys: %i[one other],
        rule:
          lambda do |n|
            n = n.respond_to?(:abs) ? n.abs : ((m = n.to_s)[0] == "-" ? m[1, m.length] : m)
            (n.to_i == 0 || n.to_f == 1) ? :one : :other
          end,
      },
    },
  },
}
