diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 29c8134..d925e73 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-20 20:58+0000\n" +"POT-Creation-Date: 2020-04-29 19:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,6 +18,247 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: srs/models.py:9 -msgid "srs_application_name" +#: restream/models.py:9 +msgid "restreamconfig_stream_help" +msgstr "" + +#: restream/models.py:10 +msgid "restreamconfig_target_help" +msgstr "" + +#: restream/models.py:11 +msgid "restreamconfig_name_help" +msgstr "" + +#: restream/models.py:12 +msgid "restreamconfig_activate_help" +msgstr "" + +#: restream/models.py:15 +msgid "restreamconfig_verbose_name" +msgstr "" + +#: restream/models.py:16 +msgid "restreamconfig_verbose_name_plural" +msgstr "" + +#: restream/models.py:19 +msgid "restreamconfig_class_name" +msgstr "" + +#: restream/templates/restream/restreamconfig_confirm_delete.html:6 +#: rtmp/templates/rtmp/stream_confirm_delete.html:6 +msgid "confirm_delete_header" +msgstr "" + +#: restream/templates/restream/restreamconfig_confirm_delete.html:12 +#, python-format +msgid "are_you_sure_you_want_to_delete_\"%(restreamconfig_config_name)s\"?" +msgstr "" + +#: restream/templates/restream/restreamconfig_confirm_delete.html:15 +#: rtmp/templates/rtmp/stream_confirm_delete.html:18 +msgid "delete" +msgstr "" + +#: restream/templates/restream/restreamconfig_detail.html:6 +msgid "restreamconfig_configuration_details_header" +msgstr "" + +#: restream/templates/restream/restreamconfig_detail.html:11 +#: restream/templates/restream/restreamconfig_list.html:16 +#: rtmp/templates/rtmp/stream_detail.html:11 +#: rtmp/templates/rtmp/stream_list.html:16 +msgid "name" +msgstr "" + +#: restream/templates/restream/restreamconfig_detail.html:13 +msgid "stream" +msgstr "" + +#: restream/templates/restream/restreamconfig_detail.html:18 +msgid "configured_target_url" +msgstr "" + +#: restream/templates/restream/restreamconfig_form.html:5 +msgid "create_new_restreamconfig_configuration_header" +msgstr "" + +#: restream/templates/restream/restreamconfig_form.html:14 +#: rtmp/templates/rtmp/stream_form.html:14 +#: templates/registration/password_change_form.html:13 +#: templates/registration/password_reset_form.html:13 +msgid "submit" +msgstr "" + +#: restream/templates/restream/restreamconfig_form.html:21 +msgid "create_new_restreamconfig_configuration_text_html" +msgstr "" + +#: restream/templates/restream/restreamconfig_list.html:6 +msgid "restreamconfig_configuration_header" +msgstr "" + +#: restream/templates/restream/restreamconfig_list.html:10 +#: rtmp/templates/rtmp/stream_list.html:10 +msgid "create" +msgstr "" + +#: restream/templates/restream/restreamconfig_list.html:17 +#: rtmp/templates/rtmp/stream_list.html:17 +msgid "actions" +msgstr "" + +#: restream/templates/restream/restreamconfig_list.html:26 +#: rtmp/templates/rtmp/stream_list.html:26 +msgid "details" +msgstr "" + +#: rtmp/models.py:10 +msgid "rtmp_application_name" +msgstr "" + +#: rtmp/models.py:13 +msgid "application_verbose_name" +msgstr "" + +#: rtmp/models.py:14 +msgid "application_verbose_name_plural" +msgstr "" + +#: rtmp/models.py:17 +msgid "aplication_class_name" +msgstr "" + +#: rtmp/models.py:24 +msgid "stream_application_help" +msgstr "" + +#: rtmp/models.py:25 +msgid "stream_stream_help" +msgstr "" + +#: rtmp/models.py:26 +msgid "stream_name_help" +msgstr "" + +#: rtmp/models.py:65 +msgid "stream_class_name" +msgstr "" + +#: rtmp/templates/rtmp/stream_confirm_delete.html:13 +msgid "deleting_stream_configuration_will_also_delete_all_depending_confgurations_warning" +msgstr "" + +#: rtmp/templates/rtmp/stream_confirm_delete.html:15 +#, python-format +msgid "are_you_sure_you_want_to_delete_\"%(stream_config_name)s\"?" +msgstr "" + +#: rtmp/templates/rtmp/stream_confirm_delete.html:25 +msgid "deleting_configurations_list_header" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:6 +msgid "stream_configuration_details_header" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:13 +msgid "application" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:16 +msgid "stream_configuration_do_not_share_warning" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:19 +msgid "how_to_configure_your_encoder_header" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:21 +msgid "set_this_stream_server_in_encoder" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:23 +msgid "set_this_stream_id_in_encoder" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:31 +msgid "you_may_need_to_use_this_full_url_instead" +msgstr "" + +#: rtmp/templates/rtmp/stream_form.html:5 +msgid "create_new_stream_configuration_header" +msgstr "" + +#: rtmp/templates/rtmp/stream_form.html:21 +msgid "create_new_stream_configuration_text_html" +msgstr "" + +#: rtmp/templates/rtmp/stream_list.html:6 +msgid "stream_configuration_header" +msgstr "" + +#: templates/base.html:36 +msgid "navbar_configuration" +msgstr "" + +#: templates/base.html:39 +msgid "navbar_configuration_streaming_header" +msgstr "" + +#: templates/base.html:40 +msgid "navbar_configuration_streams" +msgstr "" + +#: templates/base.html:41 +msgid "navbar_configuration_restreams" +msgstr "" + +#: templates/base.html:43 +msgid "navbar_configuration_account_header" +msgstr "" + +#: templates/base.html:44 +msgid "navbar_configuration_password_change" +msgstr "" + +#: templates/base.html:50 +msgid "navbar_logout" +msgstr "" + +#: templates/base.html:52 +msgid "navbar_login" +msgstr "" + +#: templates/registration/login.html:5 templates/registration/login.html:13 +msgid "login" +msgstr "" + +#: templates/registration/login.html:18 +msgid "forgot_password_q" +msgstr "" + +#: templates/registration/password_change_done.html:5 +msgid "password_change_successful" +msgstr "" + +#: templates/registration/password_change_done.html:6 +msgid "password_change_successful_text" +msgstr "" + +#: templates/registration/password_change_done.html:7 +msgid "take_me_to_safety" +msgstr "" + +#: templates/registration/password_change_form.html:5 +msgid "change_password" +msgstr "" + +#: templates/registration/password_change_form.html:20 +msgid "change_password_text_html" +msgstr "" + +#: templates/registration/password_reset_form.html:20 +msgid "reset_password_text_html" msgstr "" diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 29c8134..d925e73 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-20 20:58+0000\n" +"POT-Creation-Date: 2020-04-29 19:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,6 +18,247 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: srs/models.py:9 -msgid "srs_application_name" +#: restream/models.py:9 +msgid "restreamconfig_stream_help" +msgstr "" + +#: restream/models.py:10 +msgid "restreamconfig_target_help" +msgstr "" + +#: restream/models.py:11 +msgid "restreamconfig_name_help" +msgstr "" + +#: restream/models.py:12 +msgid "restreamconfig_activate_help" +msgstr "" + +#: restream/models.py:15 +msgid "restreamconfig_verbose_name" +msgstr "" + +#: restream/models.py:16 +msgid "restreamconfig_verbose_name_plural" +msgstr "" + +#: restream/models.py:19 +msgid "restreamconfig_class_name" +msgstr "" + +#: restream/templates/restream/restreamconfig_confirm_delete.html:6 +#: rtmp/templates/rtmp/stream_confirm_delete.html:6 +msgid "confirm_delete_header" +msgstr "" + +#: restream/templates/restream/restreamconfig_confirm_delete.html:12 +#, python-format +msgid "are_you_sure_you_want_to_delete_\"%(restreamconfig_config_name)s\"?" +msgstr "" + +#: restream/templates/restream/restreamconfig_confirm_delete.html:15 +#: rtmp/templates/rtmp/stream_confirm_delete.html:18 +msgid "delete" +msgstr "" + +#: restream/templates/restream/restreamconfig_detail.html:6 +msgid "restreamconfig_configuration_details_header" +msgstr "" + +#: restream/templates/restream/restreamconfig_detail.html:11 +#: restream/templates/restream/restreamconfig_list.html:16 +#: rtmp/templates/rtmp/stream_detail.html:11 +#: rtmp/templates/rtmp/stream_list.html:16 +msgid "name" +msgstr "" + +#: restream/templates/restream/restreamconfig_detail.html:13 +msgid "stream" +msgstr "" + +#: restream/templates/restream/restreamconfig_detail.html:18 +msgid "configured_target_url" +msgstr "" + +#: restream/templates/restream/restreamconfig_form.html:5 +msgid "create_new_restreamconfig_configuration_header" +msgstr "" + +#: restream/templates/restream/restreamconfig_form.html:14 +#: rtmp/templates/rtmp/stream_form.html:14 +#: templates/registration/password_change_form.html:13 +#: templates/registration/password_reset_form.html:13 +msgid "submit" +msgstr "" + +#: restream/templates/restream/restreamconfig_form.html:21 +msgid "create_new_restreamconfig_configuration_text_html" +msgstr "" + +#: restream/templates/restream/restreamconfig_list.html:6 +msgid "restreamconfig_configuration_header" +msgstr "" + +#: restream/templates/restream/restreamconfig_list.html:10 +#: rtmp/templates/rtmp/stream_list.html:10 +msgid "create" +msgstr "" + +#: restream/templates/restream/restreamconfig_list.html:17 +#: rtmp/templates/rtmp/stream_list.html:17 +msgid "actions" +msgstr "" + +#: restream/templates/restream/restreamconfig_list.html:26 +#: rtmp/templates/rtmp/stream_list.html:26 +msgid "details" +msgstr "" + +#: rtmp/models.py:10 +msgid "rtmp_application_name" +msgstr "" + +#: rtmp/models.py:13 +msgid "application_verbose_name" +msgstr "" + +#: rtmp/models.py:14 +msgid "application_verbose_name_plural" +msgstr "" + +#: rtmp/models.py:17 +msgid "aplication_class_name" +msgstr "" + +#: rtmp/models.py:24 +msgid "stream_application_help" +msgstr "" + +#: rtmp/models.py:25 +msgid "stream_stream_help" +msgstr "" + +#: rtmp/models.py:26 +msgid "stream_name_help" +msgstr "" + +#: rtmp/models.py:65 +msgid "stream_class_name" +msgstr "" + +#: rtmp/templates/rtmp/stream_confirm_delete.html:13 +msgid "deleting_stream_configuration_will_also_delete_all_depending_confgurations_warning" +msgstr "" + +#: rtmp/templates/rtmp/stream_confirm_delete.html:15 +#, python-format +msgid "are_you_sure_you_want_to_delete_\"%(stream_config_name)s\"?" +msgstr "" + +#: rtmp/templates/rtmp/stream_confirm_delete.html:25 +msgid "deleting_configurations_list_header" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:6 +msgid "stream_configuration_details_header" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:13 +msgid "application" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:16 +msgid "stream_configuration_do_not_share_warning" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:19 +msgid "how_to_configure_your_encoder_header" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:21 +msgid "set_this_stream_server_in_encoder" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:23 +msgid "set_this_stream_id_in_encoder" +msgstr "" + +#: rtmp/templates/rtmp/stream_detail.html:31 +msgid "you_may_need_to_use_this_full_url_instead" +msgstr "" + +#: rtmp/templates/rtmp/stream_form.html:5 +msgid "create_new_stream_configuration_header" +msgstr "" + +#: rtmp/templates/rtmp/stream_form.html:21 +msgid "create_new_stream_configuration_text_html" +msgstr "" + +#: rtmp/templates/rtmp/stream_list.html:6 +msgid "stream_configuration_header" +msgstr "" + +#: templates/base.html:36 +msgid "navbar_configuration" +msgstr "" + +#: templates/base.html:39 +msgid "navbar_configuration_streaming_header" +msgstr "" + +#: templates/base.html:40 +msgid "navbar_configuration_streams" +msgstr "" + +#: templates/base.html:41 +msgid "navbar_configuration_restreams" +msgstr "" + +#: templates/base.html:43 +msgid "navbar_configuration_account_header" +msgstr "" + +#: templates/base.html:44 +msgid "navbar_configuration_password_change" +msgstr "" + +#: templates/base.html:50 +msgid "navbar_logout" +msgstr "" + +#: templates/base.html:52 +msgid "navbar_login" +msgstr "" + +#: templates/registration/login.html:5 templates/registration/login.html:13 +msgid "login" +msgstr "" + +#: templates/registration/login.html:18 +msgid "forgot_password_q" +msgstr "" + +#: templates/registration/password_change_done.html:5 +msgid "password_change_successful" +msgstr "" + +#: templates/registration/password_change_done.html:6 +msgid "password_change_successful_text" +msgstr "" + +#: templates/registration/password_change_done.html:7 +msgid "take_me_to_safety" +msgstr "" + +#: templates/registration/password_change_form.html:5 +msgid "change_password" +msgstr "" + +#: templates/registration/password_change_form.html:20 +msgid "change_password_text_html" +msgstr "" + +#: templates/registration/password_reset_form.html:20 +msgid "reset_password_text_html" msgstr "" diff --git a/portier/urls.py b/portier/urls.py index 5723019..69b3861 100644 --- a/portier/urls.py +++ b/portier/urls.py @@ -21,6 +21,7 @@ urlpatterns = [ path('accounts/', include('django.contrib.auth.urls')), path('admin/', admin.site.urls), path('rtmp/', include('rtmp.urls')), + path('restream/', include('restream.urls')), path('concierge/', include('concierge.urls')), path('', include('portal.urls')), ] diff --git a/restream/models.py b/restream/models.py index 482b165..99473a9 100644 --- a/restream/models.py +++ b/restream/models.py @@ -1,18 +1,25 @@ from django.db import models - -# Create your models here. +from django.urls import reverse +from django.utils.translation import gettext_lazy as _ from rtmp.models import Stream class RestreamConfig(models.Model): - stream = models.ForeignKey(Stream, on_delete=models.CASCADE) - target = models.CharField(max_length=500) - name = models.CharField(max_length=100) - active = models.BooleanField() + stream = models.ForeignKey(Stream, on_delete=models.CASCADE, help_text=_('restreamconfig_stream_help')) + target = models.CharField(max_length=500, help_text=_('restreamconfig_target_help')) + name = models.CharField(max_length=100, help_text=_('restreamconfig_name_help')) + active = models.BooleanField(help_text=_('restreamconfig_activate_help')) + + class Meta: + verbose_name = _('restreamconfig_verbose_name') + verbose_name_plural = _('restreamconfig_verbose_name_plural') def class_name(self): - return self.__class__.__name__ + return _('restreamconfig_class_name') + + def get_absolute_url(self): + return reverse('restream:restreamconfig_detail', kwargs={'pk': self.pk}) def __str__(self): return '{} to {}'.format(self.stream, self.name) diff --git a/restream/templates/restream/restreamconfig_confirm_delete.html b/restream/templates/restream/restreamconfig_confirm_delete.html new file mode 100644 index 0000000..71134d6 --- /dev/null +++ b/restream/templates/restream/restreamconfig_confirm_delete.html @@ -0,0 +1,24 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load bootstrap4 %} +{% load font_awesome %} +{% block 'content' %} +
{% trans "confirm_delete_header" %}
+
+
+
+
+ {% csrf_token %} +

