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))
def browserLanguages(self): return browser_languages(self.request)
def browserLanguages(self): """The languages the user's browser requested.""" return browser_languages(self.request)