About the translations & hints for translators

The translations of the CSS pages, like most others on the W3C Web site, are done by volunteers. Some are of high quality, others less. They are likely to be somewhat out of date with respect to the original, English pages.

If you're looking for translations of technical specifications, the best place to look is the database of translations. Translations of other pages, like this one, which may change from time to time, are generally linked directly from the English page.

If you notice errors in any of the pages, please, let us know!

A big thanks to all the translators!

Hints for translators

If you want to help by translating one or more pages, please let us know by sending e-mail to the archived translators mailing list <>.

You don't have to be a professional translator, but we do prefer translations into your native language, for better quality. Machine translations are of too low quality, so please don't send us any.

List of translated & untranslated pages »

Location of translations

We prefer to host translations of the CSS-related pages on the W3C site. That way, we can update the common parts (navigation menu, logo, etc.) when needed.

In fact, if you are going to translate one of the CSS pages, we would like to ask you to translate not the whole page, but a stripped-down version that contains just the text to translate. And then send the translation back to us.

For example: Say you are going to translate the Learning CSS page. If you look in the source of that page, you will see a comment near the top that says: Editors & translators, please, edit learning.en.tmpl. That means that you can find the stripped-down version by replacing the last part of the URL with learning.en.tmpl. The URL of the page is something like and thus you can download the stripped-down version from the URL.

(If you prefer to translate a PO/POT file instead of an HTML file, ask us and we'll send you the POT version.)

If you are the first person to translate into a certain language, we will also ask you separately to translate a number of short sentences that occur in the common parts of all pages.

Language mark-up

All text in Web pages should normally be marked up with the name of the language in which it is written. For pages that use the W3C style sheets it is even more important, because some of the style rules are language-dependent.

As a minimum, pages should have a line like this at the top, just after the ‘doctype’ line:

<html lang="xy">

where ‘xy’ must be replaced by the 2- or 3-letter language ‘subtag’ for your language. (The link goes to the IANA Registry, which is a simple, but long text file. If you have a browser with JavaScript, you can also try Richard Ishida's language subtag lookup app, which uses JavaScript to search in that text.)

If you're not sure which is the right 2- or 3-letter code, try reading Choosing a Language Tag.

The translated text should in general have the same mark-up (tags) as the original, although it may be necessary to change the mark-up inside sentences, because word order is different between different languages.

Comments and class=notranslate

Several HTML comments in the source (‘<!-- include… -->’) are there to help with the synchronization of the original and the translations. Please, leave them as they are.

Also, there are pieces of text that are marked-up with a ‘class=notranslate’ because I believe those do not need to be translated. I may be wrong, of course. Please, use your own judgement.

Several dates are marked-up as <span class=updated>YYYY-MM-DD</span>. Please, leave those as they are. They are used, e.g., to generate the Atom/RSS feeds.

(I may at some point decide to put the dates in a TITLE attribute, or switch to HTML5, which has a special element for dates…)

Translating into right-to-left languages (Hebrew, Arabic, etc.)

Most translations have the same mark-up as the original and only the content is different, with rare exceptions. But when translating English text into a ‘bidi’ (bi-directional) language such as Hebrew or Arabic, extra mark-up is needed to indicate which text is read from right to left and which from left to right.

The tutorial Creating HTML Pages in Arabic, Hebrew and Other Right-to-left Scripts explains the HTML mark-up. For even more details, see the section Text direction in Internationalization techniques: Authoring HTML & CSS. (Hint: Look for ‘Best practices checklist’.)

Copyright and attribution

The W3C copyright license allows anybody to make translations, but there are conditions. In brief, you can make a translation as long as you clearly indicate in the translation where the original is and as long as you allow W3C to re-publish that translation.

See the IPR FAQ, in particular the sections on translating specifications, translating other documents, and ‘official' translations.

If you give us the translated text of one of the CSS pages and we publish it on the W3C site, our system automatically adds the required information and a link. It also adds the name of the translator and a link to his home page. (If you wish, you may also replace your name with the name of your organization, or remain anonymous.)

Language negotiation

In most cases, the W3C server returns an English document and only serves a translated document if the user explicitly asks for one, by clicking on the relevant link. But in some cases (some tutorials, e.g.), things are reversed: the server returns a document in the language of the user and only returns English if the user explicitly clicks on the link to the English version.

This process of automatically returning the language that the user prefers is called language negotiation and it is a feature of HTTP. The way it works, at least on this site, is that, in addition to URLs for each individual document, there is one URL that represents all translations. That URL in our case is formed by leaving off the en.html extension: if we have an English document, then the generic URL is

If the user clicks on a link to the generic URL, the server looks at the preferred language of the user (which is passed in the HTTP request) and compares it to the list of available languages. It then returns the proper document.

Many browsers allow the user to configure his language preferences (you can even have more than one), but the default is the language of the browser itself.

That means in general you should omit the extensions if you link to this server. Only if you make a link specifically to the English version of a document, you should include the .en.html at the end of the URL.

Valid HTML

Valid HTML 4.0! Translations, like all Web documents, must be valid: they must use HTML and CSS according to the respective specifications. The W3C validators can check documents for errors: the W3C mark-up validator for the HTML part and the CSS validator for the CSS part.

In most cases you will not need to change any CSS style sheets and thus you don't need the CSS validator. In fact, if you think you need to change some CSS rules, please, contact us first. It may be that you found a problem in our style sheets that we should know about.

Although invalid documents may display OK in most current browsers, valid documents have a much better chance of displaying correctly in browsers of the future.

For more information about translations, see W3C Translations.

Bert Bos, style activity lead
Copyright © 1994–2022 W3C® Privacy policy

Valid CSS! Made with CSS! Last updated Fri 01 Apr 2022 05:57:51 PM UTC


About the translations