{% blocktrans with restreamconfig_config_name=object.name %}are_you_sure_you_want_to_delete_"{{ restreamconfig_config_name }}"?{% endblocktrans %}

+ {% buttons %} + + {% endbuttons %} + +
+
+
+
+
+{% endblock %} diff --git a/restream/templates/restream/restreamconfig_detail.html b/restream/templates/restream/restreamconfig_detail.html new file mode 100644 index 0000000..3f8e33b --- /dev/null +++ b/restream/templates/restream/restreamconfig_detail.html @@ -0,0 +1,46 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load bootstrap4 %} +{% load font_awesome %} +{% block 'content' %} +
{% trans "restreamconfig_configuration_details_header" %}
+
+
+
+
+
{% trans "name" %}
+
{{ object.name }}
+
{% trans "stream" %}
+
{{ object.stream.name }}
+
+
+
+

{% trans "configured_target_url" %}

+
+ +
+ +
+
+
+
+ +{% endblock %} diff --git a/restream/templates/restream/restreamconfig_form.html b/restream/templates/restream/restreamconfig_form.html new file mode 100644 index 0000000..e488bb9 --- /dev/null +++ b/restream/templates/restream/restreamconfig_form.html @@ -0,0 +1,24 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load bootstrap4 %} +{% block 'content' %} +
{% trans "create_new_restreamconfig_configuration_header" %}
+
+
+
+
+ {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + {% endbuttons %} + +
+
+
+ {% trans "create_new_restreamconfig_configuration_text_html" %} +
+
+{% endblock %} diff --git a/restream/templates/restream/restreamconfig_list.html b/restream/templates/restream/restreamconfig_list.html new file mode 100644 index 0000000..3c7fa4a --- /dev/null +++ b/restream/templates/restream/restreamconfig_list.html @@ -0,0 +1,34 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load bootstrap4 %} +{% load font_awesome %} +{% block 'content' %} +
{% trans "restreamconfig_configuration_header" %}
+
+ + + + + + + + + + {% for object in object_list %} + + + + + {% endfor %} + +
{% trans "name" %}{% trans "actions" %}
{{ object.name }} + +
+{% endblock %} diff --git a/restream/urls.py b/restream/urls.py new file mode 100644 index 0000000..f815887 --- /dev/null +++ b/restream/urls.py @@ -0,0 +1,11 @@ +from django.urls import path +from . import views + +app_name = 'restream' + +urlpatterns = [ + path('restreamconfig/', views.RestreamConfigList.as_view(), name='restreamconfig_list'), + path('restreamconfig//', views.RestreamConfigDetail.as_view(), name='restreamconfig_detail'), + path('restreamconfig//delete', views.RestreamConfigDelete.as_view(), name='restreamconfig_delete'), + path('restreamconfig/create', views.RestreamConfigCreate.as_view(), name='restreamconfig_create'), +] diff --git a/restream/views.py b/restream/views.py index 6100593..4e7635b 100644 --- a/restream/views.py +++ b/restream/views.py @@ -1,3 +1,28 @@ -from django.shortcuts import render # noqa +from django.urls import reverse_lazy +from django.contrib.auth.decorators import login_required +from django.utils.decorators import method_decorator +from django.views.generic import ListView, DetailView, CreateView, DeleteView -# Create your views here. +from . import models + + +@method_decorator(login_required, name='dispatch') +class RestreamConfigList(ListView): + model = models.RestreamConfig + + +@method_decorator(login_required, name='dispatch') +class RestreamConfigDetail(DetailView): + model = models.RestreamConfig + + +@method_decorator(login_required, name='dispatch') +class RestreamConfigCreate(CreateView): + model = models.RestreamConfig + fields = ["name", "stream", "target", "active"] + + +@method_decorator(login_required, name='dispatch') +class RestreamConfigDelete(DeleteView): + model = models.RestreamConfig + success_url = reverse_lazy('restream:restreamconfig_list') diff --git a/rtmp/models.py b/rtmp/models.py index 597daa2..7db5b5b 100644 --- a/rtmp/models.py +++ b/rtmp/models.py @@ -9,17 +9,21 @@ from . import signals class Application(models.Model): name = models.CharField(max_length=100, unique=True, help_text=_("rtmp_application_name")) + class Meta: + verbose_name = _('application_verbose_name') + verbose_name_plural = _('application_verbose_name_plural') + def class_name(self): - return self.__class__.__name__ + return _('aplication_class_name') def __str__(self): return self.name class Stream(models.Model): - application = models.ForeignKey(Application, on_delete=models.CASCADE) - stream = models.UUIDField(unique=True, default=uuid.uuid4) - name = models.CharField(max_length=100) + application = models.ForeignKey(Application, on_delete=models.CASCADE, help_text=_('stream_application_help')) + stream = models.UUIDField(unique=True, default=uuid.uuid4, help_text=_('stream_stream_help')) + name = models.CharField(max_length=100, help_text=_('stream_name_help')) # the same stream uuid can be published multiple times to different origin # servers. this is a valid scheme to achieve a failover on the origin layer. @@ -58,7 +62,7 @@ class Stream(models.Model): return reverse('rtmp:stream_detail', kwargs={'pk': self.pk}) def class_name(self): - return self.__class__.__name__ + return _('stream_class_name') def __str__(self): return self.name diff --git a/rtmp/templates/rtmp/stream_confirm_delete.html b/rtmp/templates/rtmp/stream_confirm_delete.html index 4bf9438..37c7921 100644 --- a/rtmp/templates/rtmp/stream_confirm_delete.html +++ b/rtmp/templates/rtmp/stream_confirm_delete.html @@ -1,27 +1,28 @@ {% extends 'base.html' %} +{% load i18n %} {% load bootstrap4 %} {% load font_awesome %} {% block 'content' %} -
Create new stream configuration
-
+
{% trans "confirm_delete_header" %}
+
{% csrf_token %} -

