[Kimchi-devel] [PATCH] Don't fail if no translation can be found

Cedric Bosdonnat cbosdonnat at suse.com
Mon Nov 17 08:04:19 UTC 2014


Hi Aline,

On Fri, 2014-11-14 at 16:12 -0200, Aline Manera wrote:
> Hmm...if Kimchi does not recognize a language it falls back to English 
> (en_US).
> So you shouldn't have problems with it.
> Could you explain what is the real problem and how I could reproduce it?

I got the problem by setting up a kimchi instance as done by this
package (minus the patched I sent)

https://build.opensuse.org/package/show/home:cbosdonnat/kimchi

Connecting with a en_GB client. I got the following exception in the
logs:

[14/Nov/2014:06:00:06] HTTP Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 212, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/cherrypy/_cpdispatch.py", line 61, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/usr/lib/python2.7/site-packages/kimchi/root.py", line 92, in default
    return template.render(page, kwargs)
  File "/usr/lib/python2.7/site-packages/kimchi/template.py", line 109, in render
    return render_cheetah_file(resource, data)
  File "/usr/lib/python2.7/site-packages/kimchi/template.py", line 95, in render_cheetah_file
    return Template(file=filename, searchList=params).respond()
  File "_usr_share_kimchi_ui_pages_login_html_tmpl.py", line 107, in respond
  File "/usr/lib64/python2.7/gettext.py", line 475, in translation
    raise IOError(ENOENT, 'No translation file found for domain', domain)
IOError: [Errno 2] No translation file found for domain: 'kimchi'

Regards,
--
Cedric

