You're referencing m_defaultRegion.m_strLangLocaleName here but it's promptly overridden about 20 lines down from here.  By storing English and non-English in the same class you're asking for problems down the line.

I suspect what you want is the reading of the English setup to be done separately to this class.  i.e. g_langInfo would hold any keyboard layouts for the specific language, while (if the language is something other than English) you load in the English layouts directly in the keyboard class.