Ist es möglich, sich auf setlocale zu verlassen und darauf zu vertrauen, dass locales installiert wird?

8

Ich habe versucht, eine lokalisierte Datumszeichenfolge mit strftime zu erzeugen, der Platzhalter, den ich verwende, ist %x . Die Sprache / das Gebietsschema ist setlocale(LC_ALL, array('jp','japanese')) , jedoch war keines der Ländereinstellungen verfügbar, sodass eine Zeichenfolge mit falschen Zeichen generiert wurde. Ich habe dann das Gebietsschema ja_JP.utf8 installiert und das als erstes Element im Array angegeben und das Datum der Formatierung wurde gelöst.

Meine Frage ist, sollte ich mich immer darauf verlassen, dass Ländereinstellungen installiert werden? Ich weiß, wie ich sie auf Boxen installiere, auf die ich root zugreifen kann, aber was, wenn ich keinen Zugriff habe?

Ich glaube, dass Zend_Locale und Zend_Translate sich nicht auf setlocale verlassen, aber irgendwie intern tun, was mir den Eindruck vermittelt, dass dies für Anwendungen auf Unternehmensebene praktisch nicht machbar ist.

Ich weiß, dass ich Zend_Locale und Zend_Translate in meiner Anwendung verwenden könnte, aber es muss auch PHP4 unterstützen, zumindest für ein weiteres Jahr, weshalb ich mich nicht allein darauf verlassen kann.

    
meder omuraliev 21.12.2009, 19:04
quelle

3 Antworten

6

Wenn meine Untersuchung von setlocale () richtig ist, lautet die Antwort: Nein und nein. Der Bereich der installierten Ländereinstellungen variiert ebenso wie der Name und die Verfügbarkeit einer bestimmten Ländereinstellung kann letztlich nicht mit absoluter Sicherheit vorhergesagt werden.

    
Pekka 웃 21.12.2009, 19:09
quelle
4

Sie können den Rückgabewert von setlocale überprüfen und zumindest überprüfen, ob er installiert wurde. Sonst werden Sie stille Fehler haben:

%Vor%     
Ariel 07.05.2015 02:42
quelle
0

Machbar, ja. Weise, überhaupt nicht!

    
user213154 21.12.2009 19:19
quelle