Are you sure you want to delete the Stream configuration "{{ object }}"?

+

{% blocktrans with stream_config_name=object.name %}are_you_sure_you_want_to_delete_"{{ stream_config_name }}"?{% endblocktrans %}

{% buttons %} {% endbuttons %}
-
Deleting configurations
+
{% trans "deleting_configurations_list_header" %}
    {% for object in to_delete %} {% if object.name %} diff --git a/rtmp/templates/rtmp/stream_detail.html b/rtmp/templates/rtmp/stream_detail.html index b4e9613..d3c0ad4 100644 --- a/rtmp/templates/rtmp/stream_detail.html +++ b/rtmp/templates/rtmp/stream_detail.html @@ -1,32 +1,34 @@ {% extends 'base.html' %} +{% load i18n %} {% load bootstrap4 %} {% load font_awesome %} {% block 'content' %} -
    Show stream configuration details
    -
    +
    {% trans "stream_configuration_details_header" %}
    +
    -
    Name
    +
    {% trans "name" %}
    {{ object.name }}
    -
    Application
    +
    {% trans "application" %}
    {{ object.application }}
    -

    Do not share the stream ID. It serves as a secret key, and anyone that knows this key could send content to your stream.

    +

    {% trans "stream_configuration_do_not_share_warning" %}

    -
    How to configure your Encoder
    +
    {% trans "how_to_configure_your_encoder_header" %}

    -

    Set the following stream server in your encoder application:

    +

    {% trans "set_this_stream_server_in_encoder" %}

    rtmp://TODO TODO SERVER BASE URL/{{ object.application }}/ -

    Set the following stream ID in your encoder application:

    +

    {% trans "set_this_stream_id_in_encoder" %}

    -

    You may need to use the full URL instead:

    +
    +

    {% trans "you_may_need_to_use_this_full_url_instead" %}

    diff --git a/rtmp/templates/rtmp/stream_form.html b/rtmp/templates/rtmp/stream_form.html index 8bc3e7c..e1c0469 100644 --- a/rtmp/templates/rtmp/stream_form.html +++ b/rtmp/templates/rtmp/stream_form.html @@ -1,8 +1,9 @@ {% extends 'base.html' %} +{% load i18n %} {% load bootstrap4 %} {% block 'content' %} -
    Create new stream configuration
    -
    +
    {% trans "create_new_stream_configuration_header" %}
    +
    @@ -10,14 +11,14 @@ {% bootstrap_form form %} {% buttons %} {% endbuttons %}
    -

    Enter a descriptive name, and select one of the applications.

    + {% trans "create_new_stream_configuration_text_html" %}
    {% endblock %} diff --git a/rtmp/templates/rtmp/stream_list.html b/rtmp/templates/rtmp/stream_list.html index e66ae94..445c74f 100644 --- a/rtmp/templates/rtmp/stream_list.html +++ b/rtmp/templates/rtmp/stream_list.html @@ -1,38 +1,34 @@ {% extends 'base.html' %} +{% load i18n %} {% load bootstrap4 %} {% load font_awesome %} {% block 'content' %} -
    Stream configurations
    -
    -
