├── pretalx_downstream ├── management │ ├── __init__.py │ └── commands │ │ ├── __init__.py │ │ └── downstream_pull.py ├── migrations │ ├── __init__.py │ └── 0001_initial.py ├── static │ └── pretalx_downstream │ │ └── .gitkeep ├── __init__.py ├── templates │ └── pretalx_downstream │ │ ├── .gitkeep │ │ └── settings.html ├── urls.py ├── apps.py ├── models.py ├── forms.py ├── views.py ├── signals.py ├── locale │ ├── de_DE │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── fr_FR │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── ja_JP │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── pt_PT │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── test │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── de_Formal │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── en_Mozilla │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── id │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── ko │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── ca │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── el │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── es │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── it │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── nl │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── pt_BR │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── sv │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── zh_Hans │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── zh_Hant │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── es_MX │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── sl │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── ar │ │ └── LC_MESSAGES │ │ │ └── django.po │ ├── cs │ │ └── LC_MESSAGES │ │ │ └── django.po │ └── ru │ │ └── LC_MESSAGES │ │ └── django.po └── tasks.py ├── Makefile ├── MANIFEST.in ├── setup.cfg ├── LICENSE ├── .gitignore ├── pyproject.toml ├── README.rst └── .github └── workflows └── style.yml /pretalx_downstream/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pretalx_downstream/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pretalx_downstream/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pretalx_downstream/static/pretalx_downstream/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pretalx_downstream/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "1.3.1" 2 | -------------------------------------------------------------------------------- /pretalx_downstream/templates/pretalx_downstream/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all: localecompile 2 | 3 | localecompile: 4 | django-admin compilemessages 5 | 6 | localegen: 7 | django-admin makemessages -l de_DE -i build -i dist -i "*egg*" 8 | 9 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include pretalx_downstream/static * 2 | recursive-include pretalx_downstream/templates * 3 | exclude pretalx_downstream/locale/django.pot 4 | recursive-include pretalx_downstream/locale * 5 | recursive-include pretalx_downstream *.py 6 | include Makefile 7 | -------------------------------------------------------------------------------- /pretalx_downstream/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import re_path 2 | from pretalx.event.models.event import SLUG_REGEX 3 | 4 | from .views import UpstreamSettings 5 | 6 | urlpatterns = [ 7 | re_path( 8 | rf"^orga/event/(?P{SLUG_REGEX})/settings/p/upstream/$", 9 | UpstreamSettings.as_view(), 10 | name="settings", 11 | ) 12 | ] 13 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [isort] 2 | multi_line_output = 3 3 | include_trailing_comma=True 4 | force_grid_wrap=0 5 | use_parentheses=True 6 | line_length=88 7 | skip = migrations,setup.py 8 | default_section = THIRDPARTY 9 | known_third_party = pretalx 10 | 11 | [tool:pytest] 12 | DJANGO_SETTINGS_MODULE=pretalx.common.settings.test_settings 13 | 14 | [check-manifest] 15 | ignore = 16 | LICENSE 17 | README.rst 18 | tests 19 | tests/* 20 | 21 | [flake8] 22 | ignore = E203, E231, E266, E501, W503, W605 23 | max-line-length = 160 24 | exclude = migrations,static,_static,build,*settings.py,.tox/*,local 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2018 Tobias Kunze 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /pretalx_downstream/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | from django.utils.translation import gettext_lazy 3 | 4 | from pretalx_downstream import __version__ 5 | 6 | 7 | class PluginApp(AppConfig): 8 | name = "pretalx_downstream" 9 | verbose_name = "eventyay-talk as a downstream service" 10 | 11 | class PretalxPluginMeta: 12 | name = gettext_lazy("pretalx as a downstream service") 13 | author = "Tobias Kunze" 14 | description = gettext_lazy( 15 | "This plugin allows you to use eventyay-talk passively, by letting it import another event's schedule." 16 | ) 17 | visible = True 18 | version = __version__ 19 | category = "FEATURE" 20 | 21 | def ready(self): 22 | from . import signals # NOQA 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | .ropeproject/ 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *,cover 47 | .hypothesis/ 48 | 49 | # Translations 50 | *.mo 51 | *.pot 52 | 53 | # Django stuff: 54 | *.log 55 | 56 | # Sphinx documentation 57 | docs/_build/ 58 | 59 | # PyBuilder 60 | target/ 61 | 62 | #Ipython Notebook 63 | .ipynb_checkpoints 64 | -------------------------------------------------------------------------------- /pretalx_downstream/models.py: -------------------------------------------------------------------------------- 1 | import hashlib 2 | 3 | from django.db import models 4 | from django_scopes import ScopedManager 5 | 6 | 7 | class UpstreamResult(models.Model): 8 | event = models.ForeignKey( 9 | to="event.Event", on_delete=models.CASCADE, related_name="upstream_results" 10 | ) 11 | schedule = models.ForeignKey( 12 | to="schedule.Schedule", 13 | null=True, 14 | on_delete=models.CASCADE, 15 | related_name="upstream_results", 16 | ) 17 | content = models.TextField(null=True, blank=True) 18 | changes = models.TextField( 19 | null=True, blank=True 20 | ) # contains only content changes, all regular changes will be showin in the related schedule update (if any) 21 | timestamp = models.DateTimeField(auto_now_add=True) 22 | 23 | objects = ScopedManager(event="event") 24 | 25 | @property 26 | def checksum(self): 27 | if not self.content: 28 | return None 29 | m = hashlib.sha256() 30 | m.update(self.content.encode("utf-8")) 31 | return m.hexdigest() 32 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "pretalx-downstream" 3 | dynamic = ["version"] 4 | description = "Use pretalx passively by importing another event's schedule." 5 | readme = "README.rst" 6 | license = {text = "Apache Software License"} 7 | keywords = ["pretalx"] 8 | authors = [ 9 | {name = "Tobias Kunze", email = "r@rixx.de"}, 10 | ] 11 | maintainers = [ 12 | {name = "Tobias Kunze", email = "r@rixx.de"}, 13 | ] 14 | 15 | dependencies = [] 16 | 17 | [project.urls] 18 | homepage = "https://github.com/pretalx/pretalx-downstream" 19 | repository = "https://github.com/pretalx/pretalx-downstream.git" 20 | 21 | [project.entry-points."pretalx.plugin"] 22 | pretalx_downstream = "pretalx_downstream:PretalxPluginMeta" 23 | 24 | [build-system] 25 | build-backend = "setuptools.build_meta" 26 | requires = ["setuptools", "wheel"] 27 | 28 | [tool.setuptools] 29 | include-package-data = true 30 | 31 | [tool.setuptools.dynamic] 32 | version = {attr = "pretalx_downstream.__version__"} 33 | 34 | [tool.setuptools.packages.find] 35 | include = ["pretalx*"] 36 | 37 | [tool.check-manifest] 38 | ignore = [ 39 | ".*", 40 | ] 41 | -------------------------------------------------------------------------------- /pretalx_downstream/management/commands/downstream_pull.py: -------------------------------------------------------------------------------- 1 | from django.core.management.base import BaseCommand 2 | from django.db import transaction 3 | from django_scopes import scope 4 | from pretalx.event.models import Event 5 | 6 | from pretalx_downstream.tasks import task_refresh_upstream_schedule 7 | 8 | 9 | class Command(BaseCommand): 10 | help = "Pull an event's upstream data" 11 | 12 | def add_arguments(self, parser): 13 | parser.add_argument("--event", type=str, help="Slug of the event to be used") 14 | parser.add_argument("--sync", action="store_true", help="Run synchronously") 15 | 16 | @transaction.atomic 17 | def handle(self, *args, **options): 18 | event_slug = options.get("event") 19 | sync = options.get("sync") 20 | 21 | event = Event.objects.get(slug=event_slug) 22 | with scope(event=event): 23 | if sync: 24 | task_refresh_upstream_schedule(event_slug) 25 | else: 26 | task_refresh_upstream_schedule.apply_async( 27 | args=(event_slug,), ignore_result=True 28 | ) 29 | -------------------------------------------------------------------------------- /pretalx_downstream/templates/pretalx_downstream/settings.html: -------------------------------------------------------------------------------- 1 | {% extends "orga/base.html" %} 2 | {% load i18n %} 3 | {% load tz %} 4 | {% block content %} 5 |

{% trans "Set up upstream sync" %}

6 |
7 | {% csrf_token %} 8 | {{ form }} 9 | {% if last_pulled %}

Last automatic sync: {{ last_pulled|date:"SHORT_DATETIME_FORMAT" }}

{% endif %} 10 |
11 | 12 | 13 | 20 | 27 | 28 |
29 |
30 | {% endblock %} 31 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | pretalx as a downstream service 2 | =============================== 3 | 4 | This is a plugin for `pretalx`_, allowing you to import external events that provide 5 | their schedule in the [frab XML](https://github.com/frab/schedule.xml) format. 6 | 7 | It comes with several settings regulating pull interval and policies, as well as 8 | a manage command at ``downstream_pull --event my_event [--sync]``. 9 | 10 | Development setup 11 | ----------------- 12 | 13 | 1. Make sure that you have a working `pretalx development setup`_. 14 | 15 | 2. Clone this repository, eg to ``local/pretalx-downstream``. 16 | 17 | 3. Activate the virtual environment you use for pretalx development. 18 | 19 | 4. Execute ``python setup.py develop`` within this directory to register this application with pretalx's plugin registry. 20 | 21 | 5. Execute ``make`` within this directory to compile translations. 22 | 23 | 6. Restart your local pretalx server. You can now use the plugin from this repository for your events by enabling it in 24 | the 'plugins' tab in the settings. 25 | 26 | 27 | License 28 | ------- 29 | 30 | Copyright 2018 Tobias Kunze 31 | 32 | Released under the terms of the Apache License 2.0 33 | 34 | 35 | .. _pretalx: https://github.com/pretalx/pretalx 36 | .. _pretalx development setup: https://docs.pretalx.org/en/latest/developer/setup.html 37 | -------------------------------------------------------------------------------- /pretalx_downstream/forms.py: -------------------------------------------------------------------------------- 1 | from django.forms import CharField, ChoiceField, IntegerField, RadioSelect, URLField 2 | from django.utils.translation import gettext_lazy as _ 3 | from hierarkey.forms import HierarkeyForm 4 | 5 | 6 | class UpstreamSettingsForm(HierarkeyForm): 7 | downstream_upstream_url = URLField( 8 | label=_("Upstream URL"), 9 | help_text=_("URL of your schedule.xml"), 10 | required=True, 11 | ) 12 | downstream_interval = IntegerField( 13 | min_value=5, label=_("Interval"), help_text=_("Checking interval in minutes.") 14 | ) 15 | downstream_checking_time = ChoiceField( 16 | choices=( 17 | ("event", _("Check only during event time")), 18 | ("always", _("From now until one day after the event ends")), 19 | ), 20 | label=_("Schedule check time"), 21 | widget=RadioSelect, 22 | ) 23 | downstream_discard_after = CharField( 24 | label=_("Discard version name after"), 25 | help_text=_( 26 | "Everything after the first occurence of the entered string " 27 | "in schedule version will be discarded. Leave empty if you " 28 | "want to keep the full schedule version" 29 | ), 30 | required=False, 31 | ) 32 | 33 | def __init__(self, *args, **kwargs): 34 | super().__init__(*args, **kwargs) 35 | self.event = kwargs.get("obj") 36 | -------------------------------------------------------------------------------- /pretalx_downstream/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.1.2 on 2018-12-07 00:32 2 | 3 | import django.db.models.deletion 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | initial = True 9 | 10 | dependencies = [ 11 | ("schedule", "0011_auto_20180205_1127"), 12 | ("event", "0017_auto_20180922_0511"), 13 | ] 14 | 15 | operations = [ 16 | migrations.CreateModel( 17 | name="UpstreamResult", 18 | fields=[ 19 | ( 20 | "id", 21 | models.AutoField( 22 | auto_created=True, 23 | primary_key=True, 24 | serialize=False, 25 | verbose_name="ID", 26 | ), 27 | ), 28 | ("content", models.TextField(blank=True, null=True)), 29 | ("changes", models.TextField(blank=True, null=True)), 30 | ("timestamp", models.DateTimeField(auto_now_add=True)), 31 | ( 32 | "event", 33 | models.ForeignKey( 34 | on_delete=django.db.models.deletion.CASCADE, 35 | related_name="upstream_results", 36 | to="event.Event", 37 | ), 38 | ), 39 | ( 40 | "schedule", 41 | models.ForeignKey( 42 | null=True, 43 | on_delete=django.db.models.deletion.CASCADE, 44 | related_name="upstream_results", 45 | to="schedule.Schedule", 46 | ), 47 | ), 48 | ], 49 | ), 50 | ] 51 | -------------------------------------------------------------------------------- /pretalx_downstream/views.py: -------------------------------------------------------------------------------- 1 | import datetime as dt 2 | 3 | from django.contrib import messages 4 | from django.utils.translation import gettext_lazy as _ 5 | from django.views.generic import FormView 6 | from pretalx.common.views.mixins import PermissionRequired 7 | 8 | from .forms import UpstreamSettingsForm 9 | from .tasks import task_refresh_upstream_schedule 10 | 11 | 12 | class UpstreamSettings(PermissionRequired, FormView): 13 | form_class = UpstreamSettingsForm 14 | permission_required = "orga.change_settings" 15 | template_name = "pretalx_downstream/settings.html" 16 | 17 | def get_success_url(self): 18 | return self.request.path 19 | 20 | def form_valid(self, form): 21 | form.save() 22 | return super().form_valid(form) 23 | 24 | def post(self, request, *args, **kwargs): 25 | response = super().post(request, *args, **kwargs) 26 | action = request.POST.get("action", "save") 27 | if action == "refresh": 28 | try: 29 | task_refresh_upstream_schedule.apply_async( 30 | args=(request.event.slug,), ignore_result=True 31 | ) 32 | messages.success(request, _("Refreshing schedule …")) 33 | except Exception as e: 34 | messages.error( 35 | request, _("Failure when processing remote schedule: ") + str(e) 36 | ) 37 | return response 38 | 39 | def get_object(self): 40 | return self.request.event 41 | 42 | def get_form_kwargs(self): 43 | kwargs = super().get_form_kwargs() 44 | return { 45 | "obj": self.request.event, 46 | "attribute_name": "settings", 47 | **kwargs, 48 | } 49 | 50 | def get_context_data(self, **kwargs): 51 | kwargs = super().get_context_data(**kwargs) 52 | last_pulled = self.request.event.settings.upstream_last_sync 53 | if last_pulled: 54 | last_pulled = dt.datetime.strptime(last_pulled, "%Y-%m-%dT%H:%M:%S.%f%z") 55 | return { 56 | "last_pulled": last_pulled, 57 | **kwargs, 58 | } 59 | -------------------------------------------------------------------------------- /pretalx_downstream/signals.py: -------------------------------------------------------------------------------- 1 | import datetime as dt 2 | 3 | from django.dispatch import receiver 4 | from django.urls import reverse 5 | from django.utils.timezone import now 6 | from django.utils.translation import gettext_lazy as _ 7 | from django_scopes import scope 8 | from pretalx.common.models.settings import hierarkey 9 | from pretalx.common.signals import periodic_task 10 | from pretalx.event.models import Event 11 | from pretalx.orga.signals import nav_event_settings 12 | 13 | from .tasks import task_refresh_upstream_schedule 14 | 15 | hierarkey.add_default("downstream_interval", 15) 16 | hierarkey.add_default("downstream_checking_time", "event") 17 | 18 | 19 | @receiver(periodic_task) 20 | def refresh_upstream_schedule(sender, request=None, **kwargs): 21 | _now = now() 22 | for event in Event.objects.all(): 23 | with scope(event=event): 24 | if not event.settings.downstream_upstream_url: 25 | continue 26 | 27 | if not _now < (event.datetime_to + dt.timedelta(days=1)): 28 | continue 29 | 30 | if not ( 31 | event.settings.downstream_checking_time == "always" 32 | or event.datetime_from < _now 33 | ): 34 | continue 35 | 36 | try: 37 | interval = int(event.settings.downstream_interval) 38 | except TypeError: 39 | interval = 5 40 | 41 | interval = dt.timedelta(minutes=interval) 42 | last_pulled = event.settings.upstream_last_sync 43 | 44 | if ( 45 | not last_pulled 46 | or _now - dt.datetime.strptime(last_pulled, "%Y-%m-%dT%H:%M:%S.%f%z") 47 | > interval 48 | ): 49 | task_refresh_upstream_schedule.apply_async( 50 | kwargs={"event_slug": event.slug}, 51 | ignore_result=True, 52 | ) 53 | 54 | if event.upstream_results.count() > 3: 55 | latest_three = list(event.upstream_results.order_by("-timestamp")[:3]) 56 | event.upstream_results.filter( 57 | timestamp__lt=latest_three[-1].timestamp 58 | ).delete() 59 | 60 | 61 | @receiver(nav_event_settings) 62 | def register_upstream_settings(sender, request, **kwargs): 63 | if not request.user.has_perm("orga.change_settings", request.event): 64 | return [] 65 | return [ 66 | { 67 | "label": _("Upstream"), 68 | "url": reverse( 69 | "plugins:pretalx_downstream:settings", 70 | kwargs={"event": request.event.slug}, 71 | ), 72 | "active": request.resolver_match.url_name 73 | == "plugins:pretalx_downstream:settings", 74 | } 75 | ] 76 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/de_DE/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:41+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 21 | msgid "pretalx as a downstream service" 22 | msgstr "" 23 | 24 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 25 | msgid "" 26 | "This plugin allows you to use pretalx passively, by letting it import " 27 | "another event's schedule." 28 | msgstr "" 29 | 30 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 31 | msgid "Upstream URL" 32 | msgstr "" 33 | 34 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 35 | msgid "URL of your schedule.xml" 36 | msgstr "" 37 | 38 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 39 | msgid "Interval" 40 | msgstr "" 41 | 42 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 43 | msgid "Checking interval in minutes." 44 | msgstr "" 45 | 46 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 47 | msgid "Check only during event time" 48 | msgstr "" 49 | 50 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 51 | msgid "From now until one day after the event ends" 52 | msgstr "" 53 | 54 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 55 | msgid "Schedule check time" 56 | msgstr "" 57 | 58 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 59 | msgid "Discard version name after" 60 | msgstr "" 61 | 62 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 63 | msgid "" 64 | "Everything after the first occurence of the entered string in schedule " 65 | "version will be discarded. Leave empty if you want to keep the full schedule " 66 | "version" 67 | msgstr "" 68 | 69 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 70 | msgid "Upstream" 71 | msgstr "" 72 | 73 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 74 | #, python-brace-format 75 | msgid "" 76 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 77 | "URL was configured." 78 | msgstr "" 79 | 80 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 81 | #, python-brace-format 82 | msgid "" 83 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 84 | "response." 85 | msgstr "" 86 | 87 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 88 | msgid "Set up upstream sync" 89 | msgstr "" 90 | 91 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 92 | msgid "Save" 93 | msgstr "" 94 | 95 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 96 | msgid "Check for new talks" 97 | msgstr "" 98 | 99 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 100 | msgid "Refreshing schedule …" 101 | msgstr "" 102 | 103 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 104 | msgid "Failure when processing remote schedule: " 105 | msgstr "" 106 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/fr_FR/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 21 | msgid "pretalx as a downstream service" 22 | msgstr "" 23 | 24 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 25 | msgid "" 26 | "This plugin allows you to use pretalx passively, by letting it import " 27 | "another event's schedule." 28 | msgstr "" 29 | 30 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 31 | msgid "Upstream URL" 32 | msgstr "" 33 | 34 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 35 | msgid "URL of your schedule.xml" 36 | msgstr "" 37 | 38 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 39 | msgid "Interval" 40 | msgstr "" 41 | 42 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 43 | msgid "Checking interval in minutes." 44 | msgstr "" 45 | 46 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 47 | msgid "Check only during event time" 48 | msgstr "" 49 | 50 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 51 | msgid "From now until one day after the event ends" 52 | msgstr "" 53 | 54 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 55 | msgid "Schedule check time" 56 | msgstr "" 57 | 58 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 59 | msgid "Discard version name after" 60 | msgstr "" 61 | 62 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 63 | msgid "" 64 | "Everything after the first occurence of the entered string in schedule " 65 | "version will be discarded. Leave empty if you want to keep the full schedule " 66 | "version" 67 | msgstr "" 68 | 69 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 70 | msgid "Upstream" 71 | msgstr "" 72 | 73 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 74 | #, python-brace-format 75 | msgid "" 76 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 77 | "URL was configured." 78 | msgstr "" 79 | 80 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 81 | #, python-brace-format 82 | msgid "" 83 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 84 | "response." 85 | msgstr "" 86 | 87 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 88 | msgid "Set up upstream sync" 89 | msgstr "" 90 | 91 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 92 | msgid "Save" 93 | msgstr "" 94 | 95 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 96 | msgid "Check for new talks" 97 | msgstr "" 98 | 99 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 100 | msgid "Refreshing schedule …" 101 | msgstr "" 102 | 103 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 104 | msgid "Failure when processing remote schedule: " 105 | msgstr "" 106 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/ja_JP/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 21 | msgid "pretalx as a downstream service" 22 | msgstr "" 23 | 24 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 25 | msgid "" 26 | "This plugin allows you to use pretalx passively, by letting it import " 27 | "another event's schedule." 28 | msgstr "" 29 | 30 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 31 | msgid "Upstream URL" 32 | msgstr "" 33 | 34 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 35 | msgid "URL of your schedule.xml" 36 | msgstr "" 37 | 38 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 39 | msgid "Interval" 40 | msgstr "" 41 | 42 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 43 | msgid "Checking interval in minutes." 44 | msgstr "" 45 | 46 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 47 | msgid "Check only during event time" 48 | msgstr "" 49 | 50 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 51 | msgid "From now until one day after the event ends" 52 | msgstr "" 53 | 54 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 55 | msgid "Schedule check time" 56 | msgstr "" 57 | 58 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 59 | msgid "Discard version name after" 60 | msgstr "" 61 | 62 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 63 | msgid "" 64 | "Everything after the first occurence of the entered string in schedule " 65 | "version will be discarded. Leave empty if you want to keep the full schedule " 66 | "version" 67 | msgstr "" 68 | 69 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 70 | msgid "Upstream" 71 | msgstr "" 72 | 73 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 74 | #, python-brace-format 75 | msgid "" 76 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 77 | "URL was configured." 78 | msgstr "" 79 | 80 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 81 | #, python-brace-format 82 | msgid "" 83 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 84 | "response." 85 | msgstr "" 86 | 87 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 88 | msgid "Set up upstream sync" 89 | msgstr "" 90 | 91 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 92 | msgid "Save" 93 | msgstr "" 94 | 95 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 96 | msgid "Check for new talks" 97 | msgstr "" 98 | 99 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 100 | msgid "Refreshing schedule …" 101 | msgstr "" 102 | 103 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 104 | msgid "Failure when processing remote schedule: " 105 | msgstr "" 106 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/pt_PT/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 21 | msgid "pretalx as a downstream service" 22 | msgstr "" 23 | 24 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 25 | msgid "" 26 | "This plugin allows you to use pretalx passively, by letting it import " 27 | "another event's schedule." 28 | msgstr "" 29 | 30 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 31 | msgid "Upstream URL" 32 | msgstr "" 33 | 34 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 35 | msgid "URL of your schedule.xml" 36 | msgstr "" 37 | 38 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 39 | msgid "Interval" 40 | msgstr "" 41 | 42 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 43 | msgid "Checking interval in minutes." 44 | msgstr "" 45 | 46 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 47 | msgid "Check only during event time" 48 | msgstr "" 49 | 50 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 51 | msgid "From now until one day after the event ends" 52 | msgstr "" 53 | 54 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 55 | msgid "Schedule check time" 56 | msgstr "" 57 | 58 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 59 | msgid "Discard version name after" 60 | msgstr "" 61 | 62 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 63 | msgid "" 64 | "Everything after the first occurence of the entered string in schedule " 65 | "version will be discarded. Leave empty if you want to keep the full schedule " 66 | "version" 67 | msgstr "" 68 | 69 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 70 | msgid "Upstream" 71 | msgstr "" 72 | 73 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 74 | #, python-brace-format 75 | msgid "" 76 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 77 | "URL was configured." 78 | msgstr "" 79 | 80 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 81 | #, python-brace-format 82 | msgid "" 83 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 84 | "response." 85 | msgstr "" 86 | 87 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 88 | msgid "Set up upstream sync" 89 | msgstr "" 90 | 91 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 92 | msgid "Save" 93 | msgstr "" 94 | 95 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 96 | msgid "Check for new talks" 97 | msgstr "" 98 | 99 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 100 | msgid "Refreshing schedule …" 101 | msgstr "" 102 | 103 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 104 | msgid "Failure when processing remote schedule: " 105 | msgstr "" 106 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/test/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-03-05 14:28+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 21 | msgid "pretalx as a downstream service" 22 | msgstr "" 23 | 24 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 25 | msgid "" 26 | "This plugin allows you to use pretalx passively, by letting it import " 27 | "another event's schedule." 28 | msgstr "" 29 | 30 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 31 | msgid "Upstream URL" 32 | msgstr "" 33 | 34 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 35 | msgid "URL of your schedule.xml" 36 | msgstr "" 37 | 38 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 39 | msgid "Interval" 40 | msgstr "" 41 | 42 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 43 | msgid "Checking interval in minutes." 44 | msgstr "" 45 | 46 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 47 | msgid "Check only during event time" 48 | msgstr "" 49 | 50 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 51 | msgid "From now until one day after the event ends" 52 | msgstr "" 53 | 54 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 55 | msgid "Schedule check time" 56 | msgstr "" 57 | 58 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 59 | msgid "Discard version name after" 60 | msgstr "" 61 | 62 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 63 | msgid "" 64 | "Everything after the first occurence of the entered string in schedule " 65 | "version will be discarded. Leave empty if you want to keep the full schedule" 66 | " version" 67 | msgstr "" 68 | 69 | #: local/pretalx-downstream/pretalx_downstream/signals.py:66 70 | msgid "Upstream" 71 | msgstr "" 72 | 73 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 74 | #, python-brace-format 75 | msgid "" 76 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream" 77 | " URL was configured." 78 | msgstr "" 79 | 80 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 81 | #, python-brace-format 82 | msgid "" 83 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 84 | "response." 85 | msgstr "" 86 | 87 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:8 88 | msgid "Set up upstream sync" 89 | msgstr "" 90 | 91 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 92 | msgid "Save" 93 | msgstr "" 94 | 95 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:32 96 | msgid "Check for new talks" 97 | msgstr "" 98 | 99 | #: local/pretalx-downstream/pretalx_downstream/views.py:30 100 | msgid "Refreshing schedule …" 101 | msgstr "" 102 | 103 | #: local/pretalx-downstream/pretalx_downstream/views.py:33 104 | msgid "Failure when processing remote schedule: " 105 | msgstr "" 106 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/de_Formal/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 21 | msgid "pretalx as a downstream service" 22 | msgstr "" 23 | 24 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 25 | msgid "" 26 | "This plugin allows you to use pretalx passively, by letting it import " 27 | "another event's schedule." 28 | msgstr "" 29 | 30 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 31 | msgid "Upstream URL" 32 | msgstr "" 33 | 34 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 35 | msgid "URL of your schedule.xml" 36 | msgstr "" 37 | 38 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 39 | msgid "Interval" 40 | msgstr "" 41 | 42 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 43 | msgid "Checking interval in minutes." 44 | msgstr "" 45 | 46 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 47 | msgid "Check only during event time" 48 | msgstr "" 49 | 50 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 51 | msgid "From now until one day after the event ends" 52 | msgstr "" 53 | 54 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 55 | msgid "Schedule check time" 56 | msgstr "" 57 | 58 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 59 | msgid "Discard version name after" 60 | msgstr "" 61 | 62 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 63 | msgid "" 64 | "Everything after the first occurence of the entered string in schedule " 65 | "version will be discarded. Leave empty if you want to keep the full schedule " 66 | "version" 67 | msgstr "" 68 | 69 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 70 | msgid "Upstream" 71 | msgstr "" 72 | 73 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 74 | #, python-brace-format 75 | msgid "" 76 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 77 | "URL was configured." 78 | msgstr "" 79 | 80 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 81 | #, python-brace-format 82 | msgid "" 83 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 84 | "response." 85 | msgstr "" 86 | 87 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 88 | msgid "Set up upstream sync" 89 | msgstr "" 90 | 91 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 92 | msgid "Save" 93 | msgstr "" 94 | 95 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 96 | msgid "Check for new talks" 97 | msgstr "" 98 | 99 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 100 | msgid "Refreshing schedule …" 101 | msgstr "" 102 | 103 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 104 | msgid "Failure when processing remote schedule: " 105 | msgstr "" 106 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/en_Mozilla/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2023-11-03 08:44+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 21 | msgid "pretalx as a downstream service" 22 | msgstr "" 23 | 24 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 25 | msgid "" 26 | "This plugin allows you to use pretalx passively, by letting it import " 27 | "another event's schedule." 28 | msgstr "" 29 | 30 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 31 | msgid "Upstream URL" 32 | msgstr "" 33 | 34 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 35 | msgid "URL of your schedule.xml" 36 | msgstr "" 37 | 38 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 39 | msgid "Interval" 40 | msgstr "" 41 | 42 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 43 | msgid "Checking interval in minutes." 44 | msgstr "" 45 | 46 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 47 | msgid "Check only during event time" 48 | msgstr "" 49 | 50 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 51 | msgid "From now until one day after the event ends" 52 | msgstr "" 53 | 54 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 55 | msgid "Schedule check time" 56 | msgstr "" 57 | 58 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 59 | msgid "Discard version name after" 60 | msgstr "" 61 | 62 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 63 | msgid "" 64 | "Everything after the first occurence of the entered string in schedule " 65 | "version will be discarded. Leave empty if you want to keep the full schedule" 66 | " version" 67 | msgstr "" 68 | 69 | #: local/pretalx-downstream/pretalx_downstream/signals.py:66 70 | msgid "Upstream" 71 | msgstr "" 72 | 73 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 74 | #, python-brace-format 75 | msgid "" 76 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream" 77 | " URL was configured." 78 | msgstr "" 79 | 80 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 81 | #, python-brace-format 82 | msgid "" 83 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 84 | "response." 85 | msgstr "" 86 | 87 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:8 88 | msgid "Set up upstream sync" 89 | msgstr "" 90 | 91 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 92 | msgid "Save" 93 | msgstr "" 94 | 95 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:32 96 | msgid "Check for new talks" 97 | msgstr "" 98 | 99 | #: local/pretalx-downstream/pretalx_downstream/views.py:30 100 | msgid "Refreshing schedule …" 101 | msgstr "" 102 | 103 | #: local/pretalx-downstream/pretalx_downstream/views.py:33 104 | msgid "Failure when processing remote schedule: " 105 | msgstr "" 106 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/id/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/ko/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/ca/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/el/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/es/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/it/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/nl/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/pt_BR/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/sv/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/zh_Hans/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/zh_Hant/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/es_MX/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 22 | msgid "pretalx as a downstream service" 23 | msgstr "" 24 | 25 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 26 | msgid "" 27 | "This plugin allows you to use pretalx passively, by letting it import " 28 | "another event's schedule." 29 | msgstr "" 30 | 31 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 32 | msgid "Upstream URL" 33 | msgstr "" 34 | 35 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 36 | msgid "URL of your schedule.xml" 37 | msgstr "" 38 | 39 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 40 | msgid "Interval" 41 | msgstr "" 42 | 43 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 44 | msgid "Checking interval in minutes." 45 | msgstr "" 46 | 47 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 48 | msgid "Check only during event time" 49 | msgstr "" 50 | 51 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 52 | msgid "From now until one day after the event ends" 53 | msgstr "" 54 | 55 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 56 | msgid "Schedule check time" 57 | msgstr "" 58 | 59 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 60 | msgid "Discard version name after" 61 | msgstr "" 62 | 63 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 64 | msgid "" 65 | "Everything after the first occurence of the entered string in schedule " 66 | "version will be discarded. Leave empty if you want to keep the full schedule " 67 | "version" 68 | msgstr "" 69 | 70 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 71 | msgid "Upstream" 72 | msgstr "" 73 | 74 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 75 | #, python-brace-format 76 | msgid "" 77 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 78 | "URL was configured." 79 | msgstr "" 80 | 81 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 82 | #, python-brace-format 83 | msgid "" 84 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 85 | "response." 86 | msgstr "" 87 | 88 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 89 | msgid "Set up upstream sync" 90 | msgstr "" 91 | 92 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 93 | msgid "Save" 94 | msgstr "" 95 | 96 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 97 | msgid "Check for new talks" 98 | msgstr "" 99 | 100 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 101 | msgid "Refreshing schedule …" 102 | msgstr "" 103 | 104 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 105 | msgid "Failure when processing remote schedule: " 106 | msgstr "" 107 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/sl/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " 20 | "n%100==4 ? 2 : 3);\n" 21 | 22 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 23 | msgid "pretalx as a downstream service" 24 | msgstr "" 25 | 26 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 27 | msgid "" 28 | "This plugin allows you to use pretalx passively, by letting it import " 29 | "another event's schedule." 30 | msgstr "" 31 | 32 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 33 | msgid "Upstream URL" 34 | msgstr "" 35 | 36 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 37 | msgid "URL of your schedule.xml" 38 | msgstr "" 39 | 40 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 41 | msgid "Interval" 42 | msgstr "" 43 | 44 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 45 | msgid "Checking interval in minutes." 46 | msgstr "" 47 | 48 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 49 | msgid "Check only during event time" 50 | msgstr "" 51 | 52 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 53 | msgid "From now until one day after the event ends" 54 | msgstr "" 55 | 56 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 57 | msgid "Schedule check time" 58 | msgstr "" 59 | 60 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 61 | msgid "Discard version name after" 62 | msgstr "" 63 | 64 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 65 | msgid "" 66 | "Everything after the first occurence of the entered string in schedule " 67 | "version will be discarded. Leave empty if you want to keep the full schedule " 68 | "version" 69 | msgstr "" 70 | 71 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 72 | msgid "Upstream" 73 | msgstr "" 74 | 75 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 76 | #, python-brace-format 77 | msgid "" 78 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 79 | "URL was configured." 80 | msgstr "" 81 | 82 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 83 | #, python-brace-format 84 | msgid "" 85 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 86 | "response." 87 | msgstr "" 88 | 89 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 90 | msgid "Set up upstream sync" 91 | msgstr "" 92 | 93 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 94 | msgid "Save" 95 | msgstr "" 96 | 97 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 98 | msgid "Check for new talks" 99 | msgstr "" 100 | 101 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 102 | msgid "Refreshing schedule …" 103 | msgstr "" 104 | 105 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 106 | msgid "Failure when processing remote schedule: " 107 | msgstr "" 108 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/ar/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " 20 | "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" 21 | 22 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 23 | msgid "pretalx as a downstream service" 24 | msgstr "" 25 | 26 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 27 | msgid "" 28 | "This plugin allows you to use pretalx passively, by letting it import " 29 | "another event's schedule." 30 | msgstr "" 31 | 32 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 33 | msgid "Upstream URL" 34 | msgstr "" 35 | 36 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 37 | msgid "URL of your schedule.xml" 38 | msgstr "" 39 | 40 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 41 | msgid "Interval" 42 | msgstr "" 43 | 44 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 45 | msgid "Checking interval in minutes." 46 | msgstr "" 47 | 48 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 49 | msgid "Check only during event time" 50 | msgstr "" 51 | 52 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 53 | msgid "From now until one day after the event ends" 54 | msgstr "" 55 | 56 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 57 | msgid "Schedule check time" 58 | msgstr "" 59 | 60 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 61 | msgid "Discard version name after" 62 | msgstr "" 63 | 64 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 65 | msgid "" 66 | "Everything after the first occurence of the entered string in schedule " 67 | "version will be discarded. Leave empty if you want to keep the full schedule " 68 | "version" 69 | msgstr "" 70 | 71 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 72 | msgid "Upstream" 73 | msgstr "" 74 | 75 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 76 | #, python-brace-format 77 | msgid "" 78 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 79 | "URL was configured." 80 | msgstr "" 81 | 82 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 83 | #, python-brace-format 84 | msgid "" 85 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 86 | "response." 87 | msgstr "" 88 | 89 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 90 | msgid "Set up upstream sync" 91 | msgstr "" 92 | 93 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 94 | msgid "Save" 95 | msgstr "" 96 | 97 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 98 | msgid "Check for new talks" 99 | msgstr "" 100 | 101 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 102 | msgid "Refreshing schedule …" 103 | msgstr "" 104 | 105 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 106 | msgid "Failure when processing remote schedule: " 107 | msgstr "" 108 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/cs/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n " 20 | "<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" 21 | 22 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 23 | msgid "pretalx as a downstream service" 24 | msgstr "" 25 | 26 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 27 | msgid "" 28 | "This plugin allows you to use pretalx passively, by letting it import " 29 | "another event's schedule." 30 | msgstr "" 31 | 32 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 33 | msgid "Upstream URL" 34 | msgstr "" 35 | 36 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 37 | msgid "URL of your schedule.xml" 38 | msgstr "" 39 | 40 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 41 | msgid "Interval" 42 | msgstr "" 43 | 44 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 45 | msgid "Checking interval in minutes." 46 | msgstr "" 47 | 48 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 49 | msgid "Check only during event time" 50 | msgstr "" 51 | 52 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 53 | msgid "From now until one day after the event ends" 54 | msgstr "" 55 | 56 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 57 | msgid "Schedule check time" 58 | msgstr "" 59 | 60 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 61 | msgid "Discard version name after" 62 | msgstr "" 63 | 64 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 65 | msgid "" 66 | "Everything after the first occurence of the entered string in schedule " 67 | "version will be discarded. Leave empty if you want to keep the full schedule " 68 | "version" 69 | msgstr "" 70 | 71 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 72 | msgid "Upstream" 73 | msgstr "" 74 | 75 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 76 | #, python-brace-format 77 | msgid "" 78 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 79 | "URL was configured." 80 | msgstr "" 81 | 82 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 83 | #, python-brace-format 84 | msgid "" 85 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 86 | "response." 87 | msgstr "" 88 | 89 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 90 | msgid "Set up upstream sync" 91 | msgstr "" 92 | 93 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 94 | msgid "Save" 95 | msgstr "" 96 | 97 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 98 | msgid "Check for new talks" 99 | msgstr "" 100 | 101 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 102 | msgid "Refreshing schedule …" 103 | msgstr "" 104 | 105 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 106 | msgid "Failure when processing remote schedule: " 107 | msgstr "" 108 | -------------------------------------------------------------------------------- /pretalx_downstream/locale/ru/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-10-20 19:51+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " 20 | "n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " 21 | "(n%100>=11 && n%100<=14)? 2 : 3);\n" 22 | 23 | #: local/pretalx-downstream/pretalx_downstream/apps.py:12 24 | msgid "pretalx as a downstream service" 25 | msgstr "" 26 | 27 | #: local/pretalx-downstream/pretalx_downstream/apps.py:15 28 | msgid "" 29 | "This plugin allows you to use pretalx passively, by letting it import " 30 | "another event's schedule." 31 | msgstr "" 32 | 33 | #: local/pretalx-downstream/pretalx_downstream/forms.py:8 34 | msgid "Upstream URL" 35 | msgstr "" 36 | 37 | #: local/pretalx-downstream/pretalx_downstream/forms.py:9 38 | msgid "URL of your schedule.xml" 39 | msgstr "" 40 | 41 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 42 | msgid "Interval" 43 | msgstr "" 44 | 45 | #: local/pretalx-downstream/pretalx_downstream/forms.py:13 46 | msgid "Checking interval in minutes." 47 | msgstr "" 48 | 49 | #: local/pretalx-downstream/pretalx_downstream/forms.py:17 50 | msgid "Check only during event time" 51 | msgstr "" 52 | 53 | #: local/pretalx-downstream/pretalx_downstream/forms.py:18 54 | msgid "From now until one day after the event ends" 55 | msgstr "" 56 | 57 | #: local/pretalx-downstream/pretalx_downstream/forms.py:20 58 | msgid "Schedule check time" 59 | msgstr "" 60 | 61 | #: local/pretalx-downstream/pretalx_downstream/forms.py:24 62 | msgid "Discard version name after" 63 | msgstr "" 64 | 65 | #: local/pretalx-downstream/pretalx_downstream/forms.py:26 66 | msgid "" 67 | "Everything after the first occurence of the entered string in schedule " 68 | "version will be discarded. Leave empty if you want to keep the full schedule " 69 | "version" 70 | msgstr "" 71 | 72 | #: local/pretalx-downstream/pretalx_downstream/signals.py:67 73 | msgid "Upstream" 74 | msgstr "" 75 | 76 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:41 77 | #, python-brace-format 78 | msgid "" 79 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream " 80 | "URL was configured." 81 | msgstr "" 82 | 83 | #: local/pretalx-downstream/pretalx_downstream/tasks.py:49 84 | #, python-brace-format 85 | msgid "" 86 | "Could not retrieve upstream schedule for {event_slug}, received {response} " 87 | "response." 88 | msgstr "" 89 | 90 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:5 91 | msgid "Set up upstream sync" 92 | msgstr "" 93 | 94 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:18 95 | msgid "Save" 96 | msgstr "" 97 | 98 | #: local/pretalx-downstream/pretalx_downstream/templates/pretalx_downstream/settings.html:25 99 | msgid "Check for new talks" 100 | msgstr "" 101 | 102 | #: local/pretalx-downstream/pretalx_downstream/views.py:32 103 | msgid "Refreshing schedule …" 104 | msgstr "" 105 | 106 | #: local/pretalx-downstream/pretalx_downstream/views.py:35 107 | msgid "Failure when processing remote schedule: " 108 | msgstr "" 109 | -------------------------------------------------------------------------------- /.github/workflows/style.yml: -------------------------------------------------------------------------------- 1 | name: Code Style 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | paths-ignore: 7 | - 'pretalx_downstream/locale/**' 8 | - 'pretalx_downstream/static/**' 9 | pull_request: 10 | branches: [ main ] 11 | paths-ignore: 12 | - 'pretalx_downstream/locale/**' 13 | - 'pretalx_downstream/static/**' 14 | 15 | 16 | jobs: 17 | isort: 18 | name: isort 19 | runs-on: ubuntu-latest 20 | steps: 21 | - uses: actions/checkout@v2 22 | - name: Set up Python 3.10 23 | uses: actions/setup-python@v1 24 | with: 25 | python-version: "3.10" 26 | - uses: actions/cache@v1 27 | with: 28 | path: ~/.cache/pip 29 | key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }} 30 | restore-keys: | 31 | ${{ runner.os }}-pip- 32 | - name: Install isort 33 | run: pip3 install isort 34 | - name: Run isort 35 | run: isort -c . 36 | flake: 37 | name: flake8 38 | runs-on: ubuntu-latest 39 | steps: 40 | - uses: actions/checkout@v2 41 | - name: Set up Python 3.10 42 | uses: actions/setup-python@v1 43 | with: 44 | python-version: "3.10" 45 | - uses: actions/cache@v1 46 | with: 47 | path: ~/.cache/pip 48 | key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }} 49 | restore-keys: | 50 | ${{ runner.os }}-pip- 51 | - name: Install Dependencies 52 | run: pip3 install flake8 flake8-bugbear 53 | - name: Run flake8 54 | run: flake8 . 55 | working-directory: . 56 | black: 57 | name: black 58 | runs-on: ubuntu-latest 59 | steps: 60 | - uses: actions/checkout@v2 61 | - name: Set up Python 3.10 62 | uses: actions/setup-python@v1 63 | with: 64 | python-version: "3.10" 65 | - uses: actions/cache@v1 66 | with: 67 | path: ~/.cache/pip 68 | key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }} 69 | restore-keys: | 70 | ${{ runner.os }}-pip- 71 | - name: Install Dependencies 72 | run: pip3 install black 73 | - name: Run black 74 | run: black --check . 75 | working-directory: . 76 | djhtml: 77 | name: djhtml 78 | runs-on: ubuntu-latest 79 | steps: 80 | - uses: actions/checkout@v2 81 | - name: Set up Python 3.10 82 | uses: actions/setup-python@v1 83 | with: 84 | python-version: "3.10" 85 | - uses: actions/cache@v1 86 | with: 87 | path: ~/.cache/pip 88 | key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }} 89 | restore-keys: | 90 | ${{ runner.os }}-pip- 91 | - name: Install Dependencies 92 | run: pip3 install djhtml 93 | - name: Run docformatter 94 | run: find -name "*.html" | xargs djhtml -c 95 | working-directory: . 96 | packaging: 97 | name: packaging 98 | runs-on: ubuntu-latest 99 | steps: 100 | - uses: actions/checkout@v2 101 | - name: Set up Python 3.10 102 | uses: actions/setup-python@v1 103 | with: 104 | python-version: "3.10" 105 | - uses: actions/cache@v1 106 | with: 107 | path: ~/.cache/pip 108 | key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }} 109 | restore-keys: | 110 | ${{ runner.os }}-pip- 111 | - name: Install Dependencies 112 | run: pip3 install twine check-manifest -Ue . 113 | - name: Run check-manifest 114 | run: check-manifest . 115 | working-directory: . 116 | - name: Build package 117 | run: python -m build 118 | working-directory: . 119 | - name: Check package 120 | run: twine check dist/* 121 | working-directory: . 122 | -------------------------------------------------------------------------------- /pretalx_downstream/tasks.py: -------------------------------------------------------------------------------- 1 | import datetime as dt 2 | import hashlib 3 | import json 4 | from contextlib import suppress 5 | from logging import getLogger 6 | from xml.etree import ElementTree 7 | 8 | import dateutil.parser 9 | import requests 10 | from django.db import transaction 11 | from django.db.utils import IntegrityError 12 | from django.utils.timezone import now 13 | from django.utils.translation import gettext_lazy as _ 14 | from django_scopes import scope, scopes_disabled 15 | from pretalx.celery_app import app 16 | from pretalx.event.models import Event 17 | from pretalx.person.models import SpeakerProfile, User 18 | from pretalx.schedule.models import Room, TalkSlot 19 | from pretalx.submission.models import ( 20 | Submission, 21 | SubmissionStates, 22 | SubmissionType, 23 | Track, 24 | ) 25 | 26 | from .models import UpstreamResult 27 | 28 | logger = getLogger("pretalx_downstream") 29 | 30 | 31 | @app.task(name="pretalx_downstream.refresh_upstream_schedule") 32 | def task_refresh_upstream_schedule(event_slug): 33 | with scopes_disabled(): 34 | event = Event.objects.get(slug__iexact=event_slug) 35 | with scope(event=event): 36 | logger.info(f"processing {event.slug}") 37 | url = event.settings.downstream_upstream_url 38 | if not url: 39 | raise Exception( 40 | _( 41 | "The pretalx-downstream plugin is installed for {event_slug}, but no upstream URL was configured." 42 | ).format(event_slug=event_slug) 43 | ) 44 | 45 | response = requests.get(url) 46 | if response.status_code != 200: 47 | raise Exception( 48 | _( 49 | "Could not retrieve upstream schedule for {event_slug}, received {response} response." 50 | ).format(event_slug=event_slug, response=response.status_code) 51 | ) 52 | 53 | content = response.content.decode() 54 | last_result = event.upstream_results.order_by("timestamp").first() 55 | m = hashlib.sha256() 56 | m.update(response.content) 57 | current_result = m.hexdigest() 58 | 59 | if last_result: 60 | logger.debug(f"last known checksum: {last_result.checksum}") 61 | logger.debug(f"checksum now: {current_result}") 62 | 63 | if current_result == last_result.checksum: 64 | event.settings.upstream_last_sync = now() 65 | return 66 | 67 | root = ElementTree.fromstring(content) 68 | schedule_version = root.find("version").text 69 | 70 | if event.settings.downstream_discard_after: 71 | schedule_version = schedule_version.split( 72 | event.settings.downstream_discard_after 73 | )[0] 74 | 75 | logger.debug(f"Found schedule version '{schedule_version}'") 76 | 77 | release_new_version = ( 78 | not event.current_schedule 79 | or schedule_version != event.current_schedule.version 80 | ) 81 | logger.debug(f"release_new_version={release_new_version}") 82 | changes, schedule = process_frab( 83 | root, event, release_new_version=release_new_version 84 | ) 85 | UpstreamResult.objects.create( 86 | event=event, schedule=schedule, changes=json.dumps(changes), content=content 87 | ) 88 | event.settings.upstream_last_sync = now() 89 | logger.info(f"refreshed schedule of {event.slug}") 90 | 91 | 92 | @transaction.atomic() 93 | def process_frab(root, event, release_new_version): 94 | """Take an xml document root and an event, and releases a schedule with the 95 | data from the xml document. 96 | """ 97 | 98 | changes = dict() 99 | for day in root.findall("day"): 100 | for rm in day.findall("room"): 101 | guid = rm.attrib.get("guid") 102 | if guid: 103 | room, _ = Room.objects.get_or_create( 104 | event=event, guid=guid, defaults={"name": rm.attrib["name"]} 105 | ) 106 | else: 107 | room, _ = Room.objects.get_or_create( 108 | event=event, name=rm.attrib["name"] 109 | ) 110 | for talk in rm.findall("event"): 111 | changes.update(_create_talk(talk=talk, room=room, event=event)) 112 | 113 | schedule = None 114 | if release_new_version: 115 | schedule_version = root.find("version").text 116 | 117 | if event.settings.downstream_discard_after: 118 | schedule_version = schedule_version.split( 119 | event.settings.downstream_discard_after 120 | )[0] 121 | 122 | try: 123 | event.wip_schedule.freeze(schedule_version, notify_speakers=False) 124 | schedule = event.schedules.get(version=schedule_version) 125 | except Exception as e: 126 | raise Exception( 127 | f'Could not import "{event.name}" schedule version "{schedule_version}": {e}.' 128 | ) 129 | 130 | schedule.talks.update(is_visible=True) 131 | start = schedule.talks.order_by("start").first().start 132 | end = schedule.talks.order_by("-end").first().end 133 | event.date_from = start.date() 134 | event.date_to = end.date() 135 | event.save() 136 | return changes, schedule 137 | 138 | 139 | def _create_user(name, event): 140 | user, _ = User.objects.get_or_create( 141 | email=f"{name[:110]}@localhost".lower(), defaults={"name": name[:120]} 142 | ) 143 | SpeakerProfile.objects.get_or_create(user=user, event=event) 144 | return user 145 | 146 | 147 | def _get_changes(talk, optout, sub, fallback_locale=None): 148 | changes = dict() 149 | change_tracking_data = { 150 | "title": talk.find("title").text, 151 | "do_not_record": optout, 152 | "content_locale": ( 153 | talk.find("language").text 154 | if talk.find("language") 155 | else fallback_locale or "en" 156 | ), 157 | } 158 | for key in ("description", "abstract"): 159 | try: 160 | change_tracking_data[key] = talk.find(key).text 161 | except Exception: 162 | change_tracking_data[key] = "" 163 | if talk.find("subtitle").text: 164 | change_tracking_data["description"] = ( 165 | talk.find("subtitle").text + "\n" + change_tracking_data["description"] 166 | ).strip() 167 | 168 | for key, value in change_tracking_data.items(): 169 | if not getattr(sub, key) == value: 170 | changes[key] = {"old": getattr(sub, key), "new": value} 171 | setattr(sub, key, value) 172 | return changes 173 | 174 | 175 | def _create_talk(*, talk, room, event): 176 | date = talk.find("date").text 177 | start = dateutil.parser.parse(date + " " + talk.find("start").text) 178 | hours, minutes = talk.find("duration").text.split(":") 179 | duration = dt.timedelta(hours=int(hours), minutes=int(minutes)) 180 | duration_in_minutes = duration.total_seconds() / 60 181 | try: 182 | end = dateutil.parser.parse(date + " " + talk.find("end").text) 183 | except AttributeError: 184 | end = start + duration 185 | sub_type = SubmissionType.objects.filter( 186 | event=event, name=talk.find("type").text, default_duration=duration_in_minutes 187 | ).first() 188 | 189 | if not sub_type: 190 | sub_type = SubmissionType.objects.create( 191 | name=talk.find("type").text or "default", 192 | event=event, 193 | default_duration=duration_in_minutes, 194 | ) 195 | 196 | track = None 197 | if talk.find("track").text: 198 | tracks = Track.objects.filter( 199 | event=event, name__icontains=talk.find("track").text 200 | ) 201 | track = [t for t in tracks if str(t.name) == talk.find("track").text] 202 | 203 | if track: 204 | track = track[0] 205 | else: 206 | track = Track.objects.create(name=talk.find("track").text, event=event) 207 | 208 | optout = False 209 | with suppress(AttributeError): 210 | optout = talk.find("recording").find("optout").text == "true" 211 | 212 | code = None 213 | if ( 214 | Submission.objects.filter(code__iexact=talk.attrib["id"], event=event).exists() 215 | or not Submission.objects.filter(code__iexact=talk.attrib["id"]).exists() 216 | ): 217 | code = talk.attrib["id"] 218 | elif ( 219 | Submission.objects.filter( 220 | code__iexact=talk.attrib["guid"][:16], event=event 221 | ).exists() 222 | or not Submission.objects.filter(code__iexact=talk.attrib["guid"][:16]).exists() 223 | ): 224 | code = talk.attrib["guid"][:16] 225 | 226 | try: 227 | sub, created = Submission.objects.get_or_create( 228 | event=event, 229 | code=code, 230 | defaults={"submission_type": sub_type, "state": SubmissionStates.CONFIRMED}, 231 | ) 232 | except IntegrityError: 233 | new_code = f"{event.slug[:16 - len(code)]}{code}" 234 | sub, created = Submission.objects.get_or_create( 235 | event=event, 236 | code=new_code, 237 | defaults={"submission_type": sub_type, "state": SubmissionStates.CONFIRMED}, 238 | ) 239 | 240 | sub.submission_type = sub_type 241 | if track: 242 | sub.track = track 243 | 244 | changes = _get_changes(talk, optout, sub, fallback_locale=event.locale) 245 | sub.save() 246 | 247 | persons = talk.find("persons") 248 | if persons: 249 | for person in persons.findall("person"): 250 | if person.text and person.text.strip(): 251 | user = _create_user(person.text.strip(), event) 252 | sub.speakers.add(user) 253 | 254 | slot, _ = TalkSlot.objects.get_or_create( 255 | submission=sub, schedule=event.wip_schedule, defaults={"is_visible": True} 256 | ) 257 | slot.room = room 258 | slot.is_visible = True 259 | slot.start = start 260 | slot.end = end 261 | slot.save() 262 | if not created and changes: 263 | return {sub.code: changes} 264 | return dict() 265 | --------------------------------------------------------------------------------