php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 26-10-2009, 08:43
TriphunEM
 Registrierter Benutzer
Links : Onlinestatus : TriphunEM ist offline
Registriert seit: Jun 2003
Beiträge: 549
TriphunEM ist zur Zeit noch ein unbeschriebenes Blatt
Standard gettext() wechselt sprache nicht?

Hallo, ich möchte jetzt ein mehrsprachiges Projekt entwickeln und habe mich für gettext entschieden! Wenn ich so rum google, sehe ich oft das viele Probleme damit haben es zum laufen zu bekommen!
Bei mir läuft zwar soweit alles, das einzigste Problem ist, dass ich immer nur die deutschen Ausgaben ausgegeben bekomme - selbst wenn ich englisch als sprache übergebe.

So habe ich alles eingerichtet:

1. Die Sprachdateien liegen vom root-verzeichnis ausgesehen hier:
- ./languages/de_DE/LC_MESSAGES/mydomain.po
- ./languages/en_GB/LC_MESSAGES/mydomain.po

2. Der PHP-Code:
PHP-Code:
    if (isset($_GET['locale'])) {
        
$strLanguageCode $_GET['locale'];    
    } else {
        
$strLanguageCode 'de_DE';
    }
    
setlocale(LC_ALL$strLanguageCode);
    
setlocale(LC_TIME$strLanguageCode);
    
setlocale(LC_CTYPE$strLanguageCode);
    
setlocale(LC_NUMERIC'C');
    
bindtextdomain('mydomain''./languages');
    
bind_textdomain_codeset('mydomain''UTF-8');
    
textdomain('mydomain');
    echo 
_('label1'); 
Hinter "label1" steht "Hallo Welt". Das bekomm ich auch ausgeben!
Wenn ich jetzt aber die "locale"-variable im aufruf mit "en_GB" übergeben, sollte die Ausgabe "Hello World" sein, ist es aber nicht sondern wieder nur "Hallo Welt". Auch wenn ich "en_GB" hart rein code, bleibt die Ausgabe deutsch. Die PO-Files haben die richtige Übersetzung, ein Fehler in der Hinsicht ist ausgeschlossen!

Weiß jemand, warum er das Sprachfile nicht ändert, und immer wieder das deutsche Sprachfile verwendet. Apache hab ich auch neu gestartet, gleiches ergebnis! Aber mit dem Cache darf es auch nicht zusammen hängen, denn das umschalten der Sprache muss ja sofort immer klappen!

Danke