diff --git a/templates/registration/login.html b/templates/registration/login.html index c894a95..d41cbff 100644 --- a/templates/registration/login.html +++ b/templates/registration/login.html @@ -1,7 +1,8 @@ {% extends 'base.html' %} +{% load i18n %} {% load bootstrap4 %} {% block 'content' %} -

Login

+
{% trans "login" %}
@@ -9,12 +10,12 @@ {% bootstrap_form form %} {% buttons %} {% endbuttons %}
-

Lost password?

+

{% trans "forgot_password_q" %}

diff --git a/templates/registration/password_change_done.html b/templates/registration/password_change_done.html index d7e6991..ad0d32b 100644 --- a/templates/registration/password_change_done.html +++ b/templates/registration/password_change_done.html @@ -1,7 +1,8 @@ {% extends 'base.html' %} +{% load i18n %} {% load bootstrap4 %} {% block 'content' %} -

Password Change

-

It frickin' worked! OMG.

-Back to safety +
{% trans "password_change_successful" %}
+

{% trans "password_change_successful_text" %}

+{% trans "take_me_to_safety" %} {% endblock %} diff --git a/templates/registration/password_change_form.html b/templates/registration/password_change_form.html index a480820..65f2d11 100644 --- a/templates/registration/password_change_form.html +++ b/templates/registration/password_change_form.html @@ -1,7 +1,8 @@ {% extends 'base.html' %} +{% load i18n %} {% load bootstrap4 %} {% block 'content' %} -

Password Change

+
{% trans "change_password" %}
@@ -9,14 +10,14 @@ {% bootstrap_form form %} {% buttons %} {% endbuttons %}
-

Please enter a name for your new stream configuration. This is only used for identification purposes.

+ {% trans "change_password_text_html" %}
{% endblock %} diff --git a/templates/registration/password_reset_form.html b/templates/registration/password_reset_form.html index dab20db..6e82bf6 100644 --- a/templates/registration/password_reset_form.html +++ b/templates/registration/password_reset_form.html @@ -1,7 +1,8 @@ {% extends 'base.html' %} +{% load i18n %} {% load bootstrap4 %} {% block 'content' %} -

Password Reset

+
{% trans "reset_password"}
@@ -9,14 +10,14 @@ {% bootstrap_form form %} {% buttons %} {% endbuttons %}
-

Forgotten your password? Enter your email address, and we’ll email instructions for setting a new one.

+ {% trans "reset_password_text_html" %}
{% endblock %}