Case sensitivity and LanguageHandler

It has two copies of every string in it’s internal hash.

But you can eliminate this, by only temporarily creating a LanguageHandler object, extracting the locale string translations to some internal references, and then disposing of the LanguageHandler object.

For example, during startup, build up the arrays of your inputbox prompts, defaults, options, etc., and assign references to some persistent object (local constants, or module variables, etc.)

require 'langhandler.rb'
@lang = LanguageHandler::new("my_plugin.strings")
#
# Load up inputbox arrays etc.
# other message hashes etc.
# and menu commands names
#
# dispose of the LangHandler object
@lang.strings.clear  # call the Hash#clear method.
@lang = nil          # mark it for garbage collection

Do whatever you are comfortable with.

I think the Ruby’s compiled parser is faster at parsing a ruby script with just a hash definition, then LanguageHandler’s Ruby parser parsing “strings” files.

I find LanguageHandler’s implementation awkward and clunky.