From bcec5e4986c50c23cadfc1de6985827d50e36912 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Fri, 25 Oct 2024 21:21:39 +0200 Subject: [PATCH 01/93] feat: endpoint for urls, link widget --- README.rst | 75 +++-- djangocms_link/admin.py | 144 ++++++++++ djangocms_link/apps.py | 6 + djangocms_link/cms_plugins.py | 23 +- djangocms_link/fields.py | 265 +++++++++++++++++- djangocms_link/fields_select2.py | 50 ---- djangocms_link/forms.py | 4 +- djangocms_link/helpers.py | 55 +++- djangocms_link/migrations/0017_link_link.py | 52 ++++ ...chor_remove_link_external_link_and_more.py | 36 +++ djangocms_link/models.py | 162 ++++------- .../static/djangocms_link/link-widget.css | 59 ++++ .../static/djangocms_link/link-widget.js | 28 ++ .../djangocms_link/admin/link_widget.html | 6 + .../djangocms_link/default/link.html | 16 +- djangocms_link/templatetags/__init__.py | 0 .../templatetags/djangocms_link_tags.py | 19 ++ djangocms_link/validators.py | 49 +++- setup.py | 1 - tests/test_fields.py | 11 +- tests/test_models.py | 113 ++++---- tests/test_plugins.py | 24 +- 22 files changed, 902 insertions(+), 296 deletions(-) create mode 100644 djangocms_link/admin.py create mode 100644 djangocms_link/apps.py delete mode 100644 djangocms_link/fields_select2.py create mode 100644 djangocms_link/migrations/0017_link_link.py create mode 100644 djangocms_link/migrations/0018_remove_link_anchor_remove_link_external_link_and_more.py create mode 100644 djangocms_link/static/djangocms_link/link-widget.css create mode 100644 djangocms_link/static/djangocms_link/link-widget.js create mode 100644 djangocms_link/templates/djangocms_link/admin/link_widget.html create mode 100644 djangocms_link/templatetags/__init__.py create mode 100644 djangocms_link/templatetags/djangocms_link_tags.py diff --git a/README.rst b/README.rst index 91424bda..468022f5 100644 --- a/README.rst +++ b/README.rst @@ -4,15 +4,13 @@ django CMS Link |pypi| |build| |coverage| -**django CMS Link** is a plugin for `django CMS `_ that +**django CMS Link** is a plugin for `django CMS `_ that allows you to add links on your site. This plugin supports child plugins. If you add an other plugin as a child it will take this content instead of the link name as the content of the link. -This addon is compatible with `Divio Cloud `_ and is also available on the -`django CMS Marketplace `_ -for easy installation. +This addon is compatible with `Divio Cloud `_. .. image:: preview.gif @@ -43,8 +41,9 @@ file for additional dependencies: * Django Filer 1.7 or higher -Make sure `django Filer `_ -is installed and configured appropriately. +If `django Filer `_ +is installed and configured appropriately, django CMS Link will allow linking +files. Installation @@ -73,7 +72,7 @@ setting: ('feature', _('Featured Version')), ] -You'll need to create the `feature` folder inside ``templates/djangocms_link/`` +You'll need to create the ``feature`` folder inside ``templates/djangocms_link/`` otherwise you will get a *template does not exist* error. You can do this by copying the ``default`` folder inside that directory and renaming it to ``feature``. @@ -98,17 +97,33 @@ Either of these might accept a URL such as: If left undefined, the normal Django URLValidator will be used. -Django Select2 -~~~~~~~~~~~~~~ +Link fields +----------- -This plugin supports `django-select2 `_ -for simpler use of internal links. You need to manually enable it by: +As of version 5, django CMS Link provides a re-usable link model field, +form field and form widget. This allows you to use the link field in your own +models or forms. -* run ``pip install django-select2`` -* add ``django_select2`` to your ``INSTALLED_APPS`` -* add ``url(r'^select2/', include('django_select2.urls')),`` to your ``urls.py`` -* set ``DJANGOCMS_LINK_USE_SELECT2 = True`` in your ``settings.py`` +.. code-block:: python + + from djangocms_link.fields import LinkField, LinkFormField, LinkWidget + + class MyModel(models.Model): + link = LinkField() + + class MyForm(forms.Form): + link = LinkFormField(required=False) +``LinkField`` is a subclass of ``JSONField`` and stores the link data as dict. +To render the link field in a template, use the new template tags:: + + {% load djangocms_link_tags %} + Link + + {% get_url obj.link as url %} + {% if url %} + Link available + {% endif %} Running Tests ------------- @@ -135,18 +150,28 @@ You can run tests by executing:: .. |djangocms| image:: https://img.shields.io/badge/django%20CMS-3.7%2B-blue.svg :target: https://www.django-cms.org/ +Updating from version 4 or lower +-------------------------------- -Updating from `cmsplugin-filer `_ --------------------------------------------------------------------------------- - -Historically, `cmsplugin-filer` was used to create file, folder, image, link, teaser & video plugins on your django CMS projects. Now `cmsplugin-filer` has been archived, you can still migrate your old instances without having to copy them manually to the new `djangocms-` plugins. - -There's a third-party management command that supports your migration: +django CMS Link 5 is a rewrite of the plugin. If you are updating from +version 4 or lower, you will notice -`migrate_cmsplugin_filer.py `_ +* the **new re-usable link widget**, greatly simplifying the user interface +* an **improved management of multi-site situations**, essentially avoiding the + unnecessary additon of the host name to the URL in plugin instances that + are not in a page placeholder (such as links on aliases or static placeholder) +* a **re-usable admin endpoint** for querying available links which can be used + by other apps such as djangocms-text. +* Links are generated by template tags or template filters instead of the + model's ``get_link()`` method. This allows multiple links in future models. The + ``get_link()`` method is still available for backwards compatibility. -This management command is only a starting point. It *has* worked out of the box for some people, but we encourage you to read the code, understand what it does, and test it on a development environment before running it on your production server. +Migrations should automatically existing plugin instances to the new model +fields. -The management command is only configured to transfer your `cmsplugin_link`, `cmsplugin_file`, `cmsplugin_folder` and `cmsplugin_image` plugins to modern `djangocms_*` plugins. If you need to transfer other `cmsplugin_*` plugins, you'll have to write your own code. +.. warning:: -Alternatively you can use the `deprecate_cmsplugin_filer `_ app, which only adds a small migration that transfer the old `cmsplugin-filer` plugins instances to the new `djangocms-` plugins. + Migration has worked for some people seamlessly. We strongly recommend to + backup your database before updating to version 5. If you encounter any + issues, please report them on + `GitHub `_. diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py new file mode 100644 index 00000000..3c4bc288 --- /dev/null +++ b/djangocms_link/admin.py @@ -0,0 +1,144 @@ +from cms.models import Page, PageContent +from cms.utils import get_language_from_request +from django.apps import apps +from django.contrib import admin +from django.core.exceptions import PermissionDenied, FieldError +from django.http import JsonResponse, Http404 +from django.urls import path +from django.views.generic.list import BaseListView + +from cms import __version__ + +from . import models + +_version = int(__version__.split(".")[0]) + + +class UrlsJsonView(BaseListView): + """Handle AutocompleteWidget's AJAX requests for data.""" + + paginate_by = 20 + admin_site = None + + def get(self, request, *args, **kwargs): + """ + Return a JsonResponse with search results as defined in + serialize_result(), by default: + { + results: [{id: "123" text: "foo"}], + pagination: {more: true} + } + """ + if request.GET.get("g"): + # Get name of a reference + return self.get_reference(request) + + self.term, self.language = self.process_request(request) + + if not self.has_perm(request): + raise PermissionDenied + + self.object_list = self.get_queryset() + context = self.get_context_data() + return JsonResponse( + { + "results": [ + { + "text": ("Pages"), + "children": [ + self.serialize_result(obj) for obj in context["object_list"] + ], + }, + ], + "pagination": {"more": context["page_obj"].has_next()}, + } + ) + + def get_reference(self, request): + try: + model, pk = request.GET.get("g").split(":") + app, model = model.split(".") + model = apps.get_model(app, model) + if hasattr(model, "admin_manager"): + obj = model.admin_manager.get(pk=pk) + else: + obj = model.objects.get(pk=pk) + if isinstance(obj, Page) and _version >= 4: + obj = obj.pagecontent_set(manager="admin_manager").current_content().first() + return JsonResponse(self.serialize_result(obj)) + return JsonResponse(self.serialize_result(obj)) + except Exception as e: + return JsonResponse({"error": str(e)}) + + def serialize_result(self, obj): + """ + Convert the provided model object to a dictionary that is added to the + results list. + """ + return {"id": f"cms.page:{obj.page.pk}", "text": str(obj), "url": obj.get_absolute_url()} + + def get_queryset(self): + """Return queryset based on ModelAdmin.get_search_results().""" + if _version >= 4: + try: + # django CMS 4.2+ + qs = list( + PageContent.admin_manager.filter(language=self.language, title__icontains=self.term) + .current_content() + .order_by("page__path") + ) + except FieldError: + # django CMS 4.0 - 4.1 + qs = list( + PageContent.admin_manager.filter(language=self.language, title__icontains=self.term) + .current_content() + .order_by("page__node__path") + ) + else: + # django CMS 3 + qs = list( + PageContent.objects.filter(language=self.language, title__icontains=self.term).order_by("page__node__path") + ) + for page_content in qs: + # Patch the missing get_absolute_url method + page_content.get_absolute_url = lambda: page_content.page.get_absolute_url() + return qs + + + def process_request(self, request): + """ + Validate request integrity, extract and return request parameters. + """ + term = request.GET.get("term", "").strip("  ").lower() + language = get_language_from_request(request) + return term, language + + def has_perm(self, request, obj=None): + """Check if user has permission to access the related model.""" + if obj is None: + return True + model_admin = self.admin_site._registry.get(obj.__class__) + if model_admin is None: + return False + return model_admin.has_view_permission(request, obj=obj) + + +class LinkAdmin(admin.ModelAdmin): + """The LinkAdmin class provides the endpoint for getting the urls. It is not visible in the + admin interface.""" + def has_module_permission(self, request): + # Remove from admin + return False + + def get_urls(self): + return [ + path("urls", + self.admin_site.admin_view(self.url_view), + name=f"{self.opts.app_label}_{self.opts.model_name}_urls") + ] + + def url_view(self, request): + return UrlsJsonView.as_view(admin_site=self)(request) + + +admin.site.register(models.Link, LinkAdmin) diff --git a/djangocms_link/apps.py b/djangocms_link/apps.py new file mode 100644 index 00000000..1a1da5c0 --- /dev/null +++ b/djangocms_link/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig +from django.utils.translation import gettext_lazy as _ + +class DjangoCmsLinkConfig(AppConfig): + name = "djangocms_link" + verbose_name = _("django CMS Link") diff --git a/djangocms_link/cms_plugins.py b/djangocms_link/cms_plugins.py index bba3f8df..931024f0 100644 --- a/djangocms_link/cms_plugins.py +++ b/djangocms_link/cms_plugins.py @@ -1,10 +1,11 @@ -from django.contrib.sites.models import Site +from django.contrib.sites.shortcuts import get_current_site from django.utils.translation import gettext_lazy as _ from cms.plugin_base import CMSPluginBase from cms.plugin_pool import plugin_pool from .forms import LinkForm +from .helpers import get_link from .models import Link @@ -19,17 +20,10 @@ class LinkPlugin(CMSPluginBase): (None, { 'fields': ( 'name', - ('external_link', 'internal_link'), + 'link', + 'target', ) }), - (_('Link settings'), { - 'classes': ('collapse',), - 'fields': ( - ('mailto', 'phone'), - ('anchor', 'target'), - ('file_link'), - ), - }), (_('Advanced settings'), { 'classes': ('collapse',), 'fields': ( @@ -39,16 +33,11 @@ class LinkPlugin(CMSPluginBase): }), ] - @classmethod - def get_render_queryset(cls): - queryset = super().get_render_queryset() - return queryset.select_related('internal_link') - def get_render_template(self, context, instance, placeholder): return f'djangocms_link/{instance.template}/link.html' def render(self, context, instance, placeholder): - context['link'] = instance.get_link() + context['link'] = get_link(instance.link, getattr(get_current_site(context["request"]), "id", None)) return super().render(context, instance, placeholder) def get_form(self, request, obj=None, **kwargs): @@ -59,7 +48,7 @@ def get_form(self, request, obj=None, **kwargs): elif self.page and hasattr(self.page, 'site') and self.page.site: site = self.page.site else: - site = Site.objects.get_current() + site = get_current_site(request) class Form(form_class): def __init__(self, *args, **kwargs): diff --git a/djangocms_link/fields.py b/djangocms_link/fields.py index 53e8865d..b399182b 100644 --- a/djangocms_link/fields.py +++ b/djangocms_link/fields.py @@ -1,13 +1,262 @@ +import json + +from django.apps import apps from django.conf import settings +from django.contrib.admin import site +from django.contrib.admin.widgets import SELECT2_TRANSLATIONS, AutocompleteSelect +from django.db.models import JSONField, ManyToOneRel +from django.forms import Field, MultiWidget, Select, TextInput, URLInput +from django.utils.translation import get_language +from django.utils.translation import gettext_lazy as _ + +from cms.utils.urlutils import admin_reverse + +try: + from filer.fields.file import AdminFileWidget, FilerFileField + from filer.models import File +except (ModuleNotFoundError, ImportError): + File = None + +from djangocms_link.validators import AnchorValidator, ExtendedURLValidator + + +link_types = { + "internal_link": _("Internal link"), + "external_link": _("External link/anchor"), +} +if File: + link_types["file_link"] = _("File link") + + +MINIMUM_INPUT_LENGTH = getattr( + settings, "DJANGOCMS_LINK_SELECT2_MINIMUM_INPUT_LENGTH", 0 +) + + +class LinkAutoCompleteWidget(AutocompleteSelect): + def get_internal_obj(self, values): + internal_obj = [] + for value in values: + if value: + model_path, pk = value.split(":", 1) + model = apps.get_model(*model_path.split(".", 1)) + if hasattr(model, "admin_manager"): + internal_obj.append(model.admin_manager.filter(pk=pk).first()) + else: + internal_obj.append(model.objects.filter(pk=pk).first()) + else: + internal_obj.append(None) + return internal_obj + + def optgroups(self, name, value, attr=None): + default = (None, [], 0) + groups = [default] + has_selected = False + selected_choices = set(value) + if not self.is_required and not self.allow_multiple_selected: + default[1].append(self.create_option(name, "", "", False, 0)) + + for option_value, option_label in zip(value, self.get_internal_obj(value)): + selected = str(option_value) in value and ( + has_selected is False or self.allow_multiple_selected + ) + has_selected |= selected + index = len(default[1]) + subgroup = default[1] + subgroup.append( + self.create_option( + name, option_value, option_label, selected_choices, index + ) + ) + return groups + + def get_url(self): + return admin_reverse("djangocms_link_link_urls") + + def build_attrs(self, base_attrs, extra_attrs=None): + """ + Set select2's AJAX attributes. + + Attributes can be set using the html5 data attribute. + Nested attributes require a double dash as per + https://select2.org/configuration/data-attributes#nested-subkey-options + """ + attrs = super(Select, self).build_attrs(base_attrs, extra_attrs=extra_attrs) + attrs.setdefault("class", "") + i18n_name = getattr( + self, "i18n_name", SELECT2_TRANSLATIONS.get(get_language()) + ) # Django 3.2 compat + attrs.update( + { + "data-ajax--cache": "true", + "data-ajax--delay": 250, + "data-ajax--type": "GET", + "data-ajax--url": self.get_url(), + "data-theme": "admin-autocomplete", + "data-allow-clear": json.dumps(not self.is_required), + "data-placeholder": "", # Allows clearing of the input. + "lang": i18n_name, + "class": attrs["class"] + + (" " if attrs["class"] else "") + + "admin-autocomplete", + } + ) + return attrs + + +class LinkWidget(MultiWidget): + template_name = "djangocms_link/admin/link_widget.html" + data_pos = {} + + class Media: + js = ("djangocms_link/link-widget.js",) + css = {"all": ("djangocms_link/link-widget.css",)} + + def __init__(self): + widgets = [ + Select( + choices=list(link_types.items()), + attrs={ + "class": "js-link-widget-selector", + "data-help": _("No destination selected. Use the dropdown to select a destination.") + }, + ), # Link type selector + LinkAutoCompleteWidget( + field=None, + admin_site=None, + attrs={ + "widget": "internal_link", + "data-help": _( + "Select from available internal destinations. Optionally, add an anchor to scroll to." + ), + }, + ), # Internal link selector + URLInput( + attrs={ + "widget": "external_link", + "placeholder": _("https://example.com or #anchor"), + "data-help": _( + "Provide a link to an external URL, including the schema such as 'https://', 'tel:', " + "or 'mailto:'. Optionally, add an #anchor (including the #) to scroll to." + ), + }, + ), # External link input + TextInput( + attrs={ + "widget": "anchor", + "placeholder": _("#anchor"), + "data-help": _("Provide an anchor to scroll to."), + } + ), + ] + if File: + widgets.append( + AdminFileWidget( + rel=ManyToOneRel(FilerFileField, File, "id"), + admin_site=site, + attrs={ + "widget": "file_link", + "data-help": _("Select a file as destination."), + }, + ), + ) + # Remember which widget expets its content at which position + self.data_pos = { + widget.attrs.get("widget"): i for i, widget in enumerate(widgets) + } + super().__init__(widgets) + + def get_context(self, name, value, attrs): + if not self.is_required: + self.widgets[0].choices = [("empty", "---------")] + self.widgets[0].choices + context = super().get_context(name, value, attrs) + context["widget"]["subwidgets"] = { + widget["attrs"].get("widget", "link-type-selector"): widget + for widget in context["widget"]["subwidgets"] + } + if File: + del context["widget"]["subwidgets"]["file_link"] + context["filer_widget"] = self.widgets[-1].render(name + "_4", value[4], attrs) + return context + + +class LinkFormField(Field): + widget = LinkWidget + external_link_validators = [ExtendedURLValidator()] + internal_link_validators = [] + file_link_validators = [] + anchor_validators = [AnchorValidator()] + + empty_values = [{}] + [{link_type: ""} for link_type in link_types] + + def __init__(self, *args, **kwargs): + kwargs.setdefault("help_text", _("Select a link type and provide a link.")) + kwargs.pop("encoder", None) # Passed from LinkField's JSONField parent class + kwargs.pop("decoder", None) # but not needed + super().__init__(*args, **kwargs) + + def prepare_value(self, value): + if isinstance(value, list): + return value + + multi_value = len(self.widget.widgets) * [None] + if "external_link" in value: + pos = self._get_pos("external_link") + multi_value[0] = "external_link" + multi_value[pos] = value["external_link"] + elif "internal_link" in value: + pos = self._get_pos("internal_link") + anchor_pos = self._get_pos("anchor") + multi_value[0] = "internal_link" + multi_value[pos] = value["internal_link"] + multi_value[anchor_pos] = value.get("anchor", "") + elif "file_link" in value: + multi_value[0] = "file_link" + pos = self._get_pos("file_link") + multi_value[pos] = str(value["file_link"]) + return multi_value + + def to_python(self, value): + """Turn MultiWidget list data into LinkField dict format""" + if not value: + return {} + + link_type = value[0] + pos = self._get_pos(link_type) + if not pos: # No link type selected + return {} + pos_anchor = self._get_pos("anchor") + + python = {link_type: value[pos]} + if link_type == "internal_link" and pos_anchor and value[pos_anchor]: + python["anchor"] = value[pos_anchor] + return python + + def run_validators(self, value): + """Check for _validators property and run the validators""" + for link_type in link_types: + if link_type in value: + self.validators = getattr(self, f"{link_type}_validators", []) + super().run_validators(value[link_type]) + if "anchor" in value: + self.validators = getattr(self, f"anchor_validators", []) + super().run_validators(value["anchor"]) + + def _get_pos(self, link_type): + """Returns the position of the different link type widgets""" + return self.widget.data_pos.get(link_type) + -def is_select2_enabled(): - use_select2 = getattr(settings, 'DJANGOCMS_LINK_USE_SELECT2', False) - is_installed = 'django_select2' in settings.INSTALLED_APPS - return use_select2 and is_installed +class LinkField(JSONField): + """A link is a JSON field with a default LinkFormField""" + def __init__(self, *args, **kwargs): + kwargs.setdefault("default", {}) + kwargs.setdefault("blank", True) + kwargs.setdefault("help_text", "-") + super().__init__(*args, **kwargs) -if is_select2_enabled(): - from djangocms_link.fields_select2 import Select2PageSearchField as PageSearchField # noqa -else: - from cms.forms.fields import PageSelectFormField as PageSearchField # noqa + def formfield(self, **kwargs): + kwargs.setdefault("form_class", LinkFormField) + return super().formfield(**kwargs) diff --git a/djangocms_link/fields_select2.py b/djangocms_link/fields_select2.py deleted file mode 100644 index 7b98a661..00000000 --- a/djangocms_link/fields_select2.py +++ /dev/null @@ -1,50 +0,0 @@ -from django import forms - -from cms.models import Page - -from django_select2.forms import ModelSelect2Widget - -from djangocms_link.helpers import get_queryset_manager - - -class Select2PageSearchFieldMixin: - search_fields = [ - 'title_set__title__icontains', - 'title_set__menu_title__icontains', - 'title_set__slug__icontains' - ] - - def label_from_instance(self, obj): - return obj.get_title() - - -class Select2PageSelectWidget(Select2PageSearchFieldMixin, ModelSelect2Widget): - site = None - - # show entries when clicking on it - def build_attrs(self, base_attrs, extra_attrs=None): - default_attrs = {"data-minimum-input-length": 0} - default_attrs.update(base_attrs) - attrs = super().build_attrs(default_attrs, extra_attrs=extra_attrs) - return attrs - - def get_queryset(self): - # django CMS < 4 - base_queryset = get_queryset_manager(Page.objects) - if self.site: - return base_queryset.on_site(self.site) - return base_queryset.all() - - # we need to implement jQuery ourselves, see #180 - class Media: - js = ( - "https://code.jquery.com/jquery-3.5.1.slim.min.js", - ) - - -class Select2PageSearchField(forms.ModelChoiceField): - widget = Select2PageSelectWidget() - - def __init__(self, *args, **kwargs): - kwargs['queryset'] = self.widget.get_queryset() - super().__init__(*args, **kwargs) diff --git a/djangocms_link/forms.py b/djangocms_link/forms.py index 6700ff09..470af553 100644 --- a/djangocms_link/forms.py +++ b/djangocms_link/forms.py @@ -1,11 +1,11 @@ from django.forms.models import ModelForm from django.utils.translation import gettext_lazy as _ -from djangocms_attributes_field.widgets import AttributesWidget +from cms.forms.fields import PageSelectFormField as PageSearchField +from djangocms_attributes_field.widgets import AttributesWidget from djangocms_link.helpers import get_queryset_manager -from .fields import PageSearchField from .models import Link diff --git a/djangocms_link/helpers.py b/djangocms_link/helpers.py index e507114c..c0463364 100644 --- a/djangocms_link/helpers.py +++ b/djangocms_link/helpers.py @@ -1,4 +1,57 @@ -def get_queryset_manager(base): +from __future__ import annotations + +from django.apps import apps +from django.contrib.sites.models import Site +from django.db import models + + +def get_queryset_manager(base: models.QuerySet | models.Manager) -> models.QuerySet: if hasattr(base, "drafts"): return base.drafts() return base + + +def get_manager(model: models.Model) -> models.Manager: + if hasattr(model, "admin_manager"): + return model.admin_manager + return model.objects + + +def get_rel_obj(internal_link: str) -> models.Model | None: + if ":" in internal_link: + model, pk = internal_link.split(":", 1) + model = apps.get_model(*model.split(".", 1)) + return get_manager(model).filter(pk=pk).first() + return None + + +def get_link(link_field_value: dict, site_id: int | None = None) -> str | None: + if "external_link" in link_field_value: + if link_field_value["external_link"].startswith("tel:"): + return link_field_value["external_link"].replace(" ", "") + return link_field_value["external_link"] or None + + if "__cache__" in link_field_value: + return link_field_value["__cache__"] or None + + if "internal_link" in link_field_value: + obj = get_rel_obj(link_field_value["internal_link"]) + elif "file_link" in link_field_value: + obj = get_rel_obj("filer.file:" + str(link_field_value["file_link"])) + else: + return None + + if hasattr(obj, "get_absolute_url"): + # Access site id if possible (no db access necessary) + obj_site_id = getattr(obj, "site_id", getattr(getattr(obj, "node", None), "site_id", None)) + link_field_value["__cache__"] = obj.get_absolute_url() # Can be None + if obj_site_id and obj_site_id != site_id: + ref_site = Site.objects._get_site_by_id(obj_site_id).domain + link_field_value["__cache__"] = f"//{ref_site}{link_field_value['__cache__']}" + if link_field_value["__cache__"]: + link_field_value["__cache__"] += link_field_value.get("anchor", "") + elif hasattr(obj, "url"): + link_field_value["__cache__"] = obj.url + else: + link_field_value["__cache__"] = None + return link_field_value["__cache__"] diff --git a/djangocms_link/migrations/0017_link_link.py b/djangocms_link/migrations/0017_link_link.py new file mode 100644 index 00000000..83388792 --- /dev/null +++ b/djangocms_link/migrations/0017_link_link.py @@ -0,0 +1,52 @@ +# Generated by Django 4.2.16 on 2024-10-24 19:46 + +from django.db import migrations +import djangocms_link.fields + + +def forward(apps, schema_editor): + Link = apps.get_model("djangocms_link", "Link") + for link in Link.objects.all(): + if link.external_link: + anchor = "#" + link.anchor if link.anchor else "" + link.link = {"external_link": link.url + anchor} + elif link.internal_link: + opt = link.internal_link._meta + link.link = { + "model": f"{opt.app_label}.{opt.model_name}", + "pk": link.internal_link.pk, + } + if link.anchor: + link.link["anchor"] = "#" + link.anchor + elif link.file_link: + opt = link.file_link._meta + link.link = { + "model": f"{opt.app_label}.{opt.model_name}", + "pk": link.file_link.pk, + } + elif link.phone: + link.link = {"external_link": f"tel:{link.phone}"} + elif link.mailto: + link.link = {"external_link": f"mailto:{link.mailto}"} + elif link.anchor: + link.link = {"external_link": "#" + link.anchor} + Link.objects.bulk_update(Link.objects.all(), ["link"]) + + +def backward(apps, schema_editor): + raise NotImplementedError("Cannot reverse this migration.") + + +class Migration(migrations.Migration): + dependencies = [ + ("djangocms_link", "0001_squashed_0016_alter_link_cmsplugin_ptr"), + ] + + operations = [ + migrations.AddField( + model_name="link", + name="link", + field=djangocms_link.fields.LinkField(default={}, verbose_name="Link"), + ), + migrations.RunPython(forward, backward, elidable=True), + ] diff --git a/djangocms_link/migrations/0018_remove_link_anchor_remove_link_external_link_and_more.py b/djangocms_link/migrations/0018_remove_link_anchor_remove_link_external_link_and_more.py new file mode 100644 index 00000000..ce847aa6 --- /dev/null +++ b/djangocms_link/migrations/0018_remove_link_anchor_remove_link_external_link_and_more.py @@ -0,0 +1,36 @@ +# Generated by Django 4.2.16 on 2024-10-24 19:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("djangocms_link", "0017_link_link"), + ] + + operations = [ + migrations.RemoveField( + model_name="link", + name="anchor", + ), + migrations.RemoveField( + model_name="link", + name="external_link", + ), + migrations.RemoveField( + model_name="link", + name="file_link", + ), + migrations.RemoveField( + model_name="link", + name="internal_link", + ), + migrations.RemoveField( + model_name="link", + name="mailto", + ), + migrations.RemoveField( + model_name="link", + name="phone", + ), + ] diff --git a/djangocms_link/models.py b/djangocms_link/models.py index fab94772..4bd7b992 100644 --- a/djangocms_link/models.py +++ b/djangocms_link/models.py @@ -2,6 +2,8 @@ Enables the user to add a "Link" plugin that displays a link using the HTML tag. """ +from tabnanny import verbose + from django.conf import settings from django.contrib.sites.models import Site from django.core.exceptions import ValidationError @@ -15,6 +17,8 @@ from djangocms_attributes_field.fields import AttributesField from filer.fields.file import FilerFileField +from .fields import LinkField +from .helpers import get_link from .validators import IntranetURLValidator @@ -68,47 +72,52 @@ class AbstractLink(CMSPlugin): blank=True, max_length=255, ) - # re: max_length, see: http://stackoverflow.com/questions/417142/ - external_link = models.CharField( - verbose_name=_('External link'), - blank=True, - max_length=2040, - validators=url_validators, - help_text=_('Provide a link to an external source.'), - ) - internal_link = models.ForeignKey( - Page, - verbose_name=_('Internal link'), - blank=True, - null=True, - on_delete=models.SET_NULL, - help_text=_('If provided, overrides the external link.'), - ) - file_link = FilerFileField( - verbose_name=_('File link'), - blank=True, - null=True, - on_delete=models.SET_NULL, - help_text=_('If provided links a file from the filer app.'), - ) - # other link types - anchor = models.CharField( - verbose_name=_('Anchor'), - blank=True, - max_length=255, - help_text=_('Appends the value only after the internal or external link. ' - 'Do not include a preceding "#" symbol.'), - ) - mailto = models.EmailField( - verbose_name=_('Email address'), - blank=True, - max_length=255, - ) - phone = models.CharField( - verbose_name=_('Phone'), - blank=True, - max_length=255, + + link = LinkField( + verbose_name=_('Link'), ) + # # re: max_length, see: http://stackoverflow.com/questions/417142/ + # + # external_link = models.CharField( + # verbose_name=_('External link'), + # blank=True, + # max_length=2040, + # validators=url_validators, + # help_text=_('Provide a link to an external source.'), + # ) + # internal_link = models.ForeignKey( + # Page, + # verbose_name=_('Internal link'), + # blank=True, + # null=True, + # on_delete=models.SET_NULL, + # help_text=_('If provided, overrides the external link.'), + # ) + # file_link = FilerFileField( + # verbose_name=_('File link'), + # blank=True, + # null=True, + # on_delete=models.SET_NULL, + # help_text=_('If provided links a file from the filer app.'), + # ) + # # other link types + # anchor = models.CharField( + # verbose_name=_('Anchor'), + # blank=True, + # max_length=255, + # help_text=_('Appends the value only after the internal or external link. ' + # 'Do not include a preceding "#" symbol.'), + # ) + # mailto = models.EmailField( + # verbose_name=_('Email address'), + # blank=True, + # max_length=255, + # ) + # phone = models.CharField( + # verbose_name=_('Phone'), + # blank=True, + # max_length=255, + # ) # advanced options target = models.CharField( verbose_name=_('Target'), @@ -140,11 +149,14 @@ def __str__(self): return self.name or str(self.pk) def get_short_description(self): - if self.name and self.get_link(): - return f'{self.name} ({self.get_link()})' - return self.name or self.get_link() or gettext('') + link = self.get_link() + if self.name and link: + return f'{self.name} ({link})' + return self.name or link or gettext('') + + def get_link(self, site=None): + return get_link(self.link, site) - def get_link(self): if self.internal_link: ref_page = self.internal_link link = ref_page.get_absolute_url() @@ -203,68 +215,12 @@ def get_link(self): def clean(self): super().clean() - field_names = ( - 'external_link', - 'internal_link', - 'mailto', - 'phone', - 'file_link', - ) - anchor_field_name = 'anchor' - field_names_allowed_with_anchor = ( - 'external_link', - 'internal_link', - ) - - anchor_field_verbose_name = force_str( - self._meta.get_field(anchor_field_name).verbose_name) - anchor_field_value = getattr(self, anchor_field_name) - - link_fields = { - key: getattr(self, key) - for key in field_names - } - link_field_verbose_names = { - key: force_str(self._meta.get_field(key).verbose_name) - for key in link_fields.keys() - } - provided_link_fields = { - key: value - for key, value in link_fields.items() - if value - } - - if len(provided_link_fields) > 1: - # Too many fields have a value. - verbose_names = sorted(link_field_verbose_names.values()) - error_msg = _('Only one of {0} or {1} may be given.').format( - ', '.join(verbose_names[:-1]), - verbose_names[-1], - ) - errors = {}.fromkeys(provided_link_fields.keys(), error_msg) - raise ValidationError(errors) - - if (len(provided_link_fields) == 0 - and not self.anchor - and not self.link_is_optional): - + if not self.link_is_optional and not self.link: raise ValidationError( - _('Please provide a link.') + force_str(_('Link is required.')), + code='required', ) - if anchor_field_value: - for field_name in provided_link_fields.keys(): - if field_name not in field_names_allowed_with_anchor: - error_msg = _('%(anchor_field_verbose_name)s is not allowed together with %(field_name)s') % { - 'anchor_field_verbose_name': anchor_field_verbose_name, - 'field_name': link_field_verbose_names.get(field_name) - } - raise ValidationError({ - anchor_field_name: error_msg, - field_name: error_msg, - }) - - class Link(AbstractLink): class Meta: diff --git a/djangocms_link/static/djangocms_link/link-widget.css b/djangocms_link/static/djangocms_link/link-widget.css new file mode 100644 index 00000000..19fc4f69 --- /dev/null +++ b/djangocms_link/static/djangocms_link/link-widget.css @@ -0,0 +1,59 @@ +.link-widget { + width: 100%; + display: flex; + margin-bottom: 0.5em; + .link-type-selector { + margin-inline-end: 1em; + display: block; + flex-shrink: 1; + } + .external_link, .internal_link, .file_link, .anchor { + display: none; + width: 100%; + margin-inline-end: 1em; + padding: 0; + select, input { + width: 100%; + } + span.select2 { + display: block; + } + } + .file_link { + margin-top: 0.5em; + } + &[data-type="external_link"] .external_link, + &[data-type="internal_link"] .internal_link, + &[data-type="internal_link"] .anchor, + &[data-type="file_link"], &[data-type="file_link"] .file_link + { + display: block + } + &[data-type="file_link"] .link-type-selector, + &[data-type="empty"] .link-type-selector{ + margin-inline-end: 0; + width: 33%; + } + .link-settings-menu { + margin-inline-start: 1em; + float: right; + position: relative; + border-width: 1px; + border-style: solid; + border-radius: 3px; + border-color: var(--dca-gray-light, var(--border-color)); + padding: 1rem; + box-sizing: border-box; + height: 1px; + width: 1px; + svg { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + } + .select2-container .select2-selection--single { + height: 2.55em; + } +} diff --git a/djangocms_link/static/djangocms_link/link-widget.js b/djangocms_link/static/djangocms_link/link-widget.js new file mode 100644 index 00000000..86ca4da8 --- /dev/null +++ b/djangocms_link/static/djangocms_link/link-widget.js @@ -0,0 +1,28 @@ +/* eslint-env es11 */ +/* jshint esversion: 11 */ +/* global document */ + +document.addEventListener('DOMContentLoaded' , () => { + 'use strict'; + + const updateSelection = (el) => { + const widget = el.closest('.link-widget'); + const help = widget.closest('.form-row')?.querySelector('div.help'); + widget.dataset.type = el.value; + + if (help) { + if (el.value === 'empty') { + help.textContent = el.dataset.help || ''; + } else { + help.textContent = widget.querySelector(`[widget="${el.value}"]`)?.dataset.help || ''; + } + } + }; + for (let item of document.querySelectorAll('.js-link-widget-selector')) { + updateSelection(item); + item.addEventListener("change", (e) => { + updateSelection(e.target); + e.target.closest('.link-widget').querySelector('input[widget="anchor"]').value = ''; + }); + } +}); diff --git a/djangocms_link/templates/djangocms_link/admin/link_widget.html b/djangocms_link/templates/djangocms_link/admin/link_widget.html new file mode 100644 index 00000000..7480e7c5 --- /dev/null +++ b/djangocms_link/templates/djangocms_link/admin/link_widget.html @@ -0,0 +1,6 @@ +{% spaceless %}{% endspaceless %} diff --git a/djangocms_link/templates/djangocms_link/default/link.html b/djangocms_link/templates/djangocms_link/default/link.html index fb7f277b..27815549 100644 --- a/djangocms_link/templates/djangocms_link/default/link.html +++ b/djangocms_link/templates/djangocms_link/default/link.html @@ -1,17 +1,3 @@ {% load cms_tags %}{% spaceless %} - {# this needs to be in one line for rendering purpose #} -{% endspaceless %}{% for plugin in instance.child_plugin_instances %}{% render_plugin plugin %}{% empty %}{{ instance.name }}{% endfor %}{% spaceless %} - -{% endspaceless %}{% comment %} -# https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a - {{ instance.name }} - {{ link }} or {{ instance.get_link }} summarizes: - {{ instance.external_link }} - {{ instance.internal_link }} - {{ instance.anchor }} - {{ instance.mailto }} - {{ instance.phone }} - {{ instance.target }} - {{ instance.attributes_str }} -{% endcomment %} \ No newline at end of file +{% endspaceless %}{% if link %}{% for plugin in instance.child_plugin_instances %}{% render_plugin plugin %}{% empty %}{{ instance.name }}{% endfor %}{% else %}{% for plugin in instance.child_plugin_instances %}{% render_plugin plugin %}{% empty %}{{ instance.name }}{% endfor %}{% endif %} \ No newline at end of file diff --git a/djangocms_link/templatetags/__init__.py b/djangocms_link/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/djangocms_link/templatetags/djangocms_link_tags.py b/djangocms_link/templatetags/djangocms_link_tags.py new file mode 100644 index 00000000..b8c3a1b1 --- /dev/null +++ b/djangocms_link/templatetags/djangocms_link_tags.py @@ -0,0 +1,19 @@ +from django import template + +from djangocms_link.helpers import get_link + + +register = template.Library() + + +@register.filter +def to_url(value): + if not value: + return "" + + return get_link(value) or "" + + +@register.simple_tag +def get_url(context, value): + return to_url(value) diff --git a/djangocms_link/validators.py b/djangocms_link/validators.py index c456d694..dbb66e99 100644 --- a/djangocms_link/validators.py +++ b/djangocms_link/validators.py @@ -1,6 +1,9 @@ import re -from django.core.validators import URLValidator +from django.core.exceptions import ValidationError +from django.core.validators import EmailValidator, URLValidator +from django.utils.deconstruct import deconstructible +from django.utils.translation import gettext as _ class IntranetURLValidator(URLValidator): @@ -40,3 +43,47 @@ def __init__(self, intranet_host_re=None, **kwargs): r'(?::\d{2,5})?' r'(?:[/?#][^\s]*)?' r'$', re.IGNORECASE) + + +@deconstructible +class AnchorValidator: + message = _("Enter a valid anchor.") + code = "invalid" + + def __call__(self, value): + value = value.lstrip("#") + if not value: + return value + print("AnchorValidator", value) + if not isinstance(value, str) or len(value) > 100: + raise ValidationError(self.message, code=self.code, params={"value": value}) + + if not re.match(r'^[a-zA-Z0-9_\-]+$', value): + raise ValidationError(self.message, code=self.code, params={"value": value}) + return value + + +class ExtendedURLValidator(URLValidator): + # Phone numbers don't match the host regex in Django's validator, + # so we test for a simple alternative. + tel_re = r'^tel\:[0-9\#\*\-\.\(\)\+]+$' + + def __call__(self, value): + if not isinstance(value, str) or len(value) > self.max_length: + raise ValidationError(self.message, code=self.code, params={"value": value}) + if self.unsafe_chars.intersection(value): + raise ValidationError(self.message, code=self.code, params={"value": value}) + # Check if just an anchor + if value.startswith("#"): + return AnchorValidator()(value) + # Check if the scheme is valid. + scheme = value.split(":")[0].lower() + if scheme == "tel": + if re.match(self.tel_re, value): + return + else: + raise ValidationError(_("Enter a valid phone number"), code=self.code, params={"value": value}) + if scheme == "mailto": + return EmailValidator()(value[7:]) + return super().__call__(value) + diff --git a/setup.py b/setup.py index 4deb3e46..f8925585 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,6 @@ REQUIREMENTS = [ 'django-cms>=3.7', - 'django-filer>=1.7', 'djangocms-attributes-field>=1', ] diff --git a/tests/test_fields.py b/tests/test_fields.py index ec91981e..e47f520c 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1,15 +1,6 @@ from django.conf import settings from django.test import TestCase -from djangocms_link.fields import PageSearchField, is_select2_enabled -from djangocms_link.fields_select2 import Select2PageSearchField - class LinkFieldTestCase(TestCase): - - def test_field_with_django_select2_extension(self): - self.assertTrue('django_select2' in settings.INSTALLED_APPS) - self.assertTrue(is_select2_enabled()) - settings.INSTALLED_APPS.remove("django_select2") - self.assertFalse(is_select2_enabled()) - self.assertEqual(PageSearchField, Select2PageSearchField) + pass diff --git a/tests/test_models.py b/tests/test_models.py index 97cf5226..78fec6ba 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -17,15 +17,45 @@ def setUp(self): language='en', ) self.file = get_filer_file() - self.link = Link.objects.create( + self.internal_link = Link.objects.create( template="default", name="My Link", - internal_link=self.page, - external_link="http://www.divio.com", - file_link=self.file, - anchor="some_id", - mailto="test@email.com", - phone="+01 234 567 89", + link={"internal_link": f"cms.page:{self.page.pk}", "anchor": "#some_id"}, + target=TARGET_CHOICES[0][0], + attributes="{'data-type', 'link'}", + ) + self.external_link = Link.objects.create( + template="default", + name="My Link", + link={"external_link": "https://www.django-cms.org/#some_id"}, + target=TARGET_CHOICES[0][0], + attributes="{'data-type', 'link'}", + ) + self.phone_link = Link.objects.create( + template="default", + name="My Link", + link={"external_link": "tel:+01 234 567 89"}, + target=TARGET_CHOICES[0][0], + attributes="{'data-type', 'link'}", + ) + self.mail_link = Link.objects.create( + template="default", + name="My Link", + link={"external_link": "mailto:test@email.com"}, + target=TARGET_CHOICES[0][0], + attributes="{'data-type', 'link'}", + ) + self.anchor_link = Link.objects.create( + template="default", + name="My Link", + link={"external_link": "#some_id"}, + target=TARGET_CHOICES[0][0], + attributes="{'data-type', 'link'}", + ) + self.file_link = Link.objects.create( + template="default", + name="My Link", + link={"file_link": self.file.pk}, target=TARGET_CHOICES[0][0], attributes="{'data-type', 'link'}", ) @@ -35,57 +65,45 @@ def tearDown(self): self.page.delete() def test_link_instance(self): - instance = self.link - instance = Link.objects.all() - self.assertEqual(instance.count(), 1) + instances = Link.objects.all() + self.assertEqual(instances.count(), 6) # 4 instances created in setUp + instance = Link.objects.first() self.assertEqual(instance.template, "default") self.assertEqual(instance.name, "My Link") - self.assertEqual(instance.external_link, "http://www.divio.com") - self.assertEqual(instance.anchor, "some_id") - self.assertEqual(instance.mailto, "test@email.com") - self.assertEqual(instance.phone, "+01 234 567 89") self.assertEqual(instance.target, "_blank") self.assertEqual(instance.attributes, "{'data-type', 'link'}") + # test strings self.assertEqual(str(instance), "My Link") - # we test these later in get_link - instance.internal_link = None - instance.file_link = None + + def test_get_short_description(self): + """""" + instance = self.external_link self.assertEqual( instance.get_short_description(), - "My Link (http://www.divio.com)", + "My Link (https://www.django-cms.org/#some_id)", ) instance.name = None - self.assertEqual(str(instance), "1") - self.assertEqual(instance.get_short_description(), "http://www.divio.com") - instance.external_link = None - instance.internal_link = None - instance.file_link = None - instance.phone = None - instance.mailto = None - instance.anchor = None + self.assertEqual(str(instance), str(instance.pk)) + self.assertEqual(instance.get_short_description(), "https://www.django-cms.org/#some_id") + + instance.link = {} self.assertEqual(instance.get_short_description(), "") def test_get_link(self): - instance = self.link - with self.assertRaises(ValidationError): - # should throw an error as too many values are provided - instance.clean() - self.assertEqual(instance.get_link(), "//example.com" + self.page.get_absolute_url()) - instance.internal_link = None - self.assertEqual(instance.get_link(), self.file.url) - instance.file_link = None - self.assertEqual(instance.get_link(), "http://www.divio.com") - instance.external_link = None - self.assertEqual(instance.get_link(), "tel:+0123456789") - instance.phone = None - self.assertEqual(instance.get_link(), "mailto:test@email.com") - instance.mailto = None - self.assertEqual(instance.get_link(), "#some_id") + self.assertEqual(self.internal_link.get_link(), "//example.com" + self.page.get_absolute_url() + "#some_id") + self.assertEqual(self.file_link.get_link(), self.file.url) + self.assertEqual(self.external_link.get_link(), "https://www.django-cms.org/#some_id") + self.assertEqual(self.phone_link.get_link(), "tel:+0123456789") + self.assertEqual(self.mail_link.get_link(), "mailto:test@email.com") + self.assertEqual(self.anchor_link.get_link(), "#some_id") + + def test_respect_link_is_optional(self): # by now the configuration is good again + instance = self.internal_link instance.clean() - instance.anchor = None + instance.link = {} with self.assertRaises(ValidationError): # this should error again as no link is defined instance.clean() @@ -93,14 +111,3 @@ def test_get_link(self): instance.link_is_optional = True instance.clean() - def test_not_allowed_attributes(self): - instance = self.link - instance.internal_link = None - instance.external_link = None - instance.phone = None - instance.file_link = None - with self.assertRaises(ValidationError): - # anchor is not compatible with all fields (e.g. phone, mailto) - instance.clean() - instance.mailto = None - instance.clean() diff --git a/tests/test_plugins.py b/tests/test_plugins.py index b2c5302c..b64bdd05 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -50,7 +50,7 @@ def test_link_plugin(self): placeholder=self.placeholder, plugin_type=LinkPlugin.__name__, language=self.language, - internal_link=self.page, + link={"internal_link": f"cms.page:{self.page.pk}"}, ) plugin.full_clean() self.assertEqual(plugin.plugin_type, "LinkPlugin") @@ -62,7 +62,7 @@ def test_plugin_structure(self): placeholder=self.placeholder, plugin_type=LinkPlugin.__name__, language=self.language, - internal_link=self.page, + link={"internal_link": f"cms.page:{self.page.pk}"}, name="Page link", ) self.publish(self.page, self.language) @@ -81,8 +81,9 @@ def test_full_plugin_render(self): ) data = { "template": "default", - "external_link": "https://www.google.com", - "name": "External link" + "link_0": "external_link", + "link_2": "https://www.google.com", + "name": "External link", } with self.login_user_context(self.superuser), warnings.catch_warnings(): @@ -119,13 +120,16 @@ def test_optional_link(self): plugin.clean() def test_in_placeholders(self): + from djangocms_link.helpers import get_link + plugin = add_plugin( self.get_placeholders(self.page, self.language).get(slot='content'), 'LinkPlugin', 'en', - internal_link=self.page, + link={"internal_link": f"cms.page:{self.page.pk}"}, ) - self.assertEqual(plugin.get_link(), '/en/content/') + site = getattr(self.page, "site", self.page.node.site) + self.assertEqual(get_link(plugin.link, site.id), '/en/content/') placeholder = Placeholder(slot="generated_placeholder") placeholder.save() @@ -134,7 +138,7 @@ def test_in_placeholders(self): placeholder, 'LinkPlugin', 'en', - internal_link=self.static_page, + link={"internal_link": f"cms.page:{self.static_page.pk}"}, ) # the generated placeholder has no page attached to it, thus: self.assertEqual(plugin.get_link(), '//example.com/en/static-content/') @@ -150,14 +154,14 @@ def test_in_placeholders(self): static_placeholder.draft, 'LinkPlugin', 'en', - internal_link=self.page, + link={"internal_link": f"cms.page:{self.page.pk}"}, ) plugin_b = add_plugin( static_placeholder.public, 'LinkPlugin', 'en', - internal_link=self.static_page, + link={"internal_link": f"cms.page:{self.static_page.pk}"}, ) # static placeholders will always return the full path self.assertEqual(plugin_a.get_link(), '//example.com/en/content/') @@ -168,7 +172,7 @@ def test_file(self): self.get_placeholders(self.page, self.language).get(slot="content"), "LinkPlugin", "en", - file_link=self.file, + link={"file_link": str(self.file.pk)}, ) self.assertIn("test_file.pdf", plugin.get_link()) self.assertIn("/media/filer_public/", plugin.get_link()) From a95a65861821d5ee86ea5d4f7d947a286aa173e5 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Fri, 25 Oct 2024 21:23:43 +0200 Subject: [PATCH 02/93] Update test action --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 96f8208d..8e86a0d0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,7 +33,7 @@ jobs: python setup.py install - name: Run coverage - run: coverage run setup.py test + run: coverage run ./tests/settings.py - name: Upload Coverage to Codecov uses: codecov/codecov-action@v1 From f7f2fa20c4b4278479e9c88cee3b627f33750adb Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Fri, 25 Oct 2024 21:29:32 +0200 Subject: [PATCH 03/93] Fix linting issues --- djangocms_link/admin.py | 16 ++++++++-------- djangocms_link/apps.py | 1 + djangocms_link/fields.py | 4 ++-- djangocms_link/forms.py | 1 + djangocms_link/migrations/0017_link_link.py | 3 ++- djangocms_link/models.py | 7 ++----- djangocms_link/validators.py | 1 - 7 files changed, 16 insertions(+), 17 deletions(-) diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index 3c4bc288..07b83dba 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -1,16 +1,17 @@ -from cms.models import Page, PageContent -from cms.utils import get_language_from_request from django.apps import apps from django.contrib import admin -from django.core.exceptions import PermissionDenied, FieldError -from django.http import JsonResponse, Http404 +from django.core.exceptions import FieldError, PermissionDenied +from django.http import JsonResponse from django.urls import path from django.views.generic.list import BaseListView from cms import __version__ +from cms.models import Page, PageContent +from cms.utils import get_language_from_request from . import models + _version = int(__version__.split(".")[0]) @@ -96,15 +97,14 @@ def get_queryset(self): ) else: # django CMS 3 - qs = list( - PageContent.objects.filter(language=self.language, title__icontains=self.term).order_by("page__node__path") - ) + qs = list(PageContent.objects.filter( + language=self.language, title__icontains=self.term + ).order_by("page__node__path")) for page_content in qs: # Patch the missing get_absolute_url method page_content.get_absolute_url = lambda: page_content.page.get_absolute_url() return qs - def process_request(self, request): """ Validate request integrity, extract and return request parameters. diff --git a/djangocms_link/apps.py b/djangocms_link/apps.py index 1a1da5c0..68722e7d 100644 --- a/djangocms_link/apps.py +++ b/djangocms_link/apps.py @@ -1,6 +1,7 @@ from django.apps import AppConfig from django.utils.translation import gettext_lazy as _ + class DjangoCmsLinkConfig(AppConfig): name = "djangocms_link" verbose_name = _("django CMS Link") diff --git a/djangocms_link/fields.py b/djangocms_link/fields.py index b399182b..b531b9e5 100644 --- a/djangocms_link/fields.py +++ b/djangocms_link/fields.py @@ -11,6 +11,7 @@ from cms.utils.urlutils import admin_reverse + try: from filer.fields.file import AdminFileWidget, FilerFileField from filer.models import File @@ -239,7 +240,7 @@ def run_validators(self, value): self.validators = getattr(self, f"{link_type}_validators", []) super().run_validators(value[link_type]) if "anchor" in value: - self.validators = getattr(self, f"anchor_validators", []) + self.validators = getattr(self, "anchor_validators", []) super().run_validators(value["anchor"]) def _get_pos(self, link_type): @@ -247,7 +248,6 @@ def _get_pos(self, link_type): return self.widget.data_pos.get(link_type) - class LinkField(JSONField): """A link is a JSON field with a default LinkFormField""" diff --git a/djangocms_link/forms.py b/djangocms_link/forms.py index 470af553..12acf949 100644 --- a/djangocms_link/forms.py +++ b/djangocms_link/forms.py @@ -4,6 +4,7 @@ from cms.forms.fields import PageSelectFormField as PageSearchField from djangocms_attributes_field.widgets import AttributesWidget + from djangocms_link.helpers import get_queryset_manager from .models import Link diff --git a/djangocms_link/migrations/0017_link_link.py b/djangocms_link/migrations/0017_link_link.py index 83388792..7e16e32e 100644 --- a/djangocms_link/migrations/0017_link_link.py +++ b/djangocms_link/migrations/0017_link_link.py @@ -1,6 +1,7 @@ # Generated by Django 4.2.16 on 2024-10-24 19:46 from django.db import migrations + import djangocms_link.fields @@ -39,7 +40,7 @@ def backward(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ("djangocms_link", "0001_squashed_0016_alter_link_cmsplugin_ptr"), + ("djangocms_link", "0016_alter_link_cmsplugin_ptr"), ] operations = [ diff --git a/djangocms_link/models.py b/djangocms_link/models.py index 4bd7b992..a5452dc8 100644 --- a/djangocms_link/models.py +++ b/djangocms_link/models.py @@ -2,8 +2,6 @@ Enables the user to add a "Link" plugin that displays a link using the HTML tag. """ -from tabnanny import verbose - from django.conf import settings from django.contrib.sites.models import Site from django.core.exceptions import ValidationError @@ -12,10 +10,9 @@ from django.utils.translation import gettext from django.utils.translation import gettext_lazy as _ -from cms.models import CMSPlugin, Page +from cms.models import CMSPlugin from djangocms_attributes_field.fields import AttributesField -from filer.fields.file import FilerFileField from .fields import LinkField from .helpers import get_link @@ -221,7 +218,7 @@ def clean(self): code='required', ) -class Link(AbstractLink): +class Link(AbstractLink): class Meta: abstract = False diff --git a/djangocms_link/validators.py b/djangocms_link/validators.py index dbb66e99..7f182a7c 100644 --- a/djangocms_link/validators.py +++ b/djangocms_link/validators.py @@ -86,4 +86,3 @@ def __call__(self, value): if scheme == "mailto": return EmailValidator()(value[7:]) return super().__call__(value) - From f3c56e8b928872f2ad578a11163bb0526cdd48be Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Fri, 25 Oct 2024 21:31:10 +0200 Subject: [PATCH 04/93] More liniting --- tests/test_fields.py | 1 - tests/test_models.py | 1 - 2 files changed, 2 deletions(-) diff --git a/tests/test_fields.py b/tests/test_fields.py index e47f520c..00cb333b 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1,4 +1,3 @@ -from django.conf import settings from django.test import TestCase diff --git a/tests/test_models.py b/tests/test_models.py index 78fec6ba..a5937416 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -110,4 +110,3 @@ def test_respect_link_is_optional(self): # now we allow the link to be empty instance.link_is_optional = True instance.clean() - From c8882ed7642246283089e9329a3addd56b17b8a7 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Fri, 25 Oct 2024 21:36:08 +0200 Subject: [PATCH 05/93] fix: v3 compatibility --- README.rst | 4 ++-- djangocms_link/admin.py | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 468022f5..35587038 100644 --- a/README.rst +++ b/README.rst @@ -143,9 +143,9 @@ You can run tests by executing:: .. |coverage| image:: https://codecov.io/gh/divio/djangocms-link/branch/master/graph/badge.svg :target: https://codecov.io/gh/divio/djangocms-link -.. |python| image:: https://img.shields.io/badge/python-3.5+-blue.svg +.. |python| image:: https://img.shields.io/badge/python-3.10+-blue.svg :target: https://pypi.org/project/djangocms-link/ -.. |django| image:: https://img.shields.io/badge/django-2.2,%203.0,%203.1-blue.svg +.. |django| image:: https://img.shields.io/badge/django-4.2,%205.0,%205.1-blue.svg :target: https://www.djangoproject.com/ .. |djangocms| image:: https://img.shields.io/badge/django%20CMS-3.7%2B-blue.svg :target: https://www.django-cms.org/ diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index 07b83dba..f2d83464 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -6,13 +6,17 @@ from django.views.generic.list import BaseListView from cms import __version__ -from cms.models import Page, PageContent +from cms.models import Page from cms.utils import get_language_from_request from . import models _version = int(__version__.split(".")[0]) +if _version >= 4: + from cms.models import PageContent +else: + from cms.models import Title as PageContent class UrlsJsonView(BaseListView): From efc6fd1d08333153e320edfb1219b2fb8534667a Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 01:32:12 +0200 Subject: [PATCH 06/93] Add two step select2 internal link widget --- README.rst | 8 +- djangocms_link/admin.py | 24 ++++-- djangocms_link/fields.py | 63 ++++++++++++++-- .../static/djangocms_link/link-widget.css | 75 ++++++++++++------- .../static/djangocms_link/link-widget.js | 16 +++- djangocms_link/validators.py | 4 +- tests/test_plugins.py | 26 +++++++ tests/test_validators.py | 41 ++++++++-- 8 files changed, 206 insertions(+), 51 deletions(-) diff --git a/README.rst b/README.rst index 35587038..b2fd783f 100644 --- a/README.rst +++ b/README.rst @@ -150,7 +150,7 @@ You can run tests by executing:: .. |djangocms| image:: https://img.shields.io/badge/django%20CMS-3.7%2B-blue.svg :target: https://www.django-cms.org/ -Updating from version 4 or lower +Upgrading from version 4 or lower -------------------------------- django CMS Link 5 is a rewrite of the plugin. If you are updating from @@ -172,6 +172,6 @@ fields. .. warning:: Migration has worked for some people seamlessly. We strongly recommend to - backup your database before updating to version 5. If you encounter any - issues, please report them on - `GitHub `_. + backup your database before updating to version 5. If you encounter any + issues, please report them on + `GitHub `_. diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index f2d83464..0f890acf 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -38,7 +38,7 @@ def get(self, request, *args, **kwargs): # Get name of a reference return self.get_reference(request) - self.term, self.language = self.process_request(request) + self.term, self.language, self.site = self.process_request(request) if not self.has_perm(request): raise PermissionDenied @@ -87,23 +87,32 @@ def get_queryset(self): if _version >= 4: try: # django CMS 4.2+ - qs = list( + qs = ( PageContent.admin_manager.filter(language=self.language, title__icontains=self.term) .current_content() .order_by("page__path") ) + if self.site: + qs = qs.filter(page__site_id=self.site) + qs = list(qs) except FieldError: # django CMS 4.0 - 4.1 - qs = list( + qs = ( PageContent.admin_manager.filter(language=self.language, title__icontains=self.term) .current_content() .order_by("page__node__path") ) + if self.site: + qs = qs.filter(page__site_id=self.site) + qs = list(qs) else: # django CMS 3 - qs = list(PageContent.objects.filter( + qs = (PageContent.objects.filter( language=self.language, title__icontains=self.term ).order_by("page__node__path")) + if self.site: + qs = qs.filter(page__node_site_id=self.site) + qs = list(qs) for page_content in qs: # Patch the missing get_absolute_url method page_content.get_absolute_url = lambda: page_content.page.get_absolute_url() @@ -114,8 +123,13 @@ def process_request(self, request): Validate request integrity, extract and return request parameters. """ term = request.GET.get("term", "").strip("  ").lower() + site = request.GET.get("app_label", "") # Django admin's app_label is abused as site id + try: + site = int(site) + except ValueError: + site = None language = get_language_from_request(request) - return term, language + return term, language, site def has_perm(self, request, obj=None): """Check if user has permission to access the related model.""" diff --git a/djangocms_link/fields.py b/djangocms_link/fields.py index b531b9e5..ee6e20ec 100644 --- a/djangocms_link/fields.py +++ b/djangocms_link/fields.py @@ -4,8 +4,9 @@ from django.conf import settings from django.contrib.admin import site from django.contrib.admin.widgets import SELECT2_TRANSLATIONS, AutocompleteSelect -from django.db.models import JSONField, ManyToOneRel -from django.forms import Field, MultiWidget, Select, TextInput, URLInput +from django.contrib.sites.models import Site +from django.db.models import JSONField, ManyToOneRel, ForeignKey, SET_NULL +from django.forms import Field, MultiWidget, Select, TextInput, URLInput, CheckboxInput from django.utils.translation import get_language from django.utils.translation import gettext_lazy as _ @@ -35,6 +36,9 @@ class LinkAutoCompleteWidget(AutocompleteSelect): + def __init__(self, attrs=None): + super().__init__(None, None, attrs) + def get_internal_obj(self, values): internal_obj = [] for value in values: @@ -105,15 +109,57 @@ def build_attrs(self, base_attrs, extra_attrs=None): return attrs +class SiteAutocompleteSelect(AutocompleteSelect): + no_sites = None + + def __init__(self, attrs=None): + try: + from cms.models.pagemodel import TreeNode + + field = TreeNode._meta.get_field("site") + except ImportError: + from cms.models import Page + + field = Page._meta.get_field("site") + super().__init__(field, site, attrs) + + def optgroups(self, name, value, attr=None): + default = (None, [], 0) + groups = [default] + has_selected = False + selected_choices = set(value) + default[1].append(self.create_option(name, "", "", False, 0)) + + site = Site.objects.get_current() + option_value, option_label = site.pk, str(site) + + selected = str(option_value) in value and ( + has_selected is False or self.allow_multiple_selected + ) + has_selected |= selected + index = len(default[1]) + subgroup = default[1] + subgroup.append( + self.create_option( + name, option_value, option_label, selected_choices, index + ) + ) + return groups + + class LinkWidget(MultiWidget): template_name = "djangocms_link/admin/link_widget.html" data_pos = {} - + number_sites = None class Media: js = ("djangocms_link/link-widget.js",) css = {"all": ("djangocms_link/link-widget.css",)} def __init__(self): + # Get the number of sites only once + if LinkWidget.number_sites is None: + LinkWidget.number_sites = Site.objects.count() + widgets = [ Select( choices=list(link_types.items()), @@ -122,14 +168,20 @@ def __init__(self): "data-help": _("No destination selected. Use the dropdown to select a destination.") }, ), # Link type selector + SiteAutocompleteSelect( + attrs={ + "class": "js-link-site-widget", + "widget": "site", + "data-placeholder": "XXX", #_("Select site"), + }, + ), # Site selector LinkAutoCompleteWidget( - field=None, - admin_site=None, attrs={ "widget": "internal_link", "data-help": _( "Select from available internal destinations. Optionally, add an anchor to scroll to." ), + "data-placeholder": _("Select internal destination"), }, ), # Internal link selector URLInput( @@ -161,6 +213,7 @@ def __init__(self): }, ), ) + # Remember which widget expets its content at which position self.data_pos = { widget.attrs.get("widget"): i for i, widget in enumerate(widgets) diff --git a/djangocms_link/static/djangocms_link/link-widget.css b/djangocms_link/static/djangocms_link/link-widget.css index 19fc4f69..9a70b123 100644 --- a/djangocms_link/static/djangocms_link/link-widget.css +++ b/djangocms_link/static/djangocms_link/link-widget.css @@ -1,58 +1,75 @@ .link-widget { width: 100%; - display: flex; + display: block; margin-bottom: 0.5em; .link-type-selector { margin-inline-end: 1em; - display: block; - flex-shrink: 1; + display: inline-block; + width: calc(25% - 1em); + flex-shrink: 2; + select { + width: 100%; + min-width: unset; + } } - .external_link, .internal_link, .file_link, .anchor { + .external_link, .internal_link, .file_link, .anchor, .site { display: none; - width: 100%; - margin-inline-end: 1em; padding: 0; select, input { width: 100%; } span.select2 { - display: block; + display: inline-block; + width: 100% !important; } } + .external_link { + width: 75%; + } + .internal_link { + width: calc(60% - 1em); + margin-inline-end: 1em; + } + .anchor { + width: 15%; /* end of line, no 1em margin to remove */ + } .file_link { margin-top: 0.5em; } &[data-type="external_link"] .external_link, &[data-type="internal_link"] .internal_link, - &[data-type="internal_link"] .anchor, - &[data-type="file_link"], &[data-type="file_link"] .file_link + &[data-type="internal_link"] .site, + &[data-type="internal_link"] .anchor { - display: block + display: inline-block; + } + &[data-type="file_link"] .file_link { + display: block; + width: 100%; } &[data-type="file_link"] .link-type-selector, &[data-type="empty"] .link-type-selector{ margin-inline-end: 0; - width: 33%; - } - .link-settings-menu { - margin-inline-start: 1em; - float: right; - position: relative; - border-width: 1px; - border-style: solid; - border-radius: 3px; - border-color: var(--dca-gray-light, var(--border-color)); - padding: 1rem; - box-sizing: border-box; - height: 1px; - width: 1px; - svg { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); + } + + &:has(.site) { + /* if site subwidget is present, arrange widgets in two lines */ + .site { + width: 75%; + margin-inline-end: 0; + margin-bottom: 0.5em; + } + .internal_link { + width: calc(60% - 1em); + margin-inline-start: 25%; + margin-inline-end: 1em; } + .anchor ( + margin-top: -3em; + ) + ) } + .select2-container .select2-selection--single { height: 2.55em; } diff --git a/djangocms_link/static/djangocms_link/link-widget.js b/djangocms_link/static/djangocms_link/link-widget.js index 86ca4da8..47e737fa 100644 --- a/djangocms_link/static/djangocms_link/link-widget.js +++ b/djangocms_link/static/djangocms_link/link-widget.js @@ -1,6 +1,6 @@ /* eslint-env es11 */ /* jshint esversion: 11 */ -/* global document */ +/* global document django */ document.addEventListener('DOMContentLoaded' , () => { 'use strict'; @@ -25,4 +25,18 @@ document.addEventListener('DOMContentLoaded' , () => { e.target.closest('.link-widget').querySelector('input[widget="anchor"]').value = ''; }); } + + // If site widget changes, clear internal link widget + for (let item of document.querySelectorAll('.js-link-site-widget')) { + console.warn(item); + django.jQuery(item).on('change', e => { + const site_select2 = django.jQuery(e.target); + const internal_link_select2 = site_select2.closest('.link-widget').find('[widget="internal_link"]'); + internal_link_select2.attr('data-app-label', site_select2.val()); + internal_link_select2.val(null).trigger('change'); + }); + item.addEventListener("change", (e) => { + console.warn(e.target.closest('.link-widget').querySelector('[widget="internal_link"]')); + }); + } }); diff --git a/djangocms_link/validators.py b/djangocms_link/validators.py index 7f182a7c..eb2bac5a 100644 --- a/djangocms_link/validators.py +++ b/djangocms_link/validators.py @@ -63,10 +63,10 @@ def __call__(self, value): return value -class ExtendedURLValidator(URLValidator): +class ExtendedURLValidator(IntranetURLValidator): # Phone numbers don't match the host regex in Django's validator, # so we test for a simple alternative. - tel_re = r'^tel\:[0-9\#\*\-\.\(\)\+]+$' + tel_re = r'^tel\:[0-9 \#\*\-\.\(\)\+]+$' def __call__(self, value): if not isinstance(value, str) or len(value) > self.max_length: diff --git a/tests/test_plugins.py b/tests/test_plugins.py index b64bdd05..8bd7f4ff 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -176,3 +176,29 @@ def test_file(self): ) self.assertIn("test_file.pdf", plugin.get_link()) self.assertIn("/media/filer_public/", plugin.get_link()) + + def test_rendering(self): + plugin = add_plugin( + self.get_placeholders(self.page, self.language).get(slot="content"), + "LinkPlugin", + "en", + name="Link", + link={"internal_link": f"cms.page:{self.page.pk}"}, + ) + self.publish(self.page, self.language) + + response = self.client.get(self.page.get_absolute_url(self.language)) + self.assertContains(response, 'Link') + + def test_rendering_fallback(self): + plugin = add_plugin( + self.get_placeholders(self.page, self.language).get(slot="content"), + "LinkPlugin", + "en", + name="Link", + link={"internal_link": f"cms.page:0"}, + ) + self.publish(self.page, self.language) + + response = self.client.get(self.page.get_absolute_url(self.language)) + self.assertContains(response, 'Link') diff --git a/tests/test_validators.py b/tests/test_validators.py index 1d278c5b..3ee3ee7e 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -1,21 +1,52 @@ from django.test import TestCase from djangocms_link.models import HOSTNAME -from djangocms_link.validators import IntranetURLValidator +from djangocms_link.validators import ExtendedURLValidator class LinkValidatorTestCase(TestCase): + def assertValidates(self, validator, value): + try: + validator(value) + except Exception as e: + self.fail(f"Validation of {value} failed with {e}") + + def assertDoesNotValidate(self, validator, value): + try: + validator(value) + self.fail(f"Validation of {value} unexpectedly did not fail") + except Exception as e: + pass def test_intranet_host_re(self): host = r'[a-z,0-9,-]{1,15}' host_re = ( - '(' + IntranetURLValidator.hostname_re - + IntranetURLValidator.domain_re - + IntranetURLValidator.tld_re + + '(' + ExtendedURLValidator.hostname_re + + ExtendedURLValidator.domain_re + + ExtendedURLValidator.tld_re + '|' + host + '|localhost)' ) - validator = IntranetURLValidator( + validator = ExtendedURLValidator( intranet_host_re=host, ) self.assertEqual(validator.host_re, host_re) self.assertIsNone(HOSTNAME) + + def test_tel_validation(self): + validator = ExtendedURLValidator() + + self.assertValidates(validator, "tel:0123456789") + self.assertValidates(validator, "tel:01 234 567 89") + self.assertValidates(validator, "tel:+01 234 567 89") + self.assertDoesNotValidate(validator, "tel:") + self.assertDoesNotValidate(validator, "tel:0800-django-cms") + self.assertDoesNotValidate(validator, "tel:info@django-cms.org") + + def test_mailto_validation(self): + validator = ExtendedURLValidator() + + self.assertValidates(validator, "mailto:info@django-cms.org") + self.assertValidates(validator, "mailto:test@long.subdomain.path.email.com") + self.assertDoesNotValidate(validator, "mailto:info@localhost") + self.assertDoesNotValidate(validator, "mailto:") + self.assertDoesNotValidate(validator, "mailto: info@django-cms.org") From fcfbcdf685c0a5b6c4eef04089d7860c674ed200 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 01:35:04 +0200 Subject: [PATCH 07/93] Fix linting issues --- djangocms_link/fields.py | 7 ++++--- tests/test_plugins.py | 6 +++--- tests/test_validators.py | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/djangocms_link/fields.py b/djangocms_link/fields.py index ee6e20ec..7fa16d8e 100644 --- a/djangocms_link/fields.py +++ b/djangocms_link/fields.py @@ -5,8 +5,8 @@ from django.contrib.admin import site from django.contrib.admin.widgets import SELECT2_TRANSLATIONS, AutocompleteSelect from django.contrib.sites.models import Site -from django.db.models import JSONField, ManyToOneRel, ForeignKey, SET_NULL -from django.forms import Field, MultiWidget, Select, TextInput, URLInput, CheckboxInput +from django.db.models import JSONField, ManyToOneRel +from django.forms import Field, MultiWidget, Select, TextInput, URLInput from django.utils.translation import get_language from django.utils.translation import gettext_lazy as _ @@ -151,6 +151,7 @@ class LinkWidget(MultiWidget): template_name = "djangocms_link/admin/link_widget.html" data_pos = {} number_sites = None + class Media: js = ("djangocms_link/link-widget.js",) css = {"all": ("djangocms_link/link-widget.css",)} @@ -172,7 +173,7 @@ def __init__(self): attrs={ "class": "js-link-site-widget", "widget": "site", - "data-placeholder": "XXX", #_("Select site"), + "data-placeholder": _("Select site"), }, ), # Site selector LinkAutoCompleteWidget( diff --git a/tests/test_plugins.py b/tests/test_plugins.py index 8bd7f4ff..d7fd0ff8 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -178,7 +178,7 @@ def test_file(self): self.assertIn("/media/filer_public/", plugin.get_link()) def test_rendering(self): - plugin = add_plugin( + add_plugin( self.get_placeholders(self.page, self.language).get(slot="content"), "LinkPlugin", "en", @@ -191,12 +191,12 @@ def test_rendering(self): self.assertContains(response, 'Link') def test_rendering_fallback(self): - plugin = add_plugin( + add_plugin( self.get_placeholders(self.page, self.language).get(slot="content"), "LinkPlugin", "en", name="Link", - link={"internal_link": f"cms.page:0"}, + link={"internal_link": "cms.page:0"}, ) self.publish(self.page, self.language) diff --git a/tests/test_validators.py b/tests/test_validators.py index 3ee3ee7e..76c73834 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -15,7 +15,7 @@ def assertDoesNotValidate(self, validator, value): try: validator(value) self.fail(f"Validation of {value} unexpectedly did not fail") - except Exception as e: + except Exception: pass def test_intranet_host_re(self): From bbc30046f22774bdc9582438b4f664076655d852 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 01:52:29 +0200 Subject: [PATCH 08/93] Fix tests and dependencies --- djangocms_link/fields.py | 36 +++++++++++++++++------------------- tests/requirements/base.txt | 1 - tests/settings.py | 1 - tests/test_plugins.py | 5 ++++- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/djangocms_link/fields.py b/djangocms_link/fields.py index 7fa16d8e..1ca48a41 100644 --- a/djangocms_link/fields.py +++ b/djangocms_link/fields.py @@ -156,10 +156,7 @@ class Media: js = ("djangocms_link/link-widget.js",) css = {"all": ("djangocms_link/link-widget.css",)} - def __init__(self): - # Get the number of sites only once - if LinkWidget.number_sites is None: - LinkWidget.number_sites = Site.objects.count() + def __init__(self, sites_selector=True): widgets = [ Select( @@ -169,13 +166,16 @@ def __init__(self): "data-help": _("No destination selected. Use the dropdown to select a destination.") }, ), # Link type selector - SiteAutocompleteSelect( + URLInput( attrs={ - "class": "js-link-site-widget", - "widget": "site", - "data-placeholder": _("Select site"), + "widget": "external_link", + "placeholder": _("https://example.com or #anchor"), + "data-help": _( + "Provide a link to an external URL, including the schema such as 'https://', 'tel:', " + "or 'mailto:'. Optionally, add an #anchor (including the #) to scroll to." + ), }, - ), # Site selector + ), # External link input LinkAutoCompleteWidget( attrs={ "widget": "internal_link", @@ -185,16 +185,6 @@ def __init__(self): "data-placeholder": _("Select internal destination"), }, ), # Internal link selector - URLInput( - attrs={ - "widget": "external_link", - "placeholder": _("https://example.com or #anchor"), - "data-help": _( - "Provide a link to an external URL, including the schema such as 'https://', 'tel:', " - "or 'mailto:'. Optionally, add an #anchor (including the #) to scroll to." - ), - }, - ), # External link input TextInput( attrs={ "widget": "anchor", @@ -214,6 +204,14 @@ def __init__(self): }, ), ) + if sites_selector: + widgets.insert(2, SiteAutocompleteSelect( + attrs={ + "class": "js-link-site-widget", + "widget": "site", + "data-placeholder": _("Select site"), + }, + )) # Site selector # Remember which widget expets its content at which position self.data_pos = { diff --git a/tests/requirements/base.txt b/tests/requirements/base.txt index b8239246..d30f4206 100644 --- a/tests/requirements/base.txt +++ b/tests/requirements/base.txt @@ -1,4 +1,3 @@ -django-select2>=5.11,<7 # 7 works in Django 2+ django-filer>=1.5.0 html5lib>=1 django-app-helper diff --git a/tests/settings.py b/tests/settings.py index 0914f9b6..a7689e2e 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -5,7 +5,6 @@ HELPER_SETTINGS = { 'INSTALLED_APPS': [ 'filer', - 'django_select2', 'tests.utils', ], 'CMS_LANGUAGES': { diff --git a/tests/test_plugins.py b/tests/test_plugins.py index d7fd0ff8..bb95a06f 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -79,10 +79,13 @@ def test_full_plugin_render(self): plugin_type=LinkPlugin.__name__, language=self.language, ) + from djangocms_link.fields import LinkWidget + pos = LinkWidget().data_pos["external_link"] + data = { "template": "default", "link_0": "external_link", - "link_2": "https://www.google.com", + f"link_{pos}": "https://www.google.com", "name": "External link", } From e8aa4dc352462968f0ce77ae43e1c7d9a8a866c8 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 02:18:20 +0200 Subject: [PATCH 09/93] Fix migration and link_is_optional --- djangocms_link/migrations/0017_link_link.py | 11 +-- djangocms_link/models.py | 100 +------------------- 2 files changed, 3 insertions(+), 108 deletions(-) diff --git a/djangocms_link/migrations/0017_link_link.py b/djangocms_link/migrations/0017_link_link.py index 7e16e32e..bd16ad27 100644 --- a/djangocms_link/migrations/0017_link_link.py +++ b/djangocms_link/migrations/0017_link_link.py @@ -13,18 +13,11 @@ def forward(apps, schema_editor): link.link = {"external_link": link.url + anchor} elif link.internal_link: opt = link.internal_link._meta - link.link = { - "model": f"{opt.app_label}.{opt.model_name}", - "pk": link.internal_link.pk, - } + link.link = {"internal_link": f"{opt.app_label}.{opt.model_name}:{link.internal_link.pk}"} if link.anchor: link.link["anchor"] = "#" + link.anchor elif link.file_link: - opt = link.file_link._meta - link.link = { - "model": f"{opt.app_label}.{opt.model_name}", - "pk": link.file_link.pk, - } + link.link = {"file_link": str(link.file_link.pk)} elif link.phone: link.link = {"external_link": f"tel:{link.phone}"} elif link.mailto: diff --git a/djangocms_link/models.py b/djangocms_link/models.py index a5452dc8..e49270b7 100644 --- a/djangocms_link/models.py +++ b/djangocms_link/models.py @@ -3,7 +3,6 @@ using the HTML tag. """ from django.conf import settings -from django.contrib.sites.models import Site from django.core.exceptions import ValidationError from django.db import models from django.utils.encoding import force_str @@ -72,49 +71,8 @@ class AbstractLink(CMSPlugin): link = LinkField( verbose_name=_('Link'), + blank=False, ) - # # re: max_length, see: http://stackoverflow.com/questions/417142/ - # - # external_link = models.CharField( - # verbose_name=_('External link'), - # blank=True, - # max_length=2040, - # validators=url_validators, - # help_text=_('Provide a link to an external source.'), - # ) - # internal_link = models.ForeignKey( - # Page, - # verbose_name=_('Internal link'), - # blank=True, - # null=True, - # on_delete=models.SET_NULL, - # help_text=_('If provided, overrides the external link.'), - # ) - # file_link = FilerFileField( - # verbose_name=_('File link'), - # blank=True, - # null=True, - # on_delete=models.SET_NULL, - # help_text=_('If provided links a file from the filer app.'), - # ) - # # other link types - # anchor = models.CharField( - # verbose_name=_('Anchor'), - # blank=True, - # max_length=255, - # help_text=_('Appends the value only after the internal or external link. ' - # 'Do not include a preceding "#" symbol.'), - # ) - # mailto = models.EmailField( - # verbose_name=_('Email address'), - # blank=True, - # max_length=255, - # ) - # phone = models.CharField( - # verbose_name=_('Phone'), - # blank=True, - # max_length=255, - # ) # advanced options target = models.CharField( verbose_name=_('Target'), @@ -154,62 +112,6 @@ def get_short_description(self): def get_link(self, site=None): return get_link(self.link, site) - if self.internal_link: - ref_page = self.internal_link - link = ref_page.get_absolute_url() - - # simulate the call to the unauthorized CMSPlugin.page property - cms_page = self.placeholder.page if self.placeholder_id else None - - # first, we check if the placeholder the plugin is attached to - # has a page. Thus the check "is not None": - if cms_page is not None: - if getattr(cms_page, 'node', None): - cms_page_site_id = getattr(cms_page.node, 'site_id', None) - else: - cms_page_site_id = getattr(cms_page, 'site_id', None) - # a plugin might not be attached to a page and thus has no site - # associated with it. This also applies to plugins inside - # static placeholders - else: - cms_page_site_id = None - - # now we do the same for the reference page the plugin links to - # in order to compare them later - if cms_page is not None: - if getattr(cms_page, 'node', None): - ref_page_site_id = ref_page.node.site_id - else: - ref_page_site_id = ref_page.site_id - # if no external reference is found the plugin links to the - # current page - else: - ref_page_site_id = Site.objects.get_current().pk - - if ref_page_site_id != cms_page_site_id: - ref_site = Site.objects._get_site_by_id(ref_page_site_id).domain - link = f'//{ref_site}{link}' - - elif self.file_link: - link = self.file_link.url - - elif self.external_link: - link = self.external_link - - elif self.phone: - link = 'tel:{}'.format(self.phone.replace(' ', '')) - - elif self.mailto: - link = f'mailto:{self.mailto}' - - else: - link = '' - - if (not self.phone and not self.mailto) and self.anchor: - link += f'#{self.anchor}' - - return link - def clean(self): super().clean() if not self.link_is_optional and not self.link: From 26eb9ff4cd4ce16bf198df8ef6c919be6e7865e1 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 02:18:39 +0200 Subject: [PATCH 10/93] Remove unused blank parameter --- djangocms_link/models.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/djangocms_link/models.py b/djangocms_link/models.py index e49270b7..f6900d33 100644 --- a/djangocms_link/models.py +++ b/djangocms_link/models.py @@ -71,7 +71,6 @@ class AbstractLink(CMSPlugin): link = LinkField( verbose_name=_('Link'), - blank=False, ) # advanced options target = models.CharField( @@ -120,6 +119,10 @@ def clean(self): code='required', ) + def __init__(self, *args, **wkargs): + super().__init__(*args, **wkargs) + self._meta.get_field('link').blank = self.link_is_optional + class Link(AbstractLink): class Meta: From 65d2957c9bc93a5801d45e44199d00e4ca392172 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 02:26:07 +0200 Subject: [PATCH 11/93] Update changelog --- CHANGELOG.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5c709c32..587d3641 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,8 +2,20 @@ Changelog ========= +5.0.0 (unreleased) +================== + +* Major refactor +* New re-usable LinkWidget, LinkFormField, and LinkField +* New re-usable JSON endpoint for internal links +* New template tags (``get_url`` tag and ``to_url`` filter) to convert link + fields into URLs. This allows multiple LinkFields per model +* Fixed cross-site linking which reduces the number situations of the hostname + needing to be part of a link +* Droped django-select2 dependency in favor of django admin's autocomplete + 4.0.0 (2024-07-22) -================ +================== * Added support for django CMS 4.1 * Added support for python 3.10 to 3.12 From ed6fe60453a8f0d94d17d6e95cb832110d0140d7 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 14:50:20 +0200 Subject: [PATCH 12/93] feat: autodetect linkable models through their admin --- djangocms_link/admin.py | 112 ++++++++++++++++++++++++++-------------- 1 file changed, 73 insertions(+), 39 deletions(-) diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index 0f890acf..779199a7 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -1,3 +1,5 @@ +import traceback + from django.apps import apps from django.contrib import admin from django.core.exceptions import FieldError, PermissionDenied @@ -6,6 +8,7 @@ from django.views.generic.list import BaseListView from cms import __version__ +from cms.admin.utils import GrouperModelAdmin from cms.models import Page from cms.utils import get_language_from_request @@ -19,6 +22,18 @@ from cms.models import Title as PageContent +REGISTERED_ADMIN = [] + +for _admin in admin.site._registry.values(): + if _admin.model._meta.app_label == "cms": + continue + if getattr(_admin, "search_fields", []) and hasattr(_admin.model, "get_absolute_url"): + REGISTERED_ADMIN.append(_admin) + + +print(REGISTERED_ADMIN) + + class UrlsJsonView(BaseListView): """Handle AutocompleteWidget's AJAX requests for data.""" @@ -44,17 +59,12 @@ def get(self, request, *args, **kwargs): raise PermissionDenied self.object_list = self.get_queryset() + self.add_admin_querysets(self.object_list) context = self.get_context_data() + results = self.get_optgroups(context) return JsonResponse( { - "results": [ - { - "text": ("Pages"), - "children": [ - self.serialize_result(obj) for obj in context["object_list"] - ], - }, - ], + "results": results, "pagination": {"more": context["page_obj"].has_next()}, } ) @@ -75,47 +85,71 @@ def get_reference(self, request): except Exception as e: return JsonResponse({"error": str(e)}) + def get_optgroups(self, context): + results = [] + model = {} + previous_model = None + for obj in context["object_list"]: + if obj._meta.verbose_name_plural != previous_model or not model: + results.append(model) + previous_model = obj._meta.verbose_name_plural + model = { + "text": previous_model.capitalize(), + "children": [], + } + model["children"].append(self.serialize_result(obj)) + results.append(model) + return results + def serialize_result(self, obj): """ Convert the provided model object to a dictionary that is added to the results list. """ - return {"id": f"cms.page:{obj.page.pk}", "text": str(obj), "url": obj.get_absolute_url()} + return { + "id": f"{obj._meta.app_label}.{obj._meta.model_name}:{obj.pk}", + "text": str(obj), + "url": obj.get_absolute_url() + } def get_queryset(self): """Return queryset based on ModelAdmin.get_search_results().""" - if _version >= 4: - try: - # django CMS 4.2+ - qs = ( - PageContent.admin_manager.filter(language=self.language, title__icontains=self.term) - .current_content() - .order_by("page__path") - ) - if self.site: - qs = qs.filter(page__site_id=self.site) - qs = list(qs) - except FieldError: - # django CMS 4.0 - 4.1 - qs = ( - PageContent.admin_manager.filter(language=self.language, title__icontains=self.term) - .current_content() - .order_by("page__node__path") - ) - if self.site: - qs = qs.filter(page__site_id=self.site) - qs = list(qs) - else: - # django CMS 3 - qs = (PageContent.objects.filter( + try: + # django CMS 4.2+ + qs = PageContent.admin_manager.filter( + language=self.language, title__icontains=self.term + ).current_content().values_list("page_id", flat=True) + qs = Page.objects.filter(pk__in=qs).order_by("path") + if self.site: + qs = qs.filter(page__site_id=self.site) + except FieldError: + # django CMS 3.11 - 4.1 + qs = PageContent.admin_manager.filter( language=self.language, title__icontains=self.term - ).order_by("page__node__path")) + ).current_content().values_list("page_id", flat=True) + qs = Page.objects.filter(pk__in=qs).order_by("path") if self.site: - qs = qs.filter(page__node_site_id=self.site) - qs = list(qs) - for page_content in qs: - # Patch the missing get_absolute_url method - page_content.get_absolute_url = lambda: page_content.page.get_absolute_url() + qs = qs.filter(page__site_id=self.site) + return list(qs) + + def add_admin_querysets(self, qs): + for model_admin in REGISTERED_ADMIN: + try: + # hack: GrouperModelAdmin expects a language to be temporarily set + if isinstance(model_admin, GrouperModelAdmin): + model_admin.language = self.language + new_qs = model_admin.get_queryset(self.request) + new_qs, search_use_distinct = model_admin.get_search_results( + self.request, new_qs, self.term + ) + if search_use_distinct: + new_qs = new_qs.distinct() + + qs += list(new_qs) + except Exception as e: + print("==>", e) + traceback.print_tb(e.__traceback__) + # raise e return qs def process_request(self, request): From f3c2b136a9d51a6a3f8f489f30f245a6e6d78d9e Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 15:50:01 +0200 Subject: [PATCH 13/93] Fix v3 compat with GrouperModelAdmin --- djangocms_link/admin.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index 779199a7..c4c052a4 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -8,7 +8,6 @@ from django.views.generic.list import BaseListView from cms import __version__ -from cms.admin.utils import GrouperModelAdmin from cms.models import Page from cms.utils import get_language_from_request @@ -17,10 +16,13 @@ _version = int(__version__.split(".")[0]) if _version >= 4: + from cms.admin.utils import GrouperModelAdmin from cms.models import PageContent else: from cms.models import Title as PageContent + class GrouperModelAdmin: + pass REGISTERED_ADMIN = [] From 9f1cc7b457dbd4496dd3fbe5ab99fd0094816b1c Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 16:18:02 +0200 Subject: [PATCH 14/93] Add tests for endpoint --- djangocms_link/admin.py | 21 +++++---- tests/test_endpoint.py | 101 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+), 8 deletions(-) create mode 100644 tests/test_endpoint.py diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index c4c052a4..2d827c0a 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -36,7 +36,7 @@ class GrouperModelAdmin: print(REGISTERED_ADMIN) -class UrlsJsonView(BaseListView): +class AdminUrlsView(BaseListView): """Handle AutocompleteWidget's AJAX requests for data.""" paginate_by = 20 @@ -80,9 +80,6 @@ def get_reference(self, request): obj = model.admin_manager.get(pk=pk) else: obj = model.objects.get(pk=pk) - if isinstance(obj, Page) and _version >= 4: - obj = obj.pagecontent_set(manager="admin_manager").current_content().first() - return JsonResponse(self.serialize_result(obj)) return JsonResponse(self.serialize_result(obj)) except Exception as e: return JsonResponse({"error": str(e)}) @@ -93,7 +90,8 @@ def get_optgroups(self, context): previous_model = None for obj in context["object_list"]: if obj._meta.verbose_name_plural != previous_model or not model: - results.append(model) + if model: # Don't add the initial empty model + results.append(model) previous_model = obj._meta.verbose_name_plural model = { "text": previous_model.capitalize(), @@ -129,7 +127,7 @@ def get_queryset(self): qs = PageContent.admin_manager.filter( language=self.language, title__icontains=self.term ).current_content().values_list("page_id", flat=True) - qs = Page.objects.filter(pk__in=qs).order_by("path") + qs = Page.objects.filter(pk__in=qs).order_by("node__path") if self.site: qs = qs.filter(page__site_id=self.site) return list(qs) @@ -180,19 +178,26 @@ def has_perm(self, request, obj=None): class LinkAdmin(admin.ModelAdmin): """The LinkAdmin class provides the endpoint for getting the urls. It is not visible in the admin interface.""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.link_url_name = f"{self.opts.app_label}_{self.opts.model_name}_urls" + def has_module_permission(self, request): # Remove from admin return False def get_urls(self): + # Only url endpoint public, do not call super().get_urls() return [ path("urls", self.admin_site.admin_view(self.url_view), - name=f"{self.opts.app_label}_{self.opts.model_name}_urls") + name=self.link_url_name + ), ] def url_view(self, request): - return UrlsJsonView.as_view(admin_site=self)(request) + return AdminUrlsView.as_view(admin_site=self)(request) admin.site.register(models.Link, LinkAdmin) diff --git a/tests/test_endpoint.py b/tests/test_endpoint.py new file mode 100644 index 00000000..fd33f401 --- /dev/null +++ b/tests/test_endpoint.py @@ -0,0 +1,101 @@ +from cms.api import create_page +from cms.models import Page +from cms.test_utils.testcases import CMSTestCase +from cms.utils.urlutils import admin_reverse + +from djangocms_link.models import Link + + +class LinkModelTestCase(CMSTestCase): + def setUp(self): + self.root_page = create_page( + title="root", + template="page.html", + language="en", + ) + create_page( + title="child 1", + template="page.html", + language="en", + parent=self.root_page, + ) + create_page( + title="child 2", + template="page.html", + language="en", + parent=self.root_page, + ) + self.subling = create_page( + title="sibling", + template="page.html", + language="en", + ) + from django.contrib.admin import site + + LinkAdmin = site._registry[Link] + self.endpoint = admin_reverse(LinkAdmin.link_url_name) + + def tearDown(self): + self.root_page.delete() + self.subling.delete() + + def test_api_endpoint(self): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint) + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("results", data) + self.assertEqual(len(data["results"]), 1) + self.assertIn("pagination", data) + self.assertEqual(data["pagination"]["more"], False) + + pages = data["results"][0] + self.assertEqual(pages["text"], "Pages") + for page in pages["children"]: + self.assertIn("id", page) + self.assertIn("text", page) + self.assertIn("url", page) + _, pk = page["id"].split(":") + db_page = Page.objects.get(pk=pk) + self.assertEqual(page["text"], str(db_page)) + + def test_filter(self): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint + "?term=child") + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("results", data) + self.assertEqual(len(data["results"]), 1) + self.assertIn("pagination", data) + self.assertEqual(data["pagination"]["more"], False) + + pages = data["results"][0] + self.assertEqual(len(pages["children"]), 2) + + def test_filter_with_empty_result(self): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint + "?term=DJANGOCMS") + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("results", data) + self.assertEqual(len(data["results"]), 1) + self.assertIn("pagination", data) + self.assertEqual(data["pagination"]["more"], False) + pages = data["results"][0] + self.assertEqual(pages, {}) + + def test_get_reference(self): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint + "?g=cms.page:1") + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("id", data) + self.assertIn("text", data) + self.assertIn("url", data) + self.assertEqual(data["id"], "cms.page:1") + self.assertEqual(data["text"], "root") + self.assertEqual(data["url"], self.root_page.get_absolute_url()) From 0943e234b336df6bb9eaa61a4c9e2640fbb6d8ff Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 16:21:55 +0200 Subject: [PATCH 15/93] Fix for v3 --- djangocms_link/admin.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index 2d827c0a..51c4aaea 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -20,6 +20,7 @@ from cms.models import PageContent else: from cms.models import Title as PageContent + PageContent.admin_manager = PageContent.objects class GrouperModelAdmin: pass @@ -33,9 +34,6 @@ class GrouperModelAdmin: REGISTERED_ADMIN.append(_admin) -print(REGISTERED_ADMIN) - - class AdminUrlsView(BaseListView): """Handle AutocompleteWidget's AJAX requests for data.""" @@ -122,7 +120,7 @@ def get_queryset(self): qs = Page.objects.filter(pk__in=qs).order_by("path") if self.site: qs = qs.filter(page__site_id=self.site) - except FieldError: + except (AttributeError, FieldError): # django CMS 3.11 - 4.1 qs = PageContent.admin_manager.filter( language=self.language, title__icontains=self.term From 3a6e214c620b4ba1aa7ef1124eea7f0db82cd5ef Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 16:24:50 +0200 Subject: [PATCH 16/93] Try again --- djangocms_link/admin.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index 51c4aaea..b28431c4 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -20,7 +20,6 @@ from cms.models import PageContent else: from cms.models import Title as PageContent - PageContent.admin_manager = PageContent.objects class GrouperModelAdmin: pass @@ -122,9 +121,14 @@ def get_queryset(self): qs = qs.filter(page__site_id=self.site) except (AttributeError, FieldError): # django CMS 3.11 - 4.1 - qs = PageContent.admin_manager.filter( - language=self.language, title__icontains=self.term - ).current_content().values_list("page_id", flat=True) + if hasattr(PageContent, "admin_manager"): # V4 + qs = PageContent.admin_manager.filter( + language=self.language, title__icontains=self.term + ).current_content().values_list("page_id", flat=True) + else: # V3 + qs = PageContent.objects.filter( + language=self.language, title__icontains=self.term + ).values_list("page_id", flat=True) qs = Page.objects.filter(pk__in=qs).order_by("node__path") if self.site: qs = qs.filter(page__site_id=self.site) From 63728a6acec1c0d974a5a18a0d798671f6187599 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 16:36:39 +0200 Subject: [PATCH 17/93] Update codecov action --- .github/workflows/test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8e86a0d0..4f868af0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -36,4 +36,6 @@ jobs: run: coverage run ./tests/settings.py - name: Upload Coverage to Codecov - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} # required From c452218cf3ebade2a3080f2ebaa8084a0d6e4ffe Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 16:38:18 +0200 Subject: [PATCH 18/93] Fix test.yml syntax error --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f868af0..f1d9e63a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -36,6 +36,6 @@ jobs: run: coverage run ./tests/settings.py - name: Upload Coverage to Codecov - - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} # required From aa8d9607db36af090a397aecdbc71365115dc56d Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 16:59:45 +0200 Subject: [PATCH 19/93] Update tests --- README.rst | 6 ++--- djangocms_link/admin.py | 16 ++++++------- djangocms_link/validators.py | 1 - tests/test_endpoint.py | 46 ++++++++++++++++++++++++------------ 4 files changed, 41 insertions(+), 28 deletions(-) diff --git a/README.rst b/README.rst index b2fd783f..e3c872b7 100644 --- a/README.rst +++ b/README.rst @@ -139,9 +139,9 @@ You can run tests by executing:: .. |pypi| image:: https://badge.fury.io/py/djangocms-link.svg :target: http://badge.fury.io/py/djangocms-link .. |build| image:: https://travis-ci.org/divio/djangocms-link.svg?branch=master - :target: https://travis-ci.org/divio/djangocms-link -.. |coverage| image:: https://codecov.io/gh/divio/djangocms-link/branch/master/graph/badge.svg - :target: https://codecov.io/gh/divio/djangocms-link + :target: https://travis-ci.org/django-cms/djangocms-link +.. |coverage| image:: https://codecov.io/gh/django-cms/djangocms-link/branch/master/graph/badge.svg + :target: https://codecov.io/gh/django-cms/djangocms-link .. |python| image:: https://img.shields.io/badge/python-3.10+-blue.svg :target: https://pypi.org/project/djangocms-link/ diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index b28431c4..9b26465b 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -1,5 +1,3 @@ -import traceback - from django.apps import apps from django.contrib import admin from django.core.exceptions import FieldError, PermissionDenied @@ -118,7 +116,7 @@ def get_queryset(self): ).current_content().values_list("page_id", flat=True) qs = Page.objects.filter(pk__in=qs).order_by("path") if self.site: - qs = qs.filter(page__site_id=self.site) + qs = qs.filter(site_id=self.site) except (AttributeError, FieldError): # django CMS 3.11 - 4.1 if hasattr(PageContent, "admin_manager"): # V4 @@ -131,7 +129,7 @@ def get_queryset(self): ).values_list("page_id", flat=True) qs = Page.objects.filter(pk__in=qs).order_by("node__path") if self.site: - qs = qs.filter(page__site_id=self.site) + qs = qs.filter(node__site_id=self.site) return list(qs) def add_admin_querysets(self, qs): @@ -148,10 +146,10 @@ def add_admin_querysets(self, qs): new_qs = new_qs.distinct() qs += list(new_qs) - except Exception as e: - print("==>", e) - traceback.print_tb(e.__traceback__) - # raise e + except Exception: + # Still report back remaining urls even if one model fails + pass + return qs def process_request(self, request): @@ -185,7 +183,7 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.link_url_name = f"{self.opts.app_label}_{self.opts.model_name}_urls" - def has_module_permission(self, request): + def has_module_permission(self, request): # pragma: no cover # Remove from admin return False diff --git a/djangocms_link/validators.py b/djangocms_link/validators.py index eb2bac5a..0ba5aebd 100644 --- a/djangocms_link/validators.py +++ b/djangocms_link/validators.py @@ -54,7 +54,6 @@ def __call__(self, value): value = value.lstrip("#") if not value: return value - print("AnchorValidator", value) if not isinstance(value, str) or len(value) > 100: raise ValidationError(self.message, code=self.code, params={"value": value}) diff --git a/tests/test_endpoint.py b/tests/test_endpoint.py index fd33f401..ccc05d04 100644 --- a/tests/test_endpoint.py +++ b/tests/test_endpoint.py @@ -40,8 +40,32 @@ def tearDown(self): self.subling.delete() def test_api_endpoint(self): + + for query_params in ("", "?app_label=1"): + with self.subTest(query_params=query_params): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint + query_params) + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("results", data) + self.assertEqual(len(data["results"]), 1) + self.assertIn("pagination", data) + self.assertEqual(data["pagination"]["more"], False) + + pages = data["results"][0] + self.assertEqual(pages["text"], "Pages") + for page in pages["children"]: + self.assertIn("id", page) + self.assertIn("text", page) + self.assertIn("url", page) + _, pk = page["id"].split(":") + db_page = Page.objects.get(pk=pk) + self.assertEqual(page["text"], str(db_page)) + + def test_filter(self): with self.login_user_context(self.get_superuser()): - response = self.client.get(self.endpoint) + response = self.client.get(self.endpoint + "?term=child") self.assertEqual(response.status_code, 200) data = response.json() @@ -51,18 +75,11 @@ def test_api_endpoint(self): self.assertEqual(data["pagination"]["more"], False) pages = data["results"][0] - self.assertEqual(pages["text"], "Pages") - for page in pages["children"]: - self.assertIn("id", page) - self.assertIn("text", page) - self.assertIn("url", page) - _, pk = page["id"].split(":") - db_page = Page.objects.get(pk=pk) - self.assertEqual(page["text"], str(db_page)) + self.assertEqual(len(pages["children"]), 2) - def test_filter(self): + def test_filter_with_empty_result(self): with self.login_user_context(self.get_superuser()): - response = self.client.get(self.endpoint + "?term=child") + response = self.client.get(self.endpoint + "?term=DJANGOCMS") self.assertEqual(response.status_code, 200) data = response.json() @@ -70,13 +87,12 @@ def test_filter(self): self.assertEqual(len(data["results"]), 1) self.assertIn("pagination", data) self.assertEqual(data["pagination"]["more"], False) - pages = data["results"][0] - self.assertEqual(len(pages["children"]), 2) + self.assertEqual(pages, {}) - def test_filter_with_empty_result(self): + def test_site_selector(self): with self.login_user_context(self.get_superuser()): - response = self.client.get(self.endpoint + "?term=DJANGOCMS") + response = self.client.get(self.endpoint + "?app_label=2") self.assertEqual(response.status_code, 200) data = response.json() From 4aeb63161fc7396cee52bcd5cebe4008bcbce4fb Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 17:06:16 +0200 Subject: [PATCH 20/93] Test template tags --- tests/test_migrations.py | 1 - tests/test_models.py | 13 +++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/test_migrations.py b/tests/test_migrations.py index 50d7bc96..8fa6214d 100644 --- a/tests/test_migrations.py +++ b/tests/test_migrations.py @@ -7,7 +7,6 @@ class MigrationTestCase(TestCase): - @override_settings(MIGRATION_MODULES={}) def test_for_missing_migrations(self): output = StringIO() diff --git a/tests/test_models.py b/tests/test_models.py index a5937416..85378a7d 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -99,6 +99,19 @@ def test_get_link(self): self.assertEqual(self.mail_link.get_link(), "mailto:test@email.com") self.assertEqual(self.anchor_link.get_link(), "#some_id") + def test_get_url_template_tag(self): + from djangocms_link.templatetags.djangocms_link_tags import get_url, to_url + + self.assertEqual( + get_url({}, self.internal_link.link), + "//example.com" + self.page.get_absolute_url() + "#some_id" + ) + self.assertEqual(to_url(self.file_link.link), self.file.url) + self.assertEqual(to_url(self.external_link.link), "https://www.django-cms.org/#some_id") + self.assertEqual(to_url(self.phone_link.link), "tel:+0123456789") + self.assertEqual(to_url(self.mail_link.link), "mailto:test@email.com") + self.assertEqual(to_url(self.anchor_link.link), "#some_id") + def test_respect_link_is_optional(self): # by now the configuration is good again instance = self.internal_link From 991b3697a4532351ed839dd0821c3e2413fdd382 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 17:18:00 +0200 Subject: [PATCH 21/93] Update validator tests --- tests/test_validators.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/test_validators.py b/tests/test_validators.py index 76c73834..f05f2d7f 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -50,3 +50,20 @@ def test_mailto_validation(self): self.assertDoesNotValidate(validator, "mailto:info@localhost") self.assertDoesNotValidate(validator, "mailto:") self.assertDoesNotValidate(validator, "mailto: info@django-cms.org") + + def test_wrong_type_fails(self): + validator = ExtendedURLValidator() + + self.assertDoesNotValidate(validator, "\n") + self.assertDoesNotValidate(validator, 42) + + def test_anchor(self): + validator = ExtendedURLValidator() + self.assertValidates(validator, "#anchor") + self.assertValidates(validator, "#anchor-1") + self.assertValidates(validator, "#anchor_1") + self.assertDoesNotValidate(validator, "#anchor!") + self.assertDoesNotValidate(validator, "#anchor with spaces") + self.assertValidates(validator, "#" + "a" * (100 - 1)) + self.assertDoesNotValidate(validator, "#" + "a" * 101) + self.assertValidates(validator, "#") From 80d8cd49cd0dfdf7933d2be49cc092b809d397a7 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sat, 26 Oct 2024 17:29:30 +0200 Subject: [PATCH 22/93] Update tag tests --- djangocms_link/helpers.py | 2 ++ djangocms_link/templatetags/djangocms_link_tags.py | 5 +---- tests/test_models.py | 4 +++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/djangocms_link/helpers.py b/djangocms_link/helpers.py index c0463364..b9bd7715 100644 --- a/djangocms_link/helpers.py +++ b/djangocms_link/helpers.py @@ -26,6 +26,8 @@ def get_rel_obj(internal_link: str) -> models.Model | None: def get_link(link_field_value: dict, site_id: int | None = None) -> str | None: + if not link_field_value: + return None if "external_link" in link_field_value: if link_field_value["external_link"].startswith("tel:"): return link_field_value["external_link"].replace(" ", "") diff --git a/djangocms_link/templatetags/djangocms_link_tags.py b/djangocms_link/templatetags/djangocms_link_tags.py index b8c3a1b1..63c72a80 100644 --- a/djangocms_link/templatetags/djangocms_link_tags.py +++ b/djangocms_link/templatetags/djangocms_link_tags.py @@ -8,12 +8,9 @@ @register.filter def to_url(value): - if not value: - return "" - return get_link(value) or "" @register.simple_tag -def get_url(context, value): +def get_url(value): return to_url(value) diff --git a/tests/test_models.py b/tests/test_models.py index 85378a7d..4a646ecd 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -103,7 +103,7 @@ def test_get_url_template_tag(self): from djangocms_link.templatetags.djangocms_link_tags import get_url, to_url self.assertEqual( - get_url({}, self.internal_link.link), + get_url(self.internal_link.link), "//example.com" + self.page.get_absolute_url() + "#some_id" ) self.assertEqual(to_url(self.file_link.link), self.file.url) @@ -111,6 +111,8 @@ def test_get_url_template_tag(self): self.assertEqual(to_url(self.phone_link.link), "tel:+0123456789") self.assertEqual(to_url(self.mail_link.link), "mailto:test@email.com") self.assertEqual(to_url(self.anchor_link.link), "#some_id") + self.assertEqual(to_url(None), "") + self.assertEqual(to_url({}), "") def test_respect_link_is_optional(self): # by now the configuration is good again From 3da1aef5a3da3ad92ee187cfc30b027dbef2a9d3 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sun, 27 Oct 2024 01:08:44 +0200 Subject: [PATCH 23/93] Fix migration --- djangocms_link/fields.py | 2 +- djangocms_link/migrations/0017_link_link.py | 7 ++- tests/test_migrations.py | 70 +++++++++++++++++++++ 3 files changed, 75 insertions(+), 4 deletions(-) diff --git a/djangocms_link/fields.py b/djangocms_link/fields.py index 1ca48a41..509dcd4c 100644 --- a/djangocms_link/fields.py +++ b/djangocms_link/fields.py @@ -304,7 +304,7 @@ class LinkField(JSONField): """A link is a JSON field with a default LinkFormField""" def __init__(self, *args, **kwargs): - kwargs.setdefault("default", {}) + kwargs.setdefault("default", dict) kwargs.setdefault("blank", True) kwargs.setdefault("help_text", "-") super().__init__(*args, **kwargs) diff --git a/djangocms_link/migrations/0017_link_link.py b/djangocms_link/migrations/0017_link_link.py index bd16ad27..cd8f9505 100644 --- a/djangocms_link/migrations/0017_link_link.py +++ b/djangocms_link/migrations/0017_link_link.py @@ -7,10 +7,11 @@ def forward(apps, schema_editor): Link = apps.get_model("djangocms_link", "Link") - for link in Link.objects.all(): + links = Link.objects.all() + for link in links: if link.external_link: anchor = "#" + link.anchor if link.anchor else "" - link.link = {"external_link": link.url + anchor} + link.link = {"external_link": link.external_link + anchor} elif link.internal_link: opt = link.internal_link._meta link.link = {"internal_link": f"{opt.app_label}.{opt.model_name}:{link.internal_link.pk}"} @@ -24,7 +25,7 @@ def forward(apps, schema_editor): link.link = {"external_link": f"mailto:{link.mailto}"} elif link.anchor: link.link = {"external_link": "#" + link.anchor} - Link.objects.bulk_update(Link.objects.all(), ["link"]) + Link.objects.bulk_update(links, ["link"]) def backward(apps, schema_editor): diff --git a/tests/test_migrations.py b/tests/test_migrations.py index 8fa6214d..92dab9f9 100644 --- a/tests/test_migrations.py +++ b/tests/test_migrations.py @@ -1,10 +1,20 @@ # original from # http://tech.octopus.energy/news/2016/01/21/testing-for-missing-migrations-in-django.html from io import StringIO +from unittest import skipIf from django.core.management import call_command +from django.forms import model_to_dict from django.test import TestCase, override_settings +from cms.api import create_page + +from django_test_migrations.contrib.unittest_case import MigratorTestCase + +from djangocms_link import __version__ +from djangocms_link.helpers import get_link +from tests.helpers import get_filer_file + class MigrationTestCase(TestCase): @override_settings(MIGRATION_MODULES={}) @@ -27,3 +37,63 @@ def test_for_missing_migrations(self): if status_code == '1' and "djangocms_link" in output: self.fail(f'There are missing migrations:\n {output.getvalue()}') + +# @skipIf(__version__ >= '5', "Migration has already been tested before releasing version 5") +class MigrationToVersion5(MigratorTestCase): + migrate_from = ('djangocms_link', '0016_alter_link_cmsplugin_ptr') + migrate_to = ('djangocms_link', '0018_remove_link_anchor_remove_link_external_link_and_more') + + def setUp(self): + self.page = model_to_dict(create_page( + title='test', + template='page.html', + language='en', + )) + if hasattr(self.page, "node"): + self.node = model_to_dict(self.page.node) + self.file = model_to_dict(get_filer_file()) + super().setUp() + + def prepare(self): + Link = self.old_state.apps.get_model('djangocms_link', 'Link') + Page = self.old_state.apps.get_model('cms', 'Page') + File = self.old_state.apps.get_model('filer', 'File') + + self.links = [ + # Link.objects.create( + # template="default", + # name="My Link", + # internal_link=self.page, + # anchor="some_id", + # ), + Link.objects.create( + template="default", + name="My Link", + external_link="http://www.django-cms.com", + ), + # Link.objects.create( + # template="default", + # name="My Link", + # file_link=self.file, + # ), + Link.objects.create( + template="default", + name="My Link", + mailto="test@email.com", + ), + Link.objects.create( + template="default", + name="My Link", + phone="+01 234 567 89", + ), + ] + self.urls = ["http://www.django-cms.com", "mailto:test@email.com", "tel:+0123456789"] + + def test_tags_migrated(self): + Link = self.new_state.apps.get_model('djangocms_link', 'Link') + links = Link.objects.all() + + for link, url in zip(links, self.urls): + with self.subTest(link=link, url=url): + self.assertEqual(get_link(link.link), url) + From a534cb52e78ccb6dae5a38091e2b7979a83529da Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sun, 27 Oct 2024 11:30:32 +0100 Subject: [PATCH 24/93] Fix migration test and add tests for Django 5.1 --- .github/workflows/test.yml | 14 +++++- tests/requirements/base.txt | 1 + tests/requirements/dj51_cms311.txt | 4 ++ tests/requirements/dj51_cms41.txt | 4 ++ tests/test_migrations.py | 69 +++++++++++++++++++----------- 5 files changed, 64 insertions(+), 28 deletions(-) create mode 100644 tests/requirements/dj51_cms311.txt create mode 100644 tests/requirements/dj51_cms41.txt diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f1d9e63a..d731afa3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,17 +8,27 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ "3.10", "3.11", "3.12"] # latest release minus two + python-version: [ "3.9", "3.10", "3.11", "3.12"] # latest release minus two requirements-file: [ dj42_cms311.txt, dj42_cms41.txt, dj50_cms311.txt, dj50_cms41.txt, + dj51_cms311.txt, + dj51_cms41.txt, ] os: [ ubuntu-20.04, ] - + exclude: + - requirements-file: dj50_cms311.txt + python-version: 3.9 + - requirements-file: dj50_cms41.txt + python-version: 3.9 + - requirements-file: dj51_cms311.txt + python-version: 3.9 + - requirements-file: dj51_cms41.txt + python-version: 3.9 steps: - uses: actions/checkout@v1 - name: Set up Python ${{ matrix.python-version }} diff --git a/tests/requirements/base.txt b/tests/requirements/base.txt index d30f4206..bda566a2 100644 --- a/tests/requirements/base.txt +++ b/tests/requirements/base.txt @@ -6,3 +6,4 @@ coverage isort flake8 pyflakes>=2.1 +django-test-migrations diff --git a/tests/requirements/dj51_cms311.txt b/tests/requirements/dj51_cms311.txt new file mode 100644 index 00000000..da377459 --- /dev/null +++ b/tests/requirements/dj51_cms311.txt @@ -0,0 +1,4 @@ +-r base.txt + +Django>=5.1,<5.2 +django-cms>=3.11,<4.0 diff --git a/tests/requirements/dj51_cms41.txt b/tests/requirements/dj51_cms41.txt new file mode 100644 index 00000000..3e2807c1 --- /dev/null +++ b/tests/requirements/dj51_cms41.txt @@ -0,0 +1,4 @@ +-r base.txt + +Django>=5.1,<5.2 +django-cms>=4.1,<4.2 diff --git a/tests/test_migrations.py b/tests/test_migrations.py index 92dab9f9..0950c0c3 100644 --- a/tests/test_migrations.py +++ b/tests/test_migrations.py @@ -7,7 +7,9 @@ from django.forms import model_to_dict from django.test import TestCase, override_settings +from cms import __version__ as cms_version from cms.api import create_page +from cms.models import PageUrl from django_test_migrations.contrib.unittest_case import MigratorTestCase @@ -38,44 +40,59 @@ def test_for_missing_migrations(self): if status_code == '1' and "djangocms_link" in output: self.fail(f'There are missing migrations:\n {output.getvalue()}') -# @skipIf(__version__ >= '5', "Migration has already been tested before releasing version 5") +@skipIf(__version__ >= '5' or cms_version < "4", "Migration has already been tested before releasing version 5") class MigrationToVersion5(MigratorTestCase): migrate_from = ('djangocms_link', '0016_alter_link_cmsplugin_ptr') migrate_to = ('djangocms_link', '0018_remove_link_anchor_remove_link_external_link_and_more') - def setUp(self): - self.page = model_to_dict(create_page( - title='test', - template='page.html', - language='en', - )) - if hasattr(self.page, "node"): - self.node = model_to_dict(self.page.node) - self.file = model_to_dict(get_filer_file()) - super().setUp() - def prepare(self): Link = self.old_state.apps.get_model('djangocms_link', 'Link') Page = self.old_state.apps.get_model('cms', 'Page') - File = self.old_state.apps.get_model('filer', 'File') + PageContent = self.old_state.apps.get_model('cms', 'PageContent') + PageUrl = self.old_state.apps.get_model('cms', 'PageUrl') + TreeNode = self.old_state.apps.get_model('cms', 'TreeNode') + Site = self.old_state.apps.get_model('sites', 'Site') + # First create a Site at this stage in migration + site = Site.objects.create( + domain='example.com', + name='example.com', + ) + # ... then a node + node = TreeNode.objects.create( + path='0001', + depth=1, + numchild=0, + parent=None, + site=site, + ) + # ... a page + self.page = Page.objects.create( + node=node, + ) + # ... and finally a page content object + PageContent.objects.create( + title='My Page', + page=self.page, + language='en', + ) + PageUrl.objects.create( + page=self.page, + language='en', + path='my-page', + ) self.links = [ - # Link.objects.create( - # template="default", - # name="My Link", - # internal_link=self.page, - # anchor="some_id", - # ), + Link.objects.create( + template="default", + name="My Link", + internal_link=self.page, + anchor="some_id", + ), Link.objects.create( template="default", name="My Link", external_link="http://www.django-cms.com", ), - # Link.objects.create( - # template="default", - # name="My Link", - # file_link=self.file, - # ), Link.objects.create( template="default", name="My Link", @@ -87,7 +104,7 @@ def prepare(self): phone="+01 234 567 89", ), ] - self.urls = ["http://www.django-cms.com", "mailto:test@email.com", "tel:+0123456789"] + self.urls = ["/en/my-page/#some_id", "http://www.django-cms.com", "mailto:test@email.com", "tel:+0123456789"] def test_tags_migrated(self): Link = self.new_state.apps.get_model('djangocms_link', 'Link') @@ -95,5 +112,5 @@ def test_tags_migrated(self): for link, url in zip(links, self.urls): with self.subTest(link=link, url=url): - self.assertEqual(get_link(link.link), url) + self.assertEqual(get_link(link.link, site_id=1), url) From e5794b0cd6d6a38b4e4fc91bbbc70c32e8df88c3 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sun, 27 Oct 2024 11:32:33 +0100 Subject: [PATCH 25/93] Update migration test for v3 --- tests/test_migrations.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/test_migrations.py b/tests/test_migrations.py index 0950c0c3..eb34fcd6 100644 --- a/tests/test_migrations.py +++ b/tests/test_migrations.py @@ -4,18 +4,14 @@ from unittest import skipIf from django.core.management import call_command -from django.forms import model_to_dict from django.test import TestCase, override_settings from cms import __version__ as cms_version -from cms.api import create_page -from cms.models import PageUrl from django_test_migrations.contrib.unittest_case import MigratorTestCase from djangocms_link import __version__ from djangocms_link.helpers import get_link -from tests.helpers import get_filer_file class MigrationTestCase(TestCase): @@ -40,7 +36,10 @@ def test_for_missing_migrations(self): if status_code == '1' and "djangocms_link" in output: self.fail(f'There are missing migrations:\n {output.getvalue()}') -@skipIf(__version__ >= '5' or cms_version < "4", "Migration has already been tested before releasing version 5") +@skipIf( + __version__ >= '5' or cms_version < "4", + "Migration has already been tested before releasing version 5", +) class MigrationToVersion5(MigratorTestCase): migrate_from = ('djangocms_link', '0016_alter_link_cmsplugin_ptr') migrate_to = ('djangocms_link', '0018_remove_link_anchor_remove_link_external_link_and_more') From 1790799577abd62d6d7088caacf5f8cbd186d0d3 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sun, 27 Oct 2024 11:50:15 +0100 Subject: [PATCH 26/93] Remove test with Django 5.1 and django CMS 3.11 (since they are not compatible) --- .github/workflows/test.yml | 2 +- tests/requirements/dj51_cms311.txt | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 tests/requirements/dj51_cms311.txt diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d731afa3..3b814ad9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,6 @@ jobs: dj42_cms41.txt, dj50_cms311.txt, dj50_cms41.txt, - dj51_cms311.txt, dj51_cms41.txt, ] os: [ @@ -29,6 +28,7 @@ jobs: python-version: 3.9 - requirements-file: dj51_cms41.txt python-version: 3.9 + steps: - uses: actions/checkout@v1 - name: Set up Python ${{ matrix.python-version }} diff --git a/tests/requirements/dj51_cms311.txt b/tests/requirements/dj51_cms311.txt deleted file mode 100644 index da377459..00000000 --- a/tests/requirements/dj51_cms311.txt +++ /dev/null @@ -1,4 +0,0 @@ --r base.txt - -Django>=5.1,<5.2 -django-cms>=3.11,<4.0 From 3d538e3b5b323ecf73a110c2796f9d6ca67335d1 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sun, 27 Oct 2024 11:56:11 +0100 Subject: [PATCH 27/93] Add test for migration of anchor-only link. --- tests/test_migrations.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/tests/test_migrations.py b/tests/test_migrations.py index eb34fcd6..62816844 100644 --- a/tests/test_migrations.py +++ b/tests/test_migrations.py @@ -90,7 +90,13 @@ def prepare(self): Link.objects.create( template="default", name="My Link", - external_link="http://www.django-cms.com", + external_link="https://www.django-cms.com", + ), + Link.objects.create( + template="default", + name="My Link", + external_link="https://www.django-cms.com/", + anchor="some_id", ), Link.objects.create( template="default", @@ -102,8 +108,20 @@ def prepare(self): name="My Link", phone="+01 234 567 89", ), + Link.objects.create( + template="default", + name="My Link", + anchor="anchor", + ), + ] + self.urls = [ + "/en/my-page/#some_id", + "https://www.django-cms.com", + "https://www.django-cms.com/#some_id", + "mailto:test@email.com", + "tel:+0123456789", + "#anchor", ] - self.urls = ["/en/my-page/#some_id", "http://www.django-cms.com", "mailto:test@email.com", "tel:+0123456789"] def test_tags_migrated(self): Link = self.new_state.apps.get_model('djangocms_link', 'Link') From cbe4266b41cd5b60577f8406c2254f141d63f1a8 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sun, 27 Oct 2024 12:46:18 +0100 Subject: [PATCH 28/93] Add tests for third-party app endpoints --- djangocms_link/admin.py | 17 +++--- djangocms_link/apps.py | 19 +++++++ tests/test_endpoint.py | 123 +++++++++++++++++++++++++++++++++++++++- tests/utils/admin.py | 8 +++ tests/utils/models.py | 13 +++++ 5 files changed, 171 insertions(+), 9 deletions(-) create mode 100644 tests/utils/admin.py create mode 100644 tests/utils/models.py diff --git a/djangocms_link/admin.py b/djangocms_link/admin.py index 9b26465b..c3ac60ed 100644 --- a/djangocms_link/admin.py +++ b/djangocms_link/admin.py @@ -1,6 +1,8 @@ from django.apps import apps +from django.conf import settings from django.contrib import admin from django.core.exceptions import FieldError, PermissionDenied +from django.db.models import Q from django.http import JsonResponse from django.urls import path from django.views.generic.list import BaseListView @@ -22,13 +24,7 @@ class GrouperModelAdmin: pass -REGISTERED_ADMIN = [] - -for _admin in admin.site._registry.values(): - if _admin.model._meta.app_label == "cms": - continue - if getattr(_admin, "search_fields", []) and hasattr(_admin.model, "get_absolute_url"): - REGISTERED_ADMIN.append(_admin) +REGISTERED_ADMIN = getattr(settings, "DJANGOCMS_LINK_URL_ADMINS", "auto") class AdminUrlsView(BaseListView): @@ -133,12 +129,19 @@ def get_queryset(self): return list(qs) def add_admin_querysets(self, qs): + if REGISTERED_ADMIN == "auto": + return qs + for model_admin in REGISTERED_ADMIN: try: # hack: GrouperModelAdmin expects a language to be temporarily set if isinstance(model_admin, GrouperModelAdmin): model_admin.language = self.language new_qs = model_admin.get_queryset(self.request) + if hasattr(model_admin.model, "site") and self.site: + new_qs = new_qs.filter(Q(site_id=self.site) | Q(site__isnull=True)) + elif hasattr(model_admin.model, "sites") and self.site: + new_qs = new_qs.filter(sites__id=self.site) new_qs, search_use_distinct = model_admin.get_search_results( self.request, new_qs, self.term ) diff --git a/djangocms_link/apps.py b/djangocms_link/apps.py index 68722e7d..c0eac622 100644 --- a/djangocms_link/apps.py +++ b/djangocms_link/apps.py @@ -5,3 +5,22 @@ class DjangoCmsLinkConfig(AppConfig): name = "djangocms_link" verbose_name = _("django CMS Link") + + def ready(self): + # Only scan admins after all apps are loaded + + from django.contrib import admin + + from djangocms_link import admin as link_admin + + if link_admin.REGISTERED_ADMIN == "auto": + # Autoconfig? Check the admin registry for suitable admins + link_admin.REGISTERED_ADMIN = [] + for _admin in admin.site._registry.values(): + if _admin.model._meta.app_label == "cms": + # Skip CMS models + continue + # search_fields need to be defined in the ModelAdmin class, and the model needs to have + # a get_absolute_url method. + if getattr(_admin, "search_fields", []) and hasattr(_admin.model, "get_absolute_url"): + link_admin.REGISTERED_ADMIN.append(_admin) diff --git a/tests/test_endpoint.py b/tests/test_endpoint.py index ccc05d04..54e39ac7 100644 --- a/tests/test_endpoint.py +++ b/tests/test_endpoint.py @@ -1,12 +1,16 @@ +from django.contrib import admin +from django.contrib.sites.models import Site + from cms.api import create_page from cms.models import Page from cms.test_utils.testcases import CMSTestCase from cms.utils.urlutils import admin_reverse from djangocms_link.models import Link +from tests.utils.models import ThirdPartyModel -class LinkModelTestCase(CMSTestCase): +class LinkEndpointTestCase(CMSTestCase): def setUp(self): self.root_page = create_page( title="root", @@ -40,7 +44,6 @@ def tearDown(self): self.subling.delete() def test_api_endpoint(self): - for query_params in ("", "?app_label=1"): with self.subTest(query_params=query_params): with self.login_user_context(self.get_superuser()): @@ -115,3 +118,119 @@ def test_get_reference(self): self.assertEqual(data["id"], "cms.page:1") self.assertEqual(data["text"], "root") self.assertEqual(data["url"], self.root_page.get_absolute_url()) + + +class LinkEndpointThirdPartyTestCase(CMSTestCase): + def setUp(self): + LinkAdmin = admin.site._registry[Link] + self.endpoint = admin_reverse(LinkAdmin.link_url_name) + + self.second_site = Site.objects.create( + domain="second", + name="second", + ) + + self.items = ( + ThirdPartyModel.objects.create(name="First", path="/first", site_id=1), + ThirdPartyModel.objects.create(name="Second", path="/second", site=self.second_site), + ThirdPartyModel.objects.create(name="django CMS", path="/django-cms"), + ThirdPartyModel.objects.create(name="django CMS rocks", path="/django-cms-2"), + ) + + def test_auto_config(self): + from djangocms_link.admin import REGISTERED_ADMIN + from tests.utils.admin import ThirdPartyAdmin + + for registered_admin in REGISTERED_ADMIN: + if isinstance(registered_admin, ThirdPartyAdmin): + break + else: + self.asserFail("ThirdPartyAdmin not found in REGISTERED_ADMIN") + + def test_api_endpoint(self): + for query_params in ("", "?app_label=1"): + with self.subTest(query_params=query_params): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint + query_params) + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("results", data) + self.assertEqual(len(data["results"]), 1) + self.assertIn("pagination", data) + self.assertEqual(data["pagination"]["more"], False) + destinations = data["results"][0] + self.assertEqual(destinations["text"], "Third party models") + for destination in destinations["children"]: + self.assertIn("id", destination) + self.assertIn("text", destination) + self.assertIn("url", destination) + _, pk = destination["id"].split(":") + db_obj = ThirdPartyModel.objects.get(pk=pk) + self.assertEqual(destination["text"], str(db_obj)) + + def test_filter(self): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint + "?term=CMS") + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("results", data) + self.assertEqual(len(data["results"]), 1) + self.assertIn("pagination", data) + self.assertEqual(data["pagination"]["more"], False) + + pages = data["results"][0] + self.assertEqual(len(pages["children"]), 2) + + def test_site_selector(self): + + for site_id in (1, 2): + with self.subTest(site_id=site_id): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint + f"?app_label={site_id}") + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("results", data) + self.assertEqual(len(data["results"]), 1) + self.assertIn("pagination", data) + self.assertEqual(data["pagination"]["more"], False) + destinations = data["results"][0] + self.assertEqual(destinations["text"], "Third party models") + # One site-specific item, two all-sites items + self.assertEqual(len(destinations["children"]), 3) + + # Specific site item + if site_id == 1: + self.assertIn( + {'id': 'utils.thirdpartymodel:1', 'text': 'First', 'url': '/first'}, + destinations["children"] + ) + else: + self.assertIn( + {'id': 'utils.thirdpartymodel:2', 'text': 'Second', 'url': '/second'}, + destinations["children"] + ) + # All-sites items + self.assertIn( + {'id': 'utils.thirdpartymodel:3', 'text': 'django CMS', 'url': '/django-cms'}, + destinations["children"] + ) + self.assertIn( + {'id': 'utils.thirdpartymodel:4', 'text': 'django CMS rocks', 'url': '/django-cms-2'}, + destinations["children"] + ) + + def test_get_reference(self): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint + "?g=utils.thirdpartymodel:1") + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("id", data) + self.assertIn("text", data) + self.assertIn("url", data) + self.assertEqual(data["id"], "utils.thirdpartymodel:1") + self.assertEqual(data["text"], "First") + self.assertEqual(data["url"], self.items[0].get_absolute_url()) diff --git a/tests/utils/admin.py b/tests/utils/admin.py new file mode 100644 index 00000000..c47f2252 --- /dev/null +++ b/tests/utils/admin.py @@ -0,0 +1,8 @@ +from django.contrib import admin + +from tests.utils.models import ThirdPartyModel + + +@admin.register(ThirdPartyModel) +class ThirdPartyAdmin(admin.ModelAdmin): + search_fields = ("name",) diff --git a/tests/utils/models.py b/tests/utils/models.py new file mode 100644 index 00000000..dd64143e --- /dev/null +++ b/tests/utils/models.py @@ -0,0 +1,13 @@ +from django.db import models + + +class ThirdPartyModel(models.Model): + name = models.CharField(max_length=255) + path = models.CharField(max_length=255) + site = models.ForeignKey("sites.Site", on_delete=models.SET_NULL, null=True) + + def get_absolute_url(self): + return self.path + + def __str__(self): + return self.name From 49531b848f253c2074ab13e13da20f4a555ea0d5 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sun, 27 Oct 2024 14:14:13 +0100 Subject: [PATCH 29/93] Update translations --- .tx/config | 13 +- djangocms_link/fields.py | 7 +- .../locale/af/LC_MESSAGES/django.mo | Bin 419 -> 0 bytes .../locale/af/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/ar/LC_MESSAGES/django.mo | Bin 2348 -> 0 bytes .../locale/ar/LC_MESSAGES/django.po | 151 ++++++++------- .../locale/be/LC_MESSAGES/django.mo | Bin 558 -> 0 bytes .../locale/be/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/bg/LC_MESSAGES/django.mo | Bin 519 -> 0 bytes .../locale/bg/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/bn/LC_MESSAGES/django.mo | Bin 517 -> 0 bytes .../locale/bn/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/ca/LC_MESSAGES/django.mo | Bin 543 -> 0 bytes .../locale/ca/LC_MESSAGES/django.po | 127 +++++++------ .../locale/cmn/LC_MESSAGES/django.mo | Bin 423 -> 0 bytes .../locale/cmn/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/cs/LC_MESSAGES/django.mo | Bin 618 -> 0 bytes .../locale/cs/LC_MESSAGES/django.po | 127 +++++++------ .../locale/cs_CZ/LC_MESSAGES/django.mo | Bin 518 -> 0 bytes .../locale/cs_CZ/LC_MESSAGES/django.po | 126 ------------- .../locale/cy/LC_MESSAGES/django.mo | Bin 460 -> 0 bytes .../locale/cy/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/da/LC_MESSAGES/django.mo | Bin 538 -> 0 bytes .../locale/da/LC_MESSAGES/django.po | 127 +++++++------ .../locale/de/LC_MESSAGES/django.mo | Bin 2230 -> 0 bytes .../locale/de/LC_MESSAGES/django.po | 159 +++++++++------- .../locale/el/LC_MESSAGES/django.mo | Bin 559 -> 0 bytes .../locale/el/LC_MESSAGES/django.po | 127 +++++++------ .../locale/en/LC_MESSAGES/django.mo | Bin 2056 -> 0 bytes .../locale/en/LC_MESSAGES/django.po | 174 +++++++++--------- .../locale/en_GB/LC_MESSAGES/django.mo | Bin 440 -> 0 bytes .../locale/en_GB/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/en_HK/LC_MESSAGES/django.mo | Bin 435 -> 0 bytes .../locale/en_HK/LC_MESSAGES/django.po | 126 ------------- .../locale/en_US/LC_MESSAGES/django.mo | Bin 439 -> 0 bytes .../locale/en_US/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/eo/LC_MESSAGES/django.mo | Bin 419 -> 0 bytes .../locale/eo/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/es/LC_MESSAGES/django.mo | Bin 417 -> 0 bytes .../locale/es/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/es_AR/LC_MESSAGES/django.mo | Bin 561 -> 0 bytes .../locale/es_AR/LC_MESSAGES/django.po | 130 ------------- .../locale/es_BO/LC_MESSAGES/django.mo | Bin 527 -> 0 bytes .../locale/es_BO/LC_MESSAGES/django.po | 130 ------------- .../locale/es_DO/LC_MESSAGES/django.mo | Bin 444 -> 0 bytes .../locale/es_DO/LC_MESSAGES/django.po | 126 ------------- .../locale/et/LC_MESSAGES/django.mo | Bin 540 -> 0 bytes .../locale/et/LC_MESSAGES/django.po | 127 +++++++------ .../locale/eu/LC_MESSAGES/django.mo | Bin 510 -> 0 bytes .../locale/eu/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/fa/LC_MESSAGES/django.mo | Bin 1295 -> 0 bytes .../locale/fa/LC_MESSAGES/django.po | 143 +++++++------- .../locale/fa_IR/LC_MESSAGES/django.mo | Bin 429 -> 0 bytes .../locale/fa_IR/LC_MESSAGES/django.po | 126 ------------- .../locale/fi/LC_MESSAGES/django.mo | Bin 1103 -> 0 bytes .../locale/fi/LC_MESSAGES/django.po | 141 +++++++------- .../locale/fi_FI/LC_MESSAGES/django.mo | Bin 433 -> 0 bytes .../locale/fi_FI/LC_MESSAGES/django.po | 126 ------------- .../locale/fr/LC_MESSAGES/django.mo | Bin 2048 -> 0 bytes .../locale/fr/LC_MESSAGES/django.po | 158 ++++++++-------- .../locale/fr_CA/LC_MESSAGES/django.mo | Bin 430 -> 0 bytes .../locale/fr_CA/LC_MESSAGES/django.po | 126 ------------- .../locale/fr_FR/LC_MESSAGES/django.mo | Bin 2125 -> 0 bytes .../locale/fr_FR/LC_MESSAGES/django.po | 135 -------------- .../locale/ga/LC_MESSAGES/django.mo | Bin 453 -> 0 bytes .../locale/ga/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/gl/LC_MESSAGES/django.mo | Bin 514 -> 0 bytes .../locale/gl/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/gu/LC_MESSAGES/django.mo | Bin 418 -> 0 bytes .../locale/gu/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/he/LC_MESSAGES/django.mo | Bin 606 -> 0 bytes .../locale/he/LC_MESSAGES/django.po | 150 +++++++++------ .../locale/hi/LC_MESSAGES/django.mo | Bin 516 -> 0 bytes .../locale/hi/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/hr/LC_MESSAGES/django.mo | Bin 612 -> 0 bytes .../locale/hr/LC_MESSAGES/django.po | 147 ++++++++------- .../locale/hu/LC_MESSAGES/django.mo | Bin 548 -> 0 bytes .../locale/hu/LC_MESSAGES/django.po | 127 +++++++------ .../locale/id/LC_MESSAGES/django.mo | Bin 413 -> 0 bytes .../locale/id/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/is/LC_MESSAGES/django.mo | Bin 536 -> 0 bytes .../locale/is/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/is_IS/LC_MESSAGES/django.mo | Bin 457 -> 0 bytes .../locale/is_IS/LC_MESSAGES/django.po | 126 ------------- .../locale/it/LC_MESSAGES/django.mo | Bin 417 -> 0 bytes .../locale/it/LC_MESSAGES/django.po | 149 ++++++++------- .../locale/ja/LC_MESSAGES/django.mo | Bin 543 -> 0 bytes .../locale/ja/LC_MESSAGES/django.po | 127 +++++++------ .../locale/ka/LC_MESSAGES/django.mo | Bin 519 -> 0 bytes .../locale/ka/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/kk/LC_MESSAGES/django.mo | Bin 414 -> 0 bytes .../locale/kk/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/km/LC_MESSAGES/django.mo | Bin 514 -> 0 bytes .../locale/km/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/ko/LC_MESSAGES/django.mo | Bin 409 -> 0 bytes .../locale/ko/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/ko_KR/LC_MESSAGES/django.mo | Bin 546 -> 0 bytes .../locale/ko_KR/LC_MESSAGES/django.po | 130 ------------- .../locale/ku_IQ/LC_MESSAGES/django.mo | Bin 526 -> 0 bytes .../locale/ku_IQ/LC_MESSAGES/django.po | 130 ------------- .../locale/lt/LC_MESSAGES/django.mo | Bin 2239 -> 0 bytes .../locale/lt/LC_MESSAGES/django.po | 151 ++++++++------- .../locale/lt_LT/LC_MESSAGES/django.mo | Bin 569 -> 0 bytes .../locale/lt_LT/LC_MESSAGES/django.po | 126 ------------- .../locale/lv/LC_MESSAGES/django.mo | Bin 452 -> 0 bytes .../locale/lv/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/mn/LC_MESSAGES/django.mo | Bin 419 -> 0 bytes .../locale/mn/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/mn_MN/LC_MESSAGES/django.mo | Bin 436 -> 0 bytes .../locale/mn_MN/LC_MESSAGES/django.po | 126 ------------- .../locale/ms/LC_MESSAGES/django.mo | Bin 408 -> 0 bytes .../locale/ms/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/mt/LC_MESSAGES/django.mo | Bin 490 -> 0 bytes .../locale/mt/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/nb/LC_MESSAGES/django.mo | Bin 427 -> 0 bytes .../locale/nb/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/nl/LC_MESSAGES/django.mo | Bin 2091 -> 0 bytes .../locale/nl/LC_MESSAGES/django.po | 155 ++++++++-------- .../locale/no/LC_MESSAGES/django.mo | Bin 512 -> 0 bytes .../locale/no/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/pap/LC_MESSAGES/django.mo | Bin 422 -> 0 bytes .../locale/pap/LC_MESSAGES/django.po | 126 ------------- .../locale/pl/LC_MESSAGES/django.mo | Bin 689 -> 0 bytes .../locale/pl/LC_MESSAGES/django.po | 127 +++++++------ .../locale/pt/LC_MESSAGES/django.mo | Bin 543 -> 0 bytes .../locale/pt/LC_MESSAGES/django.po | 129 +++++++------ .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 2071 -> 0 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 134 -------------- .../locale/pt_PT/LC_MESSAGES/django.mo | Bin 569 -> 0 bytes .../locale/pt_PT/LC_MESSAGES/django.po | 130 ------------- .../locale/ro/LC_MESSAGES/django.mo | Bin 551 -> 0 bytes .../locale/ro/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 475 -> 0 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 126 ------------- .../locale/ru/LC_MESSAGES/django.mo | Bin 2632 -> 0 bytes .../locale/ru/LC_MESSAGES/django.po | 151 ++++++++------- .../locale/sk/LC_MESSAGES/django.mo | Bin 584 -> 0 bytes .../locale/sk/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/sk_SK/LC_MESSAGES/django.mo | Bin 508 -> 0 bytes .../locale/sk_SK/LC_MESSAGES/django.po | 126 ------------- .../locale/sl/LC_MESSAGES/django.mo | Bin 471 -> 0 bytes .../locale/sl/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 584 -> 0 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 130 ------------- .../locale/sq/LC_MESSAGES/django.mo | Bin 418 -> 0 bytes .../locale/sq/LC_MESSAGES/django.po | 143 +++++++------- .../locale/sq_AL/LC_MESSAGES/django.mo | Bin 434 -> 0 bytes .../locale/sq_AL/LC_MESSAGES/django.po | 126 ------------- .../locale/sr/LC_MESSAGES/django.mo | Bin 491 -> 0 bytes .../locale/sr/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/sr@latin/LC_MESSAGES/django.mo | Bin 603 -> 0 bytes .../locale/sr@latin/LC_MESSAGES/django.po | 130 ------------- .../locale/sv/LC_MESSAGES/django.mo | Bin 540 -> 0 bytes .../locale/sv/LC_MESSAGES/django.po | 127 +++++++------ .../locale/ta/LC_MESSAGES/django.mo | Bin 574 -> 0 bytes .../locale/ta/LC_MESSAGES/django.po | 127 +++++++------ .../locale/th/LC_MESSAGES/django.mo | Bin 407 -> 0 bytes .../locale/th/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/th_TH/LC_MESSAGES/django.mo | Bin 424 -> 0 bytes .../locale/th_TH/LC_MESSAGES/django.po | 126 ------------- .../locale/tlh/LC_MESSAGES/django.mo | Bin 418 -> 0 bytes .../locale/tlh/LC_MESSAGES/django.po | 126 ------------- .../locale/tr/LC_MESSAGES/django.mo | Bin 544 -> 0 bytes .../locale/tr/LC_MESSAGES/django.po | 127 +++++++------ .../locale/tr_TR/LC_MESSAGES/django.mo | Bin 431 -> 0 bytes .../locale/tr_TR/LC_MESSAGES/django.po | 126 ------------- .../locale/ug/LC_MESSAGES/django.mo | Bin 409 -> 0 bytes .../locale/ug/LC_MESSAGES/django.po | 148 +++++++++------ .../locale/uk/LC_MESSAGES/django.mo | Bin 784 -> 0 bytes .../locale/uk/LC_MESSAGES/django.po | 127 +++++++------ .../locale/ur/LC_MESSAGES/django.mo | Bin 414 -> 0 bytes .../locale/ur/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/vi/LC_MESSAGES/django.mo | Bin 413 -> 0 bytes .../locale/vi/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 430 -> 0 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 126 ------------- .../locale/zh-Hans/LC_MESSAGES/django.mo | Bin 431 -> 0 bytes .../locale/zh-Hans/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/zh/LC_MESSAGES/django.mo | Bin 410 -> 0 bytes .../locale/zh/LC_MESSAGES/django.po | 146 +++++++++------ .../locale/zh_CN.GB2312/LC_MESSAGES/django.mo | Bin 447 -> 0 bytes .../locale/zh_CN.GB2312/LC_MESSAGES/django.po | 126 ------------- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 553 -> 0 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 130 ------------- .../locale/zh_TW/LC_MESSAGES/django.mo | Bin 519 -> 0 bytes .../locale/zh_TW/LC_MESSAGES/django.po | 130 ------------- djangocms_link/validators.py | 2 +- tests/test_endpoint.py | 10 +- 188 files changed, 5468 insertions(+), 7324 deletions(-) delete mode 100644 djangocms_link/locale/af/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ar/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/be/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/bg/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/bn/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ca/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/cmn/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/cs/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/cs_CZ/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/cs_CZ/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/cy/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/da/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/de/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/el/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/en/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/en_GB/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/en_HK/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/en_HK/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/en_US/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/eo/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/es/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/es_AR/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/es_AR/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/es_BO/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/es_BO/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/es_DO/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/es_DO/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/et/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/eu/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/fa/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/fa_IR/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/fa_IR/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/fi/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/fi_FI/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/fi_FI/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/fr/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/fr_CA/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/fr_CA/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/fr_FR/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/fr_FR/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/ga/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/gl/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/gu/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/he/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/hi/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/hr/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/hu/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/id/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/is/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/is_IS/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/is_IS/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/it/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ja/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ka/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/kk/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/km/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ko/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ko_KR/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ko_KR/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/ku_IQ/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ku_IQ/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/lt/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/lt_LT/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/lt_LT/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/lv/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/mn/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/mn_MN/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/mn_MN/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/ms/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/mt/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/nb/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/nl/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/no/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/pap/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/pap/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/pl/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/pt/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/pt_BR/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/pt_BR/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/pt_PT/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/pt_PT/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/ro/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ro_RO/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ro_RO/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/ru/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/sk/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/sk_SK/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/sk_SK/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/sl/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/sl_SI/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/sl_SI/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/sq/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/sq_AL/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/sq_AL/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/sr/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/sr@latin/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/sr@latin/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/sv/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ta/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/th/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/th_TH/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/th_TH/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/tlh/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/tlh/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/tr/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/tr_TR/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/tr_TR/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/ug/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/uk/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/ur/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/vi/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/vi_VN/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/vi_VN/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/zh-Hans/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/zh/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/zh_CN.GB2312/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/zh_CN.GB2312/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/zh_CN/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/zh_CN/LC_MESSAGES/django.po delete mode 100644 djangocms_link/locale/zh_TW/LC_MESSAGES/django.mo delete mode 100644 djangocms_link/locale/zh_TW/LC_MESSAGES/django.po diff --git a/.tx/config b/.tx/config index c9dbea70..dac38c67 100644 --- a/.tx/config +++ b/.tx/config @@ -1,8 +1,11 @@ [main] host = https://www.transifex.com -[djangocms-link.djangocms_link] -file_filter = djangocms_link/locale//LC_MESSAGES/django.po -source_file = djangocms_link/locale/en/LC_MESSAGES/django.po -source_lang = en -type = PO +[o:divio:p:djangocms-link:r:djangocms_link] +file_filter = djangocms_link/locale//LC_MESSAGES/django.po +source_file = djangocms_link/locale/en/LC_MESSAGES/django.po +source_lang = en +type = PO +replace_edited_strings = false +keep_translations = false + diff --git a/djangocms_link/fields.py b/djangocms_link/fields.py index 509dcd4c..2a591e9a 100644 --- a/djangocms_link/fields.py +++ b/djangocms_link/fields.py @@ -156,7 +156,10 @@ class Media: js = ("djangocms_link/link-widget.js",) css = {"all": ("djangocms_link/link-widget.css",)} - def __init__(self, sites_selector=True): + def __init__(self, site_selector=None): + + if site_selector is None: + site_selector = getattr(settings, "DJANGOCMS_LINK_SITE_SELECTOR", False) widgets = [ Select( @@ -204,7 +207,7 @@ def __init__(self, sites_selector=True): }, ), ) - if sites_selector: + if site_selector: widgets.insert(2, SiteAutocompleteSelect( attrs={ "class": "js-link-site-widget", diff --git a/djangocms_link/locale/af/LC_MESSAGES/django.mo b/djangocms_link/locale/af/LC_MESSAGES/django.mo deleted file mode 100644 index 73686466eafe466e95d035d4dc897af43c9daa1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmYL^&rSj{5XLcj+M{O=HSqw!pPY-%MwI&dNl`K!Jq;gY zw20@gli7F7YEEcR+5CPiQY_lP)37 z2y?y_b@QVy01|=ULnNXkY!fH%naOg)N)9P!Yl?=27N3ksgPKcgD?>5f?RFij-IXZ# zzLTjn&c#+JY+ZrDy)X!FF)MJ(n@*(CwrDbkLOOa)A6+ H-)sB=0s?gg diff --git a/djangocms_link/locale/af/LC_MESSAGES/django.po b/djangocms_link/locale/af/LC_MESSAGES/django.po index a622e683..de90c97e 100644 --- a/djangocms_link/locale/af/LC_MESSAGES/django.po +++ b/djangocms_link/locale/af/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Afrikaans (https://www.transifex.com/divio/teams/58664/af/)\n" +"Language-Team: Afrikaans (https://app.transifex.com/divio/teams/58664/af/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: af\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/ar/LC_MESSAGES/django.mo b/djangocms_link/locale/ar/LC_MESSAGES/django.mo deleted file mode 100644 index 73efaaeebbee853dac06d50d8b137fb1316accd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2348 zcmai!-)|IE6vwZMimM{x@A&HomOx;3XA3Ru(ycCZ!A43OT>46;J9l?SW@px!*)0tr zv8A-NMu>?#X=0FIOQnU<0M_`b|9~%d5@Vt-y!xQ;e$UKyTOJHIz5BW6-gD2-+xcVL zrpp53Rm?Xqf5&XY{N@q-VCatu(GRA<=fSg0egQrK`CITb_&t~aw>>7rli-`+Hn0tR z4(tM-0Y3nr1y43v1b0LJq$z(5Zi0NhDKCNVLjD3A_bPfxm)$Zveq>0f#}ZhXmgOC%{+0E8uJ3D#&sC z26BDwH{~>pu$?@9SnoKP0W07;;MFF70r4m9$h3SgTzEe9*du*vmE zo@uVxevXFr6gw>M*p<1--rX+)Eo`f^_q3t`ilRs7+aqXnY1%YRc)C1{@K3OvA zb^zM4Yy=YdP|fh9^WawC)*KA{qI5&~68kS9lX?oK4MSf#EqQ3;cZo@LAxtCm& z&%-j#?7_fA|5{F*hd8$OvtFD*u7T^I7$rKZpX1!mrq59oVT?#BTMg+X#ULt&oXL@+ z=z?Rqqpd9;v99e6RbWUA+0yXkT7W1~R6J0uzU4X@ z8p<91Fn2Uh!}${*^$#9ToRBrw3$y{hY?<1jdfC?sZiW&=g9YudCyfA?v_2TiP`jS) z*7O6KzK_y+rlWI@-mdFV)K18T#m3k5IyJppOLvgoozc7Y=opD(h977J&v1N%=6V@A zWcU@sqoWnWG@KGvJ!w4|NXLJ_%xy^)-D>Y%c6tDJopRkMORXS{YKC&2F=7>IS0xB) zekPR~9UV;uY}qQwGkh;)S`Euh1<>|W9bKKB`%{LO+MO8aAIPs)BAwI|hg~$!L11Gw zWEh~cDU{A~4pI@p;dy6I7LI6L>w4^_Bt0$f6kUFj8R{Cbf>wkXGQ7l)UH1%IJK}m( zKSNF}68&uFL5i1IC!5vjJ<G&@a~4QLR|}|qDZe3mXqOUvBRs-pZx#BRn}xvaLz@IFa3y(X|*ii zeHmfij4hsLZ>aPXduvvOkb5&D6bSv948II7a$1q)*j!7O-L&*69Ou$3vU504cjJV@ zY2?_t(W+r<54k+hxhVGKwGLef&!e1?$~^>jg~AzNk-Lm$!Q+IwM|e9^(Z?+63qEH_ z5tVW=4vFgs`IbT@Z{SIw01A(Si`~+Iv=Sw^t}IY8^d%gRUP{zu^k6~Vjvgm!*h~uP VA!9Uj1, 2017\n" -"Language-Team: Arabic (https://www.transifex.com/divio/teams/58664/ar/)\n" +"Language-Team: Arabic (https://app.transifex.com/divio/teams/58664/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "رابط" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "إعدادات الربط" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "إعدادات متقدمة" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "رابط داخلي" -#: models.py:27 +#: djangocms_link/fields.py:27 +msgid "External link/anchor" +msgstr "" + +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "" + +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." +msgstr "" + +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" +msgstr "" + +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." +msgstr "" + +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." +msgstr "" + +#: djangocms_link/fields.py:188 +msgid "Select internal destination" +msgstr "" + +#: djangocms_link/fields.py:194 +msgid "#anchor" +msgstr "" + +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." +msgstr "" + +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." +msgstr "" + +#: djangocms_link/fields.py:215 +msgid "Select site" +msgstr "" + +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." +msgstr "" + +#: djangocms_link/models.py:24 msgid "Default" msgstr "افتراضي" -#: models.py:44 +#: djangocms_link/models.py:41 msgid "Open in new window" msgstr "فتح في نافذة جديدة" -#: models.py:45 +#: djangocms_link/models.py:42 msgid "Open in same window" msgstr "فتح في نفس النافذة" -#: models.py:46 +#: djangocms_link/models.py:43 msgid "Delegate to parent" msgstr "إنابة إلى الأصل" -#: models.py:47 +#: djangocms_link/models.py:44 msgid "Delegate to top" msgstr "إنابة إلى الأعلى" -#: models.py:65 +#: djangocms_link/models.py:61 msgid "Template" msgstr "قالب" -#: models.py:71 +#: djangocms_link/models.py:67 msgid "Display name" msgstr "الاسم الظاهر" -#: models.py:77 -msgid "External link" -msgstr "رابط خارجي" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "يغلَّب على الرابط الخارجي في حال إضافته." - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "مثبت الرابط" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" -"يُلحق حصراً بآخر الرابط الداخلي أو الخارجي. يجب أن لا يُسبق بالرمز " -"\"#\"." - -#: models.py:109 -msgid "Email address" -msgstr "بريد إلكتروني" - -#: models.py:114 -msgid "Phone" -msgstr "هاتف" - -#: models.py:120 +#: djangocms_link/models.py:77 msgid "Target" msgstr "المستهدَف" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "صفات" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "يمكن إعطاء واحداً فقط من {0} أو {1}." - -#: models.py:258 -msgid "Please provide a link." -msgstr "يُرجى تزويد رابط." +#: djangocms_link/models.py:118 +msgid "Link is required." +msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "%(anchor_field_verbose_name)s غير مسموح به سويا‏ً مع %(field_name)s" +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" +msgstr "" -#~ msgid "At least one link is required." -#~ msgstr "مطلوب رابط واحد على الأقل." +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" +msgstr "" diff --git a/djangocms_link/locale/be/LC_MESSAGES/django.mo b/djangocms_link/locale/be/LC_MESSAGES/django.mo deleted file mode 100644 index 8b27f89bc1afc8661fee90784846863732c7909d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmYLE(M}>U6m{c1&7;pg+)Z2~(K77_I8!J_S=~P9mE&pKJoy$i#$PANRe+i%mP0hU$w|*C8PG(2$e=hRlx2jT5qb)Y z@@DIpCX}L(jMbyA!ne8>p&4OKpc$v>F-1hbq$!rNP$XA!!QoQPrCWL}4IJHvP=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/bg/LC_MESSAGES/django.mo b/djangocms_link/locale/bg/LC_MESSAGES/django.mo deleted file mode 100644 index f5067d28ba8cb3504e18d5ac6a66116b874aea9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmYL_!EO^V5QZ02E-Ox)ISjW}t#`eFEQ!+~(lo82HgpL~?#{+_TsHQ~cAECqGe;zz zpfA7;sZWu<01v{6*&sE){K+%Y{4-7L_R`*Q##5txE}QlcWi>&1h?% zqQZ0TJjpHBuH@cW20blBY2a9C1&4f-L^Di2&eXLsQ8E8;P>)Q}spXPOL2|(t433ti z*_I=!jge546Z8~w5G~GEy-Xi!>n9dUXl}I m7mk6hHmU12I`BX2?rM0`g=DW22J0V>caPuKzt<1zU%@}If|R%b diff --git a/djangocms_link/locale/bg/LC_MESSAGES/django.po b/djangocms_link/locale/bg/LC_MESSAGES/django.po index d427bcfe..e268efcd 100644 --- a/djangocms_link/locale/bg/LC_MESSAGES/django.po +++ b/djangocms_link/locale/bg/LC_MESSAGES/django.po @@ -11,120 +11,160 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Bulgarian (https://www.transifex.com/divio/teams/58664/bg/)\n" +"Language-Team: Bulgarian (https://app.transifex.com/divio/teams/58664/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "Връзка" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/bn/LC_MESSAGES/django.mo b/djangocms_link/locale/bn/LC_MESSAGES/django.mo deleted file mode 100644 index e558c458151e8de9e55ef3582c10809a49395f20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmYL_Pfi;#6vn3rHX~MDck$SPz%!mehQuLNLkLw=0@HNJ-kF$*>BJt{4uLIq-~ip^ z0KEV=K{-a3yh$bU$v^o$>3e_dx6j)z9%>8uf*c_`$Qe>8LAH^f$e&N1H^O@t`G+x{ z4^{PRT}k!ZON_o3nIruP83|*hRt%C(_ebY@4@SM=ul~)oKNO`ljtp!rC**vdTas!9 zesYtNt`Xc}5xL+_FsRX}N$4q|#}H9gj}K{$QZ$mGc#u`|jV~s&NuoN?CZml*it?|x zbtE-h*@8Q57<5!F3Jn)hNjT%{B$#0GZ6Y6}4zlUjqiSS~l`5a}T#!`o8H017a$ZQ- zpE_4s7KV$(B5+k>c_$u&OwYn~htQ$jhV@1qpM+x-9{7X)ptt#mD4>250^;F^m zop^L%S#YUZkWIO, 2016\n" -"Language-Team: Bengali (https://www.transifex.com/divio/teams/58664/bn/)\n" +"Language-Team: Bengali (https://app.transifex.com/divio/teams/58664/bn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: bn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "লিংক" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/ca/LC_MESSAGES/django.mo b/djangocms_link/locale/ca/LC_MESSAGES/django.mo deleted file mode 100644 index 6bdbaa870fb0c28fa8bd8a9e185c5d88965cd567..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmYL_&u$Yj5XKD@f%eb?2TmM@TdU$-Z)ldpA&8J}QA9#lVd)vOaW*cFy|SIAJO~fK ziM~hQgJ)qjmB=UkG#=}lKla~e2fqmF5%K~#MIIwlq}4a%01-%gzeIjNAVgz)f*d|1 zDWmTu!x?CAUSkc+NbOdWv?M+yqle{4r6Gfb9t@W=6hd8 zS)Zm|V13SdCkz!$g%7lJ!gwu$bsR>fmfFIZG78>`T@o)adB0HC%Er~|-K%zFhLxt? zh+5K8iZzF^2to@3N2?GT&y!@k-NvD9td{a7uIxJ5bw~o*ebVh^*=bUVw+O6**KQ tD)hz)P0y`cdk&`ArGD5M!2NM}WZ>lx(&Irya-+4l`$I~p?{1gYkbgOxlso_c diff --git a/djangocms_link/locale/ca/LC_MESSAGES/django.po b/djangocms_link/locale/ca/LC_MESSAGES/django.po index 078ae3fc..223b83a1 100644 --- a/djangocms_link/locale/ca/LC_MESSAGES/django.po +++ b/djangocms_link/locale/ca/LC_MESSAGES/django.po @@ -11,120 +11,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Catalan (https://www.transifex.com/divio/teams/58664/ca/)\n" +"Language-Team: Catalan (https://app.transifex.com/divio/teams/58664/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Enllaç" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Telèfon" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "Es requereix com a mínim un enllaç." diff --git a/djangocms_link/locale/cmn/LC_MESSAGES/django.mo b/djangocms_link/locale/cmn/LC_MESSAGES/django.mo deleted file mode 100644 index dc22dadc3bac10e8f0cb3e54ef0bf697df31eff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmYL^-%i3X6vi=nwM(zP=!F*$JhVfZTL~99harkAIJvJ|88xh3+VaN-@%4NbJ5AtA zemQN<_w}6qTwZ*)oX#9qj%&xcnot " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/cs/LC_MESSAGES/django.mo b/djangocms_link/locale/cs/LC_MESSAGES/django.mo deleted file mode 100644 index b47fc49a62602cde2ffa4d63e6bf6b5c93516bc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmZWl!EO^V5H(PQv`5Yyh67cr;;c7Kmc;26(lkX835mke69?Q~XJfjtSGLo%{SSVR zU*H#*O%ORS(v#MS02t-|9Abvj~r2NajJtgD? z<~Mj^dD{mMf^-*SrEke>X|yCWYktVg(@{>ZrFF_^4zvE?Q~%=-u7~q4qv_{hE-Pa_ zow!2f^kQ8&ni>wlY?{)6mBOQmUJ5TcG+ET8>>XvN5Ha44Pgs*N6wS zno6, 2016\n" -"Language-Team: Czech (https://www.transifex.com/divio/teams/58664/cs/)\n" +"Language-Team: Czech (https://app.transifex.com/divio/teams/58664/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cs\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Odkaz" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Telefon" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "Je vyžadován alespoň jeden odkaz." diff --git a/djangocms_link/locale/cs_CZ/LC_MESSAGES/django.mo b/djangocms_link/locale/cs_CZ/LC_MESSAGES/django.mo deleted file mode 100644 index 511fe1a5a48ea72d51ebd70976f13251128ffc77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmZWkO-~y!5Tz=oJ#y}0Dp8b(PS%?*HV)egwgE*nO_Xjqa6x8cHm(wTWjh4;AN(tR zLw`$W6Nwyn($man-t#>FJJ^5OBYYr!A|4Vy62B5F#Kc!x_NZ2xH%zSgD|3&-8D2~4 zl+hd}XX(}1d{EWnJ6#u952FsS9%u0}BLqK%E>@zDm`SnZkUq@dtW*phU@jZ;jPe4-OI;DZkFLpJtz};a=Wk-cf0K{cem+HSPw?S(O~z%sKJ8N zXfL(L?5U*SUOxJ;TnMH6kk5s6(kFki3ygQV>e9WmIMBJ7DP3@g@05QF&0%vZm@HOS zEbzkErQ@K>&FGSLAGU2$(~u+(!O;<{9 diff --git a/djangocms_link/locale/cs_CZ/LC_MESSAGES/django.po b/djangocms_link/locale/cs_CZ/LC_MESSAGES/django.po deleted file mode 100644 index ef03c2b6..00000000 --- a/djangocms_link/locale/cs_CZ/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Czech (Czech Republic) (https://www.transifex.com/divio/teams/58664/cs_CZ/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: cs_CZ\n" -"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/cy/LC_MESSAGES/django.mo b/djangocms_link/locale/cy/LC_MESSAGES/django.mo deleted file mode 100644 index ab92bbebfe6312e01bd6debce3735ca00c564395..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmYL^-A)2A5QQ;%wU=IdF(!s!aM&(?E+rd-2!<#^aK-Do)TIX6O%Tkgy=2aUD*;)%t<45wThp(KTIr~A}- z?7_4*c^!;iya~^gwm3AYnBn~@H5e-j-gp#aS950F5I!)=DO5?&LUN0w1_7asW|>q8 zaY3B$wa70&=9)-a7&L&iC<)8N$$MrpU9ps7%-NE{J71VNl;+lEhWh?yv#D6kq!FKd zTS?T?pNX|lzI9>aH^OGK?k79{+8Yjrz2j$s3h}y1S}rZdyUZnot " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/da/LC_MESSAGES/django.mo b/djangocms_link/locale/da/LC_MESSAGES/django.mo deleted file mode 100644 index 0930a153eb462d396f2146183ba570b48b04163e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmYL`-EPw`6vqt=Aw}BFuDLkeZ5mFTvWC`OC%U#n6)lTO*fl0`6GLi8w!4l8+5Mi3 zXW=B1=wJHj_#B-t+ka1v9tr9d@)o&3UL#AS)eqzd5l9=~AWts{snNFa?36#AZEOuoU zIUAfaRIn7z)65F(YT=FLFwv!~4a}5Qa49+`EYSH>sC#9?yt;bdj!dvpmpf5Pnn|(c zFcVt23QjBU8^@z)zu$+x?W;EOAKa5Ivt865B*{foi0CX>EmrfxJH#Oirbc_I zajicM-p|ViA2qd5dIWhTtdoBHJ-eZULtZ;(BQ2fl+~BSyhrv(f|8K~l5J6h+tf=XY iv0KMMH=XOoy%9Vg$EO, 2016\n" -"Language-Team: Danish (https://www.transifex.com/divio/teams/58664/da/)\n" +"Language-Team: Danish (https://app.transifex.com/divio/teams/58664/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Link" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Telefon" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/de/LC_MESSAGES/django.mo b/djangocms_link/locale/de/LC_MESSAGES/django.mo deleted file mode 100644 index 7be5340eaed492b861e0adc4fd7685b32dd2b57a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2230 zcmai!%WoS+9LEP}d6;+0qdX*j1S%zJ){j6#>Lw9x<5X6gCbXs?4n$+`*dDSwV`gUU zrll8p=!FZ1p30#I;Kr2;l{iE~{1yBKaN){@?{C+6ArLF?emt+=<2&=4-;N!*EAYIE z_jSC#<2{M@!9)1q*?3rp7We`9Ja})yAHYY^{u$f?e*sJ2+#^Cf1}=fez$W-C_%Zkt zH~^mpvk7m5PoVuZI1AnbXTV=4<9~uj(B==XI|{xH9tYX}0(cy}2p$DD!IwYNSe;3@D8@DlhWn1IiK*Flc& z4#+y(1zFSkU=93fGX4jM5X4^~$Ir%j{5Z&QG{M)vPeDu(H^3?I%Srn?5I^w)K9em% ztI&Ygv(_)-#dhTLfILpl6;kFtIWMGF=n8WD95efS4lnOBKfGTDAI^uL7x2EE|0_PP z0IVJ7FHTNN(;Zm1+0!bCH%H2KtXG>xrfSBM_GD}znIv|sVhXme!azA1>oA~`)5V%% zu2@X8+2R$c_FkL*vS`F37{@xVLO_ofjog=L42R0Zo?wecGRYKKlWddh1=!|JZSc>? zgsdZVee$2}mubb)qDq$$)?x+3)NYc+iX;u4f;0G`skf%cZ>Jrbltm*1r#o3tUaY8| z%#r{msxN~=J~Wh0nZsSd4#kT0!$fWq=O&t|)CtKrcFKFvJQ$By)rlgGOtgB4z>ai` zgt@~bq#lp8yc00y3)zYB?A^kD==24xoYi9RDCb1zC*QY{q+2)>Rh#oiP04`(rkQx-h5O&6V*;r z^-R6GaH@)@bV>RUwVgB`p;=d_hUu%s(uy{k7G>Tj<80{nV?ENg+#M{><}R_)^fTF4 zQCrEhP8XC*rJ?CT2t!}5RL0|RIj~*bQ`gH~n^tlIm4Mm4a(ZEY{@qHfDl?_E)>?C4 zhg!K>I&ZOc24QUvkzc^RRv?@$K3(VK2fu z#j3QCWKJg0s&%QalNshszchE2ioZ+KhTdGF+RWL~|JHUusfK@)F&W(*1X3=MStm@2 zy678OH;^V)W?3}dSZS0cYN)A=4=PDAXlzj6Tgr*mod^AZXbpXYIV4kRVjVhgqvXdK zBQ{1Y6lWbRKGG-{Q>Jq|z$%ycmeQuEad_q}9N^M`39jy|d39q!Uv>C=?^U_D8W5v& zvG^oQ$?SaF9UweItBS*Phyk^)6^cHeU^_Uu|1sV$Hu)WbE)8uZm9siO3Ez2vU= z6CIZPat0mY(9_78;s#)8`3`^%y?ui;Rt|fD%ZKlQOr?9G?EKj487R_9sh=nufCGZ< ej, 2016 # Angelo Dini , 2019 +# Fabian Braun , 2024 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2019\n" -"Language-Team: German (https://www.transifex.com/divio/teams/58664/de/)\n" +"Last-Translator: Fabian Braun , 2024\n" +"Language-Team: German (https://app.transifex.com/divio/teams/58664/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "django CMS Link" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Link" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "Link-Einstellungen" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "Erweiterte Einstellungen" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "Interner Link" -#: models.py:27 +#: djangocms_link/fields.py:27 +msgid "External link/anchor" +msgstr "Externer Link/Anker" + +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "Datei Link" + +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." +msgstr "Kein Ziel ausgewählt. Ziel im Dropdown-Menü auswählen." + +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" +msgstr "https://beispiel.de oder #anker" + +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." +msgstr "" +"Link zu einer externen URL angeben, inklusive Schema wie z.B. \"https://\", " +"\"tel:\" oder \"mailto:\". Optional einen \"#anker\" hinzufügen (inklusive " +"#)." + +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." +msgstr "" +"Aus den verfügbaren internen Zielen auswählen. Optional einen Anker " +"hinzufügen." + +#: djangocms_link/fields.py:188 +msgid "Select internal destination" +msgstr "Internes Ziel auswählen" + +#: djangocms_link/fields.py:194 +msgid "#anchor" +msgstr "#anker" + +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." +msgstr "Anker angeben, der angesprungen wird." + +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." +msgstr "Datei als Ziel auswählen." + +#: djangocms_link/fields.py:215 +msgid "Select site" +msgstr "Site auswählen" + +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." +msgstr "Link-Typ auswählen und Ziel angeben." + +#: djangocms_link/models.py:24 msgid "Default" msgstr "Standard" -#: models.py:44 +#: djangocms_link/models.py:41 msgid "Open in new window" msgstr "In neuem Fenster öffnen" -#: models.py:45 +#: djangocms_link/models.py:42 msgid "Open in same window" msgstr "Im gleichen Fenster öffnen" -#: models.py:46 +#: djangocms_link/models.py:43 msgid "Delegate to parent" msgstr "Zum nächsten Fenster delegieren" -#: models.py:47 +#: djangocms_link/models.py:44 msgid "Delegate to top" msgstr "Zum obersten Fenster delegieren" -#: models.py:65 +#: djangocms_link/models.py:61 msgid "Template" msgstr "Template" -#: models.py:71 +#: djangocms_link/models.py:67 msgid "Display name" msgstr "Anzeigename" -#: models.py:77 -msgid "External link" -msgstr "Externer Link" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "Überschreibt den externen Link, falls angegeben." - -#: models.py:93 -msgid "File link" -msgstr "Datei Link" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "Nutzt eine Datei als Link." - -#: models.py:102 -msgid "Anchor" -msgstr "Anker" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" -"Fügt den Wert am Ende des internen oder externen Links an. Bitte " -"kein vorangehendes \"#\" Symbol angeben." - -#: models.py:109 -msgid "Email address" -msgstr "E-Mail-Adresse" - -#: models.py:114 -msgid "Phone" -msgstr "Telefon" - -#: models.py:120 +#: djangocms_link/models.py:77 msgid "Target" msgstr "Verweis" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "Attribute" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "Nur eines von {0} oder {1} darf angegeben werden." +#: djangocms_link/models.py:118 +msgid "Link is required." +msgstr "Der Link ist ein Pflichtfeld." -#: models.py:258 -msgid "Please provide a link." -msgstr "Es muss ein Link angegeben werden." - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "%(anchor_field_verbose_name)s ist mit %(field_name)s nicht erlaubt" +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" +msgstr "Gültigen Anker angeben" -#~ msgid "At least one link is required." -#~ msgstr "Es muss mindestens ein Link angegeben werden." +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" +msgstr "Gültige Telefonnummer angeben" diff --git a/djangocms_link/locale/el/LC_MESSAGES/django.mo b/djangocms_link/locale/el/LC_MESSAGES/django.mo deleted file mode 100644 index 5a4eae668350d9362b89481195510ab4786119a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmYL_&u`N(6vqvWON4~9GZN;uX>;O~HMA~8D_u8Lv@9xNXH4p*W~m+7?mDg@A#vcy znFD8TAP#``A0+<)e+w_2M4$B0^LzfjANJqvt#pte`Q7QlfzKLftp zKqv>l4cxhj&|UEN!9#l82ONU%+D1~Hqj;{BK(WzpMC!H@!lS{a=t_k$Z8zG(0EA+AJ)?s#u4%+vwoyV|Pd42VETQc05#mtv;21%J1cm>V5gU WysF-zr2JX_D!)}9s*iAUh5iAIv7|Qu diff --git a/djangocms_link/locale/el/LC_MESSAGES/django.po b/djangocms_link/locale/el/LC_MESSAGES/django.po index e12f62d2..f367bdd9 100644 --- a/djangocms_link/locale/el/LC_MESSAGES/django.po +++ b/djangocms_link/locale/el/LC_MESSAGES/django.po @@ -11,120 +11,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Greek (https://www.transifex.com/divio/teams/58664/el/)\n" +"Language-Team: Greek (https://app.transifex.com/divio/teams/58664/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Σύνδεσμος" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Tηλέφωνο" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/en/LC_MESSAGES/django.mo b/djangocms_link/locale/en/LC_MESSAGES/django.mo deleted file mode 100644 index 153304bd0a80773ef77c0fc81c54af6c0295f544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2056 zcmeH`&u<$=6vqc>`C%wOS|ETpJe5Xj)UN9U0l{^nY~xL_YR9hQRKO(~d&l=3m*pk9#>2TuJP;KT(932^}~+_)hjRpQ76PTb1(*-n#QId`NtpPkt^@4fGv-9Jtq z`$}NE0echn7i8>=V7cBA;pU@?gtOncXaSK!sBJw!t`l2 zy$*1#tWPYSm8LheZnv*hmhMiJ>sqgNjU1^ZPui2Qfn=81J(W_h0~LnK(Vh-NT0A>D zGxHUdOq&~gVx+y-X0RsWbb{bG=T!*U@gkn)5^5gRlIT}^SpS}`8-*4-QnDnwS!hnlhipAPlr8ia_g)?5Bqep zbemgtbNM!nP<>a?Ku?q@iY6M4R*_MAxIB~Ey$4$!5)bxTLj)47Oi8Z})IbKOE{cwH zxPH-5BeW*K&Dl>>FGRI8x~`np)|9CgZ(NP9By>G#Z`Ybzg|^DA3sJ)lbQ)bA4}8?I zWh%6qooK@;8E`17B3PMLO3Uv@rT3!J+q7INzw_?7(n_fW$Ed9)nuE{%K1$+t)M!T4 zm_BHh8?|#EH@A{PUHTApoHQP#Sy!gboqCv6T(PPVt#;A#eAIZ#nY z$x)f=@z#|cF1b>#uV=bw-Qds%r8a7fbwW~wn(ZBcT-}}G+-hbJt8rc8< diff --git a/djangocms_link/locale/en/LC_MESSAGES/django.po b/djangocms_link/locale/en/LC_MESSAGES/django.po index 6804924f..aebde87f 100644 --- a/djangocms_link/locale/en/LC_MESSAGES/django.po +++ b/djangocms_link/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,120 +16,124 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" -#: cms_plugins.py:15 +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" -msgstr "Link" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "Link settings" +msgstr "" -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" -msgstr "Advanced settings" +msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" -msgstr "Internal link" +msgstr "" -#: models.py:27 -msgid "Default" -msgstr "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" +msgstr "" -#: models.py:44 -msgid "Open in new window" -msgstr "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "" -#: models.py:45 -msgid "Open in same window" -msgstr "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." +msgstr "" -#: models.py:46 -msgid "Delegate to parent" -msgstr "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" +msgstr "" -#: models.py:47 -msgid "Delegate to top" -msgstr "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll " +"to." +msgstr "" -#: models.py:65 -msgid "Template" -msgstr "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." +msgstr "" -#: models.py:71 -msgid "Display name" -msgstr "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" +msgstr "" -#: models.py:77 -msgid "External link" -msgstr "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" +msgstr "" -#: models.py:81 -#, fuzzy -#| msgid "Provide a valid URL to an external website." -msgid "Provide a link to an external source." -msgstr "Provide a valid URL to an external website." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." +msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "If provided, overrides the external link." +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." +msgstr "" -#: models.py:93 -msgid "File link" -msgstr "File link" +#: djangocms_link/fields.py:215 +msgid "Select site" +msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "If provided links a file from the filer app." +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." +msgstr "" -#: models.py:102 -msgid "Anchor" -msgstr "Anchor" +#: djangocms_link/models.py:24 +msgid "Default" +msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:41 +msgid "Open in new window" +msgstr "" + +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" msgstr "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -#: models.py:109 -msgid "Email address" -msgstr "Email address" +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Phone" +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:77 msgid "Target" -msgstr "Target" +msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" -msgstr "Attributes" +msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "Only one of {0} or {1} may be given." +msgstr "" -#: models.py:258 -msgid "Please provide a link." -msgstr "Please provide a link." +#: djangocms_link/models.py:118 +msgid "Link is required." +msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -#~ msgid "At least one link is required." -#~ msgstr "At least one link is required." +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" +msgstr "" diff --git a/djangocms_link/locale/en_GB/LC_MESSAGES/django.mo b/djangocms_link/locale/en_GB/LC_MESSAGES/django.mo deleted file mode 100644 index 625abdf47ba1862fbc7ef54d3fc2847f36eb0f38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmYL^&rSj{5XLcj+M{O=W8wjV!*)?{DcJ+yLI@%R7p|tVWvPL7)0RJ8d<$RCXR%-c zU-C;k={KEkey^{73QiY}8^@jF(sA!ND0FP>jAw8f#xM2hWAW-w6{yzwZ(j^@m|CVXa=Q>c=lf#eCv0|bQD>Saz@P@CK}lF9PTmWX*@k5t6VBEYVwtUkSwe9th2<#>gv?U4ES2)l3?(;QPv4t^HJNh4QWIH-0Uw*B^Z@-+OJp?t;d<1BBy+Gw`IuF`8m XLFUKOMAatzU!$Ug+X#YE(<}S|1lN23 diff --git a/djangocms_link/locale/en_GB/LC_MESSAGES/django.po b/djangocms_link/locale/en_GB/LC_MESSAGES/django.po index a9a213d7..b3e119b9 100644 --- a/djangocms_link/locale/en_GB/LC_MESSAGES/django.po +++ b/djangocms_link/locale/en_GB/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: English (United Kingdom) (https://www.transifex.com/divio/teams/58664/en_GB/)\n" +"Language-Team: English (United Kingdom) (https://app.transifex.com/divio/teams/58664/en_GB/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/en_HK/LC_MESSAGES/django.mo b/djangocms_link/locale/en_HK/LC_MESSAGES/django.mo deleted file mode 100644 index c10213f29897c92c433aaace159b44102ac72adb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmYL^&rSj{5XLon+M{O=W8wjV!*)^DrGx|GA_S2Qu3SxpveZDkY0JL{@%4NbyO_Y2 z{5qY?H=XJ4)#cBb)4Ai?aqGBn+&KzGj=d{3Tr50CC0c#+sm1;bCtMq$B!#5i8MI$w zn8f4v{^-pc^IU0*Lz9UaKCLr@siNQ|qZB)uGwYi0nORPuMuG;CMigU6 zwrVw#M$GxHI#nxwCN@I(*0mbH9);n9&*f)t;FrB&e;A*B7gUMYQPOg0G2Q2GYs+`m z&zDTdCQKJh8*W=4X&0lDub4FF8e=(CGa)ky(U-8tjVT;vdC79E*%G@-uM7p5A5zn* RHR1o-DoMC$K~QdbXMaMYdH4VT diff --git a/djangocms_link/locale/en_HK/LC_MESSAGES/django.po b/djangocms_link/locale/en_HK/LC_MESSAGES/django.po deleted file mode 100644 index 9dc120a1..00000000 --- a/djangocms_link/locale/en_HK/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: English (Hong Kong) (https://www.transifex.com/divio/teams/58664/en_HK/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: en_HK\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/en_US/LC_MESSAGES/django.mo b/djangocms_link/locale/en_US/LC_MESSAGES/django.mo deleted file mode 100644 index 4294557ae486ef3468ace018fbf5a16f0f21b72e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmYL^&rSj{5XLcj+M{O=W8wjV!*)^DrGx|GVu&IH7Otl5mZb*TOXf#(iR6M7a2aTbAySZ;Ejd}b~R_#HQ^JpoI;%hO(YLU?jRtv5mrf^ z5NE_O--!L^Ctrx9i9rKMlai=PoV-^i^EJykCY-G(#4=wBvw-qc3d=K?SeIccP+nMD z80!1m?Y3q$lSa(>u9m8mpNWl7zIE-!Z$x2u?{oP+o%j`R&>zI74TBo-x=LCuEhb-u zo80o9^@}AFvIXgaX~S)Mn)EO_`SwY3t}&LW%7n}*L?6N)r>1bo@not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/eo/LC_MESSAGES/django.mo b/djangocms_link/locale/eo/LC_MESSAGES/django.mo deleted file mode 100644 index 7ab61d69a8f41dc71ca655bc3b51c29d9c5b66b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmYL^&rSj{5XLcj+M{O=HSqw!VY?{nQnCld#Sld{xN@(%!%_q7rY(Pb5MR${v8xGu z$uBc)znRYboS%I+oK74Ujw{Ehcd_;ylxp>fxrK27bJRvC$w+!Xe7=85 z$UK?7ji;~P3@fEAOiU>Xc-WK%GR26OPBR#4HcR+7QKv^$r(=MgX z2s7M@y7|!;0_{W4Bec(G)TU0}3zy}Fmk1g1H6w|sP;+S&X)dj;4D zJGol>h1d$^TUTKGUKED6J}STEO~#YtxKPlc-cU)4(n9uCxj`-NtzWIUkOPu0xi)Cy z_iO~w(N}-7Kn;n^RUu@_Nc17>VMs<$dFg7S`3go#uMH!z`a7DqJ0SmQ+?3=pCP8c9 GHGTmmNp(R0 diff --git a/djangocms_link/locale/eo/LC_MESSAGES/django.po b/djangocms_link/locale/eo/LC_MESSAGES/django.po index 69fd56b9..c7d4cf08 100644 --- a/djangocms_link/locale/eo/LC_MESSAGES/django.po +++ b/djangocms_link/locale/eo/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Esperanto (https://www.transifex.com/divio/teams/58664/eo/)\n" +"Language-Team: Esperanto (https://app.transifex.com/divio/teams/58664/eo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/es/LC_MESSAGES/django.mo b/djangocms_link/locale/es/LC_MESSAGES/django.mo deleted file mode 100644 index a326e6707103fca67a554e09c431ae23d3d7f77c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmYL^-%i3X6o)Z-wM(zPsEHR4JhVfZTgfgEharkAFuAW=88y%@ZTaJa_zK_P&BWY6lR5*D{Cu5G2ZX@9jlo%V#yDk zTy1b6c0yt6bc1_g5Zq&KaLb#FC&}qMeusENB`ud0vaiaGY5Bq8YR!b~qkP4*;WmEH zMi8F7y3LYnNMx=GAxnzF4`GiZQpAmyuD6=4VWjlNP$a9rt%not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/es_AR/LC_MESSAGES/django.mo b/djangocms_link/locale/es_AR/LC_MESSAGES/django.mo deleted file mode 100644 index a2c86927d7c0b2b7c4863ddb38f90b21e09ef8fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmYL_Pma?t6vhn-)DbTX)-Wui`)Etu3z45=O2?sPZ^hhWVS zxCdw9B_q*K`swqt-aq^AlarqW^#FN_oFNa9CDQ5(a)Jn?z273g?-5d?KSJO>A&=3Y zqvLhg2aRBOr=`;0NmdyxNoLJAS$MkG&}(U(GMYn{%s(XWQ@BpoSBuM!!CE%Pdb)C@ z+R%6V($U;-2(rtZ&aD(4i|D!VlEaV?I5sAH}C^$QUNlwY*Vn^J892*@O;8 zz$ToHPZ=s$3g>BVg?6>@#&Sq>DQg4gN-KCRx**(O@OGnalnIOK&5L$qjFr0Fi&D~D ziXDfmMrh?K=q0w4+AA&k(5t*}9FL;I;SllS$|bm$pMA, YEAR. -# -# Translators: -# Angelo Dini , 2016 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Spanish (Argentina) (https://www.transifex.com/divio/teams/58664/es_AR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_AR\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "Enlace" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "Teléfono" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "Se requiere al menos un enlace" diff --git a/djangocms_link/locale/es_BO/LC_MESSAGES/django.mo b/djangocms_link/locale/es_BO/LC_MESSAGES/django.mo deleted file mode 100644 index 1db60479d55a4211822494901f1cbba1504a7fbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmYL_(N5bi6o$hDXv*cTxj4IP1x}ofhSsHswggm-uAyYToxIef-cmcVUCJJ053(2H zSvbig`b(eeUpoIe$A0~E_}4>yKu(Y|O|QA)aO3d|ww6+9y#LXrIyEDMk7B+&YpOu58Jj zHVj6p5T%A2sU%$T#sn)g*DLufb&#*G&gzjdCRMTJg&>*W8wQURSJJMbHP$6o@;0>A z&Q+F$;cmAJTs=ZQiI*VPo3QB>It<#d+l%A#P}m>idD!-6(^<0rl_;S8L@Os0F8Qaz z*E;dy!m8v_4Ip20V}%=j&u&R?Usq3h5{4uy*SLAXp!ZX{_k9^Ov;4H&8eWoHZ8nyH bsv2vDodNv64qFO74, YEAR. -# -# Translators: -# Angelo Dini , 2016 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Spanish (Bolivia) (https://www.transifex.com/divio/teams/58664/es_BO/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_BO\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "Enlace" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/es_DO/LC_MESSAGES/django.mo b/djangocms_link/locale/es_DO/LC_MESSAGES/django.mo deleted file mode 100644 index 335c84b0b4d96e271825e1b91412636705c36c6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmYL^&rSj{5XLcj+M{O=W8wjV!*)^DrDPAtA43!&uyQqJDN7Bso3;yh^&NaYpT(jH ze914Jrr*qb{kgpOE;*e!t{gXxbH}aYpvdv%9-Hnwc#axt^}$n%g9XmGHbO}X<96q{ z{nUe5Z!#T>UcCv=m9{uEnONXskr_-B1#dh`u%kJ%t_i!$atd`4G?6?Yxr2bvMpz|v zLYxsNd@ByaPreXI6N3hjCM8joIC(EjW(CVQCY)_3OmilMSwXq0HbRP&NpMMu`C6nE zD6g!|4fXxqZdbFKNh6kgUrW`-Ux=+xzI8K<--yES-sk4MJMt^ua4_thz8Tbr*HO}P zX)*cCU3|;;*3Z{W$QGn4rVY38Thhnq, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Spanish (Dominican Republic) (https://www.transifex.com/divio/teams/58664/es_DO/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es_DO\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/et/LC_MESSAGES/django.mo b/djangocms_link/locale/et/LC_MESSAGES/django.mo deleted file mode 100644 index 9d2a58b3c0999bdfed24896dd9c0e1657919a150..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmYL`&5qMB5XTKHLdpdRapYibyIPz$Wm{U8B1$)lDq1!wVb7R!ni^6&vZveSL3jZk zjAvnzmFQpkX*{F(vikS{VD2oYxrB;Iq{mD_iJ-&TwHG7y=q4esM1z@U4bY- z?-b7hI%~A$r(47(s3bWY4l%Z!%?9q`((RJ2MS_$clKyZoxJUq#vuHVAX2+LEV;Rky zMXaMLW=lugR*Db58~nec;($?J@4c?Y jmGirxxNSN&OnPH}f1I3J{&K?8vvI__-zuPnjkD|@uB?(F diff --git a/djangocms_link/locale/et/LC_MESSAGES/django.po b/djangocms_link/locale/et/LC_MESSAGES/django.po index 01414b41..256d0bbe 100644 --- a/djangocms_link/locale/et/LC_MESSAGES/django.po +++ b/djangocms_link/locale/et/LC_MESSAGES/django.po @@ -11,120 +11,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Estonian (https://www.transifex.com/divio/teams/58664/et/)\n" +"Language-Team: Estonian (https://app.transifex.com/divio/teams/58664/et/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Link" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Telefon" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/eu/LC_MESSAGES/django.mo b/djangocms_link/locale/eu/LC_MESSAGES/django.mo deleted file mode 100644 index 1add583d1938e0d4c11fb2c8b977394f99f99c14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmYL_&vMf+5XKEtIQYn!!*XkpqsTDhKE5`~WAk1$HHnk`{ z6|oEHQ9zF;L&iTaehLW}{q&gkI42`p;Jxaa?|mubLzeV`4+S3_b5eLMoo9uW+SSq< zD`284tPNZ!t>8@Vl4wQArmrzgmRDwfBt^alGAb zBj5E^xA+j1W)trk#Gc$P?hn%ReT;2<6wYV!Z2u2Q#KWo49yP7?yP@}aeDHBoOQlCp zuBCP8$KQ)fHrV^RF}G-0rb|P+Rsse;lz-k(0JdRXw^r8d(%6j?pqpLl#=Q|dh2ujF Q@5YcEjlv*v9`9uEA6IvcSO5S3 diff --git a/djangocms_link/locale/eu/LC_MESSAGES/django.po b/djangocms_link/locale/eu/LC_MESSAGES/django.po index e093204a..80635513 100644 --- a/djangocms_link/locale/eu/LC_MESSAGES/django.po +++ b/djangocms_link/locale/eu/LC_MESSAGES/django.po @@ -11,120 +11,160 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Basque (https://www.transifex.com/divio/teams/58664/eu/)\n" +"Language-Team: Basque (https://app.transifex.com/divio/teams/58664/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "Esteka" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/fa/LC_MESSAGES/django.mo b/djangocms_link/locale/fa/LC_MESSAGES/django.mo deleted file mode 100644 index 8ca4d62380e03604431c869d1b4c079f99931f02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1295 zcmZva&u<$=6vqb$r8PeSMS@F_=7ds}iPxbq&Zem_iBm;1#7f(o28x7f4R>^M%< zQ>4_6L{3OZ9N>b0kf^E^ihvUme*ofAp;Iegr-Peg-}dewp%7%Addq_t)y`mcj$K>>b+m^}Cz?BAX`_WuP^{|OX-4x9w3-i4H2$|aEE-Un%) zDmVq+OZf#zeSS{uUqR~scj`Zb;n0307-3Y4j2EDkN4+u1Na%Lwpp^eCl=h{?rC9%`;tmv=)QL|t~`ie*ck_{xn)D^_kQ87tm4(MA|3 zE=N74Sw)(6?Z{ZM z8rQ=>ywj=2q7wN$Q(mixMWduel2}49pU-%?IpMt}yf=By^Jnvyycy3!pjcNMAr&9T z<%KsVaKLO%#^=k@ge|H0wT4td$gk9n?fS@kyH2;9u12k^ zZ&2d`@^!r<>q=CVY+()B2ia2%YumA(&33!pX-nn9n%bnqY!GgQQPv_n&dwI{`ODdw z%wEi_uB?{E=g3WanZ*b{j>dF%+gQ`8O`FC2LOsu`4QcShFWjswi^4dL+SHU0C0&gI z{3(21xEsdFUQc(y4C%-$OD-g_0e#AN*&EG@7}u5&aDx?xV~g>2Yd?8IkhceUByfI2POIr}HKElRi$chn`6fF9VkJ(Rz!a(DrbU H?67|T7E-Cl diff --git a/djangocms_link/locale/fa/LC_MESSAGES/django.po b/djangocms_link/locale/fa/LC_MESSAGES/django.po index 99e516a3..9518c221 100644 --- a/djangocms_link/locale/fa/LC_MESSAGES/django.po +++ b/djangocms_link/locale/fa/LC_MESSAGES/django.po @@ -12,120 +12,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Fariman Ghaedi , 2018\n" -"Language-Team: Persian (https://www.transifex.com/divio/teams/58664/fa/)\n" +"Language-Team: Persian (https://app.transifex.com/divio/teams/58664/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "پیوند" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "تنظیمات لینک" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "تنظیمات پیشرفته" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "لینک داخلی" -#: models.py:27 -msgid "Default" -msgstr "پیشفرض" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" +msgstr "" -#: models.py:44 -msgid "Open in new window" -msgstr "باز کردن در پنجره تازه" +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "" -#: models.py:45 -msgid "Open in same window" -msgstr "باز کردن در همان پنجره" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." +msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" -msgstr "الگو" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." +msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" -msgstr "لینک خارجی" +#: djangocms_link/fields.py:194 +msgid "#anchor" +msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" -msgstr "لنگر" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." +msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" +msgstr "پیشفرض" + +#: djangocms_link/models.py:41 +msgid "Open in new window" +msgstr "باز کردن در پنجره تازه" + +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "باز کردن در همان پنجره" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:109 -msgid "Email address" -msgstr "آدرس ایمیل" +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "تلفن" +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "الگو" -#: models.py:120 +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "هدف" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "ویژگی" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." -msgstr "لطفا یک لینک مهیا کنید" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#~ msgid "At least one link is required." -#~ msgstr "‌حداقل یک لینک مورد نیاز است." +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" +msgstr "" diff --git a/djangocms_link/locale/fa_IR/LC_MESSAGES/django.mo b/djangocms_link/locale/fa_IR/LC_MESSAGES/django.mo deleted file mode 100644 index e4d4f675b1ff40c55ed681b19b46b2dd96c2f6bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmYL^-%i3X6vi=nwM(zP=!F*$JhVfZTL~tL!z_v{b8>6yD5D12r7eGa5MR${vBLzu zed-|6}Kdw%xQa5`~ZI4&Khjw?s4&|%zVJmQ!atq`d`God@Ht7=L zjF9n-s2@N20w59iJwzf(!Zva8UYIP`tmKe$wsJA*JWQfyqM2-==EB;_P>i?RZO6JJ zBj$Y9Dbxzj#6~D=U6;YVFbHn&oP8u2Zh7Nm93MaCcZfGs(sF4b|E^qM%Xb!6OD1F= z6$_>fw}bb51mV$FPnvTLu`JX~$daP)Q`kdTiuSX-bh*}S2_vOfh9X(*w`S1oqyKWy Ml;{rmt-jaz17E&)ApigX diff --git a/djangocms_link/locale/fa_IR/LC_MESSAGES/django.po b/djangocms_link/locale/fa_IR/LC_MESSAGES/django.po deleted file mode 100644 index 6720b36d..00000000 --- a/djangocms_link/locale/fa_IR/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Persian (Iran) (https://www.transifex.com/divio/teams/58664/fa_IR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fa_IR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/fi/LC_MESSAGES/django.mo b/djangocms_link/locale/fi/LC_MESSAGES/django.mo deleted file mode 100644 index 804655979a7d87b8fedb47e3d3784875b8921400..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1103 zcmZvazi$&U6vqve9}T|?BSL0tRh(Q}TGDG%5!w`@wj^rPE=+FXY)hV#uYuo3-+zwwzrdT&CsBmsZP3*_54ya|psTw8BGoXq z%kQ*{Fz0h}xqETv;XYglKU|maoP?!dr=7AANflCQXiFL+RdbaTR4vdkSr-kSM3xj= zTt<}F>#;C~6nj?0ibvEPBPDfmx8)@Fphj4WSca6_LQ$!x5?$Jrs;;~LB*Rb zdzds0t7@O7D&;C$iv_nh#MTkar*mF*iFx;#H&3&kzpyy#&3PUi*^cN)7kuou$h;+% zU7+5Q@8xDatkf1amQ`b}3`*0nPxoaM304#>5lOl^=!YU2^yx}xD2t(-4mni*;6U02 zui;d>Ay@CZLUM?wnh9?TRu#PE(+#PVGy$CstZf@Vlj(N5Y3tI-hUlehx|ONRj?@_o zcavGjEiT^6G-PHbwO!gSj;|-1_EKvaT~Vm^SsTA?MbBn%pHeN;TEJtpCcjtRV7alM zOVbcBE2^5VqisITq2zxh`m`Zal_-gM#5Q!?GCo!9;nw8mmg(_pep=Bxd77PBPW^YJ z!Z3*?DM!L4hU^adK{z;SYlHq6Ez#?}DAZD6SlnENlI%(|=${naTtRohJaPO+65>G$ q9nNWzSm6c@Srq5$Sj2$geJoaz0KHOVQwMcH3T{S4l(cnl$jKk$U>)-S diff --git a/djangocms_link/locale/fi/LC_MESSAGES/django.po b/djangocms_link/locale/fi/LC_MESSAGES/django.po index b47579c3..6e205fba 100644 --- a/djangocms_link/locale/fi/LC_MESSAGES/django.po +++ b/djangocms_link/locale/fi/LC_MESSAGES/django.po @@ -12,120 +12,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Ville-Eemeli Käkelä , 2018\n" -"Language-Team: Finnish (https://www.transifex.com/divio/teams/58664/fi/)\n" +"Language-Team: Finnish (https://app.transifex.com/divio/teams/58664/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Linkki" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "Linkin asetukset" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "Sisäinen linkki" -#: models.py:27 -msgid "Default" -msgstr "Oletus" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" +msgstr "" -#: models.py:44 -msgid "Open in new window" -msgstr "Avaa uuteen ikkunaan" +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "" -#: models.py:45 -msgid "Open in same window" -msgstr "Avaa samaan ikkunaan" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." +msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" -msgstr "Asettelupohja" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." +msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" +msgstr "" + +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:77 -msgid "External link" -msgstr "Ulkoinen linkki" +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." +msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:102 -msgid "Anchor" -msgstr "Ankkuri" +#: djangocms_link/models.py:24 +msgid "Default" +msgstr "Oletus" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:41 +msgid "Open in new window" +msgstr "Avaa uuteen ikkunaan" + +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "Avaa samaan ikkunaan" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:109 -msgid "Email address" -msgstr "Sähköpostiosoite" +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Puhelin" +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "Asettelupohja" -#: models.py:120 +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "Kohde" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/fi_FI/LC_MESSAGES/django.mo b/djangocms_link/locale/fi_FI/LC_MESSAGES/django.mo deleted file mode 100644 index 075f76268d9241322e3b29a5cbd65143cfd2dae6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmYL^-%i3X6vj1rwM(zPsEHR4Jgh^RTgfgE!7Pd_IJq@-E2Cz#OIsK|h_C0f*kJ-+ z@=MQ2zw__+;{4~t>eO;+xwf2HZY+%gOKm?x`!=3~5+%P_W+2XC!Ib7w5R?o@&%>uN zT8!s!@$A)^vq~xhQ(f>J9yW!BR1)MQvlK>(QDckXks3x&4|^ftd%(BI!=&$ba1Uc^ zggM*truot50}jFKBODSObg-54LPfEm1%s5)H9-?D1lKFnvO!5j-bSsJF_k8+Ti12h zC@M5xvRyZmYd7axE?r{_wc8JT|IS_Vk4fydooPHBA8+%z*cnM-m@trjS9WK^cE+tr z%EbU>E2=az(R(_9;OJ{6Et!I`$Yjn%K~V6?&0$}H_OqO%+$dVYM5?tWNL2e&N4)|1 P52KbqR}u2s1Lx!qZ0LDx diff --git a/djangocms_link/locale/fi_FI/LC_MESSAGES/django.po b/djangocms_link/locale/fi_FI/LC_MESSAGES/django.po deleted file mode 100644 index f65e536f..00000000 --- a/djangocms_link/locale/fi_FI/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Finnish (Finland) (https://www.transifex.com/divio/teams/58664/fi_FI/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fi_FI\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/fr/LC_MESSAGES/django.mo b/djangocms_link/locale/fr/LC_MESSAGES/django.mo deleted file mode 100644 index 6e085c5cb263558cfc743e6c818fd38b55231bdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcmai!&u<$=6vu~BpcrUr`FWtyqcmzlv-Y|)A$5O9CO;seX`;mGflD>mJObml!J}Z%GX)+2XTh%# z!yLGX@sBVL`u_ogpW`qN>raEX!4JWp>pmFtKLXzbe<=A27~*&Wz6JgPhIkIa_%wJ7 z4CC`4wiHb;=v)Cqd|!a?gI|Fs!3W?g;Lqj!uVB#gCy1Z;8-L{yU^LMl;tVbLMY@YP z!#MZ}T9Fd*I{M4#kXPsciWbf$_&tgq;s`D1eY%A^5L(Djh;gsIgNL9kPX>?ij~6w9I(Mk#eMsCz+;Z$O(DVW#3~6U|~T(d_qGCywBY1~Sc=j81n+c07ECNu}|mWlF{p-zlGi|0*pR zy2RNP$huSmVcJgfgh^80GB(3Lbn1gs@aoJfOS=@BXfwEG!JnKIx)ljDF>~4a~nN4 z5*sN?$9n>iq9TQ&B`wZTv^YbI9%k0u7jRM-(2XS3`P~zDVt!w79~Tw_7XG!hv1bro%Q`)@>86U4s^Ol;2m_ppLC< zq`8%8v|?=L8l?Nh&|N-vktUCqr!`%n`pm`3e^;VD!_MQfI+8ikqTF~ya=`8Xt-;Ol zsGA~RSQv_NJSvLNvS{8kC<;nts6fsw;lz zohb^BzbvW|!Y0*-C6mJAq6pzX8YyxV_dC`cYU=JSjaETZ%d+w_44TEpB@oA(c^; zHqiA{jKx4~NGr4PLl6IiPfJLG*w(1jJjK{esxvRDv(LGw@gta0VzeHQP@?(3DoY8j z2c$Bz<^xW#ZHIMX`HTe)AR9kI, YEAR. # # Translators: -# Doryan R, 2019 +# a270031086f2a0d3514bc0cb507b48f6, 2019 +# Florian Delizy , 2021 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Doryan R, 2019\n" -"Language-Team: French (https://www.transifex.com/divio/teams/58664/fr/)\n" +"Last-Translator: Florian Delizy , 2021\n" +"Language-Team: French (https://app.transifex.com/divio/teams/58664/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Lien" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "Paramètres de lien" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "Réglages avancés" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "Lien interne" -#: models.py:27 +#: djangocms_link/fields.py:27 +msgid "External link/anchor" +msgstr "" + +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "Lien vers le fichier" + +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." +msgstr "" + +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" +msgstr "" + +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." +msgstr "" + +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." +msgstr "" + +#: djangocms_link/fields.py:188 +msgid "Select internal destination" +msgstr "" + +#: djangocms_link/fields.py:194 +msgid "#anchor" +msgstr "" + +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." +msgstr "" + +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." +msgstr "" + +#: djangocms_link/fields.py:215 +msgid "Select site" +msgstr "" + +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." +msgstr "" + +#: djangocms_link/models.py:24 msgid "Default" msgstr "Défaut" -#: models.py:44 +#: djangocms_link/models.py:41 msgid "Open in new window" msgstr "Ouvrir dans une nouvelle fenêtre" -#: models.py:45 +#: djangocms_link/models.py:42 msgid "Open in same window" msgstr "Ouvrir dans la même fenêtre" -#: models.py:46 +#: djangocms_link/models.py:43 msgid "Delegate to parent" msgstr "Déléguer au parent" -#: models.py:47 +#: djangocms_link/models.py:44 msgid "Delegate to top" msgstr "Délégué au sommet" -#: models.py:65 +#: djangocms_link/models.py:61 msgid "Template" msgstr "Modèle" -#: models.py:71 +#: djangocms_link/models.py:67 msgid "Display name" msgstr "Afficher un nom" -#: models.py:77 -msgid "External link" -msgstr "Lien externe" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "Si fourni, remplace le lien externe." - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "Ancre" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" -"Ajoute la valeur uniquement après le lien interne ou externe. N'incluez " -"pas le symbole \"#\" précédent." - -#: models.py:109 -msgid "Email address" -msgstr "Adresse électronique" - -#: models.py:114 -msgid "Phone" -msgstr "Téléphone" - -#: models.py:120 +#: djangocms_link/models.py:77 msgid "Target" msgstr "Cible" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "Les attributs" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "Un seul des {0} ou {1} peut être donné." - -#: models.py:258 -msgid "Please provide a link." -msgstr "S'il vous plaît fournir un lien." +#: djangocms_link/models.py:118 +msgid "Link is required." +msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "%(anchor_field_verbose_name)sn'est pas autorisé avec%(field_name)s" +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" +msgstr "" -#~ msgid "At least one link is required." -#~ msgstr "Au moins un lien est requis." +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" +msgstr "" diff --git a/djangocms_link/locale/fr_CA/LC_MESSAGES/django.mo b/djangocms_link/locale/fr_CA/LC_MESSAGES/django.mo deleted file mode 100644 index f43668c6241bf981f75bfde0de23004467840f62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmYL^-%i3X6vj1rwM(zP=!F*$JhVfZTL~sOharkAIJq@-E29S5r7eGa5MR${vBLzu ze8F+yS{kKB3*9MLL8y zBTV^5)Q=y10gwp%E+P>nVT(9bZh?!&sYof-&+R9Ljx7%&o zY9@`C^IbbvD_n?;P}sVd!QC(jZt+}y!~@*)#-nj^{F&b-UaX|$(n9uKxs5H~SzIld zkUf+ym^R$@-?JfvM_)Z@&NU=5SA~!zMd7Eghixg^&+^jcTC*h#m0lT&WVOGVey4~2 OkNt*3_sDPdypun-ns`V6 diff --git a/djangocms_link/locale/fr_CA/LC_MESSAGES/django.po b/djangocms_link/locale/fr_CA/LC_MESSAGES/django.po deleted file mode 100644 index 9d034577..00000000 --- a/djangocms_link/locale/fr_CA/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: French (Canada) (https://www.transifex.com/divio/teams/58664/fr_CA/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr_CA\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/fr_FR/LC_MESSAGES/django.mo b/djangocms_link/locale/fr_FR/LC_MESSAGES/django.mo deleted file mode 100644 index 8da5bc0e94e032ac3030b2c36d2375ead75eac96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2125 zcmai!L2MgE6ov;VPz)3(6e>ieN85-*&D!fiQrB&ROyWR9(?p4zYc%$b?P=FD&djXc zQ1!-z14m8;!3otpaOA`R$yYAiI8;a+xpU&g|JF{@ss~0|e>>whZ~ph*y#4d!v2O&% zX*}=Yd4y*M&$rLu2P1w~h&8Ybz5(8y@@wz~%)bY3gFk`=@Z@tsya=8FPl7YxYhVR@ z1^f(r6}&lR3!KAzZ#usZ9>aVzo&N-$$NU$N{rv^L3H}2<4<3i{+u#Y1^~`|B!FljL zVpsroF#jFKtYa2NZ-Et%_pgIZa2tFH{26>1{1xPU{03eC{{~tADFk-{JPY!?3|7FU z>3j&{Nbx1eI==#|;CJBr;2+=_@L!P6ISsMzg6Bcj^D&6OL>-)#0JBN%IZhtz7wOL9 zqc(DG*2j2l6oaa;d+vMjRfVFYm#LTQTt*&*u zZLQK|cc5I;dbMk0PtAGKo{SA7)6@=CLcw-a=qg7;9lA6#JJ~a_6<1SjZu5?w_FkLL zlBgvEILAJ(Lcod_wfrnm>-UvOJi!+YWSS|mCfz654)D#3+ThK|l&m9lXZp_mi?m|t zs_HF4*3}XS(^i@#iX`=&!eKav&Yn9%Pb9GsyZ?##6x}Q zlzDO~*uGfNzMsl{;@CvJCv{3PNu2Ut)F0O)*4jAN4s@cDd9p~K!|NonCxwf(gP1rD zasA-uC^;LP18b0sHrE)l_^4s4RM^~TM9WUefKAZ~oK@*!T)rH|m!kMXD#z7@#S8JpIEG=g zr3RXvAK5KN@#UzzK=I{jT)7Zq6s}7jqK1>kLz;C}swGY%WYi3|w5R6T|0S52P9{4l zYAD&O(khDB>eB2gHn!9p&2~fR`)a8)91e?tz3H~PQ*7B@DbWLMO99(_X`!;X_))3t zc2~DbbA|P__4-i)%Eh>_Y*8}I%bAL2Fyl-ScA8tmz2Wg}_!GHJq+*pyE8#t-1dljN=)kMeGHO4M#y zbdSS5%~I7vIw<`B1~_jo)8sRa1%;cH-%D;)T;OclwI~-it4CTU-3m*uJ1{v%GNWWX zLT4WJsAnC#iarfu89DCY-~_w*h?YbH9yIJze_Dq~p-%G-=#kV`CeMqwVSD(tv~{aH z9^s?JU93n&+|}qq=$>?{65E<^k-UP!@n{|qJ9(7U@ek}2^=~OkvPr-P8*?v{kCw_^ zK9SI=wb(w)U}m7v-Rnl8 diff --git a/djangocms_link/locale/fr_FR/LC_MESSAGES/django.po b/djangocms_link/locale/fr_FR/LC_MESSAGES/django.po deleted file mode 100644 index 39d3756b..00000000 --- a/djangocms_link/locale/fr_FR/LC_MESSAGES/django.po +++ /dev/null @@ -1,135 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -# Translators: -# Assma Buifruri , 2017 -# Adrien Delhorme, 2017 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Adrien Delhorme, 2017\n" -"Language-Team: French (France) (https://www.transifex.com/divio/teams/58664/fr_FR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr_FR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "Lien" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "Paramètres du lien" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "Paramètres avancés" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "Lien interne" - -#: models.py:27 -msgid "Default" -msgstr "Par défaut" - -#: models.py:44 -msgid "Open in new window" -msgstr "Ouvrir dans une nouvelle fenêtre" - -#: models.py:45 -msgid "Open in same window" -msgstr "Ouvrir dans la même fenêtre" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "Charger dans le cadre parent" - -#: models.py:47 -msgid "Delegate to top" -msgstr "Charger dans le corps entier de la fenêtre" - -#: models.py:65 -msgid "Template" -msgstr "Modèle" - -#: models.py:71 -msgid "Display name" -msgstr "Nom affiché" - -#: models.py:77 -msgid "External link" -msgstr "Lien externe" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "Si renseigné, sera utilisé à la place du lien externe" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "Ancre" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" -"Ajouter seulement l'ancre qui suit le lien interne ou externe, sans" -" le signe # au début." - -#: models.py:109 -msgid "Email address" -msgstr "Adresse e-mail" - -#: models.py:114 -msgid "Phone" -msgstr "Téléphone" - -#: models.py:120 -msgid "Target" -msgstr "Cible" - -#: models.py:126 -msgid "Attributes" -msgstr "Attributs" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "Seulement un des deux champs {0} ou {1} doit être rempli." - -#: models.py:258 -msgid "Please provide a link." -msgstr "Veuillez indiquer un lien." - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" -"%(anchor_field_verbose_name)s ne peut être utilisé en même temps que " -"%(field_name)s" - -#~ msgid "At least one link is required." -#~ msgstr "Au moins un lien est requis" diff --git a/djangocms_link/locale/ga/LC_MESSAGES/django.mo b/djangocms_link/locale/ga/LC_MESSAGES/django.mo deleted file mode 100644 index 38daeb910406a77f4951f957363b2cef341d8925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmYL^%}xR_6ooOmnx$(OUATbYWjg%M6ek7|3{iyO$i5C`sDXCUmLH$NwXf&1cn1?X z$w|NFoVK?=mlxk9)EW8;eT_ax-=GVH=r0T-T#L@Xrbd5=)WK*0b78F1ijirr|I~XN zkojQtI-0zAGm&fKU~DtFfctG`A<>L@(@6q-Be=su@W7p5q)vkfXa{J61eCSfRa&PM zi!c*ASzLbVwSh(uvTp9MXw{^Yb;As!P%pH&(d# zEg3?1>J`r{g@J)e^+KwQk?>u*{{b1vxHnyI4PV1hn~h~e<;Sg!TV3*paaqN2K<)@7 Z7{_rPF(~l1gH%6KP~;87W~J+uegOnot " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/gl/LC_MESSAGES/django.mo b/djangocms_link/locale/gl/LC_MESSAGES/django.mo deleted file mode 100644 index c60be34f51b2c7f0f479a5f37a6c2cd7b57a17b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmYL_&u$Yj5XKi&B(z7)9EMw~c6PmiEQ!+~LYh_)30=aHyVWPE&XfUVvBN z5qJ;YgB!C!YCicV&q&|=vHv_f`Vo;H6VHh=;t6q1v?_=r;v@0%Q4}rdeoFkMn9hUR z`n_h_e2ofcZ)Fv5y27P&UR%SV7>(bLt|qXYEIv)IKg0{!SQl{am0sbyt@2n}4smf^ z;@C+Ms0c4akQ_QJ>mz%O>?LH3ck@%$VT_EpkaxOme(>eU`j~Zr^*QUEGEzJfK49sD z@wEunaTpmTYYP|JXgC-9Bw11NcBSvMO{(>qvvy=ol}2ral2}Ty;cz8tU1?$9cpXCH zd7AEayCk%o^^LqwD!WPdEz&@KpLTnB{wh^, 2016\n" -"Language-Team: Galician (https://www.transifex.com/divio/teams/58664/gl/)\n" +"Language-Team: Galician (https://app.transifex.com/divio/teams/58664/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "Ligazón" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/gu/LC_MESSAGES/django.mo b/djangocms_link/locale/gu/LC_MESSAGES/django.mo deleted file mode 100644 index e5c560bd6a7b8b9ae51142ec17f2b11911bb0a4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 418 zcmYL^K~KUk6vr`o+R?Lzns|WVqaDiJN;oJELKInWa<5w%CD1Ny2lzq!dVUr=P2ivW z(l-6Q*VmuRi|>ZZnd8cF<2ZNRI_iXumAj1GT06%iTCI6zVUojwYa^7TD0v*dJdR_u zi0AK<*_$`#rP3CrrVu$iRfU06QRF4F6o#5J>x$r+Sx!-x_z{o?Aa}?ov=_8Vmk=ky zobN>4{Nx2dBJg{NM3jVW;^MtBSyZgxkaD)AXk4wCcHL2PWo>CF#{2!gV>OdTEcv06 zsV&aMPAF`hZ*VURf_q$4xaCbJ)A;lszeBvCl9o#g=~wCIwESRkxnV-~QMO{*a69-& zM-ZO8`k5uy5X(&ELKYN-pTZtzq^PL8WK(IjfsxW%Ly;{1j%Lv9qyO!oDbe)+`K`X! F_yw65bk+a> diff --git a/djangocms_link/locale/gu/LC_MESSAGES/django.po b/djangocms_link/locale/gu/LC_MESSAGES/django.po index b4045a2d..cf7abf38 100644 --- a/djangocms_link/locale/gu/LC_MESSAGES/django.po +++ b/djangocms_link/locale/gu/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Gujarati (https://www.transifex.com/divio/teams/58664/gu/)\n" +"Language-Team: Gujarati (https://app.transifex.com/divio/teams/58664/gu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: gu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/he/LC_MESSAGES/django.mo b/djangocms_link/locale/he/LC_MESSAGES/django.mo deleted file mode 100644 index d70e9a851bf197fe9986adafdfc5fd3fbba1b30a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmZWlL2uJA6b@)eC`Zm5-i2w?=EUjN(7MZ5*L6^_vQV<#z1B+%sU6wwI(`TTBo5s8 zNxkt?5HG2;3h_yw{64+!eSY@u7dziP#8c!;oJ@tWQY!{&fAGHlb_mnq-k%1B1;SjmtPB3WEs7vT;LXRM#tQ{ZF7Nuw;6LBx=@U1TR?u!9@baJIH~d_&jrZ@UodzlZjD&M zUg2D2Ss1QXtH9N{@=iPiGrb6#fY71ahV4!qABTkq_x, 2016\n" -"Language-Team: Hebrew (https://www.transifex.com/divio/teams/58664/he/)\n" +"Language-Team: Hebrew (https://app.transifex.com/divio/teams/58664/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: he\n" -"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" +"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "לינק" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/hi/LC_MESSAGES/django.mo b/djangocms_link/locale/hi/LC_MESSAGES/django.mo deleted file mode 100644 index 80cc5d4fa1e32a338fe900943d11e8fd63e9900f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmYL_!BX2W5QbfbUOdC4XAavN49J#K;wB2|G!3E6K)_8+?!p$fT1WCo3W00ifpaf; zg1$iCq?4!UnRPlt{?Rwuo!NhPrN3`>pFGqKvX2}iuaQ%vQG)CuUy)z0Ja2~g9`X-k zJTGee8(m8E!%K|*E;2{PIhhG#rB)1*!SG`6c?7f3^xOFQ%Abl_8%HL#kU9CZC@e`e z13$S=$Js{%(033~){c*8i&88kQ*kew=G(fM&@PGEK)Z}~jws5% zeXsPAJ^!vBu{) z@!-O`;!^b>E4i`4^>5O1(%IHEWA20@Bb8}fwP4V>mF{Ih2Bq|qYGHUq&b66a2CCkq gw%_W(|FD0c;B6nG!=CTKdi8s~`m, 2016\n" -"Language-Team: Hindi (https://www.transifex.com/divio/teams/58664/hi/)\n" +"Language-Team: Hindi (https://app.transifex.com/divio/teams/58664/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr " लिंक" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/hr/LC_MESSAGES/django.mo b/djangocms_link/locale/hr/LC_MESSAGES/django.mo deleted file mode 100644 index 88f3b8dd31ecb81a75c7636dc43cf0ac841485dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmYLG!H&}~5H+v}DM!v6h6AfzEl!+n8(OznDBUiqXxXTQ<-!4zx``pRBgfq?(*6d& z#|Q8gOj1EddYXBY_r_!A_tT?a1mh9n8KR4LjF=;u_=-3}2t?CgBmO)fq{Q6xKR+bo z3Fa@DvE9zWM3C-duJjL*6h=#uSo2+Gj?Px}M%r2#%^?|2-jCl+;byx0IJ^GfEoEh_ zql-FMEBbbu*EBU8yyQBi6Dx&76TK8pa_F#dK-nwG&LL#H7oD*VV<@Ccd8?Y?2VF$j zfQCI_1J3$q48xm?+R@YsU6;Zc%VDf@SsJ)hTER%P#9twKvr@Op_*rrBvNGn=3t5jfP>L9ZW0-Jr0+skfLdriYgZ zedbM!c2eVFKP$YUlXottN}==+vO?Hey7*IiMf(R`bIe*=I@OuMZF3I&Z_54Okwam< zq}*Cj(ko*(H3wa_w2se*urFi%B4lwK!tpUQC3_x+A-o0#s78Jfcm91E#oeYnX=S63 b!TtT-f*N*;o)A5qp-0-kp2||LjV6BqKo_Bx diff --git a/djangocms_link/locale/hr/LC_MESSAGES/django.po b/djangocms_link/locale/hr/LC_MESSAGES/django.po index f03a0af6..b4545f4c 100644 --- a/djangocms_link/locale/hr/LC_MESSAGES/django.po +++ b/djangocms_link/locale/hr/LC_MESSAGES/django.po @@ -4,127 +4,140 @@ # FIRST AUTHOR , YEAR. # # Translators: -# Angelo Dini , 2016 +# Aleks Acimovic, 2022 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Croatian (https://www.transifex.com/divio/teams/58664/hr/)\n" +"Last-Translator: Aleks Acimovic, 2022\n" +"Language-Team: Croatian (https://app.transifex.com/divio/teams/58664/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: cms_plugins.py:15 -msgid "Link" -msgstr "Link" - -#: cms_plugins.py:26 -msgid "Link settings" +#: djangocms_link/apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 +msgid "Link" +msgstr "Poveznica" + +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" -msgstr "" +msgstr "Napredne postavke" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" -msgstr "" +msgstr "Interna poveznica" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" -msgstr "" +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "Poveznica na datoteku" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" +#: djangocms_link/models.py:24 +msgid "Default" +msgstr "Zadano" -#: models.py:109 -msgid "Email address" -msgstr "" +#: djangocms_link/models.py:41 +msgid "Open in new window" +msgstr "Otvori u novom prozoru" + +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "Otvori u istom prozoru" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "Delegiraj roditelju" -#: models.py:114 -msgid "Phone" -msgstr "Telefon" +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "Delegiraj na vrh" + +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "Predložak" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "Naziv za prikaz" -#: models.py:120 +#: djangocms_link/models.py:77 msgid "Target" -msgstr "" +msgstr "Odredište" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" -msgstr "" +msgstr "Atributi" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "Potrebna je barem jedna poveznica" diff --git a/djangocms_link/locale/hu/LC_MESSAGES/django.mo b/djangocms_link/locale/hu/LC_MESSAGES/django.mo deleted file mode 100644 index 68e9821012ec586c084ec21bbfd1792dbae7a236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmYL_-)_?|6vhnn^)3!~n>Hs-Swrhmw9<8~qGeGDyT+t$;w`l!+i3^y!2=*3 zh4-4rLRh vRbxd(FO6M04!YijZrB;X!*O_|;nfi0<3T{K)JFI_^W)DiM>1K-mC@uMhC`Mw diff --git a/djangocms_link/locale/hu/LC_MESSAGES/django.po b/djangocms_link/locale/hu/LC_MESSAGES/django.po index 6d29258c..4d964dca 100644 --- a/djangocms_link/locale/hu/LC_MESSAGES/django.po +++ b/djangocms_link/locale/hu/LC_MESSAGES/django.po @@ -11,120 +11,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Hungarian (https://www.transifex.com/divio/teams/58664/hu/)\n" +"Language-Team: Hungarian (https://app.transifex.com/divio/teams/58664/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Hivatkozás" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Telefon" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/id/LC_MESSAGES/django.mo b/djangocms_link/locale/id/LC_MESSAGES/django.mo deleted file mode 100644 index f013e9305d55dc7a3f126e71a9493db96540230d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413 zcmYL^O-{ow5QU3iBqSnU2#8$F|hfQT6*9@a!D=Qab z-zoH(lyWOIaXw*5FABpuB1>|OCg~(O{wU~BG}6imegRoC BbR_@) diff --git a/djangocms_link/locale/id/LC_MESSAGES/django.po b/djangocms_link/locale/id/LC_MESSAGES/django.po index 1d6aece3..931f12c5 100644 --- a/djangocms_link/locale/id/LC_MESSAGES/django.po +++ b/djangocms_link/locale/id/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Indonesian (https://www.transifex.com/divio/teams/58664/id/)\n" +"Language-Team: Indonesian (https://app.transifex.com/divio/teams/58664/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/is/LC_MESSAGES/django.mo b/djangocms_link/locale/is/LC_MESSAGES/django.mo deleted file mode 100644 index 6cb95d1b13b77f2d3e1e0a2fc182ee02f26d3525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmYL_(N5bi6o#{j2`N_-*Ib-kAc4S%)2&(Sl8I6ZRL~Jh)_X58scC9Qwo5_cHFy|a zX3w&dBGF&^WdG9n&pGzLovl|7^%>bkj*u_NG14eSwvb!o?UUzC@!UqfVgT)jn*3VV zQq8^8=m(KIGAhVa7%R16koE^x{fi+?hm*U}&2N7qYHb`D+fo+fbXi)GX$F3JlaYZD z++m2EaVHqGXw)V2C!yaVqO2Vs(iWvyNG9S@HqAG6F`-=&wSjgS?Hp2+f6c8Unc>P- z+-bw0uS!vAIFm}kF<+aYKyy;aN2!B+_Uot_8DmnFOI`|+3BF)3%0QDIaga2 zhO5;oa7}A@FP?&2FT!1^tnG55ldp~^L`TQcbUmF{Cn2GaUzwKTjU=h`eR168lBO, 2016\n" -"Language-Team: Icelandic (https://www.transifex.com/divio/teams/58664/is/)\n" +"Language-Team: Icelandic (https://app.transifex.com/divio/teams/58664/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "Hlekkur" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/is_IS/LC_MESSAGES/django.mo b/djangocms_link/locale/is_IS/LC_MESSAGES/django.mo deleted file mode 100644 index 143f29b4e066d4ddab5bcd0e77a603bbc971cf47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmYL_T~ER=6oxf=wM(zPI3}7v^so+Pj*?v{(@aC&R%Rz?l9OIton_zzzB_xvpu zHS#7;dQSSDkM`?e|8vJ_*Kz1LcI-LM92-TB4|myi=f?A|RI4|hTTBXk=Gq7)DWu)r zZTF@R&;8M3@^J5sc%`((p(#aySM$, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Icelandic (Iceland) (https://www.transifex.com/divio/teams/58664/is_IS/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: is_IS\n" -"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/it/LC_MESSAGES/django.mo b/djangocms_link/locale/it/LC_MESSAGES/django.mo deleted file mode 100644 index 6077b52c34cec05a9ca3a83c4b5b91f1814628ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmYL^-%i3X6o)Z-wM(zPsEHR4JhVfZTL~A6!z_v{IJvJ|88xF_+VaN-@%4NbJ5Au1 zd}&Ymo%ZzS{Or5sa^kpfTscl1*N!HkqjZOnTN~$)RI5*(TSy96aBYN=6s7m$=liD^ zE#moGGJEyryjI%6)RdxthfQf9QxtjWEQ7J;%(^CcWR_FZCw>Iv4#*Ai2^|Do(kH}; zFy~v*Tz>QdAQAWjL?TMUE^+Z*m@GG} D3hZ=Z diff --git a/djangocms_link/locale/it/LC_MESSAGES/django.po b/djangocms_link/locale/it/LC_MESSAGES/django.po index ad03dbe4..ea3d6515 100644 --- a/djangocms_link/locale/it/LC_MESSAGES/django.po +++ b/djangocms_link/locale/it/LC_MESSAGES/django.po @@ -3,124 +3,141 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # +# Translators: +# yakky , 2019 +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Italian (https://www.transifex.com/divio/teams/58664/it/)\n" +"Last-Translator: yakky , 2019\n" +"Language-Team: Italian (https://app.transifex.com/divio/teams/58664/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" -#: cms_plugins.py:15 -msgid "Link" +#: djangocms_link/apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 +msgid "Link" +msgstr "Collegamento" -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" -msgstr "" +msgstr "Impostazioni avanzate" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" -msgstr "" +msgstr "Collegamento interno" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" -msgstr "" +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "Collegamento a file" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" +#: djangocms_link/models.py:24 +msgid "Default" +msgstr "Default" -#: models.py:109 -msgid "Email address" -msgstr "" +#: djangocms_link/models.py:41 +msgid "Open in new window" +msgstr "Apri in una nuova finestra" -#: models.py:114 -msgid "Phone" -msgstr "" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "Apri nella stessa finestra" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "Apri nella finestra superiore" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "Apri nella finestra principale" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "Template" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "Testo mostrato" + +#: djangocms_link/models.py:77 msgid "Target" -msgstr "" +msgstr "Apertura" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" -msgstr "" +msgstr "Attributi" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" -msgstr "" +msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/ja/LC_MESSAGES/django.mo b/djangocms_link/locale/ja/LC_MESSAGES/django.mo deleted file mode 100644 index 63af47403033fba8aaaff6e0140bd626eb9813a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmYL_%}yIJ6ouVFr7~j0nuV9Gz%w2o)5K{IAq12*DWi1Cy6(i8IGxxd+aa)p2k43w zPf#{h)kPP5mu{k}?OSjsNaRSLuCI0OkNtaN^#*}ffK6Zzcm{NVQXhd;fCJ_I5V(DU zP!4eoc>WZjb%+}f;d;>r0)q5GU8z2!c%+p;vC(6ZI?@@CGhwXMis87~dfPl{AmQc3)pFA{$M$-zLLOYNtl z{q1sO1eGeA@=TCK@Cn0jc)^vh0>2nJS6CJVv)RmdWoJ1Q7k;WI!Jc#abtyRd`ON-b?Ga|422qjh diff --git a/djangocms_link/locale/ja/LC_MESSAGES/django.po b/djangocms_link/locale/ja/LC_MESSAGES/django.po index 17a018ad..a79eb04f 100644 --- a/djangocms_link/locale/ja/LC_MESSAGES/django.po +++ b/djangocms_link/locale/ja/LC_MESSAGES/django.po @@ -11,120 +11,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Japanese (https://www.transifex.com/divio/teams/58664/ja/)\n" +"Language-Team: Japanese (https://app.transifex.com/divio/teams/58664/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "リンク" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "電話番号" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "少なくとも1つのリンクが必要" diff --git a/djangocms_link/locale/ka/LC_MESSAGES/django.mo b/djangocms_link/locale/ka/LC_MESSAGES/django.mo deleted file mode 100644 index 99671cd6a3fdde90d86dc37c424d4daafc94f5e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmYL_&u`N(6vqP^mt2r`=3s7{wwE}ChSputx~`ilRu)R=-K1V>n%a@=uG=|(0S6?s zU6A;{kn&e><)ujLSN_QFN#FOw{N&zs@>68VcU zo+mZ+TU|-D^b(`LiOj)x4l`k_)QXX0F#IsM9Ff^*`gwf)(VvP^8wV4c%Q>8_a|@|v z#80kM7#hJH7Qs1pf{_-DxQHn;Gid)$<-}z#oU5MI*b{Xv)QIvnh zt%KBXWee`KVPv3kQD|~5l_V#8n*?)APUrGg>L6RZKW;|GSgG=pxY&J( zFLdJ0g=N8|>XB^0jTNr{CB1;o&ex2&5e7yo)3|NUNaw3`PdhTQ>sGt{phggdv*1_t{&^^cU?Wy)lcsqu+f!h diff --git a/djangocms_link/locale/ka/LC_MESSAGES/django.po b/djangocms_link/locale/ka/LC_MESSAGES/django.po index 20fc1f8b..ba695437 100644 --- a/djangocms_link/locale/ka/LC_MESSAGES/django.po +++ b/djangocms_link/locale/ka/LC_MESSAGES/django.po @@ -11,120 +11,160 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Georgian (https://www.transifex.com/divio/teams/58664/ka/)\n" +"Language-Team: Georgian (https://app.transifex.com/divio/teams/58664/ka/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ka\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "ბმული" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/kk/LC_MESSAGES/django.mo b/djangocms_link/locale/kk/LC_MESSAGES/django.mo deleted file mode 100644 index 671b1e9bb7e5b5d43ba7929695b9e6aa300c244a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmYL^-%i3X6o)Z-wM(zPsEHR4Jgh^RTgfgIhare8IJvJ|8FkPuZTX|`;p_PE{&-)aoyc+*D;C;%@=In z$>iG2`Ibx9SX;Zj!1r(6vUFR{WHgD7zwtWQ8AxH6Fpz#$c1pwc#;sPAi$2PhRB2|S zw{!@>(W~1mn1WbjGUuWoD0t`QFd;!@=_IR-qAM6mwblfQ>Tj!~ZXf-ZQBzz-UaRjk FegT$-bEyCT diff --git a/djangocms_link/locale/kk/LC_MESSAGES/django.po b/djangocms_link/locale/kk/LC_MESSAGES/django.po index f17815a5..f979c424 100644 --- a/djangocms_link/locale/kk/LC_MESSAGES/django.po +++ b/djangocms_link/locale/kk/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Kazakh (https://www.transifex.com/divio/teams/58664/kk/)\n" +"Language-Team: Kazakh (https://app.transifex.com/divio/teams/58664/kk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: kk\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/km/LC_MESSAGES/django.mo b/djangocms_link/locale/km/LC_MESSAGES/django.mo deleted file mode 100644 index 242bf9a3662021178994285930a9f08e7ae3a88f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmYL_O>WyT5QWtu-DsJ07hI-DMxxSMvFW&o<2Z$pxKUljdsb#-))Fa@be!HGKz98B zx^iyO;}p;da)pjuAb#Kn&H(dfhWxv`^UFiML|!8Y$SdR+X_O#4$S36Y3(uS4y^B0y zjOSU6f1^vO7G7fXSCKgw&0s2wm0B^9^amIH4?{8?PCk#WKKc_;Y2#pQb2)?4Wo{wW zjQGh_3Iij!Llc~FCm1=TQ3vP|(6=O_tQGImLrSp_CgN5$&9`+i&<;c`LOYDM_bJN1 z-+lgd%gZqum9BRpY`K|_YcPRm8bv! diff --git a/djangocms_link/locale/km/LC_MESSAGES/django.po b/djangocms_link/locale/km/LC_MESSAGES/django.po index 7c84823e..df543461 100644 --- a/djangocms_link/locale/km/LC_MESSAGES/django.po +++ b/djangocms_link/locale/km/LC_MESSAGES/django.po @@ -11,120 +11,160 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Khmer (https://www.transifex.com/divio/teams/58664/km/)\n" +"Language-Team: Khmer (https://app.transifex.com/divio/teams/58664/km/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: km\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "ឈ្នាប់" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/ko/LC_MESSAGES/django.mo b/djangocms_link/locale/ko/LC_MESSAGES/django.mo deleted file mode 100644 index e0427013c0a07abca2b00c07ca77cb9482425a12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmYL^Pfx-y7>6->+R?Lz9z1C9r5(!LN;u#gh9I)wzLlA^R9kNQsu znkCcM;pD}e@=9q7V^fL(9yXelMG_bnRP|*$SkL*P5cPRJ&;@E6WR%yq)mtu zVam6nZhrIvAQAW-L?TMUCUNnenJhP~ejMyxZ+sRx@eDobOw? zTH``&g~Ha^26w_BxWh|@uf6eboE(4Sw}=-jX}PqJeN}Es%l8&nD<)(Ynot " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/ko_KR/LC_MESSAGES/django.mo b/djangocms_link/locale/ko_KR/LC_MESSAGES/django.mo deleted file mode 100644 index 89f61d2bb8e5c4d7f5116faf05b698c2c336cc6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmYL_!EO^V5QYsD4tqr0;4sHl#k=0pEQv!9Ax%+~gs#HUE0~S5G2PfJ+iA+3M*tyi z+_+Xe5D$RLJ21PE$Vi`lk2Ukp*uU@ZeI*!okVnWdau=B(b-YLR5P{V93*_f5LQ2$o z$b;KkeTa(JjSmXJbQ=?;FG#vHT9VY7k23dkG^gj%I%PD6v_Ba4Uk%}WID0cXdmYSV zWvr)DSExCCxh@>d42K{+%jm#L;jxLH2roGtvA9FoQ_7w|%y=s~WJio)A)U!fRh#eX z63RL>ZUO6X);?qy!9+MuGb^+!g*TQ%Ul+18aH6z=XQD~MIVLaW>Qb37Up{|ak4&&r z7i&>Snn|(ZFgCcBhW$nlV1Ma-<#-frHk;7b{%Rqw!rZK)#whaG<)T(QNsgln^KLwg z4ua`uI^2Cp9I{|ww3iw;{8Zsny}a^KRSKoMkS~RG()ZqGr?kDRt0yg_r9+(?T)W`V y{-FH-WjQpng0x&)QPNXmSB`_On$-2;E^LoI)(yzbx9dN@uF1`h&wsyvA^!jeznGo? diff --git a/djangocms_link/locale/ko_KR/LC_MESSAGES/django.po b/djangocms_link/locale/ko_KR/LC_MESSAGES/django.po deleted file mode 100644 index 69d9245b..00000000 --- a/djangocms_link/locale/ko_KR/LC_MESSAGES/django.po +++ /dev/null @@ -1,130 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -# Translators: -# Angelo Dini , 2016 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Korean (Korea) (https://www.transifex.com/divio/teams/58664/ko_KR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ko_KR\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "연결" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "전화" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "최소 하나의 링크가 필요합니다." diff --git a/djangocms_link/locale/ku_IQ/LC_MESSAGES/django.mo b/djangocms_link/locale/ku_IQ/LC_MESSAGES/django.mo deleted file mode 100644 index 3dc647c60daa85007579592cc29c8d83d9179a4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmYL_L2uJA6vqSFB$Oj(4v$-_&52WJXx$ajbsdVfvaEz&kx9MOEVVP+S;rl5;>w5M z!uJ_Sd=_4UwEm@^?7#H>?>+nP)4d-a>M`;RIYjo6BcxG^>>-!PuScG@#PbQVj{&p~ zYVxhlrMmV~qd$w>kz_@d!dR&lgLE=Io4lRDa<+J%T)guaqSD5Zxh>?19M^>QFb@>c2~U%x(VM#h*_Ma>IAGQl?t&T6xgb`71x z@S84l*3MOyh2eI)4P4V-UWvOP*PF0y6go`Vus?|7m*I8&F}V!8{ydq_c3%<&)SqhQ zgu)HKRQOaU?p#=vT&fY|Yi_J?;}6*>8SLtsNms&, YEAR. -# -# Translators: -# Angelo Dini , 2016 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Kurdish (Iraq) (https://www.transifex.com/divio/teams/58664/ku_IQ/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ku_IQ\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "لینک" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/lt/LC_MESSAGES/django.mo b/djangocms_link/locale/lt/LC_MESSAGES/django.mo deleted file mode 100644 index e27ae197d2af0dcd60494cd97b73b503cc1b710f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 zcma)+TW=dh6vqcBP)sRM?w5)~Ayq=N_Bw6S#Ela|lR{{7QE>Z&RE@J^XX@RVWoFi? zX)EzkiI+a2sA?t13lc)K4+!ysc(NsU;{zZhzC%9%|5-biiU$~Z{o6A;=ghgxoWG77 z_=;h?iswx{f8rU!bN3PaVT6w|wg{HN=fP_O-U6S1{59ADzXc26k;fQ&5KYs%w@DK1Qa2%6QgR|gU;Cb*xum!#jegVD#-T}S6 zpTYOQ-$5Ve0}wxU08V&64}oQnz*oRE@F;i%d=C5)^y_YeUhfCc`|%SvC;_DYUOrAg z{Cb3z$LVG7ulErt$!&Ulgp=nH$cL|uw|^Lq_tOtwkNv}+0Y7}6U&`P5f8KAOYhO1u zG|bidhBlWQQpC~awlH;V#bw14F=9ztQrZ!ZW4$RNa=IzphA^}#-3AQ}_jUSf*>o&b z%WEXkTB({dY%XfUIP|P=4l|a`<$JNYG!-hc1Y6YRaVAKsxI?_*VB1ehg*U}x(uTy< z!MnF#qG5I*yg`K~>oru$P z;>Gu)zF1t>$;_zV@iY`wGviGW)C5l|bO9$c<4STx!yC?}wo)o>Zf+KxH!U0Ds@E+= zvMqJVLBp2DCnqLOm10*KDJ(56E$pSDTnr0mHL9oJStmt^4y7$2cT%09^$l)tzN;5& z=Yq+-b$*+MFu{Ua*ZxdaXtFNdu9p>xU12rO43C3z+9b9@D$PY(J#~iquhn5iLr5Z3 zt5l}r$7vvkG(+Vnx_+Jd-$Rs}?sdBb)uJL8wd{jUp;xP-Q;D7JJ)i+}*Nh4w6e!8D?Dv zw+)S=C5*H5(nS6h`d8!+vN=BtAi7Ut(UVFc1@k6?tOCItu}VKPiP$p4np_l z!{6J|^tO9H!c?2f&!bFV;XV~9Z*%zS)4~>F(Q-yBh`#Ogw$XjKZz=eOMD(LT4)Pqa zkA=h{hp-(Vr4)Sy8hSU}+k=JOn?-i1pN?JC<$;MlHCp&yUTd<2^a%yukh#3ga8u`b zqw)2ldhdHgytA|Q$&nE^9ZV{oAu2&JZkpIP@BC!SySL=t*BbKF&`M+Pq+iH97L;P2 S<8TJI+_K&`ydG=##Qp)&wPi&B diff --git a/djangocms_link/locale/lt/LC_MESSAGES/django.po b/djangocms_link/locale/lt/LC_MESSAGES/django.po index ba3c1a30..70c60ed6 100644 --- a/djangocms_link/locale/lt/LC_MESSAGES/django.po +++ b/djangocms_link/locale/lt/LC_MESSAGES/django.po @@ -12,122 +12,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Matas Dailyda , 2017\n" -"Language-Team: Lithuanian (https://www.transifex.com/divio/teams/58664/lt/)\n" +"Language-Team: Lithuanian (https://app.transifex.com/divio/teams/58664/lt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lt\n" "Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Nuoroda" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "Nuorodos nustatymai" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "Išplėstiniai nustatymai" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "Vidinė nuoroda" -#: models.py:27 +#: djangocms_link/fields.py:27 +msgid "External link/anchor" +msgstr "" + +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "" + +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." +msgstr "" + +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" +msgstr "" + +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." +msgstr "" + +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." +msgstr "" + +#: djangocms_link/fields.py:188 +msgid "Select internal destination" +msgstr "" + +#: djangocms_link/fields.py:194 +msgid "#anchor" +msgstr "" + +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." +msgstr "" + +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." +msgstr "" + +#: djangocms_link/fields.py:215 +msgid "Select site" +msgstr "" + +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." +msgstr "" + +#: djangocms_link/models.py:24 msgid "Default" msgstr "Numatytasis" -#: models.py:44 +#: djangocms_link/models.py:41 msgid "Open in new window" msgstr "Atidaryti naujame lange" -#: models.py:45 +#: djangocms_link/models.py:42 msgid "Open in same window" msgstr "Atidaryti tame pačiame lange" -#: models.py:46 +#: djangocms_link/models.py:43 msgid "Delegate to parent" msgstr "Nukreipti į tėvinį elementą" -#: models.py:47 +#: djangocms_link/models.py:44 msgid "Delegate to top" msgstr "Nukreipti į viršų" -#: models.py:65 +#: djangocms_link/models.py:61 msgid "Template" msgstr "Šablonas" -#: models.py:71 +#: djangocms_link/models.py:67 msgid "Display name" msgstr "Atvaizduojamas pavadinimas" -#: models.py:77 -msgid "External link" -msgstr "Išorinė nuoroda" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "Jei pateikta, perrašo išorinę nuorodą." - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "Ankeris" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" -"Prideda reikšmė po vidinės ar išorinės nuorodos. Nepridėkite\"#\" " -"simbolio pradžioje." - -#: models.py:109 -msgid "Email address" -msgstr "Elektroninio pašto adresas" - -#: models.py:114 -msgid "Phone" -msgstr "Telefono numeris" - -#: models.py:120 +#: djangocms_link/models.py:77 msgid "Target" msgstr "Tikslas" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "Atributai" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "Tik vienas iš {0} arba {1} gali būti pateiktas." - -#: models.py:258 -msgid "Please provide a link." -msgstr "Pateikite nuorodą." +#: djangocms_link/models.py:118 +msgid "Link is required." +msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "%(anchor_field_verbose_name)s negalimas kartu su %(field_name)s" +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" +msgstr "" -#~ msgid "At least one link is required." -#~ msgstr "Reikalinga bent viena nuoroda." +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" +msgstr "" diff --git a/djangocms_link/locale/lt_LT/LC_MESSAGES/django.mo b/djangocms_link/locale/lt_LT/LC_MESSAGES/django.mo deleted file mode 100644 index 9043ab23b133ae5c965927d69ff130037d1cdf12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcma)2!A=`75T$BQd+fP~snnvZ=w$6c(p`rI(KJ*MNr}=e*UC-I#wf8@wnM1IZ}5Bk zN;?}Mx%Np?J#?IcTX~4k@uaxuJ z8Uf?8-o@FsK3w%DKL(fIqlv1l3pnznp5d2O>9Mc^qVZ*cJ*Q+K6MmIJ31~5%A^VK% z5I7U<&H-yNMnasZTV03mbRA?F@;0zcu=IctqMC6@w*I?PwnXlbCatz&4+ zL#Vt+lJ$Ds3{D!auhm_1YM04O-)fr#a{Hv6b~;DNBK#T_NgRy^qyFxJyvd@TH9?tx z#h;2659%%?)k131h3Q;6uR{K_ILCCSt0!G6hkY}(Gi^!%>2DpjOAFY{ipGnTlM6hz zZs`S>YSa4ss0&YJ-Z1cyeh2a#IPCAkbI;%ecn0_P@O01M7&wpN6c~sX5uD`Es!h)s a$9We2R|cnyjR)T66nF|P0f%un+WQApJCy1G diff --git a/djangocms_link/locale/lt_LT/LC_MESSAGES/django.po b/djangocms_link/locale/lt_LT/LC_MESSAGES/django.po deleted file mode 100644 index f23d3604..00000000 --- a/djangocms_link/locale/lt_LT/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Lithuanian (Lithuania) (https://www.transifex.com/divio/teams/58664/lt_LT/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: lt_LT\n" -"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/lv/LC_MESSAGES/django.mo b/djangocms_link/locale/lv/LC_MESSAGES/django.mo deleted file mode 100644 index 361b015c49d785d52a645ccb879877dda8c7d55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmYL^!Ab)$5QY^!?a{M`5mXeNZc=UCrYuEkm7>*BSMRZnYh;@&NxIcn@b2sREY2#} zA3icez9f_Ht=GNqF;OQWK54T<7~bDS6IEIlaO876!;3}kF|z`q@qLDUr(~c*cqxMt&}6)W>q0-X8!D|Sm7je8?E*rr~4IFRn+R?=>t#zhq$Mx)_qu=);fu&8fMP$ppZQPP+}y@$9gq&8iczDnm+ zNFTE+Ojcg~%!_h3FjG6zCKr%A>+nCKfTD`V#lpz~udJJU0jB(IeR|S`zcM{Adz_^y chy8u1OSY484n1H%I_#uW^ng>-JnTkmKgJ|`FaQ7m diff --git a/djangocms_link/locale/lv/LC_MESSAGES/django.po b/djangocms_link/locale/lv/LC_MESSAGES/django.po index c6d49a90..90517862 100644 --- a/djangocms_link/locale/lv/LC_MESSAGES/django.po +++ b/djangocms_link/locale/lv/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Latvian (https://www.transifex.com/divio/teams/58664/lv/)\n" +"Language-Team: Latvian (https://app.transifex.com/divio/teams/58664/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/mn/LC_MESSAGES/django.mo b/djangocms_link/locale/mn/LC_MESSAGES/django.mo deleted file mode 100644 index c30183052ec24d7b698b30ab4386965413412b48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmYL^O-{ow5QU3il_hHyMq<&bOyd+95?5J3Nl^u%Q3>6f#7&J7JF?v$4#M>~3l2!_ zlRk~Dd2c-aIY0aESe;ldELWCO%eAFdVBxkI+S+;!N|pR%xq(>$OQtlJf}r$%@_hdk zqh-8!o6TRH1#6@-km!;Z@USU0WRf5!oo6snj2at)M`{>BL+pis?*QK*50jDK$3u** z5f*IA+u=u_4>$yGgm6f3(8pHJ3l-&tmJBjRYl0FfN?CC#P(;{UIms-Ek00^|*qKOSm@triHFi~wwsA-i=# diff --git a/djangocms_link/locale/mn/LC_MESSAGES/django.po b/djangocms_link/locale/mn/LC_MESSAGES/django.po index 0585a3a1..4b424cba 100644 --- a/djangocms_link/locale/mn/LC_MESSAGES/django.po +++ b/djangocms_link/locale/mn/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Mongolian (https://www.transifex.com/divio/teams/58664/mn/)\n" +"Language-Team: Mongolian (https://app.transifex.com/divio/teams/58664/mn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: mn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/mn_MN/LC_MESSAGES/django.mo b/djangocms_link/locale/mn_MN/LC_MESSAGES/django.mo deleted file mode 100644 index 4cf06b39e1df22efc918f59157390b4ba7ad7a3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmYL^%T59@6oxUnnx$(OHE{vKLpvzrP{IOnFhmC?II=Z$rVKUEPTF$O_we<677IrB zlP^6d{m<>^{Or5pbmF*hTscl1*N&Y+$CvwTyLaa~DADSJXBLJzOu05fNs5wQ|Ec#F zp=mUE8IDKZgqKQNh)p4KxL*|pQbm!Mj8o`q&a5kf2WB}%P2#tK+yS{kKB29kPMU-` zBTV>O?3y2a0gyKMEkxRsgmvQNJu_LXSivFXY)Mh9WT6&66azq6t=F`;8qv}w|FVv;t{TS@i2~#=lKod^_8?-T1Y=jx3=Y5i^~NQ zvV*cY(}vsbYdV1N=-W-2aSf5oR4!yeQTQ(GVP%T;v%F-n(rf_(rI&^xS?*KQZFbOK P*sV%**+qV><5hkEHfVb8 diff --git a/djangocms_link/locale/mn_MN/LC_MESSAGES/django.po b/djangocms_link/locale/mn_MN/LC_MESSAGES/django.po deleted file mode 100644 index 502ffa9e..00000000 --- a/djangocms_link/locale/mn_MN/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Mongolian (Mongolia) (https://www.transifex.com/divio/teams/58664/mn_MN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: mn_MN\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/ms/LC_MESSAGES/django.mo b/djangocms_link/locale/ms/LC_MESSAGES/django.mo deleted file mode 100644 index a6431fca7be58f93a467bec8a705f4f331e8d871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmYL^y-ve06h@0+%E-*%fdN!*;}jYaR~<@7Q3at<2_2D4;-*H49og>RgYbGh3l2!_ zCms1(KG(kfIY0aE*qm4{ESHv3%Z;T?VEM3zp@Akif+;9*^A$Rt5dI?EtZj2hbnkJK=N`q&Er-vhoy9wr07i~AT` z5$0^e+sluh4>$yGfN)4~(8V^+3l-&>mJBjRYl0G5(LK6a8PjOuy4&rxXA~8hFWIh_ z%i1mYhD+C2S-XS4_wQU=Tsz4$iI1Q0df17iFiaT8_Kh9Vu$^(6igGbT`HCvd%;-Iv yKydWhXO>JsEOJ?JQ4$nFNHl+2J@SU=zZ~JA)Anot " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/mt/LC_MESSAGES/django.mo b/djangocms_link/locale/mt/LC_MESSAGES/django.mo deleted file mode 100644 index a0bdd7f329a4615007438ce86d8d0bfe9aba80fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmYL^!A=`75QeGBX^%bkFb9effwSX4(v8D{AcQJvQ=)Xs-A&BmDr>Lo2?2@M=zH{u zcot?$MSkhmjP-xEXP!Uo{@G!@V}E4tvEQ=~*^M&xUk(Rc8|F>3;D4J1iOEvjm=LXZ z3TEe{ujgOJa5J9&m|TBP=BD<6#59(6DK6G!6opri%&rSD3PuxO5|^5cf-cH|z|R7Y zK%(mP53q~KpqQI`+dRJI`T_?+_5cS8vjb!$-?S^&x-_CNx>7LJD>BhQ>yD_7Dor<= zO^1SZ(cYSe&cave(%xI265}!LW&QqfT2b0grjzM-yN>K&GV+d$BT+ooJSLe3O6!%j zZU~Dz9ipN9XK^L6E!TW=Yl0ZNgo~rzdEE`y>%hCG79NwkJ}y8IlaO{%5!iy9iC%<@BgMOm1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/nb/LC_MESSAGES/django.mo b/djangocms_link/locale/nb/LC_MESSAGES/django.mo deleted file mode 100644 index 2214c8ef5a8d6b32d0e527cee51d3afccc96c9d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmYL^!BWC75QcH|)T3t)amE7-E=^Ht3Bv)fIE(@vtlUEhCE6x62^1g1NAO8}51+-L zGw{!Rvzz4K&F;_n*=NP-#ByP|vYcA3Eqeu)cl+43aql@OQu38021ZMmGo`r{1Vz2U zWA7nE^KkY&nogVge8qN+MCR_2Z@F}hE!1u+@cmm?EZmwi9*x7}VqOC~11Ss>2I7yx4s6)Y zxJ5>}=%8dxm1d^<5)UCb`u5+fn1WCwa>+$XP_W?UFf2i0;Y8U+(F}%C<=S2pe@ESI ScF=#?tqOG6MP9ArRDJ=49eB3@ diff --git a/djangocms_link/locale/nb/LC_MESSAGES/django.po b/djangocms_link/locale/nb/LC_MESSAGES/django.po index aa99c46a..36a28a2a 100644 --- a/djangocms_link/locale/nb/LC_MESSAGES/django.po +++ b/djangocms_link/locale/nb/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Norwegian Bokmål (https://www.transifex.com/divio/teams/58664/nb/)\n" +"Language-Team: Norwegian Bokmål (https://app.transifex.com/divio/teams/58664/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/nl/LC_MESSAGES/django.mo b/djangocms_link/locale/nl/LC_MESSAGES/django.mo deleted file mode 100644 index fa86461d5d187052260eed9abf28ec94af97277b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2091 zcma)+Pj4GV7{&)EP+Tab{1+4rg-8j_+Uu62iJL^2#BC$mCNyrviE8Y9y`E%u#+@14 z4OO{t<_0H_xFDon_ypW~L3{#)5CT2}5*H3U@2-}w zE4W|B{VVP%++RO}2d?;0A=be<_#Ak5!q34c(EbM80lxz);K|2?coIAXo&=}BXTb&V zY49@m40vP0E;xhs?MeG9@Ce%XC++XSx6%Fqm=QoymS1j zT(feC@)gKhs(~2V&4vj{B?peM7}k-e-#RV*Zr-t3RWw6zx-$&q#Txb0FbiNtsS1RA zu)1Ib?K5rg}uCDmG9#IcnBEqSwbeQSN= zTID(otP9aqpXwxff0+8HZ5y((xzUbR9jSmx(Hep^P6ZnU_ll64cOp z|DGL&%-Wr5*XAp;#k!bo(xFNzYLm(va%~v8eL39^Vc;9J+IT#!29B+Jbcd(a5sRfHdDE}ezkQ_i+VM#tXgcJfwbKLatzqp8j7dQ1=;N@hXcNRqkS=2 zI2gyv^vFdm)3tmk8*-te!@j_VG+AXc8#^_dHm z|6x>30VkSLLVZ+mNRVMi8*C2A93TJFu$M>`jwJ^}Y2yQBI58<17ZV9kA~>`ZD6NUBCt>zYeW-RV2M?#xXVmQnFCW~0aNpp! zXG)X9>oED)qK-zU$YJE!{sn64Fs1+i diff --git a/djangocms_link/locale/nl/LC_MESSAGES/django.po b/djangocms_link/locale/nl/LC_MESSAGES/django.po index e574efad..4b6116f6 100644 --- a/djangocms_link/locale/nl/LC_MESSAGES/django.po +++ b/djangocms_link/locale/nl/LC_MESSAGES/django.po @@ -6,131 +6,140 @@ # Translators: # Angelo Dini , 2016 # Evelijn Saaltink , 2016 -# Heimen Stoffels , 2019 +# Heimen Stoffels , 2019 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Heimen Stoffels , 2019\n" -"Language-Team: Dutch (https://www.transifex.com/divio/teams/58664/nl/)\n" +"Last-Translator: Heimen Stoffels , 2019\n" +"Language-Team: Dutch (https://app.transifex.com/divio/teams/58664/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Link" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "Linkinstellingen" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "Geavanceerde instellingen" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "Interne link" -#: models.py:27 +#: djangocms_link/fields.py:27 +msgid "External link/anchor" +msgstr "" + +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "Bestandslink" + +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." +msgstr "" + +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" +msgstr "" + +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." +msgstr "" + +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." +msgstr "" + +#: djangocms_link/fields.py:188 +msgid "Select internal destination" +msgstr "" + +#: djangocms_link/fields.py:194 +msgid "#anchor" +msgstr "" + +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." +msgstr "" + +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." +msgstr "" + +#: djangocms_link/fields.py:215 +msgid "Select site" +msgstr "" + +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." +msgstr "" + +#: djangocms_link/models.py:24 msgid "Default" msgstr "Standaard" -#: models.py:44 +#: djangocms_link/models.py:41 msgid "Open in new window" msgstr "Openen in nieuw venster" -#: models.py:45 +#: djangocms_link/models.py:42 msgid "Open in same window" msgstr "Openen in hetzelfde venster" -#: models.py:46 +#: djangocms_link/models.py:43 msgid "Delegate to parent" msgstr "Naar ouder delegeren" -#: models.py:47 +#: djangocms_link/models.py:44 msgid "Delegate to top" msgstr "Naar bovenkant delegeren" -#: models.py:65 +#: djangocms_link/models.py:61 msgid "Template" msgstr "Sjabloon" -#: models.py:71 +#: djangocms_link/models.py:67 msgid "Display name" msgstr "Getoonde naam" -#: models.py:77 -msgid "External link" -msgstr "Externe link" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "Als je dit opgeeft, dan overschrijft het de externe link." - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "Anker" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" -"Voegt alleen een waarde toe na een interne of externe link. Voeg " -"geen \"#\"-teken toe aan het begin." - -#: models.py:109 -msgid "Email address" -msgstr "E-mailadres" - -#: models.py:114 -msgid "Phone" -msgstr "Telefoonnummer" - -#: models.py:120 +#: djangocms_link/models.py:77 msgid "Target" msgstr "Doel" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "Eigenschappen" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "Er mag slechts één van {0} of {1} worden gegeven." - -#: models.py:258 -msgid "Please provide a link." -msgstr "Voer een link in." +#: djangocms_link/models.py:118 +msgid "Link is required." +msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -"%(anchor_field_verbose_name)s is niet toegestaan in combinatie met " -"%(field_name)s" -#~ msgid "At least one link is required." -#~ msgstr "Minimaal één link nodig." +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" +msgstr "" diff --git a/djangocms_link/locale/no/LC_MESSAGES/django.mo b/djangocms_link/locale/no/LC_MESSAGES/django.mo deleted file mode 100644 index 5dba54b1b63cc1795f491916a9392280e6a78e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmYL_%~IPi5XVgiEWImq7a5OgieM8+|1h8INyNjU(H=ET_PeGhdVKM5T}h>T zP%Nc&==(qNJJ#99HEo{IvXL$fjav%n{8avZNCDb}S+%jUVt2-_9Uas=*Y#UHcr*Ja Q8jkyroc6+Cf_jC)E4h!3J^%m! diff --git a/djangocms_link/locale/no/LC_MESSAGES/django.po b/djangocms_link/locale/no/LC_MESSAGES/django.po index aa052e44..e9e37424 100644 --- a/djangocms_link/locale/no/LC_MESSAGES/django.po +++ b/djangocms_link/locale/no/LC_MESSAGES/django.po @@ -11,120 +11,160 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Norwegian (https://www.transifex.com/divio/teams/58664/no/)\n" +"Language-Team: Norwegian (https://app.transifex.com/divio/teams/58664/no/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: no\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "Lenke" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/pap/LC_MESSAGES/django.mo b/djangocms_link/locale/pap/LC_MESSAGES/django.mo deleted file mode 100644 index 70be89813edf96716bc1e6f7d313d2cfafb7f48b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmYL^&rSj{5XLcj+M{O=HSqw!p~gh$hfVGvGn@qJB!hvK!ebLW3NJZnv#<;74%iI|8Sg|*)@BTi zFqK(F8d^G H^n%(irm}W> diff --git a/djangocms_link/locale/pap/LC_MESSAGES/django.po b/djangocms_link/locale/pap/LC_MESSAGES/django.po deleted file mode 100644 index de1f0d5f..00000000 --- a/djangocms_link/locale/pap/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Papiamento (https://www.transifex.com/divio/teams/58664/pap/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pap\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/pl/LC_MESSAGES/django.mo b/djangocms_link/locale/pl/LC_MESSAGES/django.mo deleted file mode 100644 index 58fefa8abc526b47c9cf15e8dacd50841e5c55ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmYLF&2kb!5MDKw)2S?nRv?W(W(@9VF7=FhXE?;hGC#B)Rw@fa~hIQxt^LU4quZxGQ#&&$z2Mf}A0 z3Ho2?AE0+S&M>{RsZ>|qBGXEEi&B3TD@!J8aw$q9wPLUsj@}R7jp1^<{5Y9^@Ry>{ zr6n_y$~AerOASdh1Aj43$fy+D;t)CKRxpTY*d_Eep{Ed1)@q;7h*BhyrMQ+(yyCS9 z?UJwsw99DcgrfOVZY)Vku1wCYE*T6}Dsm0yQc39ZL(*7d@@6fsrEaXU!7I12jgu^i%pp8(04j zHmE<+$_j;NeJk*NR@_)*a;bW-%6MsnjXxz9q*L+SnvE#QSgkbPnlk8ok@o+E42s-e z)WppmHeDyKsW=Yd3@9+Dsh1%g#1R}HgA4m{v+m+Uo%X{BZf_3_ zIta0I1|bfq7dZcqG>B<69M&EGUbI!!yHy>xq3ZoQ+;=A%q3mhB=X>+D(!YNwdF3S{ I7aOg-zo9C#8~^|S diff --git a/djangocms_link/locale/pl/LC_MESSAGES/django.po b/djangocms_link/locale/pl/LC_MESSAGES/django.po index 852635b2..88b66036 100644 --- a/djangocms_link/locale/pl/LC_MESSAGES/django.po +++ b/djangocms_link/locale/pl/LC_MESSAGES/django.po @@ -11,120 +11,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Polish (https://www.transifex.com/divio/teams/58664/pl/)\n" +"Language-Team: Polish (https://app.transifex.com/divio/teams/58664/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Odnośnik" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Telefon" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "Wymagany jest co najmniej 1 odnośnik." diff --git a/djangocms_link/locale/pt/LC_MESSAGES/django.mo b/djangocms_link/locale/pt/LC_MESSAGES/django.mo deleted file mode 100644 index 72d367a7ea2c04f8f57effb18f14f86824e687ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmYL`Ur*aG5WqdgB$T)9VNX1mHxP5;bTqW?I;|^Zs%S@4GM?w9*VK^Ok?m0SLG}&y zx%ezxf<#aH>3paA>wEgJ|Bs-&MGlcOCLjGr_9nZ{gnlT+T|90S<`9#m6&7nd;JXK|PE zzTmx6juOnI^DMJcyHa{%1s&-EN<%M{R`iQ(jc|#^x21YeCd}7gKQ%2A%+y6K3t$<@ z4K9G=)3p*Li#X)L z*k}(LNBdjhjvgL;RFzWc0nOLaI`G3^*(K}k;+i%quxz4pgYy=G_WmgUI;EhM57M%> lvSgRWZk(XHYE3un4Cu>qc&zEskj5v2fVB6@poCR(vS+%ala&Af diff --git a/djangocms_link/locale/pt/LC_MESSAGES/django.po b/djangocms_link/locale/pt/LC_MESSAGES/django.po index 1465e41f..a75494b4 100644 --- a/djangocms_link/locale/pt/LC_MESSAGES/django.po +++ b/djangocms_link/locale/pt/LC_MESSAGES/django.po @@ -11,120 +11,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Portuguese (https://www.transifex.com/divio/teams/58664/pt/)\n" +"Language-Team: Portuguese (https://app.transifex.com/divio/teams/58664/pt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Link" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Telefone" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "É necessária no mínimo uma ligação." diff --git a/djangocms_link/locale/pt_BR/LC_MESSAGES/django.mo b/djangocms_link/locale/pt_BR/LC_MESSAGES/django.mo deleted file mode 100644 index 5834f98e18a694b2c3c5f53840d732cc80b162da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2071 zcmai!&u<(x6vqt|TDDN2{HpjNJpmDkn%SLgNt$fah;5S6h_+d!+a8I$JD!c(8GEoj zyA4$@ToFf3AR&ZA)e9FuT)3^oi33Lt2nmjG;lLlj_wA3SMU}AR`OLGP-!J?5x1$F> z5g5lXU%~tpa|ZLXhw#CO9~NR0tb@;hHz)iUd<^pE;C1jTumT=^M2LgntKd;^27C%! z0-pfSgHM82ChUT9kl&xkpMnP<-gU^EhfRBQQp!@=O1mt*Tz(e3X z_$_i+0MA4I6UrRNNhrMpu7Moqd*BY3f{%kgPS$@0UxfS%$ohYS9RFc#V*kfLmgm7Y z!R3i8LAVqKyloPU5XgMWc=Ar4}Z*N@;cIRZ%I+H;;f*gwiW z(qs8BCfi0y#M79Z2ixK}ri0H0F2oT`t^*H_|K7oOfCtx^W1J4ogKN#_CT3=(>F!#$ zlWLVEJALIk)~g*Ob2aBldonhV%rZMr2?g6zVOKdC=&(yOv*SHuU9pmBbDekO+Iww! ztD>3oVI2Fs3IQu#G)KNfvnZ5FJi!+AWmYP(Cfg&K2H56BZSZGgM%IzKG5KfvRa&>S zqViRQwNeA2+Re&Dk)*;YID;R0?e*8l@8unvRYfxdr#od(UaYHBmRSHZ)ssOXA1b6% z=KiH%3$dMvj0~edqoH!40 zVfxuG&KB3e8Wba?oAE8q{bv0Z|X@DrvsDz>|9nMj-RgN43)SSJhx*^(3qN~bzZB2t(&9!%%?`+W3jqS^uTbC-^ zs<19Z7ky7B(b=-+qqc2OrM1LowP` zea*)A^%kReIjS#EyxfSFj>j043(|+E?WFMt&AJAyYt^&VvZkwPCF$8}!N1bjw|jgn z)vnD~=h^8g>@~eo_EgkXGDivsxa^e*6_`Eis-XSZu}m5ZAfH})%2uf~-%i^DVsbgw|h0ViEUDYZFG-CgN$ z-OpTUpNp3E_1IIYT(n`jmak}omO47zjkrN0UzJu?I+;c1tjm3aOfeGunG>gJ{Cj5B z&??pEPFMb?an0~cOT#-Io@SPORE;^x$0!Xslz__X2=8(~b#qb-CRlaGHHnwETNf+DdsCh3Tx_i1; zLm$nX>Km3@mwR^9vet{1OdOO&v*WbGTSTejTkcCFrmdTgPoDkpLb#ZQwDN39OFOQ#ms1OS&eF%24HT&XRKF b^Si5UJYMOjxl#30_W8?!, YEAR. -# -# Translators: -# Angelo Dini , 2016 -# Diego Ponci , 2017 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Diego Ponci , 2017\n" -"Language-Team: Portuguese (Brazil) (https://www.transifex.com/divio/teams/58664/pt_BR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "Link" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "Configurações do link" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "Configurações avançadas" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "Link interno" - -#: models.py:27 -msgid "Default" -msgstr "Padrão" - -#: models.py:44 -msgid "Open in new window" -msgstr "Abrir em nova janela" - -#: models.py:45 -msgid "Open in same window" -msgstr "Abrir na mesma janela" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "Abrir no frame superior" - -#: models.py:47 -msgid "Delegate to top" -msgstr "Abrir na página principal" - -#: models.py:65 -msgid "Template" -msgstr "Template" - -#: models.py:71 -msgid "Display name" -msgstr "Nome exibido" - -#: models.py:77 -msgid "External link" -msgstr "Link externo" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "Se fornecido, substitui o link externo." - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "Âncora" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" -"Acrescenta o valor somente após o link interno ou externo. Não " -"inclui o prefixo \"#\"." - -#: models.py:109 -msgid "Email address" -msgstr "Endereço de e-mail" - -#: models.py:114 -msgid "Phone" -msgstr "Telefone" - -#: models.py:120 -msgid "Target" -msgstr "Target" - -#: models.py:126 -msgid "Attributes" -msgstr "Atributos" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "Apenas um de {0} ou {1} deve ser informado." - -#: models.py:258 -msgid "Please provide a link." -msgstr "Por favor forneça um link." - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" -"%(anchor_field_verbose_name)s não é permitido junto com %(field_name)s" - -#~ msgid "At least one link is required." -#~ msgstr "Pelo menos um link é necessário." diff --git a/djangocms_link/locale/pt_PT/LC_MESSAGES/django.mo b/djangocms_link/locale/pt_PT/LC_MESSAGES/django.mo deleted file mode 100644 index 02be7f6ff90727ef1ed98053a9077e3539f75cb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmYL`O^(wr6o3s35{krzH4DS4)!@V_)6k|AQ92n^(K1m9!xB8nYw97jBioq{2jL8y zfD>>J&caJ7(Ihu{Juv>h59k_{5~O% zP;=B6?)so2=pJM#)pwF^wE~hFeFM2;i-KK&u~Ms;rnC8n+53cECF@U%%a7g~YHb`_ z*-{qlT~k_?>6m)yWyam2ld`bf!wEG(DF}($}JM`~sb~g}jy8&$n-0v?C*|RAnPd zU>S%V9)RmMWdjyy?_i6nPkUSEY8wZ^e!ur!J4SBc&d>EO==uc?i)}C*MbTMMyRT^$ z^u5($l^kCt^tm_J%7MZ~f7E!fgF6@0m5^#e^Q|xz-1KvH!A8ftcG3n6OH{6L`!c4Z zYw7;)9Mf)=msX7t6}!-8XJe}B&b8CQgdWUkPtj*n8ulk1NmKy_{`}JP3tW>7D%iB2 F`48PyoqGTP diff --git a/djangocms_link/locale/pt_PT/LC_MESSAGES/django.po b/djangocms_link/locale/pt_PT/LC_MESSAGES/django.po deleted file mode 100644 index cd2e508a..00000000 --- a/djangocms_link/locale/pt_PT/LC_MESSAGES/django.po +++ /dev/null @@ -1,130 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -# Translators: -# Angelo Dini , 2016 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Portuguese (Portugal) (https://www.transifex.com/divio/teams/58664/pt_PT/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt_PT\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "Endereço Web" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "Telefone" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/ro/LC_MESSAGES/django.mo b/djangocms_link/locale/ro/LC_MESSAGES/django.mo deleted file mode 100644 index c530f29ba6a8352b71b809bfbf0b2d349eca7729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmYL`(QeZ)6ovyDH@W1R3xmXzXgi71(a^ffM(H|Kv9eG??@j8Z9;qGK?mDEs22aI1 z@GP8!Y5k>7_AmYC_}KpY^5D0JdXBt8j*%D0DbgxO4v??NpJ$%8eDrUy0PU07`c79; z{q%C9Z$;@~wt}TFR%*paKAwCYf0~lzbn$I={l#C1MjHonTgerC+*TF}&4{007cen` zJ1l|=?gS$}nhb%y2YNyh%KGUM?NN$BScp5>Hs9w`phHOdgbo=U98r{i#jS(FaAj-m zv|(hdDp6~4A(bSjyfe`X&4-n|lR7HbXUFZ4DORd#%PRqe;2TC3dc&3EiUe!t8q4B% zx7$Uo?JRG^eN^gA+_i`u=55>`r0KiZ=s5J}v-x!Y5=lh;iB?W19PC$vH+16O#ZAqn z8j*6%jTJ8YUR=UppKFh~5eBBJ)HrR$$l!-`Pct%Nw4c{o!)v(IW@8yqO=oR(G9v%C sS)j5kIj1ZL0`)eb^eh>M4-bzf%V>Cb7^v5{hT(aSC1E)7z3xN*0jc|y;s5{u diff --git a/djangocms_link/locale/ro/LC_MESSAGES/django.po b/djangocms_link/locale/ro/LC_MESSAGES/django.po index 447adfcf..fbb03534 100644 --- a/djangocms_link/locale/ro/LC_MESSAGES/django.po +++ b/djangocms_link/locale/ro/LC_MESSAGES/django.po @@ -11,120 +11,160 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Romanian (https://www.transifex.com/divio/teams/58664/ro/)\n" +"Language-Team: Romanian (https://app.transifex.com/divio/teams/58664/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "Link" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/ro_RO/LC_MESSAGES/django.mo b/djangocms_link/locale/ro_RO/LC_MESSAGES/django.mo deleted file mode 100644 index 7bdf42b9518f17d77b6786f81089c20a2ad28131..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmYL^-A=+V6vs7swM(zPsELv-dRPa7TgfDdV2C1QPH#TmHcD_1DzqfF{QZ_1oa!u z$Hqeoy|t2;PVd=CST2=;uFm)n?q->WR1)O$dnq&(qsBJDJvEG=5)LB3H-O71z@$>W z#3hWa5fV1%>*0G}6>tPW1>uO`@Df`&PgGG_`1?Q~oF&jm&7G^H?17)ZZzd$eIo z<%Vqv&-pEW{OUrE!9*LB=SwE t<8lrCr?D&IIH+Udx~{kgFun~UZ?)PMag4n}!4+pVdS1Om0?(^C2Y=JzgK+== diff --git a/djangocms_link/locale/ro_RO/LC_MESSAGES/django.po b/djangocms_link/locale/ro_RO/LC_MESSAGES/django.po deleted file mode 100644 index f3c4f99a..00000000 --- a/djangocms_link/locale/ro_RO/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Romanian (Romania) (https://www.transifex.com/divio/teams/58664/ro_RO/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/ru/LC_MESSAGES/django.mo b/djangocms_link/locale/ru/LC_MESSAGES/django.mo deleted file mode 100644 index 1a25782cd2ed4bfa4e409a089759df7b7be7cd3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2632 zcmaJ>O>7%Q6ds^JF;JjTKmych!BwJW?X{bviEF!rCV_~yiGo`pai})&*jc*Xb$8cx zqqb7h6cyB;REVDVDHN%K3nU?Fo#v-!ZnFm@gb)%J&Kx)c-Uc~bG4?3% z72sB26!;Xd2lxc=E#Q;DBMlq}w&Q%FasCvz3FmJc=kI{8;k*JQzTbh*0{;R&4BQOk z=Yd;*lus168Q1}gBBw6kyEwmxmsHmRFb@0$Ncl#P>|NkC;M2gLfG+_50PY3;4NL*M zK^g;|0KNqLvVkkWL7aaE?f`CoEUdE+xE<%iz)qkIr1)P0cL9F{ZUO!YOalJ_f`TQH z6zQ}N*k}Pxq4rcKEvg@-DSJ9Uj^{Z%kVMr0Dy0QV-&j;DN>MSXAG9b=>!KN;MLKU& zyYPqfAg!ryEZSz+;}ed1tY8W&f2=CpF~<|fY@;OFJ#Kp3c6@GFmQxdX?mI={PY9RS zOn-t$+d`kvmZdGzK29Db)ALNbm}PzWD#+pI3E#(!$NE$()>keIJMVFD@v31}1b1v} zk{bmd+;nN$*x81~9hZxfjXm+lc)!EbqLf8i={OLk<5ndvxWUV=KrqDNJ73+&y~)y; zW5rmX@4Mz$#TOpy7X_nY`9Mn)4PT%hUN&4|-+SddW!7(cWy_f4R2v&88K%XJeBKqF z#|B#SVM7JPb*g4w2^-RZ3@sYj*Z}+`9z>f}$zB4p@I5H~Aj_YfOyrP-c-l!BkE$5_o zWMnv}9dL!=!%6E0S&Aq1M6agr)$~0)p{KgKck4-AhoLqqswR;)?YcF+S4(tpy*H)z z?AEa&2My2Ha;{-}NX>Cmd>FmrgQhpZ)6Ve%@byW<&Wn>Vx03CkV0+;)-_hIhEyL!62JL7I8-X1wLbZDR{ zK_aF{4mjwVjf^JCD9uMpzbhg7K(QwIRbb6)ivYD=?dvE*3J$MmjJ!U!shW$JVf<5i{ ze*OQKLaxe1E*IpQyc(9`8{AQI2&AQ*@hX; zA-8#W&unA}IuL^nE}WvEf@R{Jr@Dd<=~pgsS;uW%-J(c}wum?3yOtvAG4+X(pEoii zS;CK%5@;hl7%p)L0@@WsLI&!~CFjF>E+9=L5o7YIidC0$D(XchuOm$ev!b#lJCfuI z-7l)779akPL$Et;oX6%M) zKsYw^$!-h?eYRC|ZiNa`wvCn`hc7T~ccAFS^%jwl>i-I4Q>riC$4bp8EFfl!*$w(1 rpz!nXTvdYs1I!I{TB6h?G-_yeD;$EB5|ku2iGltl-@tDUWJL5YGxZ2$ diff --git a/djangocms_link/locale/ru/LC_MESSAGES/django.po b/djangocms_link/locale/ru/LC_MESSAGES/django.po index b4ceb114..9a3b8a11 100644 --- a/djangocms_link/locale/ru/LC_MESSAGES/django.po +++ b/djangocms_link/locale/ru/LC_MESSAGES/django.po @@ -12,122 +12,133 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" "Last-Translator: Oleg Fish , 2017\n" -"Language-Team: Russian (https://www.transifex.com/divio/teams/58664/ru/)\n" +"Language-Team: Russian (https://app.transifex.com/divio/teams/58664/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Ссылка" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "Настройки ссылки" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "Дополнительные настройки" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "Внутренняя ссылка" -#: models.py:27 +#: djangocms_link/fields.py:27 +msgid "External link/anchor" +msgstr "" + +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "" + +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." +msgstr "" + +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" +msgstr "" + +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." +msgstr "" + +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." +msgstr "" + +#: djangocms_link/fields.py:188 +msgid "Select internal destination" +msgstr "" + +#: djangocms_link/fields.py:194 +msgid "#anchor" +msgstr "" + +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." +msgstr "" + +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." +msgstr "" + +#: djangocms_link/fields.py:215 +msgid "Select site" +msgstr "" + +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." +msgstr "" + +#: djangocms_link/models.py:24 msgid "Default" msgstr "По умолчанию" -#: models.py:44 +#: djangocms_link/models.py:41 msgid "Open in new window" msgstr "Открыть в новом окне" -#: models.py:45 +#: djangocms_link/models.py:42 msgid "Open in same window" msgstr "Открыть в том же окне" -#: models.py:46 +#: djangocms_link/models.py:43 msgid "Delegate to parent" msgstr "Передать в родительский фрейм" -#: models.py:47 +#: djangocms_link/models.py:44 msgid "Delegate to top" msgstr "Передать в окно верхнего уровня" -#: models.py:65 +#: djangocms_link/models.py:61 msgid "Template" msgstr "Шаблон" -#: models.py:71 +#: djangocms_link/models.py:67 msgid "Display name" msgstr "Название для отображения" -#: models.py:77 -msgid "External link" -msgstr "Внешняя ссылка" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "Если указана, замещает внешнюю ссылку." - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "Якорь" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" -"Якорь добавляется только после внешней или внутренней ссылки. Не " -"надо добавлять символ \"#\" в начале." - -#: models.py:109 -msgid "Email address" -msgstr "Адрес эл. почты" - -#: models.py:114 -msgid "Phone" -msgstr "Телефон" - -#: models.py:120 +#: djangocms_link/models.py:77 msgid "Target" msgstr "Цель" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "Атрибуты" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "<ссылка отсутствует>" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "Только {0} или {1} можно задать." - -#: models.py:258 -msgid "Please provide a link." -msgstr "Пожалуйста, укажите ссылку." +#: djangocms_link/models.py:118 +msgid "Link is required." +msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "%(anchor_field_verbose_name)s не допускается вместе с %(field_name)s" +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" +msgstr "" -#~ msgid "At least one link is required." -#~ msgstr "Как минимум одна ссылка необходима." +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" +msgstr "" diff --git a/djangocms_link/locale/sk/LC_MESSAGES/django.mo b/djangocms_link/locale/sk/LC_MESSAGES/django.mo deleted file mode 100644 index 583e7b3bd0b4b8afe56a5e6b941efede6ba29544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmZ8d(Qeu>6wRjYC69aF!`;KGR;?3Zu1eA5cGuomQjbtu1vT1(sg@pD<&;iO;EZwGlS@ncR}@!Pks=5H%UARO7BWgYGYB_Zu=Wg&UXanwR8O*DJ$7RXb^-b{}5L z=tRLM2q21p!tpVvrV8K+725y1x{RRpY8ph)MpLjieQfeq&|+|L+IO8, 2016\n" -"Language-Team: Slovak (https://www.transifex.com/divio/teams/58664/sk/)\n" +"Language-Team: Slovak (https://app.transifex.com/divio/teams/58664/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sk\n" "Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" -#: cms_plugins.py:15 +#: apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: cms_plugins.py:15 models.py:73 msgid "Link" msgstr "Odkaz" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/sk_SK/LC_MESSAGES/django.mo b/djangocms_link/locale/sk_SK/LC_MESSAGES/django.mo deleted file mode 100644 index 5d185dafd1b33e2ae40348905103b7f0c7afd622..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmZ9H&u$tq5XMtAr#7NtQ2l6NKXYxn#S8}14{Fj<7iUo7f$eL$4_1K@`gS1W= z&0%!Y8QlEr!b5jF>EHhf#xgh73E3{K{`C6HpRX9@{WkOGbE^NfjW<7K-kCQ=I4u<_<_xQJ{!h(*`UTTl& zTTVB7`Rc=bDU@!*bRn#hKKY&YFg|j{rn$7()l)N5I^z&ODSx<^!){kFTCS~FV$ax> z5_UI_Gwbm@C71B5@2v~0lLT{xTcEmcdhRURQJ%g1nLAu2k5+*zlJJ@TDcvZ F{0I7=hsgi{ diff --git a/djangocms_link/locale/sk_SK/LC_MESSAGES/django.po b/djangocms_link/locale/sk_SK/LC_MESSAGES/django.po deleted file mode 100644 index b534aec0..00000000 --- a/djangocms_link/locale/sk_SK/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Slovak (Slovakia) (https://www.transifex.com/divio/teams/58664/sk_SK/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sk_SK\n" -"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/sl/LC_MESSAGES/django.mo b/djangocms_link/locale/sl/LC_MESSAGES/django.mo deleted file mode 100644 index 4afa8c9cfd385424fa9b4b325c242a39d4d7c7cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmYL^OHTqZ6ooaqnx$(OccBSJFVo@WP%<%yV2GjwNA?x!STnSfwmeMu8!r88{uVD9 z;Ur($lXGq#-$#d^d!&8hm^dL0hznw)nE0ZwN$aMw)zF%EIq}$^;#gXzjOH+GckbG^ zT^M&qPyNS-U?dA;Jq}!^rg%Ni9HxdtFnmn0W2Nvkgg3%V4iy$PkzFFILd1Bzan34? zQ4vRSp*Dx_dJSYvjOxIeoWDK`tLmC#Un^S*FA442Dg*;}EV zdX=m4#LU8}S|}5G8gOAfZZvA4%fqu^&>wVnABxH>=osy#_LzPY^iVHXJ}h#fbPFbL z!aC`b=d_3MuD7}7Ra)%oiJ2;$afn}(-#(Iq%Y$J)w<5=$u`|a(7r)jewHEwslafA- g7)z1}u7Ckm{%nP8w6j%Mum7VOMHPywXRToG2bE@kc>n+a diff --git a/djangocms_link/locale/sl/LC_MESSAGES/django.po b/djangocms_link/locale/sl/LC_MESSAGES/django.po index 583d1000..11727207 100644 --- a/djangocms_link/locale/sl/LC_MESSAGES/django.po +++ b/djangocms_link/locale/sl/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Slovenian (https://www.transifex.com/divio/teams/58664/sl/)\n" +"Language-Team: Slovenian (https://app.transifex.com/divio/teams/58664/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/sl_SI/LC_MESSAGES/django.mo b/djangocms_link/locale/sl_SI/LC_MESSAGES/django.mo deleted file mode 100644 index b43cb2d73df621e0f8aa94ed1fd09f47f10d13f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmYL_-)_?|6vhJ@63QjlT$~%ER+|&2e?sdnjM8N)ZnIYV9`=SZy-IYGW4|DJi?3coLr3k;xrQk`#f zE!9siHTs9h9ht4kN*F7(Vvvp}pT-}ju$nHGvzyQULR8u~GPi|XlMlPXl1wx3)0>P; zjNlGKGN8LPS|VKBXN>v5_pqUe=c%`(i?eB4~e zExFT%!B`cd)Nm=4gmd1QV2$SeTJEI|^3A)mdSr}ARqS{nNGAA}!LrnQp(Iz(dOWtF zwQ;VpEDR5aL*VKu@>bjhx!#7&b)mzo4f}&Q?uEAeww#4+e?FT}j}H?C)SqbOgu*?4 zRrteB+_|tSxl|*_H{4j^lCRkn865lSNw>m~sme7jUoaSam+on02F)x#Eq8{Ov~V5!?4`Cf`o@|*9u_aBP! BpUMCL diff --git a/djangocms_link/locale/sl_SI/LC_MESSAGES/django.po b/djangocms_link/locale/sl_SI/LC_MESSAGES/django.po deleted file mode 100644 index 214814a0..00000000 --- a/djangocms_link/locale/sl_SI/LC_MESSAGES/django.po +++ /dev/null @@ -1,130 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -# Translators: -# Angelo Dini , 2016 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Slovenian (Slovenia) (https://www.transifex.com/divio/teams/58664/sl_SI/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "Povezava" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/sq/LC_MESSAGES/django.mo b/djangocms_link/locale/sq/LC_MESSAGES/django.mo deleted file mode 100644 index f1d290a6128d6af93f24984ccb2b8e4f7fdc55c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 418 zcmYL^-%i3X6o)Z-wM(zPsEHR4Jgh^RTgfgEharkAIJqxd88xFFZTaJa_D}V$8Dh@l>|A-G=-sJ)Ywb#L=7XTi@gx=1K>O4Vbb&4xQnqB zVa9g6e*EP5fJ5+l2!{j*ZEWMbQc-Ma!60RHP0*lRP{FA{&6P2gCa$~R?>k0Oq4|;> zI+ctk|~HqCUY(df`SD%#~BII8z(8Zik2{vYOM(p)!$Y}-9Gv+qozRD5%OAn Gr|}Dg8g#_~ diff --git a/djangocms_link/locale/sq/LC_MESSAGES/django.po b/djangocms_link/locale/sq/LC_MESSAGES/django.po index e9726508..8ee722bb 100644 --- a/djangocms_link/locale/sq/LC_MESSAGES/django.po +++ b/djangocms_link/locale/sq/LC_MESSAGES/django.po @@ -3,124 +3,141 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # +# Translators: +# Besnik Bleta , 2020 +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 14:11+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Albanian (https://www.transifex.com/divio/teams/58664/sq/)\n" +"Last-Translator: Besnik Bleta , 2020\n" +"Language-Team: Albanian (https://app.transifex.com/divio/teams/58664/sq/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sq\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 -msgid "Link" +#: djangocms_link/apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 +msgid "Link" +msgstr "Lidhje" -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" -msgstr "" +msgstr "Rregullime të mëtejshme" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" -msgstr "" +msgstr "Lidhje e brendshme" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" -msgstr "" +#: djangocms_link/fields.py:30 +msgid "File link" +msgstr "Lidhje kartele" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" +#: djangocms_link/models.py:24 +msgid "Default" +msgstr "Parazgjedhje" + +#: djangocms_link/models.py:41 +msgid "Open in new window" +msgstr "Hape në dritare të re" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "Hape në të njëjtën dritare" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: djangocms_link/models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "Gjedhe" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "Emër në ekran" + +#: djangocms_link/models.py:77 msgid "Target" -msgstr "" +msgstr "Objektiv" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" -msgstr "" +msgstr "Atribute" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" -msgstr "" +msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/sq_AL/LC_MESSAGES/django.mo b/djangocms_link/locale/sq_AL/LC_MESSAGES/django.mo deleted file mode 100644 index dde71438457f29b1cf6aee572e009efdd48f7c8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmYL^%T59@6oxUnnx$(OHE{vKLpvzrP%;ZdFhr3Fj%-btDMJmkV_Pmhh_C0f*g*q- z@}=jb|GE8~pM6)HP8=7GE61th+EFTW?A&MDy`|@%SgQ}7S{P<9<=O}(DT=$jr|x4P zP5YDA;rPXy@Iq+|Ba@2^?$^12L{a3$;{6M{K7W>ph%?|nt OqpC!g5%Oytuks7q6nVw~ diff --git a/djangocms_link/locale/sq_AL/LC_MESSAGES/django.po b/djangocms_link/locale/sq_AL/LC_MESSAGES/django.po deleted file mode 100644 index 224ee71d..00000000 --- a/djangocms_link/locale/sq_AL/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Albanian (Albania) (https://www.transifex.com/divio/teams/58664/sq_AL/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sq_AL\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/sr/LC_MESSAGES/django.mo b/djangocms_link/locale/sr/LC_MESSAGES/django.mo deleted file mode 100644 index 6c0bc8db81b7bb31c2f270c38a9287192a599e12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 491 zcmYL^!A=`75QahYw8x$~Or;hP!DPpQq#K6?(KMh4QlhYMH;Gw{5_@Gkgi5?dAEYnT zXJHmp@=L!wqxpV&{O|LpKO3w~_BQ(~dyBo#u9dO>^03Qi&3tI=-J_mH9M14o`(T`v zFh1>HoSqNhb}+dfUj0fYx^h0^D3oS~KbB>{!bwQRR|WRHR*^&aQ$;PIMWT!J9q9lB z$#!RtT0{)uL_eAO@-^2%>Y``^btPqc#7ZueEtjg)SZKA7aIO8FQ5JR|VyuEp)75I# zj9%Gb?)7tX>K5tDJQ{31xO)mt0#gC4w> z`L6vYD9;7#>_A=8ms|)q0RqOkKh9hKM@RW#UA`sgND#cdyhoU!24@6kT8&<^@d}Od BgS!9# diff --git a/djangocms_link/locale/sr/LC_MESSAGES/django.po b/djangocms_link/locale/sr/LC_MESSAGES/django.po index ee5d884d..de923596 100644 --- a/djangocms_link/locale/sr/LC_MESSAGES/django.po +++ b/djangocms_link/locale/sr/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Serbian (https://www.transifex.com/divio/teams/58664/sr/)\n" +"Language-Team: Serbian (https://app.transifex.com/divio/teams/58664/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/sr@latin/LC_MESSAGES/django.mo b/djangocms_link/locale/sr@latin/LC_MESSAGES/django.mo deleted file mode 100644 index fde40783468a304b4fcda3c270c187fee0a283d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmYLH(QeZ)6b)#+3 zUTXB6$Q_xk$Wj<9wPKKt#$QKYCa|0=uBTVu{Dr8rab#`_xgwvpg(aD0;HOs^85_YJ zhR6kXfPofAu0R^<9K1({!pN7e4JvIqCj3_)lK1I+&+n9+k M(`gTUuXzOj0I{Q@)c^nh diff --git a/djangocms_link/locale/sr@latin/LC_MESSAGES/django.po b/djangocms_link/locale/sr@latin/LC_MESSAGES/django.po deleted file mode 100644 index dc9c7ed9..00000000 --- a/djangocms_link/locale/sr@latin/LC_MESSAGES/django.po +++ /dev/null @@ -1,130 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -# Translators: -# Angelo Dini , 2016 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Serbian (Latin) (https://www.transifex.com/divio/teams/58664/sr@latin/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: sr@latin\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "Link" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/sv/LC_MESSAGES/django.mo b/djangocms_link/locale/sv/LC_MESSAGES/django.mo deleted file mode 100644 index 14a54320e6c39c32b80eb6c0cdc15cfad01c60c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmYL`-EPw`6vqt=A?0Ehh)XWa-KNcnQ`XSB6s_wzRME1i3%kZ7r->o8Bin7qgYW=I zyb15YvvAT)>ydu)`5&Dx+y7o3{32-2kk`l=@*J5Vt$jrf5Q(($CGz_TA@zekd`id* z^k3nL;awj*2+Dh#DgA?_mC-;_YraG7*|cD{V4X5r&~!BZH2OH9x0A)q^!jtKfW}zQ z=B`u)yI7ZwWk%2-z0TO!g7jF#E~N)SJ3Q_){*LjtH0Gk4obV3kn8+5eQEl^mUcz{v z#a+t#g7;21S}>E&v&>5EYUzy?bfinD4ZT!a(f4vE!UDy4p*G5ddG+D69hqRIF4wXI zmVsOedb5Q>xr!cD-ZxG}(RRBHecM, 2016\n" -"Language-Team: Swedish (https://www.transifex.com/divio/teams/58664/sv/)\n" +"Language-Team: Swedish (https://app.transifex.com/divio/teams/58664/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Länk" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Telefon" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/ta/LC_MESSAGES/django.mo b/djangocms_link/locale/ta/LC_MESSAGES/django.mo deleted file mode 100644 index 8f357dfb19411db933331dd683816d57e8ebbe5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmYL_L2uJA6vqRMOT=lX9XOZ+(x&0WDQjq5is-ryRkSQBVP{P0rXHys+3q@yJAsfm z?!sjkP8?E+FTgiJ`6#@k()y&I|9;Q!JwN;3?#_(^_5gSc903o35m4DjUH@KHYP7Hd5!`?o8cj85CVyK z!Y@VDe47_y(#Am(kv1i*LjvZGn6Wt4Oqz^Yr77yklxGT^2r1A@Ry*DloYzxvDU_GY zUp=d?453n{OO|pRbGD!;W($#_{kgTdp}xObtvp+`6*GS2C2HZ<^}dB<<2PGjc;s8= zAGqV;c(DD3z$0#7Ny{Zn^(BYrS$<{xJYzz3P%>xQaNGS5pW@awuexT&H6F-B!Kf)k ztxv+<4G2A$8)Zw)GJLA^!cZjh+BMxq2W__9eTklQQE, 2016\n" -"Language-Team: Tamil (https://www.transifex.com/divio/teams/58664/ta/)\n" +"Language-Team: Tamil (https://app.transifex.com/divio/teams/58664/ta/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ta\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "தொடுப்பு" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "தொலைபேசி" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/th/LC_MESSAGES/django.mo b/djangocms_link/locale/th/LC_MESSAGES/django.mo deleted file mode 100644 index 0482c7bee746988fe552dd65e8d1b779c2e8b55e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmYL^y-ve06h=WXd1PkrzyK<@b_xxNs}7~4sDjd{gl-HbaTBA~j%@db2jTU2795b; zPdc(KpL>1%b9VZD}lC#(r&_eNv-8Mebl+z+4zBwPH9O44(#% z37#jj*YWfP%|xw@gNZF=0r%_DLZ%r;=`@3(5#0GAc;HSj+@V1X^bY6^4k+t}E!v^f zi!c)#*)%_RAy8V2not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/th_TH/LC_MESSAGES/django.mo b/djangocms_link/locale/th_TH/LC_MESSAGES/django.mo deleted file mode 100644 index d98aefc37e509116a810b5eda111d2453f498c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmYL^O;5rw7{@Vs+R?Lz9y~zsp&iQHN;n`6C5kLKxth9_Q8U`5EiZl$zn-7PP80Yi zzqU`F|MSwH^Rw@U(~0B4ap^d9Tsdlm4(XDSyKB!uiB_LHvoOhF!L<=eQj`owPs4{8 zE#mp>WcK3Cd8M?4sVPJbcbmdMswnc3SqdY~nRP{Q&n%~?OZ*7PEs$&E6WR;fq)Ui1 z!klkK-TdeafJET;5Q!)W+r-IxX0q6@fPbtkA(olSg)ArvKZHGO>w46)yrkS{R>D~6wV_B>f1w%pef0kv IkiOUW1qXw7SO5S3 diff --git a/djangocms_link/locale/th_TH/LC_MESSAGES/django.po b/djangocms_link/locale/th_TH/LC_MESSAGES/django.po deleted file mode 100644 index 78a8fe31..00000000 --- a/djangocms_link/locale/th_TH/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Thai (Thailand) (https://www.transifex.com/divio/teams/58664/th_TH/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: th_TH\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/tlh/LC_MESSAGES/django.mo b/djangocms_link/locale/tlh/LC_MESSAGES/django.mo deleted file mode 100644 index a9d406059c6e05cb9d854a23430bd9cc9dc27fb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 418 zcmYL^-%i3X6vi=nwM(zP=!F*$JhVfZqXZMgVF)4%PVVbgwwlo{ZTaJa_D z&?;KKO&71;l2=Mwn44T=@VLzlB#I(0UL-KqoLScdPt0+A;i!XUWAwk&YVn@{J_X&=8sys?s&OAE8 z@5uzhldt|~%{4?aRhbJyQTQS3F{7JN7G7L#H7jAF^u|ymtH06=y94xp9X2I;Kz?iB GHGTo0Yjr6A diff --git a/djangocms_link/locale/tlh/LC_MESSAGES/django.po b/djangocms_link/locale/tlh/LC_MESSAGES/django.po deleted file mode 100644 index 52f43376..00000000 --- a/djangocms_link/locale/tlh/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Klingon (https://www.transifex.com/divio/teams/58664/tlh/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: tlh\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/tr/LC_MESSAGES/django.mo b/djangocms_link/locale/tr/LC_MESSAGES/django.mo deleted file mode 100644 index 2fa7b1172abda39fafa523fe2ea87da4f359dd05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmYL_!A=`75Qa?wRa%J)ryhFn5k$S~P02QK8q^R1ib!CUZaL#_oL!fVy|O2SK1k2) zEA$>}@xQ)C~RAWhsOdx%7u`vvl6hmZ<$fE>Ib z`pnatr0XG46g@QBYHQQeI4K41T$4z z2W;vKJ!j{u!n4c@8l<-w8#*Nco7jZ}C1{JsUB*8#{*lI9w38Fw;v5UvOg-wxd|Q_= z-eqx{@~+^W6OIu~qz9HcX?!KYIzb1fP?e<@+GzS&ZbUdo@nx_am$!A?`G zWT9B5HvafkrRebnwG$!P>GIu54e>1g{A zama(AHJ}Xc^|QtYf_j3euB0|SnwQdf1^sW?CF^YKnlTII*vRA-mn{VCeAn=QMf7k% uTCJR{*rjz#FQ}, 2016\n" -"Language-Team: Turkish (https://www.transifex.com/divio/teams/58664/tr/)\n" +"Language-Team: Turkish (https://app.transifex.com/divio/teams/58664/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Bağlantı" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Telefon" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/tr_TR/LC_MESSAGES/django.mo b/djangocms_link/locale/tr_TR/LC_MESSAGES/django.mo deleted file mode 100644 index 33d3af81402071a7bb0c7915c19887d0a36976b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmYL^T~ER=6oxT+wM(zP=!F*$Jgh^RTL~tJ!w^N5Ik`1;E29eS(sq3O5dWUP#ZD7= zlP5hVeb3j=`Pp~F>cnzkxwM>Gt}L|zOJzSp`_`U=VkJLWW?+)ToGHzvASfP=o`#PR znn%g&WcK1Dtdz>YR2Mvl`>N28N`jntmcmFeYHSfaP{Ro7VlM=I3-}s&nDqQM?qY0> zkgyG}n;(5X;1IkX!Xd#y8(TTgR1_607^IA@2}&#V#q|<3>wxWBsJS$z)WmhS+ik}v zDl}iPT_=-kH|HBJU1RIC+Y5aE#x?3aP283C+;T;^ z=%Z{&m1bt}mX0Af`szswrXUiT%(*BC3O=|wtZRGJvz&NUDY}BORBKI;DF0GD==RZn OIA{uVhrCwbY5W4pTzQEA diff --git a/djangocms_link/locale/tr_TR/LC_MESSAGES/django.po b/djangocms_link/locale/tr_TR/LC_MESSAGES/django.po deleted file mode 100644 index 3bf61281..00000000 --- a/djangocms_link/locale/tr_TR/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Turkish (Turkey) (https://www.transifex.com/divio/teams/58664/tr_TR/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: tr_TR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/ug/LC_MESSAGES/django.mo b/djangocms_link/locale/ug/LC_MESSAGES/django.mo deleted file mode 100644 index 130e8797c0def738f80ab6383a5595116f818ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmYL^K~KUk6vr`o+R?Lz9z1C9(GF#9B^(fkA&M+GxSGmJseyKBJHQX(*YmU3X#)S` zm%gUI_Pzd`pM5ucPCOT$OV6q2##1Nuy!*q%ueEbXX7ndtI2aW$=f+B{D9ZYS=l)ZQ z=IQipGnot " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/uk/LC_MESSAGES/django.mo b/djangocms_link/locale/uk/LC_MESSAGES/django.mo deleted file mode 100644 index 2f8c51df13df5e71f596a04c2d56905f8e5a849f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmZvYL2nX46vww(FMIINvxn!wrlbx#OBaNJMUhfN1WS~AHmPy8>mI2FZpNYzx)2b_jZ5mY=5$_?xG%`Jk&i@3uWpJY8%B- z=J^nHdB?IMJaYeCo(j1Ue5htON3_7*? z%i41M++pB&4Sp*q!4ZsmFqA43R^w1%n)QON2fl^Z;DS z@`ZhxqZAuSSDb|gzUeCvS|V;9Xo=C{KE<+IJkg{VbD2b3tC&Ge1|m{$7|IYTd}Xo& zG|vX%S*Wu8QT4GIS-_+WW;_t2C-{WH$vEcN#wF~Hw4Nr+apv=RRvUCU6zAE#nm8+l zqcM;;`C_5qIkT~ovD?jdWAiKAEVb)OY9Vp6_fz~tEzY$wjgVi4{)oqk(Eds9h!i({ zX3S8;q#^qX*9{mH--h~jNd~jA-HB!~kI0dVCkX>NUD?F<%CNrrdlDXj3%(B&c6VXr zsIl(GQh12og{RnqkpBg$KIAq5sQBO+yQWhL6>xKKadE?^PzBe^Akh5>coV@Ds0sYG zRX_h1zm)moE%JQa?{, 2016\n" -"Language-Team: Ukrainian (https://www.transifex.com/divio/teams/58664/uk/)\n" +"Language-Team: Ukrainian (https://app.transifex.com/divio/teams/58664/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: uk\n" "Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" -#: cms_plugins.py:15 +#: djangocms_link/apps.py:7 +msgid "django CMS Link" +msgstr "" + +#: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" msgstr "Посилання" -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 +#: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: djangocms_link/fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: djangocms_link/fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: djangocms_link/fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: djangocms_link/fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: djangocms_link/fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: djangocms_link/fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: djangocms_link/fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: djangocms_link/fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: djangocms_link/fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: djangocms_link/fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: djangocms_link/fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: djangocms_link/fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: djangocms_link/models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: djangocms_link/models.py:41 +msgid "Open in new window" msgstr "" -#: models.py:114 -msgid "Phone" -msgstr "Телефон" +#: djangocms_link/models.py:42 +msgid "Open in same window" +msgstr "" + +#: djangocms_link/models.py:43 +msgid "Delegate to parent" +msgstr "" + +#: djangocms_link/models.py:44 +msgid "Delegate to top" +msgstr "" -#: models.py:120 +#: djangocms_link/models.py:61 +msgid "Template" +msgstr "" + +#: djangocms_link/models.py:67 +msgid "Display name" +msgstr "" + +#: djangocms_link/models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: djangocms_link/models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: djangocms_link/models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: djangocms_link/models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: djangocms_link/validators.py:50 +msgid "Enter a valid anchor" msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: djangocms_link/validators.py:84 +msgid "Enter a valid phone number" msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "Принаймні, одне посилання не потрібно." diff --git a/djangocms_link/locale/ur/LC_MESSAGES/django.mo b/djangocms_link/locale/ur/LC_MESSAGES/django.mo deleted file mode 100644 index da1d3da2a70eea811bb62f2c2b945e18fa2a0135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmYL^K~KUk6vr`o+R?Lzns|WVqaDiJN;n`6LljwXaIae#HP9|?2lzq!dVUr=P2ivW z(%1CYzSp12i|>ZZnd8cF<2ZNRI_iXu+#N=4t({{Mtv-2XVUoj=Ya^7TC>f4khR-ot z#`E{d?9H3=QfUiQQ-~ZMtHMC4DDsk73M0*#b(i3YSx!-x_z{o?Aa}?ov=_8Vmk=ky zobN>a_{j@^MBw)ji6{x%#Kn7MvZz?WA?0jK(L(1HYObv<4aIoB-*>EL(ufs5bTYNY zx!4JXt#b|Tg+XwSD~(&;bTW-kfAKrS8!2hIw2*$4Zbr)w7MB|)WFKW~rVY1)MLLG? znot " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/vi/LC_MESSAGES/django.mo b/djangocms_link/locale/vi/LC_MESSAGES/django.mo deleted file mode 100644 index 28cbcb66bd049264beff4f582466ba473a72f7f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413 zcmYL^K~KUk6vr`o+R?Lz9z1C9u?}T!B^(fkA&M+Gx!3J6YM@=(GVp`=_53V$n!rE# z<+XYL|Lg0|`Pp~N>BMp2xOAL4ZXAswNA8-jtBvQNRI5+SEldhnpf*BDM$+NvdH9r& zMKXVz%wD}YR!Uo#no<<-uq_Q_iV-iJWiZmntqZ{;x5!AB1~JfkptmHTtQWRvmr`eh zIo6^Xe)NSvV+eYL#*9X7>g2s}S#EiWkRjhNvJhw`-=INqwX(J{%=dS@UB_xJjacHo zldFwih*~J$x`gq2Q5fF&weYXK>13K5e-w16H&W7~w2*yOZc~eU>sME8cuq7k4@Y3~G^EHf>-WWz?^>;Ocpilmf1KRgmzimZy AQUCw| diff --git a/djangocms_link/locale/vi/LC_MESSAGES/django.po b/djangocms_link/locale/vi/LC_MESSAGES/django.po index 257dd48c..0363bc5f 100644 --- a/djangocms_link/locale/vi/LC_MESSAGES/django.po +++ b/djangocms_link/locale/vi/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Vietnamese (https://www.transifex.com/divio/teams/58664/vi/)\n" +"Language-Team: Vietnamese (https://app.transifex.com/divio/teams/58664/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/vi_VN/LC_MESSAGES/django.mo b/djangocms_link/locale/vi_VN/LC_MESSAGES/django.mo deleted file mode 100644 index 9d12dc036e7bccd9cfec428f8260819aba5e7431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmYL^O;5rw7{@hw+R?Lz9y~zsp&iQHN;n{bAqp%wcQth@qlUFhTVDJiemy^n9VYNk ze(Ce1|L5)Z>hkBz>D+PcxN%%KZXLBkhjpKkduz{8u~uI^voOga<=O}(DT)Wfm%;N0 zrK82$WIpp2yi(f2)D$9z$4y}%Q51RcJb|I+%(^0YVwO|XA$|np0mvQl3GD_g(jmkd zVZpbeZhrCwKqBzFh(wfxE#l<8GFfa`!6D(Sq$m~KN>*~iQKOF0jFnB)SXo;cit%o@ zYg^5v5lg;rXR5@x*b0TMD>k?r2EjevijQ=Lo8ELX9i8s;+r%3xX}PqJd{=I7%l8&n zYbIn5WhK8mW1% diff --git a/djangocms_link/locale/vi_VN/LC_MESSAGES/django.po b/djangocms_link/locale/vi_VN/LC_MESSAGES/django.po deleted file mode 100644 index 1f352519..00000000 --- a/djangocms_link/locale/vi_VN/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/divio/teams/58664/vi_VN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/zh-Hans/LC_MESSAGES/django.mo b/djangocms_link/locale/zh-Hans/LC_MESSAGES/django.mo deleted file mode 100644 index b545cdf8ba519e6f2a8f6e5f7aab8059965c60e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmYL^K~KUk6vr`o+R?Lz9z1C9u?}U95)L>)i6RS3?v*`84YW(!0s1}sdVUr=HSkY< zX`B9D-|P43$yd$g$Z_U4cN{ye991Gm=`P!Dt(<)lt=@5NVVJ=TwGm1(lJw%I-b0_v z`jhE!{NhcpP};)Cmly6<7@mo5Yb?{^5H;gL<)&7Nv#sqi|ze+*!X^ zaUnZozU11V?Y^c1hz?%WYk?a2a;`EVb4H>!VfQ05^54x%R;A`E7%06qjL72mXu3g% L{B66mnot " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/zh/LC_MESSAGES/django.mo b/djangocms_link/locale/zh/LC_MESSAGES/django.mo deleted file mode 100644 index 7dc5a1281c4e22976eb6368f8b82541f70c8dfa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmYL^Pfx-y7>6}_+R?Lz9z1C9r5(!LN;u#ghA6V&aqValI^Nx3 z&@7q0jwUbOl-EjI7@JZQaK9=IWQrm$on#Pe&aArx56p6kI>e8F+yS{kKB3*9MLL8y z5vF`Cn#T`b03-sxi%3LC*di|8Gn3_tl^in8mK4R6klb)|Sy@{fit%Q%XAuW2*q8WNeSLdcS$@I%=Bh!pKAFI}uOTfk81rJ+dHe_PY{d+5LHlb(0<3)EC| A0{{R3 diff --git a/djangocms_link/locale/zh/LC_MESSAGES/django.po b/djangocms_link/locale/zh/LC_MESSAGES/django.po index d427bca9..f8c5ea69 100644 --- a/djangocms_link/locale/zh/LC_MESSAGES/django.po +++ b/djangocms_link/locale/zh/LC_MESSAGES/django.po @@ -8,119 +8,159 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" +"POT-Creation-Date: 2024-10-27 13:38+0100\n" "PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Chinese (https://www.transifex.com/divio/teams/58664/zh/)\n" +"Language-Team: Chinese (https://app.transifex.com/divio/teams/58664/zh/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: cms_plugins.py:15 -msgid "Link" +#: apps.py:7 +msgid "django CMS Link" msgstr "" -#: cms_plugins.py:26 -msgid "Link settings" +#: cms_plugins.py:15 models.py:73 +msgid "Link" msgstr "" -#: cms_plugins.py:34 +#: cms_plugins.py:27 msgid "Advanced settings" msgstr "" -#: forms.py:15 models.py:85 +#: fields.py:26 forms.py:15 msgid "Internal link" msgstr "" -#: models.py:27 -msgid "Default" +#: fields.py:27 +msgid "External link/anchor" msgstr "" -#: models.py:44 -msgid "Open in new window" +#: fields.py:30 +msgid "File link" msgstr "" -#: models.py:45 -msgid "Open in same window" +#: fields.py:169 +msgid "No destination selected. Use the dropdown to select a destination." msgstr "" -#: models.py:46 -msgid "Delegate to parent" +#: fields.py:175 +msgid "https://example.com or #anchor" msgstr "" -#: models.py:47 -msgid "Delegate to top" +#: fields.py:177 +msgid "" +"Provide a link to an external URL, including the schema such as 'https://', " +"'tel:', or 'mailto:'. Optionally, add an #anchor (including the #) to scroll" +" to." msgstr "" -#: models.py:65 -msgid "Template" +#: fields.py:186 +msgid "" +"Select from available internal destinations. Optionally, add an anchor to " +"scroll to." msgstr "" -#: models.py:71 -msgid "Display name" +#: fields.py:188 +msgid "Select internal destination" msgstr "" -#: models.py:77 -msgid "External link" +#: fields.py:194 +msgid "#anchor" msgstr "" -#: models.py:89 -msgid "If provided, overrides the external link." +#: fields.py:195 +msgid "Provide an anchor to scroll to." msgstr "" -#: models.py:93 -msgid "File link" +#: fields.py:206 +msgid "Select a file as destination." msgstr "" -#: models.py:97 -msgid "If provided links a file from the filer app." +#: fields.py:215 +msgid "Select site" msgstr "" -#: models.py:102 -msgid "Anchor" +#: fields.py:249 +msgid "Select a link type and provide a link." msgstr "" -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." +#: models.py:24 +msgid "Default" msgstr "" -#: models.py:109 -msgid "Email address" +#: models.py:41 +msgid "Open in new window" +msgstr "" + +#: models.py:42 +msgid "Open in same window" +msgstr "" + +#: models.py:43 +msgid "Delegate to parent" msgstr "" -#: models.py:114 -msgid "Phone" +#: models.py:44 +msgid "Delegate to top" msgstr "" -#: models.py:120 +#: models.py:61 +msgid "Template" +msgstr "" + +#: models.py:67 +msgid "Display name" +msgstr "" + +#: models.py:77 msgid "Target" msgstr "" -#: models.py:126 +#: models.py:83 msgid "Attributes" msgstr "" -#: models.py:151 +#: models.py:109 msgid "" msgstr "" -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." +#: models.py:118 +msgid "Link is required." msgstr "" -#: models.py:258 -msgid "Please provide a link." +#: validators.py:50 +msgid "Enter a valid anchor." msgstr "" -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" +#: validators.py:84 +msgid "Enter a valid phone number" msgstr "" -#~ msgid "At least one link is required." +#~ msgid "Link settings" +#~ msgstr "" + +#~ msgid "If provided, overrides the external link." +#~ msgstr "" + +#~ msgid "If provided links a file from the filer app." +#~ msgstr "" + +#~ msgid "" +#~ "Appends the value only after the internal or external link. Do not " +#~ "include a preceding \"#\" symbol." +#~ msgstr "" + +#~ msgid "Email address" +#~ msgstr "" + +#~ msgid "Phone" +#~ msgstr "" + +#~ msgid "Only one of {0} or {1} may be given." +#~ msgstr "" + +#~ msgid "" +#~ "%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" #~ msgstr "" diff --git a/djangocms_link/locale/zh_CN.GB2312/LC_MESSAGES/django.mo b/djangocms_link/locale/zh_CN.GB2312/LC_MESSAGES/django.mo deleted file mode 100644 index bc68c87745dec4e94cdbe2e2ae2e5824bf37c90c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmYk1Pfx-y7{)Pr+R?Lz9y~zsW!;dum2iLwgeb7!4 zOW_-t`YiwS-tuP2~-H+8vJZbzz-I_BVjr*rfy#{t-DGU<^ z()Yq{VA#R9#hP-_MvE0ynwidXI)L!xD+ex_g1%VDjEkJ0@Rgh6?+N-p(n;1^Mb|Kp VYNH7f#qU*jyf*qPJGkvsegJ(Gd>jA( diff --git a/djangocms_link/locale/zh_CN.GB2312/LC_MESSAGES/django.po b/djangocms_link/locale/zh_CN.GB2312/LC_MESSAGES/django.po deleted file mode 100644 index 490bfe65..00000000 --- a/djangocms_link/locale/zh_CN.GB2312/LC_MESSAGES/django.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Language-Team: Chinese (China) (GB2312) (https://www.transifex.com/divio/teams/58664/zh_CN.GB2312/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN.GB2312\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/locale/zh_CN/LC_MESSAGES/django.mo b/djangocms_link/locale/zh_CN/LC_MESSAGES/django.mo deleted file mode 100644 index 7310df3ea400f051492f1bf0914ac18a37ca1720..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmYL_&u`N(6vqt=4iP6LZaet6X*hAl8d{ekO4gx@c8f~b6-??T9;qGK?z-*9Kfn%y zBN7)RZk!M|{uFL7_%C?LB>JR}-VeR^zR&)7XYB(5y8)~NJHSm~1l0BlSOYjv*Jr?& zYY3I#Zvl6&BXk@5I(R5Id%z(`uWTgM8aQ*tPbm0B^J^y6p!rvrRA zm^>dI?0XYYY2(P)=5k7&EOJXy&9Ijoq$D#iGa$$H$_OzK>hE>(1wikBsRoJ6l5B, YEAR. -# -# Translators: -# Angelo Dini , 2016 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Chinese (China) (https://www.transifex.com/divio/teams/58664/zh_CN/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "链接" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "电话号码" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "请提供最少一个链接" diff --git a/djangocms_link/locale/zh_TW/LC_MESSAGES/django.mo b/djangocms_link/locale/zh_TW/LC_MESSAGES/django.mo deleted file mode 100644 index a201854aaa98e8bf0e3ec20ce19a386ad67eb56d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmYL_!EVz)5QYsZ9DL;5!yH?+W3LM_$)-VsG(`~&HNk`=Vbt1LBlul@WWy8{+4^AXw7*kZ1#B z@6_fyT`2uI$gKG!3y-rEE~RzKXb#zU@@o8Y3d`x@?dMuoVL*Q#y4t4om$FzEpsaMnL!r0_yG zkGU1v)xsOgVXRA88#q&1!Kvs>v?B9-rLL8Uit5>MJ2IuDE;pi-m`kzdFsYQ5PQpPh z)K=(2IHGDW^XcwWl8A*9 zqrKF$<84Ea_43BYO)ZojLQx6pq#wP@&#}L&YbRYvi&I?~TD;`Y|ET=kx*WP$VODRf fsPWv`wd0_h&bm=Dg#XtO8-~H(uRs3$`WE~Hv-grd diff --git a/djangocms_link/locale/zh_TW/LC_MESSAGES/django.po b/djangocms_link/locale/zh_TW/LC_MESSAGES/django.po deleted file mode 100644 index af15a9c4..00000000 --- a/djangocms_link/locale/zh_TW/LC_MESSAGES/django.po +++ /dev/null @@ -1,130 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -# Translators: -# Angelo Dini , 2016 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-07-03 10:56+0200\n" -"PO-Revision-Date: 2016-09-15 09:08+0000\n" -"Last-Translator: Angelo Dini , 2016\n" -"Language-Team: Chinese (Taiwan) (https://www.transifex.com/divio/teams/58664/zh_TW/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_TW\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: cms_plugins.py:15 -msgid "Link" -msgstr "連結" - -#: cms_plugins.py:26 -msgid "Link settings" -msgstr "" - -#: cms_plugins.py:34 -msgid "Advanced settings" -msgstr "" - -#: forms.py:15 models.py:85 -msgid "Internal link" -msgstr "" - -#: models.py:27 -msgid "Default" -msgstr "" - -#: models.py:44 -msgid "Open in new window" -msgstr "" - -#: models.py:45 -msgid "Open in same window" -msgstr "" - -#: models.py:46 -msgid "Delegate to parent" -msgstr "" - -#: models.py:47 -msgid "Delegate to top" -msgstr "" - -#: models.py:65 -msgid "Template" -msgstr "" - -#: models.py:71 -msgid "Display name" -msgstr "" - -#: models.py:77 -msgid "External link" -msgstr "" - -#: models.py:89 -msgid "If provided, overrides the external link." -msgstr "" - -#: models.py:93 -msgid "File link" -msgstr "" - -#: models.py:97 -msgid "If provided links a file from the filer app." -msgstr "" - -#: models.py:102 -msgid "Anchor" -msgstr "" - -#: models.py:105 -msgid "" -"Appends the value only after the internal or external link. Do not " -"include a preceding \"#\" symbol." -msgstr "" - -#: models.py:109 -msgid "Email address" -msgstr "" - -#: models.py:114 -msgid "Phone" -msgstr "" - -#: models.py:120 -msgid "Target" -msgstr "" - -#: models.py:126 -msgid "Attributes" -msgstr "" - -#: models.py:151 -msgid "" -msgstr "" - -#: models.py:246 -#, python-brace-format -msgid "Only one of {0} or {1} may be given." -msgstr "" - -#: models.py:258 -msgid "Please provide a link." -msgstr "" - -#: models.py:264 -#, python-format -msgid "" -"%(anchor_field_verbose_name)s is not allowed together with %(field_name)s" -msgstr "" - -#~ msgid "At least one link is required." -#~ msgstr "" diff --git a/djangocms_link/validators.py b/djangocms_link/validators.py index 0ba5aebd..6a8d45de 100644 --- a/djangocms_link/validators.py +++ b/djangocms_link/validators.py @@ -47,7 +47,7 @@ def __init__(self, intranet_host_re=None, **kwargs): @deconstructible class AnchorValidator: - message = _("Enter a valid anchor.") + message = _("Enter a valid anchor") code = "invalid" def __call__(self, value): diff --git a/tests/test_endpoint.py b/tests/test_endpoint.py index 54e39ac7..5b43f509 100644 --- a/tests/test_endpoint.py +++ b/tests/test_endpoint.py @@ -119,6 +119,15 @@ def test_get_reference(self): self.assertEqual(data["text"], "root") self.assertEqual(data["url"], self.root_page.get_absolute_url()) + def test_outdated_reference(self): + with self.login_user_context(self.get_superuser()): + response = self.client.get(self.endpoint + "?g=cms.page:0") + self.assertEqual(response.status_code, 200) + data = response.json() + + self.assertIn("error", data) + self.assertEqual(data["error"], "Page matching query does not exist.") + class LinkEndpointThirdPartyTestCase(CMSTestCase): def setUp(self): @@ -184,7 +193,6 @@ def test_filter(self): self.assertEqual(len(pages["children"]), 2) def test_site_selector(self): - for site_id in (1, 2): with self.subTest(site_id=site_id): with self.login_user_context(self.get_superuser()): From 9f27a4ca9041dd67a804234eb7f34efd91a81913 Mon Sep 17 00:00:00 2001 From: Fabian Braun Date: Sun, 27 Oct 2024 15:57:12 +0100 Subject: [PATCH 30/93] Add tests for link widget and compiled translations --- djangocms_link/apps.py | 1 - djangocms_link/fields.py | 9 +- .../locale/af/LC_MESSAGES/django.mo | Bin 0 -> 378 bytes .../locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 1246 bytes .../locale/be/LC_MESSAGES/django.mo | Bin 0 -> 517 bytes .../locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 478 bytes .../locale/bn/LC_MESSAGES/django.mo | Bin 0 -> 476 bytes .../locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 471 bytes .../locale/cmn/LC_MESSAGES/django.mo | Bin 0 -> 382 bytes .../locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 547 bytes .../locale/cy/LC_MESSAGES/django.mo | Bin 0 -> 419 bytes .../locale/da/LC_MESSAGES/django.mo | Bin 0 -> 467 bytes .../locale/de/LC_MESSAGES/django.mo | Bin 0 -> 2660 bytes .../locale/el/LC_MESSAGES/django.mo | Bin 0 -> 480 bytes .../locale/en/LC_MESSAGES/django.mo | Bin 0 -> 840 bytes .../locale/en/LC_MESSAGES/django.po | 16 +-- .../locale/en_GB/LC_MESSAGES/django.mo | Bin 0 -> 399 bytes .../locale/en_US/LC_MESSAGES/django.mo | Bin 0 -> 398 bytes .../locale/eo/LC_MESSAGES/django.mo | Bin 0 -> 378 bytes .../locale/es/LC_MESSAGES/django.mo | Bin 0 -> 415 bytes .../locale/et/LC_MESSAGES/django.mo | Bin 0 -> 469 bytes .../locale/eu/LC_MESSAGES/django.mo | Bin 0 -> 469 bytes .../locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 917 bytes .../locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 835 bytes .../locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 1216 bytes .../locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 412 bytes .../locale/gl/LC_MESSAGES/django.mo | Bin 0 -> 473 bytes .../locale/gu/LC_MESSAGES/django.mo | Bin 0 -> 377 bytes .../locale/he/LC_MESSAGES/django.mo | Bin 0 -> 521 bytes .../locale/hi/LC_MESSAGES/django.mo | Bin 0 -> 475 bytes .../locale/hr/LC_MESSAGES/django.mo | Bin 0 -> 1133 bytes .../locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 477 bytes .../locale/id/LC_MESSAGES/django.mo | Bin 0 -> 372 bytes .../locale/is/LC_MESSAGES/django.mo | Bin 0 -> 495 bytes .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 1220 bytes .../locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 467 bytes .../locale/ka/LC_MESSAGES/django.mo | Bin 0 -> 478 bytes .../locale/kk/LC_MESSAGES/django.mo | Bin 0 -> 373 bytes .../locale/km/LC_MESSAGES/django.mo | Bin 0 -> 473 bytes .../locale/ko/LC_MESSAGES/django.mo | Bin 0 -> 368 bytes .../locale/lt/LC_MESSAGES/django.mo | Bin 0 -> 1258 bytes .../locale/lv/LC_MESSAGES/django.mo | Bin 0 -> 411 bytes .../locale/mn/LC_MESSAGES/django.mo | Bin 0 -> 378 bytes .../locale/ms/LC_MESSAGES/django.mo | Bin 0 -> 367 bytes .../locale/mt/LC_MESSAGES/django.mo | Bin 0 -> 449 bytes .../locale/nb/LC_MESSAGES/django.mo | Bin 0 -> 386 bytes .../locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 1154 bytes .../locale/no/LC_MESSAGES/django.mo | Bin 0 -> 471 bytes .../locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 618 bytes .../locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 522 bytes .../locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 510 bytes .../locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 1450 bytes .../locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 543 bytes .../locale/sl/LC_MESSAGES/django.mo | Bin 0 -> 430 bytes .../locale/sq/LC_MESSAGES/django.mo | Bin 0 -> 1032 bytes .../locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 450 bytes .../locale/sv/LC_MESSAGES/django.mo | Bin 0 -> 469 bytes .../locale/ta/LC_MESSAGES/django.mo | Bin 0 -> 486 bytes .../locale/th/LC_MESSAGES/django.mo | Bin 0 -> 366 bytes .../locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 473 bytes .../locale/ug/LC_MESSAGES/django.mo | Bin 0 -> 375 bytes .../locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 706 bytes .../locale/ur/LC_MESSAGES/django.mo | Bin 0 -> 373 bytes .../locale/vi/LC_MESSAGES/django.mo | Bin 0 -> 372 bytes .../locale/zh-Hans/LC_MESSAGES/django.mo | Bin 0 -> 390 bytes .../locale/zh/LC_MESSAGES/django.mo | Bin 0 -> 369 bytes tests/test_fields.py | 116 +++++++++++++++++- 67 files changed, 129 insertions(+), 13 deletions(-) create mode 100644 djangocms_link/locale/af/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ar/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/be/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/bg/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/bn/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ca/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/cmn/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/cs/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/cy/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/da/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/de/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/el/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/en/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/en_GB/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/en_US/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/eo/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/es/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/et/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/eu/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/fa/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/fi/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/fr/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ga/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/gl/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/gu/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/he/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/hi/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/hr/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/hu/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/id/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/is/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/it/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ja/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ka/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/kk/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/km/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ko/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/lt/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/lv/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/mn/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ms/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/mt/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/nb/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/nl/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/no/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/pl/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/pt/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ro/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ru/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/sk/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/sl/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/sq/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/sr/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/sv/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ta/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/th/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/tr/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ug/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/uk/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/ur/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/vi/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/zh-Hans/LC_MESSAGES/django.mo create mode 100644 djangocms_link/locale/zh/LC_MESSAGES/django.mo diff --git a/djangocms_link/apps.py b/djangocms_link/apps.py index c0eac622..db057710 100644 --- a/djangocms_link/apps.py +++ b/djangocms_link/apps.py @@ -8,7 +8,6 @@ class DjangoCmsLinkConfig(AppConfig): def ready(self): # Only scan admins after all apps are loaded - from django.contrib import admin from djangocms_link import admin as link_admin diff --git a/djangocms_link/fields.py b/djangocms_link/fields.py index 2a591e9a..50208fca 100644 --- a/djangocms_link/fields.py +++ b/djangocms_link/fields.py @@ -113,6 +113,7 @@ class SiteAutocompleteSelect(AutocompleteSelect): no_sites = None def __init__(self, attrs=None): + # Hack: Pretend that the user is selecting a site for a Page object try: from cms.models.pagemodel import TreeNode @@ -151,6 +152,7 @@ class LinkWidget(MultiWidget): template_name = "djangocms_link/admin/link_widget.html" data_pos = {} number_sites = None + default_site_selector = getattr(settings, "DJANGOCMS_LINK_SITE_SELECTOR", False) class Media: js = ("djangocms_link/link-widget.js",) @@ -159,7 +161,7 @@ class Media: def __init__(self, site_selector=None): if site_selector is None: - site_selector = getattr(settings, "DJANGOCMS_LINK_SITE_SELECTOR", False) + site_selector = LinkWidget.default_site_selector widgets = [ Select( @@ -254,7 +256,8 @@ def __init__(self, *args, **kwargs): def prepare_value(self, value): if isinstance(value, list): return value - + if value is None: + value = {} multi_value = len(self.widget.widgets) * [None] if "external_link" in value: pos = self._get_pos("external_link") @@ -309,7 +312,7 @@ class LinkField(JSONField): def __init__(self, *args, **kwargs): kwargs.setdefault("default", dict) kwargs.setdefault("blank", True) - kwargs.setdefault("help_text", "-") + kwargs.setdefault("help_text", "-") # Help text is set by the widget super().__init__(*args, **kwargs) def formfield(self, **kwargs): diff --git a/djangocms_link/locale/af/LC_MESSAGES/django.mo b/djangocms_link/locale/af/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..419543d1266d997680e905625250e16455c7642d GIT binary patch literal 378 zcmYL@-%i3X6vi=n)l09vI3`{|wChHMjFKfH4nq`KaB^R_Zd9Rd+CuO_d_AAVP80Z& zU(WxW@8|sNyXAG_x$sD%2aX7$H55fTrid*w?xJFL7_IJ6g#1a^9Ppn;(q^@u!?lhY&uJi zKBFK+V=wdukV|?`)kLB z-vrKQu&-d3V4uTY!T22gNQmuVd6lQY0`5(46F39z0MCHiz$@UV;8k!dcpKaRJ_5P! z3CQ!GgB!sY;AZe|@EPnM80$Sp0Ng(B>D?mYUjH zZR!J}RGX5fs%m7FbBI_`axT^5EvKv)R1>n*a9~5#rBmc$N@S|chandyVo=+pAy1Q$ zO(n|4sno~@v79)@A0vq}qzxH0P1D-c;^}uGi%QKNZGQ5~t1^wsl?e4z}vntHdD{Mn}9cHKn=78^o-T zI{l#A^LxFZi~Qcu@A=NhDIAm5d6iTe3&l7M>7cZeGNmJvvL?+0y#B!NaLU*N^`_K~ zj%wT-_@0OTfL>E?$-43?N;X3(rE*+XY0so{i4BWInIs*KC+i6{!+ph?p3-sAq1qO^ zdb+#!6=hodrZ8L{9$I@~(BT&j#rO^l7CW6_bEjrp5#NY5eN@GA__3lBmBU`oS{=(w zsMH%W)wqTqGNhhy?cQw|l1vMujaDif-r+cH+K^1rzS^j}k5=5sM3GPX$tPr^D1aNR zxSeo2+1(ZR{y?;scJE&C`=fw6_O9iE;JsvTFOvI^?CLB0$G{@;v?n1UmaOd)igo3&3D(dI{KlzX=dDI+w zm-BNgO%D*bklhjO;S1S)YAGzuX?b YR@@fGtCsP;3uwEX&k8)0w^Iu1=r=AQghp68p1GUh3hFr^_IFu=?5n3m#3bf8?azYW& zy)@}uriu)eoN>5RQ|abjO9RKRA!MG%vCOhkaMF1FqTWkmJBufJp=}&6;p1vjt5xEW zii=UV(`|1KWhEM2Sre2AWcZQc1wp-sIGajs8Zds9&Z{7vhBqYH`0_O`%8|Ai+le+Q zhh(I~`brKX74@fcC#U4bx|!!-vSsN-r2#7`j?EFHLNF*4AeZz&Fb3y90qt0~MESqf z6qQ^q6ST?7@cFrlv{yC+ySo@6Sj32ehA6rsaxY6Q)ur9E#h@q89!-1?Zzetk zynxT*?3(DGewmr1|Mc(o`pUb9T1GaI9b^?bKyt;%3UZA+FL~Yo>l(7a9?ze0f1wMh z9=zD-d!9Jb8Ib`uR%%5dZl0Vs&)P6(_ij2@mwu0D+Bnj+LXODsR9Mp26#V##^!TI9 zJ*34Pr?4B9t0dYdjg{Bfb)zFek!T~FWV1&cbNIps( zB;&)KVih`-m@>ghpR);t<7q0GkxW5p>|ADP7_ux2T)tY~@mY}QNm%R%9U5#{sa30c z;ZTHIez((Y|NpQYME;3Zjw?*|lwowoXD-ZACRH7hF*BCC#%=$U)c)_~&)jiC+A7f) zS5T-8rTYs>VJQ4Kof?*sQ*9=eg35}~Hg@aq+cruHHXBghs{7vjZSk^roqx{1<{#b< Dco2!( literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/bn/LC_MESSAGES/django.mo b/djangocms_link/locale/bn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e9a579bd00a9ead7546e384762434e8dba29560c GIT binary patch literal 476 zcmYL^K~4fO6oyBGn~5veE}lDybY?J0pokF=3=wohWM76lREKub7K2;wz!f-v7w`z) zz;G1bj0yhfm%f+0|Mlfc9BD*gzO;~NTv`eAP>lL$8pAZ?<3z>V#Uo@W_(hl#IDHLP-i?vwhpV>A<)%eC*xdxkH{RZOOpIVoF+z*pQK;;D+~P$lpZf zA=k`u3a3H2LV_A8pF>ciLG>g+xqW6V8EGa>!mQF1nlk2zf@>iKT(G?Hrr2Cf#hXxG zG`lS2tI#Rq1&cWuaW<#W;xcB5fa969siD5l($urrV)4wEUZm!JzQMORZv69VrE=y^ zq+fIgy+P;ye`POl+e%t4G1q&F!7X1}KTVjBb%rMF4jq+=TtiPP2`#LeU`oy9RIa2B()q=4 zwThf7TVf{ISm1&~7aiuP;9%}tVR;y0Q3S4BEN5aJq!)Fg;h{eq z4CDX*)q=?HYUPBYTyF&hcVg|rB1fs3kj~Lq;o48*K5P8XmCwwCVX;azh0QoLo~8SX q$RR~P$(IIm*4JiXIjEv)ZTqANzh(PC!G0TRhfUv$Ri5MLhxY?{yn~(q literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/cmn/LC_MESSAGES/django.mo b/djangocms_link/locale/cmn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e40fe7b4f2b60161c0402db18d538886a371c022 GIT binary patch literal 382 zcmYL@!A=4(5QZ^&>d~`@9y~yFXx9i?N;n`agy_l!SMGJUEH!M~w1wb<_=Y#ef8Z6x(M6^ZUdKr`#_^OFb&H=sLjnunbn`7@USRhEv%DTF`SJj&*OQ5 z*U9Q_v3x}Z-@xYXO!SDl(`alN|^)MYU8sE_%^ukrO z=aqn5@S5StRx05HZl_$8+)CBK?XCC5F+#X8U2nN^awCr2Lf52}2dRkwo& je@K6d%W(LFvfbYD9n7??9mC4}jcybT@qas_L)7{OD(`Hs literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/cs/LC_MESSAGES/django.mo b/djangocms_link/locale/cs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3dec974650fc2d85387fdf031b6d4f3a7540eda0 GIT binary patch literal 547 zcmZXPO-{ow5QPIOn=Dy_G%P?MaDGauirWCC6jVWJD5ZOonADKkk?o?wJ-8Cb;4Dmn z1Ph+@WIxS(qBqb7=rwc)T`ES`(0Az16~~$4S=KiZ!1$|@uXH2iixX@0 z%o9rnDVcI@gpw5EZtuE#)rV<+d_Nf7x?^4_ZOPDNA|>aG%#ewq;Km~|=C7h;$OW^U zLOlqZBseDF5d_CHXzd3m_l6luCYni;GpjU(uFQC@;6g|N9aaS|#c-C2SE0OQc5+aS zLQ-Z6mT@xSY)+x~&XXDJ&a5pA^?gM* z|M$Dl3*4TPmP_2~t-!S{Us}J&nUHNrW=tDyqld{QY5nz;&pdHW`Z7_tYDS^;DD3Zo z6cXdc`9iatTq->`6l76F6E)iKbB%T-L=l9rvjY;g@q#JXgHs5A0v1mqsQ(l@5j6g{ Xg;iGxZXpOISx54)?K-3Mg}po9P*snz literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/cy/LC_MESSAGES/django.mo b/djangocms_link/locale/cy/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..56abdc7e39633fb7dbb9a7d409b95c3c11b7671e GIT binary patch literal 419 zcmYL@(N4lJ6oxT+wM(zPI3|Wbv~)utqhv9N!w^LloOoTgGHOQKw1vQf_-ID%G-@3d5Id*UID?=X}d0wk~XNH|+H~INRfS&j?AU=q%{^y9=HvZOP0eA|^Mx#E_+;;D&Ru;CqqJkRh|2LOrN8 zNzf*>1_W&yv@QaaJ7va_rDoEk%qmTxFB6_B7z!z%%L?PgXs%A$!Z7B?y6lMeEjkTGfzR$AEv-w`J<_9lQTfbP~TkJM|qt$F)`Z4n>?rbs}{Xehf z1@1se%O%Eo&oH;;2kU1k6S4!*hH1lX?`b(Et^dCKnl;yCBqN1c6AGAxzX4x`fp!1@ literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/de/LC_MESSAGES/django.mo b/djangocms_link/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a4939469382bbcc220402af304a4a250cbc33877 GIT binary patch literal 2660 zcmai#&u<$=6vwBu{4xbf%g^$o4@YepHESnTTcvJOHEo5#DVYIwH*hF7-{qI&b)c^eQ(~r z{CsfV#{%OuJg?x{zek7(@Gp?ZrwpudX1!qA%Zv$lgAA%o& z_rRmzMTp=$wn2V>2V4a|2YKJ0AjfqGhv7&u24br?0rLDQkoC@ke8sGp{S5~DfD3T| z59{N*;PDh5&IiXbIyhH6khWYe|K@XXJ$XHG4me)U2@j5yb?}|OgokT`2g*e}hX=Cq z!J4^##F#X#ZeqpxNSoWF9mU!?Z8{gkT-d{!3dt$&G2_IX_f|JEubh}yZJ9+Lj8sQ@ zMLwZaT4i=m`6Lzd+NF`aLq^6*)Qwk`B=uyZL+YQsdot}NMv=+lrm~{G340?WVtLiR z{eq5EJ|Py_-C$W9!nkhq&8lm<&HM=q}TrDEIlfuM=l7ujDo{^cuSg2LYJ4;C@+mccGaeY zg{rh566qa$0!Yv;R7S8E1~-&-$a9TW<}P2IyHckc_0_e-}8^E=6tTUPE|uyohU6WF4cD;o32ciE+@Dc14X#b8hKP|6`9lK9JRXA;=7++ zZ!82eJ9d0bTiKv)S_v0%jb@tK4;9u>Go_U%voZ=65*xc3nKXZOvnS6{@pJaLq1R_= zdg5G(yU%TWI>@*^==3y&sC~jsk zneDr+F3b!qC^ol{gZ88q`ciI?pr!oR`kdKP8qT>(UD>`Ld48ce)`v>(s3v?2=BWX{ z?Zlu-#Usl_v%&;dTQ%P*xEgd(enqqDFXw#Wb5pB` zWac_*WBYD5@|9vn$28w>Tfvet+xOWfw@{{nzKB+psd$)(?XTNyg9sL5>O=}hj3jBW z#;R#6V;zuHv@MvSZ4DB@?dx`wIo(sVRrbxF1R(b0iMF0{+*e{v}DQ dp`=HA3G^D2xfB1}wwka?AqB0WNNxY?`5RPw=CuF- literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/el/LC_MESSAGES/django.mo b/djangocms_link/locale/el/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8d934fb83ed73b1bfed0f827804e5826bc5e8aa8 GIT binary patch literal 480 zcmYL^!A|2a5QYPSOOBlPFx)_klN3Q!T#D#IK@}82DZP8sAvL6SWV;ny+4COv3HBA> z2I2`w-+*Uf5+wNLPo9zHAOC(|S^DRZ7KtCk2C+=+5~X5diMSwU3!XQmdxdzTn$DL> zf2C8YZoSy(8%!MQj@S^5m0EF#+XpA@;|>fv{mbt8ncv4;8^?M!l_U0Rnp!r{9Q^p4 z^>HRk4?7eNIc!F?I*WE#Z5yH;9yNYOB>z-c#|B0yn+c~4hqg*F({L!2gk4cJ!HAmu zk(@~#B;&n}Y85$EIu$9h0g4HSV}p1LYh&kf%fnFQdEm;m@*3}gL{GxXA37Sg;dY~5 z-wH7c*Zp3%*ZKZkEr|RBtsE*!b)Qpghj%W_Ga*$IlCdxrUF&La#2Vjo`0r5<)HGawXMx2e3q>>1*0~?k+6Ho*v;FEsy?D6ySC;Q8-jrRfSI=Bl8a07e*zP^H+;2XFNzJohp z>(a`%1Kq%U59)nSq1(_?=zZuIdIT)+>mM(#ay~(Q&S$7U?+4W9Y+hOUwxK@f9@OXT zLJ<)_f=zH0`0{;YYp?~b0iW?##l@1VsVK+_=cFoakSHe%aa!_97KFu_HvjyrXIcqT zi}|@QLF)aAS5!&$CdmGLNLn)D?Lrz+G=h<+#MF_MP6RXOY8y41;)2iXN;IZ=PTJ7U z@1q7rzlN8k1v?YQO06Oq#K+I$lZ4Ka;VA9*!l9_OaV)o`EZEVav}~*+3I}~Q6iey% zunu=3q8CX#WO<);Vmj?ddHU#Ozn6p=w~mbsSGM9#n~1uTETdkWCv=eHahe^*oz5^B zjh?}($^|b48w);F3n%ef07OjTu Rhl(DwX>Yd`2LIoq{si3<+E4%h literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/en/LC_MESSAGES/django.po b/djangocms_link/locale/en/LC_MESSAGES/django.po index aebde87f..a4603d79 100644 --- a/djangocms_link/locale/en/LC_MESSAGES/django.po +++ b/djangocms_link/locale/en/LC_MESSAGES/django.po @@ -23,15 +23,15 @@ msgstr "" #: djangocms_link/cms_plugins.py:15 djangocms_link/models.py:73 msgid "Link" -msgstr "" +msgstr "Link" #: djangocms_link/cms_plugins.py:27 msgid "Advanced settings" -msgstr "" +msgstr "Advanced settings" #: djangocms_link/fields.py:26 djangocms_link/forms.py:15 msgid "Internal link" -msgstr "" +msgstr "Internal link" #: djangocms_link/fields.py:27 msgid "External link/anchor" @@ -47,7 +47,7 @@ msgstr "" #: djangocms_link/fields.py:175 msgid "https://example.com or #anchor" -msgstr "" +msgstr "https://example.com or #anchor" #: djangocms_link/fields.py:177 msgid "" @@ -80,7 +80,7 @@ msgstr "" #: djangocms_link/fields.py:215 msgid "Select site" -msgstr "" +msgstr "Select site" #: djangocms_link/fields.py:249 msgid "Select a link type and provide a link." @@ -128,12 +128,12 @@ msgstr "" #: djangocms_link/models.py:118 msgid "Link is required." -msgstr "" +msgstr "Link is required." #: djangocms_link/validators.py:50 msgid "Enter a valid anchor" -msgstr "" +msgstr "Enter a valid anchor" #: djangocms_link/validators.py:84 msgid "Enter a valid phone number" -msgstr "" +msgstr "Enter a valid phone number" diff --git a/djangocms_link/locale/en_GB/LC_MESSAGES/django.mo b/djangocms_link/locale/en_GB/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8bcafdcf112b1623c7df68e3a527d053c83922fc GIT binary patch literal 399 zcmYL@!A`0@E_x9$e;dJG=b38b%9Z!y0fn)8KeOK$7vtq5jcxv%1!yB%RP?ADC9M6Z- z2sY8`eYSir*dy^qkNu zllh+I94DNW6e5`y!t9{AmcsH3=0fI~DqGOpSz8%O2&<~L)l3?(<;QlaN|K3#P{caF zA>E+YdnR0dOh=@J7PCckN$$5jG*;4bX>syhxk#2DEvX77d~`@G4TM=Wm_VoEa?HU7@|l6g{xWHrK~Bt&F(<(L3}-*#VscA zCtqeJGk@m)y}tTsI9)hy9CwaO$AhC*=t$kN?`nN>QeyO%$dF8OvJ%Ehtr#T3(d+Of zhE+UYOlI%iTvXa1nc70;Kfa9DjL9xih>ZV{NvUfvS$9jXDGPZ=1qJ+m?Wg%CL1lb%GxEJ*ejJZQbI$_j)lgSv=z*zv-IRM zYKOr{Nr%!w{-wPEhX+UXh6_0$#hM$7E_u%<5TEwyH!C!d%0iVwR*b|S!W~UAf-1;1 fJHt0HQD$oyk@~N+NoPR*)1)cMbwZ-nAZYvov7u^> literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/es/LC_MESSAGES/django.mo b/djangocms_link/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..dee95407146bf1ee4400057480b05ab6bc7cc440 GIT binary patch literal 415 zcmYL^!A=4(5QZ^&+M{O=W1>W(WxFV3DcKmr#Sld{uyU_US!$qd+CuO_d_AAVSxw+i zzI2-TnwkEbo_yCZN5~m+fgB^ZNR=27*zDk0Is0T*e~QAB;hfBbby6z^S+D=ndro1N zPNu{0TQCtuTTe!=lyma9DILi*gCHA|iP*~O4SC{TFlf@KO=yQiEubAn;~Rhi1j4>O!&P)(M}y=K~TSylTusSdywj&!s9E#2?b{S7abu zkgYbBugE~#wPT>n-_<2|UHC5(1xW%CJOBmk!+C;5y^hr-MAeTetptifghI0$)P4c1 CfpG=^ literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/et/LC_MESSAGES/django.mo b/djangocms_link/locale/et/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c24cbb1e6fc6ef334586ec4509478b09009f202d GIT binary patch literal 469 zcmYL_&rSj{5XM)dmpyv+Fy186{X>*s0VCpSh@vYZ_qx=jy0n{iAo?J_mrvlcIJ+AB z(qA%PGBf?!@4cN*kF-tf6HQ{5=n<7tVuyGjKDIn>_UFH-rn6BsU+Y%sH!rp3Rc6RW zb2gLKDWf^0gW=8KI)Pa-c^uu}`4d?hi)`$2HD?#A+_9(2&KD_ErfLv`%lv=*7@(Nu6dD`B|0;dHs{cJR=CN?L86}) hD=P|iW$e;%&}D61ztx4`vVW-Ipbv4Q>wES0{{XH_f{XwF literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/eu/LC_MESSAGES/django.mo b/djangocms_link/locale/eu/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8b8f0a890e4e9703b45640d5b3ee50bc4e2072f2 GIT binary patch literal 469 zcmYL^O-{ow5QPIOEV5+HV%QadlN8aaxD?SsiYh3CQo1+kkQ!1u*bYAj;aVJlvoHw~ zJo%GnqWq3d_S#6h+{wz48&?gH*4=dO_%D+J^0Jr*jx$8SeU%@g)BL zUMq+0E`0@Zf<2 zD2HB6{00g!HW*_(7(d5uoA4R*?!jlM!o^9R{`UR%%-h|g!Tz@d$AWG`K6DxS4w>^4 zx(fY*Oi$k#LI%Jqpy|5-_Jg;3&f zDQF$Z)rJ-^nH4qO@HHtZEh5Ez>Pz*CESR6AP$()DRbqo~NaY3_C#jg%#lKvIN1o86 zBI=>fwIJmvcqyuym0Y$WqF4sXq2jbD+vZ_7tc|^_iA^(T zyK-FywnlqwkLJh5?%OqP4_S+)#p3C|%nfI)nE)?RVY}BM*4JWF+juQfP0;EZkMISi zo>t~q{o_#OD)q^V4y|#k>^CCrv$-Iu#|~BDaTrgHOwiurR7TNh znj4z1NOF+wCf~ZPbSHVA9MJSfx0QTJ4%00Znk3!pwmR=R?QV#~0kNg3*IVvLn literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/fi/LC_MESSAGES/django.mo b/djangocms_link/locale/fi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5883e379bdd0d5875a3e67e3dead73a364f8306c GIT binary patch literal 835 zcmZvZ!EVz)5QYu3KrMlwa6%lmw^p!mQjsckn~KmTC~8ZhHuS!Y$H_MKuH{`P;X`TjTX0sQZO{9oW>_=~sZd;%`Q z4?tJ14kATa6U%ZBC~LXi|25aAtBsUsAdzaqq+zKvMyk<{w@0xk66y#b|JA}o3RT%Xa<@@~XWC^u58ko8-;`>oe) zcG5mN?)KjJN0jN@@7~)nXmOIZ~ zfd=xaQ6Wae2PD#vb)-_#jM?hg+RTJOAhN7tT{#)kd1a{6Ad*w51B>G(s5dq?UIeiW z*8IcnVf*^kwMy0B)%dXr-M-84982dmz;BXjiw(yjH)NY{2OZwHKIh8Bl=HS4>IfqW zSpzL!wHUHk`u(KHMZ!BePff^FR=TFSzQyLt=Bi>VO;%gm^8YjPUP87o-mx^77gAxy tZsZeL4jpJsgmnKz7Fo|aYSAVkFb;!nI4}B?>Eo;+^GNn literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/fr/LC_MESSAGES/django.mo b/djangocms_link/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f8a972ba486a85f6c5d0bd8d66267062dd49c4f2 GIT binary patch literal 1216 zcmZvaOK;Oa5XToNukaENi31=F5>y~?;}ob`w*f*QsG_A+37px+8)w1ZwRYEO3w#A` zAaUeKxB(aL{sNphaNx{^Pr!x$CZSM?k=H-Z?7Vh8-%pIZW{_i8XR%&koyI!63ol3q zJPyhspMw?XFTwrb8}J197W6qjfrr5oJP3XPkAUC65%34-{eOZdLAIN*eZVR30C)!c zfV~T#ulse+!2bv6^ZWvR-GfMW3OqjKDCp}?5A}PX@8dCuhh=!32Mu@*dTcmg<*n&(2`BH3A zIbjq}2ilT1t>i+HRHVcPZAcaCjct=f@E==~n?yL)6dCe5!B&laB3dq3jDttQSgBP+ ztBu)vjl1*oXnyU%;>!KXn#i?r!Lm(c9NZ}q8#Hx9mDQDCO?0J?3FeS1qVcdc5rk7g z?FNNYQ8;-egjANebwSf`Wl>R^h!#?9Bv*v<%V%3O(;nz!abLfkWL&0WEuG!Gij3nm zBv47g6A?58&k&BAYIW#R$GO}_)hf^PG3V3Ew%GJ>)mV0=t~z+z>W#^XiR;z2sa~!u zFD}pjJ!Neytjua$q(XOFIofw((^YXTQcY8&W7xyD>Kv6C{Uvfok_DLwW2IIM(!ua`@Djr; zo_-{gcW)|6Z5$cfLN3VDwy-4A47_wgreY_n8S>1XV9@e|F7bOL=z!m2et6@fyf?0j zEiVMg1m7@7jI=ALube9_qm-9r(;2R;T#9`&*BiQ!JE^I|vZbA{+ilZ=(}p)r#_{RK zpy_)6gwV^H2Z&9+W;k)Gl&}l#xB8iR6lr67qnocRX*3_dfE2HJ*)ff1#mNZ(eNl zD^DC5%*d1*E488!w>!7(eix?Q@#EnB&L8tk8%IV~$Qij_3QH!Mf*;?LF<;5tLvEPk z6sl3BMxqN+Ifv+iM)lJOZzu)(`2JGfAD|9|r~m)} literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/gu/LC_MESSAGES/django.mo b/djangocms_link/locale/gu/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..fbd9472c34366eb1fc6475cc172af26656ead237 GIT binary patch literal 377 zcmYL@!A=4(5QZ^&+M{O=HSqw^p}R!LQnE1!3n7YZaOGZiODTc2X}bg;#Mkp#>}mpk z@?~Z+|Ky*a>#OgE*M;ZCbLYAAJa}rwo+rQT`&xTW%8c5w!ojSB6*E>SNl-Q%y$q)* zTBXbP+2So&GOdh*x#gmS=Zag%6+uC^fF(PK`Ub|-F@ic_)Pt}OQ5S`M62|wTSMW+D zuPA4bGrA{eT5YMJPN3$-Ic*8XRO_}gR9dlS$9AFixD*GWu=9S4yK%4ghQUFc>N6m~@bTX`k=d(P6!#LJm-|p~f{L?@C8V;qBuq_%BOvvm_ zssdNfl^1v$WO^Dl142jDHr#Bt zT0g=9!!>`KYu#0}x5HZ(R;7@t16d)AMVI^?9kKR%U46|38rD;p zrd@Lm?Q`kgHsnyCpO!NtN_M2p)N)W&V{P)i1FvDSsvt=qhLsgi@Rb5`(HiVR1RP$I V8y}M~eQd|~=8yA-`P2N_`wzo7j$i-) literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/hi/LC_MESSAGES/django.mo b/djangocms_link/locale/hi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..9649925ebe84b3124cec2487f2ead0bba02eaa88 GIT binary patch literal 475 zcmYL^K~BRk5JdxmO(Zs~Sq!@(aFSNEYF&ybP@tlvp_J}TViH4YN48tRmOF5Ro`4H* z0z)e<&+p6j`*vje3kEp=Jpp|NJqrB;^>Ski zV~4>ySOOn{yTE1e2&lk=;8SoP_#E5=z6AG!Z@}%~d(iuT0Db;1;7;&6xEuTlzJ>mR z`g*Un4ejqh@Am=pai73L;8)Ps{Q({We}g`5KZ^PKC&A<3$QrMLzW@7cTmn&QVA~7s zfcpM@&t8y@ZH4+={=RS@h<~Te;(Pb~v074a)e;F=;ha=$%WBRUxs*F$*^F4`dFsGa zw7C=HG-ccf^}osKjLk@!rTj4|-V$WC0ZQ)o`^pMvH)-ZZSv|Lb6f_uVPsZ~sk+VsuZ^;x<%yLhL*aJ#f9GHqNi zZ`(2nuH|hTG<8g+#zL?t3h85l8RUwo5=Ik2crl2^DZChmljlN6=@z#xXd138Dryr` zEfrl$wU+GZLblE$tWtrOYUjKyf~MfTn5K>9PI5(OJI-Y`E|+v)re?7+3F{MVD8=eMp+VpHpDjRHV^}-YlmsNE-3aizK z&YU5?3{O>~h^|mb@W%dfwX%M6sXFGDX9sSVqL7|E8HT_o96?Nkn95X%-R7AQi4v4) z>v+)>7^}flN%nvzT9d9^Ka_-!Mz-Hk%W4EkC~=%$rD3{rMyBvcD^? BAo&0Q literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/hu/LC_MESSAGES/django.mo b/djangocms_link/locale/hu/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..adfe7fd46c43250ff1960b42cc90a8c2e4da4aa5 GIT binary patch literal 477 zcmYL^(N4lJ6o#kKn|bH87soq{b{j?r7BHfK5a)Rt4Eu>J0>>v-wX3KGASoe@G?D71m@Ru42`RasP zz3|AA!JN#vHbO}XVdwg;bJK%aZ}K=8-@6l@DQ(Hf#9~ga^4O56qTq&OGT|#xcu1F7 zPT@4D)=6+qsx=7CY0x+hQ0|Z!OQxDhlQOF`g^rAQs-P>RfEFtUZ;r#|T&#rhqU7SF zT!l^<=Pc%A%Gr{_Z7yS`1(Q%otj!GdeU@dOEmn&KUwe^S`sEJaqQUsJM!kOKC%J#* zjs~ON{|~EP;9e_fxx{2|8Ai8!ZT&1|LN*~vm^R$DpQe4%_`g>?v*4QaWTY@|Orh~C w>|aOd~`@9z1AtXx9i?N;n`cW~0akSMGINmKtcAwoC9qd_AAVt|ss& zUuGsVf9C%=Kl|=PokT7omyy%RZKPEiVR1Q#wY@p0aOP810dfIL>AW(U;bJ^_9zSJx znJwP(`72sTYg~Ytua$s@ruI-8hEXwxh1{vu1CKmNhVN+72ReYHhv|UP^oB;E7q07u z*Ahy}w+!c67%jcx8egqLu$~dZt?dTKwO1>-?^b3@gxV=XLUef2OZ)wMq6E1{vwW5v zgC<>yCPoLT1C(DjCJ1sLh~03dhqzjE=VchZms3cOckP>%bdc%F2&HR=(+?F6DH&D* b6`RKK4NQ&OdWNgpw5E&edJ#rVEqq=&Ap3?~Zt(v?W86iIiL}GegFTf*U`O5q}e9hFmkt zDI5o3g9I%SoiKoUzJyDVmE^yb0wcv-6{B z6eeZ1WEm%8&K4B<3D22KMFO>%wS}R+&x*pc z{*|O4j2q`m&2rLHdSNKYqOvABZo~Q*)g&B17{Go6A*@!gwgE)w!+P6wZgW1LFSYXv Dd{&6W literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/it/LC_MESSAGES/django.mo b/djangocms_link/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c01f9528ac70ef13969e165c2a9f1efd5d46b57f GIT binary patch literal 1220 zcmZvbOK%e~5XToNuTVggA`mYP5>z1AWK(EKw@o3mDT-)mR6-Bj+{D?KZtRuqq)p)~ za07wFh0g#-E=YU<#E}E%Ubt}N#NTQ9h}4lLzx8-LGagTV4-LHYAg7_1p>Lt*p@RqT z18IO~K+)qXFopFS@F@5J90EUqF2)yd5d01v2Y-Mk!C&A2xCuJ{Kj2x=JLq{wfMM_$ zcnSQ7z3ZUM`|XhDodbV@F5V{S^8N*{fd9a&-~|Lf1>Of;+&ORPe5JWF2-T#UP0;I8WFO4cUPA;6$`ma!cbEfBV;t~ z6>4oJtGq^rTMLWv3f5||(z4umv%Jn)u?1ruG0Vv+N|@%d-(*$d%?gvmtV5DDxi=?b zPA-*Kl9p@9;;q%ZGc6`ul8_|%8m$RgQ)@dWgTvdl3eyp{UWGRi*K)6{)k|KreyQd! zb8Uo@A(aa=PYREVv|LT052awb}GuE$YCJizw9a4v_u6Afjq)o!&*fr>( zxfNk|N(>2$a@^7^_UDvtnvi7DU7GyeN!t3%OUmadOAja@?9;V8K1N3Hb%V05PeI@u z0yt#hFglsqXRJ!iL>bFA&~iZxBevn*aC@}G&SVu5Eiegj%&0CTH)s@@R>HMV8vgt2 z!X&E#@4+z}1_RkdB8~U*W)$8i!U#!NT|Bt-*+h33`yID(U>sYLk!-2@F{!= zFT9AeYl46Jr8CL=)4xAQg?9_I4;%wU-~gxtnL?ldJOFCXvc_;90^d->*(vkq>T&U6 zg-Xs@WN>$a$4qH11wmo6b=SNJ&^Q=Ab_e(Nkfl-?+}AOm;Ok|q@kkP6hXXuhE1r39 zn;J&YxmT)SuZl}$C8ZsU;!iYV~C(5BKta&p)$0Swji$O30#;MUHU#g zg2}vzcg93c`la_K_uQWT?C-o;pl#p)C<41c9mwPZJHQ?Ayk%Kqxc7i>sNwu8^XKYw zF}HjrpIBgUZ-U26X)XmpezSGmyy~EFXL#Scy|ITZmdfCP4*3LME<=q+k|5i^#Y48@ znFqJ2VFZ=EQU!ZwxO9rVGvZZ`J&@g}+Tf9*LPyj{MNm_OERv|r1xIz7H_il_iwR$G z=>)U$V!jHTB3#mt;Sr+?g07fUA*TWz&5VgPaa|h6j>$IjDO)>%T)6oP*TB4XPpg&6 zi94rm!5;Jmoy`YJj%T-|Fib$Oml%>8wl;1YQ7&pIm{FyfX*`U&xVo9ko|!U*J0g&f zHYBL}$jyI7g67orqotw|?n<@L1c^9rb)#HEe`VuH95zaYnr)@YYnptf$yb_uq{+MW E3wO4PivR!s literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/kk/LC_MESSAGES/django.mo b/djangocms_link/locale/kk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..455aea1499212ed39c690c31413fd9ef36d9d24c GIT binary patch literal 373 zcmYL@!A`d~`@HSqw^>9#~j*`^1?VhAD)R_<%Nl(n$C*;#L#* zlP@!q`6vJUTwZ*)oX#9qjvL3hQ;qaJBIqm1+6G3Ja4GmP{Ki1wq+xG#x&r zXqhfvC-WC?!Iab%W~SmLJnSk1xg^NT=CELU-rT?=wTz%{5cVM$K-fdUfCSNP;N(41 zQSE5OAZK(-(3F1BdX3s^Yn34wQ>A>XsW5!S4t^oGxa4~-v2|{Pdr`lCkLwzDyxC-y zo}LW-z#Bh$_0|w1)Zb{5ZjAohq%E$KuoHW&Usuv-^#A|> literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/km/LC_MESSAGES/django.mo b/djangocms_link/locale/km/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c327d55c9f94f3c03b3474eb46a4f77fc68c4e83 GIT binary patch literal 473 zcmYL^O-{ow5QPIOn=Dzg@Dc=0QbeoZQbg$ws!C}np?i~>)HJap+pWqCkl69FEw|tZ z90MsgVG<;G@+Z$o^TyBL+m&|3UCd`4a=Iqy$yUp4d+jVztklc zb1P8tfkg)Qr+C7Y=28$8wAzE#MHfxF!DuahQ=2LvWh&2u+L3S|0W47dl z2Y0Ap1RZ+SI`)onwT8T7;`#d?$iAf7;80Pa6KbR)s3l^SNYvqiqZ3*-&J>!nDPMBw zM6=U_auqm5yr40|A)_flgIUTH+MOAbY2vyx%N$dz<@apmL^5?tziVJvyEVUFKXT`( zyJrvk!|wm@s*Y#3r7%oDs>cjs8@4iTmQXGlD4J2FnQ7jJJ?#I_70=u=g}Wk>5H%*q zzvJdFAVKrg4w8kU3GPXiYJx;owz^qupx?6THEb(iKjj}U`T8|qf9C7A{NvgB0mase A%K!iX literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/ko/LC_MESSAGES/django.mo b/djangocms_link/locale/ko/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3cb7f94438d429d0dbf0db2ef8eead92b397314b GIT binary patch literal 368 zcmYL@!A=4(5QZ^&>d~`@9z1AtXxGSQDdB*)kPRXmT)EfXvQ(gL+CuO_d_AAVt|ss& zUuGurPyYG2y!dVfodvD}*MalEeV|bih{LiQYU4R7xB63*9=n(0(bmJ%)v|)8UG1RI45NGobFr7r4Lox%7=EBp473YT2h%R2$sG+sFI?3- zUJED$-!eSWR&a%HR^A)O2;s)Gz2(Zur8u-py(N|0OHF)mJJLzw_>rtNxkb}#nx3AF z+7u17@;^2wdaH)E@Tyg7!@4pu#NKU>cW+^PBs??QKHN(k=^v4ewUTc(Z Zc9w5or0v!*tjyo&`cV)6w|&|}tzS#DXWsw- literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/lt/LC_MESSAGES/django.mo b/djangocms_link/locale/lt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e641f11759c41c6d7e3255741c955cfdcf6de069 GIT binary patch literal 1258 zcma))zi%8x6vrna1XzBFfP@l(ct{Y%g7xj1#Ie_R7mnD0Q|#C>hYP62x8w7RcV|{J zvu7VlK|_O}LdX&ofjFwvun|VKW-uwOBnXd%a zGmw`cpF^I9{0#}~y;DLw2X>G65g1`#f{%fF;5qOU@LBLn@G0;+@M-V|@C^7f81DT7 zhWNjNXTf{maK+gg6gIaDD=O4SW)u244X)@CEQg@B(PSkpD9<)b%y^ zBKR%%GWgSx{Wmbg`vXL($-jjAp_Wj0s5vYg3zRUq8|r%$5>|Mp|E^He>0oFUtapeV zmFyhrL0fe4q11hqlT+Tq;zY-L%bT@VPAsY|Sr;BG)IfSg-cTj2(hr-wsl+0?s*oen zvQ(n0y|P*s6w-<1@L8>tCf20YF72|;&F%w}gUhk4C+$Fa(NiU&c_r4Yxvly>?&k4^ zvW|_;XsvVoX6M}{+E`kDzq@)XT33~^K3;JH&f|CLfs1=4qiAh4UROg7KJg-AWi*qd zvvD#Xr&lPM&yu+}60B%hIv@9})D9Vq&1gk>>1a`MG0G)1%dmYrKip3DP1$}kM7jz` zJ*eeC#XTj_8zXt!##Y=owATNZo}U(aW;(**wH z%lS{ve{#;x<;8c+>CAEExOSX7?i`f@2Xn)|t5xQxSgTK-S~Ojw71u^6Ng*DMUq;Un ztfJ-Hbn)sfd7-pLbCZcRdfaCQC5nOgqS`@E%yJ4HOnM0S5$OW%Qyko4CvV1N zwr3ef31>SBGiFP{Bs90y7KZvhD~h(&Od7G_hjyxV{#ukm`PRja-wk@b2R|?UmN%cy zqtln9jlHpwmP?D0ufm5FCaC8V#r{u7`xc5HPqn)I(>6KwQ&l4ZPYf D>Zovh literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/mn/LC_MESSAGES/django.mo b/djangocms_link/locale/mn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..9e8a3a51c2f9d181e86bbed5f18a7ebc34cd7919 GIT binary patch literal 378 zcmYL@(MrQG6owVO%B9y{MDSumv$VsFE~DU_oeZrjv+h2&Sr=(fLXwU7Aikc@VydwH z@Nv%JoS*amT%3QOc%6DKJ=dNy&#k9b!aN_5w6j-~>35e`z1UiM^w`<`TxZ*l=Toi{JAZiH>*eo3$_`fkKrMDu$yE=?)d~`@9z1AtXx9i?N;n`cgy_l!SMGJUEH%4r(-r~`;_LY=b~S-N z`7-}x{>jYG<;8a==qzv*xDK2L?gOpjKrajjp|+W$GONEt;bC6FN?0egVmKR5UdFQo zuaf2aeDQ{s!f5Lub(JjPX?IMhG{i>n&GKuEoAv=!TSXCpGaQ>_{)}_a8|xwN>Uhidr#fR z2xigbbufDICOlW#qM=Deg6>zTK~qJ+8;{V0uSM|&Juu5D)G=ux+(x7cxJ_|ziCw&B zCesy5Iht~oQ5dqN<%UCLVQp@x@3TCwST3R`#fy4vwdzp;gQy8r+H literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/nb/LC_MESSAGES/django.mo b/djangocms_link/locale/nb/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..847e2f3f3469c2b611f3cac0b64347aadeea8ac6 GIT binary patch literal 386 zcmYL@&rZTH9LF(w>d~`@ns|U{*Nq4nB|88PB?>G!xtFbs>ee=GL3|J&!6)%Od=@)R z;G2B%`=8(U=ltxm;dJ7-a9lY~9XF0zq2s{~doI>H2PIm*vdp4Mj+RUtE(L+fVDvb+ zkKr<2JWu8`uwY7Ri>9XFIT~&YgHlN#Nakq4cD%kpchoWh+kVhReh&p5==X>pUi(hq ziHc%N3x-lgD*|Uyzq5i<0f+Lf`u-|mb7QSC1Y@d{XEhauui4(qWQB9S;}TnUXmBU& zc5ks*;TD)qrt#5l;Q3%Ag=NB`^g}r#mhCN8CFPA zi@C?3&-?ibV-LY2(Cd5!z3vZi0Q?0$0RML9`;o-wAL?=x^m(T-_;byHgW#)f+<`vt zA&9gcgVY7{=k+qqYPet}3bx2tsa43U z^NTO$mn(d$vRPZ%SkG-zs*MZQY)eMLLe{cDU57kZ-3T^mPx?JU8CoG9D-YhZRb)O=JO&=N1Yd!O*-(~@{!z=I`6R9=Eo-|CZ6S0oFB=p zt*lkf&R85RntL}Bi~PiJ~|F=>pfDtLb-Dj%jC3H&{jeuY=Lm^ uDzfK#s@q_vE!Ax*N!dP!911d>zB-P#$-Sny3B8lKvZk2TcEom!JnSERRwW1k literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/no/LC_MESSAGES/django.mo b/djangocms_link/locale/no/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8e946b161469fb1899c5eb09e9f386d046cd69ef GIT binary patch literal 471 zcmYL^-%i3X6vn5)n_YVCMZJSaw?TxA!i)&R5cx9^xv!&)%4nCiAo?CYm@nY7cs3LG z(qG!s_B;Lhds+InKKF41@{39_Rpp0Pd8J-AN|BdG4x zn%HaMS_644;`uio$R1H`@LW-$Q);9ls4EhdO4R3qqYfmqlJB{6;`Lp%Xa!D@ z>}bO9oY5^o6RAE}!l^*zwK16{u1mAbF?nmgVh1OdTes-p8Zc4!DPvwKn)CLq~o2GI>W7&l8P7i|=;snW~@uk!)+Pxta?R!reg#1i5r1o>~=977T$ mq#dO@MN>SGYO7%*D@q;I+vtB8lm)sDP_5Fotq~I&X8i%pM}uJi literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/pl/LC_MESSAGES/django.mo b/djangocms_link/locale/pl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a90c25646447e246f139ce49d208c3312c4d9aac GIT binary patch literal 618 zcmYLEO>@&Q5DiQ@;3H=a%YjZZRJI(FOrpdop-q_#4KX3)jIdQlts{9PrBi15H#qTo z_#6BdR;I-}^G5se-rLom7e_x^7*7!|5hsXehzY_+ia0`iMm$H-*1w2vm_NbyF}%Kx zOQ~*JsnORWb7YZ|tuR(<#UP!XeVl!m!*;&@vRHiz)}qqJk)hRju_@z#RD z@Vj*XFJw@aL0TRRFUf^Ad&@vob!n5{7>9n6v{jPCa0(O{wAJgFPLnPiAA?UPNw4Gc zx=$x@7w+%t0iDJ;IfWQS>J{oANz;Tj;<)4a52pR5KWh584P77B;l6*iU9^4M83(OZ MuJrF;O5U{o0*xP`^8f$< literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/pt/LC_MESSAGES/django.mo b/djangocms_link/locale/pt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a3641606a5da6a646d3e163ac50fd95d80ba062e GIT binary patch literal 522 zcmYLGOHRWu6buM9S+ZvFSb#v_#NksFmjDF{s-O@`>E5I!HKev>I|wAM!8JG%XW=Cv z7-^(8(aiJ2{#si22oUqgW#kre5qW^Dks%k5x5&@AAQ=DZMGT<)L!EDMCDn6~S^Xq( zPx=!w7S>6v7-Zek%kD)F#=YTP|K>Uz3Ztzj16RliIjIUqMw&sG-H@Spk#&ZgaW5Eb z)1*b{K1ud~?laonq=@i}J5NTID_3%_ErYHqM5*CSDhUU?5zz$2@kG8z9p%%*t!5P_ zRZ;Omkdfds?1e3=q7qKP`qX>lSR8X>B46*8kK#4T^(=0d#2yna-fOp7yRq@{MmXpX zdjG$eL^M3r$_s_n-VAp4;?>8dL$ zr)Zx<4NO`%IzpsHNpp{Y+-qhm9&08|&aBcDb!EnLh0cW(=$KU|n1VT-idUh6bk?a? zqo7k}3zl&_=4?*UNX?lPOd@Y)ZDD8_vZ4rVIaxgMWss_QSd9oRoHyZ7v(Y#VwF-TA zI2iW-9~cG1?I~%wgkWz4B)5EN!y;!wwoy7`+He~`j4yEW|6F;^6W6#eQw3==ikgqY z{$->{D>um(n&tRH>A9gu7L_&eK^y&+u_xm=Iw92aJh>YY(urFB`}@koG4X3PPwv3( P`zQM}^8L2!RR8n?_D_ri literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/ru/LC_MESSAGES/django.mo b/djangocms_link/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5e43e807686b6c89e778c838836c18702deaa639 GIT binary patch literal 1450 zcmZvZ%WoV-5XKt_ujL&MZ~&=th!qRQGh=MW9`9^0u^m>#*fN`3kdP+3?e&n|p3!uV zA5sp<2E@S@K@g4sAtb~Jt&JD_Tn_vLJ(nE0!;KRX%7L%PPo(s!_BT~i^;LDvAE!@! z&2XNFy#`x_y$pK*Gw0n$7<&mUAMiu40KW-72`+)B!JFU<;8)EjU>iIIc0rT( zJ81OpgHM2eflq;dgAZW;!p_3~=P|}?@O2cw2u^{ofFFV9!3EF*e**i!KfyELtB>#Z z_dug_3G4xzpy_iLH1pj9(JH@-xrdp>#Ldj+K#pMq_B71YAw554Pbbeaa2_>*Vj~pS zDU{R~H1^aspiUf~qoe!6jEzog_2^rFN)DDi#Ayvp-R{@`)>NbgY` zx@dFQv*<(N0`)`St=`cBD`vOwThTjuTenGfvliUj`F~5VXSa1HYn7P3tGoI)*pA-Q zn^{YD^iH;__fXg&gxV--WjB$q1)WW%zsTK9y_RdOF#WCW64Z8$M)sL*=Q^L8cn5VI zy#b9@wn}=Pa-EIiHrXwsskbQmBv0MayAQ2{^fqL>&@iIer*Jy@=e%*QxsHMFFntf* ze??9{gPDH=Bi+gG4v96Sw)HQlG&e>1m#8ueF;ngt1>~Mw8q?pwJ=h@A-(Wl2=)Q7z n9WxTTb@eV<KXqo5Z9hsU6vF1^fp;#E0-L zoCK*zj5P8YdFFWh`FH)@LHt2(ArFun$S$%%j9f?lM}Dk1&J@q;eiH*ISE%weZiUR9 zSgU8ASTab-lxriDq!9NmZhF^!nD)o_gVCKk=B3h>3{56da=yq6nJ5ZwJR)Ph6jg>? zGRrA6g0Mw`V-g-ga7=^tet>XqnXzP|nKT8nN>k{`j28+ng%r?bweV6DXQ@~UVJxs1h`^Q&3^Tajj%S2(Lh~3x2YRJ Y6HVdDv|Z&-p+Vtruj4wSG-q$l7fxW0djJ3c literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/sl/LC_MESSAGES/django.mo b/djangocms_link/locale/sl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..05e3aaebf6684c2a24016e2a941e1d8df0d63960 GIT binary patch literal 430 zcmYL@Ur)j?6vZ+6v`3$PxDT2@w6x=2M#*9jharkAFnOfkwHmzpTh!x*AQ?30+#PBE(<2)0Ma$nhTHHh8KdAdSDjgLjUt(&!LGya!Qa7e!T-XY z<;I3_e#B)kgZvhF3494&1KZ#gun#(|x8OMV0h|Cog15mh;6?Bocp3ZwzJdRO-$cBA zp0T^&3(&1=(CNPh-THg*2KX6tx?e%3_Z_?g{sixXzd_gkZ?ry!VX(zu#&e)MgVS~9 z&fyHDgC3`M6@CHk%$>)XI}clkrRs8NcuyK5RkX-T;hs<}3b`R`kuj`ft(MKcCBs%| zNAzRMR-{Q|ambbE5nGipai_y7%92(h9!483RZU58skowjzAsgn?4PC#non{Kp(C=a zK|SbNVl|y~sAauM=xviWGEo7qm6o5D*2;XlTz_7vKFic8O|H|OPNcy2Dp6&~hbnGIpA*U&;4?3n0)FOgBQ%a>xZf-f`& z(UVjsk;b5=y(`mfqNBw}(3^JcD(Z`fyatJ0z)NvcC@B=5Y+IX}!1qO(X04N#J9Ln3 zB|SfsdouAY>Wx2Bn4Nv>n_Yh@vsu|JpPe$F&1IGo{78lA4pWS8>A?EJ`rF+%`L;y|QX0AucW8g{HKpGX~u3W@>R?i`ZLDbk77_rGwBEr|0?bvpA{v zgCfsQ&1c-R2-_XOdwmrpYLV47Mg2IIxG;Ns#Cyj_mO7@5%P)=I2CE4zUPT>3AF(nj zG*>94E@opJPL6n2XiG7jgv6VgR5;KXRW&Wm`nD6stj94N-(3a<6P%YoOhdqCuYw)k2pUaxH`6P^YX(Xp68@pe;_5BZ`Xd zrOD?qS7fB*jKiaH&srKdd<~)SJdR~i)Pj@7>ld}GP3$br^g`P>pxwu(Nwe9Ay^E_+ zuiH!4U$PpFuB-{l1TuOr@O)6q5EoOaO&cb!(s>oc)98jIYhQWhMLCk1iOsahIV8_I z{J+S-yJ#?-J2@pc*3CQzQ~ZuzoU~!pibHe2s1OV)6)0P}Cm4eZpn!Iq&qe)jbtW2R Z`>&@xcE@oRxR>W&7~}d=*DcQb^=a5@{^-?>v>C~e8aq#_|#>(r3BqTojNWXd<9>>&eY zIfc`p(IP>IG@1}}XwW_mQ0|x+OXiwMlQXL{g`P}#u3#XffOA$QUV_PGA~r&KadvT1 zjlxcuu35^-oU;{$*(*Vb|KD~Hr$4f^J~)nuPd)va!rOZR%kY*(0&s3 q&msl0aie^#Sx&B%UKt9qs8SQ2cHuV+YZ8t^Xwd{`>LUeRBaddWZa)4jr zUoiJm{O(NTO`o=3^1WZ*{_JeMTcAx~4=4iLz%h`?2eyD~V6kCYV>ow#Z@9zySLV;v z=i<@wm3&~K!MzC{Go`r{1o^G@W$U7g#@*3PZ+K;oSR$3d10C@RKAT4x2a+J$AL0>P z@XUid)G&g|Ua5+`Ixba^S0`TW&;!|hstpbl6*{IyDuP-fVzERWE;u@-dErc;IGykX zmrgi6DdwZVDWW-z7!DYn5fsoFk5OT2OrnYF(j;+AHkRMBCnuCMH}|^+nzdW0RjWs? zq3(e_=ncB--<2HCZcAa9fK<;3#5U~7xJgX8XrORPm1d@S8=T|Xx-Wa?o+;cFp@gUr zLA5(>{sY1cYWwkA(HNggHPZx%BrkQd+(3WVWlfd!klp|Q literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/th/LC_MESSAGES/django.mo b/djangocms_link/locale/th/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..927e5d88a572ba832dce5491d5f6a7851729f384 GIT binary patch literal 366 zcmYL@&rSj{5XLcj>d~`@9z1AtXx9K)N;n`cgebDXm3!SSyEV{m+JWGM_KX3A7~T@I-%JQvGE+0I{T?|gjoSA<-E2=&~!9@9!(Rv zN|tZ4#Vc8=+B$@}FLeQryV65u1tsYMmTIq?8F-SY1byI94|pGiS!!no literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/tr/LC_MESSAGES/django.mo b/djangocms_link/locale/tr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8e35fe6ec6a4e35d4baa63a1a2c18147d351753d GIT binary patch literal 473 zcmYL^%}xR_6op5Fn_0Sc(IrGWGY}zAej-1EA%cuJvadrKDnmPI3*v*g_8EK!);@yI z;+-+UlYZ&F$-SqiKbM6M3v>=#0cGFdXbiPyOHK=y=cgF{7yPNh&AfD7R!! z$5a3Re-+2G2T~X&AlG{e!3{eYH%%xPEflS((#&+8!x3)$&t=c7n8Ln@B!rC#YP@iB siU=Oc4w9Xs2_8wc)dYz&Z*`~ILVsnaC{PzwN-f*!)8l7Cg*kp%zttaw%>V!Z literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/ug/LC_MESSAGES/django.mo b/djangocms_link/locale/ug/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..d8e565088e36c0931857ae747c493f00dafbcf9d GIT binary patch literal 375 zcmYL@!A=4(5QZ^&>d~`@G4TM=Zg+{0rDP9?iy?|^aN%BeOR0f&({>3wh_C0f*wqC7 zeW-*H_;yuM5wO=gxEKdGIufJ&9iqd~G}@Wk!GT!r^I&SKL^s6@_dxejUA} zuu2yn)A>7E@JbtpXI97(Kh?tGTvI^V9547@HaGa0IZmM)MtvL(aMXivK*RVx^g?e; ziJA$HbIx`YmPfIv4YW7TRhAOMsw!}XDJ$3f5EObxO1YPsIPbQk7x(**q!y%uX46@E zeliL|G}g*-<#2wie7fTYN2)E8Y6!)K8OvR=%qKWL`)%;R&bj@)ET1IFH(MKZ2$lO literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/uk/LC_MESSAGES/django.mo b/djangocms_link/locale/uk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..07019e3a21a06591d61176608e1c5f1fdfd8fc6c GIT binary patch literal 706 zcmZvX&2G~`6omsS8!x-=;V_v^ z#hOQeB@!yn;JyIQ!nOMo5M1eK=E(PabNp*_<8uw?A!-Y?i+Y6WqRJVgHc)R+?{H~` z=O*ea-XGw3H)Xz>qev}l<5Zu?z>wjb%w(EHS}_>+_h0p24q!Hzyd56Dwk9&ssUf2* zjOJu74>K~=46N}nnaJ~~%#Z_NB!fEjnuNBA*8tjPwDpwYSVtl=WSR<<#lq;6L0^S3 z)^HH12)d#&&K%8)d2}9WCs_1$D-xv|COo@(8 z<%JXIm0K}fgMrL#w362O<9p^f=Vl0qAn@OM6476uRKm;qvm9PoW2%ZzItA2Y4I7 z3bYK|*&c8F#c$hxd_^9|e)s+HJ?{BnmoL;AJhMAit@u*>y#82xFMbr?imT%4`cv&U D#+kT1 literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/ur/LC_MESSAGES/django.mo b/djangocms_link/locale/ur/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..49e0e8512479392e3132a4ee6ace8c9f75861686 GIT binary patch literal 373 zcmYL@!A=4(5QZ^&>d~`@G4TM=(p@5C>1GcIiy?|^aN%Be%Tfbv({>3yh_C0f*wqC7 zeW-*H_;yuM5wO=gxEKdGIufJh5L6eQi7^Wk!AS!r@to*W6g4B!z4=ei=Qd zuuhlnv&9=)a;=QRb6bfLKh>4RxuSrw1zz%lXm0R?IZmM$gaaH5aoC4oNQ3A;@ItRl zRyC_Q&Nw@F*VZ31B@My+328fcvW literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/vi/LC_MESSAGES/django.mo b/djangocms_link/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6becf3833a30f0db599ff0524a87d94afd7daa87 GIT binary patch literal 372 zcmYL@!A=4(5QZ^&>d~`@9z1AtXx9i?N;n`chA6VZm3!SCmKwI*v}J=2;_LY=b~S-N z`7$$^`7{5|`Pp|T=p=9vxD1>IZUe32fC$S$sO`-`sWqRNdzcllLhF>#f~Moi^Y|&D zt7Q2$TfCAb*2a36yHXYKuqz#8Mo^M2V2O=tJ@6-nDPmXd%(LDU>b+jX#t>q!hGK bB;D?;+``n@$_c9LztN4NA^mShd`LRKIsR#$ literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/zh-Hans/LC_MESSAGES/django.mo b/djangocms_link/locale/zh-Hans/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8893fb6623f0fe3b1b4581cf04f927a803d50721 GIT binary patch literal 390 zcmYL@!A`d~`@J$TUQu&ohNmT*8UN(5=3a$nn_T~l^9y9+_z!`Jg!+^Ug3 z`7$$^e=`5q>B(oy>&SEFIrkiUu04%n&(tq_zBZnJrAEDB?qE{D3XK&?GLjBQPs4|V ztdhlYGJg&hsFiUrv!y8DZd+Q&6eB@8hXw9La|8F>AtN_o)P=AIQHO**7RFbhS1{$W z-0~73L%v~TR0)X|$x>`|E!F}Ha#1;_Eu)lc-FAjcE7rJg=W0U>u@j0qe`#qa?sjkK zM+J}GK`(>ZWR@IKN9`~eDd|u;$lkS&<8be&uDOtXl2_bVbc2^{4DrF&{92=dMCPgx nvScKF74APWBY)q5wB8zC!&sS(Wkl+q(GH?M`E3VbKWKde8x3#x literal 0 HcmV?d00001 diff --git a/djangocms_link/locale/zh/LC_MESSAGES/django.mo b/djangocms_link/locale/zh/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..099e54a90db567190d1084eed267dead8ee454ef GIT binary patch literal 369 zcmYL@!A=4(5Qa5+>d~`@9z1AtXx9iXB^(eJLloKI%DwImyEV{m+Cq@`@b!EayPCkC ze3_ZdKl$h9?DYF6=s0j5xCopCZUT+szHzOT)TX>Eczn%+$cxnF zT9ybI%9WtQN@;XRFDvhBCm54;-SSpyrxv(v#kLH!M4t@VU8$o>VH8Bgckm%eLN|%DhAIk4v6m(aS bbh);22_s`yPEcL{jjkW{=zrViJ#zF5!8mA7 literal 0 HcmV?d00001 diff --git a/tests/test_fields.py b/tests/test_fields.py index 00cb333b..c68791a1 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1,5 +1,119 @@ +from django import forms from django.test import TestCase +from cms.api import create_page + +from djangocms_link.fields import LinkFormField, LinkWidget +from tests.helpers import get_filer_file + class LinkFieldTestCase(TestCase): - pass + def setUp(self): + self.page = create_page( + title='django CMS is fun', + template='page.html', + language='en', + ) + self.file = get_filer_file() + + def test_form_field_rendering(self): + class LinkForm(forms.Form): + link_field = LinkFormField(required=True) + + form = LinkForm() + form_html = str(form) + + # Render widget + self.assertIn( + '