I need to convert language names like 'Hungarian', 'English' to ISO 639 codes. ISO 639-6 would be the best but ISO 639-2 is good enough. What's the best way to achieve this?
I should convert the English to locale and get the language with getLanguage()? If thats the only way how can I convert a string like 'English' to a java locale?
My goal is to store book language info using the ISO 639 codes.
This will find some 150 locales, where ISO3 is the three letter variant, as opposed to the older two letter getLanguage.
The display language is the bare language name, whereas the display name is embellished with the country "German (Austria)."
So
For the display methods there is an optional Locale parameter, to explicitly set to Locale.ENGLISH.
You can get a list of ISO 639-2 codes by passing a regular expression of language names to LanguageAlpha3Code.findByName(String) (in nv-i18n library).
The following example code is a command-line tool that converts given language names into corresponding ISO 639-2 codes.
A sample execution: