The technologies and programs used to maintain the FSF Europe web page should already be familiar to many developers and authors and might be of interest to those that have not yet discovered them.
Translators and occasional volunteers will most likely only get in touch with
Volunteers interested in getting deeper into the maintenance should also be familiar with
The web pages of www.fsfeurope.org are maintaned as a set of XML files. The web server generates the HTML pages from these XML files automatically every five minutes. Consequently, all editing of the pages is done in the XML files, and the HTML is never edited directly.
Every page on www.fsfeurope.org is named
"pagename.language.html" (language being the
2-letter iso-639 code of the language, like "en" for English or "de" for
German). The source files are named
"pagename.language.xhtml".
Some pages have a dynamic part: apart from the fixed texts taken from the
.xhtml file, they include information from one or several .xml files.
Whenever such a page is built, the build system takes the translated .xml
files where available, and falls back to the English version of those
.xml files that have not yet been translated. This way, such pages
can end up with parts of the text being translated and other parts still
showing in English. Examples of such pages include the
start page, the
news page, and the
events page.
The source files for the web pages are stored on Savannah, a server hosted by the Free Software Foundation, our sister organisation in North America. To get write access to these files, you can create an account on that server.
Follow this link to register a new account. Choose a login name, a password, fill in your real name and your e-mail address and click on the "Submit" button.
Now you will now receive a email from savannah. In order to complete your registration, visit the URL mentionend there. Accounts not confirmed after two days are deleted from the database.
After confirming your account, you can log in at https://savannah.gnu.org with your login name and your password.
While you can use the password to log into the web portal on Savannah, you have to register an SSH key to get CVS access. This has to be done on every machine from where you will access the CVS repository.
To create and register an SSH key, please follow the instructions given in the Savannah FAQ.
There are a lot of projects hosted on Savannah, and CVS access is granted on a per-project basis. To get access to the FSFE web page source files, you have to become a member of the FSFE project.
Choose "Group Membership" in the top tabs. Now you can enter "FSFE" into the search box of "Request for Inclusion", activate the FSF Europe check box and enter a comment.
The administrators of the FSFE project will then get a mail with your request and the comment you gave and can approve your membership in the project. After that you should see "FSF Europe" in the "Groups I'm Contributor of" after you login at savannah.
First you should make sure that your ~/.bashrc file contains a line
saying
export CVS_RSH=ssh
then create a directory for the repository and execute
$ cvs -z3 -d username@cvs.savannah.gnu.org:/web/fsfe co
.
in that directory. Now you are asked for your SSH passphrase. Enter it
and confirm. If everything is alright, now the website should be checked
out.
After you checked out the repository the first time, you should
execute
$ cvs update -d
in the fsfe directory every time before you work on a specific file.
If you want to add new files to the repository you have to execute
$ cvs add filename
To post your changes to the server, no matter be it a new file or a
modification in an existing file, execute
$ cvs commit filename
and an editor will open to allow for some description of your changes.
You can download a detailed manual for CVS at the CVS home page.
If you want to keep track with all commits that are done to the web page sources, you can subscribe to the CVS notification mailing list and you will get a mail for every change posted to the source tree.
If you have write access to the web pages, please subscribe to the Webmasters mailing list.
Please bear in mind that all your changes will become effective and visible automatically, without any further action of anybody. Consequently, there are a few things we would request you to do whenever you commit changes or new files:
The FSFE holds responsible for the content of the web pages. Please do not commit modifications that change the meaning of the text without approval from a core team member of the FSFE. (This is not necessary for translations of already existing content)
If you are posting translations, and there is any chance that others
can proofread it, use that chance. You can use the
Translators
mailing list to ask for proofreading. Whether you are translating
files or proofreading them, you are encouraged to spell-check files
using some automated tools, such as GNU aspell, ispell, or your
favourite spell-checker. For example, to use
GNU aspell on a Debian GNU/Linux
system, just install the packages aspell
and
aspell-XX
(where "XX" is your language code), then run
the command
aspell -H -d language -c file.xhtml(where "language" is the name of the dictionary for your language; the
-d
option can be omitted if your UNIX locale is the
same as the language of the dictionary).
Make sure that all files are proper XML. There is a script named
tools/validate.pl
that helps finding errors in the
markup. Improper XML breaks the automatic build process of the web
pages and blocks updates for the complete FSFE web site. If you
suspect the build process to be broken, you can view the log of the
last build run here.
The validate.pl
script requires the
XML::LibXML
Perl module; if this is not installed on
your system, you can validate files using your favourite XML
validator. For example you can use the command line
xmllint
utility from the
libxml2 project (if you are using
the Debian GNU/Linux distribution, install the
libxml2-utils
package); run the command
xmllint --noout file.xhtmland watch for possible error messages.
Make sure the encoding of the file is consistent with the content of the "encoding" attribute declared in the first line of the file. For example, if your file is encoded as "iso-8859-1" (also known as "latin-1" encoding), the first line of the file should read
<?xml version="1.0" encoding="iso-8859-1" ?>Another valid encoding is the unicode, or "UTF-8" encoding. If you want to change the encoding of a file, you can use the standard
iconv
utility, as in the following example (which
converts a file from the "latin1" to the "utf-8" encoding):
iconv -f LATIN1 -t UTF8 inputfile > outputfile
Please coordinate with other people who also have CVS commit access to make sure that translations and fixes contributed by people without commit access are committed properly after they have been proofread. Of course, please check these files before you commit them like you check your own files.
Given that the FSF Europe web page has a European/global level and user-chosen local levels that supplement them for information that is country-specific, the layout has a certain complexity that is hidden entirely from the user of the page.
Unless you only wish to translate pages (see below), please make sure you have taken a look at the structural reference.
Also, there is a Texinfo documentation file "Webmastering FSF Europe" by Jonas Öberg, who implemented the build system for the page. Please read it to know more about how the web pages works.