Maybe we don't have a name controversy after all (Was: Re: The locale name of Taiwan)
Hello Mr. Hsieh
The more I read, the more I think this whole thing is just a big
misunderstanding. It seems that some people on cle list believe that
the evil glibc is trying to set an "official" locale name for TW. It's
NOT true. It's not glibc's business to go around telling people what
name they should use for their locales. Glibc simply follows the standards
and conventions. When in the situations where the standards are not explicit,
glibc has to try to accommodate the vagueness. That's exactly what it did in 2.2
for locale names, trying to accommodate the naming mess to support as many
locale names as possible. The name zh_TW (or zh_TW.big5) is glibc's internal
name. By NO means it imply that this should be TW's "official" locale name.
If you guys believe that you have gotten an "official" name in "zh_TW.Big5",
good, go on to promote it and enforce everyone using it. You will have no
problem with glibc 2.2.
As you pointed out, HP uses "zh_TW.big5", while Solaris 7 uses "zh_TW.BIG5"
as their locale names respectively. When their users migrate to linux/glibc 2.2,
they don't have to change the name they used to in order to use locale. Isn't
that good for users? How could you say that glibc 2.2 "violate the convention
of commercial UNIXs"? On the other hand, if you manually rename "zh_TW" to
"zh_TW.Big5", all these flexibilities will be gong with wind.
I believe this misunderstanding comes from a long standing mis-concept that
"setlocale" returns the "official" locale name. It is wrong, period. It's time
to stop this practice. Don't you agree?
As for choosing short name "zh_TW" over "zh_TW.big5", I'm not exactly sure
why this is done. To my taste "zh_TW.big5" would be fine. I agree that
"zh_TW" traditionally has been associated with EUC-TW encoding, although
no standard has required that. It seems that now people (outside Taiwan) think
it's time to change (both glibc and xfree are doing this). If you guys do not
agree, tell them to stop. However, in terms of being different from
"zh_TW.Big5", "zh_TW.big5" is no better than "zh_TW". Programs like "xcin"
will still be broken if it continue to rely on the return value of "setlocale".
To summarize my points, the accusation that glibc forces us to use "zh_TW"
(or "zh_TW.big5") as TW's official locale name is flatly untrue. Indeed,
glibc is trying to do the opposite, accepting as many as possible names,
thus making everyone happy no matter what they insist to use for locale names.
The internal name used by glibc should not be a concern of users. You could
and should continue to use whatever name you used before. The whole panic
started because some people believe that "setlocale" should return so called
"official" locale name and should be "zh_TW.Big5". By now I think everyone
should realize that this is wrong. Especially, charset name should come from
somewhere else. So the whole thing was unsound. Let's stop the panic and stop
the spreading of the panic right now!
Thank you for bearing with me. I hope this clarify things enough so we can
put this behind us.