Skip to content

nicer way to add new languages #30

@longemen3000

Description

@longemen3000

in master, the list of languages supported is hardcoded. what if we dispatch on Val{:sym}? something like:

function spelled_out(
    number::Number;
    lang::Symbol = Symbol(first(split(ENV["LANG"], '.'))),
    dict::Symbol = :modern
)
return spelled_out_impl(number,Val{lang},dict)
end
#catchall
function spelled_out_impl(number,lang,dict)
throw(error("We do not support $lang yet.  Please make an issue and someone might be able to help you, or feel free to contribute."))
end

and each impl. could just simply do:

function spelled_out_impl(number,lang::Type{Val{:ru}},dict)

the use of the type instead of building the val is because there is a cost on building the struct, that is elided completely when only using the type

as a nice consequence of using this, an external user could plug its own spelling function, or modify the output of existing ones

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions