How are you, Markus,
I just would like to point out that we never suggested that
the en_US.UTF-8 is the only locale that you will ever need. On the
contrary, we've been pointing out that each region/country should use
their own Unicode locales.
Yes, it is absolutely right that globalization isn't just encoding or
coded character set; Unicode itself alone cannot resolve everything/issues even
though it is absolutely a good thing to have a universal character set widely
accepted like Unicode.
With regards,
Ienup
] Date: Tue, 30 Apr 2002 21:32:39 +0100
] From: Markus Kuhn <[EMAIL PROTECTED]>
] Subject: [I18n]Please do not use en_US.UTF-8 outside the US
] To: [EMAIL PROTECTED]
] Cc: [EMAIL PROTECTED]
] MIME-version: 1.0
]
] As we are talking about en_US.UTF-8:
]
] General warning: Please do not use the locale name en_US.UTF-8 anywhere
] outside North America. Some older Solaris documentation suggested that
] this is the only UTF-8 locale you'll ever need, as locales don't change
] much sensible beyond the encoding anyway. This is not the case any more
] today!
]
] An increasing number of programs of US origin finally start to abandon
] the annoying old habit of assuming Legal paper and non-metric units as
] default conventions everywhere, requiring 95% of the world population to
] figure out how to reconfigure to the standard conventions.
]
] More recent software releases instead determine the default setting for
] conventions such as paper format and units of measurement with code
] similar to the following (feel free to copy it into your software as
] well):
]
]
] #include <stdio.h>
] #include <stdlib.h>
] #include <string.h>
]
] /* LC_PAPER and LC_MEASUREMENT were introduced in ISO/IEC TR 14652 */
]
] int main()
] {
] char *units = "mm";
] char *paper = "A4";
] char *s;
]
] if (((s = getenv("LC_ALL")) && *s) ||
] ((s = getenv("LC_PAPER")) && *s) ||
] ((s = getenv("LANG")) && *s))
] if (strstr(s, "_US") || strstr(s, "_CA"))
] paper = "Letter";
] if (((s = getenv("LC_ALL")) && *s) ||
] ((s = getenv("LC_MEASUREMENT")) && *s) ||
] ((s = getenv("LANG")) && *s))
] if (strstr(s, "_US"))
] units = "inches";
]
] printf("Paper: %s\nUnits: %s\n", paper, units);
]
] return 0;
] }
]
]
] This leads to portable and agreeable default settings, using the
] standard values UNLESS you are in a locale that explicitely says that
] you are in North America. I think that's a very good implementation
] practice, but it requires that if you explain to an international
] audience how to activate UTF-8 locales, you should better use a non-US/
] CA locale. (en_GB.UTF-8 for instance seems like an excellent choice ... :)
]
] Markus
]
] --
] Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK
] Email: mkuhn at acm.org, WWW: <http://www.cl.cam.ac.uk/~mgk25/>
]
] _______________________________________________
] I18n mailing list
] [EMAIL PROTECTED]
] http://XFree86.Org/mailman/listinfo/i18n
--
Linux-UTF8: i18n of Linux on all levels
Archive: http://mail.nl.linux.org/linux-utf8/