Gostaria de personalizar exclusivamente o formato de data e hora do meu sistema, mantendo o restante do local como está. Eu sei que a variável de ambiente LC_TIME
tornará possível personalizar esse aspecto apenas apontando para uma localidade alternativa. Como estou usando o Linux (Ubuntu 14.04 para ser preciso), quero usar o formato entendido por localedef
como entrada.
Li os três documentos a seguir:
O último foi particularmente útil.
Agora, eu apenas quero personalizar a seção para LC_TIME
e gostaria de herdar outra coisa.
Então eu copiei en_US
para um arquivo chamado isodate
em /usr/share/i18n/locales
e ajustei os valores que me interessam. Após peneirar a documentação, decidi também substituir todos os outros conteúdos da seção por um copy
-keyword.
Pergunta: Não está claro para mim qual método deve ser a melhor prática. Alguém sabe disso (ou até outra alternativa que as minhas)?
Por exemplo, como eu me preocupo com apenas alguns valores ( d_t_fmt
, d_fmt
, t_fmt
, t_fmt_ampm
, am_pm
, date_fmt
) seria bom herdar all de en_US
para LC_TIME
e, em seguida, basta substituir esses valores pelo meu formato semelhante ao ISO (ISO 8601). No entanto, a documentação sobre copy
states (ênfase minha):
copy
Specify the name of an existing locale which shall be used as the definition of this category. If this keyword is specified, no other keyword shall be specified.
Isso significa que não posso simplesmente adicionar copy
e adicionar mais palavras-chave.
Além disso, pode ser legítimo definir apenas a seção LC_TIME
ou a localedef
se recusará a compilá-la?
TL; DR
Qual é a melhor prática para personalizar minhas configurações de formato de data e hora, mantendo o princípio DRY, ou seja, sem repetir coisas desnecessariamente?
O que eu criei até agora:
escape_char /
comment_char %
LC_IDENTIFICATION
copy "en_US"
END LC_IDENTIFICATION
LC_CTYPE
copy "en_US"
END LC_CTYPE
LC_COLLATE
copy "en_US"
END LC_COLLATE
LC_MONETARY
copy "en_US"
END LC_MONETARY
LC_NUMERIC
copy "en_US"
END LC_NUMERIC
LC_TIME
abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
"<U0053><U0061><U0074>"
day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
"<U004D><U006F><U006E><U0064><U0061><U0079>";/
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
"<U0046><U0072><U0069><U0064><U0061><U0079>";/
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
week 7;19971130;7
first_weekday 1
first_workday 2
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
"<U004D><U0061><U0072><U0063><U0068>";/
"<U0041><U0070><U0072><U0069><U006C>";/
"<U004D><U0061><U0079>";/
"<U004A><U0075><U006E><U0065>";/
"<U004A><U0075><U006C><U0079>";/
"<U0041><U0075><U0067><U0075><U0073><U0074>";/
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
% Appropriate date and time representation (%c)
% "%Y-%m-%d %H:%M:%S"
d_t_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
%
% Appropriate date representation (%x)
% "%Y-%m-%d"
d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
%
% Appropriate time representation (%X)
% "%H:%M:%S"
t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
%
t_fmt_ampm ""
%
am_pm "";""
%
% Appropriate date representation (date(1)) "%Y-%m-%d %H:%M:%S"
date_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
END LC_TIME
LC_MESSAGES
copy "en_US"
END LC_MESSAGES
LC_PAPER
copy "en_US"
END LC_PAPER
LC_NAME
copy "en_US"
END LC_NAME
LC_ADDRESS
copy "en_US"
END LC_ADDRESS
LC_TELEPHONE
copy "en_US"
END LC_TELEPHONE
LC_MEASUREMENT
copy "en_US"
END LC_MEASUREMENT