Translating/HowTo: Difference between revisions
m (highlight anchor usage) |
(reworking page) |
||
Line 1: | Line 1: | ||
There are many issues that make translating a not-so-simple act. The nature of |
There are many issues that make translating a not-so-simple act. The very nature of a wiki (highly mutable sources) complicates them. What follows is the sequence of steps allowing for a homogeneous structure in the wiki. Hopefuly this will allow anybody to collaborate in the [[Translating]] effort without too much overhead. |
||
== Step-by-step == |
== Step-by-step == |
||
From the point-of-view of the wiki, there are basically three tasks to hook up a translated page: |
|||
⚫ | |||
# [[#Setting up the source page|modify the source page]] — if it has never been translated; |
|||
# [[#Modifying the language bar|adding a reference]] — point/link to the translation in a standard way; and |
|||
# [[#Setting up the translated page|conditioning the translated page]] — adding some helper structure. |
|||
Most of the time, [[translators]] will only deal with the last two steps (setting up and linking the translation). |
|||
You can see an overview of the [[#Anatomy of a wiki-page|relevant structure]] of a page, and a [[#Full finished example|full finished example]] towards the end of this page. |
|||
⚫ | |||
=== Setting up the source page === |
|||
⚫ | We'll assume that you want to translate a page that is maintained by the OLPC team; meaning that it will have a reference to the [[Template:OLPC|<nowiki>{{OLPC}}</nowiki>]] template—that groups pages in the [[:Category:Pages maintained by OLPC]]—and they frequently are the entry points or that contain information that may be more obviously helpful for the local communities. |
||
⚫ | |||
<div style="font-size:80%; "> |
<div style="font-size:80%; "> |
||
Line 28: | Line 38: | ||
</div> |
</div> |
||
=== Adding the language bar === |
==== Adding the language bar ==== |
||
Although ever more rare, you may find yourself wanting to translate a page that nobody else has translated. In that case, you need to add a translations navigation bar in the original page. |
Although ever more rare, you may find yourself wanting to translate a page that nobody else has translated. In that case, you need to add a translations navigation bar in the original page. |
||
Line 54: | Line 64: | ||
</div> |
</div> |
||
=== Setting up the /translations === |
==== Setting up the /translations ==== |
||
You should follow the <nowiki>[[Original page/translations]]</nowiki> link in order to edit the page that groups the translations of a particular page, and should look something like this: |
You should follow the <tt><nowiki>[[Original page/translations]]</nowiki></tt> link in order to edit the page that groups the translations of a particular page, and should look something like this: |
||
<div style="font-size:80%; "> |
<div style="font-size:80%; "> |
||
Line 70: | Line 80: | ||
</div> |
</div> |
||
The resulting page will have a red link, denoting a missing/broken link to |
The resulting page will have a red link, denoting a missing/broken link to your future translation. Don't worry, you'll fix that in the next step. |
||
'''NOTE:''' Although you could give any name to the translated page (ie: instead of "<tt>[[The OLPC Wiki/lang-es]]</tt>" you could do "<tt>[[El Wiki de la OLPC]]</tt>"). As a matter of fact, there are quite some pages that follow that structure, but most of them are either left overs from when there wasn't a clear structure and way for adding translations. As mentioned in the [[translating]] pages, there are advantages to sticking with the <tt>/lang-[[#lang|xx]]</tt> structure, particularly because you can always create a <tt><nowiki>#REDIRECT</nowiki></tt> in the native language to your translated version. |
'''NOTE:''' Although you could give any name to the translated page (ie: instead of "<tt>[[The OLPC Wiki/lang-es]]</tt>" you could do "<tt>[[El Wiki de la OLPC]]</tt>"). As a matter of fact, there are quite some pages that follow that structure, but most of them are either left overs from when there wasn't a clear structure and way for adding translations. As mentioned in the [[translating]] pages, there are advantages to sticking with the <tt>/lang-[[#lang|xx]]</tt> structure, particularly because you can always create a <tt><nowiki>#REDIRECT</nowiki></tt> in the native language to your translated version. |
||
Line 76: | Line 86: | ||
=== Modifying the language bar === |
=== Modifying the language bar === |
||
The language bar (depicted below) has in the right a <tt>+/-</tt> link that enables you to edit the links to the translated pages. Following it you can add your target page. |
The language bar (depicted below) has in the far right a <tt>'''+/-'''</tt> link that enables you to edit the links to the translated pages. Following it you can add your target page. |
||
<div style="font-size:80%; margin-left:10%; margin-right:10%; "> |
<div style="font-size:80%; margin-left:10%; margin-right:10%; "> |
||
{{Translations | {{:Bitfrost/translations}}}} |
{{Translations | {{:Bitfrost/translations}}}} |
||
Line 88: | Line 98: | ||
The easiest way to set it up, is to go back to the original page, copy the '''wiki-text''' (in other words, either follow the ''edit'' (or ''view source'' if protected) and copy it fully and paste it to the new page. |
The easiest way to set it up, is to go back to the original page, copy the '''wiki-text''' (in other words, either follow the ''edit'' (or ''view source'' if protected) and copy it fully and paste it to the new page. |
||
==== Adding the [[Template:Translation| |
==== Adding the [[Template:Translation|Translation template]] ==== |
||
<div style="font-size:80%; "> |
<div style="font-size:80%; "> |
||
Line 128: | Line 138: | ||
</div> |
</div> |
||
For a full explanation of the parameters, see the [[#Notes|Notes]] below, in short: |
For a full explanation of the parameters, see the [[#Notes|Notes]] below, in short: |
||
'''lang''' — is the [http://www.iana.org/assignments/language-subtag-registry IANA language code] (usually 2 letters, |
'''lang''' — is the [http://www.iana.org/assignments/language-subtag-registry IANA language code] (usually 2 letters, without any further segmentation—ie: instead of ''<tt>lang-pt-BR</tt>'' (brazilian portuguese), just ''<tt>lang-pt</tt>'' (portuguese)—just to keep things simple and neutral. |
||
==== Adding the [[Template:Ongoing Translation| |
==== Adding the [[Template:Ongoing Translation|Ongoing Translation template]] ==== |
||
<div style="font-size:80%; "> |
<div style="font-size:80%; "> |
||
Line 172: | Line 182: | ||
The main purpose of the [[Template:Ongoing Translation|<nowiki>{{Ongoing Translation}}</nowiki>]] template is to inform the readers that a particular page is still not finished, therefore they can expect the presence of untranslated text or that it hasn't been reviewed enough and thus may not be quite done yet. Parallel to that notice to the reader, it does a grouping of them in the [[:Category:Ongoing Translation|Ongoing Translation category]] thus allowing other translators to find them and collaborate, review, make comments, etc. on them. |
The main purpose of the [[Template:Ongoing Translation|<nowiki>{{Ongoing Translation}}</nowiki>]] template is to inform the readers that a particular page is still not finished, therefore they can expect the presence of untranslated text or that it hasn't been reviewed enough and thus may not be quite done yet. Parallel to that notice to the reader, it does a grouping of them in the [[:Category:Ongoing Translation|Ongoing Translation category]] thus allowing other translators to find them and collaborate, review, make comments, etc. on them. |
||
==== Preserving the anchors ==== |
==== Preserving the section anchors ==== |
||
Many times, when translating you may find links between pages (translated or not) that point to a particular section. When translating this, you may find yourself either ignoring if the target page was translated, under which name if it was so, and last but not least, what is the translated header. That is not to mention the fact that maybe the translated header may be corrected or otherwise changed in future editions. |
Many times, when translating you may find links between pages (translated or not) that point to a particular section. When translating this, you may find yourself either ignoring if the target page was translated, under which name if it was so, and last but not least, what is the translated header. That is not to mention the fact that maybe the translated header may be corrected or otherwise changed in future editions. |
||
Line 239: | Line 249: | ||
|} |
|} |
||
</div> |
</div> |
||
This will serve three purposes, first the page will at least take the reader to the right page (albeit not in the correct language). Secondly, the ''Category'' will allow a simple way to check 'what is missing'. Finally, and using the ''What links here'' from the '''toolbox''' you can |
This will serve three purposes, first the page will at least take the reader to the right page (albeit not in the correct language). Secondly, the ''Category'' will allow a simple way to check 'what is missing'. Finally, and using the ''What links here'' from the '''toolbox''' you can foind out how many references to the missing page exist, giving some sense of ''need'' for it and thus guiding the translating efforts. |
||
== Full example of a wiki-page == |
|||
=== Anatomy of a wiki-page === |
|||
<div style="font-size:80%; "> |
|||
{| |
|||
|+ This 'sample' page includes all of the elements that require some level of consideration when translating |
|||
|- valign="top" style="background:lightgray; " |
|||
! <nowiki>[[Original page]]</nowiki> !! Notes on the structure |
|||
|- valign="top" |
|||
| |
|||
<nowiki>{{OLPC}}</nowiki> |
|||
'''<nowiki>== Some header ==</nowiki>''' |
|||
Some text blah... <br>blah... '''<nowiki>[[#Another header]]</nowiki>''' <br>... blah |
|||
<nowiki>== Another header ==</nowiki> |
|||
Some other text blah... <br>blah... '''<nowiki>[[Another page]]</nowiki>''' <br>and '''<nowiki>[[Another page#section|section]]</nowiki>''' <br>... blah |
|||
| <br> |
|||
; <tt><nowiki>== Some header ==</nowiki></tt> : section headers act as anchors, and their translation is sensitive as they ''anchor'' incomming links. |
|||
; <tt><nowiki>[[#Another header]]</nowiki></tt> : intra-page section linking may be simple to maintain as it's within the same page (you can search&replace local references) but will break external inbound links if changed. |
|||
; <tt><nowiki>[[Another page]]</nowiki></tt> : the most common problem with links to other pages is to know how the page title has been translated... |
|||
; <tt><nowiki>[[Another page#section|section]]</nowiki></tt> : links to specific sections in other pages pose the conflated problem of knowing ''both'' the target page name '''and''' the section name's translations. |
|||
|} |
|||
</div> |
|||
== Full |
=== Full finished example === |
||
<div style="font-size:80%; "> |
<div style="font-size:80%; "> |
||
{| |
{| |
||
Line 339: | Line 380: | ||
; shortNativeName : should be in the native language; <tt>español</tt> instead of <tt>spanish</tt>. |
; shortNativeName : should be in the native language; <tt>español</tt> instead of <tt>spanish</tt>. |
||
=== [[Template:Translation| |
=== [[Template:Translation|Translation template]] notes === |
||
For the full documentation, please see [[Template:Translation]]. |
For the full documentation, please see [[Template:Translation]]. |
||
Line 358: | Line 399: | ||
: For example [http://wiki.laptop.org/index.php?title=Template%3ATranslation&diff=35092&oldid=39128 this diff] is actually comparing two pages, NOT two versions of the same page—admitedly, they are very similar. |
: For example [http://wiki.laptop.org/index.php?title=Template%3ATranslation&diff=35092&oldid=39128 this diff] is actually comparing two pages, NOT two versions of the same page—admitedly, they are very similar. |
||
=== [[Template:Translated text| |
=== [[Template:Translated text|Translated text]] template notes === |
||
{{anchor|display}} |
{{anchor|display}} |
Revision as of 20:57, 24 June 2007
There are many issues that make translating a not-so-simple act. The very nature of a wiki (highly mutable sources) complicates them. What follows is the sequence of steps allowing for a homogeneous structure in the wiki. Hopefuly this will allow anybody to collaborate in the Translating effort without too much overhead.
Step-by-step
From the point-of-view of the wiki, there are basically three tasks to hook up a translated page:
- modify the source page — if it has never been translated;
- adding a reference — point/link to the translation in a standard way; and
- conditioning the translated page — adding some helper structure.
Most of the time, translators will only deal with the last two steps (setting up and linking the translation).
You can see an overview of the relevant structure of a page, and a full finished example towards the end of this page.
Setting up the source page
We'll assume that you want to translate a page that is maintained by the OLPC team; meaning that it will have a reference to the {{OLPC}} template—that groups pages in the Category:Pages maintained by OLPC—and they frequently are the entry points or that contain information that may be more obviously helpful for the local communities.
If the page to translate already has a language bar, you can skip down to #Modifying the language bar.
[[Original page]] | (translated page does not exist—yet) |
---|---|
{{OLPC}} == Some header == Some text blah... |
Adding the language bar
Although ever more rare, you may find yourself wanting to translate a page that nobody else has translated. In that case, you need to add a translations navigation bar in the original page.
[[Original page]] | (translated page does not exist—yet) |
---|---|
{{OLPC}} {{Translations}} == Some header == Some text blah... |
Setting up the /translations
You should follow the [[Original page/translations]] link in order to edit the page that groups the translations of a particular page, and should look something like this:
[[Original page/translations]] |
---|
[[Original page|english]] | [[Original page/lang-xx|shortNativeName]] |
The resulting page will have a red link, denoting a missing/broken link to your future translation. Don't worry, you'll fix that in the next step.
NOTE: Although you could give any name to the translated page (ie: instead of "The OLPC Wiki/lang-es" you could do "El Wiki de la OLPC"). As a matter of fact, there are quite some pages that follow that structure, but most of them are either left overs from when there wasn't a clear structure and way for adding translations. As mentioned in the translating pages, there are advantages to sticking with the /lang-xx structure, particularly because you can always create a #REDIRECT in the native language to your translated version.
Modifying the language bar
The language bar (depicted below) has in the far right a +/- link that enables you to edit the links to the translated pages. Following it you can add your target page.
Please insert the link to your page trying to keep the alphabetical order denoted by the /lang-xx sequence (if you're adding say /lang-de it should go before the link to 'english'). Also, note the spaces around the '|' that separate each language. See above on /translations for more info.
Setting up the translated page
There are several ways that you can decide to actually translate a page. But there are some things that you want to keep in mind. First of all, you must declare it as a {{Translation}} (please note the use of the singular (plural is for the original page, that has many translations). Second, you want to keep navigation and linking within the translated pages easy. And finally, you may want to preserve the original text in the translation in order to simplify the review and maintenance.
The easiest way to set it up, is to go back to the original page, copy the wiki-text (in other words, either follow the edit (or view source if protected) and copy it fully and paste it to the new page.
Adding the Translation template
[[Original page]] | [[Original page/lang-xx]] (translated page name) |
---|---|
{{OLPC}} {{Translations}} == Some header == Some text blah... |
{{OLPC}} {{Translation | lang = xx | source = Original page | version = yyyy}} == Some header == Some text blah... |
For a full explanation of the parameters, see the Notes below, in short: lang — is the IANA language code (usually 2 letters, without any further segmentation—ie: instead of lang-pt-BR (brazilian portuguese), just lang-pt (portuguese)—just to keep things simple and neutral.
Adding the Ongoing Translation template
[[Original page]] | [[Original page/lang-xx]] (translated page name) |
---|---|
{{OLPC}} {{Translations}} == Some header == Some text blah... |
{{OLPC}} {{Translation | lang = xx | source = Original page | version = yyyy}} {{Ongoing Translation}} == Some header == Some text blah... |
The main purpose of the {{Ongoing Translation}} template is to inform the readers that a particular page is still not finished, therefore they can expect the presence of untranslated text or that it hasn't been reviewed enough and thus may not be quite done yet. Parallel to that notice to the reader, it does a grouping of them in the Ongoing Translation category thus allowing other translators to find them and collaborate, review, make comments, etc. on them.
Preserving the section anchors
Many times, when translating you may find links between pages (translated or not) that point to a particular section. When translating this, you may find yourself either ignoring if the target page was translated, under which name if it was so, and last but not least, what is the translated header. That is not to mention the fact that maybe the translated header may be corrected or otherwise changed in future editions.
The solution is to avoid it altogether and let the original structure work for us (or almost).
[[Original page]] | [[Original page/lang-xx]] (translated page name) |
---|---|
{{OLPC}} {{Translations}} == Some header == Some text blah... |
{{OLPC}} {{Translation | lang = xx | source = Original page | version = yyyy}} {{Ongoing Translation}} {{anchor|Some header}} == Un titular == Algo de texto bla... |
Note how the links don't really change except for the embedding of the /lang-xx part and the addition of the translated visual of the link (ie: |translated visual]]). The biggest advantage of this technique is that translating a reference is as easy as adding the target language in it and giving it a sensible name to display it.
At the beginning, any link you 'translate' will actually point to a non-existing page, don't worry. Just follow the link and make it look like:
[[Another page/lang-xx]] |
---|
#REDIRECT [[Another page]] [[Category:Missing translation]] |
This will serve three purposes, first the page will at least take the reader to the right page (albeit not in the correct language). Secondly, the Category will allow a simple way to check 'what is missing'. Finally, and using the What links here from the toolbox you can foind out how many references to the missing page exist, giving some sense of need for it and thus guiding the translating efforts.
Full example of a wiki-page
Anatomy of a wiki-page
[[Original page]] | Notes on the structure |
---|---|
{{OLPC}} == Some header == Some text blah... |
|
Full finished example
[[Original page]] | [[Original page/lang-xx]] (translated page name) |
Translated text deleted... (not really recommended) |
---|---|---|
{{OLPC}} {{Translations}} == Some header == Some text blah... |
{{OLPC}} {{Translation | lang = xx | source = Original page | version = yyyy}} {{Ongoing Translation}} {{anchor|Some header}} == Un titular == Algo de texto bla... |
{{OLPC}} {{Translation | lang = xx | source = Original page | version = yyyy}} {{anchor|Some header}} == Un titular == Algo de texto bla... |
Supporting pages:
[[Original page/translations]] |
---|
[[Original page|english]] | [[Original page/lang-xx|shortNativeName]] |
[[Another page/lang-xx]] | [[Another page]] |
---|---|
#REDIRECT [[Another page]] [[Category:Missing translation]] |
some untranslated page... maybe the content is mutating rapidly, or is peripheric to the main corpus, etc. |
Notes
- shortNativeName
- should be in the native language; español instead of spanish.
Translation template notes
For the full documentation, please see Template:Translation.
- lang
- This parameter identifies the target language of the translation. See IANA's lang codes.
- It serves several purposes, and is used in several contexts although it should be done in a homogeneous way.
- We are currently using ISO 639-1 codes (two-letter codes), although we should probably migrate to 639-3 (three letter codes).
- source
- is the name of the page (not the link—in other words, without the enclosing square brackets).
- version
- is a bit of a tricky until you understand it, but extremely helpful.
- The number associated with the parameter comes from the original page, and has been made explicit in the blue language navigation bar at its right: [ID# yyyyy].
- Pages in the wiki have a numeric id, and each edition creates a new ID. So when you start translating a page, you want to register which version you started from. When at some point the source page is modified, its current version will have a higher version number. If you follow the changes link in the translation blue bar, the system will report all the changes done in that page from the ID# you started from. Once you update the translation, do not forget to update the version # to match the latest sync'ed to number!
- So when you compare the differences between two pages, internally you are comparing two IDs between them.
- For example this diff is actually comparing two pages, NOT two versions of the same page—admitedly, they are very similar.
Translated text template notes
- display
- is used to show or hide the enclosed translated text.
- While doing the translation, it comes in handy for comparing the original with the translation. When finished, you can replace the block with none and the source text is not displayed. Although it adds quite a bit of text and 'noise' to the source of the translated page, it comes in handy when trying to update or synchronize it with any changes in the original page—after all, this IS a wiki and pages are supposed to mutate!