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
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
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
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="-")
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
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
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
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())
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())