コード例 #1
0
ファイル: widgets.py プロジェクト: yarons/weblate
    def render(self, response):
        translated_text = _('translated')
        translated_width = render_size(
            "DejaVu Sans", Pango.Weight.NORMAL, 11, 0, translated_text
        )[0].width + 5

        percent_text = self.get_percent_text()
        percent_width = render_size(
            "DejaVu Sans", Pango.Weight.NORMAL, 11, 0, percent_text
        )[0].width + 5

        if self.percent >= 90:
            color = '#4c1'
        elif self.percent >= 75:
            color = '#dfb317'
        else:
            color = '#e05d44'

        response.write(render_to_string(
            self.template_name,
            {
                'translated_text': translated_text,
                'percent_text': percent_text,
                'translated_width': translated_width,
                'percent_width': percent_width,
                'width': translated_width + percent_width,
                'color': color,
                'translated_offset': translated_width // 2,
                'percent_offset': translated_width + percent_width // 2,
                'lang': get_language(),
            }
        ))
コード例 #2
0
    def render(self, response):
        translated_text = _("translated")
        translated_width = (render_size("DejaVu Sans", Pango.Weight.NORMAL, 11,
                                        0, translated_text)[0].width + 5)

        percent_text = self.get_percent_text()
        percent_width = (render_size("DejaVu Sans", Pango.Weight.NORMAL, 11, 0,
                                     percent_text)[0].width + 5)

        if self.percent >= 90:
            color = "#4c1"
        elif self.percent >= 75:
            color = "#dfb317"
        else:
            color = "#e05d44"

        response.write(
            render_to_string(
                self.template_name,
                {
                    "translated_text": translated_text,
                    "percent_text": percent_text,
                    "translated_width": translated_width,
                    "percent_width": percent_width,
                    "width": translated_width + percent_width,
                    "color": color,
                    "translated_offset": translated_width // 2,
                    "percent_offset": translated_width + percent_width // 2,
                    "lang": get_language(),
                },
            ))
コード例 #3
0
ファイル: widgets.py プロジェクト: rheehot/weblate
    def render(self, response):
        translations = []
        offset = 20
        color = self.COLOR_MAP[self.color]
        language_width = 190
        for stats in self.obj.stats.get_language_stats():
            language = stats.language
            percent = stats.translated_percent
            if self.color == "auto":
                color = get_percent_color(percent)
            language_name = force_str(language)

            language_width = max(
                language_width,
                (render_size("DejaVu Sans", Pango.Weight.NORMAL, 11, 0,
                             language_name)[0].width + 5),
            )
            translations.append((
                # Language name
                language_name,
                # Translation percent
                int(percent),
                # Text y offset
                offset,
                # Bar y offset
                offset - 6,
                # Bar width
                int(percent * 1.5),
                # Bar color
                color,
                # Row URL
                get_site_url(
                    reverse(
                        "project-language",
                        kwargs={
                            "lang": language.code,
                            "project": self.obj.slug
                        },
                    )),
                # Top offset for horizontal
                10 + int((100 - percent) * 1.5),
            ))
            offset += 15

        response.write(
            render_to_string(
                self.template_name,
                {
                    "height": len(translations) * 15 + 15,
                    "width": language_width + 210,
                    "language_offset": language_width,
                    "bar_offset": language_width + 10,
                    "text_offset": language_width + 170,
                    "translations": translations,
                    "site_url": get_site_url(),
                    "horizontal_height": language_width + 130,
                    "fonts_cdn_url": settings.FONTS_CDN_URL,
                },
            ))