fix i18n on linux install

This commit is contained in:
Damien Elmes 2012-12-21 18:04:26 +09:00
parent 798c6661ad
commit 1f1fa125f0
4 changed files with 10 additions and 23 deletions

3
.gitignore vendored
View file

@ -3,8 +3,7 @@
*.mo *.mo
*\# *\#
.*.swp .*.swp
samples
unihan.db
.coverage .coverage
aqt/forms aqt/forms
locale locale
.idea

View file

@ -73,11 +73,13 @@ def langDir():
os.path.abspath(__file__)), "locale") os.path.abspath(__file__)), "locale")
if not os.path.exists(dir): if not os.path.exists(dir):
dir = os.path.join(os.path.dirname(sys.argv[0]), "locale") dir = os.path.join(os.path.dirname(sys.argv[0]), "locale")
if not os.path.exists(dir):
dir = "/usr/share/anki/locale"
return dir return dir
def setLang(lang, local=True): def setLang(lang, local=True):
trans = gettext.translation( trans = gettext.translation(
'libanki', langDir(), languages=[lang], fallback=True) 'anki', langDir(), languages=[lang], fallback=True)
if local: if local:
threadLocal.currentLang = lang threadLocal.currentLang = lang
threadLocal.currentTranslation = trans threadLocal.currentTranslation = trans

View file

@ -5,8 +5,8 @@ import os, sys, optparse, atexit, tempfile, __builtin__
from aqt.qt import * from aqt.qt import *
import locale, gettext import locale, gettext
import anki.lang import anki.lang
from anki.consts import HELP_SITE as appHelpSite from anki.consts import HELP_SITE
from anki.hooks import runHook from anki.lang import langDir
appVersion="2.0.3" appVersion="2.0.3"
appWebsite="http://ankisrs.net/" appWebsite="http://ankisrs.net/"
@ -14,6 +14,7 @@ appChanges="http://ankisrs.net/docs/changes.html"
appDonate="http://ankisrs.net/support/" appDonate="http://ankisrs.net/support/"
appShared="https://ankiweb.net/shared/" appShared="https://ankiweb.net/shared/"
appUpdate="https://ankiweb.net/update/desktop" appUpdate="https://ankiweb.net/update/desktop"
appHelpSite=HELP_SITE
mw = None # set on init mw = None # set on init
moduleDir = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0] moduleDir = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0]
@ -71,12 +72,6 @@ dialogs = DialogManager()
_gtrans = None _gtrans = None
_qtrans = None _qtrans = None
def langDir():
dir = os.path.join(moduleDir, "aqt", "locale")
if not os.path.exists(dir):
dir = os.path.join(os.path.dirname(sys.argv[0]), "locale")
return dir
def setupLang(pm, app, force=None): def setupLang(pm, app, force=None):
global _gtrans, _qtrans global _gtrans, _qtrans
try: try:
@ -87,7 +82,7 @@ def setupLang(pm, app, force=None):
dir = langDir() dir = langDir()
# gettext # gettext
_gtrans = gettext.translation( _gtrans = gettext.translation(
'ankiqt', dir, languages=[lang], fallback=True) 'anki', dir, languages=[lang], fallback=True)
__builtin__.__dict__['_'] = _gtrans.ugettext __builtin__.__dict__['_'] = _gtrans.ugettext
__builtin__.__dict__['ngettext'] = _gtrans.ungettext __builtin__.__dict__['ngettext'] = _gtrans.ungettext
anki.lang.setLang(lang, local=False) anki.lang.setLang(lang, local=False)

13
runanki
View file

@ -1,15 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
import os, sys import sys
# system-wide install
sys.path.insert(0, "/usr/share/anki") sys.path.insert(0, "/usr/share/anki")
sys.path.insert(0, "/usr/share/anki/libanki") import aqt
# running from extracted folder
base = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, base)
sys.path.insert(0, os.path.join(base, "libanki"))
# or git
sys.path.insert(0, os.path.join(base, "..", "libanki"))
# start
import anki, aqt
aqt.run() aqt.run()