Bonjour,
voici comment pouvoir afficher une date en francais par exemple pour que :
$dateFormat = "2010-04-20";
$date = strftime("%A %d %B %Y",strtotime("$dateFormat"));
print $date;
donne :
mardi 20 avril 2010
il faut pour cela mettre l'instruction :
setlocale (LC_ALL, 'fr_FR');
Pour que cela fonctionne il faut installer les langues sur notre DSM.
1°) Récupération de Glibc de synology :
http://sourceforge.n...ts/dsgpl/files/
prendre sa version de DSM et son processeur. (j'ai un DS 212 pour info)
Pour cela copier l'adresse du lien, et via un Putty :
mkdir /volume1/tmpLocale/
wget http://sourceforge.net/projects/dsgpl/files/DSM%204.0%20Tool%20Chains/Marvell%2088F628x%20Linux%202.6.32/
tar -zxvf gcc421_glibc25_88f6281-GPL.tgz
Maintenant il faut définir la langue, il nous faut les programme "locale" et "locatedef", donc pour les copier :
cp /volume1/tmpLocale/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/bin/locale* /bin
maintenant les définitions de langue :
cp -R /volume1/tmpLocale/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/share/i18n/ /usr/share
une fois cela fait on verifie que ce que l'on a fait fonctionne, on regarde les langues installées :
locale -a
on rajoute la langue francaise :
localedef -i fr_FR -f ISO-8859-1 fr_FR
si vous avez un codedump, vous n'avais pas pris le bon locale /localedef pour votre processeur, ou dans l'archive le mauvais.
J'ai installé un bootstrap perso et rajouter "locate" (un "updatedb" puis "locate localedef" fait des merveilles)
Pour tester que tout cela fonctionne :
setlocale (LC_ALL, 'fr_FR');
$dateFormat = "2010-04-20";
$date = strftime("%A %d %B %Y",strtotime("$dateFormat"));
print $date."\n";
$chaine = 'éàAsjklpqkéàjqsj^@ ?!/dhsqkdhq';
$chaine = preg_replace('`([^\w\d\s;_\-]+)`iS', '', $chaine);
echo $chaine."\n"; //
et le resultat attendu :
mardi 20 avril 2010
éàAsjklpqkéàjqsj dhsqkdhq
(noté le éà en resultat et le format de date en français)
inspiré de http://www.jfpblog.fr/index.php?post/2011/08/18/Add-Locale-to-synology-DSM3.1 (super lien)