PHP setlocale und gettext Mehrsprachigkeit

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

samsmooth

Benutzer
Registriert
11. Jan. 2008
Beiträge
33
Reaktionspunkte
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
 
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
 
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'";
 
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
 
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