Differences between revisions 30 and 31
Revision 30 as of 2009-03-27 07:27:40
Size: 20896
Editor: BenFinney
Comment: one header per HTTP request, containing multiple fields
Revision 31 as of 2009-04-18 12:15:43
Size: 20842
Editor: FranklinPiat
Comment: drop link to wikivote
Deletions are marked like this. Additions are marked like this.
Line 355: Line 355:
Please read [[DebianWiki/WikiVote]] for instruction:

Translation(s): none

(!) Discussion

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 !

Constraints and needs

Easy to search (#Search)
It should be easy to search.
  1. English version should be presented if localized version isn't available.
  2. 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.

#IdLang

#Subject

#WrdColl

#IsoColl

#RelLnk

#OtherLng

#TruncURL

#ShortURL

#Map

#Search

Pages titles Translated

#wiki.debian.org/Materiel

{X}

{X}

{X}

(./)

(./)

{X}

(./)

(./)

{X}

(./)

#wiki.debian.org/fr/Matériel

(./)

(./)

(./)

(./)

(./)

{X}

(./)

(./)

{X}

(./)

#wiki.debian.org/fr/Materiel

(./)

(./)

(./)

(./)

(./)

{X}

(./)

(./)

{X}

(./)

Pages titles in English

#fr.wiki.debian.org/Hardware_rewrite

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

#fr.wiki.debian.org/Hardware_vhost

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

{X}

{X}

#fr.wiki.debian.org/Hardware_layers

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

{X}

(./)

#wiki.debian.org/Hardware/French

(./)

(./)

(./)

(./)

{X}

(./)

(./)

(./)

(./)

(./)

#wiki.debian.org/HardwareFrancais

{X}

{X}

(./)

(./)

(./)

{X}

(./)

{X}

(./)

(./)

#wiki.debian.org/HardwareFrench

{X}

{X}

(./)

(./)

(./)

{X}

(./)

{X}

(./)

(./)

#wiki.debian.org/Hardware.Fr

?

(./)

(./)

(./)

(./)

(./)

{X}

(./)

(./)

(./)

#wiki.debian.org/Hardware.fr

{X}

(./)

(./)

{X}

(./)

(./)

{X}

(./)

(./)

(./)

#wiki.debian.org/Hardware-fr

(./)

(./)

(./)

{X}

(./)

(./)

{X}

(./)

(./)

(./)

#wiki.debian.org/Hardware_fr

(./)

(./)

(./)

{X}

(./)

(./)

{X}

(./)

(./)

(./)

#wiki.debian.org/French/Hardware

(./)

(./)

(./)

(./)

(./)

(./)

(./)

{X}

(./)

(./)

#wiki.debian.org/FrenchHardware

{X}

{X}

(./)

(./)

(./)

{X}

(./)

{X}

(./)

(./)

#wiki.debian.org/Fr/Hardware

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

#wiki.debian.org/fr/Hardware

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

#wiki.debian.org/FrHardware

{X}

{X}

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

#wiki.debian.org/DebFr/Hardware

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

#wiki.debian.org/DebFrHardware

{X}

{X}

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

Possible tricks

stub

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

(./)

Legend :

  • {X} 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

wiki.debian.org/fr/Materiel

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

see trick #page-list-macro.

wiki.debian.org/Hardware.fr

Cons

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

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

#WrdColl

#page-list-macro

#translated-pages

#i18nPrefix

#wiki.debian.org/Materiel

{X}

{X}

(./)

{X}

#fr.wiki.debian.org/Hardware_rewrite

(./)

{X}

?

(./)

#fr.wiki.debian.org/Hardware_vhost

(./)

{X}

?

(./)

#wiki.debian.org/Hardware/French

(./)

{X}

(./)

{X}

#wiki.debian.org/HardwareFrancais

(./)

{X}

(./)

{X}

#wiki.debian.org/HardwareFrench

(./)

{X}

(./)

{X}

#wiki.debian.org/Hardware.Fr

(./)

(./)

(./)

(./)

#wiki.debian.org/Hardware.fr

(./)

(./)

(./)

(./)

#wiki.debian.org/Hardware-fr

(./)

(./)

(./)

?

#wiki.debian.org/Hardware_fr

(./)

{X}

(./)

{X}

#wiki.debian.org/French/Hardware

(./)

{X}

(./)

{X}

#wiki.debian.org/FrenchHardware

(./)

{X}

(./)

{X}

#wiki.debian.org/Fr/Hardware

(./)

{X}

(./)

?

#wiki.debian.org/fr/Hardware

(./)

(./)

(./)

(./)

#wiki.debian.org/FrHardware

(./)

(./)

(./)

{X}

#wiki.debian.org/DebFr/Hardware

(./)

(./)

(./)

?

#wiki.debian.org/DebFrHardware

(./)

(./)

(./)

?

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]$)]]

    {i} 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##)]]

    {i} 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". {i} 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.

    • {i} 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

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


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/fr/Hardware 1 ?23

  • 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