PHP setlocale und gettext Mehrsprachigkeit

Status
Für weitere Antworten geschlossen.

samsmooth

Benutzer
Mitglied seit
11. Jan 2008
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Hallo.

Gibt es eine Möglichkeit, auf der Diskstation "setlocale" für Übersetzungen zu nutzen?

setlocale(LC_ALL, "de_DE"); retourniert ein "false".

Gruß
Sam
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Dafür fehlt dem Apache eine Komponente. Kannst nur den ipkg-apachen nach itaris Anleitung installieren. Sonst schau mal im internationalen Forum nach, da wurde das auch schon diskutiert. Vielleicht gibts da auch schon andere Resultate.

MfG Matthieu
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich meinte mit zu erinnern, dass setlocale() auf der DS sehr wohl funzen sollte. Nur kann es sein, dass die Codepage anders angegeben werden muss
Ergibt denn folgender Code etwas ausser false?
PHP:
$loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Die angesprochene Diskussion im internationelen Forum befindet sich hier:

http://forum.synology.com/enu/viewtopic.php?t=4232

Bisher hat niemand eine funktionierende Lösung mit setlocale publiziert.
Dann muss man die Übersetzung wohl eigenhändig mit PHP machen. Ist zwar aufwändig, aber relativ einfach umzusetzen ;)
Irgend so was in der Richtung
PHP:
<?php

function datumDeutsch($datum,$style){
 $tag = array(
 'Mon'=>array('kurz'=>'Mo','lang'=>'Montag'),
 'Tue'=>array('kurz'=>'Di','lang'=>'Dienstag'),
 'Wed'=>array('kurz'=>'Mi','lang'=>'Mittwoch'),
 'Thu'=>array('kurz'=>'Do','lang'=>'Donnerstag'),
 'Fri'=>array('kurz'=>'Fr','lang'=>'Freitag'),
 'Sat'=>array('kurz'=>'Sa','lang'=>'Samstag'),
 'Sun'=>array('kurz'=>'So','lang'=>'Sonntag')
 );

 $monat = array(
 1=>array('kurz'=>'Jan','lang'=>'Januar'),
 2=>array('kurz'=>'Feb','lang'=>'Februar'),
 3=>array('kurz'=>'Mar','lang'=>'März'),
 4=>array('kurz'=>'Apr','lang'=>'April'),
 5=>array('kurz'=>'Mai','lang'=>'Mai'),
 6=>array('kurz'=>'Jun','lang'=>'Juni'),
 7=>array('kurz'=>'Jul','lang'=>'Juli'),
 8=>array('kurz'=>'Aug','lang'=>'August'),
 9=>array('kurz'=>'Sep','lang'=>'September'),
 10=>array('kurz'=>'Okt','lang'=>'Oktober'),
 11=>array('kurz'=>'Nov','lang'=>'November'),
 12=>array('kurz'=>'Dez','lang'=>'Dezember')
 );
 return $tag[date('D',$datum)][$style].' '.date('j',$datum).'. '.$monat[date('n',$datum)][$style].' '.date('Y',$datum);
}

for($i=0;$i<=4;$i++){
  echo datumDeutsch(strtotime('now -'.rand(1,720).' days'),'lang').'<br />';
}
for($i=0;$i<=4;$i++){
  echo datumDeutsch(strtotime('now -'.rand(1,720).' days'),'kurz').'<br />';
}
?>
Gruss

tobi

p.s. irgendwie hatte ich das Gefühl dass ich setlocale() mal brauche konnte, aber wie es scheint habe ich mich da getäuscht
 

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
Hat sich dazu denn schon jemand mit dem Synology-Support in Verbindung gesetzt und nachgefragt, warum das ein Problem ist?

Itari

Also ich nicht. Habe es damals halt ebenfalls so gelöst wie es jahlives hier gepostet hat.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat