http://www.mediawiki.org/wiki/Special:Code/pywikipedia/8847
Revision: 8847 Author: valhallasw Date: 2011-01-16 20:16:10 +0000 (Sun, 16 Jan 2011) Log Message: ----------- Documentation update for i18n.py
Modified Paths: -------------- branches/rewrite/pywikibot/i18n.py
Modified: branches/rewrite/pywikibot/i18n.py =================================================================== --- branches/rewrite/pywikibot/i18n.py 2011-01-16 20:16:05 UTC (rev 8846) +++ branches/rewrite/pywikibot/i18n.py 2011-01-16 20:16:10 UTC (rev 8847) @@ -1,6 +1,12 @@ -#---------------- -# I18N functions -#---------------- +# -*- coding: utf-8 -*- +""" Various i18n functions, both for the internal translation system + and for TranslateWiki-based translations +""" +# +# (C) Pywikipedia bot team, 2004-2011 +# +# Distributed under the terms of the MIT license. +#
from pywikibot import Error
@@ -9,15 +15,17 @@ # languages to be: # xx:, then fr:, then ru:, then en: # you let altlang return ['fr','ru']. -# This code is used by translate() below. +# This code is used by translate() and twtranslate() below.
def _altlang(code): """Define fallback languages for particular languages.
If no translation is available to a specified language, translate() will try each of the specified fallback languages, in order, until it finds - one with a translation, or '_default' as a last resort. - + one with a translation, with 'en' and '_default' as a last resort. + + For example, if for language 'xx', you want the preference of languages + to be: xx > fr > ru > en, you let altlang return ['fr', 'ru']. """ #Amharic if code in ['aa', 'om']: @@ -189,14 +197,17 @@
class TranslationError(Error): + """ Raised when no correct translation could be found """ pass
def twtranslate(code, twtitle, parameters=None): """ Uses TranslateWiki files to provide translations based on the TW title twtitle, which corresponds to a page on TW.
- @param parameters is for future addition of plural support - @param twtitle is the TranslateWiki string title, in <package>-<key> format + @param code The language code + @param twtitle The TranslateWiki string title, in <package>-<key> format + @param parameters For passing parameters. In the future, this will + be used for plural support.
The translations are retrieved from i18n.<package>, based on the callers import table. @@ -204,8 +215,9 @@ package = twtitle.split("-")[0] transdict = getattr(__import__("i18n", fromlist=[package]), package).msg
- # There are two possible failure modes: the msg dict might not have the - # language altogether, or a specific key could be untranslated. + # There are two possible failure modes: the translation dict might not have + # the language altogether, or a specific key could be untranslated. Both + # modes are caught with the KeyError.
trans = None try:
pywikipedia-svn@lists.wikimedia.org