File: Zend_Application-AvailableResources-Locale.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (155 lines) | stat: -rw-r--r-- 6,580 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 22741 -->
<!-- Reviewed: no -->
<sect2 id="zend.application.available-resources.locale">
    <title>Zend_Application_Resource_Locale</title>

    <para>
        <classname>Zend_Application_Resource_Locale</classname> kann verwendet werden um ein
        Anwendungsweites Gebietsschema zu setzen welches dann in allen Klassen und Komponenten
        verwendet wird welche mit Lokalisierung oder Internationalisierung arbeiten. Standardmäßig
        wird das Gebietsschema in einem <classname>Zend_Registry</classname> Eintrag mit dem
        Schlüssel '<property>Zend_Locale</property>' gespeichert.
    </para>

    <para>
        Es gibt grundsätzlich drei Anwendungsfälle für das Locale Ressource Plugin. Jeder von Ihnen
        sollte abhängig auf den Notwendigkeiten der Anwendung verwendet werden.
    </para>

    <sect3 id="zend.application.available-resources.locale.auto">
        <title>Automatische Erkennung des zu verwendenden Gebietsschemas</title>

        <para>
            Ohne Spezifikation einer Option für
            <classname>Zend_Application_Resource_Locale</classname>, erkennt
            <classname>Zend_Locale</classname> das Gebietsschema, welches in der Anwendung verwendet
            werden soll automatisch.
        </para>

        <para>
            Diese Erkennung funktioniert weil der Client die gewünschte Sprache in seiner
            <acronym>HTTP</acronym> Anfrage sendet. Normalerweise sendet der Client die Sprache
            welche er sehen will, und <classname>Zend_Locale</classname> verwendet diese Information
            für die Erkennung.
        </para>

        <para>
            Aber es gibt 2 Probleme mit diesem Verfahren:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    Der Browser könnte so eingestellt sein das er keine Sprache sendet
                </para>
            </listitem>

            <listitem>
                <para>
                    Der Benutzer könnte ein Gebietsschema manuell gesetzt haben das gar nicht
                    existiert
                </para>
            </listitem>
        </itemizedlist>

        <para>
            In beiden Fällen wird <classname>Zend_Locale</classname> auf einen anderen Mechanismus
            zurückfallen um das Gebietsschema zu erkennen:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    Wenn ein Gebietsschema gesetzt wird das nicht existiert versucht
                    <classname>Zend_Locale</classname> diesen String degradieren.
                </para>

                <para>
                    Wenn zum Beispiel <emphasis>en_ZZ</emphasis> gesetzt wird, dann wird es
                    automatisch zu <emphasis>en</emphasis> degradiert. In diesem Fall wird
                    <emphasis>en</emphasis> als Gebietsschema für die Anwendung verwendet.
                </para>
            </listitem>

            <listitem>
                <para>
                    Wenn das Gebietsschema durch das degradieren nicht erkannt wird, dann wird
                    das Gebietsschema der Umgebung (Web Server) verwendet. Die meisten vorhandenen
                    Umgebungen von Web Hostern verwenden <emphasis>en</emphasis> als Gebietsschema.
                </para>
            </listitem>

            <listitem>
                <para>
                    Wenn das Gebietsschema des Systems nicht erkannt wird, verwendet
                    <classname>Zend_Locale</classname> sein eigenes Standardgebietsschema, welches
                    standardmäßig auf <emphasis>en</emphasis> gesetzt wird.
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Für weitere Informationen über die Erkennung von Gebietsschema sollte in <link
                linkend="zend.locale.selection.automatic">dieses Kapitel für Zend_Locale's
                automatischer Erkennung</link> gesehen werden.
        </para>
    </sect3>

    <sect3 id="zend.application.available-resources.locale.fallback">
        <title>Das Gebietsschema automatisch erkennen und ein eigenes Fallback hinzufügen</title>

        <para>
            Die automatische Erkennung von vorher könnte zu Problemen führen wenn das Gebietsschema
            nicht erkannt werden kann und man ein anderes Standardgebietsschema als
            <emphasis>en</emphasis> haben will. Um das zu verhindern erlaubt es
            <classname>Zend_Application_Resource_Locale</classname> ein eigenes Gebietsschema zu
            setzen welches in dem Fall verwendet wird wenn kein Gebietsschema erkannt wird.
        </para>

        <example id="zend.application.available-resources.locale.configExampleDetectAndFallback">
            <title>Automatische Erkennung des Gebietsschemas und setzen eines Fallbacks</title>

            <para>
                Der folgende Abschnitt zeigt wie ein eigenes Standardgebietsschema gesetzt werden
                kann welches verwendet wird wenn der Client selbst kein Gebietsschema sendet.
            </para>

            <programlisting language="ini"><![CDATA[
; Versucht zuerst die automatische Erkennung,
; ist diese nicht erfolgreich wird nl_NL als Fallback verwendet
resources.locale.default = "nl_NL"
]]></programlisting>
        </example>
    </sect3>

    <sect3 id="zend.application.available-resources.locale.forcing">
        <title>Erzwingen eines Gebietsschemas für die Verwendung</title>

        <para>
            Manchmal ist es nützlich ein einzelnes Gebietsschema zu definieren welches verwendet
            werden soll. Das kann durch Verwendung der Option <property>force</property> getan
            werden.
        </para>

        <para>
            In diesem Fall wird dieses einzelne Gebietsschema verwendet und die automatische
            Erkennung wird ausgeschaltet.
        </para>

        <example id="zend.application.available-resources.locale.configExampleFallbackOnly">
            <title>Definition eines einzelnen Gebietsschemas für die Verwendung</title>

            <para>
                Der folgende Abschnitt zeigt wie ein einzelnes Gebietsschema für die komplette
                Anwendung gesetzt werden kann.
            </para>

            <programlisting language="ini"><![CDATA[
; Unabhängig von allem wird das Gebietsschema nl_NL verwendet
resources.locale.default = "nl_NL"
resources.locale.force = true
]]></programlisting>
        </example>
    </sect3>
</sect2>