Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Kommunikation und Netzwerk

k24:k24.6:k24.6.11:start

24.6.11 Internationalisierung von Gambas-Web-Applikationen (I18N)

24.6.11.1 Besonderheiten

Web-Applikationen, die im Internet eingesetzt werden, können in der Regel aus jeder Sprachregion heraus aufgerufen werden. Deshalb kann es von Interesse sein, dass Web-Applikationen sich auf die Sprachregion des Clients einstellen. Um das zu ermöglichen, muss der Client (Browser) den Server zunächst über die bevorzugten Sprachen informieren. Das geschieht bei Browsern automatisch bei jedem Request, der an den Server geschickt wird. Diese Information kann vom Server an die Web-Applikation weitergereicht werden. So ist es möglich, dass Web-Applikationen sich durch angepasste Formatierungen und sprachliche Übersetzungen auf Clients einstellen.

Typischerweise sind Browser auf die lokale Sprachregion mit Priorität 1 voreingestellt. Allerdings ist in der Regel die us-englische Sprache (en-us) als weitere 'Accept-Language' mit niedrigerer Priorität mit voreingestellt. Diese Browser-Einstellungen lassen sich jederzeit nach Bedarf verändern.

24.6.11.2 Internationalisierung von Web-Page-Projekten

Damit sich Web Page-Projekte auf die Sprache des Clients einstellen können, bietet die Komponente gb.web eine Schnittstelle über die Request-Klasse. Die Eigenschaft Request.Language enthält die erforderliche Information und wird in folgendem Beispiel dazu genutzt, die Gambas-Applikation auf die Sprache des Clients einzustellen. Das Zahlen- und Datums-Format wird durch die Zeile 'System.Language = Request.Language' automatisch angepasst. Wenn die Web-Applikation in der IDE zusätzlich auf 'übersetzbar' eingestellt wird und die Begriffe in Klammern in der IDE übersetzt wurden, werden diese in übersetzter Form im Browser dargestellt:

Beispiel 1

<%
Dim sEnv As String
System.Language = Request.Language
%>
<html>
  <body>
    <h1><%=("Gambas Web Application")%></h1>
    <h2><%=("Current Date : ") & Format(Now, "dd. mmmm yyyy")%></h2>
    <h3><%=("Number format : ") & Format(1.234, "#.000")%></h3>
    <table border="1" cellpadding="4" cellspacing="0">
      <tr>
        <th>Variable</th>
        <th>Value</th>
      </tr>
    <%
    For Each sEnv In Env
    %>
      <tr>
        <td><%=sEnv%></td>
        <td><%=Env[sEnv]%></td>
      </tr>
    <%
    Next
    %>
    </table>
  </body>
</html>

Beispiel 2

Das Einfügen von Gambas-Ausdrücken funktioniert auch innerhalb einer Gambas-Include-Instruktion. Hier wird die Webseite 'IncludePage' in eine andere Webseite 'Main' eingebettet. Anstatt des Titel-Strings wird der übersetzte Gambas-Ausdruck „Gambas WebPage Example“ direkt an die eingebettete Webseite übergeben: Webseite 'Main':

<%
  Dim sTitle As String
  System.Language = Request.Language
%>
<<IncludePage title=<%=("Gambas WebPage Example")%> >>
  <h2><%Print ("Gambas WebPages are easy!")%></h2>
  <h2><%Print ("Time : ")%><%=Format(Now, "hh:nn:ss")%></h2>
<</IncludePage>>

In die Webseite Main werden zuerst der Inhalt des Arguments 'title' und dann der Inhalt der Webseite eingefügt:

Webseite 'IncludePage':

<!DOCTYPE html>
<html>
  <head>
    <meta charset=“utf-8">
    <title><%!title%></title>
  </head>
  <body>
    <h2><%=("Sample header of the included web-page.")%></h2>
    <<--CONTENTS-->>
    h2><%=("Sample footer of the included web-page.")%></h2>
  </body>
</html>

Hier das Ergebnis der übersetzten beiden Webseiten:

Ansicht im Webbrowser

Abbildung 24.6.11.2.1: Anzeige im Webbrowser

24.6.11.3 Internationalisierung von Web-Form-Applikationen

Die Internationalisierung von Web-Form-Applikationen kann in gleicher Form vorgenommen werden wie bei Nicht-Web-Applikationen. Datums- und Zahlenformate passen sich automatisch an die Sprache des anfragenden Browsers an und Begriffe in Klammern können wie üblich übersetzt werden, sofern das Projekt auf 'übersetzbar' eingestellt wurde.

24.6.11.4 Internationalisierung von Web-Skripten

Zur Internationalisierung von Gambas Web-Skripten kann wie bei Gambas Web-Page-Projekten vorgegangen werden. Hier ein Beispiel:

#!/usr/bin/env gbw3
<%
    DIM sEnv AS String
    System.Language = Request.Language
'-- Further Gambas Code ...
%>

Die Zeile 'System.Language = Request.Language' sorgt auch hier für korrekte Datums- und Zahlenformate. Mechanismen zur Übersetzung von Begriffen sind bei Gambas Web-Skripten allerdings nicht verfügbar. Bei überschaubarem Bedarf und Aufwand ließen sich hierfür geeignete Routinen schreiben. Allerdings sollte man abwägen, ob die Auswahl eines anderen Projekttyps u.U. sinnvoller ist.

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k24/k24.6/k24.6.11/start.txt · Zuletzt geändert: 22.10.2022 (Externe Bearbeitung)

Seiten-Werkzeuge