bridgedb.translations

getFirstSupportedLang(langs)[source]

Return the first language in langs that we support.

Parameters:langs (list) – All requested languages
Return type:str
Returns:A country code for the client’s preferred language.
getLocaleFromHTTPRequest(request)[source]

Retrieve the languages from an HTTP Accept-Language: header.

Parse the languages from the header, use them to install a gettext.translation chain via installTranslations(), and lastly return the requested languages.

Parameters:request (twisted.web.server.Request) – An incoming request from a client.
Return type:list
Returns:All requested languages.
getLocaleFromPlusAddr(address)[source]

See whether the user sent his email to a ‘plus’ address, for instance to bridges+fa@bridges.torproject.org. Plus addresses are the current mechanism to set the reply language.

installTranslations(langs)[source]

Create a gettext.translation chain for all langs.

Attempt to install the first language in the langs list. If that fails, we receive a gettext.NullTranslation object, and if it worked then we have a gettext.GNUTranslation object. Whichever one we end up with, get the other languages and add them as fallbacks to the first. Lastly, install this chain of translations.

Parameters:langs (list) – A list of language codes.
Returns:A gettext.NullTranslation or gettext.GNUTranslation with fallback languages set.
usingRTLLang(langs)[source]

Check if we should translate the text into a RTL language.

Choose the first language from the langs list that we support and return True if it is a RTL language, else return False.

Parameters:langs (list) – An incoming request.
Return type:bool
Returns:True if the preferred language is right-to-left; False otherwise.