> On 11/14/2014 01:10 PM, Cédric Bosdonnat wrote:
> > If a translation file for a locale can't be found, the user gets an
> > HTTP 50x. Use fallback=True in the translation calls to avoid this and
> > use the fallback strings instead.
> > ---
> >   ui/pages/error.html.tmpl                  | 2 +-
> >   ui/pages/guest-add.html.tmpl              | 2 +-
> >   ui/pages/guest-edit.html.tmpl             | 2 +-
> >   ui/pages/guest-storage-add.html.tmpl      | 2 +-
> >   ui/pages/guest.html.tmpl                  | 2 +-
> >   ui/pages/i18n.json.tmpl                   | 2 +-
> >   ui/pages/kimchi-ui.html.tmpl              | 2 +-
> >   ui/pages/login.html.tmpl                  | 2 +-
> >   ui/pages/report-add.html.tmpl             | 2 +-
> >   ui/pages/report-rename.html.tmpl          | 2 +-
> >   ui/pages/repository-add.html.tmpl         | 2 +-
> >   ui/pages/repository-edit.html.tmpl        | 2 +-
> >   ui/pages/storagepool-add-volume.html.tmpl | 2 +-
> >   ui/pages/storagepool-add.html.tmpl        | 2 +-
> >   ui/pages/tabs/guests.html.tmpl            | 2 +-
> >   ui/pages/tabs/host.html.tmpl              | 2 +-
> >   ui/pages/tabs/network.html.tmpl           | 2 +-
> >   ui/pages/tabs/storage.html.tmpl           | 2 +-
> >   ui/pages/tabs/templates.html.tmpl         | 2 +-
> >   ui/pages/template-add.html.tmpl           | 2 +-
> >   ui/pages/template-edit.html.tmpl          | 2 +-
> >   21 files changed, 21 insertions(+), 21 deletions(-)
> >
> > diff --git a/ui/pages/error.html.tmpl b/ui/pages/error.html.tmpl
> > index 98566c5..d8e16e6 100644
> > --- a/ui/pages/error.html.tmpl
> > +++ b/ui/pages/error.html.tmpl
> > @@ -19,7 +19,7 @@
> >   #encoding UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <!doctype html>
> > diff --git a/ui/pages/guest-add.html.tmpl b/ui/pages/guest-add.html.tmpl
> > index 3ccafe2..e3270fb 100644
> > --- a/ui/pages/guest-add.html.tmpl
> > +++ b/ui/pages/guest-add.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <!DOCTYPE html>
> > diff --git a/ui/pages/guest-edit.html.tmpl b/ui/pages/guest-edit.html.tmpl
> > index 512909a..62965eb 100644
> > --- a/ui/pages/guest-edit.html.tmpl
> > +++ b/ui/pages/guest-edit.html.tmpl
> > @@ -17,7 +17,7 @@
> >    *#
> >   #unicode UTF-8
> >   #import gettext
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >
> > diff --git a/ui/pages/guest-storage-add.html.tmpl b/ui/pages/guest-storage-add.html.tmpl
> > index c991f42..504316c 100644
> > --- a/ui/pages/guest-storage-add.html.tmpl
> > +++ b/ui/pages/guest-storage-add.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <div id="guest-storage-add-window" class="window">
> > diff --git a/ui/pages/guest.html.tmpl b/ui/pages/guest.html.tmpl
> > index 74206fd..ebb5e86 100644
> > --- a/ui/pages/guest.html.tmpl
> > +++ b/ui/pages/guest.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >           <li name="guest" class="guest">
> > diff --git a/ui/pages/i18n.json.tmpl b/ui/pages/i18n.json.tmpl
> > index 959b7be..1edbc19 100644
> > --- a/ui/pages/i18n.json.tmpl
> > +++ b/ui/pages/i18n.json.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   {
> > diff --git a/ui/pages/kimchi-ui.html.tmpl b/ui/pages/kimchi-ui.html.tmpl
> > index 2f592a6..844234d 100644
> > --- a/ui/pages/kimchi-ui.html.tmpl
> > +++ b/ui/pages/kimchi-ui.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   #from kimchi.config import get_version
> > diff --git a/ui/pages/login.html.tmpl b/ui/pages/login.html.tmpl
> > index f289af5..e2f6855 100644
> > --- a/ui/pages/login.html.tmpl
> > +++ b/ui/pages/login.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   #silent next = "?next=%s" % $getVar('data.next', '') if $getVar('data.next', '') else ""
> > diff --git a/ui/pages/report-add.html.tmpl b/ui/pages/report-add.html.tmpl
> > index 2d0c510..e63da44 100644
> > --- a/ui/pages/report-add.html.tmpl
> > +++ b/ui/pages/report-add.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <!DOCTYPE html>
> > diff --git a/ui/pages/report-rename.html.tmpl b/ui/pages/report-rename.html.tmpl
> > index 2164af8..5bc91d3 100644
> > --- a/ui/pages/report-rename.html.tmpl
> > +++ b/ui/pages/report-rename.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <!DOCTYPE html>
> > diff --git a/ui/pages/repository-add.html.tmpl b/ui/pages/repository-add.html.tmpl
> > index ecd0152..6de4f76 100644
> > --- a/ui/pages/repository-add.html.tmpl
> > +++ b/ui/pages/repository-add.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <div id="repository-add-window" class="window">
> > diff --git a/ui/pages/repository-edit.html.tmpl b/ui/pages/repository-edit.html.tmpl
> > index 56449f7..f13cb90 100644
> > --- a/ui/pages/repository-edit.html.tmpl
> > +++ b/ui/pages/repository-edit.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >
> > diff --git a/ui/pages/storagepool-add-volume.html.tmpl b/ui/pages/storagepool-add-volume.html.tmpl
> > index 573a764..c0d68f6 100644
> > --- a/ui/pages/storagepool-add-volume.html.tmpl
> > +++ b/ui/pages/storagepool-add-volume.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <div id="sp-add-volume-window" class="window">
> > diff --git a/ui/pages/storagepool-add.html.tmpl b/ui/pages/storagepool-add.html.tmpl
> > index 6f1861b..081805b 100644
> > --- a/ui/pages/storagepool-add.html.tmpl
> > +++ b/ui/pages/storagepool-add.html.tmpl
> > @@ -17,7 +17,7 @@
> >    *#
> >   #unicode UTF-8
> >   #import gettext
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <!DOCTYPE html>
> > diff --git a/ui/pages/tabs/guests.html.tmpl b/ui/pages/tabs/guests.html.tmpl
> > index 90d98e5..7bbf570 100644
> > --- a/ui/pages/tabs/guests.html.tmpl
> > +++ b/ui/pages/tabs/guests.html.tmpl
> > @@ -20,7 +20,7 @@
> >   #import gettext
> >   #from Cheetah.Template import Template
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >
> > diff --git a/ui/pages/tabs/host.html.tmpl b/ui/pages/tabs/host.html.tmpl
> > index 81266ce..d5a9b1d 100644
> > --- a/ui/pages/tabs/host.html.tmpl
> > +++ b/ui/pages/tabs/host.html.tmpl
> > @@ -19,7 +19,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <div id="host-root-container">
> > diff --git a/ui/pages/tabs/network.html.tmpl b/ui/pages/tabs/network.html.tmpl
> > index 6a6e5f7..6eaa4b3 100644
> > --- a/ui/pages/tabs/network.html.tmpl
> > +++ b/ui/pages/tabs/network.html.tmpl
> > @@ -19,7 +19,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <!DOCTYPE html>
> > diff --git a/ui/pages/tabs/storage.html.tmpl b/ui/pages/tabs/storage.html.tmpl
> > index 523f480..dbbaef9 100644
> > --- a/ui/pages/tabs/storage.html.tmpl
> > +++ b/ui/pages/tabs/storage.html.tmpl
> > @@ -18,7 +18,7 @@
> >
> >   #unicode UTF-8
> >   #import gettext
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <!DOCTYPE html>
> > diff --git a/ui/pages/tabs/templates.html.tmpl b/ui/pages/tabs/templates.html.tmpl
> > index 7cf7fcd..4f91254 100644
> > --- a/ui/pages/tabs/templates.html.tmpl
> > +++ b/ui/pages/tabs/templates.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <!DOCTYPE html>
> > diff --git a/ui/pages/template-add.html.tmpl b/ui/pages/template-add.html.tmpl
> > index 75bb0ed..eaafaa7 100644
> > --- a/ui/pages/template-add.html.tmpl
> > +++ b/ui/pages/template-add.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >   <!DOCTYPE html>
> > diff --git a/ui/pages/template-edit.html.tmpl b/ui/pages/template-edit.html.tmpl
> > index 5a71d91..d315391 100644
> > --- a/ui/pages/template-edit.html.tmpl
> > +++ b/ui/pages/template-edit.html.tmpl
> > @@ -18,7 +18,7 @@
> >   #unicode UTF-8
> >   #import gettext
> >   #from kimchi.cachebust import href
> > -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
> > +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True)
> >   #silent _ = t.gettext
> >   #silent _t = t.gettext
> >
> 
> 





More information about the Kimchi-devel mailing list