diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..dfb3e44
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,26 @@
+ALLHTML=$(shell ls *.xml 2> /dev/null | sed 's/.xml$$/.html/' )
+STYLESHEET=page.xslt
+IMAGES=ltag-icon-en.png favicon.ico
+ME=$(shell hostname)
+ifeq ("${ME}","lilith")
+WEBSERVER=/var/www/www.langtag.net
+else
+WEBSERVER=bortzmeyer@www.langtag.net:/var/www/www.langtag.net
+endif
+GOOGLEVERIF=google75f3cadf7e9fc996.html
+
+all: ${ALLHTML}
+
+%.html: %.xml ${STYLESHEET} language-subtag-registry-version
+ xsltproc --stringparam lsr-version `cat language-subtag-registry-version` \
+ --output $@ ${STYLESHEET} $< && xmllint --noout --valid $@
+
+install: all
+ cp -a ../SQL/* .
+ touch ${GOOGLEVERIF}
+ rsync -q -a ${ALLHTML} ${GOOGLEVERIF} ${IMAGES} ltru.css registries test-suites PostgreSQL SQLite ${WEBSERVER}
+
+clean:
+ rm -f *.html
+
+
diff --git a/README.md b/README.md
index c80d55f..e21d0b8 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,8 @@
# Web-LangTag
-Code for the www.langtag.net Web site (language tag registry)
\ No newline at end of file
+Code for the [www.langtag.net](https://www.langtag.net/) Web site
+(language tag registry).
+
+The programs depend on the [GaBuZoMeu
+tools](https://www.bortzmeyer.org/gabuzomeu-parsing-language-tags.html)
+and of some programs like xsltproc and trang.
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..8023dc9
--- /dev/null
+++ b/TODO
@@ -0,0 +1,4 @@
+* Check all the links
+* Export database schemas (link to GaBuZoMeu?)
+* Configure Web site
+* HTTPS
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..a4367be
Binary files /dev/null and b/favicon.ico differ
diff --git a/find-subtags.xml b/find-subtags.xml
new file mode 100644
index 0000000..51bfd3f
--- /dev/null
+++ b/find-subtags.xml
@@ -0,0 +1,68 @@
+
+
Very often, people who are not used to language
+tagging hesitate before choosing a tag for a given
+combination of language, region, script, etc. You can find the result
+of these hesitations on the Web, with people tagging, for instance,
+japanese as jp (the proper
+subtag for the japanese language is ja,
+jp is for the country) or using subtags that are not
+registered
+because they did not find the valid
+ones. The purpose of this small text is to explain how to find a
+subtag registered in the Language Subtag Registry. There are
+many ways to do so, of course, and you are free to report
+better ways.
+
The first thing to try is probably to use Richard Ishida's
+Language Subtag Registry Search. You can enter text which appears
+in the Description or Comments field of the registry and the
+corresponding subtags will be displayed. For instance, for japanese,
+it will correctly report ja (and the script
+Jpan, which indicates the mix of
+Han, Hiragana and
+Katakana).
+
A more powerful, but probably less user-friendly, method, is to use
+the registry directly. Since its canonical form is more adapted to
+computer programs than to humans (for instance,
+Unicode characters are reported as XML escapes,
+like ç), it may be better to use of the many unofficial forms, automatically
+computed from the official one, and available for
+various environments. For instance, you may load the text version and use the Find
+function of your Web browser (Control-F in
+Firefox). Say that you are not sure of the
+proper subtag for the canadian
+aboriginal script, searching "canadian" that way soon discovers
+the subtag Cans.
+
Both Richard Ishida's Web service and the above method have a
+limit: they only use information that is in the registry. If the relationship between common
+names and the tags is not in the registry, you will not find it. For
+instance, if you want to identify "British English", you have to realize
+that that is done by constructing the tag en-GB (not en-UK) from
+subtags in the registry. Similarly, if you want to
+write texts in Alsatian, and search this word
+in the registry, you won't find anything.
+
You have to use external tools, but please check their results
+against the registry, with the tools mentioned above. A good search
+tool is
+Wikipedia. The english-speaking Wikipedia
+displays the ISO code names for most of the
+languages it talks about. Since most subtags in the registry are based
+on ISO standards, this works most of the time. For instance, the article on Alsatian will
+show the language code gsw
+(Alemannic), which, even if it is broader than the Alsatian dialect, is a good start.
+
For languages (but not scripts or dialects), another very useful
+source is Ethnologue, which is
+managed by the ISO 639 registration agency. It
+has a search function that allows you to use words that are not in the
+formal standard. For example,
+searching for "Alsatian", you'll find
+http://www.ethnologue.com/show_language.asp?code=gsw, where there is the
+comment: "Called 'Schwyzerdütsch' in Switzerland, and 'Alsatian' in France". But be careful:
+Ethnologue displays only 3-letters code, while the registry
+uses 2-letters code whenever they are available. For instance, French is
+fr, not fra.
Here is a regular expression to parse the future versions of
+language tags. Suitable for the syntax of the RFC 5646. Written by Addison Phillips, addison - at - amazon.com for the Java programming language.
+
\ No newline at end of file
diff --git a/register-new-subtag.xml b/register-new-subtag.xml
new file mode 100644
index 0000000..6b3b846
--- /dev/null
+++ b/register-new-subtag.xml
@@ -0,0 +1,196 @@
+
+
+
The language subtag registry
+includes many subtags identifying countries, languages or variants
+such as local dialects. Your favorite language and/or variant is
+probably already there. But, if it is not, you can ask for the
+registration of a new subtag. This text explains how, but the
+complete and authoritative explanation is in RFC 5646,
+specially its section 3.5, Registration Procedure for Subtags". It is
+recommended to read at least this section.
+
Before you start, a warning: the process takes time, documentation
+and the ability to defend your proposal and to back it with facts and
+references. Just sending an email saying "People in my hometown speaks
+Alsatian, I want 'als' to be registered as a language subtag" is not sufficient.
+
You have different sorts of subtags and the rules are not the same
+for all:
+
+
Subtags for types "countries" or "scripts" cannot be registered
+directly with the IETF. You have to go through
+the maintenance agencies of ISO, the language
+subtag registry managed by IETF copies the ISO standards here.
+
Only subtags of types "language" and "variant" are therefore
+considered here. In practice, chances that a "language" subtag
+registration succeeds seem limited (you will probably be redirected to
+the maintenance agencies of ISO 639; if you
+already ask them and were turned out, prepare a very good proposal if
+you want the IETF to make another choice). We then concentrate on
+"variant" subtags.
+
+
The process is the following (it is a simplified version; did I
+tell you to read the full story in section 3.5 of RFC 5646?):
+
+
Collect background information, typically references to published
+descriptions of the language or dialect. A Wikipedia page is possible but
+may be insufficient, specially since the page may change
+easily. Stable references are preferred.
+
Choose a subtag which must conform to the syntax rules explained
+in RFC 5646 (section 2.1). A variant subtag must be either a string of
+five to eight alphanumeric characters, or a string of four
+alphanumeric characters, starting with a digit. So, valencian is illegal
+(too long) while valencia is legal. 1996 is legal, too, but
+not 732.
+
Fill-in the registration form whose template is:
+
+ LANGUAGE SUBTAG REGISTRATION FORM
+ 1. Name of requester:
+ 2. E-mail address of requester:
+ 3. Record Requested:
+
+ Type:
+ Subtag:
+ Description:
+ Prefix:
+ Preferred-Value:
+ Deprecated:
+ Suppress-Script:
+ Comments:
+
+ 4. Intended meaning of the subtag:
+ 5. Reference to published description
+ of the language (book or article):
+ 6. Any other relevant information:
+
+
+Pay special attention to Prefix (in practice, most variants have a
+Prefix, which is the main language of this variant, such as
+ca for
+valencian). Think twice about Description (in general a short
+one-line sentence) and Comments (which may be longer), because the
+consistency of tagging among different taggers will heavily depend on
+the quality of these fields. Keep
+detailed scholar references for the Reference section of the request:
+the registry is not a library. Some
+fields are typically not used for a variant such as
+Suppress-Script.
Reply to questions, address objections, be prepared to modify your
+registration form and keep cool.
+
+
Let's see a complete example showing many issues (thanks to CE
+Whitehead for the nice example). The current registry has three
+entries for the french language,
+fr for today's French, frm for Middle French
+(the language spoken during the Renaissance)
+and fro for Old French (the language spoken during the
+Middle Age). This is not
+always sufficiently fine-grained to classify some old texts. So, here
+is a possible proposal to register a variant, 1606Nict,
+for the late Middle French, as described in the famous Nicot's book:
+
+LANGUAGE SUBTAG REGISTRATION FORM
+1. Name of requester: C. E. Whitehead
+2. E-mail address of requester: cewcathar@hotmail.com
+3. Record Requested:
+Type: Variant
+Subtag: 1606Nict
+ (or alternately 16siecle)
+Description: Late Middle French
+Prefix: frm
+Preferred-Value:
+Deprecated:
+Suppress-Script:
+Comments: French as catalogued in Jean Nicot, "Thresor de la langue francoyse" 1606
+
+4. Intended meaning of the subtag:
+5. Reference to published description
+of the language (book or article):
+
+* Joachim du Bellay, La deffence et illustration de la langue francoyse,
+1549; ed critique by Henri Chamard, Geneve, Slatkine Rpt. 1969
+
+* Jean Nicot, "Thresor de la langue francoyse" 1606; ARTFL Project,
+University of Chicago:
+http://portail.atilf.fr/dictionnaires/TLF-NICOT/index.htm
+
+6. Any other relevant information:
+See second request below
+
+
Do note the detailed references and the use of Prefix to
+clearly state that it is a variant of Middle French.
+
Let's see a second example from the same author, with the added
+difficulty that we use XML-like encoding for
+the composed characters (see section 3.1 of RFC 5646). This specificies the early modern French, as
+described by the french academy:
+
+LANGUAGE SUBTAG REGISTRATION FORM
+1. Name of requester: C. E. Whitehead
+2. E-mail address of requester: cewcathar@hotmail.com
+3. Record Requested:
+
+Type: Variant
+Subtag: 1694acad
+ (alternately 17siecle)
+Description: Early modern French
+Prefix: fr
+Preferred-Value:
+Deprecated:
+Suppress-Script:
+Comments: As catalogued in the "Dictionnaire de
+l'académe françoise", 4eme ed. 1694; includes
+elements of Middle French; also new terms from the Americas
+
+4. Intended meaning of the subtag:
+5. Reference to published description
+of the language (book or article):
+
+* Dictionnaire de l'académie françoise, 4eme ed. 1694; RTFL Project,
+University of Chicago:
+http://portail.atilf.fr/dictionnaires/ACADEMIE/index.htm
+
+* Fénelon, François de Salignac de La Mothe (1984), Fenelon's Letter to the
+French Academy : with an introduction and commentary.
+
+* Ayres-Bennett, Wendy (2004), Sociolinguistic variation in
+seventeenth-century France : methodology and case studies.
+
+also:
+* http://www.tsl.state.tx.us/treasures/giants/lasalle/lasalle-cover.html
+ http://teacherweb.com/FL/Cocoa/CEWhitehead/HTMLPage15.stm
+
+
It is probably useful to list some mistakes that people seem to
+make often. Keep in mind that:
+
+
Language issues are always extremely passionate, both for
+psychological (people feel very strong about their language) and
+political reasons (wars have been fought about languages). Please, try
+to keep easy and do not forget that it is perfectly normal that an
+international audience does not know your language (or the language
+you champion) and does not see things they way you do.
+
Pay attention to syntax issues (you may wish to ask a computer
+person, may be with the help of some of the software tools listed on the home page) and also be sure to fill in the form
+properly - or do not be suprised if the first reactions are on the
+syntax, not on the proposal itself. If the IETF yells at your form
+errors, do not assume it is a refusal of your language: it is simply a
+desire to enforce the documented process.
+
The IETF is not a general appeal mechanism for other standard
+bodies decisions. Other standards are imperfect, true, but so is IETF
+work, too. Please do not use the IETF language registration mechanism just
+because ISO turned you down. Variant registration is typically fine
+because no other standard body do it.
+
+
Thanks
+for reading and good luck for your future subtag
+registrations. Remember: it may seems difficult but it is worth
+it.