Beispiel #1
0
def set_iface_lang():
    locale.setlocale(locale.LC_ALL, g.locale)
    lang = [g.lang]
    # GET param wins
    if c.host_lang:
        lang = [c.host_lang]
    else:
        lang = [c.user.pref_lang]

    if getattr(g, "lang_override") and lang[0] == "en":
        lang.insert(0, g.lang_override)

    #choose the first language
    c.lang = lang[0]

    #then try to overwrite it if we have the translation for another
    #one
    for l in lang:
        try:
            set_lang(l, fallback_lang=g.lang)
            c.lang = l
            break
        except LanguageError:
            #we don't have a translation for that language
            set_lang(g.lang, graceful_fail=True)

    try:
        c.locale = babel.core.Locale.parse(c.lang, sep='-')
    except (babel.core.UnknownLocaleError, ValueError):
        c.locale = babel.core.Locale.parse(g.lang, sep='-')

    #TODO: add exceptions here for rtl languages
    if c.lang in ('ar', 'he', 'fa'):
        c.lang_rtl = True
Beispiel #2
0
def set_iface_lang():
    locale.setlocale(locale.LC_ALL, g.locale)
    lang = [g.lang]
    # GET param wins
    if c.host_lang:
        lang = [c.host_lang]
    else:
        lang = [c.user.pref_lang]

    if getattr(g, "lang_override") and lang[0] == "en":
        lang.insert(0, g.lang_override)

    #choose the first language
    c.lang = lang[0]

    #then try to overwrite it if we have the translation for another
    #one
    for l in lang:
        try:
            set_lang(l, fallback_lang=g.lang)
            c.lang = l
            break
        except LanguageError:
            #we don't have a translation for that language
            set_lang(g.lang, graceful_fail=True)

    try:
        c.locale = babel.core.Locale.parse(c.lang, sep='-')
    except (babel.core.UnknownLocaleError, ValueError):
        c.locale = babel.core.Locale.parse(g.lang, sep='-')

    #TODO: add exceptions here for rtl languages
    if c.lang in ('ar', 'he', 'fa'):
        c.lang_rtl = True
Beispiel #3
0
def fallback_trans(x):
    """For translating placeholder strings the user should never see
    in raw form, such as 'funny 500 message'.  If the string does not
    translate in the current language, falls back on the g.lang
    translation that we've hopefully already provided"""
    t = _(x)
    if t == x:
        l = get_lang()
        set_lang(g.lang, graceful_fail=True)
        t = _(x)
        if l and l[0] != g.lang:
            set_lang(l[0])
    return t
Beispiel #4
0
def fallback_trans(x):
    """For translating placeholder strings the user should never see
    in raw form, such as 'funny 500 message'.  If the string does not
    translate in the current language, falls back on the g.lang
    translation that we've hopefully already provided"""
    t = _(x)
    if t == x:
        l = get_lang()
        set_lang(g.lang, graceful_fail = True)
        t = _(x)
        if l and l[0] != g.lang:
            set_lang(l[0])
    return t
Beispiel #5
0
def set_iface_lang():
    host_lang = request.environ.get("reddit-prefer-lang")
    lang = host_lang or c.user.pref_lang

    if getattr(g, "lang_override") and lang.startswith("en"):
        lang = g.lang_override

    c.lang = lang

    try:
        set_lang(lang, fallback_lang=g.lang)
    except LanguageError:
        lang = g.lang
        set_lang(lang, graceful_fail=True)

    try:
        c.locale = babel.core.Locale.parse(lang, sep="-")
    except (babel.core.UnknownLocaleError, ValueError):
        c.locale = babel.core.Locale.parse(g.lang, sep="-")
Beispiel #6
0
    def get_content(self):
        from pylons.i18n import get_lang
        from r2.lib import strings, translation

        if self.lang:
            old_lang = get_lang()
            translation.set_lang(self.lang)

        data = {}
        if self.keys is not None:
            for key in self.keys:
                data[key] = strings.strings[key]
                self._check_formatting_specifiers(key, data[key])
        else:
            data = dict(strings.strings)

        if self.lang:
            translation.set_lang(old_lang)

        return data
Beispiel #7
0
    def get_content(self):
        from pylons.i18n import get_lang
        from r2.lib import strings, translation

        if self.lang:
            old_lang = get_lang()
            translation.set_lang(self.lang)

        data = {}
        if self.keys is not None:
            for key in self.keys:
                data[key] = strings.strings[key]
                self._check_formatting_specifiers(key, data[key])
        else:
            data = dict(strings.strings)

        if self.lang:
            translation.set_lang(old_lang)

        return data
Beispiel #8
0
    def get_source(self):
        from pylons.i18n import get_lang
        from r2.lib import strings, translation

        if self.lang:
            old_lang = get_lang()
            translation.set_lang(self.lang)

        data = {}
        if self.keys is not None:
            for key in self.keys:
                data[key] = strings.strings[key]
        else:
            data = dict(strings.strings)

        output = self.prepend + json.dumps(data) + "\n"

        if self.lang:
            translation.set_lang(old_lang)

        return output
Beispiel #9
0
Datei: js.py Projekt: LDot/reddit
    def get_source(self):
        from pylons.i18n import get_lang
        from r2.lib import strings, translation

        if self.lang:
            old_lang = get_lang()
            translation.set_lang(self.lang)

        data = {}
        if self.keys is not None:
            for key in self.keys:
                data[key] = strings.strings[key]
        else:
            data = dict(strings.strings)
        
        output = self.prepend + json.dumps(data) + "\n"

        if self.lang:
            translation.set_lang(old_lang)

        return output
