Choosing a page namespace for Internationalizing DebianWiki : This page attempts to list various problematics and constraints to be taken into account before choosing a namespace... This should help choose the best solution.
Your contribution is welcome :
- Add more constraints / needs below.
- Add more namespace proposal.
- Add brilliant ideas on how to implement those namespaces too !
Contents
- Constraints and needs
- Summary
- Alternatives with Transalated pages names
-
Alternatives with English pages names
- fr.wiki.debian.org/Hardware
- wiki.debian.org/Hardware/French
- wiki.debian.org/HardwareFrench
- wiki.debian.org/Hardware.Fr
- wiki.debian.org/Hardware.fr
- wiki.debian.org/Hardware_fr
- wiki.debian.org/Hardware-fr
- wiki.debian.org/French/Hardware
- wiki.debian.org/FrenchHardware
- wiki.debian.org/Fr/Hardware
- wiki.debian.org/fr/Hardware
- wiki.debian.org/FrHardware
- wiki.debian.org/DebFr/Hardware
- wiki.debian.org/DebFrHardware
- Possible Tricks
- Connecting Translated pages
- History
- ToDo
- Resources
- WikiVote
Constraints and needs
- Easy to search (#Search)
- It should be easy to search.
- English version should be presented if localized version isn't available.
- Find a page using localized words (assuming the user clicks "Full-text" search).
- Clear page subject (#Subject)
Is it easy to identify what's the subject of a page, according to it's title ? SupportFrench and InstallDebian.pl are prone to confusion), as opposed to fr.wiki.debian.org/Support or pl/!?InstallDebian.
- Clear page language (#IdLang)
Is it easy to identify what's the of a language ? A French visitor couldn't guess if he should click on Support or Assistance to get the French version (since both words are synonyms)...
- Linking translated pages (#OtherLng)
- Make it easy to find the same page in other languages.(moinmoin don't have a feature to automatically connect/link localized versions of a page).
- Moinmoin CamelCase linking (#MmLnk)
Does Moinmoin create link automatically ? page containing a slash ("/") or a period (".") doesn't work, like InstallDebian/French or InstallDebian.fr . However, single word are never converted as links by moinmoin, so it's not really an issue since editors have to write ["Foo"] anyway... they can write ["fr/Foo"] too.
- Country code collision (#IsoColl)
.pl can be the short for perl files or polish translations.
- Language name collision (#LangColl)
- Some language may be spelled the same way in their local language (?).
- Translated word collision (#WrdColl)
The word Installation is the same in French and English. not to mention that nouns, projects name , brands, technologies aren't translated : Debian, DebianInstaller, iSCSI, HP.
- Problem mapping pages(#Map)
- It should be easy to find the different versions/languages of a page, in case link is missing.
- Page not translated
- When a page isn't translated, the visitor should be presented the English version.
- URL truncated by MUA (#TruncURL)
Some links may get broken by some MUA, like http://wiki.debian.org/Hardware.fr http://wiki.debian.org/Hardware(fr)
- relative links (#RelLnk)
- breaks relative links : "../Subpage" in Hardware/Wifi must be rewritten "../../Subpage/French" for Hardware/Wifi/French.
- short URLs (#ShortURL)
it's best if URL don't become too long. unlike : http://wiki.debian.org/InstallingDebianOn/Dell/Latitude/Etch/PortugueseBrazil
- sub-locales
- People from Brazil will appreciate if we handle pt_BR nicely.
wishlist
Wishlist features, not implemented by Moinmoin.
- Automatic language Negotiation (#LangNego)
When a user request "Hardware", the server would redirect to visitors preferred language (using the Accepted-Languages field sent in the user-agent's HTTP request).
Summary
This table is a summary of the alternatives below. |
|||||||||||
|
|||||||||||
Pages titles Translated |
|||||||||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
Pages titles in English |
|||||||||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
? |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
Possible tricks |
|||||||||||
|
|
|
|
|
|
|
|
|
|
Legend :
The namespace doesn't support the feature properly
The namespace supports the feature properly.
? Undecided / Not clear, yet.
Alternatives with Transalated pages names
The following are various alternatives for translation page names for a sample 'Hardware' page, where the page title is translated.
wiki.debian.org/Materiel
Cons:
- Subject collision : The same word can be used for different subject in different languages
- Language collision : two language can use the same word.
- Difficult to guess the page language (see point above).
- Difficult to list other languages-version of a given page.
- Difficult to present English page if {lang} doesn't exist.
Pros:
- Easy to search information for non-english people
wiki.debian.org/fr/Matériel
Cons:
- High maintenance cost : It's Difficult to list other languages-version of a given page : Renaming pages should be handled with care to avoid orphan. Also, one shouldn't forget to create stub English page.
- non-ascii caracters may get broken because of characters encoding and conversion in URL, MUA, IRC (ISO-8859-* ; UTF-8).
Another issue is that the translated word may not carry the exactly same meaning as the original. So the contents of the pages may tend to "fork" (like "What is Debian" and "About Debian").
Pros:
- Allowing non-ascii characters allow proper i18n handling.
- Easy to search for non-english speaking people..
Useful implementation Hints
Using List translated pages (#translated-pages) could make it this solution quite Maintainable.
wiki.debian.org/fr/Materiel
This is a variant of above #wiki.debian.org/fr/Matériel, but without non-ascii characters. Check above Pros and Cons.
Cons:
- Difficult to list other languages-version of a given page.
- Disallowing non-ascii characters prevents proper i18n handling.
Pros:
- Easy to search information for non-english people
- URL never gets broken due to charset encoding.
Alternatives with English pages names
The following are various alternatives for translation page names for a sample 'Hardware' page, where the page title is not translated (i.e in English).
fr.wiki.debian.org/Hardware
This can be achieved by two means :
fr.wiki.debian.org/Hardware (vhost)
Create multiple moinmoin wiki instances in multiple virtual hosts.
Cons
- Editors would have to create their accounts in each instances.
- Non-english visitor wouldn't be able to search in English pages (someone proposed to use English as underlay, which could solve this.).
fr.wiki.debian.org/Hardware (rewrite)
Use Apache to rewrite fr.wiki.debian.org/Hardware to wiki.debian.org/fr/Hardware. We would need to hack moinmoin to fallback to English version.
Cons
- The pages are accessible through multiple URI (fr.wiki.debian.org/Hardware and wiki.debian.org/fr/Hardware) which could lead to a major confusion (accidental deletion) !
fr.wiki.debian.org/Hardware (layers)
Modify Moinmoin to use the English version as underlay of any other language. Pros
- URL scheme is the same in English and other language.
- If a page doesn't exist in a given language, the English version is presented.
Cons
- Non-native Moinmoin behaviour (underlay is supposed to be for help pages).
- Google detects duplicate content (not translated pages), which leads to lower rating.
- Help pages may not be available in alternate languages (except if we hack Moinmoin to allow 3 layers).
- Wiki users has to sign-in multiple times.
wiki.debian.org/Hardware/French
Cons
Breaks ?SubPages relative Links.
- If we wanted to have a page about "I18n/French", we should name it "I18n/French/French" and "I18n/French/English" ! (that's unlikely to happend)
wiki.debian.org/HardwareFrench
Cons
Can be ambigous : consider ?WhyFrench ; ?SupportFrench, etc..
The URL could become long for some language (esp. ?PortugueseBrazil)
wiki.debian.org/Hardware.Fr
Cons
some links may get broken by some MUA => http://wiki.debian.org/Hardware.fr
- very confusing (.pl for perl or polish) ?
see trick #page-list-macro.
wiki.debian.org/Hardware.fr
Cons
some links may get broken by some MUA => http://wiki.debian.org/Hardware.fr
- very confusing (.pl for perl or polish) ?
wiki.debian.org/Hardware_fr
Cons
some people use "page_name" rather that CamelCase => page_name_fr could be ambiguous.
wiki.debian.org/Hardware-fr
Cons
Page language isn't very clearly identified (for visitors not used to this convention). it's still fairly obvious.
wiki.debian.org/French/Hardware
The URL could become long for some language (esp. ?PortugueseBrazil)
wiki.debian.org/FrenchHardware
Can be ambigous : consider ?FrenchWhy ; ?FrenchSupport, etc..
The URL could become long for some language (esp. ?PortugueseBrazil)
wiki.debian.org/Fr/Hardware
Help ! any cons ?
wiki.debian.org/fr/Hardware
Help ! any cons ?
Pros :
Even better than "/Fr/*", since a wiki page name should start with an uppercase, we know that a page matching regexp:^[a-z]{2}/.*$ is a localised version.
wiki.debian.org/FrHardware
Cons
?DeInstall vs Desinstall. (I hope you don't have dyslexia problem).
wiki.debian.org/DebFr/Hardware
Cons
- Longer, than "Fr/*" !.
(I guess It was actually a short for ?DebianFrFoobar )
wiki.debian.org/DebFrHardware
- Longer, than "Fr/*" !.
?DebDeInstall ?=? ?DebianDesinstall ? (I hope you don't have dyslexia problem).
Possible Tricks
The following tricks can be used to improve Alternatives with English pages names proposals.
wiki.debian.org/fr/Materiel stub
Create linker to help non-english people to find article by title search tool?
(optional) To help user that doesn't speak English, you can create a linker page named "Initial of language" + "/" + "PageInNativeLanguage". This page redirect to the English page with the content #redirect "Language" + "/"+ "NameOfReferentPage"
- Example:
Linker page: fr/!?QuelqueChose
Content of the linker: #redirect fr/Something
- English page: fr/Something
- Example:
Pros :
- non-english people can Search article by title.
Cons :
- Extra maintenance cost.
Does searching [BackLink] works ?
Connecting Translated pages
This table is a summary of the alternatives below. |
||||||||||
Sample page name |
||||||||||
|
|
|
|
|||||||
|
|
? |
|
|||||||
|
|
? |
|
|||||||
|
|
|
|
|||||||
|
|
|
|
|||||||
|
|
|
|
|||||||
|
|
|
|
|||||||
|
|
|
|
|||||||
|
|
|
? |
|||||||
|
|
|
|
|||||||
|
|
|
|
|||||||
|
|
|
|
|||||||
|
|
|
? |
|||||||
|
|
|
|
|||||||
|
|
|
|
|||||||
|
|
|
? |
|||||||
|
|
|
? |
PageList for alternatives (#page-list-macro)
If the page name structure of translated pages is formally structured (#wiki.debian.org/fr/Hardware, #wiki.debian.org/Hardware.fr, #wiki.debian.org/Hardware-fr...), it's possible to use the PageList macro to list available languages, like :
[[PageList(re:^MacBook/[a-z][a-z]$)]]
this trick could be used in our Moinmoin theme, so it doesn't to be added in every pages..
List translated pages (#translated-pages)
It's possible to automatically list translated versions of the page (even if the pages names are translated). demonstration: ?TestInEnglish.
Everypage should have the following header (adjust #language en)
#language en ##TranslationMasterPage:EnglishName##
And the following footer.
---- Translated versions : [[FullSearchCached(##TranslationMasterPage:TestInEnglish##)]]
It should be possible to implement this feature in Moinmoin itself. Moinmoin would do something similar to FullSearchCached, but it would also fetch the page header's #language xx and display the matching language name (rather than the page name).
Automatic Prefix/suffix pages (#i18nPrefix)
For fr.wiki.debian.org, wiki.debian.org/fr/* and wiki.debian.org/*.fr schemes, It's possible to automatically list alternates languages (by adding a prefix or suffix to the current page name)..
Typically, the Moinmoin template would show the links : Brasileiro - Deutsch - Español - Français - Italiano - Kurdî - Nederlands - Norsk - Polski - Português - Русский - Svenska - Türkçe - 简体中文 - 繁體中文 - فارسی for every pages (without checking if the translated page exist).
with #fr.wiki.debian.org/Hardware_rewrite It's probably not possible to detect "broken link"/"missing page".
with #fr.wiki.debian.org/Hardware_vhost It's should be possible to detect "broken link"/"missing page".
with #wiki.debian.org/fr/Hardware It's should be possible to detect "broken link"/"missing page".
with #wiki.debian.org/Hardware.fr It's should be possible to detect "broken link"/"missing page".
for all schme, detecting "broken link"/"missing page" would require serious Moinmoin patching. It's probably not a goos idea, unless the patch is included upstream.
it might also be possible to redirect (or present) the English version, when localized version is missing. again, this would involve serious Moinmoin modification.
History
PaoloPan proposal for <language-identifier><page title in english>, on 2005-08-15.
debian-www Debian Wiki: Give your opinion thread on the mailing list, on 2007-10-21.
Add SalokineTerata's proposal : stub
ToDo
Once the decision is made :
- Update editor guide.
- Rename existing pages.
- Renmame Frontpages + get Content negotiation updated ( /var/lib/python-support/python2.4/MoinMoin/i18n/fr.py ?)
Resources
http://www.debian.org/international/l10n/po/ list of locales
WikiVote
Vote start 05/01/2008 and will finished 15/01/2008
- wiki.debian.org/Materiel
- fr.wiki.debian.org/Hardware (vhost)
- fr.wiki.debian.org/Hardware (rewrite)
- wiki.debian.org/Hardware/French
wiki.debian.org/!?HardwareFrench
- wiki.debian.org/Hardware.Fr
- wiki.debian.org/Hardware.fr
- wiki.debian.org/French/Hardware
wiki.debian.org/!?FrenchHardware
- wiki.debian.org/Fr/Hardware
wiki.debian.org/!?FrHardware
- wiki.debian.org/!DebFr/Hardware
wiki.debian.org/!?DebFrHardware
Mailing lists contacted on @lists.debian.org: debian-i18n, debian-l10n-english, debian-www
Initial mail: http://lists.debian.org/debian-www/2008/01/msg00029.html