Prefácio
Já é sabido que programadores tendem a fazer gambiarras na hora de traduzir certos termos de uma aplicação, tais como os dias da semana. Foi durante uma conversa com o meu amigo Xorna que eu percebi que muita gente não sabe obter as datas em português automaticamente. Alterando o local do PHP você pode adquirir as propriedades de determinado país. A função que precisaremos para realizar esta mágica é a setlocale().
Conceito
O código abaixo irá fazer com que as propriedades locais do sistema sejam alteradas para o formato brasileiro.
Em servidores configurados em formato brasileiro, ou seja, que já tem Brazilian Portuguese configurado no locale, apenas a linha 3 poderá ser suficiente.
Em servidores estrangeiros, talvez apenas a linha 4 seja suficiente.
Para deixar o código portável, utilizaremos os dois modos.
<?php
setlocale(LC_ALL, NULL);
setlocale(LC_ALL, 'pt_BR');
print ucfirst(gmstrftime('%A'));
?>
A função utilizada para puxar os dados da data é a gmstrftime() porque ela leva em consideração o local.
O retorno desta função é o dia da semana, por extenso, em português! :)
LC_ALL é uma constante que indica que as informações locais serão definidas em todas as instâncias. LC_ALL engloba LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC e LC_TIME.
Outras possibilidades com a alteração do local é obter dados monetários. A função localeconv() retorna uma array com as propriedades monetárias da região.
O retorno de
<?php print_r(localeconv()); ?>
será:
Array
(
[decimal_point] => ,
[thousands_sep] => .
[int_curr_symbol] => BRL
[currency_symbol] => R$
[mon_decimal_point] => ,
[mon_thousands_sep] => .
[positive_sign] =>
[negative_sign] => -
[int_frac_digits] => 2
[frac_digits] => 2
[p_cs_precedes] => 1
[p_sep_by_space] => 1
[n_cs_precedes] => 1
[n_sep_by_space] => 1
[p_sign_posn] => 3
[n_sign_posn] => 3
[grouping] => Array
(
[0] => 3
)
[mon_grouping] => Array
(
[0] => 3
)
)
Conclusão
É possível fazer muitas coisas alterando o local. No Manual do PHP você encontra outras utilizações para estas funções.
Lembrando sempre que é divertido brincar com as funções do PHP! :P
Um grande abraço e uma ótima semana a todos!
Fiquem com Deus!
Rafael Jaques
Ah, essa eu jah conhecia…
=]
Mazá Rafa, show de bola cara, isso ajuda muito, evita gambiarras bizarras para tradução =)
Oie Rafa,
Mto bacana o artigo, com certeza é uma boa ajuda!
Muito bomm Jaques, to pensando até em entrar para o ramo do PHP =)
Gostei muito da descrição dos blogs la UAHiuahaIhaiuahia..
Vlw ae Jaques, abração
Vai dizer, né Jason?
No Flash tu não consegue as datas em português! :P
trOpa de elite OssO durO de rOer…
pega um pega geral e tb pega vOcê!
' hOmens de pretO qual é sua MissãO?
- entrar nO Blog dO Jaques e Deixar os outros cOmentáriOs nO chãO.
' hOmens de pretO O que q vOcê Faz?
- eu tirO O tOpO deles pq O meu vale mais…
=))
FELIZ DIA DO MÚSICO
Esquece… rsrs
Já apareceu :D
muito bom esse artigo parabens viu.. me ajudou muito..
nao funcionou aqui
Muito bom mostrou de forma simplificada e resolve bem!!
Me ajudou bastante esse seu post. Eu sabia que tinha que ter uma forma de mudar mas não sabia que tinha que usar a função strftime() para imprimir os resultados de acordo com a localidade.
Apanhei nisso hj viu.. pense.
Vlw
Seu botão do Google+ num ta funfando. não consegui dar um up.
muito bom!