Geändert von TriphunEM (26-10-2009 um 08:46 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 26-10-2009, 10:53
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

ich kann zwar auch nur raten, aber wenn du in deinen Sprachdateien LC_MESSAGES definierst, würde ich auch setlocale mal mit LC_MESSAGES aufrufen.

Gruß,

Amica
Mit Zitat antworten
  #3 (permalink)  
Alt 26-10-2009, 11:22
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Existiert Locale en_GB auf deinem System überhaupt? Wenn nicht, fällt setlocale() auf Default-Locale zurück und wenn das zufällig de_DE ist, passt das zum beschriebenen Verhalten. Übrigens gibt setlocale() dann auch FALSE zurück.
Mit Zitat antworten
  #4 (permalink)  
Alt 26-10-2009, 18:54
TriphunEM
 Registrierter Benutzer
Links : Onlinestatus : TriphunEM ist offline
Registriert seit: Jun 2003
Beiträge: 549
TriphunEM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie meinst du das ob en_GB auf meinem System existiert? Muss ehrlich sagen, so ganz versteh ich das gettext nicht. Mein Übersetzungen sind doch in der po-datei, warum soll mein system dann en_gb haben???

Mein projekt läuft aktuell lokal auf windows+xampp!
Mit Zitat antworten
  #5 (permalink)  
Alt 26-10-2009, 22:23
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Die gettext-Extension von PHP ist nicht gerade die beste Wahl, da du (wie bereits bemerkt) die locale-Einstellungen des Prozesses ändern musst. Das kann vor allem in Multithreading-Umgebungen zu unangenehmen Nebeneffekten führen. Ich würde eher so etwas wie den Gettext-Adapter von Zend_Translate empfehlen.
Mit Zitat antworten
  #6 (permalink)  
Alt 26-10-2009, 23:39
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von TriphunEM Beitrag anzeigen
Wie meinst du das ob en_GB auf meinem System existiert? Muss ehrlich sagen, so ganz versteh ich das gettext nicht. Mein Übersetzungen sind doch in der po-datei, warum soll mein system dann en_gb haben???
Siehe PHP: setlocale - Manual ff.
Mit Zitat antworten
  #7 (permalink)  
Alt 27-10-2009, 08:02
TriphunEM
 Registrierter Benutzer
Links : Onlinestatus : TriphunEM ist offline
Registriert seit: Jun 2003
Beiträge: 549
TriphunEM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmm...also irgendwas von zend will ich nicht wirklich nehmen...ich nutze auch keine frameworks.

hat jemand ein alternativen vorschlag für eine mehrsprachig keit? Ich will aber keine Array oder INI-Lösungen. Hmm...
Mit Zitat antworten
  #8 (permalink)  
Alt 27-10-2009, 08:30
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von TriphunEM Beitrag anzeigen
hmm...also irgendwas von zend will ich nicht wirklich nehmen...ich nutze auch keine frameworks.
Und der Grund dafür wäre? Die Zeit die du jetzt hier für die Extension verplemperst kannst du dir mit einer entsprechenden Bibliothek ganz dicke sparen.
Mit Zitat antworten
  #9 (permalink)  
Alt 27-10-2009, 08:38
TriphunEM
 Registrierter Benutzer
Links : Onlinestatus : TriphunEM ist offline
Registriert seit: Jun 2003
Beiträge: 549
TriphunEM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, bin aber nun mal einer der selber sein zeug schreibt und sich selber den problemen stellen will und sich nicht sich vorgefertigten sachen ausliefert. So kann ich alles selber anpassen wie ich will und muss mich nicht an regeln anderer halten. zumal das projekt sehr auf performance achtet, und deshalb lass ich auch die finger von frameworks.

Ich überlege mir grad eine komplett eigene lösung für mehrsprachigkeit zu bauen. die filebasierend funktioniert, programmiere dazu einen editor, mit dem man die übersetzungen schönen pflegen kann, und das ganze in verbindung mit ACP um die Übersetzungen zu cachen und die performance zu schonen
Mit Zitat antworten
  #10 (permalink)  
Alt 27-10-2009, 10:53
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von TriphunEM Beitrag anzeigen
zumal das projekt sehr auf performance achtet, und deshalb lass ich auch die finger von frameworks.
Dann hast du dich für die falsche Programmiersprache entschieden. PHP ist allgemein sehr sehr langsam.
Mit Zitat antworten
  #11 (permalink)  
Alt 27-10-2009, 11:14
TriphunEM
 Registrierter Benutzer
Links : Onlinestatus : TriphunEM ist offline
Registriert seit: Jun 2003
Beiträge: 549
TriphunEM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das meinst aber nur Du! du bist bestimmt einer, der ASP oder so ein schotter bevorzugt! Es gibt genügend große webanwendungen die auf php basis laufen, firmen arbeiten weit verbreitet mit php und php ist nicht umsonst web programmiersprache nummer 1!

aber das ist jetzt nicht die diskusionsgrundlage hier!
Mit Zitat antworten
  #12 (permalink)  
Alt 27-10-2009, 11:20
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Ich darf die Herrschaften bitten, zum Thema zurückzukommen.
Mit Zitat antworten
  #13 (permalink)  
Alt 27-10-2009, 11:20
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von TriphunEM Beitrag anzeigen
das meinst aber nur Du! du bist bestimmt einer, der ASP oder so ein schotter bevorzugt! Es gibt genügend große webanwendungen die auf php basis laufen, firmen arbeiten weit verbreitet mit php und php ist nicht umsonst web programmiersprache nummer 1!
Du hast da was falsch verstanden. Bei professionellen Projekten geht es selten um die Geschwindigkeit, sondern um die Wartbarkeit des Codes. Wenn ein Programm 50% mehr Ressourcen braucht, was solls? Im Vergleich zur Arbeitszeit der Programmierer kostet Hardware so gut wie nix.

Und wenn es wirklich performancekritische Anwendungen sind, dann verwendet man einfach kein PHP.

Also entscheide dich, was du eigentlich machen willst.
Mit Zitat antworten
  #14 (permalink)  
Alt 27-10-2009, 11:22
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
das meinst aber nur Du!
Selber!

Zitat:
Ja, bin aber nun mal einer der selber sein zeug schreibt und sich selber den problemen stellen will
Löbliche Einstellung...
Nur gehts dann nicht vorwärts.
Das Rad wird nicht runder davon, wenn man es dauernd neu erfindet.

Zitat:
und sich nicht sich vorgefertigten sachen ausliefert
PHP hat ca 3000 eingebaute Funktionen/Klassen/Interfaces, die willst du nutzen. Egal ob die in Erweiterungen stecken, oder nicht.
Aber die paar Klassen eines Frameworks sind dir zuviel...
Warum?


Zitat:
Ich überlege mir grad eine komplett eigene lösung für mehrsprachigkeit zu bauen.
................
und die performance zu schonen
Ein lustiger Wiederspruch....
__________________
Wir werden alle sterben
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
gettext übersetzt nicht MikeScript PHP Developer Forum 4 30-09-2009 18:11
Sprache mit "?lang=" umschalten: default-Sprache? pod-o-mart PHP Developer Forum 6 20-11-2006 21:20
Header wechselt bei Tageszeit whooo Apps und PHP Script Gesuche 2 02-02-2006 09:35
Gettext will nicht übersetzen Foggy PHP Developer Forum 7 26-08-2005 15:25
Ansicht Codierung wechselt ständig voodoo Fragen/Vorschläge zum Forum 12 25-01-2003 13:54

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:28 Uhr.