gaspine Posté(e) le 20 avril 2012 Posté(e) le 20 avril 2012 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) 0 Citer
CoolRaoul Posté(e) le 21 avril 2012 Posté(e) le 21 avril 2012 (modifié) Sur mon ds210 j'ai du faire un un "mkdir -p /usr/lib/locale" préalable sous peine de cannot create temporary file: No such file or directory en réponse au localedef. Pas toi? Sinon, pour ma part je préfère travailler en UTF-8, plus universel, donc: localedef -c -f UTF-8 -i fr_FR fr_FR.UTF-8 export LANG="fr_Fr.utf8"[/code] Modifié le 21 avril 2012 par CoolRaoul 0 Citer
gaspine Posté(e) le 23 avril 2012 Auteur Posté(e) le 23 avril 2012 (modifié) cp /volume1/tmpLocale/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/bin/locale*/bin[/CODE] [color=#000000][size=2]Cette ligne copie le fichier locale et localedef qui sont des executables depuis l'archive telechargée vers le répertoire /bin, [/size][/color] [color=#000000][size=2]si tu as eu cette erreur, c'est probablement que tu n'est pas dans le bon répertoire, celui qui contient les fichiers locale et localedef[/size][/color] [color=#000000][size=2]Je n'utilise pas pour afficher la date, mais pour filtrer, je n'ai pas trouvé de filtre preg_replace qui permette un [a-zA-Z0-9] et les accents francais ..[/size][/color] [color=#000000][size=2]avec le setlocale correct w donne bien les accents, sans non ;;;[/size][/color] Modifié le 23 avril 2012 par gaspine 0 Citer
CoolRaoul Posté(e) le 23 avril 2012 Posté(e) le 23 avril 2012 Bonjour, je suis l'auteur du tutorial, aucune idée pourquoi c'est en invité. que veux-tu dire par "c'est en invité" ? 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.