Help:Extension:Translate/Page translation administration

specs.txt

Foo bar baz &lt;translate>

Section 1
This section is in tag1

Section2 in tag1 &lt;/translate> Foo bar baz in not translated

Turns into:

Foo bar baz &lt;translate>

Section 1
This section is in tag1

Section2 in tag1 &lt;/translate> Foo bar baz is not translated

Each such section is translated individually using Special:Translate like any other group. When translation is updated a Pagename/langcode is (re)generated.

Each modification to source page should not immediately show up for translations (vandalism, work-in-progress). There needs to be a tool (for example a new special page), that will allow choosing which revision is translated. When that revision is changed, changes to sections are checked, and translations for changed sections are fuzzied (marked for re-translation) and the translation pages should be re-generated to indicate that some translation are not up-to-date.

When updating translations, the translator should see a diff of changes.

Translation pages are generated using a template, where section positions are marked and just replaced with the translated text. The template is created from the source page at the same time as parsing the sections.

Source pages go trough some simple syntax checks, which prevent saving the page if anomalies are found.

Sections are runs of text separated with at least two new lines. They are marked with codes like, where "2" is the actual id. This should correspond to what is in the database. It should probably be possible to assign them descriptive names when they are first introduces, because they will show up in the recent changes like "Translations:Pagenamepace:Pagetitle//languagecode".

Special:Translate should be able to show list of pages that can be translated. There will be some candy showing the list of translation pages and their completion percentages, and possible re-directing the user automatically to the correct page.

Q:s
 * What to do with deleted sections?
 * A script that can purge them?

Typical select query would be like: