コード例 #1
0
ファイル: i18n.py プロジェクト: therufs/lesswrong
    def POST_edit(self, lang, post, try_trans):
        if (lang and not Translator.exists(lang)):
            return self.redirect('/admin/i18n')

        if lang:
            tr = get_translator(locale=lang)
        else:
            tr = TranslatorTemplate()

        enabled = set()
        for k, val in request.post.iteritems():
            if k.startswith('trans_'):
                k = k.split('_')
                # check if this is a translation string
                if k[1:] and tr.get(k[1]):
                    tr.set(k[1], val, indx=int(k[2] if k[2:] else -1))
                # check if this is an admin editing the source/comment lines
                elif c.user_is_admin and tr.sources.get(k[1]):
                    source = tr.sources.get(k[1])
                    tr.source_trans[source] = val
            elif c.user_is_admin and k.startswith('enabled_'):
                k = k.split('_')
                enabled.add(k[1])

        # update the enabled state of the buttons
        if c.user_is_admin and enabled:
            strings = set(tr.string_dict.keys())
            disabled = strings - enabled
            for s in strings:
                tr.set_enabled(s, True)
            for s in disabled:
                tr.set_enabled(s, False)

        if request.post.get('nplurals'):
            try:
                tr.plural_names = [request.post.get('pluralform_%d' % i) \
                                   for i in xrange(tr.nplurals)]
                tr.nplurals = int(request.post.get('nplurals'))
            except ValueError:
                pass
        if request.post.get('langname'):
            tr.name = request.post['langname']
        if request.post.get('enlangname'):
            tr.en_name = request.post['enlangname']

        tr.save(compile=bool(try_trans))

        if try_trans:
            tran_keys = _translations.keys()
            for key in tran_keys:
                if key.endswith(tr._out_file('mo')):
                    del _translations[key]

            return self.redirect("http://%s/?lang=%s" % (g.domain, lang))

        whereto = request.post.get('bttn_num', '')
        if whereto:
            whereto = 'bttn_num_%s' % whereto
        return self.redirect("/admin/i18n/edit/%s#%s" % (lang or '', whereto))
        return res
コード例 #2
0
ファイル: i18n.py プロジェクト: xolar/proddit
    def POST_edit(self, lang, post, try_trans):
        if lang and not Translator.exists(lang):
            return self.redirect("/admin/i18n")

        if lang:
            tr = get_translator(locale=lang)
        else:
            tr = TranslatorTemplate()

        enabled = set()
        for k, val in request.post.iteritems():
            if k.startswith("trans_"):
                k = k.split("_")
                val = val.replace("\n", " ").replace("\r", " ")
                # check if this is a translation string
                if k[1:] and tr.get(k[1]):
                    tr.set(k[1], val, indx=int(k[2] if k[2:] else -1))
                # check if this is an admin editing the source/comment lines
                elif c.user_is_admin and tr.sources.get(k[1]):
                    source = tr.sources.get(k[1])
                    tr.source_trans[source] = val
            elif c.user_is_admin and k.startswith("enabled_"):
                k = k.split("_")
                enabled.add(k[1])

        # update the enabled state of the buttons
        if c.user_is_admin and enabled:
            strings = set(tr.string_dict.keys())
            disabled = strings - enabled
            for s in strings:
                tr.set_enabled(s, True)
            for s in disabled:
                tr.set_enabled(s, False)

        if request.post.get("nplurals"):
            try:
                tr.plural_names = [request.post.get("pluralform_%d" % i) for i in xrange(tr.nplurals)]
                tr.nplurals = int(request.post.get("nplurals"))
            except ValueError:
                pass
        if request.post.get("langname"):
            tr.name = request.post["langname"]
        if request.post.get("enlangname"):
            tr.en_name = request.post["enlangname"]

        tr.save(compile=bool(try_trans))

        if try_trans:
            tran_keys = _translations.keys()
            for key in tran_keys:
                if key.endswith(tr._out_file("mo")):
                    del _translations[key]

            return self.redirect("http://%s/?lang=%s" % (g.domain, lang))

        whereto = request.post.get("bttn_num", "")
        if whereto:
            whereto = "bttn_num_%s" % whereto
        return self.redirect("/admin/i18n/edit/%s#%s" % (lang or "", whereto))
        return res
コード例 #3
0
ファイル: i18n.py プロジェクト: therufs/lesswrong
    def GET_try(self, lang):
        if lang:
            tr = get_translator(locale=lang)
            tr.save(compile=True)

            tran_keys = _translations.keys()
            for key in tran_keys:
                if key.endswith(tr._out_file('mo')):
                    del _translations[key]

            return self.redirect("http://%s.%s/" % (lang, g.domain))
        return abort(404, 'page not found')
コード例 #4
0
ファイル: i18n.py プロジェクト: xolar/proddit
    def GET_try(self, lang, numbers):
        if lang:
            tr = get_translator(locale=lang)
            tr.save(compile=True, include_index=numbers)

            tran_keys = _translations.keys()
            for key in tran_keys:
                if key.endswith(tr._out_file("mo")):
                    del _translations[key]

            return self.redirect("http://%s.%s/" % (lang, g.domain))
        return abort(404, "page not found")
コード例 #5
0
ファイル: i18n.py プロジェクト: cmak/reddit
    def GET_try(self, lang):
        if lang:
            tr = get_translator(locale = lang)
            tr.save(compile=True)

            tran_keys = _translations.keys()
            for key in tran_keys:
                if key.endswith(tr._out_file('mo')):
                    del _translations[key]

            return self.redirect("http://%s.%s/" %
                                 (lang, c.domain))
        return abort(404, 'page not found')