tgl@sss.pgh.pa.us wrote:Bryn wrote:
It’s easy to guess values for, say, countries in Europe:
On Unix-ish systems, "locale -a" should provide the set of available values. We don't attempt to document this because it's so installation-dependent.
But what do I use for, say, Simplified Chinese?
Maybe you don't have a suitable locale installed.
The obvious search (LC_TIME in the search box of the PG doc for the current version) gets no useful hits.
The main entry for lc_time in
19.11.2. Locale and Formatting: https://www.postgresql.org/docs/current/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-FORMAT says “Acceptable values are system-dependent; see Section 23.1 for more information", and if you follow that link, you'll read
What locales are available on your system under what names depends on what was provided by the operating system vendor and what was
installed. On most Unix systems, the command `locale -a` will provide a list of available locales.
Not sure what more we could say.
Thanks for the quick reply, Tom. `locale -a` showed that I do have a suitable locale installed. When I add an extra paragraph to my code that starts with `set lc_time = 'zh_CN’;`, I get this:
星期一 / 九月
一 03- 9-1042 12:00:00.543216 BC
What looks like an m-dash is actually the Chinese character for “one” as in “星期一” (lit. “week-one” which is the convention they adopted when they adopted the Western Calendar). Had I picked Friday (“星期五”) the output would have been nicer.
About “ Not sure what more we could say”, no… I don’t suppose there’s a cost-effective next step. In an ideal world, you’d have O/S-dependent code that reads the output of `locale -a`, sanitizes it to get the legal arguments for `set lc_time`, and presents it as a relation.
My problem is that doc search only gets me so far. Then I have to read each whole page from top to bottom to find the nuggets—in this case “ Acceptable values are system-dependent”.