What would be more preferred. Use the dash? Or an underscore? Perhaps we can use the dash in this case because there is no relation between the zh-Hans and zh. And capitalization, should we use the ISO version? so zh-Hans? Or shall we capitalize it completely, like pt_BR?
Don't mix them. pt_BR is portuguese, variant spoken in brazil.zh-Hans and zh-Hant are, for localization purposes, entirely different langages. (they read the same, but use different alphabets). Another example of that would be the two writings of norwegian - nynorsk and bokmal (I hope I get the spelling right...).
The result is that there is no 'zh' language at all. It's either zh-Hans or zh-Hant. Go with ISO, and that should be fine as it's also what ICU uses ?
-- Adrien.