Beispiel #10
0
def set_iface_lang():
    host_lang = request.environ.get('reddit-prefer-lang')
    lang = host_lang or c.user.pref_lang

    if getattr(g, "lang_override") and lang.startswith("en"):
        lang = g.lang_override

    c.lang = lang

    try:
        set_lang(lang, fallback_lang=g.lang)
    except LanguageError:
        lang = g.lang
        set_lang(lang, graceful_fail=True)

    try:
        c.locale = babel.core.Locale.parse(lang, sep='-')
    except (babel.core.UnknownLocaleError, ValueError):
        c.locale = babel.core.Locale.parse(g.lang, sep='-')

    #TODO: add exceptions here for rtl languages
    if c.lang in ('ar', 'he', 'fa'):
        c.lang_rtl = True
Beispiel #11
0
def set_iface_lang():
    host_lang = request.environ.get('reddit-prefer-lang')
    lang = host_lang or c.user.pref_lang

    if getattr(g, "lang_override") and lang.startswith("en"):
        lang = g.lang_override

    c.lang = lang

    try:
        set_lang(lang, fallback_lang=g.lang)
    except LanguageError:
        lang = g.lang
        set_lang(lang, graceful_fail=True)

    try:
        c.locale = babel.core.Locale.parse(lang, sep='-')
    except (babel.core.UnknownLocaleError, ValueError):
        c.locale = babel.core.Locale.parse(g.lang, sep='-')

    #TODO: add exceptions here for rtl languages
    if c.lang in ('ar', 'he', 'fa'):
        c.lang_rtl = True
Beispiel #12
0
def load_controllers():
    from r2.lib.translation import set_lang
    set_lang('ko')

    from listingcontroller import ListingController
    from listingcontroller import HotController
    from listingcontroller import NewController
    from listingcontroller import RisingController
    from listingcontroller import BrowseController
    from listingcontroller import AdsController
    from listingcontroller import UserListListingController
    from listingcontroller import MessageController
    from listingcontroller import RedditsController
    from listingcontroller import ByIDController
    from listingcontroller import RandomrisingController
    from listingcontroller import UserController
    from listingcontroller import CommentsController
    from listingcontroller import GildedController

    from listingcontroller import MyredditsController

    from admin import AdminToolController
    from front import FormsController
    from front import FrontController
    from health import HealthController
    from buttons import ButtonsController
    from captcha import CaptchaController
    from embed import EmbedController
    from error import ErrorController
    from post import PostController
    from toolbar import ToolbarController
    from awards import AwardsController
    from errorlog import ErrorlogController
    from newsletter import NewsletterController
    from googletagmanager import GoogleTagManagerController
    from promotecontroller import PromoteController
    from promotecontroller import SponsorController
    from promotecontroller import PromoteApiController
    from promotecontroller import PromoteListingController
    from promotecontroller import SponsorListingController
    from mediaembed import MediaembedController
    from mediaembed import AdController
    from oembed import OEmbedController
    from policies import PoliciesController
    from web import WebLogController

    from wiki import WikiController
    from wiki import WikiApiController

    from api import ApiController
    from api import ApiminimalController
    from api_docs import ApidocsController
    from apiv1.user import APIv1UserController
    from apiv1.gold import APIv1GoldController
    from apiv1.scopes import APIv1ScopesController
    from multi import MultiApiController
    from oauth2 import OAuth2FrontendController
    from oauth2 import OAuth2AccessController
    from redirect import RedirectController
    from robots import RobotsController
    from ipn import IpnController
    from ipn import StripeController
    from ipn import CoinbaseController
    from ipn import RedditGiftsController

    _reddit_controllers.update(
        (name.lower(), obj) for name, obj in locals().iteritems())
Beispiel #13
0
def load_controllers():
    from r2.lib.translation import set_lang
    set_lang('ko')

    from listingcontroller import ListingController
    from listingcontroller import HotController
    from listingcontroller import NewController
    from listingcontroller import RisingController
    from listingcontroller import BrowseController
    from listingcontroller import AdsController
    from listingcontroller import UserListListingController
    from listingcontroller import MessageController
    from listingcontroller import RedditsController
    from listingcontroller import ByIDController
    from listingcontroller import RandomrisingController
    from listingcontroller import UserController
    from listingcontroller import CommentsController
    from listingcontroller import GildedController

    from listingcontroller import MyredditsController

    from admin import AdminToolController
    from front import FormsController
    from front import FrontController
    from health import HealthController
    from buttons import ButtonsController
    from captcha import CaptchaController
    from embed import EmbedController
    from error import ErrorController
    from post import PostController
    from toolbar import ToolbarController
    from awards import AwardsController
    from errorlog import ErrorlogController
    from newsletter import NewsletterController
    from googletagmanager import GoogleTagManagerController
    from promotecontroller import PromoteController
    from promotecontroller import SponsorController
    from promotecontroller import PromoteApiController
    from promotecontroller import PromoteListingController
    from promotecontroller import SponsorListingController
    from mediaembed import MediaembedController
    from mediaembed import AdController
    from oembed import OEmbedController
    from policies import PoliciesController
    from web import WebLogController
    
    from wiki import WikiController
    from wiki import WikiApiController

    from api import ApiController
    from api import ApiminimalController
    from api_docs import ApidocsController
    from apiv1.user import APIv1UserController
    from apiv1.gold import APIv1GoldController
    from apiv1.scopes import APIv1ScopesController
    from multi import MultiApiController
    from oauth2 import OAuth2FrontendController
    from oauth2 import OAuth2AccessController
    from redirect import RedirectController
    from robots import RobotsController
    from ipn import IpnController
    from ipn import StripeController
    from ipn import CoinbaseController
    from ipn import RedditGiftsController

    _reddit_controllers.update((name.lower(), obj) for name, obj in locals().iteritems())