en:
  errors:
    array?: "must be an array"

    empty?: "must be empty"

    exclusion?: "must not be one of: %{list}"

    eql?: "must be equal to %{eql_value}"

    filled?: "must be filled"

    format?: "is in invalid format"

    number?: "must be a number"

    gt?: "must be greater than %{num}"

    gteq?: "must be greater than or equal to %{num}"

    hash?: "must be a hash"

    inclusion?: "must be one of: %{list}"

    bool?: "must be boolean"

    true?: "must be true"

    false?: "must be false"

    int?: "must be an integer"

    float?: "must be a float"

    decimal?: "must be a decimal"

    date?: "must be a date"

    date_time?: "must be a date time"

    time?: "must be a time"

    key?: "is missing"

    attr?: "is missing"

    lt?: "must be less than %{num} (%{value} was given)"

    lteq?: "must be less than or equal to %{num}"

    max_size?: "size cannot be greater than %{num}"

    min_size?: "size cannot be less than %{num}"

    none?: "cannot be defined"

    str?: "must be a string"

    type?: "must be %{type}"

    size?:
      arg:
        default: "size must be %{num}"
        range: "size must be within %{left} - %{right}"

      value:
        string:
          arg:
            default: "length must be %{num}"
            range: "length must be within %{left} - %{right}"

en:
  errors:
    array?: "must be an array"

    empty?: "must be empty"

    exclusion?: "must not be one of: %{list}"

    eql?: "must be equal to %{eql_value}"

    filled?: "must be filled"

    format?: "is in invalid format"

    number?: "must be a number"

    odd?: "must be odd"

    even?: "must be even"

    gt?: "must be greater than %{num}"

    gteq?: "must be greater than or equal to %{num}"

    hash?: "must be a hash"

    inclusion?: "must be one of: %{list}"

    bool?: "must be boolean"

    true?: "must be true"

    false?: "must be false"

    int?: "must be an integer"

    float?: "must be a float"

    decimal?: "must be a decimal"

    date?: "must be a date"

    date_time?: "must be a date time"

    time?: "must be a time"

    key?: "is missing"

    attr?: "is missing"

    lt?: "must be less than %{num} (%{value} was given)"

    lteq?: "must be less than or equal to %{num}"

    max_size?: "size cannot be greater than %{num}"

    min_size?: "size cannot be less than %{num}"

    none?: "cannot be defined"

    str?: "must be a string"

    type?: "must be %{type}"

    size?:
      arg:
        default: "size must be %{num}"
        range: "size must be within %{left} - %{right}"

      value:
        string:
          arg:
            default: "length must be %{num}"
            range: "length must be within %{left} - %{right}"

Add odd? and even? message defaults
Add odd? and even? message defaults
