I. Separate language-independent contentEdit
(Separate layout, images, data, etc. from content that needs translation)
- Templates are useful for this.
- All this can have its own talk: page
- NB: R-to-L langs and L-to-R langs can't always have identical layouts. Similarly for T-to-B langs.
II. Identify key languagesEdit
(Identify languages which are accessible to most translators as source languages; use them as a nexus for translation)
- Distinguish "original content" from "source" for translation; original may not be in a key language
- Distinguish source for translation from "target content in key language"; sources for translation should be simple and free of idiom. A simplified english source for translation may not be the idiomatic english translation of the original.
- Sources will some day need to be available in multiple key languages
III. Lazy translation for simple pagesEdit
(For simple pages, have a lazy top-down translation process)
- Page P comes from a group writing in one language.
- Discussion of content takes place on Talk:P
- P is translated into key languages, then into target languages.
- Version control is handled by checking the last timestamp on P (or the simplifies source used) and on the target translation.
- At some point, work on the original can be frozen to let others catch up.
Snow carpenter 04:24, 23 February 2009 (UTC)Snow carpenter
IV. Break complex pages into simple pagesEdit
- Complex page Q gets content from people writing in a few languages.
- Separate Q into single-language subparts; treat each part as in III., using templates.
[III.] and [IV.] are good ways to start. We will eventually need better version-control for pages whose timeliness and synchronization is most important; see [V.] below.
V. Unlazy TranslationEdit
(Originals in many languages, single source for translation)
Especially needed for pages where content is being added to the same sections in many languages (like a multilingual news/stats page), in which case the above method won't work.
- Identify pages whose content is linked together. Let's call the set
of mutually intertranslated pages on a given topic a cluster of pages.
- Decide on a single source page for a cluster. It could contain
content in multiple languages -- each paragraph listed once in each key language -- or just content in (simplified) english.
- Provide a way to flag a change as 'needing translation'. (like
- Provide a way to flag a change as 'urgent'.
- Changes to each content page are translated to the source page. Changes to the source page are propagated to each content page.
- Track version numbers for each page. (Autoincluded somewhere on
- Provide a way to say "Updated from page S, revision XX" when translating S into a page T (or more generally, when synchronising S with T). This could be done in tandem with a new translation interface, which shows S and T versions together while one is updating T.
- Create a db-generated overview for each cluster, showing for each page
- ~ When it was last synched with the source (version #s of both; changes made to it since then should be propagated to the source; this will usually be the current version)
- ~ When the source was last synched with it (version #s of both; changes to the source since then should be propagated to it)
The overview will let you can see exactly how far a particular change has propagated. (bg v.49 was synched with source v.112, but only ja: has been updated from the source since then...)
Various kinds of alerts can be set up with such a system.
- 'Send me mail if one of the following languages, or the source, has an urgent update,'
- 'Leave me a banner mesg if any of the following ja: pages ever gets more than 2 revisions out of synch with its source'
Note that "when page P was last synched with me" is a transitive property (if the source is synched with page A, which is then synched with page B, the source is now synched with both A and B); so while many pages will be directly synched with other pages in the cluster rather than the source, this overview can still be kept current.
You can modify this process to allow for multiple sources for translation (a kernel of sources, in a sense), rather than just one