[Zope3-checkins] CVS: Zope3/src/zope/i18n/tests/xmllocales - LocaleElements.dtd:1.1 de.xml:1.1 de_DE.xml:1.1 de_DE_PREEURO.xml:1.1 root.xml:1.1

Stephan Richter srichter@cbu.edu
Sun, 5 Jan 2003 15:20:25 -0500


Update of /cvs-repository/Zope3/src/zope/i18n/tests/xmllocales
In directory cvs.zope.org:/tmp/cvs-serv28404/i18n/tests/xmllocales

Added Files:
	LocaleElements.dtd de.xml de_DE.xml de_DE_PREEURO.xml root.xml 
Log Message:
I am proud to check in this code, which implements a modified version of
the I18nFormatLocaleSupport proposal.

This codes adds real hardcore Locale support to Zope, including number 
and date/time parsing/formatting using patterns that are compliant to the 
emerging ICU standard. 
Note: The formatting code can be used independent of the Locale.

This standard compliance allowed me to use the ICU Locale XML Files as 
data source, so that we basically have locale support now for virtually
any locale that ICU supports (therefore all the XML files in the checkin).

I am surprised by the speed the minidom Python library parses the XML
(maybe someone can write a cleaner XML file parser). Also I think the 
two pattern parsers, parsing from text to objects and formatting objects 
is very fast, so it is definitely suitable for frequent usage.

There are some tasks left however:

- Integrate this new code into the TranslationService mechanism. Well, I
  would actually propose to review all of the old code and adapt it more 
  to the way the new Locales work. I really do not like the gettext 
  standard too much, and ICU has also a lot of commercial support.

- Implement currency parsing and formatting. While this is a smaller task
  it still needs to be done.

- As mentioned above, maybe implement a new XML File parser and replacing 
  the minidom course.

Ah yeah, the tests contain a multitude of examples on how it all works.


