texlive[43405] Master/texmf-dist: phonenumbers (5mar17)

commits+karl at tug.org commits+karl at tug.org
Sun Mar 5 22:39:00 CET 2017


Revision: 43405
          http://tug.org/svn/texlive?view=revision&revision=43405
Author:   karl
Date:     2017-03-05 22:39:00 +0100 (Sun, 05 Mar 2017)
Log Message:
-----------
phonenumbers (5mar17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/phonenumbers/Literatur.bib
    trunk/Master/texmf-dist/doc/latex/phonenumbers/README
    trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.pdf
    trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.tex
    trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.pdf
    trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.tex
    trunk/Master/texmf-dist/tex/latex/phonenumbers/DE_Ortsnamen.tex
    trunk/Master/texmf-dist/tex/latex/phonenumbers/US_Ortsnamen.tex
    trunk/Master/texmf-dist/tex/latex/phonenumbers/US_Vorwahlen.tex
    trunk/Master/texmf-dist/tex/latex/phonenumbers/phonenumbers.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/phonenumbers/Landeskennzahlen.tex

Added: trunk/Master/texmf-dist/doc/latex/phonenumbers/Landeskennzahlen.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phonenumbers/Landeskennzahlen.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/phonenumbers/Landeskennzahlen.tex	2017-03-05 21:39:00 UTC (rev 43405)
@@ -0,0 +1,219 @@
+% phonenumbers package: country codes
+% Datum: 5. März 2017
+\clist_const:Nn \c_phone_landeskennzahlenliste_clist {1,
+20,
+211,
+212,
+213,
+216,
+218,
+220,
+221,
+222,
+223,
+224,
+225,
+226,
+227,
+228,
+229,
+230,
+231,
+232,
+233,
+234,
+235,
+236,
+237,
+238,
+239,
+240,
+241,
+242,
+243,
+244,
+245,
+246,
+247,
+248,
+249,
+250,
+251,
+252,
+253,
+254,
+255,
+256,
+257,
+258,
+260,
+261,
+262,
+263,
+264,
+265,
+266,
+267,
+268,
+269,
+27,
+290,
+291,
+297,
+298,
+299,
+30,
+31,
+32,
+33,
+34,
+350,
+351,
+352,
+353,
+354,
+355,
+356,
+357,
+358,
+359,
+36,
+370,
+371,
+372,
+373,
+374,
+375,
+376,
+377,
+378,
+379,
+380,
+381,
+382,
+383,
+385,
+386,
+387,
+388,
+389,
+39,
+40,
+41,
+420,
+421,
+423,
+43,
+44,
+45,
+46,
+47,
+48,
+49,
+500,
+501,
+502,
+503,
+504,
+505,
+506,
+507,
+508,
+509,
+51,
+52,
+53,
+54,
+55,
+56,
+57,
+58,
+590,
+591,
+592,
+593,
+594,
+595,
+596,
+597,
+598,
+599,
+60,
+61,
+62,
+63,
+64,
+65,
+66,
+670,
+672,
+673,
+674,
+675,
+676,
+677,
+678,
+679,
+680,
+681,
+682,
+683,
+685,
+686,
+687,
+688,
+689,
+690,
+691,
+692,
+7,
+800,
+808,
+81,
+82,
+84,
+850,
+852,
+853,
+855,
+856,
+86,
+870,
+878,
+880,
+881,
+882,
+883,
+886,
+888,
+90,
+91,
+92,
+93,
+94,
+95,
+960,
+961,
+962,
+963,
+964,
+965,
+966,
+967,
+968,
+971,
+972,
+973,
+974,
+975,
+976,
+977,
+979,
+98,
+991,
+992,
+993,
+994,
+995,
+996,
+998}

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/Literatur.bib
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phonenumbers/Literatur.bib	2017-03-05 21:38:33 UTC (rev 43404)
+++ trunk/Master/texmf-dist/doc/latex/phonenumbers/Literatur.bib	2017-03-05 21:39:00 UTC (rev 43405)
@@ -1,5 +1,5 @@
 % phonenumbers package: references
-% Datum: 6. November 2016
+% Datum: 5. März 2017
 @book{duden,
 	title = {Duden},
 	subtitle = {Die deutsche Rechtschreibung},
@@ -70,8 +70,8 @@
 	title = {North American Numbering Plan},
 	booktitle = {Wikipedia},
 	booksubtitle = {The Free Encyclopedia},
-	date = {2016-11-05},
-	url = {https://en.wikipedia.org/wiki/North_American_Numbering_Plan},
+	date = {2017-02-15},
+	url = {https://en.wikipedia.org/w/index.php?title=North_American_Numbering_Plan&direction=next&oldid=765660826},
 }
 
 @inreference{wikipedia-conventions,
@@ -78,8 +78,8 @@
 	title = {National conventions for writing telephone numbers},
 	booktitle = {Wikipedia},
 	booksubtitle = {The Free Encyclopedia},
-	date = {2016-10-13},
-	url = {https://en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers},
+	date = {2017-02-05},
+	url = {https://en.wikipedia.org/w/index.php?title=National_conventions_for_writing_telephone_numbers&oldid=763891626},
 }
 
 @online{NANPA-geographic,
@@ -86,7 +86,7 @@
 	author = {{North American Numbering Plan Association}},
 	title = {Geographic NPAs in Service Sorted by Number},
 	url = {https://www.nationalnanpa.com/enas/geoAreaCodeNumberReport.do},
-	urldate = {2016-10-28}
+	urldate = {2017-02-19}
 }
 
 @online{NANPA-non-geographic,
@@ -93,14 +93,21 @@
 	author = {{North American Numbering Plan Association}},
 	title = {Non-Geographic NPAs in Service},
 	url = {https://www.nationalnanpa.com/enas/nonGeoNpaServiceReport.do},
-	urldate = {2016-10-28}
+	urldate = {2017-02-19}
 }
 
+ at online{NANPA-ten-years,
+	author = {{North American Numbering Plan Association}},
+	title = {NPAs Introduced over the Last 10 Years},
+	url = {https://www.nationalnanpa.com/enas/npasOverLast10YearsReport.do},
+	urldate = {2017-02-19}
+}
+
 @online{NANPA-not-yet,
 	author = {{North American Numbering Plan Association}},
 	title = {Planned NPAs Not Yet in Service},
 	url = {https://www.nationalnanpa.com/enas/plannedNpasNotInServiceReport.do},
-	urldate = {2016-10-28}
+	urldate = {2017-02-19}
 }
 
 @online{NANPA-ten-digit,
@@ -107,7 +114,7 @@
 	author = {{North American Numbering Plan Association}},
 	title = {Area Codes Requiring 10 Digit Dialing},
 	url = {https://www.nationalnanpa.com/enas/npasRequiring10DigitReport.do},
-	urldate = {2016-10-28}
+	urldate = {2017-02-19}
 }
 
 @package{hyperref,
@@ -116,3 +123,10 @@
 	version = {6.83},
 	url = {http://ctan.org/pkg/hyperref}
 }
+
+ at online{ITU,
+	author = {\DeEn{Internationale Fernmeldeunion}{International Telecommunication Union}},
+	title = {List of Recommendation ITU-T E.164 assigned country codes},
+	date = {2016-12-15},
+	url = {https://www.itu.int/dms_pub/itu-t/opb/sp/T-SP-E.164D-2016-PDF-E.pdf}
+}

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phonenumbers/README	2017-03-05 21:38:33 UTC (rev 43404)
+++ trunk/Master/texmf-dist/doc/latex/phonenumbers/README	2017-03-05 21:39:00 UTC (rev 43405)
@@ -1,14 +1,16 @@
 The phonenumbers package makes it possible to typeset telephone numbers
 according to different national conventions. Currently, German, French, and
-North American phone numbers are supported. The user can select from various
-formatting options, including the additional output of the country calling
-code. The package is able to check if a phone number is valid according to the
-national rules. It also allows to link phone numbers using the hyperref
-package.
+North American phone numbers are supported. Phone numbers from other countries
+are supported rudimentarily.
 
+The user can select from various formatting options, including the additional
+output of the country calling code. The package is able to check if a phone
+number is valid according to the national rules. It also allows to link phone
+numbers using the hyperref package.
+
 Package author: Keno Wehr
-Version: 1.1.1
-Date: November 13th, 2016
+Version: 1.2
+Date: March 5th, 2017
 
 The phonenumbers package is subject to the LaTeX Project Public License,
 version 1.3 or later.

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.tex	2017-03-05 21:38:33 UTC (rev 43404)
+++ trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.tex	2017-03-05 21:39:00 UTC (rev 43405)
@@ -1,6 +1,6 @@
 % phonenumbers package: German manual
-% Version: 1.1.1
-% Datum: 13. November 2016
+% Version: 1.2
+% Datum: 5. März 2017
 \documentclass{cnltx-doc}
 \usepackage[T1]{fontenc}
 \usepackage[utf8]{inputenc}
@@ -15,6 +15,8 @@
 
 \KOMAoption{numbers}{noendperiod}
 
+\AtBeginDocument{\enlargethispage{7mm}}
+
 \addbibresource{Literatur.bib}
 
 \renewcommand{\labelnamepunct}{\addcolon\space}
@@ -42,6 +44,8 @@
 
 \newcommand*{\sieheAbschnitt}[1]{(\DeEn{siehe Abschnitt}{see section} \ref{#1})}
 
+\newcommand*{\vglAnhang}[1]{(\cf\ \DeEn{Anhang}{appendix}~\ref{#1})}
+
 \newcommand*{\Quelle}{\emph{\DeEn{Quelle: }{Source: }}}
 
 \newcommand*{\Quellen}{\emph{\DeEn{Quellen: }{Sources: }}}
@@ -54,13 +58,13 @@
 
 \setcnltx{
 	package = phonenumbers,
-	version = Version 1.1.1,
-	date = \DeEn{13. November 2016}{November 13th, 2016},
+	version = Version 1.2,
+	date = \DeEn{5. März 2017}{March 5th, 2017},
 	authors = Keno Wehr,
 	email = keno.wehr at uni-oldenburg.de,
 	info = \DeEn{Setzen von Telefonnummern mit \LaTeX}{Typesetting telephone numbers with \LaTeX},
 	add-cmds = {setphonenumbers,phonenumber,href},
-	abstract = \DeEn{Dieses Paket ermöglicht es, Telefonnummern unterschiedlichen nationalen Konventionen entsprechend zu setzen. Zur Zeit werden deutsche, französische und nordamerikanische Telefonnummern unterstützt.}{This package makes it possible to typeset telephone numbers according to different national conventions. Currently, German, French, and North American phone numbers are supported.},
+	abstract = \DeEn{Dieses Paket ermöglicht es, Telefonnummern unterschiedlichen nationalen Konventionen entsprechend zu setzen und bei Bedarf auch zu verlinken. Zur Zeit werden deutsche, französische und nordamerikanische Telefonnummern unterstützt. Nummern aus anderen Ländern werden rudimentär unterstützt.}{This package makes it possible to typeset telephone numbers according to different national conventions and to link them when required. Currently, German, French, and North American phone numbers are supported. Phone numbers from other countries are supported rudimentarily.},
 	color-scheme = phonecolor,
 	add-listings-options = {numbers=none},
 	pre-output = {\raggedright}
@@ -68,6 +72,10 @@
 
 \newpackagename{\phone}{phonenumbers}
 \newpackagename{\hyper}{hyperref}
+\newpackagename{\ltxcmds}{ltxcmds}
+\newpackagename{\expl}{expl3}
+\newpackagename{\xparse}{xparse}
+\newpackagename{\keys}{l3keys2e}
 
 \makeatletter
 \setlength{\cnltx at before@skip}{5pt plus1pt minus1pt}
@@ -121,6 +129,15 @@
   \phonenumber[country=US,foreign]{2125550123}
 \end{sidebyside}
 
+\subsection{\DeEn{Andere Länder}{Other Countries}}
+\begin{sidebyside}
+  \phonenumber{+3905523776} % 39=IT
+\end{sidebyside}
+
+\begin{sidebyside}
+  \phonenumber{+35923456789} % 359=BG
+\end{sidebyside}
+
 \section{\DeEn{Allgemeine Prinzipien}{General Principles}}
 \subsection{\DeEn{Grundideen des Pakets}{Basic Ideas of the Package}}
 \DeEn{Das Ziel des Pakets \phone\ ist es, das Setzen von Telefonnummern zu ermöglichen, ohne dass der Anwender den internen Aufbau der Nummer oder die nationalen typographischen Konventionen für den Telefonnummernsatz kennen muss.}
@@ -154,9 +171,23 @@
 {Sets the \meta{options} globally for all following phone numbers not having contradictory options of their own. Can be used in the preamble or in the document body.}
 
 \command{phonenumber}[\oarg{\DeEn{Optionen}{options}}\marg{\DeEn{Nummer}{number}}\oarg{\DeEn{Durchwahl\kern1pt}{extension}}]
-\DeEn{Setzt eine Telefonnummer. Die \meta{Nummer} darf dabei nur aus Ziffern und Leerzeichen bestehen; Leerzeichen werden ignoriert. Bei deutschen Telefonnummern kann außerdem eine \meta{Durchwahl\kern1pt} angegeben werden, die an die Nummer angehängt wird. Die \meta{Optionen} gelten nur für diese Telefonnummer.}
-{Typesets a telephone number. The \meta{number} has to consist of digits and spaces only; the spaces will be ignored. For German phone numbers an \meta{extension} can be given additionally, since extensions are often highlighted in German typography. The \meta{options} are only valid for this phone number.}
+\DeEn{Setzt eine Telefonnummer. Die \meta{Optionen} gelten nur für diese Telefonnummer.}{Typesets a telephone number. The \meta{options} are valid only for this phone number.}
 
+\DeEn{Die \meta{Nummer} kann im lokalen oder im internationalen Format eingegeben werden. Das lokale Format ist nur für unterstützte Länder möglich; das zugehörige Land ist durch die Option}{The \meta{number} can be input in the local or in the international format. The local format is possible for supported countries only; the country has to be set by the}
+\option{country} 
+\DeEn{festzulegen}{option}
+\vglAbschnitt{optionen}.
+\DeEn{Das internationale Format beginnt stets mit}{The international format always begins with}
+\code{+}
+\DeEn{gefolgt von der Landeskennzahl}{followed by the country code}
+\vglAnhang{landeskennzahlen}.
+
+\DeEn{Abgesehen von einem führenden Pluszeichen darf die \meta{Nummer} nur aus Ziffern und Leerzeichen bestehen; Leerzeichen werden ignoriert.}{Apart from a leading plus sign the \meta{number} has to consist of digits and spaces only; the spaces will be ignored.}
+
+\DeEn{Bei deutschen Telefonnummern kann außerdem eine \meta{Durchwahl\kern1pt} angegeben werden, die an die Nummer angehängt wird.}{For German phone numbers an \meta{extension} can be given additionally, since extensions are often highlighted in German typography.}
+
+\DeEn{Nummern aus unterstützten Ländern werden den nationalen Konventionen gemäß gesetzt. Nummern aus nicht unterstützten Ländern werden in der Ausgabe lediglich durch ein Leerzeichen nach der Auslandsvorwahl gegliedert.}{Numbers from supported countries are typeset according to the national conventions. Numbers from unsupported countries are structured only by a space after the country calling code.}
+
 \command{AreaCodesGeographic}[\oarg{\DeEn{Optionen}{options}}]
 \DeEn{Gibt eine Liste der Orts- bzw. Regionalvorwahlen für das global eingestellte oder durch eine lokale Option angegebene Land aus.}
 {Typesets a list of geographic area codes for the country set globally or by a local option.}
@@ -164,10 +195,15 @@
 \command{AreaCodesNonGeographic}[\oarg{\DeEn{Optionen}{options}}]
 \DeEn{Gibt eine Liste der Vorwahlen ohne geographischen Bezug (Mobilfunk- und Sondervorwahlen) für das gewählte Land aus.}
 {Typesets a list of non-geographic area codes (area codes for mobile phones and for other special purposes) for the selected country.}
+
+\command{CountryCodes}
+\DeEn{Gibt eine Liste der gültigen Landeskennzahlen aus.}{Typesets a list of valid country codes.}
 \end{commands}
 
-\subsection{\DeEn{Verlinkung von Telefonnummern}{Linking of Phone Numbers}} \label{verlinkung}
-\DeEn{Auf modernen Geräten mit Telefoniefähigkeiten können Links auf Telefonnummern verwendet werden, um die Nummern anzurufen, ohne sie eintippen zu müssen. Das Paket \phone\ erzeugt solche Links, sofern das Paket \hyper\ \cite{hyperref} zusätzlich geladen wird.}{On modern devices with telephony capabilities links on phone numbers can be used to call a number without having it to type in. The \phone\ package generates such links if the \hyper\ package is loadad additionally.}
+\DeEn{\subsection[Verlinkung von Nummern]{Verlinkung von Telefonnummern}}{\subsection{Linking of Phone Numbers}} \label{verlinkung}
+\DeEn{Auf modernen Geräten mit Telefoniefähigkeiten können Links auf Telefonnummern verwendet werden, um die Nummern anzurufen, ohne sie eintippen zu müssen. Das Paket \phone\ erzeugt solche Links, sofern das Paket \hyper}{On modern devices with telephony capabilities links on phone numbers can be used to call a number without having it to type in. The \phone\ package generates such links if the \hyper\ package}
+\cite{hyperref}
+\DeEn{zusätzlich geladen wird.}{is loadad additionally.}
 
 \DeEn{Unabhängig davon, wie sie im Text erscheinen, werden die Telefonnummern unter Einschluss der Auslandsvorwahl (beginnend mit +) verlinkt, damit sie von überall aus erreichbar sind.}{Independantly of their appearing in the text the phone numbers are linked including the country calling code (beginning with +) so that they can be reached from everywhere.}
 
@@ -200,6 +236,13 @@
 \DeEn{Bitte kontaktieren Sie den Paketautor, falls Sie Unterstützung für weitere Länder benötigen.}
 {Please contact the package author if you need support for further countries.}
 
+\DeEn{Diese Option wird ignoriert, wenn die Nummer im internationalen Format eingegeben wird. In diesem Fall wird das Land durch die Landeskennzahl bestimmt.}{This option is ignored if the number is input in the international format. In this case the country is determined by the country code.}
+
+\keychoice{link}{on,off}
+\Default{on}
+\DeEn{Gibt an, ob Telefonnummern verlinkt werden sollen, falls das Paket \hyper\ geladen ist}{Specifies whether phone numbers shall be linked if the \hyper\ package is loaded}
+\vglAbschnitt{verlinkung}.
+
 \keychoice{foreign}{off,international,american,european}
 \Default{off}
 \DeEn{Gibt an, ob und in welcher Form die Auslandsvorwahl ausgegeben werden soll.}
@@ -221,25 +264,35 @@
   \phonenumber[foreign=european]{0305226789}
 \end{sidebyside}
 
-\keychoice{link}{on,off}
-\Default{on}
-\DeEn{Gibt an, ob Telefonnummern verlinkt werden sollen, falls das Paket \hyper\ geladen ist}{Specifies whether phone numbers shall be linked if the \hyper\ package is loaded}
-\vglAbschnitt{verlinkung}.
+\DeEn{Bei Nummern aus nicht unterstützten Ländern wird die Wahl}{For numbers from unsupported countries the choice}
+\code{foreign=off}
+\DeEn{wie}{is treated like}
+\code{foreign=\linebreak[0]international}\DeEn{ behandelt, \ie\ die Auslandsvorwahl wird bei solchen Nummern immer ausgegeben.}{, which means that the country calling code will always be output for these numbers.}
 
+\keychoice{home-country}{DE,FR,US,none}
+\Default{none}
+\DeEn{Legt das Heimatland fest. Für Nummern aus diesem Land wird unabhängig vom Wert der Option \option{foreign} keine Auslandsvorwahl ausgegeben.}{Sets the home country. Numbers from this country will be typeset without the country calling code independantly of the value of the \option{foreign} option.}
+\begin{sidebyside}
+  \setphonenumbers{foreign,home-country=FR}
+  \phonenumber[country=DE]{0441343396} \\
+  \phonenumber[country=FR]{0123456789} \\
+  \phonenumber[country=US]{2125550123}
+\end{sidebyside}
+
 \keychoice{home-area-code}{\meta{\DeEn{Heimatvorwahl\kern1pt}{home area code}},none}
 \Default{none}
 \DeEn{Legt die Vorwahl Ihres Heimatgebietes fest. Bei Nummern mit dieser Vorwahl wird nur die Teilnehmerrufnummer ausgegeben. Die Verlinkung}{Sets the area code of your home area. Only the subscriber number will be output for numbers with this area code. Links}
 \vglAbschnitt{verlinkung}
 \DeEn{erfolgt immer einschließlich der Vorwahl.}{will always include the area code.}
+
+\DeEn{Vor der Heimatvorwahl sollte das Heimatland mit der Option \option{home-country} festgelegt werden. Erfolgt dies nicht, so wird bei der Festlegung der Heimatvorwahl der aktuelle Wert der Option \option{country} als Heimatland gesetzt.}{The \option{home-country} option should to be set before the home area code. If this does not happen, the home country is set to the current value of the \option{country} option when you set a home area code.}
 \begin{sidebyside}
-  \setphonenumbers{country=US,home-area-code=242}
-  \phonenumber{2425550123}
+  \setphonenumbers{home-country=US,home-area-code=242,foreign}
+  \phonenumber[country=US]{2125550123} \\
+  \phonenumber[country=US]{2425550124} \\
+  \phonenumber[country=DE]{02581639737}
 \end{sidebyside}
-\begin{sidebyside}
-  \setphonenumbers{country=DE,home-area-code=02581}
-  \phonenumber{02581639737}
-\end{sidebyside}
-\DeEn{Die Angabe einer Heimatvorwahl ist nur für Gebiete zulässig, in denen die Vorwahl bei Ortsgesprächen weggelassen werden kann. Vor der Heimatvorwahl muss das Land festgelegt werden.}{Setting a home area code is allowed only for areas where the area code can be left out for local calls. The country has to be set before the home area code.}
+\DeEn{Die Angabe einer Heimatvorwahl ist nur für Gebiete zulässig, in denen die Vorwahl bei Ortsgesprächen weggelassen werden kann.}{Setting a home area code is allowed only for areas where the area code can be left out for local calls.}
 \end{options}
 
 \subsection{\UeberschriftUngueltig}
@@ -247,10 +300,10 @@
 {To ensure robustness against errors, the compilation will never be aborted with an error message if an invalid number is given to the \cs{phonenumber} command. Rather, the \phone\ package will write warnings to the log file.}
 \DeEn{Dies ist der Fall, wenn}{This will occur if}
 \begin{itemize}
-\item \DeEn{die Eingabe leer ist}{the input is empty},
-\item \DeEn{die Eingabe nicht nur Ziffern und Leerzeichen enthält}{the input contains other characters than digits and spaces},
+\item \DeEn{die Eingabe leer ist oder nicht nur Ziffern und Leerzeichen enthält (abgesehen von einem Pluszeichen am Anfang)}{the input is empty or contains other characters than digits and spaces (apart from a plus sign as first character)},
 \item \DeEn{eine Durchwahlnummer angegeben ist, obwohl es sich nicht um eine deutsche Telefonnummer handelt}{an extension is given for a non-German phone number},
-\item \DeEn{die Nummer nicht den nationalen Regeln des gewählten Landes entspricht}{the number is not in accordance with the national rules of the selected country}.
+\item \DeEn{eine im internationalen Format eingegebene Nummer nur aus einer Landesvorwahl besteht oder keine gültige Landeskennzahl enthält}{a number input in the international format consists of a country calling code only or does not contain a valid country code},
+\item \DeEn{die Nummer nicht den nationalen Regeln des gewählten Landes entspricht (nur für unterstützte Länder)}{the number is not in accordance with the national rules of the selected country (only for supported countries)}.
 \end{itemize}
 
 \section{\DeEn{Deutsche Telefonnummern}{German Phone Numbers}}
@@ -334,7 +387,6 @@
 \end{sidebyside}
 \end{options}
 
-\DeEn{\pagebreak}{}
 \subsection{\UeberschriftUngueltig}
 \WarnungWenn
 \begin{itemize}
@@ -367,7 +419,7 @@
 \item \DeEn{eine Dialer-Nummer (Vorwahl 0\,90\,09) nicht genau 12 Stellen hat}{a dialer number (area code 0\,90\,09) does not have exactly 12 digits} \cite[78]{BNA-konzept}.
 \end{itemize}
 
-\DeEn{}{\newpage}
+\newpage
 \section{\DeEn{Französische Telefonnummern}{French Phone Numbers}}
 \subsection{\DeEn{Geltungsbereich}{Scope}} \label{FR-bereich}
 \DeEn{Der französische Nummerierungsplan}{The French numbering plan}
@@ -392,7 +444,7 @@
   \phonenumber[country=FR]{0123456789}
 \end{sidebyside}
 \DeEn{Die zweite Ziffer ermöglicht die Zuordnung der Nummer zu einem von fünf geographischen Bereichen bzw. einer besonderen Verwendung (z.\,B. Mobilfunk). Die folgenden Stellen erlauben prinzipiell eine genauere geographische Zuordnung der Nummer, doch macht das Paket \phone\ hiervon nur zur Identifikation von Nummern aus Überseegebieten Gebrauch}{The second digit makes it possible to assign a number to one of five geographic zones or to a special purpose (\eg\ mobile telephony), respectively. The following digits theoretically allow a more precise geographic assignment of the number, but the \phone\ package uses them only to identify numbers from the overseas territories}
-(\cf\ \DeEn{Anhang}{appendix}~\ref{vorwahlen-FR}).
+\vglAnhang{vorwahlen-FR}.
 \begin{sidebyside}
   \setphonenumbers{country=FR,area-code=place-and-number}
   \phonenumber{0123456789} \\
@@ -410,7 +462,7 @@
   \phonenumber[country=FR]{3245}
 \end{sidebyside}
 \DeEn{Kurznummern werden ohne Auslandvorwahl verlinkt}{Short numbers are linked}
-\vglAbschnitt{verlinkung}\DeEn{, da sie aus dem Ausland nicht erreichbar sind.}{ without the foreign country code since they cannot be reached from abroad.}
+\vglAbschnitt{verlinkung}\DeEn{, da sie aus dem Ausland nicht erreichbar sind.}{ without the country calling code since they cannot be reached from abroad.}
 
 \DeEn{Obwohl die in Abschnitt \ref{FR-bereich} genannten Gebiete intern wie ein einziges Netz behandelt werden, gibt es im Bereich des französichen Nummerierungsplans verschiedene Landeskennzahlen:}{Despite the fact that the areas mentioned in section \ref{FR-bereich} are treated as one single net internally, there are different country codes within the French numbering plan:}
 %\begin{table}
@@ -439,7 +491,7 @@
   \phonenumber{0296123456}
 \end{sidebyside}
 
-\DeEn{Die Auslandsvorwahl führt für einige Gebiete zu einer Verdopplung der ersten drei Ziffern, z.\,B. in Martinique (Regionalvorwahl 05\,96).}{For some areas the country code leads to doubling the first three digits, \eg\ Martinique (area code 05\,96).}
+\DeEn{Die Auslandsvorwahl führt für einige Gebiete zu einer Verdopplung der ersten drei Ziffern, z.\,B. im Fall von Martinique (Regionalvorwahl 05\,96).}{For some areas the country code leads to doubling the first three digits, \eg\ in the case of Martinique (area code 05\,96).}
 \begin{sidebyside}
   \phonenumber[country=FR,foreign]{0596123456}
 \end{sidebyside}
@@ -490,8 +542,7 @@
 \item \DeEn{eine Nummer mit 10 Stellen keine gültige Vorwahl beinhaltet}{a 10-digit number does not contain a valid area code}.
 \end{itemize}
 
-\DeEn{}{\newpage}
-\section{\DeEn{Nordamerikanische Telefonnummern}{North American Phone Numbers}}
+\DeEn{\section[Nordamerikanische Nummern]{Nordamerikanische Telefonnummern}}{\section{North American Phone Numbers}}
 \subsection{\DeEn{Geltungsbereich}{Scope}} \label{US-bereich}
 \DeEn{Der nordamerikanische Nummerierungsplan}{The \emph{North American Numbering Plan}}
 \cite{wikipedia-NANP}
@@ -535,9 +586,8 @@
 \begin{sidebyside}
   \phonenumber[country=US]{5550123}
 \end{sidebyside}
-\KeineVerlinkung\ \DeEn{Alternativ ist in den entsprechenden Gebieten die Verwendung der Option \option{home-area-code}}{As an alternative the \option{home-area-code} option}
-\vglAbschnitt{optionen}
-\DeEn{möglich. Dies gilt jedoch nicht überall \cite{NANPA-ten-digit}, da manchen Regionen aufgrund von Nummernknappheit mehrere Vorwahlen zugeteilt wurden (sogenannte \emph{overlays}).}{can be used in the corresponding areas. However, this is not possible everywhere \cite{NANPA-ten-digit} since some areas had to be given multiple area codes (called \emph{overlays}) because of number exhaustion.}
+\KeineVerlinkung\ \DeEn{Alternativ ist in den entsprechenden Gebieten die Verwendung der Option \option{home-area-code} möglich}{As an alternative the \option{home-area-code} option}
+\vglAbschnitt{optionen}\DeEn{. Dies gilt jedoch nicht überall \cite{NANPA-ten-digit}, da manchen Regionen aufgrund von Nummernknappheit mehrere Vorwahlen zugeteilt wurden (sogenannte \emph{overlays}).}{ can be used in the corresponding areas. However, this is not possible everywhere \cite{NANPA-ten-digit} since some areas had to be given multiple area codes (called \emph{overlays}) because of number exhaustion.}
 
 \DeEn{Bei Ferngesprächen muss in der Regel die Verkehrsausscheidungsziffer 1 (\emph{trunk prefix}) vorgewählt werden.}{For long-distance calls the \emph{trunk prefix} 1 has to be dialled first as a rule.}
 \begin{sidebyside}
@@ -546,12 +596,11 @@
 
 \DeEn{Für den Mobilfunk gibt es im nordamerikanischen Nummerierungsplan keine eigenen Vorwahlen. Mobiltelefonnummern erhalten gewöhnliche Regionalvorwahlen.}{There are no seperate area codes for mobile telephony in the North American Numbering Plan. Mobile phones get regular geographic area codes.}
 
-\DeEn{Alle Gebiete des nordamerikanischen Nummerierungsplans sind aus dem Ausland unter der Vorwahl +1 zu erreichen.}{All territories of the North American Numbering Plan can be reached from abroad with the country calling code +1.}
+\DeEn{Alle Gebiete des nordamerikanischen Nummerierungsplans sind aus dem Ausland unter der Vorwahl +\kern1pt1 zu erreichen.}{All territories of the North American Numbering Plan can be reached from abroad with the country calling code +\kern1pt1.}
 \begin{sidebyside}
   \phonenumber[country=US,foreign]{2125550123}
 \end{sidebyside}
 
-\DeEn{\newpage}{}
 \subsection{\DeEn{Optionen}{Options}} \label{US-optionen}
 \begin{options}
 \keychoice{area-code-sep}{brackets,space,hyphen}
@@ -581,8 +630,8 @@
 \begin{sidebyside}
   \setphonenumbers{country=US,area-code=place-and-number}
   \phonenumber{2125550123} \\
-  \phonenumber{4415550123} \\
-  \phonenumber{8005550123} \\
+  \phonenumber{4415550125} \\
+  \phonenumber{8005550126} \\
   \phonenumber[trunk-prefix]{2125550123} \\
   \phonenumber[foreign]{2125550123}
 \end{sidebyside}
@@ -591,8 +640,8 @@
 \begin{sidebyside}
   \setphonenumbers{country=US,area-code=place}
   \phonenumber{2125550123} \\
-  \phonenumber{4415550123} \\
-  \phonenumber{8005550123} \\
+  \phonenumber{4415550125} \\
+  \phonenumber{8005550126} \\
   \phonenumber[trunk-prefix]{2125550123} \\
   \phonenumber[foreign]{2125550123}
 \end{sidebyside}
@@ -604,7 +653,7 @@
 \begin{sidebyside}
   \setphonenumbers{country=US,trunk-prefix=on}
   \phonenumber{2125550123} \\
-  \phonenumber{4415550123} \\
+  \phonenumber{4415550125} \\
   \phonenumber[trunk-prefix=off]{2125550123} \\
   \phonenumber[foreign]{2125550123}
 \end{sidebyside}
@@ -613,10 +662,8 @@
 \subsection{\UeberschriftUngueltig}
 \WarnungWenn
 \begin{itemize}
-\item \DeEn{eine Nummer nicht genau 3, 7 oder 10 Stellen hat}{a number does not have exactly 3, 7, or 10 digits},
+\item \DeEn{eine Nummer nicht genau 7 oder 10 Stellen hat}{a number does not have exactly 7 or 10 digits},
 \item \DeEn{eine 10-stellige Nummer keine gültige Vorwahl enthält}{a ten-digit number does not contain a valid area code},
-\item \DeEn{eine 3-stellige Nummer keine gültige Vorwahl darstellt}{a three-digit number is not a valid area code},
-\item \DeEn{eine Nummer nur aus einer Vorwahl besteht}{the number consists of an area code only},
 \item \DeEn{die Vermittlungsstellennummer mit einer 0 oder 1 beginnt}{the central office code begins with 0 or 1},
 \item \DeEn{die Vermittlungsstellennummer bei einer regionalen Nummer auf 11 endet}{the central office code of a geographic number ends with 11},
 \item \DeEn{die Vermittlungsstellennummer bei einer Sondernummer 911 lautet}{the central office code of a non-geographic number is 911}.
@@ -624,12 +671,14 @@
 
 \section{\DeEn{Technische Hinweise}{Technical Remarks}}
 \DeEn{Das Paket \phone\ verwendet das Paket}{The \phone\ package uses the}
-\texttt{ltxcmds}
-\DeEn{sowie die experimentellen \LaTeX-3-Pakete}{package as well as the experimental \LaTeX\ 3 packages} \texttt{expl3}, \texttt{xparse}\DeEn{ und}{, and} \texttt{l3keys2e}.
+\ltxcmds\ 
+\DeEn{sowie die experimentellen \LaTeX-3-Pakete}{package as well as the experimental \LaTeX\ 3 packages} \expl, \xparse\DeEn{ und}{, and} \keys.
 
 \DeEn{Bindestriche innerhalb von Telefonnummern werden durch}{Hyphens within phone numbers are realized by}
-\verbcode:\kern1pt-\kern1pt:\DeEn{ realisiert, das heißt sie werden mit einem Zusatzabstand von einem Punkt zu den umgebenden Ziffern gesetzt. Schrägstriche werden als}{, \ie\ they are typeset with an additional distance of one point from the surrounding digits. Slashes are output as}
-\verbcode:\slash:\DeEn{ ausgegeben, was einen Zeilenumbruch nach dem Schrägstrich ermöglicht. Die Gliederung deutscher und französischer Nummern erfolgt durch kleine Leerzeichen}{, allowing a line break after the slash. The structuring of German and French numbers is done by small spaces}
+\verbcode:\kern1pt-\kern1pt:\DeEn{ realisiert, das heißt sie werden mit einem Zusatzabstand von 1 Punkt zu den umgebenden Ziffern gesetzt. Das gilt auch für Schrägstriche, die als}{, \ie\ they are typeset with an additional distance of 1 point from the surrounding digits. The same goes for slashes too, which are output as}
+\verbcode:\kern1pt\slash\kern1pt:\DeEn{ ausgegeben werden, was einen Zeilenumbruch nach dem Schrägstrich ermöglicht. Nach einem Pluszeichen wird ebenfalls ein Zusatzabstand eingefügt}{, allowing a line break after the slash. After a plus sign an additional distance is inserted as well}
+(\verbcode:+\kern1pt:).
+\DeEn{Die Gliederung deutscher und französischer Nummern erfolgt durch kleine Leerzeichen}{The structuring of German and French numbers is done by small spaces}
 \verbcode:\,:.
 
 \DeEn{Für die Verlinkung von Telefonnummern wird der \hyper-Befehl \cs{href} verwendet. Sofern \hyper\ geladen ist, wird der Befehl}{The \hyper\ command \cs{href} is used to link phone numbers. If \hyper\ is loaded, the command}
@@ -636,7 +685,7 @@
 \verbcode:\phonenumber{0441654321}:
 \DeEn{zu}{will be expanded to}
 \begin{center}
-\verbcode=\href{tel:+49441654321}{04\,41\slash65\,43\,21}=\DeEn{}{\,.}
+\verbcode=\href{tel:+49441654321}{04\,41\kern1pt\slash\kern1pt65\,43\,21}=\DeEn{}{\,.}
 \end{center}
 \DeEn{expandiert.}{}
 
@@ -665,7 +714,6 @@
 \end{multicols}
 \Quellen \cite[3--5]{BNA-nummernplan}, \cite{BNA-mobil}
 
-\DeEn{}{\newpage}
 \section{\DeEn{Französische Vorwahlen}{French Area Codes}} \label{vorwahlen-FR}
 \subsection{\DeEn{Regionalvorwahlen}{Geographic Area Codes}}
 \AreaCodesGeographic[country=FR]
@@ -675,18 +723,25 @@
 \AreaCodesNonGeographic[country=FR]
 \Quellen \cite[6--15]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
 
-\DeEn{\newpage}{}
+\newpage
 \section{\DeEn{Vorwahlen des nordamerikanischen Nummerierungsplans}{Area codes of the North American Numbering Plan}}
 \subsection{\DeEn{Regionalvorwahlen}{Geographic Area Codes}}
 \begin{multicols}{2}
 \AreaCodesGeographic[country=US]
 \end{multicols}
-\Quellen \cite{NANPA-geographic}, \cite{NANPA-not-yet}
+\enlargethispage{5mm}
+\Quellen \cite{NANPA-geographic}, \cite{NANPA-ten-years}, \cite{NANPA-not-yet}
 
 \subsection{\UeberschriftSondervorwahlen}
 \AreaCodesNonGeographic[country=US]
-\Quelle \cite{NANPA-non-geographic}
+\Quellen \cite{NANPA-non-geographic}, \cite{NANPA-ten-years}
 
+\section{\DeEn{Gültige Landeskennzahlen}{Valid Country Codes}} \label{landeskennzahlen}
+\begin{multicols}{6}
+\CountryCodes
+\end{multicols}
+\Quelle \cite{ITU}
+
 \section{\DeEn{Versionsprotokoll}{Version History}}
 \begin{description}
 \item[1.0] \DeEn{22. August 2016}{August 22nd, 2016}
@@ -701,6 +756,23 @@
 \begin{itemize}
 \item \DeEn{Fehlerkorrektur in der Anleitung bezüglich der Option \option{home-area-code}}{Error correction in the manual concerning the \option{home-area-code} option}
 \end{itemize}
+\item[1.2] \DeEn{5. März 2017}{March 5th, 2017}
+\begin{itemize}
+\item \DeEn{Einführung der Option}{Introduction of the}
+\option{home-country}
+\DeEn{für das Heimatland}{option}
+\item \DeEn{Verwendung der Option}{Use of the}
+\option{home-country}
+\DeEn{anstelle von}{option instead of}
+\option{country}
+\DeEn{zur Festlegung des Landes der Heimatvorwahl}{to set the country of the home area code}
+\item \DeEn{Einführung des Befehls}{Introduction of the}
+\cs{CountryCodes}\DeEn{}{ command}
+\item \DeEn{Nummerneingabe im internationalen Format}{Number input in the international format}
+\item \DeEn{rudimentäre Unterstützung für Telefonnummern aus nicht unterstützten Ländern}{Rudimentary support for phone numbers from unsupported countries}
+\item \DeEn{Zusatzabstand (Kerning) von 1 Punkt vor und nach einem Schrägstrich sowie nach einem Pluszeichen}{Additional distance (kerning) of 1 point before and after a slash as well as after a plus sign}
+\item \DeEn{Ergänzung der neuen nordamerikanischen Vorwahlen}{Addition of the new North American area codes} 223 \DeEn{und}{and} 445
+\end{itemize}
 
 \end{description}
 

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.tex	2017-03-05 21:38:33 UTC (rev 43404)
+++ trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.tex	2017-03-05 21:39:00 UTC (rev 43405)
@@ -1,6 +1,6 @@
 % phonenumbers package: English manual
-% Version: 1.1.1
-% Datum: 13. November 2016
+% Version: 1.2
+% Datum: 5. März 2017
 \documentclass{cnltx-doc}
 \usepackage[T1]{fontenc}
 \usepackage[utf8]{inputenc}
@@ -15,6 +15,8 @@
 
 \KOMAoption{numbers}{noendperiod}
 
+\AtBeginDocument{\enlargethispage{7mm}}
+
 \addbibresource{Literatur.bib}
 
 \renewcommand{\labelnamepunct}{\addcolon\space}
@@ -42,6 +44,8 @@
 
 \newcommand*{\sieheAbschnitt}[1]{(\DeEn{siehe Abschnitt}{see section} \ref{#1})}
 
+\newcommand*{\vglAnhang}[1]{(\cf\ \DeEn{Anhang}{appendix}~\ref{#1})}
+
 \newcommand*{\Quelle}{\emph{\DeEn{Quelle: }{Source: }}}
 
 \newcommand*{\Quellen}{\emph{\DeEn{Quellen: }{Sources: }}}
@@ -54,13 +58,13 @@
 
 \setcnltx{
 	package = phonenumbers,
-	version = Version 1.1.1,
-	date = \DeEn{13. November 2016}{November 13th, 2016},
+	version = Version 1.2,
+	date = \DeEn{5. März 2017}{March 5th, 2017},
 	authors = Keno Wehr,
 	email = keno.wehr at uni-oldenburg.de,
 	info = \DeEn{Setzen von Telefonnummern mit \LaTeX}{Typesetting telephone numbers with \LaTeX},
 	add-cmds = {setphonenumbers,phonenumber,href},
-	abstract = \DeEn{Dieses Paket ermöglicht es, Telefonnummern unterschiedlichen nationalen Konventionen entsprechend zu setzen. Zur Zeit werden deutsche, französische und nordamerikanische Telefonnummern unterstützt.}{This package makes it possible to typeset telephone numbers according to different national conventions. Currently, German, French, and North American phone numbers are supported.},
+	abstract = \DeEn{Dieses Paket ermöglicht es, Telefonnummern unterschiedlichen nationalen Konventionen entsprechend zu setzen und bei Bedarf auch zu verlinken. Zur Zeit werden deutsche, französische und nordamerikanische Telefonnummern unterstützt. Nummern aus anderen Ländern werden rudimentär unterstützt.}{This package makes it possible to typeset telephone numbers according to different national conventions and to link them when required. Currently, German, French, and North American phone numbers are supported. Phone numbers from other countries are supported rudimentarily.},
 	color-scheme = phonecolor,
 	add-listings-options = {numbers=none},
 	pre-output = {\raggedright}
@@ -68,6 +72,10 @@
 
 \newpackagename{\phone}{phonenumbers}
 \newpackagename{\hyper}{hyperref}
+\newpackagename{\ltxcmds}{ltxcmds}
+\newpackagename{\expl}{expl3}
+\newpackagename{\xparse}{xparse}
+\newpackagename{\keys}{l3keys2e}
 
 \makeatletter
 \setlength{\cnltx at before@skip}{5pt plus1pt minus1pt}
@@ -121,6 +129,15 @@
   \phonenumber[country=US,foreign]{2125550123}
 \end{sidebyside}
 
+\subsection{\DeEn{Andere Länder}{Other Countries}}
+\begin{sidebyside}
+  \phonenumber{+3905523776} % 39=IT
+\end{sidebyside}
+
+\begin{sidebyside}
+  \phonenumber{+35923456789} % 359=BG
+\end{sidebyside}
+
 \section{\DeEn{Allgemeine Prinzipien}{General Principles}}
 \subsection{\DeEn{Grundideen des Pakets}{Basic Ideas of the Package}}
 \DeEn{Das Ziel des Pakets \phone\ ist es, das Setzen von Telefonnummern zu ermöglichen, ohne dass der Anwender den internen Aufbau der Nummer oder die nationalen typographischen Konventionen für den Telefonnummernsatz kennen muss.}
@@ -154,9 +171,23 @@
 {Sets the \meta{options} globally for all following phone numbers not having contradictory options of their own. Can be used in the preamble or in the document body.}
 
 \command{phonenumber}[\oarg{\DeEn{Optionen}{options}}\marg{\DeEn{Nummer}{number}}\oarg{\DeEn{Durchwahl\kern1pt}{extension}}]
-\DeEn{Setzt eine Telefonnummer. Die \meta{Nummer} darf dabei nur aus Ziffern und Leerzeichen bestehen; Leerzeichen werden ignoriert. Bei deutschen Telefonnummern kann außerdem eine \meta{Durchwahl\kern1pt} angegeben werden, die an die Nummer angehängt wird. Die \meta{Optionen} gelten nur für diese Telefonnummer.}
-{Typesets a telephone number. The \meta{number} has to consist of digits and spaces only; the spaces will be ignored. For German phone numbers an \meta{extension} can be given additionally, since extensions are often highlighted in German typography. The \meta{options} are only valid for this phone number.}
+\DeEn{Setzt eine Telefonnummer. Die \meta{Optionen} gelten nur für diese Telefonnummer.}{Typesets a telephone number. The \meta{options} are valid only for this phone number.}
 
+\DeEn{Die \meta{Nummer} kann im lokalen oder im internationalen Format eingegeben werden. Das lokale Format ist nur für unterstützte Länder möglich; das zugehörige Land ist durch die Option}{The \meta{number} can be input in the local or in the international format. The local format is possible for supported countries only; the country has to be set by the}
+\option{country} 
+\DeEn{festzulegen}{option}
+\vglAbschnitt{optionen}.
+\DeEn{Das internationale Format beginnt stets mit}{The international format always begins with}
+\code{+}
+\DeEn{gefolgt von der Landeskennzahl}{followed by the country code}
+\vglAnhang{landeskennzahlen}.
+
+\DeEn{Abgesehen von einem führenden Pluszeichen darf die \meta{Nummer} nur aus Ziffern und Leerzeichen bestehen; Leerzeichen werden ignoriert.}{Apart from a leading plus sign the \meta{number} has to consist of digits and spaces only; the spaces will be ignored.}
+
+\DeEn{Bei deutschen Telefonnummern kann außerdem eine \meta{Durchwahl\kern1pt} angegeben werden, die an die Nummer angehängt wird.}{For German phone numbers an \meta{extension} can be given additionally, since extensions are often highlighted in German typography.}
+
+\DeEn{Nummern aus unterstützten Ländern werden den nationalen Konventionen gemäß gesetzt. Nummern aus nicht unterstützten Ländern werden in der Ausgabe lediglich durch ein Leerzeichen nach der Auslandsvorwahl gegliedert.}{Numbers from supported countries are typeset according to the national conventions. Numbers from unsupported countries are structured only by a space after the country calling code.}
+
 \command{AreaCodesGeographic}[\oarg{\DeEn{Optionen}{options}}]
 \DeEn{Gibt eine Liste der Orts- bzw. Regionalvorwahlen für das global eingestellte oder durch eine lokale Option angegebene Land aus.}
 {Typesets a list of geographic area codes for the country set globally or by a local option.}
@@ -164,10 +195,15 @@
 \command{AreaCodesNonGeographic}[\oarg{\DeEn{Optionen}{options}}]
 \DeEn{Gibt eine Liste der Vorwahlen ohne geographischen Bezug (Mobilfunk- und Sondervorwahlen) für das gewählte Land aus.}
 {Typesets a list of non-geographic area codes (area codes for mobile phones and for other special purposes) for the selected country.}
+
+\command{CountryCodes}
+\DeEn{Gibt eine Liste der gültigen Landeskennzahlen aus.}{Typesets a list of valid country codes.}
 \end{commands}
 
-\subsection{\DeEn{Verlinkung von Telefonnummern}{Linking of Phone Numbers}} \label{verlinkung}
-\DeEn{Auf modernen Geräten mit Telefoniefähigkeiten können Links auf Telefonnummern verwendet werden, um die Nummern anzurufen, ohne sie eintippen zu müssen. Das Paket \phone\ erzeugt solche Links, sofern das Paket \hyper\ \cite{hyperref} zusätzlich geladen wird.}{On modern devices with telephony capabilities links on phone numbers can be used to call a number without having it to type in. The \phone\ package generates such links if the \hyper\ package is loadad additionally.}
+\DeEn{\subsection[Verlinkung von Nummern]{Verlinkung von Telefonnummern}}{\subsection{Linking of Phone Numbers}} \label{verlinkung}
+\DeEn{Auf modernen Geräten mit Telefoniefähigkeiten können Links auf Telefonnummern verwendet werden, um die Nummern anzurufen, ohne sie eintippen zu müssen. Das Paket \phone\ erzeugt solche Links, sofern das Paket \hyper}{On modern devices with telephony capabilities links on phone numbers can be used to call a number without having it to type in. The \phone\ package generates such links if the \hyper\ package}
+\cite{hyperref}
+\DeEn{zusätzlich geladen wird.}{is loadad additionally.}
 
 \DeEn{Unabhängig davon, wie sie im Text erscheinen, werden die Telefonnummern unter Einschluss der Auslandsvorwahl (beginnend mit +) verlinkt, damit sie von überall aus erreichbar sind.}{Independantly of their appearing in the text the phone numbers are linked including the country calling code (beginning with +) so that they can be reached from everywhere.}
 
@@ -200,6 +236,13 @@
 \DeEn{Bitte kontaktieren Sie den Paketautor, falls Sie Unterstützung für weitere Länder benötigen.}
 {Please contact the package author if you need support for further countries.}
 
+\DeEn{Diese Option wird ignoriert, wenn die Nummer im internationalen Format eingegeben wird. In diesem Fall wird das Land durch die Landeskennzahl bestimmt.}{This option is ignored if the number is input in the international format. In this case the country is determined by the country code.}
+
+\keychoice{link}{on,off}
+\Default{on}
+\DeEn{Gibt an, ob Telefonnummern verlinkt werden sollen, falls das Paket \hyper\ geladen ist}{Specifies whether phone numbers shall be linked if the \hyper\ package is loaded}
+\vglAbschnitt{verlinkung}.
+
 \keychoice{foreign}{off,international,american,european}
 \Default{off}
 \DeEn{Gibt an, ob und in welcher Form die Auslandsvorwahl ausgegeben werden soll.}
@@ -221,25 +264,35 @@
   \phonenumber[foreign=european]{0305226789}
 \end{sidebyside}
 
-\keychoice{link}{on,off}
-\Default{on}
-\DeEn{Gibt an, ob Telefonnummern verlinkt werden sollen, falls das Paket \hyper\ geladen ist}{Specifies whether phone numbers shall be linked if the \hyper\ package is loaded}
-\vglAbschnitt{verlinkung}.
+\DeEn{Bei Nummern aus nicht unterstützten Ländern wird die Wahl}{For numbers from unsupported countries the choice}
+\code{foreign=off}
+\DeEn{wie}{is treated like}
+\code{foreign=\linebreak[0]international}\DeEn{ behandelt, \ie\ die Auslandsvorwahl wird bei solchen Nummern immer ausgegeben.}{, which means that the country calling code will always be output for these numbers.}
 
+\keychoice{home-country}{DE,FR,US,none}
+\Default{none}
+\DeEn{Legt das Heimatland fest. Für Nummern aus diesem Land wird unabhängig vom Wert der Option \option{foreign} keine Auslandsvorwahl ausgegeben.}{Sets the home country. Numbers from this country will be typeset without the country calling code independantly of the value of the \option{foreign} option.}
+\begin{sidebyside}
+  \setphonenumbers{foreign,home-country=FR}
+  \phonenumber[country=DE]{0441343396} \\
+  \phonenumber[country=FR]{0123456789} \\
+  \phonenumber[country=US]{2125550123}
+\end{sidebyside}
+
 \keychoice{home-area-code}{\meta{\DeEn{Heimatvorwahl\kern1pt}{home area code}},none}
 \Default{none}
 \DeEn{Legt die Vorwahl Ihres Heimatgebietes fest. Bei Nummern mit dieser Vorwahl wird nur die Teilnehmerrufnummer ausgegeben. Die Verlinkung}{Sets the area code of your home area. Only the subscriber number will be output for numbers with this area code. Links}
 \vglAbschnitt{verlinkung}
 \DeEn{erfolgt immer einschließlich der Vorwahl.}{will always include the area code.}
+
+\DeEn{Vor der Heimatvorwahl sollte das Heimatland mit der Option \option{home-country} festgelegt werden. Erfolgt dies nicht, so wird bei der Festlegung der Heimatvorwahl der aktuelle Wert der Option \option{country} als Heimatland gesetzt.}{The \option{home-country} option should to be set before the home area code. If this does not happen, the home country is set to the current value of the \option{country} option when you set a home area code.}
 \begin{sidebyside}
-  \setphonenumbers{country=US,home-area-code=242}
-  \phonenumber{2425550123}
+  \setphonenumbers{home-country=US,home-area-code=242,foreign}
+  \phonenumber[country=US]{2125550123} \\
+  \phonenumber[country=US]{2425550124} \\
+  \phonenumber[country=DE]{02581639737}
 \end{sidebyside}
-\begin{sidebyside}
-  \setphonenumbers{country=DE,home-area-code=02581}
-  \phonenumber{02581639737}
-\end{sidebyside}
-\DeEn{Die Angabe einer Heimatvorwahl ist nur für Gebiete zulässig, in denen die Vorwahl bei Ortsgesprächen weggelassen werden kann. Vor der Heimatvorwahl muss das Land festgelegt werden.}{Setting a home area code is allowed only for areas where the area code can be left out for local calls. The country has to be set before the home area code.}
+\DeEn{Die Angabe einer Heimatvorwahl ist nur für Gebiete zulässig, in denen die Vorwahl bei Ortsgesprächen weggelassen werden kann.}{Setting a home area code is allowed only for areas where the area code can be left out for local calls.}
 \end{options}
 
 \subsection{\UeberschriftUngueltig}
@@ -247,10 +300,10 @@
 {To ensure robustness against errors, the compilation will never be aborted with an error message if an invalid number is given to the \cs{phonenumber} command. Rather, the \phone\ package will write warnings to the log file.}
 \DeEn{Dies ist der Fall, wenn}{This will occur if}
 \begin{itemize}
-\item \DeEn{die Eingabe leer ist}{the input is empty},
-\item \DeEn{die Eingabe nicht nur Ziffern und Leerzeichen enthält}{the input contains other characters than digits and spaces},
+\item \DeEn{die Eingabe leer ist oder nicht nur Ziffern und Leerzeichen enthält (abgesehen von einem Pluszeichen am Anfang)}{the input is empty or contains other characters than digits and spaces (apart from a plus sign as first character)},
 \item \DeEn{eine Durchwahlnummer angegeben ist, obwohl es sich nicht um eine deutsche Telefonnummer handelt}{an extension is given for a non-German phone number},
-\item \DeEn{die Nummer nicht den nationalen Regeln des gewählten Landes entspricht}{the number is not in accordance with the national rules of the selected country}.
+\item \DeEn{eine im internationalen Format eingegebene Nummer nur aus einer Landesvorwahl besteht oder keine gültige Landeskennzahl enthält}{a number input in the international format consists of a country calling code only or does not contain a valid country code},
+\item \DeEn{die Nummer nicht den nationalen Regeln des gewählten Landes entspricht (nur für unterstützte Länder)}{the number is not in accordance with the national rules of the selected country (only for supported countries)}.
 \end{itemize}
 
 \section{\DeEn{Deutsche Telefonnummern}{German Phone Numbers}}
@@ -334,7 +387,6 @@
 \end{sidebyside}
 \end{options}
 
-\DeEn{\pagebreak}{}
 \subsection{\UeberschriftUngueltig}
 \WarnungWenn
 \begin{itemize}
@@ -367,7 +419,7 @@
 \item \DeEn{eine Dialer-Nummer (Vorwahl 0\,90\,09) nicht genau 12 Stellen hat}{a dialer number (area code 0\,90\,09) does not have exactly 12 digits} \cite[78]{BNA-konzept}.
 \end{itemize}
 
-\DeEn{}{\newpage}
+\newpage
 \section{\DeEn{Französische Telefonnummern}{French Phone Numbers}}
 \subsection{\DeEn{Geltungsbereich}{Scope}} \label{FR-bereich}
 \DeEn{Der französische Nummerierungsplan}{The French numbering plan}
@@ -392,7 +444,7 @@
   \phonenumber[country=FR]{0123456789}
 \end{sidebyside}
 \DeEn{Die zweite Ziffer ermöglicht die Zuordnung der Nummer zu einem von fünf geographischen Bereichen bzw. einer besonderen Verwendung (z.\,B. Mobilfunk). Die folgenden Stellen erlauben prinzipiell eine genauere geographische Zuordnung der Nummer, doch macht das Paket \phone\ hiervon nur zur Identifikation von Nummern aus Überseegebieten Gebrauch}{The second digit makes it possible to assign a number to one of five geographic zones or to a special purpose (\eg\ mobile telephony), respectively. The following digits theoretically allow a more precise geographic assignment of the number, but the \phone\ package uses them only to identify numbers from the overseas territories}
-(\cf\ \DeEn{Anhang}{appendix}~\ref{vorwahlen-FR}).
+\vglAnhang{vorwahlen-FR}.
 \begin{sidebyside}
   \setphonenumbers{country=FR,area-code=place-and-number}
   \phonenumber{0123456789} \\
@@ -410,7 +462,7 @@
   \phonenumber[country=FR]{3245}
 \end{sidebyside}
 \DeEn{Kurznummern werden ohne Auslandvorwahl verlinkt}{Short numbers are linked}
-\vglAbschnitt{verlinkung}\DeEn{, da sie aus dem Ausland nicht erreichbar sind.}{ without the foreign country code since they cannot be reached from abroad.}
+\vglAbschnitt{verlinkung}\DeEn{, da sie aus dem Ausland nicht erreichbar sind.}{ without the country calling code since they cannot be reached from abroad.}
 
 \DeEn{Obwohl die in Abschnitt \ref{FR-bereich} genannten Gebiete intern wie ein einziges Netz behandelt werden, gibt es im Bereich des französichen Nummerierungsplans verschiedene Landeskennzahlen:}{Despite the fact that the areas mentioned in section \ref{FR-bereich} are treated as one single net internally, there are different country codes within the French numbering plan:}
 %\begin{table}
@@ -439,7 +491,7 @@
   \phonenumber{0296123456}
 \end{sidebyside}
 
-\DeEn{Die Auslandsvorwahl führt für einige Gebiete zu einer Verdopplung der ersten drei Ziffern, z.\,B. in Martinique (Regionalvorwahl 05\,96).}{For some areas the country code leads to doubling the first three digits, \eg\ Martinique (area code 05\,96).}
+\DeEn{Die Auslandsvorwahl führt für einige Gebiete zu einer Verdopplung der ersten drei Ziffern, z.\,B. im Fall von Martinique (Regionalvorwahl 05\,96).}{For some areas the country code leads to doubling the first three digits, \eg\ in the case of Martinique (area code 05\,96).}
 \begin{sidebyside}
   \phonenumber[country=FR,foreign]{0596123456}
 \end{sidebyside}
@@ -490,8 +542,7 @@
 \item \DeEn{eine Nummer mit 10 Stellen keine gültige Vorwahl beinhaltet}{a 10-digit number does not contain a valid area code}.
 \end{itemize}
 
-\DeEn{}{\newpage}
-\section{\DeEn{Nordamerikanische Telefonnummern}{North American Phone Numbers}}
+\DeEn{\section[Nordamerikanische Nummern]{Nordamerikanische Telefonnummern}}{\section{North American Phone Numbers}}
 \subsection{\DeEn{Geltungsbereich}{Scope}} \label{US-bereich}
 \DeEn{Der nordamerikanische Nummerierungsplan}{The \emph{North American Numbering Plan}}
 \cite{wikipedia-NANP}
@@ -535,9 +586,8 @@
 \begin{sidebyside}
   \phonenumber[country=US]{5550123}
 \end{sidebyside}
-\KeineVerlinkung\ \DeEn{Alternativ ist in den entsprechenden Gebieten die Verwendung der Option \option{home-area-code}}{As an alternative the \option{home-area-code} option}
-\vglAbschnitt{optionen}
-\DeEn{möglich. Dies gilt jedoch nicht überall \cite{NANPA-ten-digit}, da manchen Regionen aufgrund von Nummernknappheit mehrere Vorwahlen zugeteilt wurden (sogenannte \emph{overlays}).}{can be used in the corresponding areas. However, this is not possible everywhere \cite{NANPA-ten-digit} since some areas had to be given multiple area codes (called \emph{overlays}) because of number exhaustion.}
+\KeineVerlinkung\ \DeEn{Alternativ ist in den entsprechenden Gebieten die Verwendung der Option \option{home-area-code} möglich}{As an alternative the \option{home-area-code} option}
+\vglAbschnitt{optionen}\DeEn{. Dies gilt jedoch nicht überall \cite{NANPA-ten-digit}, da manchen Regionen aufgrund von Nummernknappheit mehrere Vorwahlen zugeteilt wurden (sogenannte \emph{overlays}).}{ can be used in the corresponding areas. However, this is not possible everywhere \cite{NANPA-ten-digit} since some areas had to be given multiple area codes (called \emph{overlays}) because of number exhaustion.}
 
 \DeEn{Bei Ferngesprächen muss in der Regel die Verkehrsausscheidungsziffer 1 (\emph{trunk prefix}) vorgewählt werden.}{For long-distance calls the \emph{trunk prefix} 1 has to be dialled first as a rule.}
 \begin{sidebyside}
@@ -546,12 +596,11 @@
 
 \DeEn{Für den Mobilfunk gibt es im nordamerikanischen Nummerierungsplan keine eigenen Vorwahlen. Mobiltelefonnummern erhalten gewöhnliche Regionalvorwahlen.}{There are no seperate area codes for mobile telephony in the North American Numbering Plan. Mobile phones get regular geographic area codes.}
 
-\DeEn{Alle Gebiete des nordamerikanischen Nummerierungsplans sind aus dem Ausland unter der Vorwahl +1 zu erreichen.}{All territories of the North American Numbering Plan can be reached from abroad with the country calling code +1.}
+\DeEn{Alle Gebiete des nordamerikanischen Nummerierungsplans sind aus dem Ausland unter der Vorwahl +\kern1pt1 zu erreichen.}{All territories of the North American Numbering Plan can be reached from abroad with the country calling code +\kern1pt1.}
 \begin{sidebyside}
   \phonenumber[country=US,foreign]{2125550123}
 \end{sidebyside}
 
-\DeEn{\newpage}{}
 \subsection{\DeEn{Optionen}{Options}} \label{US-optionen}
 \begin{options}
 \keychoice{area-code-sep}{brackets,space,hyphen}
@@ -581,8 +630,8 @@
 \begin{sidebyside}
   \setphonenumbers{country=US,area-code=place-and-number}
   \phonenumber{2125550123} \\
-  \phonenumber{4415550123} \\
-  \phonenumber{8005550123} \\
+  \phonenumber{4415550125} \\
+  \phonenumber{8005550126} \\
   \phonenumber[trunk-prefix]{2125550123} \\
   \phonenumber[foreign]{2125550123}
 \end{sidebyside}
@@ -591,8 +640,8 @@
 \begin{sidebyside}
   \setphonenumbers{country=US,area-code=place}
   \phonenumber{2125550123} \\
-  \phonenumber{4415550123} \\
-  \phonenumber{8005550123} \\
+  \phonenumber{4415550125} \\
+  \phonenumber{8005550126} \\
   \phonenumber[trunk-prefix]{2125550123} \\
   \phonenumber[foreign]{2125550123}
 \end{sidebyside}
@@ -604,7 +653,7 @@
 \begin{sidebyside}
   \setphonenumbers{country=US,trunk-prefix=on}
   \phonenumber{2125550123} \\
-  \phonenumber{4415550123} \\
+  \phonenumber{4415550125} \\
   \phonenumber[trunk-prefix=off]{2125550123} \\
   \phonenumber[foreign]{2125550123}
 \end{sidebyside}
@@ -613,10 +662,8 @@
 \subsection{\UeberschriftUngueltig}
 \WarnungWenn
 \begin{itemize}
-\item \DeEn{eine Nummer nicht genau 3, 7 oder 10 Stellen hat}{a number does not have exactly 3, 7, or 10 digits},
+\item \DeEn{eine Nummer nicht genau 7 oder 10 Stellen hat}{a number does not have exactly 7 or 10 digits},
 \item \DeEn{eine 10-stellige Nummer keine gültige Vorwahl enthält}{a ten-digit number does not contain a valid area code},
-\item \DeEn{eine 3-stellige Nummer keine gültige Vorwahl darstellt}{a three-digit number is not a valid area code},
-\item \DeEn{eine Nummer nur aus einer Vorwahl besteht}{the number consists of an area code only},
 \item \DeEn{die Vermittlungsstellennummer mit einer 0 oder 1 beginnt}{the central office code begins with 0 or 1},
 \item \DeEn{die Vermittlungsstellennummer bei einer regionalen Nummer auf 11 endet}{the central office code of a geographic number ends with 11},
 \item \DeEn{die Vermittlungsstellennummer bei einer Sondernummer 911 lautet}{the central office code of a non-geographic number is 911}.
@@ -624,12 +671,14 @@
 
 \section{\DeEn{Technische Hinweise}{Technical Remarks}}
 \DeEn{Das Paket \phone\ verwendet das Paket}{The \phone\ package uses the}
-\texttt{ltxcmds}
-\DeEn{sowie die experimentellen \LaTeX-3-Pakete}{package as well as the experimental \LaTeX\ 3 packages} \texttt{expl3}, \texttt{xparse}\DeEn{ und}{, and} \texttt{l3keys2e}.
+\ltxcmds\ 
+\DeEn{sowie die experimentellen \LaTeX-3-Pakete}{package as well as the experimental \LaTeX\ 3 packages} \expl, \xparse\DeEn{ und}{, and} \keys.
 
 \DeEn{Bindestriche innerhalb von Telefonnummern werden durch}{Hyphens within phone numbers are realized by}
-\verbcode:\kern1pt-\kern1pt:\DeEn{ realisiert, das heißt sie werden mit einem Zusatzabstand von einem Punkt zu den umgebenden Ziffern gesetzt. Schrägstriche werden als}{, \ie\ they are typeset with an additional distance of one point from the surrounding digits. Slashes are output as}
-\verbcode:\slash:\DeEn{ ausgegeben, was einen Zeilenumbruch nach dem Schrägstrich ermöglicht. Die Gliederung deutscher und französischer Nummern erfolgt durch kleine Leerzeichen}{, allowing a line break after the slash. The structuring of German and French numbers is done by small spaces}
+\verbcode:\kern1pt-\kern1pt:\DeEn{ realisiert, das heißt sie werden mit einem Zusatzabstand von 1 Punkt zu den umgebenden Ziffern gesetzt. Das gilt auch für Schrägstriche, die als}{, \ie\ they are typeset with an additional distance of 1 point from the surrounding digits. The same goes for slashes too, which are output as}
+\verbcode:\kern1pt\slash\kern1pt:\DeEn{ ausgegeben werden, was einen Zeilenumbruch nach dem Schrägstrich ermöglicht. Nach einem Pluszeichen wird ebenfalls ein Zusatzabstand eingefügt}{, allowing a line break after the slash. After a plus sign an additional distance is inserted as well}
+(\verbcode:+\kern1pt:).
+\DeEn{Die Gliederung deutscher und französischer Nummern erfolgt durch kleine Leerzeichen}{The structuring of German and French numbers is done by small spaces}
 \verbcode:\,:.
 
 \DeEn{Für die Verlinkung von Telefonnummern wird der \hyper-Befehl \cs{href} verwendet. Sofern \hyper\ geladen ist, wird der Befehl}{The \hyper\ command \cs{href} is used to link phone numbers. If \hyper\ is loaded, the command}
@@ -636,7 +685,7 @@
 \verbcode:\phonenumber{0441654321}:
 \DeEn{zu}{will be expanded to}
 \begin{center}
-\verbcode=\href{tel:+49441654321}{04\,41\slash65\,43\,21}=\DeEn{}{\,.}
+\verbcode=\href{tel:+49441654321}{04\,41\kern1pt\slash\kern1pt65\,43\,21}=\DeEn{}{\,.}
 \end{center}
 \DeEn{expandiert.}{}
 
@@ -657,6 +706,7 @@
 \begin{multicols}{2}
 \AreaCodesGeographic[country=DE]
 \end{multicols}
+\enlargethispage{5mm}
 \Quelle \cite{BNA-ortsvorwahlen}
 
 \subsection{\UeberschriftSondervorwahlen}
@@ -665,7 +715,7 @@
 \end{multicols}
 \Quellen \cite[3--5]{BNA-nummernplan}, \cite{BNA-mobil}
 
-\DeEn{}{\newpage}
+\newpage
 \section{\DeEn{Französische Vorwahlen}{French Area Codes}} \label{vorwahlen-FR}
 \subsection{\DeEn{Regionalvorwahlen}{Geographic Area Codes}}
 \AreaCodesGeographic[country=FR]
@@ -675,18 +725,23 @@
 \AreaCodesNonGeographic[country=FR]
 \Quellen \cite[6--15]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
 
-\DeEn{\newpage}{}
 \section{\DeEn{Vorwahlen des nordamerikanischen Nummerierungsplans}{Area codes of the North American Numbering Plan}}
 \subsection{\DeEn{Regionalvorwahlen}{Geographic Area Codes}}
 \begin{multicols}{2}
 \AreaCodesGeographic[country=US]
 \end{multicols}
-\Quellen \cite{NANPA-geographic}, \cite{NANPA-not-yet}
+\Quellen \cite{NANPA-geographic}, \cite{NANPA-ten-years}, \cite{NANPA-not-yet}
 
 \subsection{\UeberschriftSondervorwahlen}
 \AreaCodesNonGeographic[country=US]
-\Quelle \cite{NANPA-non-geographic}
+\Quellen \cite{NANPA-non-geographic}, \cite{NANPA-ten-years}
 
+\section{\DeEn{Gültige Landeskennzahlen}{Valid Country Codes}} \label{landeskennzahlen}
+\begin{multicols}{6}
+\CountryCodes
+\end{multicols}
+\Quelle \cite{ITU}
+
 \section{\DeEn{Versionsprotokoll}{Version History}}
 \begin{description}
 \item[1.0] \DeEn{22. August 2016}{August 22nd, 2016}
@@ -701,6 +756,23 @@
 \begin{itemize}
 \item \DeEn{Fehlerkorrektur in der Anleitung bezüglich der Option \option{home-area-code}}{Error correction in the manual concerning the \option{home-area-code} option}
 \end{itemize}
+\item[1.2] \DeEn{5. März 2017}{March 5th, 2017}
+\begin{itemize}
+\item \DeEn{Einführung der Option}{Introduction of the}
+\option{home-country}
+\DeEn{für das Heimatland}{option}
+\item \DeEn{Verwendung der Option}{Use of the}
+\option{home-country}
+\DeEn{anstelle von}{option instead of}
+\option{country}
+\DeEn{zur Festlegung des Landes der Heimatvorwahl}{to set the country of the home area code}
+\item \DeEn{Einführung des Befehls}{Introduction of the}
+\cs{CountryCodes}\DeEn{}{ command}
+\item \DeEn{Nummerneingabe im internationalen Format}{Number input in the international format}
+\item \DeEn{rudimentäre Unterstützung für Telefonnummern aus nicht unterstützten Ländern}{Rudimentary support for phone numbers from unsupported countries}
+\item \DeEn{Zusatzabstand (Kerning) von 1 Punkt vor und nach einem Schrägstrich sowie nach einem Pluszeichen}{Additional distance (kerning) of 1 point before and after a slash as well as after a plus sign}
+\item \DeEn{Ergänzung der neuen nordamerikanischen Vorwahlen}{Addition of the new North American area codes} 223 \DeEn{und}{and} 445
+\end{itemize}
 
 \end{description}
 

Modified: trunk/Master/texmf-dist/tex/latex/phonenumbers/DE_Ortsnamen.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/phonenumbers/DE_Ortsnamen.tex	2017-03-05 21:38:33 UTC (rev 43404)
+++ trunk/Master/texmf-dist/tex/latex/phonenumbers/DE_Ortsnamen.tex	2017-03-05 21:39:00 UTC (rev 43405)
@@ -1,5 +1,5 @@
 % phonenumbers package: German place names
-% Datum: 22. August 2016
+% Datum: 5. März 2017
 \tl_const:cn {c_phone_DE_ortsname_0201_tl} {Essen}
 \tl_const:cn {c_phone_DE_ortsname_0202_tl} {Wuppertal}
 \tl_const:cn {c_phone_DE_ortsname_0203_tl} {Duisburg}
@@ -1154,7 +1154,7 @@
 \tl_const:cn {c_phone_DE_ortsname_036042_tl} {Tonna}
 \tl_const:cn {c_phone_DE_ortsname_036043_tl} {Kirchheilingen}
 \tl_const:cn {c_phone_DE_ortsname_03605_tl} {Leinefelde}
-\tl_const:cn {c_phone_DE_ortsname_03606_tl} {Heiligenstadt~Heilbad}
+\tl_const:cn {c_phone_DE_ortsname_03606_tl} {Heilbad~Heiligenstadt}
 \tl_const:cn {c_phone_DE_ortsname_036071_tl} {Teistungen}
 \tl_const:cn {c_phone_DE_ortsname_036072_tl} {Wei\ss enborn-L\"uderode}
 \tl_const:cn {c_phone_DE_ortsname_036074_tl} {Worbis}
@@ -1477,35 +1477,35 @@
 \tl_const:cn {c_phone_DE_ortsname_038203_tl} {Bad~Doberan}
 \tl_const:cn {c_phone_DE_ortsname_038204_tl} {Broderstorf}
 \tl_const:cn {c_phone_DE_ortsname_038205_tl} {Tessin~bei~Rostock}
-\tl_const:cn {c_phone_DE_ortsname_038206_tl} {Graal-M\"uritz~Seeheilbad}
+\tl_const:cn {c_phone_DE_ortsname_038206_tl} {Seeheilbad~Graal-M\"uritz}
 \tl_const:cn {c_phone_DE_ortsname_038207_tl} {St\"abelow}
 \tl_const:cn {c_phone_DE_ortsname_038208_tl} {Kavelstorf}
 \tl_const:cn {c_phone_DE_ortsname_038209_tl} {Sanitz~bei~Rostock}
 \tl_const:cn {c_phone_DE_ortsname_03821_tl} {Ribnitz-Damgarten}
-\tl_const:cn {c_phone_DE_ortsname_038220_tl} {Wustrow~Ostseebad}
+\tl_const:cn {c_phone_DE_ortsname_038220_tl} {Ostseebad~Wustrow}
 \tl_const:cn {c_phone_DE_ortsname_038221_tl} {Marlow}
 \tl_const:cn {c_phone_DE_ortsname_038222_tl} {Semlow}
 \tl_const:cn {c_phone_DE_ortsname_038223_tl} {Saal~Vorpommern}
 \tl_const:cn {c_phone_DE_ortsname_038224_tl} {Gresenhorst}
 \tl_const:cn {c_phone_DE_ortsname_038225_tl} {Trinwillershagen}
-\tl_const:cn {c_phone_DE_ortsname_038226_tl} {Dierhagen~Ostseebad}
+\tl_const:cn {c_phone_DE_ortsname_038226_tl} {Ostseebad~Dierhagen}
 \tl_const:cn {c_phone_DE_ortsname_038227_tl} {L\"udershagen~bei~Barth}
 \tl_const:cn {c_phone_DE_ortsname_038228_tl} {Dettmannsdorf-K\"olzow}
 \tl_const:cn {c_phone_DE_ortsname_038229_tl} {Bad~S\"ulze}
 \tl_const:cn {c_phone_DE_ortsname_038231_tl} {Barth}
-\tl_const:cn {c_phone_DE_ortsname_038232_tl} {Zingst~Ostseebad}
-\tl_const:cn {c_phone_DE_ortsname_038233_tl} {Prerow~Ostseebad}
+\tl_const:cn {c_phone_DE_ortsname_038232_tl} {Ostseebad~Zingst}
+\tl_const:cn {c_phone_DE_ortsname_038233_tl} {Ostseebad~Prerow}
 \tl_const:cn {c_phone_DE_ortsname_038234_tl} {Born~auf~dem~Dar\ss}
 \tl_const:cn {c_phone_DE_ortsname_038292_tl} {Kr\"opelin}
-\tl_const:cn {c_phone_DE_ortsname_038293_tl} {K\"uhlungsborn~Ostseebad}
+\tl_const:cn {c_phone_DE_ortsname_038293_tl} {Ostseebad~K\"uhlungsborn}
 \tl_const:cn {c_phone_DE_ortsname_038294_tl} {Neubukow}
 \tl_const:cn {c_phone_DE_ortsname_038295_tl} {Satow~bei~Bad~Doberan}
-\tl_const:cn {c_phone_DE_ortsname_038296_tl} {Rerik~Ostseebad}
+\tl_const:cn {c_phone_DE_ortsname_038296_tl} {Ostseebad~Rerik}
 \tl_const:cn {c_phone_DE_ortsname_038297_tl} {Moitin}
 \tl_const:cn {c_phone_DE_ortsname_038300_tl} {Insel~Hiddensee}
 \tl_const:cn {c_phone_DE_ortsname_038301_tl} {Putbus}
 \tl_const:cn {c_phone_DE_ortsname_038302_tl} {Sagard}
-\tl_const:cn {c_phone_DE_ortsname_038303_tl} {Sellin~Ostseebad}
+\tl_const:cn {c_phone_DE_ortsname_038303_tl} {Ostseebad~Sellin}
 \tl_const:cn {c_phone_DE_ortsname_038304_tl} {Garz~R\"ugen}
 \tl_const:cn {c_phone_DE_ortsname_038305_tl} {Gingst}
 \tl_const:cn {c_phone_DE_ortsname_038306_tl} {Samtens}
@@ -1542,12 +1542,12 @@
 \tl_const:cn {c_phone_DE_ortsname_038375_tl} {Koserow}
 \tl_const:cn {c_phone_DE_ortsname_038376_tl} {Zirchow}
 \tl_const:cn {c_phone_DE_ortsname_038377_tl} {Zinnowitz}
-\tl_const:cn {c_phone_DE_ortsname_038378_tl} {Heringsdorf~Seebad}
+\tl_const:cn {c_phone_DE_ortsname_038378_tl} {Seebad~Heringsdorf}
 \tl_const:cn {c_phone_DE_ortsname_038379_tl} {Benz~Usedom}
 \tl_const:cn {c_phone_DE_ortsname_03838_tl} {Bergen~auf~R\"ugen}
 \tl_const:cn {c_phone_DE_ortsname_038391_tl} {Altenkirchen~R\"ugen}
 \tl_const:cn {c_phone_DE_ortsname_038392_tl} {Sassnitz}
-\tl_const:cn {c_phone_DE_ortsname_038393_tl} {Binz~Ostseebad}
+\tl_const:cn {c_phone_DE_ortsname_038393_tl} {Ostseebad~Binz}
 \tl_const:cn {c_phone_DE_ortsname_03841_tl} {Wismar~Mecklenburg}
 \tl_const:cn {c_phone_DE_ortsname_038422_tl} {Neukloster}
 \tl_const:cn {c_phone_DE_ortsname_038423_tl} {Bad~Kleinen}

Modified: trunk/Master/texmf-dist/tex/latex/phonenumbers/US_Ortsnamen.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/phonenumbers/US_Ortsnamen.tex	2017-03-05 21:38:33 UTC (rev 43404)
+++ trunk/Master/texmf-dist/tex/latex/phonenumbers/US_Ortsnamen.tex	2017-03-05 21:39:00 UTC (rev 43405)
@@ -1,5 +1,5 @@
 % phonenumbers package: place names of the North American Numbering Plan
-% Datum: 6. November 2016
+% Datum: 5. März 2017
 \tl_const:cn {c_phone_US_ortsname_201_tl} {New~Jersey}
 \tl_const:cn {c_phone_US_ortsname_202_tl} {Washington,~D.\,C.}
 \tl_const:cn {c_phone_US_ortsname_203_tl} {Connecticut}
@@ -19,6 +19,7 @@
 \tl_const:cn {c_phone_US_ortsname_218_tl} {Minnesota}
 \tl_const:cn {c_phone_US_ortsname_219_tl} {Indiana}
 \tl_const:cn {c_phone_US_ortsname_220_tl} {Ohio}
+\tl_const:cn {c_phone_US_ortsname_223_tl} {Pennsylvania}
 \tl_const:cn {c_phone_US_ortsname_224_tl} {Illinois}
 \tl_const:cn {c_phone_US_ortsname_225_tl} {Louisiana}
 \tl_const:cn {c_phone_US_ortsname_226_tl} {Ontario}
@@ -126,6 +127,7 @@
 \tl_const:cn {c_phone_US_ortsname_441_tl} {Bermuda}
 \tl_const:cn {c_phone_US_ortsname_442_tl} {California}
 \tl_const:cn {c_phone_US_ortsname_443_tl} {Maryland}
+\tl_const:cn {c_phone_US_ortsname_445_tl} {Pennsylvania}
 \tl_const:cn {c_phone_US_ortsname_450_tl} {Quebec}
 \tl_const:cn {c_phone_US_ortsname_458_tl} {Oregon}
 \tl_const:cn {c_phone_US_ortsname_463_tl} {Indiana}

Modified: trunk/Master/texmf-dist/tex/latex/phonenumbers/US_Vorwahlen.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/phonenumbers/US_Vorwahlen.tex	2017-03-05 21:38:33 UTC (rev 43404)
+++ trunk/Master/texmf-dist/tex/latex/phonenumbers/US_Vorwahlen.tex	2017-03-05 21:39:00 UTC (rev 43405)
@@ -1,5 +1,5 @@
 % phonenumbers package: area codes of the North American Numbering Plan
-% Datum: 6. November 2016
+% Datum: 5. März 2017
 \clist_const:Nn \c_phone_US_ortsvorwahlliste_clist {201,
 202,
 203,
@@ -19,6 +19,7 @@
 218,
 219,
 220,
+223,
 224,
 225,
 226,
@@ -126,6 +127,7 @@
 441,
 442,
 443,
+445,
 450,
 458,
 463,
@@ -388,6 +390,7 @@
 214,
 215,
 220,
+223,
 224,
 226,
 234,
@@ -408,9 +411,8 @@
 305,
 310,
 312,
-% 315, Bisher 7D, 10D ab 11. März 2017 (Einführung von 680 in New York)
+315,
 317,
-% 321, "Home NPA local calls are 7D in Brevard County"
 330,
 331,
 332,
@@ -443,6 +445,7 @@
 438,
 442,
 443,
+445,
 450,
 458,
 463,
@@ -497,6 +500,7 @@
 713,
 714,
 715,
+% 717, Bisher 7D, 10D ab 26. September 2017 (Einführung von 445 in Pennsylvania)
 718,
 720,
 724,

Modified: trunk/Master/texmf-dist/tex/latex/phonenumbers/phonenumbers.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/phonenumbers/phonenumbers.sty	2017-03-05 21:38:33 UTC (rev 43404)
+++ trunk/Master/texmf-dist/tex/latex/phonenumbers/phonenumbers.sty	2017-03-05 21:39:00 UTC (rev 43405)
@@ -2,8 +2,8 @@
 % LaTeX-Paket zur Formatierung von Telefonnummern
 % LaTeX package for formatting telephone numbers
 % Autor: K. Wehr
-% Version: 1.1.1
-% Datum: 13. November 2016
+% Version: 1.2
+% Datum: 5. März 2017
 
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3
@@ -15,7 +15,7 @@
 
 
 \RequirePackage{expl3}
-\ProvidesExplPackage {phonenumbers} {2016/11/13} {1.1.1} {Telephone number package}
+\ProvidesExplPackage {phonenumbers} {2017/03/05} {1.2} {Telephone number package}
 
 \RequirePackage{xparse}
 \RequirePackage{l3keys2e}
@@ -24,6 +24,8 @@
 \clist_const:Nn \c_phone_ziffern_clist {0,1,2,3,4,5,6,7,8,9}
 
 \tl_const:Nn \c_phone_bindestrich_tl {\kern1pt - \kern1pt}
+\tl_const:Nn \c_phone_schraegstrich_tl {\kern1pt \slash \kern1pt}
+\tl_const:Nn \c_phone_pluszeichen_tl {+ \kern1pt}
 
 \str_new:N \l_phone_land_str
 \str_new:N \l_phone_heimatland_str
@@ -31,10 +33,12 @@
 \str_new:N \l_phone_vorwahldarstellung_str
 \str_new:N \l_phone_vorwahltrennung_str
 \str_new:N \l_phone_heimatvorwahl_str
-\str_new:N \l_phone_bereinigte_eingabe_str
+\str_new:N \l_phone_bereinigte_nummer_str
+\str_new:N \l_phone_bereinigte_durchwahl_str
 \str_new:N \l_phone_linktext_str
 
 \int_new:N \l_phone_ziffernzahl_int
+\int_new:N \l_phone_nummerlaenge_int
 
 \tl_new:N \l_phone_ausgabetext_tl
 \tl_new:N \l_phone_formatierte_nummer_tl
@@ -44,6 +48,8 @@
 \bool_new:N \l_phone_eingabe_leer_bool
 \bool_new:N \l_phone_durchwahl_leer_bool
 \bool_new:N \l_phone_nummer_verlinken_bool
+\bool_new:N \l_phone_erstes_zeichen_bool
+\bool_new:N \l_phone_plusnummer_bool
 
 \cs_generate_variant:Nn \str_if_eq:nnT {xnT}
 \cs_generate_variant:Nn \str_if_eq:nnTF {xnTF}
@@ -52,10 +58,7 @@
 \cs_generate_variant:Nn \str_case:nnTF {VnTF,xnTF}
 \cs_generate_variant:Nn \str_put_right:Nn {NV}
 \cs_generate_variant:Nn \tl_put_right:Nn {Nv}
-\cs_generate_variant:Nn \msg_new:nnn {nnx}
-\cs_generate_variant:Nn \msg_info:nnn {nnV}
 \cs_generate_variant:Nn \msg_info:nnnn {nnnv}
-\cs_generate_variant:Nn \msg_warning:nnnn {nnnx}
 
 
 \msg_new:nnn {phonenumbers} {illegal~character}
@@ -103,6 +106,16 @@
       extension~(Durchwahl)~of~#1~phone~number~ignored~\msg_line_context:
    }
 
+\msg_new:nnn {phonenumbers} {home~country~set}
+   {
+      home~country~set~to~\l_phone_heimatland_str\ \msg_line_context:
+   }
+
+\msg_new:nnn {phonenumbers} {home~country~cleared}
+   {
+      home~country~\l_phone_heimatland_str\ has~been~deleted~\msg_line_context:
+   }
+
 \msg_new:nnn {phonenumbers} {home~area~code~set}
    {
       Your~home~is~in~#2~(area~code~#1)~according~to~line~\msg_line_number:.
@@ -110,7 +123,7 @@
 
 \msg_new:nnn {phonenumbers} {home~area~code~cleared}
    {
-      home~area~code~#1~was~deleted~\msg_line_context:
+      home~area~code~\l_phone_heimatvorwahl_str\ has~been~deleted~\msg_line_context:
    }
 
 \msg_new:nnn {phonenumbers} {invalid~home~area~code}
@@ -118,15 +131,27 @@
       #1~unknown~as~#2~geographic~area~code~(Ortsvorwahl)~\msg_line_context:
    }
 
+\msg_new:nnn {phonenumbers} {invalid~country~code}
+   {
+      illegal~country~code~\msg_line_context:
+   }
 
+\msg_new:nnn {phonenumbers} {country~code~only}
+   {
+      phone~number~consists~of~a~country~code~only~\msg_line_context:
+   }
+
 \cs_new:Npn \phone_landesadjektiv:n #1
    {
-      \str_case:nn {#1}
+      \str_case:nnF {#1}
          {
             {DE} {German}
             {FR} {French}
             {US} {American}
          }
+         {
+            not~supported
+         }
    }
 
 \cs_generate_variant:Nn \phone_landesadjektiv:n {V}
@@ -144,6 +169,33 @@
 
 \keys_define:nn {phonenumbers}
    {
+      home-country .choices:nn = {DE,FR,US,none}
+         {
+            \str_if_eq:VnTF \l_keys_choice_tl {none}
+               {
+                  \str_if_empty:NF \l_phone_heimatland_str
+                     {
+                        \msg_info:nn {phonenumbers} {home~country~cleared}
+                        \str_clear:N \l_phone_heimatland_str
+                     }
+               }
+               {
+                  \str_set_eq:NN \l_phone_heimatland_str \l_keys_choice_tl
+                  \msg_info:nn {phonenumbers} {home~country~set}
+               }
+
+            \str_if_empty:NF \l_phone_heimatvorwahl_str
+                {
+                    \msg_info:nn {phonenumbers} {home~area~code~cleared}
+                    \str_clear:N \l_phone_heimatvorwahl_str
+                }
+         },
+      home-country .initial:n = none,
+      home-country .value_required:n = true
+   }
+
+\keys_define:nn {phonenumbers}
+   {
       foreign .choices:nn = {off,european,american,international}
          {
             \str_set_eq:NN \l_phone_auslandsvorwahltyp_str \l_keys_choice_tl
@@ -196,25 +248,30 @@
                {
                   \str_if_empty:NF \l_phone_heimatvorwahl_str
                      {
-                        \msg_info:nnV {phonenumbers} {home~area~code~cleared} \l_phone_heimatvorwahl_str
+                        \msg_info:nn {phonenumbers} {home~area~code~cleared}
                         \str_clear:N \l_phone_heimatvorwahl_str
                      }
                }
                {
-                  \str_case:VnF {\l_phone_land_str}
+                  \str_if_empty:NT \l_phone_heimatland_str
                      {
+                        \str_set_eq:NN \l_phone_heimatland_str \l_phone_land_str
+                        \msg_info:nn {phonenumbers} {home~country~set}
+                     }
+
+                  \str_case:VnF {\l_phone_heimatland_str}
+                     {
                         {FR} {\phone_FR_heimatvorwahl_festlegen:n {#1}}
                         {US} {\phone_US_heimatvorwahl_festlegen:n {#1}}
                      }
                      {
-                        \clist_if_in:cnTF {c_phone_\l_phone_land_str _ortsvorwahlliste_clist} {#1}
+                        \clist_if_in:cnTF {c_phone_\l_phone_heimatland_str _ortsvorwahlliste_clist} {#1}
                            {
-                              \str_set_eq:NN \l_phone_heimatland_str \l_phone_land_str
                               \str_set:Nn \l_phone_heimatvorwahl_str {#1}
-                              \msg_info:nnnv {phonenumbers} {home~area~code~set} {#1} {c_phone_\l_phone_land_str _ortsname_#1_tl}
+                              \msg_info:nnnv {phonenumbers} {home~area~code~set} {#1} {c_phone_\l_phone_heimatland_str _ortsname_#1_tl}
                            }
                            {
-                              \msg_warning:nnnx {phonenumbers} {invalid~home~area~code} {#1} {\phone_landesadjektiv:V \l_phone_land_str}
+                              \msg_warning:nnnx {phonenumbers} {invalid~home~area~code} {#1} {\phone_landesadjektiv:V \l_phone_heimatland_str}
                            }
                      }
                }
@@ -224,7 +281,7 @@
    }
 
 
-\cs_new:Npn \phone_gruppierte_ziffernfolge_ausgeben:n #1
+\cs_new:Npn \phone_gruppierte_ziffernfolge_schreiben:n #1
    {
       \int_set:Nn \l_phone_ziffernzahl_int {\tl_count:n {#1}}
       \tl_clear:N \l_phone_formatierte_nummer_tl
@@ -243,10 +300,11 @@
       \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_formatierte_nummer_tl
    }
 
-\cs_generate_variant:Nn \phone_gruppierte_ziffernfolge_ausgeben:n {V,x}
+\cs_generate_variant:Nn \phone_gruppierte_ziffernfolge_schreiben:n {V,x}
 
 
-\cs_new:Npn \phone_auslandsvorwahl_ausgeben:n #1
+% #1: Landeskennzahl
+\cs_new:Npn \phone_auslandsvorwahl_schreiben:n #1
    {
       \str_case:VnTF \l_phone_land_str
          {
@@ -256,59 +314,142 @@
          {
             \str_case:Vn \l_phone_auslandsvorwahltyp_str
                {
-                  {international} {\tl_put_right:Nn \l_phone_ausgabetext_tl {+#1}}
-                  {european} {\phone_gruppierte_ziffernfolge_ausgeben:n {00#1}}
-                  {american} {\phone_gruppierte_ziffernfolge_ausgeben:n {011#1}}
+                  {international} {\tl_put_right:Nn \l_phone_ausgabetext_tl {\c_phone_pluszeichen_tl #1}}
+                  {european} {\phone_gruppierte_ziffernfolge_schreiben:n {00#1}}
+                  {american} {\phone_gruppierte_ziffernfolge_schreiben:n {011#1}}
                }
          }
          {
             \tl_put_right:Nx \l_phone_ausgabetext_tl
                {
-                  \str_case:Vn \l_phone_auslandsvorwahltyp_str
+                  \str_case:VnF \l_phone_auslandsvorwahltyp_str
                      {
-                        {international} {+ #1}
                         {european} {00 #1}
                         {american} {011 #1}
                      }
+                     {
+                        \c_phone_pluszeichen_tl #1
+                     }
                }
          }
    }
 
-\cs_generate_variant:Nn \phone_auslandsvorwahl_ausgeben:n {x}
+\cs_generate_variant:Nn \phone_auslandsvorwahl_schreiben:n {x,V}
 
 
-% #1: eingebene Nummer, #2: Handelt es sich um eine Durchwahl?
-\cs_new:Npn \phone_eingabe_ueberpruefen:nN #1#2
+% #1: eingebene Nummer
+\cs_new:Npn \phone_nummer_ueberpruefen:n #1
    {
       \tl_if_blank:nTF {#1}
          {
-            \bool_if:NTF #2
+            \msg_warning:nn {phonenumbers} {empty~input}
+            \bool_set_true:N \l_phone_eingabe_leer_bool
+         }
+         {
+            \bool_set_false:N \l_phone_eingabe_leer_bool
+         }
+
+      \str_clear:N \l_phone_bereinigte_nummer_str
+
+      \bool_set_true:N \l_phone_erstes_zeichen_bool
+      \bool_set_false:N \l_phone_plusnummer_bool
+
+      \tl_map_inline:nn {#1}
+         {
+            \clist_if_in:NnTF \c_phone_ziffern_clist {##1}
                {
-                  \msg_warning:nn {phonenumbers} {empty~extension}
-                  \bool_set_true:N \l_phone_durchwahl_leer_bool
+                  \str_put_right:Nn \l_phone_bereinigte_nummer_str {##1}
                }
                {
-                  \msg_warning:nn {phonenumbers} {empty~input}
-                  \bool_set_true:N \l_phone_eingabe_leer_bool
+                  \bool_if:NTF \l_phone_erstes_zeichen_bool
+                     {
+                        \bool_set_true:N \l_phone_plusnummer_bool
+                     }
+                     {
+                        \msg_warning:nnx {phonenumbers} {illegal~character} {##1}
+                     }
                }
+
+              \bool_set_false:N \l_phone_erstes_zeichen_bool
          }
+
+      \bool_if:NT \l_phone_plusnummer_bool
          {
-            \bool_if:NTF #2
+            \int_set:Nn \l_tmpa_int {\str_count:N \l_phone_bereinigte_nummer_str}
+
+            \int_compare:nNnTF {\l_tmpa_int} > {1}
                {
-                  \bool_set_false:N \l_phone_durchwahl_leer_bool
+                  \str_if_eq:xnTF {\str_head:N \l_phone_bereinigte_nummer_str} {1}
+                     {
+                        \str_set:Nn \l_phone_land_str {US}
+                        \str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {2} {-1}}
+                     }
+                     {
+                        \int_compare:nNnTF {\l_tmpa_int} > {2}
+                           {
+                              \str_case:xnTF {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {2}}
+                                 {
+                                    {49} {\str_set:Nn \l_phone_land_str {DE}}
+                                    {33} {\str_set:Nn \l_phone_land_str {FR}}
+                                 }
+                                 {
+                                    \str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {3} {-1}}
+                                    \str_put_left:Nn \l_phone_bereinigte_nummer_str {0}
+                                 }
+                                 {
+                                    \int_compare:nNnTF {\l_tmpa_int} > {3}
+                                       {
+                                          \str_case:xnTF {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {3}}
+                                             {
+                                                {262} {\str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1}}}
+                                                {508} { } % Saint-Pierre-et-Miquelon
+                                                {590} {\str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1}}}
+                                                {594} {\str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1}}}
+                                                {596} {\str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1}}}
+                                             }
+                                             {
+                                                \str_set:Nn \l_phone_land_str {FR}
+                                                \str_put_left:Nn \l_phone_bereinigte_nummer_str {0}
+                                             }
+                                             {
+                                                \str_clear:N \l_phone_land_str % Länge größer 3, nicht mit 262, 508, 590, 594 oder 596 beginnend
+                                             }
+                                       }
+                                       {
+                                          \str_clear:N \l_phone_land_str % Länge 3, nicht mit 49 oder 33 beginnend
+                                       }
+                                 }
+                           }
+                           {
+                              \str_clear:N \l_phone_land_str % Länge 2, nicht mit 1 beginnend
+                           }
+                     }
                }
                {
-                  \bool_set_false:N \l_phone_eingabe_leer_bool
+                  \str_clear:N \l_phone_land_str % Länge kleiner oder gleich 1
                }
          }
+   }
 
-      \str_clear:N \l_phone_bereinigte_eingabe_str
+% #1: eingebene Durchwahl
+\cs_new:Npn \phone_durchwahl_ueberpruefen:n #1
+   {
+      \tl_if_blank:nTF {#1}
+         {
+            \msg_warning:nn {phonenumbers} {empty~extension}
+            \bool_set_true:N \l_phone_durchwahl_leer_bool
+         }
+         {
+            \bool_set_false:N \l_phone_durchwahl_leer_bool
+         }
 
+      \str_clear:N \l_phone_bereinigte_durchwahl_str
+
       \tl_map_inline:nn {#1}
          {
             \clist_if_in:NnTF \c_phone_ziffern_clist {##1}
                {
-                  \str_put_right:Nn \l_phone_bereinigte_eingabe_str {##1}
+                  \str_put_right:Nn \l_phone_bereinigte_durchwahl_str {##1}
                }
                {
                   \msg_warning:nnx {phonenumbers} {illegal~character} {##1}
@@ -316,6 +457,7 @@
          }
    }
 
+
 \cs_new:Npn \phone_nummerntext_ausgeben:
    {
       \bool_if:nTF {\l_phone_nummer_verlinken_bool && !\str_if_empty_p:N \l_phone_linktext_str}
@@ -333,56 +475,39 @@
          }
    }
 
-\cs_new:Npn \phone_nummer_ohne_durchwahl_ausgeben:n #1
+\cs_new:Npn \phone_nummer_ohne_durchwahl_ausgeben:
    {
-      \phone_eingabe_ueberpruefen:nN {#1} \c_false_bool
-
       \bool_if:NF \l_phone_eingabe_leer_bool
          {
-            \str_case:Vn \l_phone_land_str
+            \str_case:VnF \l_phone_land_str
                {
-                  {DE} {\phone_DE_nummer_ausgeben:V \l_phone_bereinigte_eingabe_str}
-                  {FR} {\phone_FR_nummer_ausgeben:V \l_phone_bereinigte_eingabe_str}
-                  {US} {\phone_US_nummer_ausgeben:V \l_phone_bereinigte_eingabe_str}
+                  {DE} {\phone_DE_nummer_schreiben:}
+                  {FR} {\phone_FR_nummer_schreiben:}
+                  {US} {\phone_US_nummer_schreiben:}
                }
+               {
+                  \phone_SONST_nummer_schreiben:
+               }
          }
 
       \phone_nummerntext_ausgeben:
    }
 
-% #1: Nummer, #2: Durchwahl
-\cs_new:Npn \phone_nummer_mit_durchwahl_ausgeben:nn #1#2
+\cs_new:Npn \phone_nummer_mit_durchwahl_ausgeben:
    {
       \str_if_eq:VnTF \l_phone_land_str {DE}
          {
-            \phone_eingabe_ueberpruefen:nN {#1} \c_false_bool
-            \str_set_eq:NN \l_tmpa_str \l_phone_bereinigte_eingabe_str
+            \phone_DE_nummer_schreiben:
 
-            \phone_eingabe_ueberpruefen:nN {#2} \c_true_bool
-            \str_set_eq:NN \l_phone_DE_durchwahl_str \l_phone_bereinigte_eingabe_str
-
-            \phone_DE_nummer_ausgeben:V \l_tmpa_str
-
             \phone_nummerntext_ausgeben:
          }
          {
-            \str_set:Nx \l_tmpa_str
-               {
-                  \str_case:Vn \l_phone_land_str
-                     {
-                        {FR} {French}
-                        {US} {American}
-                     }
-               }
-
-            \phone_eingabe_ueberpruefen:nN {#2} \c_true_bool
-
             \bool_if:NF \l_phone_durchwahl_leer_bool
                {
-                  \msg_warning:nnx {phonenumbers} {illegal~extension} {\l_tmpa_str}
+                  \msg_warning:nnx {phonenumbers} {illegal~extension} {\phone_landesadjektiv:V \l_phone_land_str}
                }
 
-            \phone_nummer_ohne_durchwahl_ausgeben:n {#1}
+            \phone_nummer_ohne_durchwahl_ausgeben:
          }
    }
 
@@ -412,8 +537,8 @@
 
             \str_case:VnTF \l_phone_land_str
                {
-                  {DE} {\phone_DE_gruppierte_vorwahl_ausgeben:nN {##1} \c_true_bool}
-                  {FR} {\phone_gruppierte_ziffernfolge_ausgeben:n {##1}}
+                  {DE} {\phone_DE_gruppierte_vorwahl_schreiben:nN {##1} \c_true_bool}
+                  {FR} {\phone_gruppierte_ziffernfolge_schreiben:n {##1}}
                }
                {
                   \tl_use:N \l_phone_ausgabetext_tl
@@ -446,12 +571,15 @@
             \keys_set:nn {phonenumbers} {#1}
          }
 
+      \phone_nummer_ueberpruefen:n {#2}
+
       \IfValueTF {#3}
          {
-            \phone_nummer_mit_durchwahl_ausgeben:nn {#2} {#3}
+            \phone_durchwahl_ueberpruefen:n {#3}
+            \phone_nummer_mit_durchwahl_ausgeben:
          }
          {   
-            \phone_nummer_ohne_durchwahl_ausgeben:n {#2}
+            \phone_nummer_ohne_durchwahl_ausgeben:
          }
       \group_end:
    }
@@ -480,7 +608,27 @@
       \group_end:
    }
 
+\file_input:n {Landeskennzahlen}
 
+\NewDocumentCommand \CountryCodes { }
+   {
+      \bool_set_false:N \l_phone_zeilenumbruch_bool
+
+      \clist_map_inline:Nn \c_phone_landeskennzahlenliste_clist
+         {
+            \bool_if:NTF \l_phone_zeilenumbruch_bool
+               {
+                  \\
+               }
+               {
+                  \bool_set_true:N \l_phone_zeilenumbruch_bool
+               }
+
+            ##1
+         }
+   }
+
+
 %%%%%%%%%%%%%%%%%%%% DEUTSCHLAND %%%%%%%%%%%%%%%%%%%%
 
 \file_input:n {DE_Vorwahlen}
@@ -490,7 +638,6 @@
 \clist_concat:NNN \c_phone_DE_vorwahlliste_clist \c_phone_DE_ortsvorwahlliste_clist \c_phone_DE_sondervorwahlliste_clist
 
 \str_new:N \l_phone_DE_vorwahl_str
-\str_new:N \l_phone_DE_durchwahl_str
 \int_new:N \l_phone_DE_hauptnummerlaenge_int
 \bool_new:N \l_phone_DE_teilnehmerrufnummer_gueltig_bool
 
@@ -511,7 +658,7 @@
 
 
 % #1: Vorwahl, #2: Soll die führende null ausgegeben werden?
-\cs_new:Npn \phone_DE_gruppierte_vorwahl_ausgeben:nN #1#2
+\cs_new:Npn \phone_DE_gruppierte_vorwahl_schreiben:nN #1#2
    {
       \int_compare:nNnTF {\str_count:n {#1}} = {5}
          {
@@ -522,10 +669,10 @@
                {
                   \bool_if:nTF {#2}
                      {
-                        \phone_gruppierte_ziffernfolge_ausgeben:V \l_tmpa_str
+                        \phone_gruppierte_ziffernfolge_schreiben:V \l_tmpa_str
                      }
                      {
-                        \phone_gruppierte_ziffernfolge_ausgeben:x {\str_tail:N \l_tmpa_str}
+                        \phone_gruppierte_ziffernfolge_schreiben:x {\str_tail:N \l_tmpa_str}
                      }
 
                   \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
@@ -534,10 +681,10 @@
                {
                   \bool_if:nTF {#2}
                      {
-                        \phone_gruppierte_ziffernfolge_ausgeben:n {#1}
+                        \phone_gruppierte_ziffernfolge_schreiben:n {#1}
                      }
                      {
-                        \phone_gruppierte_ziffernfolge_ausgeben:x {\str_tail:n {#1}}
+                        \phone_gruppierte_ziffernfolge_schreiben:x {\str_tail:n {#1}}
                      }
                }
          }
@@ -544,33 +691,33 @@
          {
             \bool_if:nTF {#2}
                {
-                  \phone_gruppierte_ziffernfolge_ausgeben:n {#1}
+                  \phone_gruppierte_ziffernfolge_schreiben:n {#1}
                }
                {
-                  \phone_gruppierte_ziffernfolge_ausgeben:x {\str_tail:n {#1}}
+                  \phone_gruppierte_ziffernfolge_schreiben:x {\str_tail:n {#1}}
                }
          }
    }
 
 % #1: Vorwahl, #2: Soll die führende null ausgegeben werden?
-\cs_new:Npn \phone_DE_geklammerte_vorwahl_ausgeben:nN #1#2
+\cs_new:Npn \phone_DE_geklammerte_vorwahl_schreiben:nN #1#2
    {
       % Klammern werden nur bei Ortsvorwahlen gesetzt
       \clist_if_in:NnTF \c_phone_DE_ortsvorwahlliste_clist {#1}
          {
             \tl_put_right:Nn \l_phone_ausgabetext_tl {(}
-            \phone_DE_gruppierte_vorwahl_ausgeben:nN {#1} #2
+            \phone_DE_gruppierte_vorwahl_schreiben:nN {#1} #2
             \tl_put_right:Nn \l_phone_ausgabetext_tl {)}
          }
          {
-            \phone_DE_gruppierte_vorwahl_ausgeben:nN {#1} #2
+            \phone_DE_gruppierte_vorwahl_schreiben:nN {#1} #2
          }
    }
 
 % #1: Vorwahl, #2: Folgt eine Rufnummer?
-\cs_new:Npn \phone_DE_vorwahl_ausgeben:nN #1 #2
+\cs_new:Npn \phone_DE_vorwahl_schreiben:nN #1 #2
    {
-      \str_if_eq:VnTF \l_phone_auslandsvorwahltyp_str {off}
+      \bool_if:nTF {\str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} || \str_if_eq_p:Vn \l_phone_heimatland_str {DE}}
          {
             \clist_if_in:NnT \c_phone_DE_sondervorwahlliste_clist {#1}
                {
@@ -590,11 +737,11 @@
                                  {
                                     \str_if_eq:VnTF \l_phone_vorwahltrennung_str {brackets}
                                        {
-                                          \phone_DE_geklammerte_vorwahl_ausgeben:nN {#1} \c_true_bool
+                                          \phone_DE_geklammerte_vorwahl_schreiben:nN {#1} \c_true_bool
                                           \tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
                                        }
                                        {
-                                          \phone_DE_gruppierte_vorwahl_ausgeben:nN {#1} \c_true_bool
+                                          \phone_DE_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
       
                                           \tl_put_right:Nx \l_phone_ausgabetext_tl
                                              {
@@ -604,13 +751,13 @@
                                                       {hyphen} {\c_phone_bindestrich_tl}
                                                    }
                                                    {
-                                                      \slash
+                                                      \c_phone_schraegstrich_tl
                                                    }
                                              }
                                        }
                                  }
                                  {
-                                    \phone_DE_gruppierte_vorwahl_ausgeben:nN {#1} \c_true_bool
+                                    \phone_DE_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
                                  }
                            }
                         {place}
@@ -627,7 +774,7 @@
                                           \tl_put_right:Nv \l_phone_ausgabetext_tl {c_phone_DE_ortsname_#1_tl}
                                        }
                                        {
-                                          \phone_DE_gruppierte_vorwahl_ausgeben:nN {#1} \c_true_bool
+                                          \phone_DE_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
                                        }
       
                                     \tl_put_right:Nx \l_phone_ausgabetext_tl
@@ -639,7 +786,7 @@
                                                 {hyphen} {\c_phone_bindestrich_tl}
                                              }
                                              {
-                                                \slash
+                                                \c_phone_schraegstrich_tl
                                              }
                                        }
                                  }
@@ -649,7 +796,7 @@
                                           \tl_put_right:Nv \l_phone_ausgabetext_tl {c_phone_DE_ortsname_#1_tl}
                                        }
                                        {
-                                          \phone_DE_gruppierte_vorwahl_ausgeben:nN {#1} \c_true_bool
+                                          \phone_DE_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
                                        }
                                  }
                            }
@@ -663,7 +810,7 @@
       
                               \str_if_eq:VnTF \l_phone_vorwahltrennung_str {brackets}
                                  {
-                                    \phone_DE_geklammerte_vorwahl_ausgeben:nN {#1} \c_true_bool
+                                    \phone_DE_geklammerte_vorwahl_schreiben:nN {#1} \c_true_bool
       
                                     \bool_if:NT #2
                                        {
@@ -671,7 +818,7 @@
                                        }
                                  }
                                  {
-                                    \phone_DE_gruppierte_vorwahl_ausgeben:nN {#1} \c_true_bool
+                                    \phone_DE_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
       
                                     \bool_if:NT #2
                                        {
@@ -683,7 +830,7 @@
                                                       {hyphen} {\c_phone_bindestrich_tl}
                                                    }
                                                    {
-                                                      \slash
+                                                      \c_phone_schraegstrich_tl
                                                    }
                                              }
                                        }
@@ -693,16 +840,16 @@
                }
          }
          {
-            \phone_auslandsvorwahl_ausgeben:n {49}
+            \phone_auslandsvorwahl_schreiben:n {49}
 
             \tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
 
             \str_if_eq:VnTF \l_phone_vorwahltrennung_str {brackets}
                {
-                  \phone_DE_geklammerte_vorwahl_ausgeben:nN {#1} \c_false_bool
+                  \phone_DE_geklammerte_vorwahl_schreiben:nN {#1} \c_false_bool
                }
                {
-                  \phone_DE_gruppierte_vorwahl_ausgeben:nN {#1} \c_false_bool
+                  \phone_DE_gruppierte_vorwahl_schreiben:nN {#1} \c_false_bool
                }
 
             \bool_if:NT #2
@@ -719,7 +866,7 @@
          }
    }
 
-\cs_generate_variant:Nn \phone_DE_vorwahl_ausgeben:nN {Vx}
+\cs_generate_variant:Nn \phone_DE_vorwahl_schreiben:nN {Vx}
 
 
 % #1: Nummer, #2: Mindestlänge, #3: Höchstlänge, #4: Nummernart
@@ -747,7 +894,7 @@
    {
       \int_set:Nn \l_tmpa_int {\str_count:N #1}
       \int_add:Nn \l_tmpa_int {\str_count:n {#2}}
-      \int_add:Nn \l_tmpa_int {\str_count:N \l_phone_DE_durchwahl_str}
+      \int_add:Nn \l_tmpa_int {\str_count:N \l_phone_bereinigte_durchwahl_str}
 
       \int_compare:nNnTF {\l_tmpa_int} > {12}
          {
@@ -755,7 +902,7 @@
          }
          {
             \int_set:Nn \l_tmpa_int {\str_count:n {#2}}
-            \int_add:Nn \l_tmpa_int {\str_count:N \l_phone_DE_durchwahl_str}
+            \int_add:Nn \l_tmpa_int {\str_count:N \l_phone_bereinigte_durchwahl_str}
 
             \int_compare:nNnTF {\l_tmpa_int} < {3}
                {
@@ -774,7 +921,7 @@
    }
 
 % #1: Vorwahl, #2: Teilnehmerrufnummer
-\cs_new:Npn \phone_DE_teilnehmerrufnummer_ausgeben:Nn #1 #2
+\cs_new:Npn \phone_DE_teilnehmerrufnummer_schreiben:Nn #1 #2
    {
       % Überprüfen der Nummernlänge
       \str_if_empty:NTF #1
@@ -850,7 +997,7 @@
                {
                   % Für gültige Nummern mit Vorwahl Linktext schreiben:
                   \str_put_right:Nn \l_phone_linktext_str {#2}
-                  \str_put_right:NV \l_phone_linktext_str \l_phone_DE_durchwahl_str
+                  \str_put_right:NV \l_phone_linktext_str \l_phone_bereinigte_durchwahl_str
                }
                {
                   % Für ungültige Nummern mit Vorwahl Linktext löschen:
@@ -860,27 +1007,27 @@
 
       \bool_if:NTF \l_phone_DE_teilnehmerrufnummer_gueltig_bool
          {
-            \phone_gruppierte_ziffernfolge_ausgeben:n {#2}
+            \phone_gruppierte_ziffernfolge_schreiben:n {#2}
          }
          {
             \str_put_right:Nn \l_phone_ausgabetext_tl {#2}
          }
 
-      \str_if_empty:NF \l_phone_DE_durchwahl_str
+      \str_if_empty:NF \l_phone_bereinigte_durchwahl_str
          {
             \tl_put_right:NV \l_phone_ausgabetext_tl \c_phone_bindestrich_tl
-            \phone_gruppierte_ziffernfolge_ausgeben:V \l_phone_DE_durchwahl_str
+            \phone_gruppierte_ziffernfolge_schreiben:V \l_phone_bereinigte_durchwahl_str
          }
    }
 
-\cs_generate_variant:Nn \phone_DE_teilnehmerrufnummer_ausgeben:Nn {Nx}
+\cs_generate_variant:Nn \phone_DE_teilnehmerrufnummer_schreiben:Nn {Nx,NV}
 
 
-\cs_new_protected:Npn \phone_DE_nummer_ausgeben:n #1
+\cs_new_protected:Npn \phone_DE_nummer_schreiben:
    {
-      \str_if_eq:xnTF {\str_head:n {#1}} {0}
+      \str_if_eq:xnTF {\str_head:N \l_phone_bereinigte_nummer_str} {0}
          {
-            \int_set:Nn \l_phone_DE_hauptnummerlaenge_int {\str_count:n {#1}}
+            \int_set:Nn \l_phone_DE_hauptnummerlaenge_int {\str_count:N \l_phone_bereinigte_nummer_str}
             
             \bool_set_false:N \l_phone_vorwahl_gefunden_bool
 
@@ -890,13 +1037,13 @@
                      {
                         \int_compare:nT {\l_phone_DE_hauptnummerlaenge_int >= ##1}
                            {
-                              \str_set:Nx \l_phone_DE_vorwahl_str {\str_range:nnn {#1} {1} {##1}}
+                              \str_set:Nx \l_phone_DE_vorwahl_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {##1}}
 
                               \clist_if_in:NVT \c_phone_DE_vorwahlliste_clist \l_phone_DE_vorwahl_str
                                  {
                                     \bool_set_true:N \l_phone_vorwahl_gefunden_bool
 
-                                    \phone_DE_vorwahl_ausgeben:Vx \l_phone_DE_vorwahl_str {\int_compare_p:nNn {##1} < {\l_phone_DE_hauptnummerlaenge_int}}
+                                    \phone_DE_vorwahl_schreiben:Vx \l_phone_DE_vorwahl_str {\int_compare_p:nNn {##1} < {\l_phone_DE_hauptnummerlaenge_int}}
                                     
                                     \int_compare:nNnTF {##1} = {\l_phone_DE_hauptnummerlaenge_int}
                                        {
@@ -903,7 +1050,7 @@
                                           \msg_warning:nnn {phonenumbers} {missing~subscriber~number} {German}
                                        }
                                        {
-                                          \phone_DE_teilnehmerrufnummer_ausgeben:Nx \l_phone_DE_vorwahl_str {\str_range:nnn {#1} {##1 + 1} {-1}}
+                                          \phone_DE_teilnehmerrufnummer_schreiben:Nx \l_phone_DE_vorwahl_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1}}
                                        }
                                  }
                            }
@@ -913,18 +1060,16 @@
             \bool_if:nF {\l_phone_vorwahl_gefunden_bool}
                {
                   \msg_warning:nnn {phonenumbers} {invalid~area~code} {German}
-                  #1
-                  \str_use:N \l_phone_DE_durchwahl_str
+                  \str_use:N \l_phone_bereinigte_nummer_str
+                  \str_use:N \l_phone_bereinigte_durchwahl_str
                }
          }
          {
-            \phone_DE_teilnehmerrufnummer_ausgeben:Nn \c_empty_tl {#1}
+            \phone_DE_teilnehmerrufnummer_schreiben:NV \c_empty_tl \l_phone_bereinigte_nummer_str
          }
    }
 
-\cs_generate_variant:Nn \phone_DE_nummer_ausgeben:n {V}
 
-
 %%%%%%%%%%%%%%%%%%%% FRANKREICH %%%%%%%%%%%%%%%%%%%%
 
 \file_input:n {FR_Vorwahlen}
@@ -933,8 +1078,6 @@
 \clist_new:N \c_phone_FR_vorwahlliste_clist
 \clist_concat:NNN \c_phone_FR_vorwahlliste_clist \c_phone_FR_ortsvorwahlliste_clist \c_phone_FR_sondervorwahlliste_clist
 
-\int_new:N \l_phone_FR_nummerlaenge_int
-
 \msg_new:nnn {phonenumbers} {FR/illegal~home~area~code}
    {
       The~only~legal~home~area~code~in~France~is~0508~(Saint-Pierre-et-Miquelon).~#1~cannot~be~set~as~home~area~code~\msg_line_context:.
@@ -954,7 +1097,6 @@
             % In Frankreich ist nur 0508 für Saint-Pierre-et-Miquelon als Heimatvorwahl erlaubt:
             \str_if_eq:nnTF {#1} {0508}
                {
-                  \str_set:Nn \l_phone_heimatland_str {FR}
                   \str_set:Nn \l_phone_heimatvorwahl_str {#1}
                   \msg_info:nnnv {phonenumbers} {home~area~code~set} {#1} {c_phone_FR_ortsname_#1_tl}
                }
@@ -995,9 +1137,9 @@
    }
 
 % #1: Vorwahl
-\cs_new:Npn \phone_FR_vorwahl_ausgeben:n #1
+\cs_new:Npn \phone_FR_vorwahl_schreiben:n #1
    {
-      \str_if_eq:VnTF \l_phone_auslandsvorwahltyp_str {off}
+      \bool_if:nTF {\str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} || \str_if_eq_p:Vn \l_phone_heimatland_str {FR}}
          {
             \clist_if_in:NnT \c_phone_FR_sondervorwahlliste_clist {#1}
                {
@@ -1013,7 +1155,7 @@
                      {
                         {number}
                            {
-                              \phone_gruppierte_ziffernfolge_ausgeben:n {#1}
+                              \phone_gruppierte_ziffernfolge_schreiben:n {#1}
                               \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
                            }
                         {place}
@@ -1024,7 +1166,7 @@
                                     \tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
                                  }
                                  {
-                                    \phone_gruppierte_ziffernfolge_ausgeben:n {#1}
+                                    \phone_gruppierte_ziffernfolge_schreiben:n {#1}
                                     \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
                                  }
                            }
@@ -1036,7 +1178,7 @@
                                     \tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
                                  }
       
-                              \phone_gruppierte_ziffernfolge_ausgeben:n {#1}
+                              \phone_gruppierte_ziffernfolge_schreiben:n {#1}
                               \tl_put_right:NV \l_phone_ausgabetext_tl {\,}
                            }
                      }
@@ -1043,12 +1185,13 @@
                }
          }
          {
-            \phone_auslandsvorwahl_ausgeben:x {\phone_FR_ermittle_landeskennzahl:n {#1}}
+            \phone_auslandsvorwahl_schreiben:x {\phone_FR_ermittle_landeskennzahl:n {#1}}
+
             \tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
 
             \str_if_eq:nnF {#1} {0508}   % in Saint-Pierre-et-Miquelon entfällt die Ortsvorwahl
                {
-                  \phone_gruppierte_ziffernfolge_ausgeben:x {\str_tail:n {#1}}
+                  \phone_gruppierte_ziffernfolge_schreiben:x {\str_tail:n {#1}}
                   \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
                }
          }
@@ -1061,47 +1204,47 @@
          }
    }
 
-\cs_generate_variant:Nn \phone_FR_vorwahl_ausgeben:n {V}
+\cs_generate_variant:Nn \phone_FR_vorwahl_schreiben:n {V}
 
 
-\cs_new:Npn \phone_FR_nummer_ausgeben:n #1
+\cs_new:Npn \phone_FR_nummer_schreiben:
    {
-      \int_set:Nn \l_phone_FR_nummerlaenge_int {\str_count:n {#1}}
+      \int_set:Nn \l_phone_nummerlaenge_int {\str_count:N \l_phone_bereinigte_nummer_str}
             
-      \int_compare:nNnTF {\l_phone_FR_nummerlaenge_int} < {10}
+      \int_compare:nNnTF {\l_phone_nummerlaenge_int} < {10}
          {
-            \str_if_eq:xnTF {\str_head:n {#1}} {3}
+            \str_if_eq:xnTF {\str_head:N \l_phone_bereinigte_nummer_str} {3}
                {
-                  \int_compare:nNnTF {\l_phone_FR_nummerlaenge_int} < {4}
+                  \int_compare:nNnTF {\l_phone_nummerlaenge_int} < {4}
                      {
                         \msg_warning:nnnn {phonenumbers} {number~too~short} {French~short} {4}
-                        \tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
+                        \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
                      }
                      {
-                        \int_compare:nNnTF {\l_phone_FR_nummerlaenge_int} > {4}
+                        \int_compare:nNnTF {\l_phone_nummerlaenge_int} > {4}
                            {
                               \msg_warning:nnnn {phonenumbers} {number~too~long} {French~short} {4}
-                              \tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
+                              \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str 
                            }
                            {
-                              \phone_gruppierte_ziffernfolge_ausgeben:n {#1}
-                              \str_put_right:Nn \l_phone_linktext_str {#1}
+                              \phone_gruppierte_ziffernfolge_schreiben:V \l_phone_bereinigte_nummer_str
+                              \str_put_right:NV \l_phone_linktext_str \l_phone_bereinigte_nummer_str
                            }
                      }
                }
                {
                   \msg_warning:nnnn {phonenumbers} {number~too~short} {French} {10}
-                  \tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
+                  \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
                }
          }
          {
-            \int_compare:nNnTF {\l_phone_FR_nummerlaenge_int} > {10}
+            \int_compare:nNnTF {\l_phone_nummerlaenge_int} > {10}
                {
                   \msg_warning:nnnn {phonenumbers} {number~too~long} {French} {10}
-                  \tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
+                  \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
                }
                {
-                  \str_if_eq:xnTF {\str_head:n {#1}} {0}
+                  \str_if_eq:xnTF {\str_head:N \l_phone_bereinigte_nummer_str} {0}
                      {
                         \bool_set_false:N \l_phone_vorwahl_gefunden_bool
             
@@ -1109,18 +1252,18 @@
                            {
                               \bool_if:nF {\l_phone_vorwahl_gefunden_bool}
                                  {
-                                    \int_compare:nT {\l_phone_FR_nummerlaenge_int >= ##1}
+                                    \int_compare:nT {\l_phone_nummerlaenge_int >= ##1}
                                        {
-                                          \str_set:Nx \l_tmpa_str {\str_range:nnn {#1} {1} {##1}}
+                                          \str_set:Nx \l_tmpa_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {##1}}
             
                                           \clist_if_in:NVT \c_phone_FR_vorwahlliste_clist \l_tmpa_str
                                              {
                                                 \bool_set_true:N \l_phone_vorwahl_gefunden_bool
             
-                                                \phone_FR_vorwahl_ausgeben:V \l_tmpa_str
+                                                \phone_FR_vorwahl_schreiben:V \l_tmpa_str
                                                 
-                                                \str_set:Nx \l_tmpb_str {\str_range:nnn {#1} {##1 + 1} {-1}}
-                                                \phone_gruppierte_ziffernfolge_ausgeben:V \l_tmpb_str
+                                                \str_set:Nx \l_tmpb_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1}}
+                                                \phone_gruppierte_ziffernfolge_schreiben:V \l_tmpb_str
                                                 \str_put_right:NV \l_phone_linktext_str \l_tmpb_str
                                              }
                                        }
@@ -1130,20 +1273,18 @@
                         \bool_if:nF {\l_phone_vorwahl_gefunden_bool}
                            {
                               \msg_warning:nnn {phonenumbers} {invalid~area~code} {French}
-                              \tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
+                              \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
                            }
                      }
                      {
                         \msg_warning:nn {phonenumbers/FR} {missing~zero}
-                        \tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
+                        \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
                      }
                }
          }
    }
 
-\cs_generate_variant:Nn \phone_FR_nummer_ausgeben:n {V}
 
-
 %%%%%%%%%%%%%%%%%%%% NORDAMERIKA %%%%%%%%%%%%%%%%%%%%
 
 \file_input:n {US_Vorwahlen}
@@ -1189,9 +1330,9 @@
 % #1: Heimatvorwahl
 \cs_new:Npn \phone_US_heimatvorwahl_festlegen:n #1
    {
-      \clist_if_in:NnTF {\c_phone_US_ortsvorwahlliste_clist} {#1}
+      \clist_if_in:NnTF \c_phone_US_ortsvorwahlliste_clist {#1}
          {
-            \clist_if_in:NnTF {\c_phone_US_ortsvorwahlliste_ten_digits_clist} {#1}
+            \clist_if_in:NnTF \c_phone_US_ortsvorwahlliste_ten_digits_clist {#1}
                {
                   % 10-Ziffern-Wählen erforderlich:
                   \msg_warning:nnn {phonenumbers/US} {illegal~home~area~code} {#1}
@@ -1198,7 +1339,6 @@
                }
                {
                   % 7-Ziffern-Wählen möglich, Heimatvorwahl setzen:
-                  \str_set:Nn \l_phone_heimatland_str {US}
                   \str_set:Nn \l_phone_heimatvorwahl_str {#1}
                   \msg_info:nnnv {phonenumbers} {home~area~code~set} {#1} {c_phone_US_ortsname_#1_tl}
                }
@@ -1210,9 +1350,9 @@
    }
 
 % #1: Vorwahl, #2: Folgt eine Rufnummer?
-\cs_new:Npn \phone_US_vorwahl_ausgeben:nN #1 #2
+\cs_new:Npn \phone_US_vorwahl_schreiben:nN #1 #2
    {
-      \str_if_eq:VnTF \l_phone_auslandsvorwahltyp_str {off}
+      \bool_if:nTF {\str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} || \str_if_eq_p:Vn \l_phone_heimatland_str {US}}
          {
             \bool_if:nF {\str_if_eq_p:Vn \l_phone_heimatland_str {US} && \str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1}}
                {
@@ -1344,9 +1484,10 @@
                }
          }
          {
-            \phone_auslandsvorwahl_ausgeben:n {1}
+            \phone_auslandsvorwahl_schreiben:n {1}
 
-            \tl_put_right:Nn \l_phone_ausgabetext_tl {\c_space_tl #1}
+            \tl_put_right:Nn \l_phone_ausgabetext_tl {\c_space_tl}
+            \tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
 
             \bool_if:NT #2
                {
@@ -1361,11 +1502,11 @@
          }
    }
 
-\cs_generate_variant:Nn \phone_US_vorwahl_ausgeben:nN {VN}
+\cs_generate_variant:Nn \phone_US_vorwahl_schreiben:nN {VN}
 
 
 % #1: Ortsvorwahl, #2: Vermittlungsstellennummer
-\cs_new:Npn \phone_US_vermittlungsstellennummer_ausgeben:nn #1 #2
+\cs_new:Npn \phone_US_vermittlungsstellennummer_schreiben:nn #1 #2
    {
       \str_case:xnTF {\str_head:n {#2}}
          {
@@ -1406,7 +1547,7 @@
 
       \tl_put_right:Nn \l_phone_ausgabetext_tl {#2}
 
-      \str_if_eq:VnTF \l_phone_auslandsvorwahltyp_str {off}
+      \bool_if:nTF {\str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} || \str_if_eq_p:Vn \l_phone_heimatland_str {US}}
          {
             \tl_put_right:NV \l_phone_ausgabetext_tl \c_phone_bindestrich_tl
          }
@@ -1427,34 +1568,34 @@
          }
    }
 
-\cs_generate_variant:Nn \phone_US_vermittlungsstellennummer_ausgeben:nn {Vx}
+\cs_generate_variant:Nn \phone_US_vermittlungsstellennummer_schreiben:nn {Vx}
 
 
-\cs_new:Npn \phone_US_nummer_ausgeben:n #1
+\cs_new:Npn \phone_US_nummer_schreiben:
    {
-      \int_case:nnF {\str_count:n {#1}}
+      \int_case:nnF {\str_count:N \l_phone_bereinigte_nummer_str}
          {
             {3}
                {
-                  \clist_if_in:NnTF \c_phone_US_vorwahlliste_clist {#1}
+                  \clist_if_in:NVTF \c_phone_US_vorwahlliste_clist \l_phone_bereinigte_nummer_str
                      {
                         \msg_warning:nnn {phonenumbers} {missing~subscriber~number} {American}
                      }
                      {
-                        \msg_warning:nnn {phonenumbers/US} {invalid~area~code} {#1}
+                        \msg_warning:nnV {phonenumbers/US} {invalid~area~code} \l_phone_bereinigte_nummer_str
                      }
 
-                  \phone_US_vorwahl_ausgeben:nN {#1} \c_false_bool
+                  \phone_US_vorwahl_schreiben:VN \l_phone_bereinigte_nummer_str \c_false_bool
                }
             {7}
                {
-                  \phone_US_vermittlungsstellennummer_ausgeben:Vx \c_empty_tl {\str_range:nnn {#1} {1} {3}}
+                  \phone_US_vermittlungsstellennummer_schreiben:Vx \c_empty_tl {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {3}}
 
-                  \tl_put_right:Nx \l_phone_ausgabetext_tl {\str_range:nnn {#1} {4} {7}}
+                  \tl_put_right:Nx \l_phone_ausgabetext_tl {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {7}}
                }
             {10}
                {
-                  \str_set:Nx \l_tmpa_str {\str_range:nnn {#1} {1} {3}}
+                  \str_set:Nx \l_tmpa_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {3}}
 
                   \clist_if_in:NVF \c_phone_US_vorwahlliste_clist \l_tmpa_str
                      {
@@ -1461,16 +1602,16 @@
                         \msg_warning:nnx {phonenumbers/US} {invalid~area~code} {\l_tmpa_str}
                      }
 
-                  \phone_US_vorwahl_ausgeben:VN \l_tmpa_str \c_true_bool
+                  \phone_US_vorwahl_schreiben:VN \l_tmpa_str \c_true_bool
 
-                  \phone_US_vermittlungsstellennummer_ausgeben:Vx \l_tmpa_str {\str_range:nnn {#1} {4} {6}}
+                  \phone_US_vermittlungsstellennummer_schreiben:Vx \l_tmpa_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {6}}
 
-                  \tl_put_right:Nx \l_phone_ausgabetext_tl {\str_range:nnn {#1} {7} {10}}
-                  \str_put_right:Nx \l_phone_linktext_str {\str_range:nnn {#1} {7} {10}}
+                  \tl_put_right:Nx \l_phone_ausgabetext_tl {\str_range:Nnn \l_phone_bereinigte_nummer_str {7} {10}}
+                  \str_put_right:Nx \l_phone_linktext_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {7} {10}}
                }
          }
          {
-            \int_compare:nNnTF {\str_count:n {#1}} < {10}
+            \int_compare:nNnTF {\str_count:N \l_phone_bereinigte_nummer_str} < {10}
                {
                   \msg_warning:nnnn {phonenumbers} {number~too~short} {American} {10}
                }
@@ -1478,11 +1619,56 @@
                   \msg_warning:nnnn {phonenumbers} {number~too~long} {American} {10}
                }
 
-            \tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
+            \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
          }
    }
 
-\cs_generate_variant:Nn \phone_US_nummer_ausgeben:n {V}
 
+%%%%%%%%%%%%%%%%%%%% SONSTIGE LÄNDER %%%%%%%%%%%%%%%%%%%%
 
+\cs_new:Npn \phone_SONST_nummer_schreiben:
+   {
+      \int_set:Nn \l_phone_nummerlaenge_int {\str_count:N \l_phone_bereinigte_nummer_str}
+
+      \bool_set_false:N \l_phone_vorwahl_gefunden_bool
+
+      \int_step_inline:nnnn {3} {-1} {1}
+         {
+            \bool_if:nF {\l_phone_vorwahl_gefunden_bool}
+               {
+                  \int_compare:nT {\l_phone_nummerlaenge_int >= ##1}
+                     {
+                        \str_set:Nx \l_tmpa_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {##1}}
+            
+                        \clist_if_in:NVT \c_phone_landeskennzahlenliste_clist \l_tmpa_str
+                           {
+                              \bool_set_true:N \l_phone_vorwahl_gefunden_bool
+
+                              \phone_auslandsvorwahl_schreiben:V \l_tmpa_str
+
+                              \int_compare:nNnTF {##1} = {\l_phone_nummerlaenge_int}
+                                 {
+                                    \msg_warning:nn {phonenumbers} {country~code~only}
+                                 }
+                                 {
+                                    \tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
+                                    \tl_put_right:Nx \l_phone_ausgabetext_tl {\str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1}}
+
+                                    \str_put_right:Nn \l_phone_linktext_str {+}
+                                    \str_put_right:NV \l_phone_linktext_str \l_phone_bereinigte_nummer_str
+                                 }
+                           }
+                     }
+               }
+         }
+
+      \bool_if:nF {\l_phone_vorwahl_gefunden_bool}
+         {
+            \msg_warning:nnn {phonenumbers} {invalid~country~code}
+            \tl_put_right:NV \l_phone_ausgabetext_tl \c_phone_pluszeichen_tl
+            \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
+         }
+   }
+
+
 \ProcessKeysPackageOptions {phonenumbers}



More information about the tex-live-commits mailing list