Example #1
0
    def _updatePreferredLanguages(self, person_or_team):
        """Check or update the Person's preferred languages as needed.

        Answer contacts must tell Launchpad in which languages they provide
        help. If the Person has not already set their preferred languages,
        they are set to their browser languages. In the case of a team
        without languages, only English is added to the preferred languages.
        When languages are added, a notification is added to the response.
        """
        if len(person_or_team.languages) > 0:
            return

        response = self.request.response
        english = getUtility(ILaunchpadCelebrities).english
        if person_or_team.is_team:
            person_or_team.addLanguage(english)
            team_mapping = {
                'name': person_or_team.name,
                'displayname': person_or_team.displayname
            }
            msgid = _(
                "English was added to ${displayname}'s "
                '<a href="/~${name}/+editlanguages">preferred '
                'languages</a>.',
                mapping=team_mapping)
            response.addNotification(structured(msgid))
        else:
            if len(browser_languages(self.request)) > 0:
                languages = browser_languages(self.request)
            else:
                languages = [english]
            for language in languages:
                person_or_team.addLanguage(language)
            language_str = ', '.join([lang.displayname for lang in languages])
            msgid = _(
                '<a href="/people/+me/+editlanguages">Your preferred '
                'languages</a> were updated to include your browser '
                'languages: $languages.',
                mapping={'languages': language_str})
            response.addNotification(structured(msgid))
    def _updatePreferredLanguages(self, person_or_team):
        """Check or update the Person's preferred languages as needed.

        Answer contacts must tell Launchpad in which languages they provide
        help. If the Person has not already set his preferred languages, they
        are set to his browser languages. In the case of a team without
        languages, only English is added to the preferred languages. When
        languages are added, a notification is added to the response.
        """
        if len(person_or_team.languages) > 0:
            return

        response = self.request.response
        english = getUtility(ILaunchpadCelebrities).english
        if person_or_team.is_team:
            person_or_team.addLanguage(english)
            team_mapping = {"name": person_or_team.name, "displayname": person_or_team.displayname}
            msgid = _(
                "English was added to ${displayname}'s "
                '<a href="/~${name}/+editlanguages">preferred '
                "languages</a>.",
                mapping=team_mapping,
            )
            response.addNotification(structured(msgid))
        else:
            if len(browser_languages(self.request)) > 0:
                languages = browser_languages(self.request)
            else:
                languages = [english]
            for language in languages:
                person_or_team.addLanguage(language)
            language_str = ", ".join([lang.displayname for lang in languages])
            msgid = _(
                '<a href="/people/+me/+editlanguages">Your preferred '
                "languages</a> were updated to include your browser "
                "languages: $languages.",
                mapping={"languages": language_str},
            )
            response.addNotification(structured(msgid))
Example #3
0
 def browserLanguages(self):
     return browser_languages(self.request)
Example #4
0
 def browserLanguages(self):
     """The languages the user's browser requested."""
     return browser_languages(self.request)
 def browserLanguages(self):
     return browser_languages(self.request)