br
[librarian.git] / src / librarian / covers / widgets / author.py
index 4060999..db35949 100644 (file)
@@ -1,3 +1,6 @@
+# This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
+#
 import PIL.ImageFont
 from librarian import get_resource
 from librarian.cover import Metric
@@ -18,14 +21,14 @@ class AuthorBox(Widget):
         author_font = PIL.ImageFont.truetype(
             get_resource('fonts/SourceSans3VF-Roman.ttf'),
             self.m.font_size,
-            layout_engine=PIL.ImageFont.LAYOUT_BASIC
+            layout_engine=PIL.ImageFont.Layout.BASIC
         )
         author_font.set_variation_by_axes([600])
 
         translator_font = PIL.ImageFont.truetype(
             get_resource('fonts/SourceSans3VF-Roman.ttf'),
             self.m.font_size,
-            layout_engine=PIL.ImageFont.LAYOUT_BASIC
+            layout_engine=PIL.ImageFont.Layout.BASIC
         )
         translator_font.set_variation_by_axes([400])
 
@@ -131,6 +134,30 @@ class AuthorBox(Widget):
 
             self.textboxes = [author_box]
 
+        elif translators:
+            translators_shortened = False
+            translator_box = None
+            while translator_box is None:
+                translator_str = 'tłum. ' + ', '.join(translators)
+                if translators_shortened:
+                    translator_str += ' i in.'
+                try:
+                    translator_box = TextBox(
+                        self.width,
+                        self.m.leading * 2,
+                        [translator_str],
+                        translator_font,
+                        1,
+                        self.m.leading,
+                        0,
+                        1, 0
+                    )
+                except DoesNotFit:
+                    translators.pop()
+                    translators_shortened = True
+
+            self.textboxes = [translator_box]
+
         if self.textboxes:
             self.margin_top = self.textboxes[0].margin_top