From 0c372e3cf5cf0089ac16d5f18bb4267012baeb2f Mon Sep 17 00:00:00 2001 From: Alexander Chaika Date: Tue, 1 Feb 2022 18:11:08 +0300 Subject: [PATCH 1/2] Update translation, fix queues --- Dockerfile | 4 +- manage.py | 2 +- manti_by/apps/blog/apps.py | 4 + manti_by/apps/blog/constants.py | 2 + .../management/commands/check_posts_state.py | 5 + ...ptions_remove_post_original_id_and_more.py | 43 ++ manti_by/apps/blog/models.py | 13 +- manti_by/apps/blog/services.py | 3 + manti_by/apps/core/apps.py | 4 + .../apps/core/locale/be/LC_MESSAGES/django.mo | Bin 5515 -> 6596 bytes .../apps/core/locale/be/LC_MESSAGES/django.po | 371 +++++++++------- .../apps/core/locale/ru/LC_MESSAGES/django.mo | Bin 5527 -> 6620 bytes .../apps/core/locale/ru/LC_MESSAGES/django.po | 363 +++++++++------ manti_by/apps/core/services.py | 13 +- manti_by/apps/gallery/apps.py | 4 + ...ter_gallery_options_alter_image_options.py | 21 + manti_by/apps/gallery/models.py | 16 +- manti_by/apps/profiles/apps.py | 4 + .../migrations/0007_alter_profile_options.py | 17 + manti_by/apps/profiles/models.py | 4 + manti_by/apps/shortener/apps.py | 4 + .../migrations/0004_alter_link_options.py | 17 + manti_by/apps/shortener/models.py | 4 + manti_by/core/locale/be/LC_MESSAGES/django.mo | Bin 0 -> 518 bytes manti_by/core/locale/be/LC_MESSAGES/django.po | 420 ++++++++++++++++++ manti_by/core/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 518 bytes manti_by/core/locale/ru/LC_MESSAGES/django.po | 420 ++++++++++++++++++ manti_by/settings/base.py | 8 +- manti_by/templates/base.html | 4 +- manti_by/urls.py | 4 +- 30 files changed, 1458 insertions(+), 316 deletions(-) create mode 100644 manti_by/apps/blog/migrations/0017_alter_post_options_remove_post_original_id_and_more.py create mode 100644 manti_by/apps/gallery/migrations/0016_alter_gallery_options_alter_image_options.py create mode 100644 manti_by/apps/profiles/migrations/0007_alter_profile_options.py create mode 100644 manti_by/apps/shortener/migrations/0004_alter_link_options.py create mode 100644 manti_by/core/locale/be/LC_MESSAGES/django.mo create mode 100644 manti_by/core/locale/be/LC_MESSAGES/django.po create mode 100644 manti_by/core/locale/ru/LC_MESSAGES/django.mo create mode 100644 manti_by/core/locale/ru/LC_MESSAGES/django.po diff --git a/Dockerfile b/Dockerfile index d5b03360..c2c21f55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,7 @@ RUN export PATH="/bin:$PATH" && export PKG_CONFIG_PATH="/var/lib/ffmpeg/build/li --enable-libtheora \ --enable-libvorbis \ --enable-nonfree && \ - make -j2 && \ + make -j4 && \ make install && \ rm -rf /var/lib/ffmpeg/ @@ -33,7 +33,7 @@ RUN pip install --trusted-host pypi.org --no-cache-dir --upgrade pip && \ pip install --trusted-host pypi.org --no-cache-dir -r /tmp/prod.txt # Remove system packages after use -RUN apt-get autoremove -y --purge autoconf automake build-essential cmake git-core pkg-config wget yasm && \ +RUN apt-get autoremove -y --purge autoconf automake build-essential cmake git-core pkg-config yasm && \ apt-get clean -y # Add base user diff --git a/manage.py b/manage.py index 3fc4606c..71a41dec 100755 --- a/manage.py +++ b/manage.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """Django's command-line utility for administrative tasks.""" import os import sys diff --git a/manti_by/apps/blog/apps.py b/manti_by/apps/blog/apps.py index a40d9e19..795d13ad 100644 --- a/manti_by/apps/blog/apps.py +++ b/manti_by/apps/blog/apps.py @@ -1,6 +1,10 @@ from django.apps import AppConfig +from django.utils.translation import gettext_lazy as _ class BlogConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "manti_by.apps.blog" + + verbose_name = _("Blog") + verbose_name_plural = _("Blogs") diff --git a/manti_by/apps/blog/constants.py b/manti_by/apps/blog/constants.py index 83e28bd1..2def4ede 100644 --- a/manti_by/apps/blog/constants.py +++ b/manti_by/apps/blog/constants.py @@ -1,5 +1,7 @@ MP3_PREVIEW = "mp3_preview" +MP3_RELEASE = "mp3_release" + OGG_PREVIEW = "ogg_preview" OGG_RELEASE = "ogg_release" diff --git a/manti_by/apps/blog/management/commands/check_posts_state.py b/manti_by/apps/blog/management/commands/check_posts_state.py index 5d2e877d..191bb1d2 100644 --- a/manti_by/apps/blog/management/commands/check_posts_state.py +++ b/manti_by/apps/blog/management/commands/check_posts_state.py @@ -15,6 +15,11 @@ def handle(self, *args, **options): checked = 0 for post in Post.objects.all(): try: + post.mp3_release_ready = ( + os.path.exists(post.release_mp3_file) + and os.path.getsize(post.release_mp3_file) > 0 + ) + post.ogg_release_ready = ( os.path.exists(post.release_ogg_file) and os.path.getsize(post.release_ogg_file) > 0 diff --git a/manti_by/apps/blog/migrations/0017_alter_post_options_remove_post_original_id_and_more.py b/manti_by/apps/blog/migrations/0017_alter_post_options_remove_post_original_id_and_more.py new file mode 100644 index 00000000..05fc6e54 --- /dev/null +++ b/manti_by/apps/blog/migrations/0017_alter_post_options_remove_post_original_id_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 4.0.1 on 2022-01-31 21:41 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('taggit', '0004_alter_taggeditem_content_type_alter_taggeditem_tag'), + ('blog', '0016_auto_20210917_1132'), + ] + + operations = [ + migrations.AlterModelOptions( + name='post', + options={'verbose_name': 'Post', 'verbose_name_plural': 'Posts'}, + ), + migrations.RemoveField( + model_name='post', + name='original_id', + ), + migrations.AddField( + model_name='post', + name='mp3_release_ready', + field=models.BooleanField(blank=True, default=False), + ), + migrations.AlterField( + model_name='genresproxy', + name='tag', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='taggit.tag'), + ), + migrations.AlterField( + model_name='post', + name='related', + field=models.ManyToManyField(blank=True, to='blog.Post'), + ), + migrations.AlterField( + model_name='tagsproxy', + name='tag', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='taggit.tag'), + ), + ] diff --git a/manti_by/apps/blog/models.py b/manti_by/apps/blog/models.py index 26829b3b..f2d78ab2 100644 --- a/manti_by/apps/blog/models.py +++ b/manti_by/apps/blog/models.py @@ -71,20 +71,23 @@ class Post(SlugifyMixin, BaseModel): related = models.ManyToManyField("self", blank=True) mp3_preview_ready = models.BooleanField(blank=True, default=False) + mp3_release_ready = models.BooleanField(blank=True, default=False) ogg_preview_ready = models.BooleanField(blank=True, default=False) ogg_release_ready = models.BooleanField(blank=True, default=False) - original_id = models.IntegerField(blank=True, default=0) # Temporary field - objects = PostManager() + class Meta: + verbose_name = _("Post") + verbose_name_plural = _("Posts") + def __str__(self): return self.name @property def files_converted(self): return ( - self.mp3_preview_ready and self.ogg_preview_ready and self.ogg_release_ready + self.mp3_preview_ready and self.mp3_release_ready and self.ogg_preview_ready and self.ogg_release_ready ) @property @@ -113,11 +116,11 @@ def url(self): @property def release_mp3_url(self): - return self.release.url if self.release else None + return self.release.url.replace("flac", "mp3") if self.release else None @property def release_mp3_file(self): - return self.release.file.name if self.release else None + return self.release.file.name.replace("flac", "mp3") if self.release else None @property def preview_mp3_url(self): diff --git a/manti_by/apps/blog/services.py b/manti_by/apps/blog/services.py index 77dc874c..c3b5b7cf 100644 --- a/manti_by/apps/blog/services.py +++ b/manti_by/apps/blog/services.py @@ -2,6 +2,7 @@ convert_to_mp3_preview, convert_to_ogg_preview, convert_to_ogg_release, + convert_to_mp3_release, ) from manti_by.apps.core.utils import get_rq_queue @@ -13,6 +14,8 @@ def generate_preview_for_post(post): return if not post.mp3_preview_ready: queue.enqueue(convert_to_mp3_preview, post.id) + if not post.mp3_release_ready: + queue.enqueue(convert_to_mp3_release, post.id) if not post.ogg_preview_ready: queue.enqueue(convert_to_ogg_preview, post.id) if not post.ogg_release_ready: diff --git a/manti_by/apps/core/apps.py b/manti_by/apps/core/apps.py index 1002d6de..0504e43a 100644 --- a/manti_by/apps/core/apps.py +++ b/manti_by/apps/core/apps.py @@ -1,6 +1,10 @@ from django.apps import AppConfig +from django.utils.translation import gettext_lazy as _ class CoreConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "manti_by.apps.core" + + verbose_name = _("Core") + verbose_name_plural = _("Core") diff --git a/manti_by/apps/core/locale/be/LC_MESSAGES/django.mo b/manti_by/apps/core/locale/be/LC_MESSAGES/django.mo index e06bfd876e584f5a01948e5001c13d0a06e8c10f..5352a862a51ebe06de2ec401ea4fc16e4ec78cf2 100644 GIT binary patch delta 3137 zcmZ{lZEO`)8pls7(B78PH)w%Y7%hqvEiBl@SEPVdL?}fN1#~-Y2YQ#w+_m=>7SxoA zg0WV>6N_(%Xk0fMwNk3F(Bf-WzbrE!b~iCu-0bqjtm_wzF~My1_rIN+uo_P8Grx1r zJm+~m)Ar8&bYb_|vT@HCMhj9cxx|>g;shRytMZK*59dUj2TNGjL#Z^v7+eJl;RZMk zw!!OQ2W*AMpzMr8xd0ZxiNt(Kz+z(p&Xxway)@3_1=Lhbv;yK zH$+?kNub-@!$c)=p(5*v6pliE=IvT>0fp3c|63b+i)(MG7m;t_X4 z>GeVd`X-#J5Ar=GiuepvslSFQ^$$>$n2tAbKD-<@!Z|PwrElRX_%f`A-$FT>#UVLb z4sV7{Q2KrFTKGJignx5}i84Q{4fqq3Vj=0sz*MMp4V2;eP?@cPs(=eQV)jDmJs0s0 zQ0E7s^hTjR(|<%f54&}sqH@e}4b*`Ja2>oEdhlr|hd)9Yit*7akhzd#%}Pi&ObbNC zq@eVA;jiIaa1A^M6=*%>j>DDHsJ}8EVj~CY3&;-L?nZ=*of%g|6cnUdguTq=x)*Ll zmLs{yEW|-{Uw%Fov7z8^MXJqR{L5jYe%^yzf@moE&B#1N5$jvO4N;#p8jzKU?t@yV z?D*S~85^uSzPx)ebL#tlLtUR8?OX|OM4A!xK=sXzTbQV>`p(oa{iRSpvV)76xv{^= zZonncTp#)U`mW|PxgKdjbp6yI)w&kB8qwfe%``|&y8~H@%s`eQYmqu+6S4xi0l5#+ zScqJMEI{g!7^1O$4E%|^du$dVv$&n-YUEdAuS^rXGn&%|irSj&N}GoE?Q!2UB)s3d ze!JJ{EbDON+g#JI!%e%L_Vk46@}-I7Rwuc|kxum54&+~vYnIxh`OOu6(%~d8;)w(X z>x}eM_R9&&b2~j-mDil>CvC~3DYhr?y27}ZGPk*jgx9&t{wZ%kdCIKV?r!x`PFu3e zPn#9~mZY7YUl)t}+svIjQnoSwmPM;}Ic{4zp7c{@b<+17cZVBKxUC6~Wx6BoZ*|g1 zC)JVMX_`9YTjRc)aCF#~#hUEq*sPqSeK1zF*sSSHZiy#6C*v}^N}1*^HxW6eNt^Y* zYj@LLg!U}2cGj<3W)Bw3oVmeEv?aHDioErg1+KGi7d$q&xo~?<;fdf>*dL4p!@+?4 zY@$9*uy0=s=@=oaM%+JpmrkM6AU=P>nuLVocX+D-5e7f3Qh*2 z!Jrcy3{GBDJM6b;=Qy^ybb8e<`kJ+YR!!0FyhC_+pO{`K>Kf~?E$KIbW%pz-6z&Q8 z!UJ}6(zc=(wG%!?Xam8pZ75z~A1?mwrNLdX;^!blBFGEr}h*)oB!a?3S|Yi;hx}(eP1< zcrtv_9w~FyUbutJcN7A_>t0&HIF!qnN)DHX`> F{{exNs(=6h delta 2242 zcmY+EU2IfE6vw9u*zE_UUr=bJ7X&P}g?`Wq)l#5^QY{pk8qx<%7P@UWEnTv^ja1OJ zjiQ7v=>#;27*P_9L5Q`9LIF+GpbvOA5nc?M7*HQbd=Pyw82tTjuS8GoncvKunK@_9 z%-k=k_mw7o$eD7)AREylbpJiZ^ugOxD3JH288a2W4`;yBFaSS;>F^ty8?;nK<;5Dd#-h~R} zL&#^wC=|#!sC6#E>F_etI@i4Z1d&qVGdC%;gIiD&??5e>!Du!Id1`~B@u>vlqAE(jG!6l(rXn1z4yB9$;a0_ETi)WA%1-02aYHum);@O>iE3 z5@x{!)ciwGj^Bh@=cM2Mz_*V<&Ho%Gw1dn3fGbe#YfwA64wZr5eETiGeH$*NKZQZn zuoBW`LNEtLpw=0I3S=+TMh?R~_&QVor_(t9Yhnn{sRO*lUJO%SPDyxZi4e+9G-%SSE($fvNn5i zfe6%uXW$0-60Ct&paMuI?0Q%Vm%%X9&W=OPoACKHWNC91Y6HJOr9QwpXuo6{jB|1V$13DKiNBN6#EG2lJ9CaAySI&~m5lkhUEdn1`O z3GbIL|K54(vaIzD3ta;)ZmG^|yRe|bu>fCjvW$3@6=Op3Sjaj`lG8i|j`$Ic}16`r0)7Tpf_XTZh zYLQI~G}`vSMtdT#Vfv714)*tlqC-w=I2N~m1*+zGHPf;^*b|C5+aiMlanmx;9ifQD zgFVsUcH5A)#O_S1pR+L%?+p+1IPr)R>y12Z+Pb^L+rq(qXRAGtx_Q2XXZ(iy`w3-< zX^Vz?!UI@a!vlS$E#4c7+M8)@c2#<@4W-Y_b3B)3^I)()93L|6pI$c_rmmv4v;rAB zlDQ+r=4BPx`m6?fe#Ve($d1{Mvu)uaw0iLAn0cicUj9Cpt*?lGpFPmUz_ z+3~E7lBVe3b}uJug0WbcvpzBy3zaz?p>4hY&y?-WD+}yl;>%1Qx1)IzwllxRzJdOj tKeynt7sGIJPjbI;E#Zu~7u=8V(Kd5*Y}Ty&6x&)*V)qwx+S=I%{{h2DPJ{pe diff --git a/manti_by/apps/core/locale/be/LC_MESSAGES/django.po b/manti_by/apps/core/locale/be/LC_MESSAGES/django.po index e07c2e97..165abeb0 100644 --- a/manti_by/apps/core/locale/be/LC_MESSAGES/django.po +++ b/manti_by/apps/core/locale/be/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: manti.by\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-30 15:36+0000\n" +"POT-Creation-Date: 2022-01-31 22:06+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Alexander Chaika \n" "Language-Team: LANGUAGE \n" @@ -13,349 +13,420 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: api/resources.py:24 +#: manti_by/api/resources.py:22 msgid "Forbidden" msgstr "Забаронена" -#: api/resources.py:37 +#: manti_by/api/resources.py:35 msgid "Updated" msgstr "Адноўлены" -#: api/resources.py:53 +#: manti_by/api/resources.py:52 msgid "Contact request from manti.by" msgstr "Кантактны запыт ад manti.by" -#: api/resources.py:58 +#: manti_by/api/resources.py:60 msgid "Thanks for subscribing, we'll get in touch soon" msgstr "Дзякуй за падпіску, мы звяжамся ў бліжэйшы час" -#: blog/admin.py:23 +#: manti_by/apps/blog/admin.py:30 msgid "Base Info" msgstr "Базавая інфармацыя" -#: blog/admin.py:26 +#: manti_by/apps/blog/admin.py:31 msgid "Meta Description" msgstr "Мета апісанне" -#: blog/admin.py:29 +#: manti_by/apps/blog/admin.py:32 msgid "Summary" msgstr "Коратка" -#: blog/admin.py:32 +#: manti_by/apps/blog/admin.py:34 msgid "Description" msgstr "Апісанне" -#: blog/admin.py:35 blog/models.py:56 core/templates/blog/list-item.html:42 -#: core/templates/blog/post.html:75 +#: manti_by/apps/blog/admin.py:37 manti_by/apps/blog/models.py:67 +#: manti_by/templates/blog/list-item.html:47 +#: manti_by/templates/blog/post.html:81 msgid "Tags" msgstr "Меткі" -#: blog/admin.py:38 +#: manti_by/apps/blog/admin.py:38 msgid "Related" msgstr "Звязаныя" -#: blog/admin.py:42 +#: manti_by/apps/blog/admin.py:40 msgid "Music params" msgstr "Музычныя параметры" -#: blog/admin.py:46 +#: manti_by/apps/blog/admin.py:47 msgid "Files" msgstr "Файлы" -#: blog/admin.py:60 core/templates/profiles/profile.html:35 gallery/admin.py:51 -#: gallery/models.py:55 gallery/models.py:67 +#: manti_by/apps/blog/admin.py:74 manti_by/apps/gallery/admin.py:46 +#: manti_by/apps/gallery/models.py:54 manti_by/apps/gallery/models.py:67 +#: manti_by/templates/profiles/profile.html:35 msgid "Image" msgstr "Малюнак" -#: blog/admin.py:65 +#: manti_by/apps/blog/admin.py:80 msgid "Files Ready" msgstr "Файлы гатовыя" -#: blog/admin.py:70 +#: manti_by/apps/blog/admin.py:86 msgid "Translations Ready" msgstr "Пераклады гатовыя" -#: blog/models.py:41 +#: manti_by/apps/blog/apps.py:9 manti_by/templates/blog/list.html:5 +#: manti_by/templates/blog/list.html:6 manti_by/templates/blog/simple.html:16 +msgid "Blog" +msgstr "Блог" + +#: manti_by/apps/blog/apps.py:10 +msgid "Blogs" +msgstr "Блогі" + +#: manti_by/apps/blog/models.py:43 msgid "Release File" msgstr "Выпуск файл" -#: blog/models.py:45 +#: manti_by/apps/blog/models.py:51 msgid "Cover Image" msgstr "Вокладка" -#: blog/models.py:53 core/templates/blog/post.html:58 +#: manti_by/apps/blog/models.py:63 manti_by/templates/blog/post.html:64 msgid "Genre" msgstr "Жанр" -#: blog/views.py:45 +#: manti_by/apps/blog/models.py:81 +msgid "Post" +msgstr "Запіс" + +#: manti_by/apps/blog/models.py:82 +msgid "Posts" +msgstr "Запісы" + +#: manti_by/apps/blog/views.py:54 #, python-format msgid "Post with slug %s does not exists" msgstr "Запіс са спасылкай %s не знойдзены" -#: core/mixins.py:15 +#: manti_by/apps/core/apps.py:9 manti_by/apps/core/apps.py:10 +msgid "Core" +msgstr "База" + +#: manti_by/apps/core/mixins.py:13 msgid "Slug" msgstr "Ссылка" -#: core/models.py:11 +#: manti_by/apps/core/models.py:8 msgid "Created, UTC" msgstr "Створаны, UTC" -#: core/models.py:12 -#, fuzzy -#| msgid "Created, UTC" +#: manti_by/apps/core/models.py:9 msgid "Updated, UTC" -msgstr "Створаны, UTC" +msgstr "Адноўлены, UTC" + +#: manti_by/apps/gallery/admin.py:20 +msgid "Images count" +msgstr "Колькасць фота" + +#: manti_by/apps/gallery/admin.py:35 +msgid "Info" +msgstr "Інфармацыя" + +#: manti_by/apps/gallery/admin.py:52 +msgid "Ready" +msgstr "Гатовы" + +#: manti_by/apps/gallery/apps.py:9 manti_by/apps/gallery/models.py:29 +#: manti_by/templates/base.html:86 manti_by/templates/base.html:125 +#: manti_by/templates/gallery/gallery.html:5 +#: manti_by/templates/gallery/gallery.html:6 +#: manti_by/templates/gallery/gallery.html:10 +msgid "Gallery" +msgstr "Галерэя" -#: core/settings/base.py:130 +#: manti_by/apps/gallery/apps.py:10 manti_by/apps/gallery/models.py:30 +msgid "Galleries" +msgstr "Галерэі" + +#: manti_by/apps/gallery/models.py:68 +msgid "Images" +msgstr "Малюнак" + +#: manti_by/apps/profiles/apps.py:9 manti_by/apps/profiles/models.py:24 +msgid "Profile" +msgstr "Профіль" + +#: manti_by/apps/profiles/apps.py:10 manti_by/apps/profiles/models.py:25 +msgid "Profiles" +msgstr "Профілі" + +#: manti_by/apps/profiles/models.py:16 +msgid "Profile Image" +msgstr "Малюнак профілю" + +#: manti_by/apps/shortener/apps.py:9 +msgid "Shortener" +msgstr "Укарачывацель" + +#: manti_by/apps/shortener/apps.py:10 +msgid "Shortener List" +msgstr "Укарачывацелі" + +#: manti_by/apps/shortener/models.py:14 +msgid "Original Link" +msgstr "Арыгінальная спасылка" + +#: manti_by/apps/shortener/models.py:16 +msgid "Short Link" +msgstr "Кароткая спасылка" + +#: manti_by/apps/shortener/models.py:20 +msgid "Link" +msgstr "Спасылка" + +#: manti_by/apps/shortener/models.py:21 +msgid "Links" +msgstr "Спасылкі" + +#: manti_by/settings/base.py:153 msgid "Belarussian" msgstr "Беларускі" -#: core/settings/base.py:131 +#: manti_by/settings/base.py:154 msgid "Russian" msgstr "Руская" -#: core/settings/base.py:132 +#: manti_by/settings/base.py:155 msgid "English" msgstr "Англійская" -#: core/templates/base.html:5 core/templates/base.html:41 +#: manti_by/settings/base.py:217 +msgid "Welcome to blog of Alex Chaika." +msgstr "Сардэчна запрашаем у блог Александра Чайка." + +#: manti_by/settings/base.py:218 +msgid "Blog of Alex Chaika. My music, photos and info about me." +msgstr "" +"Афіцыйны блог Аляксандра Чайка. Мая музыка, фатаграфіі і інфармацыя пра мяне." + +#: manti_by/templates/admin/index.html:23 +msgid "Admin" +msgstr "Адмінка" + +#: manti_by/templates/admin/index.html:26 +msgid "RQ Queues" +msgstr "Чаргі" + +#: manti_by/templates/admin/index.html:29 +msgid "Recent actions" +msgstr "Нядаўнія дзеянні" + +#: manti_by/templates/admin/index.html:30 +msgid "My actions" +msgstr "Маі дзеянні" + +#: manti_by/templates/admin/index.html:34 +msgid "None available" +msgstr "Нічога няма" + +#: manti_by/templates/admin/index.html:48 +msgid "Unknown content" +msgstr "Невядомы кантэнт" + +#: manti_by/templates/base.html:5 manti_by/templates/base.html:41 msgid "Drum and Bass, House, Techno and Chillout." msgstr "Drum and Bass, House, Techno and Chillout." -#: core/templates/base.html:36 core/templates/base.html:43 +#: manti_by/templates/base.html:36 manti_by/templates/base.html:43 msgid "" -"Official blog of Alex Manti. My music, photos and info about me. Drum and " -"Bass, House, Techno and Chillout." +"Blog of Alex Manti. My music, photos and info about me. Drum and Bass, " +"House, Techno and Chillout." msgstr "" -"Афіцыйны блог Алекса Манты. Мая музыка, фатаграфіі і інфармацыя пра мяне. " -"Drum and Bass, House, Techno and Chillout." +"Блог Аляксандра Чайкі. Мая музыка, фатаграфіі і інфармацыя пра мяне. Drum " +"and Bass, House, Techno and Chillout." -#: core/templates/base.html:78 core/templates/base.html:118 -#: core/templates/blog/list.html:11 core/templates/blog/list.html:18 -#: core/templates/blog/post.html:23 +#: manti_by/templates/base.html:83 manti_by/templates/base.html:122 +#: manti_by/templates/blog/list.html:11 manti_by/templates/blog/list.html:18 +#: manti_by/templates/blog/post.html:23 msgid "Music" msgstr "Музыка" -#: core/templates/base.html:81 core/templates/base.html:121 -#: core/templates/gallery/gallery.html:5 core/templates/gallery/gallery.html:6 -#: core/templates/gallery/gallery.html:10 gallery/models.py:43 -msgid "Gallery" -msgstr "Галерэя" - -#: core/templates/base.html:123 core/templates/base.html:154 -#: core/templates/static/about.html:5 core/templates/static/about.html:6 -#: core/templates/static/about.html:12 +#: manti_by/templates/base.html:127 manti_by/templates/base.html:158 +#: manti_by/templates/static/about.html:5 +#: manti_by/templates/static/about.html:6 +#: manti_by/templates/static/about.html:13 msgid "About" msgstr "Аба мне" -#: core/templates/base.html:124 core/templates/base.html:155 -#: core/templates/static/resume.html:5 core/templates/static/resume.html:6 -#: core/templates/static/resume.html:12 +#: manti_by/templates/base.html:128 manti_by/templates/base.html:159 +#: manti_by/templates/static/resume.html:5 +#: manti_by/templates/static/resume.html:6 +#: manti_by/templates/static/resume.html:13 msgid "Resume" msgstr "Рэзюмэ" -#: core/templates/base.html:125 core/templates/base.html:156 -#: core/templates/static/copyrights.html:5 -#: core/templates/static/copyrights.html:6 -#: core/templates/static/copyrights.html:10 +#: manti_by/templates/base.html:129 manti_by/templates/base.html:160 +#: manti_by/templates/static/copyrights.html:5 +#: manti_by/templates/static/copyrights.html:6 +#: manti_by/templates/static/copyrights.html:11 msgid "Copyrights" msgstr "Аўтарскія правы" -#: core/templates/base.html:126 +#: manti_by/templates/base.html:130 msgid "Search" msgstr "Пошук" -#: core/templates/base.html:128 +#: manti_by/templates/base.html:132 msgid "Logout" msgstr "Выхад" -#: core/templates/blog/list-item.html:21 core/templates/blog/post.html:43 -#: core/templates/blog/simple.html:29 core/templates/emails/email.html:65 +#: manti_by/templates/blog/list-item.html:26 +#: manti_by/templates/blog/post.html:49 manti_by/templates/blog/simple.html:29 +#: manti_by/templates/emails/email.html:65 msgid "Created" msgstr "Створаны" -#: core/templates/blog/list-item.html:25 core/templates/blog/post.html:55 +#: manti_by/templates/blog/list-item.html:30 +#: manti_by/templates/blog/post.html:61 msgid "Length" msgstr "Працягласць" -#: core/templates/blog/list-item.html:48 core/templates/blog/post.html:82 +#: manti_by/templates/blog/list-item.html:53 +#: manti_by/templates/blog/post.html:88 msgid "Tracklist" msgstr "Трэкліст" -#: core/templates/blog/list-item.html:49 core/templates/blog/post.html:83 +#: manti_by/templates/blog/list-item.html:54 +#: manti_by/templates/blog/post.html:89 msgid "Download" msgstr "Захаваць" -#: core/templates/blog/list-item.html:55 core/templates/blog/post.html:91 +#: manti_by/templates/blog/list-item.html:60 +#: manti_by/templates/blog/post.html:97 msgid "Hide Tracklist" msgstr "Схаваць трэкліст" -#: core/templates/blog/list.html:5 core/templates/blog/list.html:6 -#: core/templates/blog/simple.html:16 -msgid "Blog" -msgstr "Блог" - -#: core/templates/blog/list.html:33 +#: manti_by/templates/blog/list.html:33 msgid "Nothing to show" msgstr "Няма чаго паказаць" -#: core/templates/blog/post.html:47 +#: manti_by/templates/blog/post.html:53 msgid "Catalog No" msgstr "№ па каталогу" -#: core/templates/blog/post.html:51 +#: manti_by/templates/blog/post.html:57 msgid "Quality" msgstr "Якасць" -#: core/templates/blog/post.html:96 +#: manti_by/templates/blog/post.html:102 msgid "Related posts" msgstr "Падобныя артыкулы" -#: core/templates/common/sidebar.html:5 +#: manti_by/templates/common/sidebar.html:5 msgid "Popular tags" msgstr "Папулярныя меткі" -#: core/templates/common/sidebar.html:13 core/templates/index.html:51 +#: manti_by/templates/common/sidebar.html:15 manti_by/templates/index.html:72 msgid "Latest posts" msgstr "Апошнія артыкулы" -#: core/templates/common/sidebar.html:21 -msgid "Instagram" -msgstr "Instagram" - -#: core/templates/emails/email.html:52 +#: manti_by/templates/emails/email.html:52 msgid "From" msgstr "Ад" -#: core/templates/emails/email.html:59 +#: manti_by/templates/emails/email.html:59 msgid "Message" msgstr "Паведамленне" -#: core/templates/emails/email.html:63 +#: manti_by/templates/emails/email.html:63 msgid "View this message in" msgstr "Паглядзець гэта паведамленне" -#: core/templates/emails/email.html:64 +#: manti_by/templates/emails/email.html:64 msgid "browser" msgstr "браўзэр" -#: core/templates/gallery/gallery.html:23 -#: core/templates/gallery/gallery.html:24 core/templates/index.html:42 -#: core/templates/index.html:43 +#: manti_by/templates/gallery/gallery.html:26 manti_by/templates/index.html:64 msgid "Image #" msgstr "Малюнак №" -#: core/templates/index.html:5 core/templates/index.html:6 +#: manti_by/templates/index.html:5 manti_by/templates/index.html:6 msgid "Homepage" msgstr "Хатняя старонка" -#: core/templates/index.html:11 +#: manti_by/templates/index.html:11 msgid "Featured" msgstr "Рэкамендаваныя" -#: core/templates/index.html:19 +#: manti_by/templates/index.html:34 msgid "Latest Images" msgstr "Свежыя фатаграфіі" -#: core/templates/index.html:24 core/templates/index.html:25 -#: core/templates/index.html:33 core/templates/index.html:34 +#: manti_by/templates/index.html:43 manti_by/templates/index.html:52 +#: manti_by/templates/index.html:53 msgid "Popular image from gallery" msgstr "Папулярнае малюнак з галерэі" -#: core/templates/profiles/login.html:5 core/templates/profiles/login.html:6 +#: manti_by/templates/profiles/login.html:5 +#: manti_by/templates/profiles/login.html:6 msgid "Login Page" msgstr "Старонка уваходу" -#: core/templates/profiles/login.html:12 +#: manti_by/templates/profiles/login.html:12 msgid "Please login or register" msgstr "Калі ласка, увайдзіце або зарэгіструйцеся" -#: core/templates/profiles/login.html:16 +#: manti_by/templates/profiles/login.html:16 msgid "Your profile will be created automatically, if necessary" msgstr "Ваш профіль будзе створаны аўтаматычна, пры неабходнасці" -#: core/templates/profiles/login.html:20 -#: core/templates/profiles/profile.html:30 +#: manti_by/templates/profiles/login.html:20 +#: manti_by/templates/profiles/profile.html:30 msgid "Email" msgstr "Email" -#: core/templates/profiles/login.html:25 +#: manti_by/templates/profiles/login.html:25 msgid "Password" msgstr "Пароль" -#: core/templates/profiles/login.html:31 +#: manti_by/templates/profiles/login.html:31 msgid "Let Me In" msgstr "Увайсці" -#: core/templates/profiles/profile.html:5 -#: core/templates/profiles/profile.html:6 -#: core/templates/profiles/profile.html:12 +#: manti_by/templates/profiles/profile.html:5 +#: manti_by/templates/profiles/profile.html:6 +#: manti_by/templates/profiles/profile.html:12 msgid "Your profile" msgstr "Ваш профіль" -#: core/templates/profiles/profile.html:19 +#: manti_by/templates/profiles/profile.html:17 +msgid "Avatar" +msgstr "Аватар" + +#: manti_by/templates/profiles/profile.html:19 msgid "To update your profile image, please upload new one" msgstr "Каб абнавіць выяву профілю, калі ласка, загрузіце новую" -#: core/templates/profiles/profile.html:25 +#: manti_by/templates/profiles/profile.html:25 msgid "Username" msgstr "Імя карыстальніка" -#: core/templates/profiles/profile.html:41 +#: manti_by/templates/profiles/profile.html:41 msgid "Update" msgstr "Аднаўленне" -#: core/templates/static/about.html:15 core/templates/static/resume.html:15 +#: manti_by/templates/static/about.html:16 +#: manti_by/templates/static/resume.html:16 msgid "Alexander Chaika" msgstr "Аляксандр Чайка" -#: core/templates/static/resume.html:29 +#: manti_by/templates/static/resume.html:33 msgid "Code samples" msgstr "Узоры кода" -#: core/templates/static/resume.html:35 +#: manti_by/templates/static/resume.html:39 msgid "Print this page" msgstr "Раздрукаваць гэтую старонку" - -#: gallery/admin.py:19 -msgid "Images count" -msgstr "Колькасць фота" - -#: gallery/admin.py:37 -msgid "Info" -msgstr "Інфармацыя" - -#: gallery/admin.py:40 -msgid "Other" -msgstr "Іншае" - -#: gallery/admin.py:56 -msgid "Ready" -msgstr "Гатовы" - -#: gallery/models.py:44 -msgid "Gallery List" -msgstr "Спіс галерэяў" - -#: gallery/models.py:68 -msgid "Image List" -msgstr "Спіс малюнкаў" - -#: profiles/models.py:13 -msgid "Profile Image" -msgstr "Малюнак профілю" - -#: shortener/models.py:13 -msgid "Original Link" -msgstr "Арыгінальная спасылка" - -#: shortener/models.py:15 -msgid "Short Link" -msgstr "Кароткая спасылка" - -#~ msgid "Welcome to official blog of Alex Manti." -#~ msgstr "Сардэчна запрашаем у афіцыйны блог Алекса Манты." - -#~ msgid "Official blog of Alex Manti. My music, photos and info about me." -#~ msgstr "" -#~ "Афіцыйны блог Алекса Манты. Мая музыка, фатаграфіі і інфармацыя пра мяне." diff --git a/manti_by/apps/core/locale/ru/LC_MESSAGES/django.mo b/manti_by/apps/core/locale/ru/LC_MESSAGES/django.mo index df375b6bc4b7e0d00df9d1c7f3eb7346dfb0ba8f..d1a6fc663fa36e7808e445a25138bc517c810fbb 100644 GIT binary patch delta 3124 zcmb7_eQcH09mh{=p}lQ+X(^z*$O9Ikh(#%`6Dp;MXs5gs6%?7}wtZ}GxV<;@-hyPC zmEs$dMes=DQEqRcNbW(=(HTm&c5z6NT_Y8ZiQ zU>V#5i(otaA?$)}@Gz8}A|{u@Qdn+GpP5W$CLMG9zzQe>H$xd*4~yXz$O6;h`?o`E znxDZ1@F6G%gHZF2`SDY}{|zX6Z$cjP0k0zbn=`)SbEt)1KpFZ9j)w(=D@PNd`Y(Z+ zHw!8Q^PmE&g$jHb90ynU{bDD*ZKue0o233*;E>+$idxEhB}}ENJAO? zDU`vV`+f_xlV3rtdlo8?Klt$zQ0x8*<?1#Z#<%}jM*a!Td_ji{ehp=)gjI@g zDpVjde7hPhqFn>);GIzGegP}tlTaIY0m|VCsP%t=Jmzn_w2^mV6+B%|{%27+>nBtZ zwr=fgsD+#1fdbA9@|d$krvMA_qDxx=Wq1*s3mc#UX@hdq3!jDec~*0t+VJ0@j^v#_ zDwC=F2QGwTD@F|0K^bU)a=6(u1}D+J7qZ0c^Zke50@{CsI+FLGHt-R=6n+ZjxQOVc z!U<4*`{q$ms;`4`w9>N$DuAs}JB>lzm51RJ_`K(VJhwA@{=RU|(a|p^_2KHS}nXbx1c~mt+B2h*bE5%@2^y@JDDR(zks* z+JI`&U8or?ML$L=b?8d87+r((i>Y!uQWo>Sc;ZIAe7Om(MOXXwI;cCMa;siVZOPuW zY3k^XB}`L1yf>QY2z!F-yP~meQPZ>|nvV9^Q)6dLS{YAv2FZH@&GEzbxsthsW~Dt? z(lRBH3|PrPEFQ;Tt!k*AhFK#JJByGj`nRajSRb{a-Wp0ed<6+M(`+D)> zf|UKbcts?Z*k*3wm9h;bjrD7G1=03&ESX4|waG*nM0Z4E@n~B-q?zuDB|3w2GDvkL zcbauQvCdc`8V|JCmPFRs4Uy`Cq}?8wzTB+uN!}BShe309v@;xSrA$k2G#*RuG8}{0(Xk)O9Z6*lD|W_eSv$??w>fN O>N_q>t-WaS6W;*1V5CR@ delta 2187 zcmY+_e@s|}be-y$*TP?TdH7{`E3JxwM*}7o{ zn!2_gOjp*{54ZdybE2uCn5#9b)y`ebHp|vOR%`y%FIsD>_vdnQ_3VDn>pagn&+q5J zH9B@5CQa9r<~v z1|8JO%*8yc!!mpbRj(hl=f^xx<0SGQptj~KKkKg-ex#rTM^H=WP^baT#_2d88Jk&; zlkq`RhdWR!)rV?uzvofZ0N+LpTnawqwQ~_?<8{L})J)VV1m_=B2S$+7s~w3LjG{>>^vr&!;*(n3Nr znn%%`!rVrcN2s zEMhIONEt89K`o>9oGmpq#5!Uoq3tOq^yRD}v@Q1$K|*IqiSwEI|FS|EFD=phIA5tx zNM+@OK0_T4o&Hkd-=wpk#P+kETRXbrW@Rk0Gu*x{(&^N;hNEp^TR)-5ru%Abldr*E z$(d#^`9fJeW=%L2i*)ul_0g`l{nNK#{ODaUeTChbUNfbkBi zIr>O69CNnX*C%Y4;m`x^M`JO%oNpRCqb<>Pp4La(+e~A;HPUHsrZ?IZ8O1h|ksol@ zZ4b9Z%!cl8EE?}IO_A`n9(z7xwJpfBb|`a+4fyxW-W06ujD+LSj`m<(I3B5X7KAFQ zf}yHlWyq;mSRGna8X^rI^6yBqfr&-7X5uP)HTy}sIj4\n" "Language-Team: LANGUAGE \n" @@ -13,340 +13,421 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: api/resources.py:24 +#: manti_by/api/resources.py:22 msgid "Forbidden" msgstr "Нет доступа" -#: api/resources.py:37 +#: manti_by/api/resources.py:35 msgid "Updated" msgstr "Обновить" -#: api/resources.py:53 +#: manti_by/api/resources.py:52 msgid "Contact request from manti.by" msgstr "Запрос на контакт с manti.by" -#: api/resources.py:58 +#: manti_by/api/resources.py:60 msgid "Thanks for subscribing, we'll get in touch soon" msgstr "Спасибо за подписку, мы скоро свяжемся" -#: blog/admin.py:23 +#: manti_by/apps/blog/admin.py:30 msgid "Base Info" msgstr "Основная информация" -#: blog/admin.py:26 +#: manti_by/apps/blog/admin.py:31 msgid "Meta Description" msgstr "Мета описание" -#: blog/admin.py:29 +#: manti_by/apps/blog/admin.py:32 msgid "Summary" msgstr "Краткое описание" -#: blog/admin.py:32 +#: manti_by/apps/blog/admin.py:34 msgid "Description" msgstr "Описание" -#: blog/admin.py:35 blog/models.py:56 core/templates/blog/list-item.html:42 -#: core/templates/blog/post.html:75 +#: manti_by/apps/blog/admin.py:37 manti_by/apps/blog/models.py:67 +#: manti_by/templates/blog/list-item.html:47 +#: manti_by/templates/blog/post.html:81 msgid "Tags" msgstr "Тэги" -#: blog/admin.py:38 +#: manti_by/apps/blog/admin.py:38 msgid "Related" msgstr "Связи" -#: blog/admin.py:42 +#: manti_by/apps/blog/admin.py:40 msgid "Music params" msgstr "Музыкальные параметры" -#: blog/admin.py:46 +#: manti_by/apps/blog/admin.py:47 msgid "Files" msgstr "Файлы" -#: blog/admin.py:60 core/templates/profiles/profile.html:35 gallery/admin.py:51 -#: gallery/models.py:55 gallery/models.py:67 +#: manti_by/apps/blog/admin.py:74 manti_by/apps/gallery/admin.py:46 +#: manti_by/apps/gallery/models.py:54 manti_by/apps/gallery/models.py:67 +#: manti_by/templates/profiles/profile.html:35 msgid "Image" msgstr "Изображение" -#: blog/admin.py:65 +#: manti_by/apps/blog/admin.py:80 msgid "Files Ready" msgstr "Файлы готовы" -#: blog/admin.py:70 +#: manti_by/apps/blog/admin.py:86 msgid "Translations Ready" msgstr "Переводы готовы" -#: blog/models.py:41 +#: manti_by/apps/blog/apps.py:9 manti_by/templates/blog/list.html:5 +#: manti_by/templates/blog/list.html:6 manti_by/templates/blog/simple.html:16 +msgid "Blog" +msgstr "Блог" + +#: manti_by/apps/blog/apps.py:10 +msgid "Blogs" +msgstr "Блоги" + +#: manti_by/apps/blog/models.py:43 msgid "Release File" msgstr "Файл релиза" -#: blog/models.py:45 +#: manti_by/apps/blog/models.py:51 msgid "Cover Image" msgstr "Обложка" -#: blog/models.py:53 core/templates/blog/post.html:58 +#: manti_by/apps/blog/models.py:63 manti_by/templates/blog/post.html:64 msgid "Genre" msgstr "Жанр" -#: blog/views.py:45 +#: manti_by/apps/blog/models.py:81 +msgid "Post" +msgstr "Публикация" + +#: manti_by/apps/blog/models.py:82 +msgid "Posts" +msgstr "Публикации" + +#: manti_by/apps/blog/views.py:54 #, python-format msgid "Post with slug %s does not exists" msgstr "Запись со ссылкой %s не найдена" -#: core/mixins.py:15 +#: manti_by/apps/core/apps.py:9 manti_by/apps/core/apps.py:10 +msgid "Core" +msgstr "База" + +#: manti_by/apps/core/mixins.py:13 msgid "Slug" msgstr "Ссылка" -#: core/models.py:11 +#: manti_by/apps/core/models.py:8 msgid "Created, UTC" msgstr "Создано, UTC" -#: core/models.py:12 +#: manti_by/apps/core/models.py:9 msgid "Updated, UTC" msgstr "Обновлено, UTC" -#: core/settings/base.py:130 +#: manti_by/apps/gallery/admin.py:20 +msgid "Images count" +msgstr "Изображения" + +#: manti_by/apps/gallery/admin.py:35 +msgid "Info" +msgstr "Информация" + +#: manti_by/apps/gallery/admin.py:52 +msgid "Ready" +msgstr "Готово" + +#: manti_by/apps/gallery/apps.py:9 manti_by/apps/gallery/models.py:29 +#: manti_by/templates/base.html:86 manti_by/templates/base.html:125 +#: manti_by/templates/gallery/gallery.html:5 +#: manti_by/templates/gallery/gallery.html:6 +#: manti_by/templates/gallery/gallery.html:10 +msgid "Gallery" +msgstr "Галерея" + +#: manti_by/apps/gallery/apps.py:10 manti_by/apps/gallery/models.py:30 +msgid "Galleries" +msgstr "Галереи" + +#: manti_by/apps/gallery/models.py:68 +msgid "Images" +msgstr "Изображения" + +#: manti_by/apps/profiles/apps.py:9 manti_by/apps/profiles/models.py:24 +msgid "Profile" +msgstr "Профиль" + +#: manti_by/apps/profiles/apps.py:10 manti_by/apps/profiles/models.py:25 +msgid "Profiles" +msgstr "Профили" + +#: manti_by/apps/profiles/models.py:16 +msgid "Profile Image" +msgstr "Изображение профиля" + +#: manti_by/apps/shortener/apps.py:9 +msgid "Shortener" +msgstr "Укорачиватель" + +#: manti_by/apps/shortener/apps.py:10 +msgid "Shortener List" +msgstr "Укорачиватели" + +#: manti_by/apps/shortener/models.py:14 +msgid "Original Link" +msgstr "Оригинальная ссылка" + +#: manti_by/apps/shortener/models.py:16 +msgid "Short Link" +msgstr "Короткая ссылка" + +#: manti_by/apps/shortener/models.py:20 +msgid "Link" +msgstr "Ссылка" + +#: manti_by/apps/shortener/models.py:21 +msgid "Links" +msgstr "Ссылки" + +#: manti_by/settings/base.py:153 msgid "Belarussian" msgstr "Беларускі" -#: core/settings/base.py:131 +#: manti_by/settings/base.py:154 msgid "Russian" msgstr "Русский" -#: core/settings/base.py:132 +#: manti_by/settings/base.py:155 msgid "English" msgstr "English" -#: core/templates/base.html:5 core/templates/base.html:41 +#: manti_by/settings/base.py:217 +msgid "Welcome to blog of Alex Chaika." +msgstr "Добро пожаловать в блог Александра Чайка." + +#: manti_by/settings/base.py:218 +msgid "Blog of Alex Chaika. My music, photos and info about me." +msgstr "" +"Блог Александра Чайка. Моя музыка, фотографии и информация обо мне. Drum and " +"Bass, House, Techno and Chillout." + +#: manti_by/templates/admin/index.html:23 +msgid "Admin" +msgstr "Админка" + +#: manti_by/templates/admin/index.html:26 +msgid "RQ Queues" +msgstr "Очереди" + +#: manti_by/templates/admin/index.html:29 +msgid "Recent actions" +msgstr "Недавние события" + +#: manti_by/templates/admin/index.html:30 +msgid "My actions" +msgstr "Мои события" + +#: manti_by/templates/admin/index.html:34 +msgid "None available" +msgstr "Нет событий" + +#: manti_by/templates/admin/index.html:48 +msgid "Unknown content" +msgstr "Неизвестный контент" + +#: manti_by/templates/base.html:5 manti_by/templates/base.html:41 msgid "Drum and Bass, House, Techno and Chillout." msgstr "Drum and Bass, House, Techno and Chillout." -#: core/templates/base.html:36 core/templates/base.html:43 +#: manti_by/templates/base.html:36 manti_by/templates/base.html:43 msgid "" -"Official blog of Alex Manti. My music, photos and info about me. Drum and " -"Bass, House, Techno and Chillout." +"Blog of Alex Manti. My music, photos and info about me. Drum and Bass, " +"House, Techno and Chillout." msgstr "" -"Официальный блог Алекса Манти. Моя музыка, фотографии и информация обо мне. " -"Drum and Bass, House, Techno and Chillout." +"Блог Александра Чайка. Моя музыка, фотографии и информация обо мне. Drum and " +"Bass, House, Techno and Chillout." -#: core/templates/base.html:78 core/templates/base.html:118 -#: core/templates/blog/list.html:11 core/templates/blog/list.html:18 -#: core/templates/blog/post.html:23 +#: manti_by/templates/base.html:83 manti_by/templates/base.html:122 +#: manti_by/templates/blog/list.html:11 manti_by/templates/blog/list.html:18 +#: manti_by/templates/blog/post.html:23 msgid "Music" msgstr "Музыка" -#: core/templates/base.html:81 core/templates/base.html:121 -#: core/templates/gallery/gallery.html:5 core/templates/gallery/gallery.html:6 -#: core/templates/gallery/gallery.html:10 gallery/models.py:43 -msgid "Gallery" -msgstr "Галлерея" - -#: core/templates/base.html:123 core/templates/base.html:154 -#: core/templates/static/about.html:5 core/templates/static/about.html:6 -#: core/templates/static/about.html:12 +#: manti_by/templates/base.html:127 manti_by/templates/base.html:158 +#: manti_by/templates/static/about.html:5 +#: manti_by/templates/static/about.html:6 +#: manti_by/templates/static/about.html:13 msgid "About" msgstr "Обо мне" -#: core/templates/base.html:124 core/templates/base.html:155 -#: core/templates/static/resume.html:5 core/templates/static/resume.html:6 -#: core/templates/static/resume.html:12 +#: manti_by/templates/base.html:128 manti_by/templates/base.html:159 +#: manti_by/templates/static/resume.html:5 +#: manti_by/templates/static/resume.html:6 +#: manti_by/templates/static/resume.html:13 msgid "Resume" msgstr "Резюме" -#: core/templates/base.html:125 core/templates/base.html:156 -#: core/templates/static/copyrights.html:5 -#: core/templates/static/copyrights.html:6 -#: core/templates/static/copyrights.html:10 +#: manti_by/templates/base.html:129 manti_by/templates/base.html:160 +#: manti_by/templates/static/copyrights.html:5 +#: manti_by/templates/static/copyrights.html:6 +#: manti_by/templates/static/copyrights.html:11 msgid "Copyrights" msgstr "Авторские права" -#: core/templates/base.html:126 +#: manti_by/templates/base.html:130 msgid "Search" msgstr "Поиск" -#: core/templates/base.html:128 +#: manti_by/templates/base.html:132 msgid "Logout" msgstr "Выйти" -#: core/templates/blog/list-item.html:21 core/templates/blog/post.html:43 -#: core/templates/blog/simple.html:29 core/templates/emails/email.html:65 +#: manti_by/templates/blog/list-item.html:26 +#: manti_by/templates/blog/post.html:49 manti_by/templates/blog/simple.html:29 +#: manti_by/templates/emails/email.html:65 msgid "Created" msgstr "Создано" -#: core/templates/blog/list-item.html:25 core/templates/blog/post.html:55 +#: manti_by/templates/blog/list-item.html:30 +#: manti_by/templates/blog/post.html:61 msgid "Length" msgstr "Продолжительность" -#: core/templates/blog/list-item.html:48 core/templates/blog/post.html:82 +#: manti_by/templates/blog/list-item.html:53 +#: manti_by/templates/blog/post.html:88 msgid "Tracklist" msgstr "Трэклист" -#: core/templates/blog/list-item.html:49 core/templates/blog/post.html:83 +#: manti_by/templates/blog/list-item.html:54 +#: manti_by/templates/blog/post.html:89 msgid "Download" msgstr "Скачать" -#: core/templates/blog/list-item.html:55 core/templates/blog/post.html:91 +#: manti_by/templates/blog/list-item.html:60 +#: manti_by/templates/blog/post.html:97 msgid "Hide Tracklist" msgstr "Скрыть треклист" -#: core/templates/blog/list.html:5 core/templates/blog/list.html:6 -#: core/templates/blog/simple.html:16 -msgid "Blog" -msgstr "Блог" - -#: core/templates/blog/list.html:33 +#: manti_by/templates/blog/list.html:33 msgid "Nothing to show" msgstr "Ничего нет" -#: core/templates/blog/post.html:47 +#: manti_by/templates/blog/post.html:53 msgid "Catalog No" msgstr "Каталоговый №" -#: core/templates/blog/post.html:51 +#: manti_by/templates/blog/post.html:57 msgid "Quality" msgstr "Качество" -#: core/templates/blog/post.html:96 +#: manti_by/templates/blog/post.html:102 msgid "Related posts" msgstr "Связанные статьи" -#: core/templates/common/sidebar.html:5 +#: manti_by/templates/common/sidebar.html:5 msgid "Popular tags" msgstr "Популярные метки" -#: core/templates/common/sidebar.html:13 core/templates/index.html:51 +#: manti_by/templates/common/sidebar.html:15 manti_by/templates/index.html:72 msgid "Latest posts" msgstr "Свежие статьи" -#: core/templates/common/sidebar.html:21 -msgid "Instagram" -msgstr "" - -#: core/templates/emails/email.html:52 +#: manti_by/templates/emails/email.html:52 msgid "From" msgstr "От" -#: core/templates/emails/email.html:59 +#: manti_by/templates/emails/email.html:59 msgid "Message" msgstr "Сообщение" -#: core/templates/emails/email.html:63 +#: manti_by/templates/emails/email.html:63 msgid "View this message in" msgstr "Показать сообщение в" -#: core/templates/emails/email.html:64 +#: manti_by/templates/emails/email.html:64 msgid "browser" msgstr "браузере" -#: core/templates/gallery/gallery.html:23 -#: core/templates/gallery/gallery.html:24 core/templates/index.html:42 -#: core/templates/index.html:43 +#: manti_by/templates/gallery/gallery.html:26 manti_by/templates/index.html:64 msgid "Image #" msgstr "Изображение" -#: core/templates/index.html:5 core/templates/index.html:6 +#: manti_by/templates/index.html:5 manti_by/templates/index.html:6 msgid "Homepage" msgstr "Домашняя страница" -#: core/templates/index.html:11 +#: manti_by/templates/index.html:11 msgid "Featured" msgstr "Рекомендованное" -#: core/templates/index.html:19 +#: manti_by/templates/index.html:34 msgid "Latest Images" msgstr "Свежие фотографии" -#: core/templates/index.html:24 core/templates/index.html:25 -#: core/templates/index.html:33 core/templates/index.html:34 +#: manti_by/templates/index.html:43 manti_by/templates/index.html:52 +#: manti_by/templates/index.html:53 msgid "Popular image from gallery" -msgstr "Популярное изображение из галлереи" +msgstr "Популярное изображение из галереи" -#: core/templates/profiles/login.html:5 core/templates/profiles/login.html:6 +#: manti_by/templates/profiles/login.html:5 +#: manti_by/templates/profiles/login.html:6 msgid "Login Page" msgstr "Вход на сайт" -#: core/templates/profiles/login.html:12 +#: manti_by/templates/profiles/login.html:12 msgid "Please login or register" msgstr "Пожалуйста войдите или зарегистрируйтесь" -#: core/templates/profiles/login.html:16 +#: manti_by/templates/profiles/login.html:16 msgid "Your profile will be created automatically, if necessary" msgstr "Ваш профиль будет создан автоматически, при необходимости" -#: core/templates/profiles/login.html:20 -#: core/templates/profiles/profile.html:30 +#: manti_by/templates/profiles/login.html:20 +#: manti_by/templates/profiles/profile.html:30 msgid "Email" msgstr "Email" -#: core/templates/profiles/login.html:25 +#: manti_by/templates/profiles/login.html:25 msgid "Password" msgstr "Пароль" -#: core/templates/profiles/login.html:31 +#: manti_by/templates/profiles/login.html:31 msgid "Let Me In" msgstr "Впустите меня" -#: core/templates/profiles/profile.html:5 -#: core/templates/profiles/profile.html:6 -#: core/templates/profiles/profile.html:12 +#: manti_by/templates/profiles/profile.html:5 +#: manti_by/templates/profiles/profile.html:6 +#: manti_by/templates/profiles/profile.html:12 msgid "Your profile" msgstr "Ваш профиль" -#: core/templates/profiles/profile.html:19 +#: manti_by/templates/profiles/profile.html:17 +msgid "Avatar" +msgstr "Аватар" + +#: manti_by/templates/profiles/profile.html:19 msgid "To update your profile image, please upload new one" msgstr "Чтобы обновить ваше изображение профиля, просто загрузите новое" -#: core/templates/profiles/profile.html:25 +#: manti_by/templates/profiles/profile.html:25 msgid "Username" msgstr "Имя пользователя" -#: core/templates/profiles/profile.html:41 +#: manti_by/templates/profiles/profile.html:41 msgid "Update" msgstr "Обновить" -#: core/templates/static/about.html:15 core/templates/static/resume.html:15 +#: manti_by/templates/static/about.html:16 +#: manti_by/templates/static/resume.html:16 msgid "Alexander Chaika" msgstr "Александр Чайка" -#: core/templates/static/resume.html:29 +#: manti_by/templates/static/resume.html:33 msgid "Code samples" msgstr "Пример кода" -#: core/templates/static/resume.html:35 +#: manti_by/templates/static/resume.html:39 msgid "Print this page" msgstr "Распечатать эту страницу" - -#: gallery/admin.py:19 -msgid "Images count" -msgstr "Изображения" - -#: gallery/admin.py:37 -msgid "Info" -msgstr "Информация" - -#: gallery/admin.py:40 -msgid "Other" -msgstr "Остальное" - -#: gallery/admin.py:56 -msgid "Ready" -msgstr "Готово" - -#: gallery/models.py:44 -msgid "Gallery List" -msgstr "Галлерея" - -#: gallery/models.py:68 -msgid "Image List" -msgstr "Изображения" - -#: profiles/models.py:13 -msgid "Profile Image" -msgstr "Изображение предпросмотра" - -#: shortener/models.py:13 -msgid "Original Link" -msgstr "Оригинальная ссылка" - -#: shortener/models.py:15 -msgid "Short Link" -msgstr "Короткая ссылка" diff --git a/manti_by/apps/core/services.py b/manti_by/apps/core/services.py index 7e4639db..0eab9e38 100644 --- a/manti_by/apps/core/services.py +++ b/manti_by/apps/core/services.py @@ -1,7 +1,7 @@ import logging import subprocess -from manti_by.apps.blog.constants import MP3_PREVIEW, OGG_PREVIEW, OGG_RELEASE +from manti_by.apps.blog.constants import MP3_PREVIEW, MP3_RELEASE, OGG_PREVIEW, OGG_RELEASE logger = logging.getLogger(__name__) @@ -19,11 +19,15 @@ def convert_release(ffmpeg_format, post_id, output_type=""): result = post.preview_ogg_file elif output_type == OGG_RELEASE: result = post.release_ogg_file + elif output_type == MP3_RELEASE: + if post.release.file.name == post.release_mp3_file: + return + result = post.release_mp3_file else: result = post.preview_mp3_file ffmpeg_format.append(result) - command = ["ffmpeg", "-y", "-nostats", "-i", post.release_mp3_file] + ffmpeg_format + command = ["ffmpeg", "-y", "-nostats", "-i", post.release.file.name] + ffmpeg_format return subprocess.call(command) @@ -45,6 +49,11 @@ def convert_to_mp3_preview(post_id): return convert_release(command, post_id, MP3_PREVIEW) +def convert_to_mp3_release(post_id): + command = ["-acodec", "libmp3lame", "-ab", "320k"] + return convert_release(command, post_id, MP3_RELEASE) + + def convert_to_ogg_preview(post_id): command = [ "-acodec", diff --git a/manti_by/apps/gallery/apps.py b/manti_by/apps/gallery/apps.py index ca0a6d0b..4f85dcd6 100644 --- a/manti_by/apps/gallery/apps.py +++ b/manti_by/apps/gallery/apps.py @@ -1,6 +1,10 @@ from django.apps import AppConfig +from django.utils.translation import gettext_lazy as _ class GalleryConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "manti_by.apps.gallery" + + verbose_name = _("Gallery") + verbose_name_plural = _("Galleries") diff --git a/manti_by/apps/gallery/migrations/0016_alter_gallery_options_alter_image_options.py b/manti_by/apps/gallery/migrations/0016_alter_gallery_options_alter_image_options.py new file mode 100644 index 00000000..877a3c4a --- /dev/null +++ b/manti_by/apps/gallery/migrations/0016_alter_gallery_options_alter_image_options.py @@ -0,0 +1,21 @@ +# Generated by Django 4.0.1 on 2022-01-31 21:41 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('gallery', '0015_auto_20210917_1132'), + ] + + operations = [ + migrations.AlterModelOptions( + name='gallery', + options={'verbose_name': 'Gallery', 'verbose_name_plural': 'Galleries'}, + ), + migrations.AlterModelOptions( + name='image', + options={'verbose_name': 'Image', 'verbose_name_plural': 'Images'}, + ), + ] diff --git a/manti_by/apps/gallery/models.py b/manti_by/apps/gallery/models.py index c9af118d..4780b19c 100644 --- a/manti_by/apps/gallery/models.py +++ b/manti_by/apps/gallery/models.py @@ -25,6 +25,10 @@ class Gallery(SlugifyMixin, BaseModel): objects = GalleryManager() + class Meta: + verbose_name = _("Gallery") + verbose_name_plural = _("Galleries") + def __str__(self): return self.name @@ -38,10 +42,6 @@ def last_update(self): except Exception: return self.updated - class Meta: - verbose_name = _("Gallery") - verbose_name_plural = _("Gallery List") - class ImageManager(models.Manager): def ordered(self): @@ -63,12 +63,12 @@ class Image(BaseModel): objects = ImageManager() - def __str__(self): - return "Gallery #%s - Image#%d" % (self.gallery.name, self.id) - class Meta: verbose_name = _("Image") - verbose_name_plural = _("Image List") + verbose_name_plural = _("Images") + + def __str__(self): + return "Gallery #%s - Image#%d" % (self.gallery.name, self.id) @receiver(post_save, sender=Image, dispatch_uid="flush_gallery_cache") diff --git a/manti_by/apps/profiles/apps.py b/manti_by/apps/profiles/apps.py index 9e3dc596..68bf1ae0 100644 --- a/manti_by/apps/profiles/apps.py +++ b/manti_by/apps/profiles/apps.py @@ -1,6 +1,10 @@ from django.apps import AppConfig +from django.utils.translation import gettext_lazy as _ class ProfilesConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "manti_by.apps.profiles" + + verbose_name = _("Profile") + verbose_name_plural = _("Profiles") diff --git a/manti_by/apps/profiles/migrations/0007_alter_profile_options.py b/manti_by/apps/profiles/migrations/0007_alter_profile_options.py new file mode 100644 index 00000000..9be482d6 --- /dev/null +++ b/manti_by/apps/profiles/migrations/0007_alter_profile_options.py @@ -0,0 +1,17 @@ +# Generated by Django 4.0.1 on 2022-01-31 21:41 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('profiles', '0006_auto_20180619_1106'), + ] + + operations = [ + migrations.AlterModelOptions( + name='profile', + options={'verbose_name': 'Profile', 'verbose_name_plural': 'Profiles'}, + ), + ] diff --git a/manti_by/apps/profiles/models.py b/manti_by/apps/profiles/models.py index a22c8400..96385439 100644 --- a/manti_by/apps/profiles/models.py +++ b/manti_by/apps/profiles/models.py @@ -20,6 +20,10 @@ class Profile(BaseModel): User, on_delete=models.CASCADE, primary_key=True, related_name="profile" ) + class Meta: + verbose_name = _("Profile") + verbose_name_plural = _("Profiles") + def __str__(self): return self.user.email diff --git a/manti_by/apps/shortener/apps.py b/manti_by/apps/shortener/apps.py index f71e22c3..5d1e5b9f 100644 --- a/manti_by/apps/shortener/apps.py +++ b/manti_by/apps/shortener/apps.py @@ -1,6 +1,10 @@ from django.apps import AppConfig +from django.utils.translation import gettext_lazy as _ class ShortenerConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "manti_by.apps.shortener" + + verbose_name = _("Shortener") + verbose_name_plural = _("Shortener List") diff --git a/manti_by/apps/shortener/migrations/0004_alter_link_options.py b/manti_by/apps/shortener/migrations/0004_alter_link_options.py new file mode 100644 index 00000000..e8a7fe8e --- /dev/null +++ b/manti_by/apps/shortener/migrations/0004_alter_link_options.py @@ -0,0 +1,17 @@ +# Generated by Django 4.0.1 on 2022-01-31 21:41 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('shortener', '0003_alter_link_id'), + ] + + operations = [ + migrations.AlterModelOptions( + name='link', + options={'verbose_name': 'Link', 'verbose_name_plural': 'Links'}, + ), + ] diff --git a/manti_by/apps/shortener/models.py b/manti_by/apps/shortener/models.py index c0261dce..12c4f45a 100644 --- a/manti_by/apps/shortener/models.py +++ b/manti_by/apps/shortener/models.py @@ -16,6 +16,10 @@ class Link(BaseModel): unique=True, null=True, blank=True, verbose_name=_("Short Link") ) + class Meta: + verbose_name = _("Link") + verbose_name_plural = _("Links") + def __str__(self): return self.link diff --git a/manti_by/core/locale/be/LC_MESSAGES/django.mo b/manti_by/core/locale/be/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7007a3d4e50ddf1c5e7d2870e6247ecea1df5a7b GIT binary patch literal 518 zcmYLD!A`4K+%j0Bc>V=ahb#m z!%m)^DxI!1m>>!wwvO$b+SZklMo2vOKF2&pyqU9k&NJDB$url5FmycXk@{L!#(EN( zFga1vOr|c>A2VYO@`dI(=_x%cT#)l+ThLk)eknbY2aZjt1BZuDQhSd&4z$4rlw;qb z)z!$OwURC!w&zsg, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-01-31 21:46+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" + +#: manti_by/api/resources.py:22 +msgid "Forbidden" +msgstr "" + +#: manti_by/api/resources.py:35 +msgid "Updated" +msgstr "" + +#: manti_by/api/resources.py:52 +msgid "Contact request from manti.by" +msgstr "" + +#: manti_by/api/resources.py:60 +msgid "Thanks for subscribing, we'll get in touch soon" +msgstr "" + +#: manti_by/apps/blog/admin.py:30 +msgid "Base Info" +msgstr "" + +#: manti_by/apps/blog/admin.py:31 +msgid "Meta Description" +msgstr "" + +#: manti_by/apps/blog/admin.py:32 +msgid "Summary" +msgstr "" + +#: manti_by/apps/blog/admin.py:34 +msgid "Description" +msgstr "" + +#: manti_by/apps/blog/admin.py:37 manti_by/apps/blog/models.py:67 +#: manti_by/templates/blog/list-item.html:47 +#: manti_by/templates/blog/post.html:81 +msgid "Tags" +msgstr "" + +#: manti_by/apps/blog/admin.py:38 +msgid "Related" +msgstr "" + +#: manti_by/apps/blog/admin.py:40 +msgid "Music params" +msgstr "" + +#: manti_by/apps/blog/admin.py:47 +msgid "Files" +msgstr "" + +#: manti_by/apps/blog/admin.py:74 manti_by/apps/gallery/admin.py:46 +#: manti_by/apps/gallery/models.py:54 manti_by/apps/gallery/models.py:67 +#: manti_by/templates/profiles/profile.html:35 +msgid "Image" +msgstr "" + +#: manti_by/apps/blog/admin.py:80 +msgid "Files Ready" +msgstr "" + +#: manti_by/apps/blog/admin.py:86 +msgid "Translations Ready" +msgstr "" + +#: manti_by/apps/blog/apps.py:9 manti_by/templates/blog/list.html:5 +#: manti_by/templates/blog/list.html:6 manti_by/templates/blog/simple.html:16 +msgid "Blog" +msgstr "" + +#: manti_by/apps/blog/apps.py:10 +msgid "Blogs" +msgstr "" + +#: manti_by/apps/blog/models.py:43 +msgid "Release File" +msgstr "" + +#: manti_by/apps/blog/models.py:51 +msgid "Cover Image" +msgstr "" + +#: manti_by/apps/blog/models.py:63 manti_by/templates/blog/post.html:64 +msgid "Genre" +msgstr "" + +#: manti_by/apps/blog/models.py:81 +msgid "Post" +msgstr "" + +#: manti_by/apps/blog/models.py:82 +msgid "Posts" +msgstr "" + +#: manti_by/apps/blog/views.py:54 +#, python-format +msgid "Post with slug %s does not exists" +msgstr "" + +#: manti_by/apps/gallery/admin.py:20 +msgid "Images count" +msgstr "" + +#: manti_by/apps/gallery/admin.py:35 +msgid "Info" +msgstr "" + +#: manti_by/apps/gallery/admin.py:52 +msgid "Ready" +msgstr "" + +#: manti_by/apps/gallery/apps.py:9 manti_by/apps/gallery/models.py:29 +#: manti_by/templates/base.html:86 manti_by/templates/base.html:125 +#: manti_by/templates/gallery/gallery.html:5 +#: manti_by/templates/gallery/gallery.html:6 +#: manti_by/templates/gallery/gallery.html:10 +msgid "Gallery" +msgstr "" + +#: manti_by/apps/gallery/apps.py:10 manti_by/apps/gallery/models.py:30 +msgid "Galleries" +msgstr "" + +#: manti_by/apps/gallery/models.py:68 +msgid "Images" +msgstr "" + +#: manti_by/apps/profiles/apps.py:9 manti_by/apps/profiles/models.py:24 +msgid "Profile" +msgstr "" + +#: manti_by/apps/profiles/apps.py:10 manti_by/apps/profiles/models.py:25 +msgid "Profiles" +msgstr "" + +#: manti_by/apps/profiles/models.py:16 +msgid "Profile Image" +msgstr "" + +#: manti_by/apps/shortener/apps.py:9 +msgid "Shortener" +msgstr "" + +#: manti_by/apps/shortener/apps.py:10 +msgid "Shortener List" +msgstr "" + +#: manti_by/apps/shortener/models.py:14 +msgid "Original Link" +msgstr "" + +#: manti_by/apps/shortener/models.py:16 +msgid "Short Link" +msgstr "" + +#: manti_by/apps/shortener/models.py:20 +msgid "Link" +msgstr "" + +#: manti_by/apps/shortener/models.py:21 +msgid "Links" +msgstr "" + +#: manti_by/settings/base.py:153 +msgid "Belarussian" +msgstr "" + +#: manti_by/settings/base.py:154 +msgid "Russian" +msgstr "" + +#: manti_by/settings/base.py:155 +msgid "English" +msgstr "" + +#: manti_by/settings/base.py:217 +msgid "Welcome to official blog of Alex Chaika." +msgstr "" + +#: manti_by/settings/base.py:218 +msgid "Official blog of Alex Chaika. My music, photos and info about me." +msgstr "" + +#: manti_by/templates/admin/index.html:23 +msgid "Admin" +msgstr "" + +#: manti_by/templates/admin/index.html:26 +msgid "RQ Queues" +msgstr "" + +#: manti_by/templates/admin/index.html:29 +msgid "Recent actions" +msgstr "" + +#: manti_by/templates/admin/index.html:30 +msgid "My actions" +msgstr "" + +#: manti_by/templates/admin/index.html:34 +msgid "None available" +msgstr "" + +#: manti_by/templates/admin/index.html:48 +msgid "Unknown content" +msgstr "" + +#: manti_by/templates/base.html:5 manti_by/templates/base.html:41 +msgid "Drum and Bass, House, Techno and Chillout." +msgstr "" + +#: manti_by/templates/base.html:36 manti_by/templates/base.html:43 +msgid "" +"Official blog of Alex Manti. My music, photos and info about me. Drum and " +"Bass, House, Techno and Chillout." +msgstr "" + +#: manti_by/templates/base.html:83 manti_by/templates/base.html:122 +#: manti_by/templates/blog/list.html:11 manti_by/templates/blog/list.html:18 +#: manti_by/templates/blog/post.html:23 +msgid "Music" +msgstr "" + +#: manti_by/templates/base.html:127 manti_by/templates/base.html:158 +#: manti_by/templates/static/about.html:5 +#: manti_by/templates/static/about.html:6 +#: manti_by/templates/static/about.html:13 +msgid "About" +msgstr "" + +#: manti_by/templates/base.html:128 manti_by/templates/base.html:159 +#: manti_by/templates/static/resume.html:5 +#: manti_by/templates/static/resume.html:6 +#: manti_by/templates/static/resume.html:13 +msgid "Resume" +msgstr "" + +#: manti_by/templates/base.html:129 manti_by/templates/base.html:160 +#: manti_by/templates/static/copyrights.html:5 +#: manti_by/templates/static/copyrights.html:6 +#: manti_by/templates/static/copyrights.html:11 +msgid "Copyrights" +msgstr "" + +#: manti_by/templates/base.html:130 +msgid "Search" +msgstr "" + +#: manti_by/templates/base.html:132 +msgid "Logout" +msgstr "" + +#: manti_by/templates/blog/list-item.html:26 +#: manti_by/templates/blog/post.html:49 manti_by/templates/blog/simple.html:29 +#: manti_by/templates/emails/email.html:65 +msgid "Created" +msgstr "" + +#: manti_by/templates/blog/list-item.html:30 +#: manti_by/templates/blog/post.html:61 +msgid "Length" +msgstr "" + +#: manti_by/templates/blog/list-item.html:53 +#: manti_by/templates/blog/post.html:88 +msgid "Tracklist" +msgstr "" + +#: manti_by/templates/blog/list-item.html:54 +#: manti_by/templates/blog/post.html:89 +msgid "Download" +msgstr "" + +#: manti_by/templates/blog/list-item.html:60 +#: manti_by/templates/blog/post.html:97 +msgid "Hide Tracklist" +msgstr "" + +#: manti_by/templates/blog/list.html:33 +msgid "Nothing to show" +msgstr "" + +#: manti_by/templates/blog/post.html:53 +msgid "Catalog No" +msgstr "" + +#: manti_by/templates/blog/post.html:57 +msgid "Quality" +msgstr "" + +#: manti_by/templates/blog/post.html:102 +msgid "Related posts" +msgstr "" + +#: manti_by/templates/common/sidebar.html:5 +msgid "Popular tags" +msgstr "" + +#: manti_by/templates/common/sidebar.html:15 manti_by/templates/index.html:72 +msgid "Latest posts" +msgstr "" + +#: manti_by/templates/emails/email.html:52 +msgid "From" +msgstr "" + +#: manti_by/templates/emails/email.html:59 +msgid "Message" +msgstr "" + +#: manti_by/templates/emails/email.html:63 +msgid "View this message in" +msgstr "" + +#: manti_by/templates/emails/email.html:64 +msgid "browser" +msgstr "" + +#: manti_by/templates/gallery/gallery.html:26 manti_by/templates/index.html:64 +msgid "Image #" +msgstr "" + +#: manti_by/templates/index.html:5 manti_by/templates/index.html:6 +msgid "Homepage" +msgstr "" + +#: manti_by/templates/index.html:11 +msgid "Featured" +msgstr "" + +#: manti_by/templates/index.html:34 +msgid "Latest Images" +msgstr "" + +#: manti_by/templates/index.html:43 manti_by/templates/index.html:52 +#: manti_by/templates/index.html:53 +msgid "Popular image from gallery" +msgstr "" + +#: manti_by/templates/profiles/login.html:5 +#: manti_by/templates/profiles/login.html:6 +msgid "Login Page" +msgstr "" + +#: manti_by/templates/profiles/login.html:12 +msgid "Please login or register" +msgstr "" + +#: manti_by/templates/profiles/login.html:16 +msgid "Your profile will be created automatically, if necessary" +msgstr "" + +#: manti_by/templates/profiles/login.html:20 +#: manti_by/templates/profiles/profile.html:30 +msgid "Email" +msgstr "" + +#: manti_by/templates/profiles/login.html:25 +msgid "Password" +msgstr "" + +#: manti_by/templates/profiles/login.html:31 +msgid "Let Me In" +msgstr "" + +#: manti_by/templates/profiles/profile.html:5 +#: manti_by/templates/profiles/profile.html:6 +#: manti_by/templates/profiles/profile.html:12 +msgid "Your profile" +msgstr "" + +#: manti_by/templates/profiles/profile.html:17 +msgid "Avatar" +msgstr "" + +#: manti_by/templates/profiles/profile.html:19 +msgid "To update your profile image, please upload new one" +msgstr "" + +#: manti_by/templates/profiles/profile.html:25 +msgid "Username" +msgstr "" + +#: manti_by/templates/profiles/profile.html:41 +msgid "Update" +msgstr "" + +#: manti_by/templates/static/about.html:16 +#: manti_by/templates/static/resume.html:16 +msgid "Alexander Chaika" +msgstr "" + +#: manti_by/templates/static/resume.html:33 +msgid "Code samples" +msgstr "" + +#: manti_by/templates/static/resume.html:39 +msgid "Print this page" +msgstr "" diff --git a/manti_by/core/locale/ru/LC_MESSAGES/django.mo b/manti_by/core/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7007a3d4e50ddf1c5e7d2870e6247ecea1df5a7b GIT binary patch literal 518 zcmYLD!A`4K+%j0Bc>V=ahb#m z!%m)^DxI!1m>>!wwvO$b+SZklMo2vOKF2&pyqU9k&NJDB$url5FmycXk@{L!#(EN( zFga1vOr|c>A2VYO@`dI(=_x%cT#)l+ThLk)eknbY2aZjt1BZuDQhSd&4z$4rlw;qb z)z!$OwURC!w&zsg, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-01-31 21:45+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" + +#: manti_by/api/resources.py:22 +msgid "Forbidden" +msgstr "" + +#: manti_by/api/resources.py:35 +msgid "Updated" +msgstr "" + +#: manti_by/api/resources.py:52 +msgid "Contact request from manti.by" +msgstr "" + +#: manti_by/api/resources.py:60 +msgid "Thanks for subscribing, we'll get in touch soon" +msgstr "" + +#: manti_by/apps/blog/admin.py:30 +msgid "Base Info" +msgstr "" + +#: manti_by/apps/blog/admin.py:31 +msgid "Meta Description" +msgstr "" + +#: manti_by/apps/blog/admin.py:32 +msgid "Summary" +msgstr "" + +#: manti_by/apps/blog/admin.py:34 +msgid "Description" +msgstr "" + +#: manti_by/apps/blog/admin.py:37 manti_by/apps/blog/models.py:67 +#: manti_by/templates/blog/list-item.html:47 +#: manti_by/templates/blog/post.html:81 +msgid "Tags" +msgstr "" + +#: manti_by/apps/blog/admin.py:38 +msgid "Related" +msgstr "" + +#: manti_by/apps/blog/admin.py:40 +msgid "Music params" +msgstr "" + +#: manti_by/apps/blog/admin.py:47 +msgid "Files" +msgstr "" + +#: manti_by/apps/blog/admin.py:74 manti_by/apps/gallery/admin.py:46 +#: manti_by/apps/gallery/models.py:54 manti_by/apps/gallery/models.py:67 +#: manti_by/templates/profiles/profile.html:35 +msgid "Image" +msgstr "" + +#: manti_by/apps/blog/admin.py:80 +msgid "Files Ready" +msgstr "" + +#: manti_by/apps/blog/admin.py:86 +msgid "Translations Ready" +msgstr "" + +#: manti_by/apps/blog/apps.py:9 manti_by/templates/blog/list.html:5 +#: manti_by/templates/blog/list.html:6 manti_by/templates/blog/simple.html:16 +msgid "Blog" +msgstr "" + +#: manti_by/apps/blog/apps.py:10 +msgid "Blogs" +msgstr "" + +#: manti_by/apps/blog/models.py:43 +msgid "Release File" +msgstr "" + +#: manti_by/apps/blog/models.py:51 +msgid "Cover Image" +msgstr "" + +#: manti_by/apps/blog/models.py:63 manti_by/templates/blog/post.html:64 +msgid "Genre" +msgstr "" + +#: manti_by/apps/blog/models.py:81 +msgid "Post" +msgstr "" + +#: manti_by/apps/blog/models.py:82 +msgid "Posts" +msgstr "" + +#: manti_by/apps/blog/views.py:54 +#, python-format +msgid "Post with slug %s does not exists" +msgstr "" + +#: manti_by/apps/gallery/admin.py:20 +msgid "Images count" +msgstr "" + +#: manti_by/apps/gallery/admin.py:35 +msgid "Info" +msgstr "" + +#: manti_by/apps/gallery/admin.py:52 +msgid "Ready" +msgstr "" + +#: manti_by/apps/gallery/apps.py:9 manti_by/apps/gallery/models.py:29 +#: manti_by/templates/base.html:86 manti_by/templates/base.html:125 +#: manti_by/templates/gallery/gallery.html:5 +#: manti_by/templates/gallery/gallery.html:6 +#: manti_by/templates/gallery/gallery.html:10 +msgid "Gallery" +msgstr "" + +#: manti_by/apps/gallery/apps.py:10 manti_by/apps/gallery/models.py:30 +msgid "Galleries" +msgstr "" + +#: manti_by/apps/gallery/models.py:68 +msgid "Images" +msgstr "" + +#: manti_by/apps/profiles/apps.py:9 manti_by/apps/profiles/models.py:24 +msgid "Profile" +msgstr "" + +#: manti_by/apps/profiles/apps.py:10 manti_by/apps/profiles/models.py:25 +msgid "Profiles" +msgstr "" + +#: manti_by/apps/profiles/models.py:16 +msgid "Profile Image" +msgstr "" + +#: manti_by/apps/shortener/apps.py:9 +msgid "Shortener" +msgstr "" + +#: manti_by/apps/shortener/apps.py:10 +msgid "Shortener List" +msgstr "" + +#: manti_by/apps/shortener/models.py:14 +msgid "Original Link" +msgstr "" + +#: manti_by/apps/shortener/models.py:16 +msgid "Short Link" +msgstr "" + +#: manti_by/apps/shortener/models.py:20 +msgid "Link" +msgstr "" + +#: manti_by/apps/shortener/models.py:21 +msgid "Links" +msgstr "" + +#: manti_by/settings/base.py:153 +msgid "Belarussian" +msgstr "" + +#: manti_by/settings/base.py:154 +msgid "Russian" +msgstr "" + +#: manti_by/settings/base.py:155 +msgid "English" +msgstr "" + +#: manti_by/settings/base.py:217 +msgid "Welcome to official blog of Alex Chaika." +msgstr "" + +#: manti_by/settings/base.py:218 +msgid "Official blog of Alex Chaika. My music, photos and info about me." +msgstr "" + +#: manti_by/templates/admin/index.html:23 +msgid "Admin" +msgstr "" + +#: manti_by/templates/admin/index.html:26 +msgid "RQ Queues" +msgstr "" + +#: manti_by/templates/admin/index.html:29 +msgid "Recent actions" +msgstr "" + +#: manti_by/templates/admin/index.html:30 +msgid "My actions" +msgstr "" + +#: manti_by/templates/admin/index.html:34 +msgid "None available" +msgstr "" + +#: manti_by/templates/admin/index.html:48 +msgid "Unknown content" +msgstr "" + +#: manti_by/templates/base.html:5 manti_by/templates/base.html:41 +msgid "Drum and Bass, House, Techno and Chillout." +msgstr "" + +#: manti_by/templates/base.html:36 manti_by/templates/base.html:43 +msgid "" +"Official blog of Alex Manti. My music, photos and info about me. Drum and " +"Bass, House, Techno and Chillout." +msgstr "" + +#: manti_by/templates/base.html:83 manti_by/templates/base.html:122 +#: manti_by/templates/blog/list.html:11 manti_by/templates/blog/list.html:18 +#: manti_by/templates/blog/post.html:23 +msgid "Music" +msgstr "" + +#: manti_by/templates/base.html:127 manti_by/templates/base.html:158 +#: manti_by/templates/static/about.html:5 +#: manti_by/templates/static/about.html:6 +#: manti_by/templates/static/about.html:13 +msgid "About" +msgstr "" + +#: manti_by/templates/base.html:128 manti_by/templates/base.html:159 +#: manti_by/templates/static/resume.html:5 +#: manti_by/templates/static/resume.html:6 +#: manti_by/templates/static/resume.html:13 +msgid "Resume" +msgstr "" + +#: manti_by/templates/base.html:129 manti_by/templates/base.html:160 +#: manti_by/templates/static/copyrights.html:5 +#: manti_by/templates/static/copyrights.html:6 +#: manti_by/templates/static/copyrights.html:11 +msgid "Copyrights" +msgstr "" + +#: manti_by/templates/base.html:130 +msgid "Search" +msgstr "" + +#: manti_by/templates/base.html:132 +msgid "Logout" +msgstr "" + +#: manti_by/templates/blog/list-item.html:26 +#: manti_by/templates/blog/post.html:49 manti_by/templates/blog/simple.html:29 +#: manti_by/templates/emails/email.html:65 +msgid "Created" +msgstr "" + +#: manti_by/templates/blog/list-item.html:30 +#: manti_by/templates/blog/post.html:61 +msgid "Length" +msgstr "" + +#: manti_by/templates/blog/list-item.html:53 +#: manti_by/templates/blog/post.html:88 +msgid "Tracklist" +msgstr "" + +#: manti_by/templates/blog/list-item.html:54 +#: manti_by/templates/blog/post.html:89 +msgid "Download" +msgstr "" + +#: manti_by/templates/blog/list-item.html:60 +#: manti_by/templates/blog/post.html:97 +msgid "Hide Tracklist" +msgstr "" + +#: manti_by/templates/blog/list.html:33 +msgid "Nothing to show" +msgstr "" + +#: manti_by/templates/blog/post.html:53 +msgid "Catalog No" +msgstr "" + +#: manti_by/templates/blog/post.html:57 +msgid "Quality" +msgstr "" + +#: manti_by/templates/blog/post.html:102 +msgid "Related posts" +msgstr "" + +#: manti_by/templates/common/sidebar.html:5 +msgid "Popular tags" +msgstr "" + +#: manti_by/templates/common/sidebar.html:15 manti_by/templates/index.html:72 +msgid "Latest posts" +msgstr "" + +#: manti_by/templates/emails/email.html:52 +msgid "From" +msgstr "" + +#: manti_by/templates/emails/email.html:59 +msgid "Message" +msgstr "" + +#: manti_by/templates/emails/email.html:63 +msgid "View this message in" +msgstr "" + +#: manti_by/templates/emails/email.html:64 +msgid "browser" +msgstr "" + +#: manti_by/templates/gallery/gallery.html:26 manti_by/templates/index.html:64 +msgid "Image #" +msgstr "" + +#: manti_by/templates/index.html:5 manti_by/templates/index.html:6 +msgid "Homepage" +msgstr "" + +#: manti_by/templates/index.html:11 +msgid "Featured" +msgstr "" + +#: manti_by/templates/index.html:34 +msgid "Latest Images" +msgstr "" + +#: manti_by/templates/index.html:43 manti_by/templates/index.html:52 +#: manti_by/templates/index.html:53 +msgid "Popular image from gallery" +msgstr "" + +#: manti_by/templates/profiles/login.html:5 +#: manti_by/templates/profiles/login.html:6 +msgid "Login Page" +msgstr "" + +#: manti_by/templates/profiles/login.html:12 +msgid "Please login or register" +msgstr "" + +#: manti_by/templates/profiles/login.html:16 +msgid "Your profile will be created automatically, if necessary" +msgstr "" + +#: manti_by/templates/profiles/login.html:20 +#: manti_by/templates/profiles/profile.html:30 +msgid "Email" +msgstr "" + +#: manti_by/templates/profiles/login.html:25 +msgid "Password" +msgstr "" + +#: manti_by/templates/profiles/login.html:31 +msgid "Let Me In" +msgstr "" + +#: manti_by/templates/profiles/profile.html:5 +#: manti_by/templates/profiles/profile.html:6 +#: manti_by/templates/profiles/profile.html:12 +msgid "Your profile" +msgstr "" + +#: manti_by/templates/profiles/profile.html:17 +msgid "Avatar" +msgstr "" + +#: manti_by/templates/profiles/profile.html:19 +msgid "To update your profile image, please upload new one" +msgstr "" + +#: manti_by/templates/profiles/profile.html:25 +msgid "Username" +msgstr "" + +#: manti_by/templates/profiles/profile.html:41 +msgid "Update" +msgstr "" + +#: manti_by/templates/static/about.html:16 +#: manti_by/templates/static/resume.html:16 +msgid "Alexander Chaika" +msgstr "" + +#: manti_by/templates/static/resume.html:33 +msgid "Code samples" +msgstr "" + +#: manti_by/templates/static/resume.html:39 +msgid "Print this page" +msgstr "" diff --git a/manti_by/settings/base.py b/manti_by/settings/base.py index 6ff5aeb9..1120aae0 100644 --- a/manti_by/settings/base.py +++ b/manti_by/settings/base.py @@ -105,6 +105,8 @@ } } +DEFAULT_AUTO_FIELD = "django.db.models.AutoField" + # Cache backend # https://docs.djangoproject.com/en/1.10/topics/cache/ @@ -153,7 +155,7 @@ def _(x): ("en", _("English")), ) -LOCALE_PATHS = (os.path.join(PROJECT_DIR, "core", "locale"),) +LOCALE_PATHS = (os.path.join(PROJECT_DIR, "apps", "core", "locale"),) TIME_ZONE = "UTC" USE_I18N = True USE_L10N = True @@ -212,5 +214,5 @@ def _(x): # Meta tags info -META_TITLE = "Welcome to official blog of Alex Manti." -META_DESCRIPTION = "Official blog of Alex Manti. My music, photos and info about me." +META_TITLE = _("Welcome to blog of Alex Chaika.") +META_DESCRIPTION = _("Blog of Alex Chaika. My music, photos and info about me.") diff --git a/manti_by/templates/base.html b/manti_by/templates/base.html index 75eaae73..3d07f25b 100644 --- a/manti_by/templates/base.html +++ b/manti_by/templates/base.html @@ -33,14 +33,14 @@ + content="{% block meta %}{% endblock %} | {% trans 'Blog of Alex Manti. My music, photos and info about me. Drum and Bass, House, Techno and Chillout.' %}"> {% block open-graph %} + content="{% trans 'Blog of Alex Manti. My music, photos and info about me. Drum and Bass, House, Techno and Chillout.' %}"> {% endblock %} diff --git a/manti_by/urls.py b/manti_by/urls.py index 21b118ee..0d49aaee 100644 --- a/manti_by/urls.py +++ b/manti_by/urls.py @@ -27,10 +27,10 @@ path("profile/", include("manti_by.apps.profiles.urls"), name="profile"), # URL shortener path("sr/", include("manti_by.apps.shortener.urls")), - # Admin urls - path("dashboard/", admin.site.urls), # Django RQ path("dashboard/django-rq/", include("django_rq.urls")), + # Admin urls + path("dashboard/", admin.site.urls), # Sitemap path( "sitemap.xml", From be4b00519e73a26b1d67ee56161da3aaf5ed851e Mon Sep 17 00:00:00 2001 From: Alexander Chaika Date: Thu, 3 Feb 2022 15:00:25 +0300 Subject: [PATCH 2/2] Add support for non mp3 releases, fix encoders --- config/nginx.conf | 2 +- manti_by/apps/blog/admin.py | 1 + manti_by/apps/blog/constants.py | 15 + .../management/commands/check_posts_state.py | 5 +- ...ptions_remove_post_original_id_and_more.py | 42 +- manti_by/apps/blog/models.py | 124 +++--- manti_by/apps/blog/services.py | 8 +- manti_by/apps/core/services.py | 44 +- ...ter_gallery_options_alter_image_options.py | 10 +- .../migrations/0007_alter_profile_options.py | 6 +- .../migrations/0004_alter_link_options.py | 6 +- manti_by/core/locale/be/LC_MESSAGES/django.mo | Bin 518 -> 0 bytes manti_by/core/locale/be/LC_MESSAGES/django.po | 420 ------------------ manti_by/core/locale/ru/LC_MESSAGES/django.mo | Bin 518 -> 0 bytes manti_by/core/locale/ru/LC_MESSAGES/django.po | 420 ------------------ 15 files changed, 163 insertions(+), 940 deletions(-) delete mode 100644 manti_by/core/locale/be/LC_MESSAGES/django.mo delete mode 100644 manti_by/core/locale/be/LC_MESSAGES/django.po delete mode 100644 manti_by/core/locale/ru/LC_MESSAGES/django.mo delete mode 100644 manti_by/core/locale/ru/LC_MESSAGES/django.po diff --git a/config/nginx.conf b/config/nginx.conf index a5fc46a7..6e7d5c2c 100644 --- a/config/nginx.conf +++ b/config/nginx.conf @@ -284,7 +284,7 @@ server { add_header Content-Disposition 'attachment; filename="$fname"'; } - if ($request_filename ~ "^.*/(.+\.(jpe?g|webp|mp3|ogg|zip))$") { + if ($request_filename ~ "^.*/(.+\.(jpe?g|webp|mp3|ogg|flac|zip))$") { expires max; access_log off; diff --git a/manti_by/apps/blog/admin.py b/manti_by/apps/blog/admin.py index 9b7aff26..67a20c67 100644 --- a/manti_by/apps/blog/admin.py +++ b/manti_by/apps/blog/admin.py @@ -50,6 +50,7 @@ class PostAdmin(admin.ModelAdmin): "fields": ( "cover", "release", + "mp3_release_ready", "mp3_preview_ready", "ogg_preview_ready", "ogg_release_ready", diff --git a/manti_by/apps/blog/constants.py b/manti_by/apps/blog/constants.py index 2def4ede..9bc182a7 100644 --- a/manti_by/apps/blog/constants.py +++ b/manti_by/apps/blog/constants.py @@ -5,3 +5,18 @@ OGG_PREVIEW = "ogg_preview" OGG_RELEASE = "ogg_release" + +TRANSLATED_FIELDS = ( + "name_be", + "name_ru", + "name_en", + "meta_be", + "meta_ru", + "meta_en", + "summary_be", + "summary_ru", + "summary_en", + "description_be", + "description_ru", + "description_en", +) diff --git a/manti_by/apps/blog/management/commands/check_posts_state.py b/manti_by/apps/blog/management/commands/check_posts_state.py index 191bb1d2..cf55369d 100644 --- a/manti_by/apps/blog/management/commands/check_posts_state.py +++ b/manti_by/apps/blog/management/commands/check_posts_state.py @@ -13,7 +13,7 @@ class Command(BaseCommand): def handle(self, *args, **options): checked = 0 - for post in Post.objects.all(): + for post in Post.objects.all().order_by("created"): try: post.mp3_release_ready = ( os.path.exists(post.release_mp3_file) @@ -36,9 +36,10 @@ def handle(self, *args, **options): ) self.stdout.write( - "Checked post #%d: %d %d %d" + "Checked post #%d: %d %d %d %d" % ( post.id, + 1 if post.mp3_release_ready else 0, 1 if post.ogg_release_ready else 0, 1 if post.mp3_preview_ready else 0, 1 if post.ogg_preview_ready else 0, diff --git a/manti_by/apps/blog/migrations/0017_alter_post_options_remove_post_original_id_and_more.py b/manti_by/apps/blog/migrations/0017_alter_post_options_remove_post_original_id_and_more.py index 05fc6e54..05327445 100644 --- a/manti_by/apps/blog/migrations/0017_alter_post_options_remove_post_original_id_and_more.py +++ b/manti_by/apps/blog/migrations/0017_alter_post_options_remove_post_original_id_and_more.py @@ -7,37 +7,45 @@ class Migration(migrations.Migration): dependencies = [ - ('taggit', '0004_alter_taggeditem_content_type_alter_taggeditem_tag'), - ('blog', '0016_auto_20210917_1132'), + ("taggit", "0004_alter_taggeditem_content_type_alter_taggeditem_tag"), + ("blog", "0016_auto_20210917_1132"), ] operations = [ migrations.AlterModelOptions( - name='post', - options={'verbose_name': 'Post', 'verbose_name_plural': 'Posts'}, + name="post", + options={"verbose_name": "Post", "verbose_name_plural": "Posts"}, ), migrations.RemoveField( - model_name='post', - name='original_id', + model_name="post", + name="original_id", ), migrations.AddField( - model_name='post', - name='mp3_release_ready', + model_name="post", + name="mp3_release_ready", field=models.BooleanField(blank=True, default=False), ), migrations.AlterField( - model_name='genresproxy', - name='tag', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='taggit.tag'), + model_name="genresproxy", + name="tag", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="%(app_label)s_%(class)s_items", + to="taggit.tag", + ), ), migrations.AlterField( - model_name='post', - name='related', - field=models.ManyToManyField(blank=True, to='blog.Post'), + model_name="post", + name="related", + field=models.ManyToManyField(blank=True, to="blog.Post"), ), migrations.AlterField( - model_name='tagsproxy', - name='tag', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='taggit.tag'), + model_name="tagsproxy", + name="tag", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="%(app_label)s_%(class)s_items", + to="taggit.tag", + ), ), ] diff --git a/manti_by/apps/blog/models.py b/manti_by/apps/blog/models.py index f2d78ab2..46a2f2d9 100644 --- a/manti_by/apps/blog/models.py +++ b/manti_by/apps/blog/models.py @@ -1,3 +1,5 @@ +from typing import Optional, List + from django.db import models from django.urls import reverse from django.utils.translation import gettext_lazy as _ @@ -8,6 +10,7 @@ from taggit.models import TaggedItemBase from taggit.managers import TaggableManager +from manti_by.apps.blog.constants import TRANSLATED_FIELDS from manti_by.apps.core.models import BaseModel from manti_by.apps.core.mixins import SlugifyMixin from manti_by.apps.core.utils import flush_cache, release_name, cover_name @@ -87,91 +90,102 @@ def __str__(self): @property def files_converted(self): return ( - self.mp3_preview_ready and self.mp3_release_ready and self.ogg_preview_ready and self.ogg_release_ready + self.mp3_preview_ready + and self.mp3_release_ready + and self.ogg_preview_ready + and self.ogg_release_ready ) @property - def translations_filled(self): - for field in ( - "name_be", - "name_ru", - "name_en", - "meta_be", - "meta_ru", - "meta_en", - "summary_be", - "summary_ru", - "summary_en", - "description_be", - "description_ru", - "description_en", - ): + def translations_filled(self) -> bool: + for field in TRANSLATED_FIELDS: if not getattr(self, field): return False return True @property - def url(self): + def url(self) -> str: return reverse("post", kwargs={"slug": self.slug}) @property - def release_mp3_url(self): - return self.release.url.replace("flac", "mp3") if self.release else None + def release_file_url(self) -> Optional[str]: + try: + ext = self.release.url.split(".")[-1] + return self.release.url.replace(f".{ext}", "") + except (IndexError, AttributeError): + return @property - def release_mp3_file(self): - return self.release.file.name.replace("flac", "mp3") if self.release else None + def release_file_name(self) -> Optional[str]: + try: + ext = self.release.file.name.split(".")[-1] + return self.release.file.name.replace(f".{ext}", "") + except (IndexError, AttributeError): + return @property - def preview_mp3_url(self): - return self.release.url.replace("release", "preview") if self.release else None + def preview_file_url(self) -> Optional[str]: + try: + return self.release_file_url.replace("release", "preview") + except (IndexError, AttributeError): + return @property - def preview_mp3_file(self): - return ( - self.release.file.name.replace("release", "preview") - if self.release - else None - ) + def preview_file_name(self) -> Optional[str]: + try: + return self.release_file_name.replace("release", "preview") + except (IndexError, AttributeError): + return @property - def release_ogg_url(self): - return self.release.url.replace("mp3", "ogg") if self.release else None + def release_mp3_url(self) -> Optional[str]: + return f"{self.release_file_url}.mp3" if self.release_file_url else None @property - def release_ogg_file(self): - return self.release.file.name.replace("mp3", "ogg") if self.release else None + def release_mp3_file(self) -> Optional[str]: + return f"{self.release_file_name}.mp3" if self.release_file_name else None @property - def preview_ogg_url(self): - return ( - self.release.url.replace("release", "preview").replace("mp3", "ogg") - if self.release - else None - ) + def preview_mp3_url(self) -> Optional[str]: + return f"{self.preview_file_url}.mp3" if self.preview_file_url else None @property - def preview_ogg_file(self): - return ( - self.release.file.name.replace("release", "preview").replace("mp3", "ogg") - if self.release - else None - ) + def preview_mp3_file(self) -> Optional[str]: + return f"{self.preview_file_name}.mp3" if self.preview_file_name else None @property - def title(self): - return "%s /%s/" % ( - self.name, - ", ".join(self.genre.values_list("name", flat=True)), - ) + def release_ogg_url(self) -> Optional[str]: + return f"{self.release_file_url}.ogg" if self.release_file_url else None @property - def most_common_tags(self): - for tag in self.tags.exclude(slug="front"): - if TagsProxy.objects.filter(tag_id=tag.id).count() > 1: - yield tag + def release_ogg_file(self) -> Optional[str]: + return f"{self.release_file_name}.ogg" if self.release_file_name else None - def as_dict(self): + @property + def preview_ogg_url(self) -> Optional[str]: + return f"{self.preview_file_url}.ogg" if self.preview_file_url else None + + @property + def preview_ogg_file(self) -> Optional[str]: + return f"{self.preview_file_name}.ogg" if self.preview_file_name else None + + @property + def genres(self) -> str: + return ", ".join(self.genre.values_list("name", flat=True)) + + @property + def title(self) -> str: + return f"{self.name} /{self.genres}/" + + @property + def most_common_tags(self) -> List[TagsProxy]: + return [ + tag + for tag in self.tags.exclude(slug="front") + if TagsProxy.objects.filter(tag_id=tag.id).count() > 1 + ] + + def as_dict(self) -> dict: return { "id": self.id, "url": self.url, diff --git a/manti_by/apps/blog/services.py b/manti_by/apps/blog/services.py index c3b5b7cf..42dc9a13 100644 --- a/manti_by/apps/blog/services.py +++ b/manti_by/apps/blog/services.py @@ -1,3 +1,6 @@ +from __future__ import annotations +from typing import TYPE_CHECKING + from manti_by.apps.core.services import ( convert_to_mp3_preview, convert_to_ogg_preview, @@ -8,8 +11,11 @@ queue = get_rq_queue() +if TYPE_CHECKING: + from manti_by.apps.blog.models import Post + -def generate_preview_for_post(post): +def generate_preview_for_post(post: Post): if not post.release: return if not post.mp3_preview_ready: diff --git a/manti_by/apps/core/services.py b/manti_by/apps/core/services.py index 0eab9e38..e0959244 100644 --- a/manti_by/apps/core/services.py +++ b/manti_by/apps/core/services.py @@ -1,7 +1,12 @@ import logging import subprocess -from manti_by.apps.blog.constants import MP3_PREVIEW, MP3_RELEASE, OGG_PREVIEW, OGG_RELEASE +from manti_by.apps.blog.constants import ( + MP3_PREVIEW, + MP3_RELEASE, + OGG_PREVIEW, + OGG_RELEASE, +) logger = logging.getLogger(__name__) @@ -12,23 +17,36 @@ def convert_release(ffmpeg_format, post_id, output_type=""): try: post = Post.objects.get(id=post_id) except Post.DoesNotExist as e: - logger.warning(e) - return + logger.error(e) + return -1 - if output_type == OGG_PREVIEW: - result = post.preview_ogg_file - elif output_type == OGG_RELEASE: - result = post.release_ogg_file + if output_type == OGG_RELEASE: + if post.release.file.name == post.release_ogg_file: + return 0 + result_file_name = post.release_ogg_file + update_attribute = "ogg_release_ready" elif output_type == MP3_RELEASE: if post.release.file.name == post.release_mp3_file: - return - result = post.release_mp3_file + return 0 + result_file_name = post.release_mp3_file + update_attribute = "mp3_release_ready" + elif output_type == OGG_PREVIEW: + result_file_name = post.preview_ogg_file + update_attribute = "ogg_preview_ready" + elif output_type == MP3_PREVIEW: + result_file_name = post.preview_mp3_file + update_attribute = "mp3_preview_ready" else: - result = post.preview_mp3_file + logger.error(f"Invalid conversion format {output_type}") + return -1 - ffmpeg_format.append(result) - command = ["ffmpeg", "-y", "-nostats", "-i", post.release.file.name] + ffmpeg_format - return subprocess.call(command) + ffmpeg_format.append(result_file_name) + command = ["ffmpeg", "-y", "-i", post.release.file.name] + ffmpeg_format + command_exit_code = subprocess.call(command) + if command_exit_code == 0: + setattr(post, update_attribute, True) + post.save() + return command_exit_code def convert_to_mp3_preview(post_id): diff --git a/manti_by/apps/gallery/migrations/0016_alter_gallery_options_alter_image_options.py b/manti_by/apps/gallery/migrations/0016_alter_gallery_options_alter_image_options.py index 877a3c4a..47c82126 100644 --- a/manti_by/apps/gallery/migrations/0016_alter_gallery_options_alter_image_options.py +++ b/manti_by/apps/gallery/migrations/0016_alter_gallery_options_alter_image_options.py @@ -6,16 +6,16 @@ class Migration(migrations.Migration): dependencies = [ - ('gallery', '0015_auto_20210917_1132'), + ("gallery", "0015_auto_20210917_1132"), ] operations = [ migrations.AlterModelOptions( - name='gallery', - options={'verbose_name': 'Gallery', 'verbose_name_plural': 'Galleries'}, + name="gallery", + options={"verbose_name": "Gallery", "verbose_name_plural": "Galleries"}, ), migrations.AlterModelOptions( - name='image', - options={'verbose_name': 'Image', 'verbose_name_plural': 'Images'}, + name="image", + options={"verbose_name": "Image", "verbose_name_plural": "Images"}, ), ] diff --git a/manti_by/apps/profiles/migrations/0007_alter_profile_options.py b/manti_by/apps/profiles/migrations/0007_alter_profile_options.py index 9be482d6..d0ca426a 100644 --- a/manti_by/apps/profiles/migrations/0007_alter_profile_options.py +++ b/manti_by/apps/profiles/migrations/0007_alter_profile_options.py @@ -6,12 +6,12 @@ class Migration(migrations.Migration): dependencies = [ - ('profiles', '0006_auto_20180619_1106'), + ("profiles", "0006_auto_20180619_1106"), ] operations = [ migrations.AlterModelOptions( - name='profile', - options={'verbose_name': 'Profile', 'verbose_name_plural': 'Profiles'}, + name="profile", + options={"verbose_name": "Profile", "verbose_name_plural": "Profiles"}, ), ] diff --git a/manti_by/apps/shortener/migrations/0004_alter_link_options.py b/manti_by/apps/shortener/migrations/0004_alter_link_options.py index e8a7fe8e..09294d57 100644 --- a/manti_by/apps/shortener/migrations/0004_alter_link_options.py +++ b/manti_by/apps/shortener/migrations/0004_alter_link_options.py @@ -6,12 +6,12 @@ class Migration(migrations.Migration): dependencies = [ - ('shortener', '0003_alter_link_id'), + ("shortener", "0003_alter_link_id"), ] operations = [ migrations.AlterModelOptions( - name='link', - options={'verbose_name': 'Link', 'verbose_name_plural': 'Links'}, + name="link", + options={"verbose_name": "Link", "verbose_name_plural": "Links"}, ), ] diff --git a/manti_by/core/locale/be/LC_MESSAGES/django.mo b/manti_by/core/locale/be/LC_MESSAGES/django.mo deleted file mode 100644 index 7007a3d4e50ddf1c5e7d2870e6247ecea1df5a7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmYLD!A`4K+%j0Bc>V=ahb#m z!%m)^DxI!1m>>!wwvO$b+SZklMo2vOKF2&pyqU9k&NJDB$url5FmycXk@{L!#(EN( zFga1vOr|c>A2VYO@`dI(=_x%cT#)l+ThLk)eknbY2aZjt1BZuDQhSd&4z$4rlw;qb z)z!$OwURC!w&zsg, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 21:46+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" -"%100>=11 && n%100<=14)? 2 : 3);\n" - -#: manti_by/api/resources.py:22 -msgid "Forbidden" -msgstr "" - -#: manti_by/api/resources.py:35 -msgid "Updated" -msgstr "" - -#: manti_by/api/resources.py:52 -msgid "Contact request from manti.by" -msgstr "" - -#: manti_by/api/resources.py:60 -msgid "Thanks for subscribing, we'll get in touch soon" -msgstr "" - -#: manti_by/apps/blog/admin.py:30 -msgid "Base Info" -msgstr "" - -#: manti_by/apps/blog/admin.py:31 -msgid "Meta Description" -msgstr "" - -#: manti_by/apps/blog/admin.py:32 -msgid "Summary" -msgstr "" - -#: manti_by/apps/blog/admin.py:34 -msgid "Description" -msgstr "" - -#: manti_by/apps/blog/admin.py:37 manti_by/apps/blog/models.py:67 -#: manti_by/templates/blog/list-item.html:47 -#: manti_by/templates/blog/post.html:81 -msgid "Tags" -msgstr "" - -#: manti_by/apps/blog/admin.py:38 -msgid "Related" -msgstr "" - -#: manti_by/apps/blog/admin.py:40 -msgid "Music params" -msgstr "" - -#: manti_by/apps/blog/admin.py:47 -msgid "Files" -msgstr "" - -#: manti_by/apps/blog/admin.py:74 manti_by/apps/gallery/admin.py:46 -#: manti_by/apps/gallery/models.py:54 manti_by/apps/gallery/models.py:67 -#: manti_by/templates/profiles/profile.html:35 -msgid "Image" -msgstr "" - -#: manti_by/apps/blog/admin.py:80 -msgid "Files Ready" -msgstr "" - -#: manti_by/apps/blog/admin.py:86 -msgid "Translations Ready" -msgstr "" - -#: manti_by/apps/blog/apps.py:9 manti_by/templates/blog/list.html:5 -#: manti_by/templates/blog/list.html:6 manti_by/templates/blog/simple.html:16 -msgid "Blog" -msgstr "" - -#: manti_by/apps/blog/apps.py:10 -msgid "Blogs" -msgstr "" - -#: manti_by/apps/blog/models.py:43 -msgid "Release File" -msgstr "" - -#: manti_by/apps/blog/models.py:51 -msgid "Cover Image" -msgstr "" - -#: manti_by/apps/blog/models.py:63 manti_by/templates/blog/post.html:64 -msgid "Genre" -msgstr "" - -#: manti_by/apps/blog/models.py:81 -msgid "Post" -msgstr "" - -#: manti_by/apps/blog/models.py:82 -msgid "Posts" -msgstr "" - -#: manti_by/apps/blog/views.py:54 -#, python-format -msgid "Post with slug %s does not exists" -msgstr "" - -#: manti_by/apps/gallery/admin.py:20 -msgid "Images count" -msgstr "" - -#: manti_by/apps/gallery/admin.py:35 -msgid "Info" -msgstr "" - -#: manti_by/apps/gallery/admin.py:52 -msgid "Ready" -msgstr "" - -#: manti_by/apps/gallery/apps.py:9 manti_by/apps/gallery/models.py:29 -#: manti_by/templates/base.html:86 manti_by/templates/base.html:125 -#: manti_by/templates/gallery/gallery.html:5 -#: manti_by/templates/gallery/gallery.html:6 -#: manti_by/templates/gallery/gallery.html:10 -msgid "Gallery" -msgstr "" - -#: manti_by/apps/gallery/apps.py:10 manti_by/apps/gallery/models.py:30 -msgid "Galleries" -msgstr "" - -#: manti_by/apps/gallery/models.py:68 -msgid "Images" -msgstr "" - -#: manti_by/apps/profiles/apps.py:9 manti_by/apps/profiles/models.py:24 -msgid "Profile" -msgstr "" - -#: manti_by/apps/profiles/apps.py:10 manti_by/apps/profiles/models.py:25 -msgid "Profiles" -msgstr "" - -#: manti_by/apps/profiles/models.py:16 -msgid "Profile Image" -msgstr "" - -#: manti_by/apps/shortener/apps.py:9 -msgid "Shortener" -msgstr "" - -#: manti_by/apps/shortener/apps.py:10 -msgid "Shortener List" -msgstr "" - -#: manti_by/apps/shortener/models.py:14 -msgid "Original Link" -msgstr "" - -#: manti_by/apps/shortener/models.py:16 -msgid "Short Link" -msgstr "" - -#: manti_by/apps/shortener/models.py:20 -msgid "Link" -msgstr "" - -#: manti_by/apps/shortener/models.py:21 -msgid "Links" -msgstr "" - -#: manti_by/settings/base.py:153 -msgid "Belarussian" -msgstr "" - -#: manti_by/settings/base.py:154 -msgid "Russian" -msgstr "" - -#: manti_by/settings/base.py:155 -msgid "English" -msgstr "" - -#: manti_by/settings/base.py:217 -msgid "Welcome to official blog of Alex Chaika." -msgstr "" - -#: manti_by/settings/base.py:218 -msgid "Official blog of Alex Chaika. My music, photos and info about me." -msgstr "" - -#: manti_by/templates/admin/index.html:23 -msgid "Admin" -msgstr "" - -#: manti_by/templates/admin/index.html:26 -msgid "RQ Queues" -msgstr "" - -#: manti_by/templates/admin/index.html:29 -msgid "Recent actions" -msgstr "" - -#: manti_by/templates/admin/index.html:30 -msgid "My actions" -msgstr "" - -#: manti_by/templates/admin/index.html:34 -msgid "None available" -msgstr "" - -#: manti_by/templates/admin/index.html:48 -msgid "Unknown content" -msgstr "" - -#: manti_by/templates/base.html:5 manti_by/templates/base.html:41 -msgid "Drum and Bass, House, Techno and Chillout." -msgstr "" - -#: manti_by/templates/base.html:36 manti_by/templates/base.html:43 -msgid "" -"Official blog of Alex Manti. My music, photos and info about me. Drum and " -"Bass, House, Techno and Chillout." -msgstr "" - -#: manti_by/templates/base.html:83 manti_by/templates/base.html:122 -#: manti_by/templates/blog/list.html:11 manti_by/templates/blog/list.html:18 -#: manti_by/templates/blog/post.html:23 -msgid "Music" -msgstr "" - -#: manti_by/templates/base.html:127 manti_by/templates/base.html:158 -#: manti_by/templates/static/about.html:5 -#: manti_by/templates/static/about.html:6 -#: manti_by/templates/static/about.html:13 -msgid "About" -msgstr "" - -#: manti_by/templates/base.html:128 manti_by/templates/base.html:159 -#: manti_by/templates/static/resume.html:5 -#: manti_by/templates/static/resume.html:6 -#: manti_by/templates/static/resume.html:13 -msgid "Resume" -msgstr "" - -#: manti_by/templates/base.html:129 manti_by/templates/base.html:160 -#: manti_by/templates/static/copyrights.html:5 -#: manti_by/templates/static/copyrights.html:6 -#: manti_by/templates/static/copyrights.html:11 -msgid "Copyrights" -msgstr "" - -#: manti_by/templates/base.html:130 -msgid "Search" -msgstr "" - -#: manti_by/templates/base.html:132 -msgid "Logout" -msgstr "" - -#: manti_by/templates/blog/list-item.html:26 -#: manti_by/templates/blog/post.html:49 manti_by/templates/blog/simple.html:29 -#: manti_by/templates/emails/email.html:65 -msgid "Created" -msgstr "" - -#: manti_by/templates/blog/list-item.html:30 -#: manti_by/templates/blog/post.html:61 -msgid "Length" -msgstr "" - -#: manti_by/templates/blog/list-item.html:53 -#: manti_by/templates/blog/post.html:88 -msgid "Tracklist" -msgstr "" - -#: manti_by/templates/blog/list-item.html:54 -#: manti_by/templates/blog/post.html:89 -msgid "Download" -msgstr "" - -#: manti_by/templates/blog/list-item.html:60 -#: manti_by/templates/blog/post.html:97 -msgid "Hide Tracklist" -msgstr "" - -#: manti_by/templates/blog/list.html:33 -msgid "Nothing to show" -msgstr "" - -#: manti_by/templates/blog/post.html:53 -msgid "Catalog No" -msgstr "" - -#: manti_by/templates/blog/post.html:57 -msgid "Quality" -msgstr "" - -#: manti_by/templates/blog/post.html:102 -msgid "Related posts" -msgstr "" - -#: manti_by/templates/common/sidebar.html:5 -msgid "Popular tags" -msgstr "" - -#: manti_by/templates/common/sidebar.html:15 manti_by/templates/index.html:72 -msgid "Latest posts" -msgstr "" - -#: manti_by/templates/emails/email.html:52 -msgid "From" -msgstr "" - -#: manti_by/templates/emails/email.html:59 -msgid "Message" -msgstr "" - -#: manti_by/templates/emails/email.html:63 -msgid "View this message in" -msgstr "" - -#: manti_by/templates/emails/email.html:64 -msgid "browser" -msgstr "" - -#: manti_by/templates/gallery/gallery.html:26 manti_by/templates/index.html:64 -msgid "Image #" -msgstr "" - -#: manti_by/templates/index.html:5 manti_by/templates/index.html:6 -msgid "Homepage" -msgstr "" - -#: manti_by/templates/index.html:11 -msgid "Featured" -msgstr "" - -#: manti_by/templates/index.html:34 -msgid "Latest Images" -msgstr "" - -#: manti_by/templates/index.html:43 manti_by/templates/index.html:52 -#: manti_by/templates/index.html:53 -msgid "Popular image from gallery" -msgstr "" - -#: manti_by/templates/profiles/login.html:5 -#: manti_by/templates/profiles/login.html:6 -msgid "Login Page" -msgstr "" - -#: manti_by/templates/profiles/login.html:12 -msgid "Please login or register" -msgstr "" - -#: manti_by/templates/profiles/login.html:16 -msgid "Your profile will be created automatically, if necessary" -msgstr "" - -#: manti_by/templates/profiles/login.html:20 -#: manti_by/templates/profiles/profile.html:30 -msgid "Email" -msgstr "" - -#: manti_by/templates/profiles/login.html:25 -msgid "Password" -msgstr "" - -#: manti_by/templates/profiles/login.html:31 -msgid "Let Me In" -msgstr "" - -#: manti_by/templates/profiles/profile.html:5 -#: manti_by/templates/profiles/profile.html:6 -#: manti_by/templates/profiles/profile.html:12 -msgid "Your profile" -msgstr "" - -#: manti_by/templates/profiles/profile.html:17 -msgid "Avatar" -msgstr "" - -#: manti_by/templates/profiles/profile.html:19 -msgid "To update your profile image, please upload new one" -msgstr "" - -#: manti_by/templates/profiles/profile.html:25 -msgid "Username" -msgstr "" - -#: manti_by/templates/profiles/profile.html:41 -msgid "Update" -msgstr "" - -#: manti_by/templates/static/about.html:16 -#: manti_by/templates/static/resume.html:16 -msgid "Alexander Chaika" -msgstr "" - -#: manti_by/templates/static/resume.html:33 -msgid "Code samples" -msgstr "" - -#: manti_by/templates/static/resume.html:39 -msgid "Print this page" -msgstr "" diff --git a/manti_by/core/locale/ru/LC_MESSAGES/django.mo b/manti_by/core/locale/ru/LC_MESSAGES/django.mo deleted file mode 100644 index 7007a3d4e50ddf1c5e7d2870e6247ecea1df5a7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmYLD!A`4K+%j0Bc>V=ahb#m z!%m)^DxI!1m>>!wwvO$b+SZklMo2vOKF2&pyqU9k&NJDB$url5FmycXk@{L!#(EN( zFga1vOr|c>A2VYO@`dI(=_x%cT#)l+ThLk)eknbY2aZjt1BZuDQhSd&4z$4rlw;qb z)z!$OwURC!w&zsg, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-01-31 21:45+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" -"%100>=11 && n%100<=14)? 2 : 3);\n" - -#: manti_by/api/resources.py:22 -msgid "Forbidden" -msgstr "" - -#: manti_by/api/resources.py:35 -msgid "Updated" -msgstr "" - -#: manti_by/api/resources.py:52 -msgid "Contact request from manti.by" -msgstr "" - -#: manti_by/api/resources.py:60 -msgid "Thanks for subscribing, we'll get in touch soon" -msgstr "" - -#: manti_by/apps/blog/admin.py:30 -msgid "Base Info" -msgstr "" - -#: manti_by/apps/blog/admin.py:31 -msgid "Meta Description" -msgstr "" - -#: manti_by/apps/blog/admin.py:32 -msgid "Summary" -msgstr "" - -#: manti_by/apps/blog/admin.py:34 -msgid "Description" -msgstr "" - -#: manti_by/apps/blog/admin.py:37 manti_by/apps/blog/models.py:67 -#: manti_by/templates/blog/list-item.html:47 -#: manti_by/templates/blog/post.html:81 -msgid "Tags" -msgstr "" - -#: manti_by/apps/blog/admin.py:38 -msgid "Related" -msgstr "" - -#: manti_by/apps/blog/admin.py:40 -msgid "Music params" -msgstr "" - -#: manti_by/apps/blog/admin.py:47 -msgid "Files" -msgstr "" - -#: manti_by/apps/blog/admin.py:74 manti_by/apps/gallery/admin.py:46 -#: manti_by/apps/gallery/models.py:54 manti_by/apps/gallery/models.py:67 -#: manti_by/templates/profiles/profile.html:35 -msgid "Image" -msgstr "" - -#: manti_by/apps/blog/admin.py:80 -msgid "Files Ready" -msgstr "" - -#: manti_by/apps/blog/admin.py:86 -msgid "Translations Ready" -msgstr "" - -#: manti_by/apps/blog/apps.py:9 manti_by/templates/blog/list.html:5 -#: manti_by/templates/blog/list.html:6 manti_by/templates/blog/simple.html:16 -msgid "Blog" -msgstr "" - -#: manti_by/apps/blog/apps.py:10 -msgid "Blogs" -msgstr "" - -#: manti_by/apps/blog/models.py:43 -msgid "Release File" -msgstr "" - -#: manti_by/apps/blog/models.py:51 -msgid "Cover Image" -msgstr "" - -#: manti_by/apps/blog/models.py:63 manti_by/templates/blog/post.html:64 -msgid "Genre" -msgstr "" - -#: manti_by/apps/blog/models.py:81 -msgid "Post" -msgstr "" - -#: manti_by/apps/blog/models.py:82 -msgid "Posts" -msgstr "" - -#: manti_by/apps/blog/views.py:54 -#, python-format -msgid "Post with slug %s does not exists" -msgstr "" - -#: manti_by/apps/gallery/admin.py:20 -msgid "Images count" -msgstr "" - -#: manti_by/apps/gallery/admin.py:35 -msgid "Info" -msgstr "" - -#: manti_by/apps/gallery/admin.py:52 -msgid "Ready" -msgstr "" - -#: manti_by/apps/gallery/apps.py:9 manti_by/apps/gallery/models.py:29 -#: manti_by/templates/base.html:86 manti_by/templates/base.html:125 -#: manti_by/templates/gallery/gallery.html:5 -#: manti_by/templates/gallery/gallery.html:6 -#: manti_by/templates/gallery/gallery.html:10 -msgid "Gallery" -msgstr "" - -#: manti_by/apps/gallery/apps.py:10 manti_by/apps/gallery/models.py:30 -msgid "Galleries" -msgstr "" - -#: manti_by/apps/gallery/models.py:68 -msgid "Images" -msgstr "" - -#: manti_by/apps/profiles/apps.py:9 manti_by/apps/profiles/models.py:24 -msgid "Profile" -msgstr "" - -#: manti_by/apps/profiles/apps.py:10 manti_by/apps/profiles/models.py:25 -msgid "Profiles" -msgstr "" - -#: manti_by/apps/profiles/models.py:16 -msgid "Profile Image" -msgstr "" - -#: manti_by/apps/shortener/apps.py:9 -msgid "Shortener" -msgstr "" - -#: manti_by/apps/shortener/apps.py:10 -msgid "Shortener List" -msgstr "" - -#: manti_by/apps/shortener/models.py:14 -msgid "Original Link" -msgstr "" - -#: manti_by/apps/shortener/models.py:16 -msgid "Short Link" -msgstr "" - -#: manti_by/apps/shortener/models.py:20 -msgid "Link" -msgstr "" - -#: manti_by/apps/shortener/models.py:21 -msgid "Links" -msgstr "" - -#: manti_by/settings/base.py:153 -msgid "Belarussian" -msgstr "" - -#: manti_by/settings/base.py:154 -msgid "Russian" -msgstr "" - -#: manti_by/settings/base.py:155 -msgid "English" -msgstr "" - -#: manti_by/settings/base.py:217 -msgid "Welcome to official blog of Alex Chaika." -msgstr "" - -#: manti_by/settings/base.py:218 -msgid "Official blog of Alex Chaika. My music, photos and info about me." -msgstr "" - -#: manti_by/templates/admin/index.html:23 -msgid "Admin" -msgstr "" - -#: manti_by/templates/admin/index.html:26 -msgid "RQ Queues" -msgstr "" - -#: manti_by/templates/admin/index.html:29 -msgid "Recent actions" -msgstr "" - -#: manti_by/templates/admin/index.html:30 -msgid "My actions" -msgstr "" - -#: manti_by/templates/admin/index.html:34 -msgid "None available" -msgstr "" - -#: manti_by/templates/admin/index.html:48 -msgid "Unknown content" -msgstr "" - -#: manti_by/templates/base.html:5 manti_by/templates/base.html:41 -msgid "Drum and Bass, House, Techno and Chillout." -msgstr "" - -#: manti_by/templates/base.html:36 manti_by/templates/base.html:43 -msgid "" -"Official blog of Alex Manti. My music, photos and info about me. Drum and " -"Bass, House, Techno and Chillout." -msgstr "" - -#: manti_by/templates/base.html:83 manti_by/templates/base.html:122 -#: manti_by/templates/blog/list.html:11 manti_by/templates/blog/list.html:18 -#: manti_by/templates/blog/post.html:23 -msgid "Music" -msgstr "" - -#: manti_by/templates/base.html:127 manti_by/templates/base.html:158 -#: manti_by/templates/static/about.html:5 -#: manti_by/templates/static/about.html:6 -#: manti_by/templates/static/about.html:13 -msgid "About" -msgstr "" - -#: manti_by/templates/base.html:128 manti_by/templates/base.html:159 -#: manti_by/templates/static/resume.html:5 -#: manti_by/templates/static/resume.html:6 -#: manti_by/templates/static/resume.html:13 -msgid "Resume" -msgstr "" - -#: manti_by/templates/base.html:129 manti_by/templates/base.html:160 -#: manti_by/templates/static/copyrights.html:5 -#: manti_by/templates/static/copyrights.html:6 -#: manti_by/templates/static/copyrights.html:11 -msgid "Copyrights" -msgstr "" - -#: manti_by/templates/base.html:130 -msgid "Search" -msgstr "" - -#: manti_by/templates/base.html:132 -msgid "Logout" -msgstr "" - -#: manti_by/templates/blog/list-item.html:26 -#: manti_by/templates/blog/post.html:49 manti_by/templates/blog/simple.html:29 -#: manti_by/templates/emails/email.html:65 -msgid "Created" -msgstr "" - -#: manti_by/templates/blog/list-item.html:30 -#: manti_by/templates/blog/post.html:61 -msgid "Length" -msgstr "" - -#: manti_by/templates/blog/list-item.html:53 -#: manti_by/templates/blog/post.html:88 -msgid "Tracklist" -msgstr "" - -#: manti_by/templates/blog/list-item.html:54 -#: manti_by/templates/blog/post.html:89 -msgid "Download" -msgstr "" - -#: manti_by/templates/blog/list-item.html:60 -#: manti_by/templates/blog/post.html:97 -msgid "Hide Tracklist" -msgstr "" - -#: manti_by/templates/blog/list.html:33 -msgid "Nothing to show" -msgstr "" - -#: manti_by/templates/blog/post.html:53 -msgid "Catalog No" -msgstr "" - -#: manti_by/templates/blog/post.html:57 -msgid "Quality" -msgstr "" - -#: manti_by/templates/blog/post.html:102 -msgid "Related posts" -msgstr "" - -#: manti_by/templates/common/sidebar.html:5 -msgid "Popular tags" -msgstr "" - -#: manti_by/templates/common/sidebar.html:15 manti_by/templates/index.html:72 -msgid "Latest posts" -msgstr "" - -#: manti_by/templates/emails/email.html:52 -msgid "From" -msgstr "" - -#: manti_by/templates/emails/email.html:59 -msgid "Message" -msgstr "" - -#: manti_by/templates/emails/email.html:63 -msgid "View this message in" -msgstr "" - -#: manti_by/templates/emails/email.html:64 -msgid "browser" -msgstr "" - -#: manti_by/templates/gallery/gallery.html:26 manti_by/templates/index.html:64 -msgid "Image #" -msgstr "" - -#: manti_by/templates/index.html:5 manti_by/templates/index.html:6 -msgid "Homepage" -msgstr "" - -#: manti_by/templates/index.html:11 -msgid "Featured" -msgstr "" - -#: manti_by/templates/index.html:34 -msgid "Latest Images" -msgstr "" - -#: manti_by/templates/index.html:43 manti_by/templates/index.html:52 -#: manti_by/templates/index.html:53 -msgid "Popular image from gallery" -msgstr "" - -#: manti_by/templates/profiles/login.html:5 -#: manti_by/templates/profiles/login.html:6 -msgid "Login Page" -msgstr "" - -#: manti_by/templates/profiles/login.html:12 -msgid "Please login or register" -msgstr "" - -#: manti_by/templates/profiles/login.html:16 -msgid "Your profile will be created automatically, if necessary" -msgstr "" - -#: manti_by/templates/profiles/login.html:20 -#: manti_by/templates/profiles/profile.html:30 -msgid "Email" -msgstr "" - -#: manti_by/templates/profiles/login.html:25 -msgid "Password" -msgstr "" - -#: manti_by/templates/profiles/login.html:31 -msgid "Let Me In" -msgstr "" - -#: manti_by/templates/profiles/profile.html:5 -#: manti_by/templates/profiles/profile.html:6 -#: manti_by/templates/profiles/profile.html:12 -msgid "Your profile" -msgstr "" - -#: manti_by/templates/profiles/profile.html:17 -msgid "Avatar" -msgstr "" - -#: manti_by/templates/profiles/profile.html:19 -msgid "To update your profile image, please upload new one" -msgstr "" - -#: manti_by/templates/profiles/profile.html:25 -msgid "Username" -msgstr "" - -#: manti_by/templates/profiles/profile.html:41 -msgid "Update" -msgstr "" - -#: manti_by/templates/static/about.html:16 -#: manti_by/templates/static/resume.html:16 -msgid "Alexander Chaika" -msgstr "" - -#: manti_by/templates/static/resume.html:33 -msgid "Code samples" -msgstr "" - -#: manti_by/templates/static/resume.html:39 -msgid "Print this page" -msgstr ""