2022-09-09
I check the weather in Celsius, weigh espresso beans in grams, measure water in milliliters, estimate distances in meters, use a 24-hour clock, and write dates in big-endian order. These habits clash with US conventions, but I formed them deliberately out of a desire to be more forward-looking and globally oriented.
It’s long been a nuisance that in computing my language has been tied to customs that I aspire to leave behind. A locale typically is a single preset covering spell check language, date and time formatting, units of measurement, currency, paper size, and more. There are workarounds to an unfit locale—you can hunt for another preset that does what you want and then, for example, mix US currency with Denmark time—but this approach is often inadequate.
Today I finally took the time to learn how locales work and created one that reflects my own practices. It’s derived from en_US
with the following changes:
- SI units
- 24-hour time
- IETF RFC 3339 dates
- ITU-T E.164 international phone numbers
- ten-digit dialing domestic phone numbers
- “weekbeginnings” instead of weekends
Absent an ergonomic inheritance mechanism, the definition is verbose:
I’m happy to have this in place now, but stepping back, it was too much work for something that I’d hoped other people might emulate.