Skip to content

Instantly share code, notes, and snippets.

@neilpa
Last active September 20, 2020 21:51
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neilpa/461ac109ea38bd78c02bae5ea65a4aa7 to your computer and use it in GitHub Desktop.
Save neilpa/461ac109ea38bd78c02bae5ea65a4aa7 to your computer and use it in GitHub Desktop.
comment_char %
escape_char /
% This file is part of the GNU C Library and contains locale data.
% The Free Software Foundation does not claim any copyright interest
% in the locale data contained in this file. The foregoing does not
% affect the license of the GNU C Library as a whole. It does not
% exempt you from the conditions of the license if your use would
% otherwise be governed by that license.
% Locale for English locale in the USA
% Contributed by Ulrich Drepper <drepper@redhat.com>, 2000
% Modified by Neil Pankey <x@neilpa.me>, 2020
LC_IDENTIFICATION
title "English locale for the USA"
source "Free Software Foundation, Inc."
address "http:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
fax ""
language "American English"
territory "United States"
revision "1.0"
date "2000-06-24"
category "i18n:2012";LC_IDENTIFICATION
category "i18n:2012";LC_CTYPE
category "i18n:2012";LC_COLLATE
category "i18n:2012";LC_TIME
category "i18n:2012";LC_NUMERIC
category "i18n:2012";LC_MONETARY
category "i18n:2012";LC_MESSAGES
category "i18n:2012";LC_PAPER
category "i18n:2012";LC_NAME
category "i18n:2012";LC_ADDRESS
category "i18n:2012";LC_TELEPHONE
category "i18n:2012";LC_MEASUREMENT
END LC_IDENTIFICATION
LC_CTYPE
copy "en_GB"
END LC_CTYPE
LC_COLLATE
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
END LC_COLLATE
LC_MONETARY
int_curr_symbol "USD "
currency_symbol "$"
mon_decimal_point "."
mon_thousands_sep ","
mon_grouping 3;3
positive_sign ""
negative_sign "-"
int_frac_digits 2
frac_digits 2
p_cs_precedes 1
int_p_sep_by_space 1
p_sep_by_space 0
n_cs_precedes 1
int_n_sep_by_space 1
n_sep_by_space 0
p_sign_posn 1
n_sign_posn 1
%
END LC_MONETARY
LC_NUMERIC
decimal_point "."
thousands_sep ","
grouping 3;3
END LC_NUMERIC
LC_TIME
abday "sun";"mon";"tue";"wed";"thu";"fri";"sat"
day "Sunday";/
"Monday";/
"Tuesday";/
"Wednesday";/
"Thursday";/
"Friday";/
"Saturday"
week 7;19971130;1
abmon "jan";"feb";/
"mar";"apr";/
"may";"jun";/
"jul";"aug";/
"sep";"oct";/
"nov";"dec"
mon "January";/
"February";/
"March";/
"April";/
"May";/
"June";/
"July";/
"August";/
"September";/
"October";/
"November";/
"December"
% Appropriate date and time representation (%c)
d_t_fmt "%a %d %b %Y %r %Z"
%
% Appropriate date representation (%x)
d_fmt "%m//%d//%Y"
%
% Appropriate time representation (%X)
t_fmt "%r"
%
% Appropriate AM/PM time representation (%r)
t_fmt_ampm "%I:%M:%S %p"
%
% Appropriate date and time representation for date(1)
date_fmt "%a %d %b %Y %r %Z"
%
% Strings for AM/PM
%
am_pm "AM";"PM"
END LC_TIME
LC_MESSAGES
yesexpr "^[+1yY]"
noexpr "^[-0nN]"
yesstr "yes"
nostr "no"
END LC_MESSAGES
LC_PAPER
height 279
width 216
END LC_PAPER
LC_NAME
name_fmt "%d%t%g%t%m%t%f"
name_miss "Miss."
name_mr "Mr."
name_mrs "Mrs."
name_ms "Ms."
END LC_NAME
LC_ADDRESS
postal_fmt "%a%N%f%N%d%N%b%N%h %s %e %r%N%T, %S %z%N%c%N"
country_name "United States"
country_post "USA"
country_ab2 "US"
country_ab3 "USA"
country_num 840
country_car "USA"
country_isbn 0
lang_name "English"
lang_ab "en"
lang_term "eng"
lang_lib "eng"
END LC_ADDRESS
LC_TELEPHONE
tel_int_fmt "+%c (%a) %l"
tel_dom_fmt "(%a) %l"
int_select "11"
int_prefix "1"
END LC_TELEPHONE
LC_MEASUREMENT
% US customary units.
measurement 2
END LC_MEASUREMENT

Used to make lower case abbreviations (mostly for ExifTool)

$ date +%Y-%b-%d
2020-May-23

$ sudo cp /usr/share/i18n/locales/en_US /usr/share/i18n/locales/en_US-lcase_ab

# Update en_US-lcase_ab

$ diff /usr/share/i18n/locales/en_US /usr/share/i18n/locales/en_US-lcase_ab
80c80
< abday	"Sun";"Mon";"Tue";"Wed";"Thu";"Fri";"Sat"
---
> abday	"sun";"mon";"tue";"wed";"thu";"fri";"sat"
90,95c90,95
< abmon	"Jan";"Feb";/
< 	"Mar";"Apr";/
< 	"May";"Jun";/
< 	"Jul";"Aug";/
< 	"Sep";"Oct";/
< 	"Nov";"Dec"
---
> abmon	"jan";"feb";/
> 	"mar";"apr";/
> 	"may";"jun";/
> 	"jul";"aug";/
> 	"sep";"oct";/
> 	"nov";"dec"

Install and use

$ sudo localedef -f UTF-8 -i en_US-lcase_ab en_US-lcase_ab.UTF-8

$ LC_TIME=en_US-lcase_ab.UTF-8 date +%Y-%b-%d
2020-may-23

Apparently the names are slightly different when reported by locale. However, still failing in Perl when trying both ways.

$ locale -a | rg en_US
en_US
en_US.iso88591
en_US-lcase_ab.utf8
en_US.utf8

$ LC_TIME=en_US-lcase_ab.UTF-8 exiftool ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_TIME = "en_US.lcase_ab.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").

$ LC_TIME=en_US-lcase_ab.utf8 exiftool ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_TIME = "en_US.lcase_ab.utf8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment