def render_widget(request, project, widget='287x66', color=None, lang=None, extension='png'): # We intentionally skip ACL here to allow widget sharing obj = get_project(request, project, skip_acl=True) # Handle language parameter if lang is not None: if 'native' not in request.GET: try_set_language(lang) lang = Language.objects.try_get(code=lang) # Get widget class try: widget_class = WIDGETS[widget] except KeyError: raise Http404() # Construct object widget = widget_class(obj, color, lang) # Redirect widget if hasattr(widget, 'redirect'): return redirect(widget.redirect()) # Render widget widget.render() # Get image data data = widget.get_image() return HttpResponse( content_type=widget.content_type, content=data )
def show_engage(request, project, lang=None): # Get project object, skipping ACL obj = get_project(request, project, skip_acl=True) # Handle language parameter if lang is not None: language = Language.objects.try_get(code=lang) else: language = None if language: try_set_language(lang) stats_obj = obj.stats.get_single_language_stats(language) else: stats_obj = obj.stats percent = stats_obj.translated_percent languages = obj.get_language_count() context = { 'allow_index': True, 'object': obj, 'project': obj, 'languages': languages, 'total': obj.stats.source_strings, 'percent': percent, 'url': obj.get_absolute_url(), 'lang_url': obj.get_absolute_url() + '#languages', 'language': language, 'title': _('Get involved in {0}!').format(obj), } # Render text if language is None: status_text = _( '<a href="%(url)s">Translation project for %(project)s</a> ' 'currently contains %(total)s strings for translation and is ' '<a href="%(lang_url)s">being translated into %(languages)s ' 'languages</a>. Overall, these translations are %(percent)s%% ' 'complete.' ) else: # Translators: line of text in engagement page, please use your # language name instead of English status_text = _('<a href="%(url)s">Translation project for ' '%(project)s</a> into English currently contains ' '%(total)s strings for translation and is ' '%(percent)s%% complete.') if 'English' in status_text: status_text = status_text.replace('English', language.name) context['status_text'] = mark_safe(status_text % context) return render( request, 'engage.html', context )
def render_widget(request, project, widget='287x66', color=None, lang=None, component=None, extension='png'): # We intentionally skip ACL here to allow widget sharing if component is None: obj = get_project(request, project, skip_acl=True) else: obj = get_component(request, project, component, skip_acl=True) # Handle language parameter if lang is not None: if 'native' not in request.GET: try_set_language(lang) lang = Language.objects.try_get(code=lang) else: try_set_language('en') # Get widget class try: widget_class = WIDGETS[widget] except KeyError: raise Http404() # Construct object widget_obj = widget_class(obj, color, lang) # Redirect widget if hasattr(widget_obj, 'redirect'): return redirect(widget_obj.redirect(), permanent=True) # Invalid extension if extension != widget_obj.extension or color != widget_obj.color: kwargs = { 'project': project, 'widget': widget, 'color': widget_obj.color, 'extension': widget_obj.extension, } if lang: kwargs['lang'] = lang.code return redirect('widget-image', permanent=True, **kwargs) return redirect('widget-image', permanent=True, **kwargs) # Render widget widget_obj.render() return HttpResponse( content_type=widget_obj.content_type, content=widget_obj.get_content() )
def render_widget(request, project, widget='287x66', color=None, lang=None, extension='png'): obj = get_project(request, project) # Handle language parameter if lang is not None: lang = try_set_language(lang) # Get widget class try: widget_class = WIDGETS[widget] except KeyError: raise Http404() # Construct object widget = widget_class(obj, color, lang) # Redirect widget if hasattr(widget, 'redirect'): return redirect(widget.redirect()) # Render widget widget.render() # Get image data data = widget.get_image() return HttpResponse( content_type=widget.content_type, content=data )
def show_engage(request, project, lang=None): # Get project object, skipping ACL obj = get_project(request, project, skip_acl=True) # Handle language parameter language = None if lang is not None: try_set_language(lang) language = Language.objects.try_get(code=lang) context = { 'object': obj, 'project': obj, 'languages': obj.get_language_count(), 'total': obj.get_total(), 'percent': obj.get_translated_percent(language), 'url': obj.get_absolute_url(), 'language': language, } # Render text if language is None: status_text = _( '<a href="%(url)s">Translation project for %(project)s</a> ' 'currently contains %(total)s strings for translation and is ' '<a href="%(url)s">being translated into %(languages)s languages' '</a>. Overall, these translations are %(percent)s%% complete.' ) else: # Translators: line of text in engagement widget, please use your # language name instead of English status_text = _( '<a href="%(url)s">Translation project for %(project)s</a> into ' 'English currently contains %(total)s strings for translation and ' 'is %(percent)s%% complete.' ) if 'English' in status_text: status_text = status_text.replace('English', language.name) context['status_text'] = mark_safe(status_text % context) return render( request, 'engage.html', context )
def show_engage(request, project, lang=None): # Get project object, skipping ACL obj = get_project(request, project, skip_acl=True) # Handle language parameter language = None if lang is not None: language = try_set_language(lang) context = { 'object': obj, 'project': obj, 'languages': obj.get_language_count(), 'total': obj.get_total(), 'percent': obj.get_translated_percent(language), 'url': obj.get_absolute_url(), 'language': language, } # Render text if language is None: status_text = _( '<a href="%(url)s">Translation project for %(project)s</a> ' 'currently contains %(total)s strings for translation and is ' '<a href="%(url)s">being translated into %(languages)s languages' '</a>. Overall, these translations are %(percent)s%% complete.') else: # Translators: line of text in engagement widget, please use your # language name instead of English status_text = _( '<a href="%(url)s">Translation project for %(project)s</a> into ' 'English currently contains %(total)s strings for translation and ' 'is %(percent)s%% complete.') if 'English' in status_text: status_text = status_text.replace('English', language.name) context['status_text'] = mark_safe(status_text % context) return render(request, 'engage.html', context)
def render(request, project, widget='287x66', color=None, lang=None): obj = get_project(request, project) # Handle language parameter if lang is not None: lang = try_set_language(lang) # Get widget class try: widget_class = WIDGETS[widget] except KeyError: raise Http404() # Construct object widget = widget_class(obj, color, lang) # Render widget widget.render() # Get image data data = widget.get_image() return HttpResponse(content_type='image/png', content=data)
def render(request, project, widget="287x66", color=None, lang=None): obj = get_project(request, project) # Handle language parameter if lang is not None: lang = try_set_language(lang) # Get widget class try: widget_class = WIDGETS[widget] except KeyError: raise Http404() # Construct object widget = widget_class(obj, color, lang) # Render widget widget.render() # Get image data data = widget.get_image() return HttpResponse(content_type="image/png", content=data)