=== Added File Zope3/src/zope/i18n/tests/xmllocales/LocaleElements.dtd ===
<!ELEMENT Abbreviation ( #PCDATA ) >

<!ELEMENT Address ( #PCDATA ) >

<!ELEMENT AddressFormat ( PostalPattern ) >

<!ELEMENT Application ( #PCDATA ) >

<!ELEMENT Audience ( #PCDATA ) >

<!ELEMENT Contact ( #PCDATA ) >

<!ELEMENT CountryCar ( #PCDATA ) >

<!ELEMENT CountryISBNNumber ( #PCDATA ) >

<!ELEMENT CountryNumber ( #PCDATA ) >

<!ELEMENT CountryPost ( #PCDATA ) >

<!ELEMENT Date ( #PCDATA ) >

<!ELEMENT DomesticPattern ( #PCDATA ) >

<!ELEMENT Email ( #PCDATA ) >

<!ELEMENT Fax ( #PCDATA ) >

<!ELEMENT GeneralSalutation ( #PCDATA ) >

<!ELEMENT Height ( #PCDATA ) >

<!ELEMENT Identification ( Title| Source| Address| Contact| Email| Telephone| Fax| Language| Territory| Audience| Application| Abbreviation| Revision| Date )* >

<!ELEMENT InternationalDialCode ( #PCDATA ) >

<!ELEMENT InternationalPattern ( #PCDATA ) >

<!ELEMENT InternationalPrefix ( #PCDATA ) >

<!ELEMENT Language ( #PCDATA ) >

<!ELEMENT LanguageLibraryUse ( #PCDATA ) >

<!ELEMENT LongSalutationMiss ( #PCDATA ) >

<!ELEMENT LongSalutationMr ( #PCDATA ) >

<!ELEMENT LongSalutationMrs ( #PCDATA ) >

<!ELEMENT NameFormat ( NamePattern| GeneralSalutation| ShortSalutationMr| ShortSalutationMiss|ShortSalutationMrs| LongSalutationMr| LongSalutationMiss| LongSalutationMrs )* >

<!ELEMENT NamePattern ( #PCDATA ) >

<!ELEMENT PaperSize ( Height, Width, Units ) >

<!ELEMENT PosixCompatibilityData ( messages| AddressFormat| NameFormat| Identification| TelephoneFormat )* >

<!ELEMENT PostalPattern ( #PCDATA ) >

<!ELEMENT Revision ( #PCDATA ) >

<!ELEMENT ShortSalutationMiss ( #PCDATA ) >

<!ELEMENT ShortSalutationMr ( #PCDATA ) >

<!ELEMENT ShortSalutationMrs ( #PCDATA ) >

<!ELEMENT Source ( #PCDATA ) >

<!ELEMENT Telephone ( #PCDATA ) >

<!ELEMENT TelephoneFormat ( InternationalPattern| DomesticPattern| InternationalDialCode| InternationalPrefix )* >

<!ELEMENT Territory ( #PCDATA ) >

<!ELEMENT Title ( #PCDATA ) >

<!ELEMENT Units ( #PCDATA ) >

<!ELEMENT Width ( #PCDATA ) >

<!ELEMENT after ( #PCDATA ) >

<!ELEMENT normalization ( #PCDATA ) >

<!ELEMENT alternate ( #PCDATA ) >

<!ELEMENT vairableTop ( #PCDATA ) >

<!ELEMENT caseLevel ( #PCDATA ) >

<!ELEMENT caseFirst ( #PCDATA ) >

<!ELEMENT composition ( #PCDATA ) >

<!ELEMENT lt1 ( #PCDATA ) >

<!ELEMENT am ( #PCDATA ) >

<!ELEMENT boundaries ( grapheme| word| Sentence| Line )* >

<!ELEMENT TransliteratorNamePattern ( #PCDATA ) >

<!ELEMENT calendar ( am | dayAbbr | dayNames | eras | monthAbbr | monthNames | patterns | pm | week |firstDay |minDays )* >
<!ATTLIST calendar class NMTOKEN #REQUIRED >
<!ATTLIST calendar default NMTOKEN #IMPLIED >
<!ATTLIST calendar inheritsFrom NMTOKEN #IMPLIED >

<!ELEMENT calendars ( calendar+ ) >

<!ELEMENT chars ( #PCDATA ) >

<!ELEMENT city ( #PCDATA ) >

<!ELEMENT collation ( collationElements ) >
<!ATTLIST collation accentOrder NMTOKEN #REQUIRED >
<!ATTLIST collation override NMTOKEN #REQUIRED >
<!ATTLIST collation version NMTOKEN #REQUIRED >


<!ELEMENT collationElements ( after | eq | gt1 | gt2 | gt3 | normalization | alternate | vairableTop | caseLevel | caseFirst | lt1)* >

<!ELEMENT correspondsTo ( #PCDATA ) >
<!ATTLIST correspondsTo vendor NMTOKEN #REQUIRED >

<!ELEMENT countries ( country+ ) >

<!ELEMENT country ( #PCDATA ) >
<!ATTLIST country id NMTOKEN #REQUIRED >
<!ATTLIST country iso2 NMTOKEN #IMPLIED >
<!ATTLIST country iso3 NMTOKEN #IMPLIED >

<!ELEMENT currencies ( currency+ ) >

<!ELEMENT currency ( symbol| pattern| decimal| name |group )* >
<!ATTLIST currency default NMTOKEN #IMPLIED >
<!ATTLIST currency id NMTOKEN #REQUIRED >

<!ELEMENT name ( #PCDATA ) >

<!ELEMENT date ( full| long| medium| short )* >

<!ELEMENT dateTime ( #PCDATA ) >

<!ELEMENT day ( #PCDATA ) >
<!ATTLIST day id NMTOKEN #IMPLIED >

<!ELEMENT dayAbbr ( day+ ) >

<!ELEMENT dayNames ( day+ ) >

<!ELEMENT daylight ( #PCDATA ) >

<!ELEMENT decimal ( #PCDATA ) >

<!ELEMENT displayNames ( scripts| languages| countries| variants |localePatterns )* >

<!ELEMENT encodings ( mapping+ ) >
<!ATTLIST encodings requiredLetters NMTOKEN #REQUIRED >

<!ELEMENT eq ( #PCDATA ) >

<!ELEMENT era ( #PCDATA ) >
<!ATTLIST era id NMTOKEN #REQUIRED >

<!ELEMENT eras ( era+ ) >

<!ELEMENT exponential ( #PCDATA ) >

<!ELEMENT firstDay ( #PCDATA ) >

<!ELEMENT full ( #PCDATA ) >

<!ELEMENT generic ( #PCDATA ) >

<!ELEMENT grapheme ( #PCDATA ) >
<!ATTLIST grapheme class NMTOKEN #REQUIRED >

<!ELEMENT group ( #PCDATA ) >

<!ELEMENT gt1 ( #PCDATA ) >

<!ELEMENT gt2 ( #PCDATA ) >

<!ELEMENT gt3 ( #PCDATA ) >

<!ELEMENT identity ( language| country| variant| correspondsTo )* >

<!ELEMENT infinity ( #PCDATA ) >

<!ELEMENT language ( #PCDATA ) >
<!ATTLIST language id NMTOKEN #REQUIRED >
<!ATTLIST language iso2 NMTOKEN #IMPLIED >
<!ATTLIST language iso3 NMTOKEN #IMPLIED >

<!ELEMENT languages ( language+ ) >

<!ELEMENT list ( #PCDATA ) >

<!ELEMENT locale ( #PCDATA ) >

<!ELEMENT localeData ( versioning | identity| orientation| encodings| displayNames | calendars | numberFormat | currencies | collation | timeZoneNames | boundaries | measurement | CountryPost | CountryNumber | CountryCar | CountryISBNNumber | LanguageLibraryUse | PaperSize | PosixCompatibilityData|TransliteratorNamePattern )* >

<!ELEMENT localePatterns ( locale, list, composition ) >

<!ELEMENT long ( #PCDATA | daylight | generic | standard )* >

<!ELEMENT mapping ( #PCDATA ) >
<!ATTLIST mapping name NMTOKEN #REQUIRED >

<!ELEMENT measurement ( #PCDATA ) >

<!ELEMENT medium ( #PCDATA ) >

<!ELEMENT messages ( no| yes| shortYes| shortNo )* >

<!ELEMENT minDays ( #PCDATA ) >

<!ELEMENT minusSign ( #PCDATA ) >

<!ELEMENT month ( #PCDATA ) >
<!ATTLIST month id NMTOKEN #REQUIRED >

<!ELEMENT monthAbbr ( month+ ) >

<!ELEMENT monthNames ( month+ ) >

<!ELEMENT nan ( #PCDATA ) >

<!ELEMENT nativeZeroDigit ( #PCDATA ) >

<!ELEMENT no ( #PCDATA ) >

<!ELEMENT numberFormat ( patterns| symbols )* >
<!ATTLIST numberFormat class NMTOKEN #REQUIRED >
<!ATTLIST numberFormat default NMTOKEN #REQUIRED >

<!ELEMENT orientation ( #PCDATA ) >
<!ATTLIST orientation characters NMTOKEN #REQUIRED >
<!ATTLIST orientation lines NMTOKEN #REQUIRED >

<!ELEMENT pattern ( #PCDATA ) >

<!ELEMENT patternDigit ( #PCDATA ) >

<!ELEMENT patterns ( chars| time| date| dateTime?| decimal?| percent?| scientific? )* >

<!ELEMENT perMille ( #PCDATA ) >

<!ELEMENT percent ( #PCDATA ) >

<!ELEMENT percentSign ( #PCDATA ) >

<!ELEMENT plusSign ( #PCDATA ) >

<!ELEMENT pm ( #PCDATA ) >

<!ELEMENT scientific ( #PCDATA ) >

<!ELEMENT script ( #PCDATA ) >
<!ATTLIST script id NMTOKEN #REQUIRED >

<!ELEMENT scripts ( script+ ) >

<!ELEMENT short ( #PCDATA | daylight | generic | standard )* >

<!ELEMENT shortNo ( #PCDATA ) >

<!ELEMENT shortYes ( #PCDATA ) >

<!ELEMENT standard ( #PCDATA ) >

<!ELEMENT symbol ( #PCDATA ) >

<!ELEMENT symbols ( decimal, group, list, percentSign, nativeZeroDigit, patternDigit, plusSign, minusSign, exponential, perMille, infinity, nan )* >

<!ELEMENT time ( #PCDATA | full | long | medium | short )* >

<!ELEMENT timeZoneNames ( zone+ ) >

<!ELEMENT variant ( #PCDATA ) >
<!ATTLIST variant id NMTOKEN #REQUIRED >

<!ELEMENT variants ( variant ) >

<!ELEMENT version ( #PCDATA ) >
<!ATTLIST version date CDATA #IMPLIED>
<!ATTLIST version number NMTOKEN #REQUIRED >

<!ELEMENT versioning ( version+ ) >

<!ELEMENT week ( minDays, firstDay, weekendStart, weekendEnd ) >

<!ELEMENT weekendEnd ( day, time ) >

<!ELEMENT weekendStart ( day, time ) >

<!ELEMENT word ( #PCDATA ) >
<!ATTLIST word class NMTOKEN #REQUIRED >

<!ELEMENT Line ( #PCDATA ) >
<!ATTLIST Line class NMTOKEN #REQUIRED >

<!ELEMENT Sentence ( #PCDATA ) >
<!ATTLIST Sentence class NMTOKEN #REQUIRED >

<!ELEMENT yes ( #PCDATA ) >

<!ELEMENT zone ( city | long | short )* >
<!ATTLIST zone default NMTOKEN #IMPLIED >
<!ATTLIST zone id CDATA #REQUIRED >



=== Added File Zope3/src/zope/i18n/tests/xmllocales/de.xml ===
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE localeData SYSTEM "./LocaleElements.dtd" >

<!-- 
	Copyright (C) 2000-2003, International Business Machines 
	Corporation and others.  All Rights Reserved.
 -->

<localeData>
	<versioning  >
 		<version number="1.0" date="Tue Jun 11 15:06:08 2002">Various notes and changes in version 1.0</version>
	</versioning  >
 	<identity  >
		<correspondsTo vendor="0007">Windows</correspondsTo>
	</identity  >

	<displayNames >
		<languages >
			<language id="ab" >Abchasisch</language>
			<language id="am" >Amharisch</language>
			<language id="ar" >Arabisch</language>
			<language id="az" >Aserbaidschanisch</language>
			<language id="be" >Weißrussisch</language>
			<language id="bg" >Bulgarisch</language>
			<language id="bn" >Bengalisch</language>
			<language id="bo" >Tibetisch</language>
			<language id="br" >Bretonisch</language>
			<language id="ca" >Katalanisch</language>
			<language id="co" >Korsisch</language>
			<language id="cs" >Tschechisch</language>
			<language id="cy" >Walisisch</language>
			<language id="da" >Dänisch</language>
			<language id="de" >Deutsch</language>
			<language id="dz" >Bhutanisch</language>
			<language id="el" >Griechisch</language>
			<language id="en" >Englisch</language>
			<language id="es" >Spanisch</language>
			<language id="et" >Estnisch</language>
			<language id="eu" >Baskisch</language>
			<language id="fa" >Persisch</language>
			<language id="fi" >Finnisch</language>
			<language id="fj" >Fidschianisch</language>
			<language id="fo" >Färöisch</language>
			<language id="fr" >Französisch</language>
			<language id="fy" >Frisisch</language>
			<language id="ga" >Irisch</language>
			<language id="gd" >Schottisch-Gälisch</language>
			<language id="gl" >Galizisch</language>
			<language id="he" >Hebräisch</language>
			<language id="hr" >Kroatisch</language>
			<language id="hu" >Ungarisch</language>
			<language id="hy" >Armenisch</language>
			<language id="id" >Indonesisch</language>
			<language id="is" >Isländisch</language>
			<language id="it" >Italienisch</language>
			<language id="ja" >Japanisch</language>
			<language id="jw" >Javanesisch</language>
			<language id="ka" >Georgisch</language>
			<language id="kk" >Kasachisch</language>
			<language id="kl" >Grönländisch</language>
			<language id="km" >Kkambodschanisch</language>
			<language id="ko" >Koreanisch</language>
			<language id="ks" >Kaschmirisch</language>
			<language id="ku" >Kurdisch</language>
			<language id="ky" >Kirgisisch</language>
			<language id="la" >Latein</language>
			<language id="lt" >Litauisch</language>
			<language id="lv" >Lettisch</language>
			<language id="mk" >Mazedonisch</language>
			<language id="mn" >Mongolisch</language>
			<language id="mo" >Moldawisch</language>
			<language id="mt" >Maltesisch</language>
			<language id="my" >Burmesisch</language>
			<language id="na" >Nauruisch</language>
			<language id="nb" >Norwegisch Bokmål</language>
			<language id="ne" >Nepalesisch</language>
			<language id="nl" >Holländisch</language>
			<language id="nn" >Norwegisch Nynorsk</language>
			<language id="no" >Norwegisch</language>
			<language id="pl" >Polnisch</language>
			<language id="pt" >Portugiesisch</language>
			<language id="rm" >Rätoromanisch</language>
			<language id="ro" >Rumänisch</language>
			<language id="ru" >Russisch</language>
			<language id="sh" >Serbo-Kroatisch</language>
			<language id="sk" >Slowakisch</language>
			<language id="sl" >Slowenisch</language>
			<language id="sm" >Samoanisch</language>
			<language id="so" >Somalisch</language>
			<language id="sq" >Albanisch</language>
			<language id="sr" >Serbisch</language>
			<language id="sv" >Schwedisch</language>
			<language id="tg" >Tadschikisch</language>
			<language id="tk" >Türkmenisch</language>
			<language id="tr" >Türkisch</language>
			<language id="uk" >Ukrainisch</language>
			<language id="uz" >Usbekisch</language>
			<language id="vi" >Vietnamesisch</language>
			<language id="vo" >Volapük</language>
			<language id="yi" >Jiddisch</language>
			<language id="zh" >Chinesisch</language>
		</languages >
		<countries  >
			<country id="AE">Vereinigte Arabische Emirate</country>
			<country id="AG">Antigua und Barbuda</country>
			<country id="AL">Albanien</country>
			<country id="AM">Armenien</country>
			<country id="AN">Niederländische Antillen</country>
			<country id="AQ">Antarktis</country>
			<country id="AR">Argentinien</country>
			<country id="AS">Amerikanisch-Samoa</country>
			<country id="AT">Österreich</country>
			<country id="AU">Australien</country>
			<country id="AZ">Aserbaidschan</country>
			<country id="BA">Bosnien und Herzegowina</country>
			<country id="BD">Bangladesch</country>
			<country id="BE">Belgien</country>
			<country id="BG">Bulgarien</country>
			<country id="BN">Brunei Darussalam</country>
			<country id="BO">Bolivien</country>
			<country id="BR">Brasilien</country>
			<country id="BV">Bouvetinsel</country>
			<country id="BW">Botsuana</country>
			<country id="CA">Kanada</country>
			<country id="CC">Kokosinseln</country>
			<country id="CD">Demokratische Republik Kongo</country>
			<country id="CF">Zentralafrikanische Republik</country>
			<country id="CG">Kongo</country>
			<country id="CH">Schweiz</country>
			<country id="CI">Côte d’Ivoire</country>
			<country id="CK">Cookinseln</country>
			<country id="CM">Kamerun</country>
			<country id="CO">Kolumbien</country>
			<country id="CU">Kuba</country>
			<country id="CV">Kap Verde</country>
			<country id="CX">Weihnachtsinsel</country>
			<country id="CY">Zypern</country>
			<country id="CZ">Tschechien</country>
			<country id="DE">Deutschland</country>
			<country id="DJ">Dschibuti</country>
			<country id="DK">Dänemark</country>
			<country id="DO">Dominikanische Republik</country>
			<country id="DZ">Algerien</country>
			<country id="EE">Estland</country>
			<country id="EG">Ägypten</country>
			<country id="ES">Spanien</country>
			<country id="ET">Äthiopien</country>
			<country id="FI">Finnland</country>
			<country id="FJ">Fidschi</country>
			<country id="FK">Falklandinseln</country>
			<country id="FM">Mikronesien</country>
			<country id="FO">Färöer</country>
			<country id="FR">Frankreich</country>
			<country id="GA">Gabun</country>
			<country id="GB">Vereinigtes Königreich</country>
			<country id="GE">Georgien</country>
			<country id="GF">Französisch-Guayana</country>
			<country id="GL">Grönland</country>
			<country id="GQ">Äquatorialguinea</country>
			<country id="GR">Griechenland</country>
			<country id="GS">Südgeorgien und die Südlichen Sandwichinseln</country>
			<country id="HM">Heard und McDonaldinseln</country>
			<country id="HR">Kroatien</country>
			<country id="HU">Ungarn</country>
			<country id="ID">Indonesien</country>
			<country id="IE">Irland</country>
			<country id="IN">Indien</country>
			<country id="IO">Britisches Territorium im Indischen Ozean</country>
			<country id="IQ">Irak</country>
			<country id="IS">Island</country>
			<country id="IT">Italien</country>
			<country id="JM">Jamaika</country>
			<country id="JO">Jordanien</country>
			<country id="KE">Kenia</country>
			<country id="KG">Kirgisistan</country>
			<country id="KH">Kambodscha</country>
			<country id="KM">Komoren</country>
			<country id="KN">St. Kitts und Nevis</country>
			<country id="KP">Demokratische Volksrepublik Korea</country>
			<country id="KR">Republik Korea</country>
			<country id="KY">Kaimaninseln</country>
			<country id="KZ">Kasachstan</country>
			<country id="LB">Libanon</country>
			<country id="LC">St. Lucia</country>
			<country id="LT">Litauen</country>
			<country id="LU">Luxemburg</country>
			<country id="LV">Lettland</country>
			<country id="LY">Libyen</country>
			<country id="MA">Marokko</country>
			<country id="MD">Moldawien</country>
			<country id="MG">Madagaskar</country>
			<country id="MH">Marshallinseln</country>
			<country id="MK">Mazedonien</country>
			<country id="MN">Mongolei</country>
			<country id="MO">Macau S.A.R.,China</country>
			<country id="MP">Nördliche Marianen</country>
			<country id="MR">Mauretanien</country>
			<country id="MV">Malediven</country>
			<country id="MX">Mexiko</country>
			<country id="MZ">Mosambik</country>
			<country id="NC">Neukaledonien</country>
			<country id="NF">Norfolkinsel</country>
			<country id="NL">Niederlande</country>
			<country id="NO">Norwegen</country>
			<country id="NZ">Neuseeland</country>
			<country id="PF">Französisch-Polynesien</country>
			<country id="PG">Papua-Neuguinea</country>
			<country id="PH">Philippinen</country>
			<country id="PL">Polen</country>
			<country id="PM">St. Pierre und Miquelon</country>
			<country id="QA">Katar</country>
			<country id="RO">Rumänien</country>
			<country id="RU">Russland</country>
			<country id="RW">Ruanda</country>
			<country id="SA">Saudi-Arabien</country>
			<country id="SB">Salomonen</country>
			<country id="SC">Seychellen</country>
			<country id="SE">Schweden</country>
			<country id="SG">Singapur</country>
			<country id="SH">St. Helena</country>
			<country id="SI">Slowenien</country>
			<country id="SJ">Svalbard und Jan Mayen</country>
			<country id="SK">Slowakei</country>
			<country id="SP">Serbien</country>
			<country id="ST">São Tomé und Príncipe</country>
			<country id="SY">Syrien</country>
			<country id="SZ">Swasiland</country>
			<country id="TC">Turks- und Caicosinseln</country>
			<country id="TD">Tschad</country>
			<country id="TF">Französische Süd- und Antarktisgebiete</country>
			<country id="TJ">Tadschikistan</country>
			<country id="TN">Tunesien</country>
			<country id="TR">Türkei</country>
			<country id="TT">Trinidad und Tobago</country>
			<country id="TZ">Tansania</country>
			<country id="UM">Amerikanisch-Ozeanien</country>
			<country id="US">Vereinigte Staaten</country>
			<country id="UZ">Usbekistan</country>
			<country id="VA">Vatikanstadt</country>
			<country id="VC">St. Vincent und die Grenadinen</country>
			<country id="VG">Britische Jungferninseln</country>
			<country id="VI">Amerikanische Jungferninseln</country>
			<country id="WF">Wallis und Futuna</country>
			<country id="YE">Jemen</country>
			<country id="YU">Jugoslawien</country>
			<country id="ZA">Südafrika</country>
			<country id="ZM">Sambia</country>
			<country id="ZW">Simbabwe</country>
		</countries  >

	</displayNames >
	<timeZoneNames>
		<zone id="Europe/Berlin" default="true">
			<long>
				<generic>Mitteleuropäische Zeit</generic>
				<standard>Mitteleuropäische Sommerzeit</standard>
				<daylight>Berlin</daylight>
			</long>
			<short>
				<generic>Europe/Berlin</generic>
				<standard>MEZ</standard>
				<daylight>MESZ</daylight>
			</short>
			<city>Berlin</city>
		</zone>
	</timeZoneNames>
	<calendars>
		<calendar class="gregorian" default="true">
			<monthNames>
				<month id="1">Januar</month>
				<month id="2">Februar</month>
				<month id="3">März</month>
				<month id="4">April</month>
				<month id="5">Mai</month>
				<month id="6">Juni</month>
				<month id="7">Juli</month>
				<month id="8">August</month>
				<month id="9">September</month>
				<month id="10">Oktober</month>
				<month id="11">November</month>
				<month id="12">Dezember</month>
			</monthNames>
			<monthAbbr>
				<month id="1">Jan</month>
				<month id="2">Feb</month>
				<month id="3">Mrz</month>
				<month id="4">Apr</month>
				<month id="5">Mai</month>
				<month id="6">Jun</month>
				<month id="7">Jul</month>
				<month id="8">Aug</month>
				<month id="9">Sep</month>
				<month id="10">Okt</month>
				<month id="11">Nov</month>
				<month id="12">Dez</month>
			</monthAbbr>
			<dayNames>
				<day id="1">Sonntag </day>
				<day id="2">Montag </day>
				<day id="3">Dienstag </day>
				<day id="4">Mittwoch </day>
				<day id="5">Donnerstag </day>
				<day id="6">Freitag </day>
				<day id="7">Samstag </day>
			</dayNames>
			<dayAbbr>
				<day id="1">So </day>
				<day id="2">Mo </day>
				<day id="3">Di </day>
				<day id="4">Mi </day>
				<day id="5">Do </day>
				<day id="6">Fr </day>
				<day id="7">Sa </day>
			</dayAbbr>
			<eras>
				<era id="0">v. Chr.</era>
				<era id="1">n. Chr.</era>
			</eras>
			<am>vorm.</am><pm>nachm.</pm>
			<patterns> 
				<chars>GjMtkHmsSEDFwWahKzJe</chars>
				<time>
					<full>H:mm' Uhr 'z</full>
					<long>HH:mm:ss z</long>
					<medium>HH:mm:ss</medium>
					<short>HH:mm</short>
				</time>
				<date>
					<full>EEEE, d. MMMM yyyy</full>
					<long>d. MMMM yyyy</long>
					<medium>dd.MM.yyyy</medium>
					<short>dd.MM.yy</short>
				</date>
 				<dateTime>{1} {0} </dateTime>
			</patterns>
		</calendar>
	</calendars>

</localeData>


=== Added File Zope3/src/zope/i18n/tests/xmllocales/de_DE.xml ===
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE localeData SYSTEM "./LocaleElements.dtd" >

<!-- 
	Copyright (C) 2000-2003, International Business Machines 
	Corporation and others.  All Rights Reserved.
 -->

<localeData>
	<versioning  >
 		<version number="1.0" date="Tue Jun 11 15:06:08 2002">Various notes and changes in version 1.0</version>
	</versioning  >
 	<identity  >
		<country id="DE" />
		<correspondsTo vendor="0407">Windows</correspondsTo>
	</identity  >
	<numberFormat class="decimal" default="true"> 
		<patterns> 
			<decimal>#,##0.###;-#,##0.###</decimal>
			<percent>#,##0%</percent>
			<scientific>#E0</scientific>
		</patterns>
	</numberFormat> 
	<currencies>
		<currency id="EUR" default="true">
			<symbol>€</symbol>
			<name>EUR</name>
			<decimal>,</decimal>
		</currency>
	</currencies>

</localeData>


=== Added File Zope3/src/zope/i18n/tests/xmllocales/de_DE_PREEURO.xml ===
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE localeData SYSTEM "./LocaleElements.dtd" >

<!-- 
	Copyright (C) 2000-2003, International Business Machines 
	Corporation and others.  All Rights Reserved.
 -->

<localeData>
	<versioning  >
 		<version number="1.0" date="Tue Jun 11 15:06:08 2002">Various notes and changes in version 1.0</version>
	</versioning  >
 	<identity  >
		<country id="DE" />
		<variant id="PREEURO" />
		<correspondsTo vendor="0407">Windows</correspondsTo>
	</identity  >
	<numberFormat class="decimal" default="true"> 
		<patterns> 
			<decimal>#,##0.###;-#,##0.###</decimal>
			<percent>#,##0%</percent>
			<scientific>#E0</scientific>
		</patterns>
	</numberFormat> 
	<currencies>
		<currency id="DEM" default="true">
			<symbol>DM</symbol>
			<name>DEM</name>
			<decimal>,</decimal>
		</currency>
	</currencies>

</localeData>


=== Added File Zope3/src/zope/i18n/tests/xmllocales/root.xml === (826/926 lines abridged)
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE localeData SYSTEM "./LocaleElements.dtd" >

<!-- 
	Copyright (C) 2000-2003, International Business Machines 
	Corporation and others.  All Rights Reserved.
 -->

<localeData>
	<versioning  >
 		<version number="1.0" date="Tue Jun 11 15:06:30 2002">Various notes and changes in version 1.0</version>
	</versioning  >
 	<identity  >
		<correspondsTo vendor="0000">Windows</correspondsTo>
	</identity  >

	<displayNames >
		<languages >
			<language id="aa" >Afar</language>
			<language id="ab" >Abkhazian</language>
			<language id="ace" >Achinese</language>
			<language id="ach" >Acoli</language>
			<language id="ada" >Adangme</language>
			<language id="ae" >Avestan</language>
			<language id="af" >Afrikaans</language>
			<language id="afa" >Afro-Asiatic (Other)</language>
			<language id="afh" >Afrihili</language>
			<language id="aka" >Akan</language>
			<language id="akk" >Akkadien</language>
			<language id="ale" >Aleut</language>
			<language id="alg" >Algonquian Languages</language>
			<language id="am" >Amharic</language>
			<language id="ang" >English, Old (ca.450-1100)</language>
			<language id="apa" >Apache Languages</language>
			<language id="ar" >Arabic</language>
			<language id="arc" >Aramaic</language>
			<language id="arn" >Araucanian</language>
			<language id="arp" >Arapaho</language>
			<language id="art" >Artificial (Other)</language>
			<language id="arw" >Arawak</language>
			<language id="as" >Assamese</language>
			<language id="ath" >Athapaskan Languages</language>
			<language id="aus" >Australian Languages</language>
			<language id="ava" >Avaric</language>
			<language id="awa" >Awadhi</language>
			<language id="ay" >Aymara</language>
			<language id="az" >Azerbaijani</language>
			<language id="ba" >Bashkir</language>
			<language id="bad" >Banda</language>

[-=- -=- -=- 826 lines omitted -=- -=- -=-]

					<long>h:mm:ss a z</long>
					<medium>h:mm:ss a</medium>
					<short>h:mm a</short>
				</time>
				<date>
					<full>EEEE, MMMM d, yyyy</full>
					<long>MMMM d, yyyy</long>
					<medium>MMM d, yyyy</medium>
					<short>M/d/yy</short>
				</date>
 				<dateTime>{1} {0} </dateTime>
			</patterns>
		</calendar>
	</calendars>
	<numberFormat class="decimal" default="true"> 
		<patterns> 
			<decimal>#,##0.###;-#,##0.###</decimal>
			<percent>#,##0%</percent>
			<scientific>#E0</scientific>
		</patterns>
		<symbols>
			<decimal>.</decimal>
			<group>,</group>
			<list>;</list>
			<percentSign>%</percentSign>
			<nativeZeroDigit>0</nativeZeroDigit>
			<patternDigit>#</patternDigit>
			<plusSign>+</plusSign>
			<minusSign>-</minusSign>
			<exponential>E</exponential>
			<perMille>‰</perMille>
			<infinity>∞</infinity>
			<nan>�</nan>
		</symbols>
	</numberFormat> 
	<currencies>
		<currency id="XXX" default="true">
			<symbol>¤</symbol>
			<name>XXX</name>
			<decimal>.</decimal>
			<pattern>¤ #,##0.00;-¤ #,##0.00</pattern>
		</currency>
	</currencies>
	<TransliteratorNamePattern>{0,choice,0#|1#{1}|2#{1}-{2}} </TransliteratorNamePattern> 
<collation version="x0.0" accentOrder="FORWARD" override="FALSE">
	<collationElements>
	</collationElements>
</collation>

</localeData>