Installierte System sprache festellen
mselfthtml
- php
0 Gunnar Bittersmann0 Der Martin0 LX0 at
Hallo,
ich habe ein kleines Problem mit PHP. Ich versuche schon seit einiger zeit für einen Bekannten einen kleinen PHP Skript zu schreiben. Es geht darum das mein Bekannter auf seiner Homepage zum Teil japanische Schriftzeichen verwendet(also z.B Name eines Bild einmal in Deutsch und einmal In Jap.). Bisher hat er jedoch nicht gewusst das diese Zeichen natürlich nicht angezeigt werden wenn Japanisch auf dem Rechner nicht installiert ist.
Die eigentlich Frage:
Wie kann ich mit PHP feststellen ob nun die Sprache auf einem Systetem installiert ist ode rob die Zeichen richtig ausgegeben werden. Ist das überhaupt möglich?
Danke im voraus
@@mselfthtml:
nuqneH
Wie kann ich mit PHP feststellen ob nun die Sprache auf einem Systetem installiert ist ode rob die Zeichen richtig ausgegeben werden. Ist das überhaupt möglich?
Du weißt, was PHP ist und auf welchem System PHP-Code ausgeführt wird? Ist es das System, auf der die fraglichen Schriften installiert sind oder auch nicht?
Zwei Möglichkeiten:
(1) Textgrafiken für die japanischen Namen verwenden oder
(2) die CJK-Zeichen verwenden und damit leben, dass sie nicht bei allen Nutzern angezeigt werden. Die Nutzer, die das betrifft, können die Zeichen sowieso nicht lesen.
Qapla'
Hallo Gunnar,
(2) die CJK-Zeichen verwenden und damit leben, dass sie nicht bei allen Nutzern angezeigt werden. Die Nutzer, die das betrifft, können die Zeichen sowieso nicht lesen.
aber vielleicht ästhetisch ansprechend finden.
Freundliche Grüße
Vinzenz
@@Vinzenz Mai:
nuqneH
aber vielleicht ästhetisch ansprechend finden.
Natürlich. Ich wollte eigentlich auch vorhin noch auf [QA-NAVIGATION-SELECT] verweisen, wo dies unter „Fonts“ angesprochen wird.
Qapla'
Hi,
Wie kann ich mit PHP feststellen ob nun die Sprache auf einem Systetem installiert ist ode rob die Zeichen richtig ausgegeben werden. Ist das überhaupt möglich?
mal ernsthaft: Wie willst du vom Server aus feststellen, ob der Client eine bestimmte Voraussetzung erfüllt? Bestenfalls kannst du anhand des Accept-Language-Headers *vermuten*, dass passende Schriften vorhanden sind, wenn der Client z.B. Japanisch als eine der bevorzugten Sprachen angibt.
Alles andere ist Voodoo.
So long,
Martin
Grundlage für Zitat #1449.
@@Der Martin:
nuqneH
Bestenfalls kannst du anhand des Accept-Language-Headers *vermuten*, dass passende Schriften vorhanden sind, wenn der Client z.B. Japanisch als eine der bevorzugten Sprachen angibt.
Nicht zielführend. Du kannst nämlich *nicht* vermuten, dass keine passenden Schriften vorhanden sind, wenn der Client z.B. Japanisch nicht als eine der bevorzugten Sprachen angibt.
Qapla'
Hallo,
»» Bestenfalls kannst du anhand des Accept-Language-Headers *vermuten*, dass passende Schriften vorhanden sind, wenn der Client z.B. Japanisch als eine der bevorzugten Sprachen angibt.
Nicht zielführend. Du kannst nämlich *nicht* vermuten, dass keine passenden Schriften vorhanden sind, wenn der Client z.B. Japanisch nicht als eine der bevorzugten Sprachen angibt.
richtig, ich habe auch nicht gesagt, dass der Umkehrschluss auch gilt. Es kann nur im Positiv-Fall die Basis für eine Mutmaßung sein.
Ciao,
Martin
Hello,
Wie kann ich mit PHP feststellen ob nun die Sprache auf einem Systetem installiert ist ode rob die Zeichen richtig ausgegeben werden. Ist das überhaupt möglich?
Die Frage ist vielleicht eher, wie man den Dialog mit dem User aufbauen sollte, um herauszufinden, ob sein Client japanische Schriftzeichen unterstützt.
Ich würde den User in der Startseite einfach fragen, indem ich ihm eine Grafik mit der Frage auf Japanisch mitsende. Sollte er sich unsicher sein, kann er selber noch eine Stufe weiter gehen und einen Post auslösen, der ihm auf Verdacht einen Text (jetzt als HTML-Text) und das Bild mit der Anweisung, was zu tun ist, sendet. Kann er den Text lesen, klickt er eben auf "ja" (natürlich acu Japanaisch *g*).
Ich habe den Eindruck, dass Viele bei der Planung ihrer vollautomatischen[tm] Webseite einfach den User vergessen, statt mit ihm einen Dialog aufzubauen.
Beim Dialog kann PHP dann selbstverstänlich unterstützend eingesetzt werden.
Sagt der User mit Hilfe seiens Clients, dass er Japanische Zeichen kann, merkt man sich das eben in einer Session oder sendet ihm nur einen entsprechenden Cookie... (tbc)
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
@@Tom:
nuqneH
Ich würde den User in der Startseite einfach fragen, indem ich ihm eine Grafik mit der Frage auf Japanisch mitsende.
Nein. Es geht NICHT darum, ob der Nutzer Japanisch versteht. Es geht darum, ob auf seinem System CJK-Zeichen angezeigt werden. Das Eine hat mit dem Anderen rein gar nichts zu tun.
Qapla'
Hello,
Ich würde den User in der Startseite einfach fragen, indem ich ihm eine Grafik mit der Frage auf Japanisch mitsende.
Nein. Es geht NICHT darum, ob der Nutzer Japanisch versteht. Es geht darum, ob auf seinem System CJK-Zeichen angezeigt werden. Das Eine hat mit dem Anderen rein gar nichts zu tun.
Siehst Du, genau DAS meine ich!
Der User wird immer vergessen oder übergangen.
Wenn der User gerne japanische Zeichen lesen möchte, dann möchte er vielleicht auch gezielt die Möglichkeit haben zu prüfen, ob sein System und das Backend dies unterstützen. Und genau dafür ist eine Dialogmöglichkiet gut. Und vielleicht möchte er auch noch eine Hilfestellung bekommen, wie er seinen Client befähigen kann zum gewünschten Verhalten.
Diese übertriebene Automatismuswahn ist überhaupt nicht im Sinne der meisten User.
Man muss die User nicht immer für blöder halten, als sie in Wirklichkeit sind.
Das fängt bei target="_blank" an setzt sich fort über die Spracheinstellungen usw.
Mehr wollte ich dazu auch nicht sagen.
Eure Automatik-Diskussion könnt ihr ja trotzdem weiterfürhren. Ich habe nichts dagegen. Also lasse Du bitteschön auch zu, dass ich die Aufgabenstellung auch mal von einer anderen Seite beleuchten will.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
@@Tom:
nuqneH
Der User wird immer vergessen oder übergangen.
Nö. Microsoft denkt an den User (bei Microsoft sollte man vielleicht sagen „denkt für den User“ ;-)), indem bei heutigen Windows-Systemen per Default alle Schriften (im Sinne von engl. „script“, nicht „font“) installiert werden. Kostet etwas Speicherplatz, aber was soll’s, ist ja genug davon da.
Vermutlich heißt das einfach: mindestens eine Schriftart, die zumindest die BMP von Unicode (U+0000 bis U+FFEE) abdeckt.
Wenn der User gerne japanische Zeichen lesen möchte, dann möchte er vielleicht auch gezielt die Möglichkeit haben zu prüfen,
Nö. Dann möchte er alle Schriften auf seinem System installiert haben, ohne dass er dafür irgendetwas tun müsste. So, wie’s bei Windows (jetzt) der Fall ist.
Qapla'
Mit PHP wirst Du da nicht weit kommen. Ein Weg, diese Information per JavaScript clientseitig zu ermitteln, könnte bspw. darin bestehen, kurzzeitig ein div zu erstellen, welches mit einem Zeichen gefüllt ist, das mit einem Viereck ersetzt wird, wenn es nicht vorhanden sein sollte - das Zeichen sollte dabei entweder wesentlich breiter oder schmaler sein als dieses Viereck (was natürlich nur bei Proportionalschriften funktioniert)
Nun ermittelt man die Breite des divs, um festzustellen, ob das Zeichen durch die bekannten Vierecke ersetzt wurde. Wenn die Breite nicht dem entspricht, was man erwartet, kann man davon ausgehen, dass die Sprache nicht unterstützt wird.
Ansonsten würde ich mich wie bereits mehrfach empfohlen an den Accept-Language-Header halten.
Gruß, LX
@@LX:
nuqneH
Ansonsten würde ich mich wie bereits mehrfach empfohlen an den Accept-Language-Header halten.
Mehrfach empfohlen?? Martin hatte ihn ins Spiel gebracht und ich hatte gezeigt, dass er so gut wie nichts bringt.
Qapla'