Initial commit

This commit is contained in:
2024-08-27 20:33:44 +02:00
commit 1f1832267d
14794 changed files with 1599592 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
def get_image_model_string():
"""
Get the dotted ``app.Model`` name for the image model as a string.
Useful for developers making Wagtail plugins that need to refer to the
image model, such as in foreign keys, but the model itself is not required.
"""
return getattr(settings, "WAGTAILIMAGES_IMAGE_MODEL", "wagtailimages.Image")
def get_image_model():
"""
Get the image model from the ``WAGTAILIMAGES_IMAGE_MODEL`` setting.
Useful for developers making Wagtail plugins that need the image model.
Defaults to the standard ``wagtail.images.models.Image`` model
if no custom model is defined.
"""
from django.apps import apps
model_string = get_image_model_string()
try:
return apps.get_model(model_string, require_ready=False)
except ValueError:
raise ImproperlyConfigured(
"WAGTAILIMAGES_IMAGE_MODEL must be of the form 'app_label.model_name'"
)
except LookupError:
raise ImproperlyConfigured(
"WAGTAILIMAGES_IMAGE_MODEL refers to model '%s' that has not been installed"
% model_string
)

View File

@@ -0,0 +1,15 @@
from django.conf import settings
from django.contrib import admin
from wagtail.images.models import Image
if (
hasattr(settings, "WAGTAILIMAGES_IMAGE_MODEL")
and settings.WAGTAILIMAGES_IMAGE_MODEL != "wagtailimages.Image"
):
# This installation provides its own custom image class;
# to avoid confusion, we won't expose the unused wagtailimages.Image class
# in the admin.
pass
else:
admin.site.register(Image)

View File

@@ -0,0 +1,41 @@
from django.urls import path
from wagtail.images.views import images, multiple
app_name = "wagtailimages"
urlpatterns = [
path("", images.IndexView.as_view(), name="index"),
path("results/", images.IndexView.as_view(results_only=True), name="index_results"),
path("<int:image_id>/", images.edit, name="edit"),
path("<int:image_id>/delete/", images.DeleteView.as_view(), name="delete"),
path(
"<int:image_id>/generate_url/",
images.URLGeneratorView.as_view(),
name="url_generator",
),
path(
"<int:image_id>/generate_url/<str:filter_spec>/",
images.GenerateURLView.as_view(),
name="generate_url",
),
path("<int:image_id>/preview/<str:filter_spec>/", images.preview, name="preview"),
path("add/", images.add, name="add"),
path("usage/<int:image_id>/", images.UsageView.as_view(), name="image_usage"),
path("multiple/add/", multiple.AddView.as_view(), name="add_multiple"),
path("multiple/<int:image_id>/", multiple.EditView.as_view(), name="edit_multiple"),
path(
"multiple/create_from_uploaded_image/<int:uploaded_file_id>/",
multiple.CreateFromUploadedImageView.as_view(),
name="create_multiple_from_uploaded_image",
),
path(
"multiple/<int:image_id>/delete/",
multiple.DeleteView.as_view(),
name="delete_multiple",
),
path(
"multiple/delete_upload/<int:uploaded_file_id>/",
multiple.DeleteUploadView.as_view(),
name="delete_upload_multiple",
),
]

View File

@@ -0,0 +1,6 @@
from ..fields import ImageRenditionField
from ..v2.serializers import ImageSerializer
class AdminImageSerializer(ImageSerializer):
thumbnail = ImageRenditionField("max-165x165", source="*", read_only=True)

View File

@@ -0,0 +1,16 @@
from ..v2.views import ImagesAPIViewSet
from .serializers import AdminImageSerializer
class ImagesAdminAPIViewSet(ImagesAPIViewSet):
base_serializer_class = AdminImageSerializer
body_fields = ImagesAPIViewSet.body_fields + [
"thumbnail",
]
listing_default_fields = ImagesAPIViewSet.listing_default_fields + [
"width",
"height",
"thumbnail",
]

View File

@@ -0,0 +1,59 @@
from collections import OrderedDict
from rest_framework.fields import Field
from ..models import SourceImageIOError
from ..utils import to_svg_safe_spec
class ImageRenditionField(Field):
"""
A field that generates a rendition with the specified filter spec, and serialises
details of that rendition.
Example:
"thumbnail": {
"url": "/media/images/myimage.max-165x165.jpg",
"full_url": "https://media.example.com/media/images/myimage.max-165x165.jpg",
"width": 165,
"height": 100,
"alt": "Image alt text"
}
If there is an error with the source image. The dict will only contain a single
key, "error", indicating this error:
"thumbnail": {
"error": "SourceImageIOError"
}
"""
def __init__(self, filter_spec, preserve_svg=False, *args, **kwargs):
self.filter_spec = filter_spec
self.preserve_svg = preserve_svg
super().__init__(*args, **kwargs)
def to_representation(self, image):
try:
if image.is_svg() and self.preserve_svg:
filter_spec = to_svg_safe_spec(self.filter_spec)
else:
filter_spec = self.filter_spec
thumbnail = image.get_rendition(filter_spec)
return OrderedDict(
[
("url", thumbnail.url),
("full_url", thumbnail.full_url),
("width", thumbnail.width),
("height", thumbnail.height),
("alt", thumbnail.alt),
]
)
except SourceImageIOError:
return OrderedDict(
[
("error", "SourceImageIOError"),
]
)

View File

@@ -0,0 +1,22 @@
from rest_framework.fields import Field
from wagtail.api.v2.serializers import BaseSerializer
class ImageDownloadUrlField(Field):
"""
Serializes the "download_url" field for images.
Example:
"download_url": "/media/images/a_test_image.jpg"
"""
def get_attribute(self, instance):
return instance
def to_representation(self, image):
return image.file.url
class ImageSerializer(BaseSerializer):
download_url = ImageDownloadUrlField(read_only=True)

View File

@@ -0,0 +1,23 @@
from wagtail.api.v2.filters import FieldsFilter, OrderingFilter, SearchFilter
from wagtail.api.v2.views import BaseAPIViewSet
from ... import get_image_model
from .serializers import ImageSerializer
class ImagesAPIViewSet(BaseAPIViewSet):
base_serializer_class = ImageSerializer
filter_backends = [FieldsFilter, OrderingFilter, SearchFilter]
body_fields = BaseAPIViewSet.body_fields + ["title", "width", "height"]
meta_fields = BaseAPIViewSet.meta_fields + ["tags", "download_url"]
listing_default_fields = BaseAPIViewSet.listing_default_fields + [
"title",
"tags",
"download_url",
]
nested_default_fields = BaseAPIViewSet.nested_default_fields + [
"title",
"download_url",
]
name = "images"
model = get_image_model()

View File

@@ -0,0 +1,47 @@
from django.apps import AppConfig
from django.db.models import ForeignKey
from django.utils.translation import gettext_lazy as _
from . import checks, get_image_model # NOQA: F401
from .signal_handlers import register_signal_handlers
class WagtailImagesAppConfig(AppConfig):
name = "wagtail.images"
label = "wagtailimages"
verbose_name = _("Wagtail images")
default_auto_field = "django.db.models.AutoField"
default_attrs = {}
def ready(self):
register_signal_handlers()
# Set up model forms to use AdminImageChooser for any ForeignKey to the image model
from wagtail.admin.forms.models import register_form_field_override
from .widgets import AdminImageChooser
Image = get_image_model()
register_form_field_override(
ForeignKey, to=Image, override={"widget": AdminImageChooser}
)
# Set up image ForeignKeys to use ImageFieldComparison as the comparison class
# when comparing page revisions
from wagtail.admin.compare import register_comparison_class
from .edit_handlers import ImageFieldComparison
register_comparison_class(
ForeignKey, to=Image, comparison_class=ImageFieldComparison
)
from wagtail.admin.ui.fields import register_display_class
from .components import ImageDisplay
register_display_class(ForeignKey, to=Image, display_class=ImageDisplay)
from wagtail.models.reference_index import ReferenceIndex
ReferenceIndex.register_model(Image)

View File

@@ -0,0 +1,53 @@
from django.template.loader import render_to_string
from django.utils.functional import cached_property
from wagtail.admin.compare import BlockComparison
from wagtail.blocks import ChooserBlock
from .shortcuts import get_rendition_or_not_found
class ImageChooserBlock(ChooserBlock):
@cached_property
def target_model(self):
from wagtail.images import get_image_model
return get_image_model()
@cached_property
def widget(self):
from wagtail.images.widgets import AdminImageChooser
return AdminImageChooser()
def render_basic(self, value, context=None):
if value:
return get_rendition_or_not_found(value, "original").img_tag()
else:
return ""
def get_comparison_class(self):
return ImageChooserBlockComparison
class Meta:
icon = "image"
class ImageChooserBlockComparison(BlockComparison):
def htmlvalue(self, val):
return render_to_string(
"wagtailimages/widgets/compare.html",
{
"image_a": val,
"image_b": val,
},
)
def htmldiff(self):
return render_to_string(
"wagtailimages/widgets/compare.html",
{
"image_a": self.val_a,
"image_b": self.val_b,
},
)

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,56 @@
import os
from functools import lru_cache
from django.core.checks import Warning, register
from willow.image import Image
@lru_cache(maxsize=None)
def has_jpeg_support():
wagtail_jpg = os.path.join(os.path.dirname(__file__), "check_files", "wagtail.jpg")
succeeded = True
with open(wagtail_jpg, "rb") as f:
try:
Image.open(f)
except OSError:
succeeded = False
return succeeded
@lru_cache(maxsize=None)
def has_png_support():
wagtail_png = os.path.join(os.path.dirname(__file__), "check_files", "wagtail.png")
succeeded = True
with open(wagtail_png, "rb") as f:
try:
Image.open(f)
except OSError:
succeeded = False
return succeeded
@register("files")
def image_library_check(app_configs, **kwargs):
errors = []
if not has_jpeg_support():
errors.append(
Warning(
"JPEG image support is not available",
hint="Check that the 'libjpeg' library is installed, then reinstall Pillow.",
)
)
if not has_png_support():
errors.append(
Warning(
"PNG image support is not available",
hint="Check that the 'zlib' library is installed, then reinstall Pillow.",
)
)
return errors

View File

@@ -0,0 +1,11 @@
from wagtail.admin.ui.fields import BaseFieldDisplay
from wagtail.images.shortcuts import get_rendition_or_not_found
class ImageDisplay(BaseFieldDisplay):
rendition_spec = "max-400x400"
def render_html(self, parent_context):
if self.value is None:
return None
return get_rendition_or_not_found(self.value, self.rendition_spec).img_tag()

View File

@@ -0,0 +1,16 @@
from django.template.loader import render_to_string
from wagtail.admin.compare import ForeignObjectComparison
class ImageFieldComparison(ForeignObjectComparison):
def htmldiff(self):
image_a, image_b = self.get_objects()
return render_to_string(
"wagtailimages/widgets/compare.html",
{
"image_a": image_a,
"image_b": image_b,
},
)

View File

@@ -0,0 +1,10 @@
class InvalidFilterSpecError(ValueError):
pass
class UnknownOutputImageFormatError(ValueError):
"""
Exception thrown when an unknown output format is requested for an image conversion
"""
pass

View File

@@ -0,0 +1,211 @@
import os
from io import BytesIO
import willow
from django.conf import settings
from django.core.exceptions import ValidationError
from django.core.validators import FileExtensionValidator
from django.forms.fields import FileField, ImageField
from django.template.defaultfilters import filesizeformat
from django.utils.translation import gettext_lazy as _
def get_allowed_image_extensions():
return getattr(
settings,
"WAGTAILIMAGES_EXTENSIONS",
["avif", "gif", "jpg", "jpeg", "png", "webp"],
)
def ImageFileExtensionValidator(value):
# This makes testing different values of WAGTAILIMAGES_EXTENSIONS easier:
# if WagtailImageField.default_validators
# = FileExtensionValidator(get_allowed_image_extensions())
# then the formats that will pass validation are fixed at the time the class
# is created, so changes to WAGTAILIMAGES_EXTENSIONS via override_settings
# has no effect.
return FileExtensionValidator(get_allowed_image_extensions())(value)
class WagtailImageField(ImageField):
default_validators = [ImageFileExtensionValidator]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Get max upload size from settings
self.max_upload_size = getattr(
settings, "WAGTAILIMAGES_MAX_UPLOAD_SIZE", 10 * 1024 * 1024
)
self.max_image_pixels = getattr(
settings, "WAGTAILIMAGES_MAX_IMAGE_PIXELS", 128 * 1000000
)
self.max_upload_size_text = filesizeformat(self.max_upload_size)
self.allowed_image_extensions = get_allowed_image_extensions()
self.supported_formats_text = ", ".join(self.allowed_image_extensions).upper()
# Help text
if self.max_upload_size is not None:
self.help_text = _(
"Supported formats: %(supported_formats)s. Maximum filesize: %(max_upload_size)s."
) % {
"supported_formats": self.supported_formats_text,
"max_upload_size": self.max_upload_size_text,
}
else:
self.help_text = _("Supported formats: %(supported_formats)s.") % {
"supported_formats": self.supported_formats_text,
}
# Error messages
# Translation placeholders should all be interpolated at the same time to avoid escaping,
# either right now if all values are known, otherwise when used.
self.error_messages["invalid_image_extension"] = _(
"Not a supported image format. Supported formats: %(supported_formats)s."
) % {"supported_formats": self.supported_formats_text}
self.error_messages["invalid_image_known_format"] = _(
"Not a valid .%(extension)s image. The extension does not match the file format (%(image_format)s)"
)
self.error_messages["file_too_large"] = _(
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
)
self.error_messages["file_too_many_pixels"] = _(
"This file has too many pixels (%(num_pixels)s). Maximum pixels %(max_pixels_count)s."
)
self.error_messages["file_too_large_unknown_size"] = _(
"This file is too big. Maximum filesize %(max_filesize)s."
) % {"max_filesize": self.max_upload_size_text}
def check_image_file_format(self, f):
# Check file extension
extension = os.path.splitext(f.name)[1].lower()[1:]
if extension not in self.allowed_image_extensions:
raise ValidationError(
self.error_messages["invalid_image_extension"],
code="invalid_image_extension",
)
if extension == "jpg":
extension = "jpeg"
# Check that the internal format matches the extension
# It is possible to upload PSD files if their extension is set to jpg, png or gif. This should catch them out
if extension != f.image.format_name:
raise ValidationError(
self.error_messages["invalid_image_known_format"]
% {"extension": extension, "image_format": f.image.format_name},
code="invalid_image_known_format",
)
def check_image_file_size(self, f):
# Upload size checking can be disabled by setting max upload size to None
if self.max_upload_size is None:
return
# Check the filesize
if f.size > self.max_upload_size:
raise ValidationError(
self.error_messages["file_too_large"]
% {
"file_size": filesizeformat(f.size),
"max_filesize": self.max_upload_size_text,
},
code="file_too_large",
)
def check_image_pixel_size(self, f):
# Upload pixel size checking can be disabled by setting max upload pixel to None
if self.max_image_pixels is None:
return
# Check the pixel size
width, height = f.image.get_size()
frames = f.image.get_frame_count()
num_pixels = width * height * frames
if num_pixels > self.max_image_pixels:
raise ValidationError(
self.error_messages["file_too_many_pixels"]
% {"num_pixels": num_pixels, "max_pixels_count": self.max_image_pixels},
code="file_too_many_pixels",
)
def to_python(self, data):
"""
Check that the file-upload field data contains a valid image (GIF, JPG,
PNG, etc. -- whatever Willow supports). Overridden from ImageField to use
Willow instead of Pillow as the image library in order to enable SVG support.
"""
f = FileField.to_python(self, data)
if f is None:
return None
# Get the file content ready for Willow
if hasattr(data, "temporary_file_path"):
# Django's `TemporaryUploadedFile` is enough of a file to satisfy Willow
# Willow doesn't support opening images by path https://github.com/wagtail/Willow/issues/108
file = data
else:
if hasattr(data, "read"):
file = BytesIO(data.read())
else:
file = BytesIO(data["content"])
try:
# Annotate the python representation of the FileField with the image
# property so subclasses can reuse it for their own validation
f.image = willow.Image.open(file)
f.content_type = image_format_name_to_content_type(f.image.format_name)
except Exception as exc: # noqa: BLE001
# Willow doesn't recognize it as an image.
raise ValidationError(
self.error_messages["invalid_image"],
code="invalid_image",
) from exc
if hasattr(f, "seek") and callable(f.seek):
f.seek(0)
if f is not None:
self.check_image_file_size(f)
self.check_image_file_format(f)
self.check_image_pixel_size(f)
return f
def image_format_name_to_content_type(image_format_name):
"""
Convert a Willow image format name to a content type.
TODO: Replace once https://github.com/wagtail/Willow/pull/102 and
a new Willow release is out
"""
if image_format_name == "svg":
return "image/svg+xml"
elif image_format_name == "jpeg":
return "image/jpeg"
elif image_format_name == "png":
return "image/png"
elif image_format_name == "gif":
return "image/gif"
elif image_format_name == "bmp":
return "image/bmp"
elif image_format_name == "tiff":
return "image/tiff"
elif image_format_name == "webp":
return "image/webp"
elif image_format_name == "avif":
return "image/avif"
elif image_format_name == "ico":
return "image/x-icon"
else:
raise ValueError("Unknown image format name")

View File

@@ -0,0 +1,119 @@
from warnings import warn
from django.utils.html import escape
from django.utils.translation import gettext_lazy as _
from wagtail.utils.apps import get_app_submodules
from wagtail.utils.deprecation import RemovedInWagtail70Warning
from .shortcuts import get_rendition_or_not_found
class Format:
def __init__(self, name, label, classname, filter_spec):
self.name = name
self.label = label
self.classname = classname
self.filter_spec = filter_spec
def __str__(self):
return (
f'"{self.name}", "{self.label}", "{self.classname}", "{self.filter_spec}"'
)
def __repr__(self):
return f"Format({self})"
@property
def classnames(self):
warn(
"The class property `classnames` is deprecated - use `classname` instead.",
category=RemovedInWagtail70Warning,
)
return self.classname
def editor_attributes(self, image, alt_text):
"""
Return additional attributes to go on the HTML element
when outputting this image within a rich text editor field
"""
return {
"data-embedtype": "image",
"data-id": image.id,
"data-format": self.name,
"data-alt": escape(alt_text),
}
def image_to_editor_html(self, image, alt_text):
return self.image_to_html(
image, alt_text, self.editor_attributes(image, alt_text)
)
def image_to_html(self, image, alt_text, extra_attributes=None):
if extra_attributes is None:
extra_attributes = {}
rendition = get_rendition_or_not_found(image, self.filter_spec)
extra_attributes["alt"] = escape(alt_text)
if self.classname:
extra_attributes["class"] = "%s" % escape(self.classname)
return rendition.img_tag(extra_attributes)
FORMATS = []
FORMATS_BY_NAME = {}
def register_image_format(format):
if format.name in FORMATS_BY_NAME:
raise KeyError("Image format '%s' is already registered" % format.name)
FORMATS_BY_NAME[format.name] = format
FORMATS.append(format)
def unregister_image_format(format_name):
global FORMATS
# handle being passed a format object rather than a format name string
try:
format_name = format_name.name
except AttributeError:
pass
try:
del FORMATS_BY_NAME[format_name]
FORMATS = [fmt for fmt in FORMATS if fmt.name != format_name]
except KeyError:
raise KeyError("Image format '%s' is not registered" % format_name)
def get_image_formats():
search_for_image_formats()
return FORMATS
def get_image_format(name):
search_for_image_formats()
return FORMATS_BY_NAME[name]
_searched_for_image_formats = False
def search_for_image_formats():
global _searched_for_image_formats
if not _searched_for_image_formats:
list(get_app_submodules("image_formats"))
_searched_for_image_formats = True
# Define default image formats
register_image_format(
Format("fullwidth", _("Full width"), "richtext-image full-width", "width-800")
)
register_image_format(
Format("left", _("Left-aligned"), "richtext-image left", "width-500")
)
register_image_format(
Format("right", _("Right-aligned"), "richtext-image right", "width-500")
)

View File

@@ -0,0 +1,206 @@
from django import forms
from django.conf import settings
from django.forms.models import modelform_factory
from django.utils.text import capfirst
from django.utils.translation import gettext as _
from wagtail.admin.forms.collections import (
BaseCollectionMemberForm,
CollectionChoiceField,
collection_member_permission_formset_factory,
)
from wagtail.admin.forms.tags import validate_tag_length
from wagtail.admin.widgets import AdminTagWidget
from wagtail.images.fields import WagtailImageField
from wagtail.images.formats import get_image_formats
from wagtail.images.models import Image
from wagtail.images.permissions import permission_policy as images_permission_policy
from wagtail.models import Collection
from wagtail.search import index as search_index
# Callback to allow us to override the default form field for the image file field and collection field.
def formfield_for_dbfield(db_field, **kwargs):
# Check if this is the file field
if db_field.name == "file":
return WagtailImageField(label=capfirst(db_field.verbose_name), **kwargs)
elif db_field.name == "collection":
return CollectionChoiceField(
label=_("Collection"),
queryset=Collection.objects.all(),
empty_label=None,
**kwargs,
)
# For all other fields, just call its formfield() method.
return db_field.formfield(**kwargs)
class BaseImageForm(BaseCollectionMemberForm):
permission_policy = images_permission_policy
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.original_file = self.instance.file
def save(self, commit=True):
if "file" in self.changed_data:
self.instance._set_image_file_metadata()
super().save(commit=commit)
if commit:
if "file" in self.changed_data and self.original_file:
# if providing a new image file, delete the old one and all renditions.
# NB Doing this via original_file.delete() clears the file field,
# which definitely isn't what we want...
self.original_file.storage.delete(self.original_file.name)
self.instance.renditions.all().delete()
# Reindex the image to make sure all tags are indexed
search_index.insert_or_update_object(self.instance)
return self.instance
class Meta:
# set the 'file' widget to a FileInput rather than the default ClearableFileInput
# so that when editing, we don't get the 'currently: ...' banner which is
# a bit pointless here
widgets = {
"tags": AdminTagWidget,
"file": forms.FileInput(),
"focal_point_x": forms.HiddenInput(attrs={"class": "focal_point_x"}),
"focal_point_y": forms.HiddenInput(attrs={"class": "focal_point_y"}),
"focal_point_width": forms.HiddenInput(
attrs={"class": "focal_point_width"}
),
"focal_point_height": forms.HiddenInput(
attrs={"class": "focal_point_height"}
),
}
def clean_tags(self):
tags = self.cleaned_data["tags"]
validate_tag_length(tags)
return tags
def get_image_base_form():
base_form_override = getattr(settings, "WAGTAILIMAGES_IMAGE_FORM_BASE", "")
if base_form_override:
from django.utils.module_loading import import_string
base_form = import_string(base_form_override)
else:
base_form = BaseImageForm
return base_form
def get_image_form(model):
fields = model.admin_form_fields
if "collection" not in fields:
# force addition of the 'collection' field, because leaving it out can
# cause dubious results when multiple collections exist (e.g adding the
# document to the root collection where the user may not have permission) -
# and when only one collection exists, it will get hidden anyway.
fields = list(fields) + ["collection"]
BaseForm = get_image_base_form()
# If the base form specifies the 'tags' widget as a plain unconfigured AdminTagWidget,
# substitute one that correctly passes the tag model used on the image model.
# (If the widget has been overridden via WAGTAILIMAGES_IMAGE_FORM_BASE, leave it
# alone and trust that they know what they're doing)
widgets = None
if BaseForm._meta.widgets.get("tags") == AdminTagWidget:
tag_model = model._meta.get_field("tags").related_model
widgets = BaseForm._meta.widgets.copy()
widgets["tags"] = AdminTagWidget(tag_model=tag_model)
return modelform_factory(
model,
form=BaseForm,
fields=fields,
widgets=widgets,
formfield_callback=formfield_for_dbfield,
)
def get_image_multi_form(model_class):
# edit form for use within the multiple uploader
ImageForm = get_image_form(model_class)
# Make a new form with the file and focal point fields excluded
class ImageEditForm(ImageForm):
class Meta(ImageForm.Meta):
model = model_class
exclude = (
"file",
"focal_point_x",
"focal_point_y",
"focal_point_width",
"focal_point_height",
)
return ImageEditForm
class ImageInsertionForm(forms.Form):
"""
Form for selecting parameters of the image (e.g. format) prior to insertion
into a rich text area
"""
format = forms.ChoiceField(
label=_("Format"),
choices=[(format.name, format.label) for format in get_image_formats()],
widget=forms.RadioSelect,
)
image_is_decorative = forms.BooleanField(
required=False, label=_("Image is decorative")
)
alt_text = forms.CharField(required=False, label=_("Alt text"))
def clean_alt_text(self):
alt_text = self.cleaned_data["alt_text"]
image_is_decorative = self.cleaned_data["image_is_decorative"]
# Empty the alt text value if the image is set to be decorative
if image_is_decorative:
return ""
else:
# Alt text is required if image is not decorative.
if not alt_text:
msg = _(
"Please add some alt text for your image or mark it as decorative"
)
self.add_error("alt_text", msg)
return alt_text
class URLGeneratorForm(forms.Form):
filter_method = forms.ChoiceField(
label=_("Filter"),
choices=(
("original", _("Original size")),
("width", _("Resize to width")),
("height", _("Resize to height")),
("min", _("Resize to min")),
("max", _("Resize to max")),
("fill", _("Resize to fill")),
),
)
width = forms.IntegerField(label=_("Width"), min_value=0)
height = forms.IntegerField(label=_("Height"), min_value=0)
closeness = forms.IntegerField(label=_("Closeness"), min_value=0, initial=0)
GroupImagePermissionFormSet = collection_member_permission_formset_factory(
Image,
[
("add_image", _("Add"), _("Add/edit images you own")),
("change_image", _("Edit"), _("Edit any image")),
("choose_image", _("Choose"), _("Select images in choosers")),
],
"wagtailimages/permissions/includes/image_permissions_formset.html",
)

View File

@@ -0,0 +1,433 @@
import inspect
from wagtail.images.exceptions import InvalidFilterSpecError
from wagtail.images.rect import Rect, Vector
from wagtail.images.utils import parse_color_string
class Operation:
def __init__(self, method, *args):
self.method = method
self.args = args
# Check arguments
try:
inspect.getcallargs(self.construct, *args)
except TypeError as e:
raise InvalidFilterSpecError(e)
# Call construct
try:
self.construct(*args)
except ValueError as e:
raise InvalidFilterSpecError(e)
def construct(self, *args):
raise NotImplementedError
# Transforms
class ImageTransform:
"""
Tracks transformations that are performed on an image.
This allows multiple transforms to be processed in a single operation and also
accumulates the operations into a single scale/offset which can be used for
features such as transforming the focal point of the image.
"""
def __init__(self, size, image_is_svg=False):
self._check_size(size, allow_floating_point=image_is_svg)
self.image_is_svg = image_is_svg
self.size = size
self.scale = (1.0, 1.0)
self.offset = (0.0, 0.0)
def clone(self):
clone = ImageTransform(self.size, self.image_is_svg)
clone.scale = self.scale
clone.offset = self.offset
return clone
def resize(self, size):
"""
Change the image size, stretching the transform to make it fit the new size.
"""
self._check_size(size, allow_floating_point=self.image_is_svg)
clone = self.clone()
clone.scale = (
clone.scale[0] * size[0] / self.size[0],
clone.scale[1] * size[1] / self.size[1],
)
clone.size = size
return clone
def crop(self, rect):
"""
Crop the image to the specified rect.
"""
self._check_size(tuple(rect.size), allow_floating_point=self.image_is_svg)
# Transform the image so the top left of the rect is at (0, 0), then set the size
clone = self.clone()
clone.offset = (
clone.offset[0] - rect.left / self.scale[0],
clone.offset[1] - rect.top / self.scale[1],
)
clone.size = tuple(rect.size)
return clone
def transform_vector(self, vector):
"""
Transforms the given vector into the coordinate space of the final image.
Use this to find out where a point on the source image would end up in the
final image after cropping/resizing has been performed.
Returns a new vector.
"""
return Vector(
(vector.x + self.offset[0]) * self.scale[0],
(vector.y + self.offset[1]) * self.scale[1],
)
def untransform_vector(self, vector):
"""
Transforms the given vector back to the coordinate space of the source image.
This performs the inverse of `transform_vector`. Use this to find where a point
in the final cropped/resized image originated from in the source image.
Returns a new vector.
"""
return Vector(
vector.x / self.scale[0] - self.offset[0],
vector.y / self.scale[1] - self.offset[1],
)
def get_rect(self):
"""
Returns a Rect representing the region of the original image to be cropped.
"""
return Rect(
-self.offset[0],
-self.offset[1],
-self.offset[0] + self.size[0] / self.scale[0],
-self.offset[1] + self.size[1] / self.scale[1],
)
@staticmethod
def _check_size(size, allow_floating_point=False):
if not isinstance(size, tuple) or len(size) != 2:
raise TypeError("Image size must be a 2-tuple")
if not allow_floating_point and (
int(size[0]) != size[0] or int(size[1]) != size[1]
):
raise TypeError("Image size must be a 2-tuple of integers")
if size[0] < 1 or size[1] < 1:
raise ValueError("Image width and height must both be 1 or greater")
class TransformOperation(Operation):
def run(self, image, transform):
raise NotImplementedError
class FillOperation(TransformOperation):
vary_fields = (
"focal_point_width",
"focal_point_height",
"focal_point_x",
"focal_point_y",
)
def construct(self, size, *extra):
# Get width and height
width_str, height_str = size.split("x")
self.width = int(width_str)
self.height = int(height_str)
# Crop closeness
self.crop_closeness = 0
for extra_part in extra:
if extra_part.startswith("c"):
self.crop_closeness = int(extra_part[1:])
else:
raise ValueError("Unrecognised filter spec part: %s" % extra_part)
# Divide it by 100 (as it's a percentage)
self.crop_closeness /= 100
# Clamp it
if self.crop_closeness > 1:
self.crop_closeness = 1
def run(self, transform, image):
image_width, image_height = transform.size
focal_point = image.get_focal_point()
# Get crop aspect ratio
crop_aspect_ratio = self.width / self.height
# Get crop max
crop_max_scale = min(image_width, image_height * crop_aspect_ratio)
crop_max_width = crop_max_scale
crop_max_height = crop_max_scale / crop_aspect_ratio
# Initialise crop width and height to max
crop_width = crop_max_width
crop_height = crop_max_height
# Use crop closeness to zoom in
if focal_point is not None:
# Get crop min
crop_min_scale = max(
focal_point.width, focal_point.height * crop_aspect_ratio
)
crop_min_width = crop_min_scale
crop_min_height = crop_min_scale / crop_aspect_ratio
# Sometimes, the focal point may be bigger than the image...
if not crop_min_scale >= crop_max_scale:
# Calculate max crop closeness to prevent upscaling
max_crop_closeness = max(
1
- (self.width - crop_min_width) / (crop_max_width - crop_min_width),
1
- (self.height - crop_min_height)
/ (crop_max_height - crop_min_height),
)
# Apply max crop closeness
crop_closeness = min(self.crop_closeness, max_crop_closeness)
if 1 >= crop_closeness >= 0:
# Get crop width and height
crop_width = (
crop_max_width
+ (crop_min_width - crop_max_width) * crop_closeness
)
crop_height = (
crop_max_height
+ (crop_min_height - crop_max_height) * crop_closeness
)
# Find focal point UV
if focal_point is not None:
fp_x, fp_y = focal_point.centroid
else:
# Fall back to positioning in the centre
fp_x = image_width / 2
fp_y = image_height / 2
fp_u = fp_x / image_width
fp_v = fp_y / image_height
# Position crop box based on focal point UV
crop_x = fp_x - (fp_u - 0.5) * crop_width
crop_y = fp_y - (fp_v - 0.5) * crop_height
# Convert crop box into rect
rect = Rect.from_point(crop_x, crop_y, crop_width, crop_height)
# Make sure the entire focal point is in the crop box
if focal_point is not None:
rect = rect.move_to_cover(focal_point)
# Don't allow the crop box to go over the image boundary
rect = rect.move_to_clamp(Rect(0, 0, image_width, image_height))
# Crop!
transform = transform.crop(rect.round())
# Get scale for resizing
# The scale should be the same for both the horizontal and
# vertical axes
aftercrop_width, aftercrop_height = transform.size
scale = self.width / aftercrop_width
# Only resize if the image is too big
if scale < 1.0:
# Resize!
transform = transform.resize((self.width, self.height))
return transform
class MinMaxOperation(TransformOperation):
def construct(self, size):
# Get width and height
width_str, height_str = size.split("x")
self.width = int(width_str)
self.height = int(height_str)
def run(self, transform, image):
image_width, image_height = transform.size
horz_scale = self.width / image_width
vert_scale = self.height / image_height
if self.method == "min":
if image_width <= self.width or image_height <= self.height:
return transform
if horz_scale > vert_scale:
width = self.width
height = int(image_height * horz_scale)
else:
width = int(image_width * vert_scale)
height = self.height
elif self.method == "max":
if image_width <= self.width and image_height <= self.height:
return transform
if horz_scale < vert_scale:
width = self.width
height = int(image_height * horz_scale)
else:
width = int(image_width * vert_scale)
height = self.height
else:
# Unknown method
return transform
# prevent zero width or height, it causes a ValueError on transform.resize
width = width if width > 0 else 1
height = height if height > 0 else 1
return transform.resize((width, height))
class WidthHeightOperation(TransformOperation):
def construct(self, size):
self.size = int(size)
def run(self, transform, image):
image_width, image_height = transform.size
if self.method == "width":
if image_width <= self.size:
return transform
scale = self.size / image_width
width = self.size
height = int(image_height * scale)
elif self.method == "height":
if image_height <= self.size:
return transform
scale = self.size / image_height
width = int(image_width * scale)
height = self.size
else:
# Unknown method
return transform
# prevent zero width or height, it causes a ValueError on transform.resize
width = width if width > 0 else 1
height = height if height > 0 else 1
return transform.resize((width, height))
class ScaleOperation(TransformOperation):
def construct(self, percent):
self.percent = float(percent)
def run(self, transform, image):
image_width, image_height = transform.size
scale = self.percent / 100
width = int(image_width * scale)
height = int(image_height * scale)
# prevent zero width or height, it causes a ValueError on transform.resize
width = width if width > 0 else 1
height = height if height > 0 else 1
return transform.resize((width, height))
# Filters
class FilterOperation(Operation):
def run(self, willow, image, env):
raise NotImplementedError
class DoNothingOperation(FilterOperation):
def construct(self):
pass
def run(self, willow, image, env):
return willow
class JPEGQualityOperation(FilterOperation):
def construct(self, quality):
self.quality = int(quality)
if self.quality > 100:
raise ValueError("JPEG quality must not be higher than 100")
def run(self, willow, image, env):
env["jpeg-quality"] = self.quality
class AvifQualityOperation(FilterOperation):
def construct(self, quality):
self.quality = int(quality)
if self.quality > 100:
raise ValueError("AVIF quality must not be higher than 100")
def run(self, willow, image, env):
env["avif-quality"] = self.quality
class WebPQualityOperation(FilterOperation):
def construct(self, quality):
self.quality = int(quality)
if self.quality > 100:
raise ValueError("WebP quality must not be higher than 100")
def run(self, willow, image, env):
env["webp-quality"] = self.quality
class FormatOperation(FilterOperation):
supported_formats = ["jpeg", "png", "gif", "webp", "avif", "ico"]
def construct(self, format, *options):
self.format = format
self.options = options
if self.format not in self.supported_formats:
raise ValueError(
f"Format must be one of: {', '.join(self.supported_formats)}. Got: {self.format}"
)
def run(self, willow, image, env):
env["output-format"] = self.format
env["output-format-options"] = self.options
class BackgroundColorOperation(FilterOperation):
def construct(self, color_string):
self.color = parse_color_string(color_string)
def run(self, willow, image, env):
return willow.set_background_color_rgb(self.color)

View File

@@ -0,0 +1,74 @@
from django import template
from jinja2.ext import Extension
from .models import Filter, Picture, ResponsiveImage
from .shortcuts import get_rendition_or_not_found, get_renditions_or_not_found
from .templatetags.wagtailimages_tags import image_url
def image(image, filterspec, **attrs):
if not image:
return ""
if not Filter.pipe_spec_pattern.match(filterspec):
raise template.TemplateSyntaxError(
"filter specs in 'image' tag may only contain A-Z, a-z, 0-9, dots, hyphens, pipes and underscores. "
"(given filter: {})".format(filterspec)
)
rendition = get_rendition_or_not_found(image, filterspec)
if attrs:
return rendition.img_tag(attrs)
else:
return rendition
def srcset_image(image, filterspec, **attrs):
if not image:
return ""
if not Filter.pipe_expanding_spec_pattern.match(filterspec):
raise template.TemplateSyntaxError(
"filter specs in 'srcset_image' tag may only contain A-Z, a-z, 0-9, dots, hyphens, curly braces, commas, pipes and underscores. "
"(given filter: {})".format(filterspec)
)
specs = Filter.expand_spec(filterspec)
renditions = get_renditions_or_not_found(image, specs)
return ResponsiveImage(renditions, attrs)
def picture(image, filterspec, **attrs):
if not image:
return ""
if not Filter.pipe_expanding_spec_pattern.match(filterspec):
raise template.TemplateSyntaxError(
"filter specs in 'picture' tag may only contain A-Z, a-z, 0-9, dots, hyphens, curly braces, commas, pipes and underscores. "
"(given filter: {})".format(filterspec)
)
specs = Filter.expand_spec(filterspec)
renditions = get_renditions_or_not_found(image, specs)
return Picture(renditions, attrs)
class WagtailImagesExtension(Extension):
def __init__(self, environment):
super().__init__(environment)
self.environment.globals.update(
{
"image": image,
"image_url": image_url,
"srcset_image": srcset_image,
"picture": picture,
}
)
# Nicer import names
images = WagtailImagesExtension

View File

@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Afrikaans (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Choose"
msgstr "Kies"
msgid "Save"
msgstr "Stoor"

View File

@@ -0,0 +1,354 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# abdulaziz alfuhigi <abajall@gmail.com>, 2018
# Ahmad Kiswani <kiswani.ahmad@gmail.com>, 2016
# Matt Westcott <matthew@torchbox.com>, 2022
# ROGER MICHAEL ASHLEY ALLEN <rogermaallen@gmail.com>, 2015
# Younes Oumakhou, 2022
# Younes Oumakhou, 2022
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Younes Oumakhou, 2022\n"
"Language-Team: Arabic (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Wagtail images"
msgstr "صور"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"الصيغ المدعومة:%(supported_formats)s. حجم الملف الأقصى:%(max_upload_size)s ."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "الصيغ المدعومة:%(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr "ليس صيغة صورة مدعومة. الصيغ المدعومة:%(supported_formats)s."
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"هذا الملف كبير جدًا (%(file_size)s). حجم الملف الأقصى %(max_filesize)s ."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr "هذا الملف كبير للغاية. حجم الملف الأقصى %(max_filesize)s ."
msgid "Full width"
msgstr "العرض الكامل"
msgid "Left-aligned"
msgstr "محاذاة لليسار"
msgid "Right-aligned"
msgstr "محاذاة لليمين"
msgid "Collection"
msgstr "مجموعة"
msgid "Alt text"
msgstr "نص للمساعدة"
msgid "Filter"
msgstr "ارسح"
msgid "Original size"
msgstr "الحجم الأصلي"
msgid "Resize to width"
msgstr "أعد الحجم للاتساع"
msgid "Resize to height"
msgstr "أعد الحجم للارتفاع"
msgid "Resize to min"
msgstr "أعد الحجم للأصغر"
msgid "Resize to max"
msgstr "أعد الحجم للأكير"
msgid "Resize to fill"
msgstr "أعد الحجم للامتلاء"
msgid "Width"
msgstr "عرض"
msgid "Height"
msgstr "ارتفاع"
msgid "Closeness"
msgstr "مقربة"
msgid "Add"
msgstr "اضف"
msgid "Add/edit images you own"
msgstr "إضافة / تحرير الصور التي تملكها"
msgid "Edit"
msgstr "تحرير"
msgid "Edit any image"
msgstr "تحرير أي صورة"
msgid "Choose"
msgstr "اختر"
msgid "title"
msgstr "عنوان"
msgid "file"
msgstr "ملف"
msgid "width"
msgstr "عرض"
msgid "height"
msgstr "ارتفاع"
msgid "created at"
msgstr "أنشئت في"
msgid "uploaded by user"
msgstr "رفع عن طريق المستخدم"
msgid "tags"
msgstr "العلامات الدالة"
msgid "image"
msgstr "صورة"
msgid "images"
msgstr "صور"
msgid "Are you sure you want to delete this image?"
msgid_plural "Are you sure you want to delete these images?"
msgstr[0] "هل أنت متأكد من حذف هذه الصورة؟"
msgstr[1] "هل أنت متأكد من حذف هذه الصورة؟"
msgstr[2] "هل أنت متأكد من حذف هاتين الصورتين؟"
msgstr[3] "هل أنت متأكد من حذف هذه الصور؟"
msgstr[4] "هل أنت متأكد من حذف هذه الصور؟"
msgstr[5] "هل أنت متأكد من حذف هذه الصور؟"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "تم استخدامه %(usage_count)sمرة"
msgstr[1] "تم استخدامه %(usage_count)s مرة"
msgstr[2] "تم استخدامه %(usage_count)s مرة"
msgstr[3] "تم استخدامه %(usage_count)s مرة"
msgstr[4] "تم استخدامه %(usage_count)s مرة"
msgstr[5] "تم استخدامه %(usage_count)s مرة"
msgid "Yes, delete"
msgstr "نعم احذف"
msgid "No, don't delete"
msgstr "لا, لا تذف"
msgid "Popular tags"
msgstr "علامات دالة شائعة"
msgid "New"
msgstr "جديد"
msgid "Latest images"
msgstr "احد الصور"
msgid "Choose a format"
msgstr "اختر شكلا"
msgid "Insert image"
msgstr "أدخل صورة"
msgid "Change image file:"
msgstr "غير ملف الصورة"
msgid "Add an image"
msgstr "أضف صورة"
msgid "Add image"
msgstr "أضف صورة"
msgid "Save"
msgstr "احفظ"
#, python-format
msgid "Editing image %(title)s"
msgstr "تحرير الصورة %(title)s"
msgid "Editing"
msgstr "تنقيح"
msgid "Delete image"
msgstr "احذف صورة"
msgid "URL Generator"
msgstr "مولد URL"
msgid "(optional)"
msgstr "(إختياري)"
msgid "Current focal point shown"
msgstr "تظهر نقطة التركز الجارية"
msgid "Remove focal area"
msgstr "إزالة المنطقة البؤرية"
msgid "Max dimensions"
msgstr "أوسع الأيعاد"
msgid "Filesize"
msgstr "حجم الملف"
msgid "File not found"
msgstr "الملف غير موجود"
msgid "Usage"
msgstr "استعمال"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr "عذرًا ، لا توجد صور تطابق \"<em>%(query_string)s</em>\""
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"لم تحمِّل أي صور في هذه المجموعة. لماذا لا <a "
"href=\"%(wagtailimages_add_image_url)s\">تحمل واحد الآن</a>؟"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"لم تحمِّل أي صور. لماذا لا <a href=\"%(wagtailimages_add_image_url)s\">تحمل "
"واحد الآن</a>؟"
msgid "Preview"
msgstr "نظر مقدم"
msgid "URL"
msgstr "الرابط"
msgid "Add multiple images"
msgstr "أضف صور غديدة"
msgid "Add images"
msgstr "أضف صور"
msgid "Drag and drop images into this area to upload immediately."
msgstr "اسحب صورا وأدخلها في هذه المنطقة لإدخالها في الحاسوب فورا"
msgid "Or choose from your computer"
msgstr "أو اختر من حاسوبك"
msgid "Add to collection:"
msgstr "إضافة إلى المجموعة:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"عملية الإدخال في الحاسوب ناجحة. من فضلك جدد هذه الصورة وعنوان أكثر مناسبة "
"إذا يلزم. ومن الممكن حذق الصورة كاملاإذا لم تكن عملية الإدخال واجبا."
msgid "Sorry, upload failed."
msgstr "متأسف! فشلت عملية الرفع"
msgid "Server Error"
msgstr "خطأ في الخادم"
msgid "Image updated."
msgstr "تم تحديث الصورة."
msgid "Image permissions"
msgstr "أذونات الصور"
msgid "Add an image permission"
msgstr "إضافة إذن صورة"
msgid "Delete"
msgstr "احذف"
msgid "Upload"
msgstr "انقل إلى الحاسوب"
msgid "Uploading…"
msgstr "يتم الرفع…"
msgid "Choose an image"
msgstr "اختر صورة"
msgid "Choose another image"
msgstr "اختر صورة أخرى"
msgid "Edit this image"
msgstr "حرر هذه الصورة"
msgid "Images"
msgstr "صور"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "تم تحديث الصورة %(image_title)s."
msgid "Edit again"
msgstr "أعد التحرير"
msgid "The image could not be saved due to errors."
msgstr "حفظ الصورة مستحيل بسبب أحطاء"
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr "الصورة الأصلية غير موجودة.. من فضلك غير الأصل أو احذف الصورة"
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "الصورة \"%(image_title)s\" محذوفة."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "تمت إضافة صورة '%(image_title)s'."
msgid "The image could not be created due to errors."
msgstr "إنشاء الصورة مستخيل بسبب أخطاء"
msgid "Image"
msgstr "صورة"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "صورة %(count)s"
msgstr[1] "صورة %(count)s"
msgstr[2] "صور %(count)s"
msgstr[3] "صورة %(count)s"
msgstr[4] "صور %(count)s"
msgstr[5] "صور %(count)s"
msgid "Change image"
msgstr "تغير الصورة"

View File

@@ -0,0 +1,31 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Azerbaijani (Azerbaijan) (http://app.transifex.com/torchbox/"
"wagtail/language/az_AZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: az_AZ\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Save"
msgstr "Yadda saxla"
msgid "Editing"
msgstr "Düzəliş edilir"
msgid "URL"
msgstr "URL"
msgid "Delete"
msgstr "Silmək"

View File

@@ -0,0 +1,184 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Andrei Satsevich, 2023-2024
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Andrei Satsevich, 2023-2024\n"
"Language-Team: Belarusian (http://app.transifex.com/torchbox/wagtail/"
"language/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: be\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"
msgid "Wagtail images"
msgstr "Малявання Wagtail "
msgid "Collection"
msgstr "Калекцыя"
msgid "Format"
msgstr "Фармат"
msgid "Alt text"
msgstr "Тэкст падказкі"
msgid "Filter"
msgstr "Фільтр"
msgid "Original size"
msgstr "Арыгінальны памер"
msgid "Width"
msgstr "Шырыня"
msgid "Height"
msgstr "Вышыня"
msgid "Add"
msgstr "дадаць"
msgid "Edit"
msgstr "Рэдагаваць"
msgid "Choose"
msgstr "Выбраць"
msgid "title"
msgstr "загаловак"
msgid "file"
msgstr "Файл"
msgid "width"
msgstr "шырыня"
msgid "height"
msgstr "вышыня"
msgid "created at"
msgstr "створана"
msgid "uploaded by user"
msgstr "Запампована карыстальнікам"
msgid "tags"
msgstr "Тэгі"
msgid "image"
msgstr "маляванне"
msgid "images"
msgstr "Малявання"
msgid "Yes, add"
msgstr "Так, дадаць"
msgid "No, don't add"
msgstr "Не, не дадаваць"
msgid "Delete images"
msgstr "Выдаліць малявання"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "Выкарыстоўваецца %(usage_count)s раз"
msgstr[1] "Выкарыстоўваецца %(usage_count)s разы"
msgstr[2] "Выкарыстоўваецца %(usage_count)s разоў"
msgstr[3] "Выкарыстоўваецца %(usage_count)s разоў"
msgid "Yes, delete"
msgstr "Так. Выдаліць"
msgid "No, don't delete"
msgstr "Не, не выдаляць"
msgid "New"
msgstr "Новы"
#, python-format
msgid "Select %(title)s"
msgstr "Выбраць %(title)s"
msgid "Choose a format"
msgstr "Выбраць фармат"
msgid "Add an image"
msgstr "Дабавіць маляванне"
msgid "Add image"
msgstr "Дабавіць маляванне"
msgid "Save"
msgstr "Захаваць"
msgid "Editing"
msgstr "Рэдагаванне"
msgid "Delete image"
msgstr "Выдаліць выяву"
msgid "(optional)"
msgstr "(не абавязкова)"
msgid "Filesize"
msgstr "Памер файла"
msgid "File not found"
msgstr "Файл не знойдзены"
msgid "Usage"
msgstr "Выкарыстоўванне"
msgid "Preview"
msgstr "Папярэдні прагляд"
msgid "URL"
msgstr "URL"
msgid "Add images"
msgstr "Дабавіць адлюстравання"
msgid "Or choose from your computer"
msgstr "Або абярыце на вашым кампутары"
msgid "Add to collection:"
msgstr "Дадаць да калекцыі:"
msgid "Sorry, upload failed."
msgstr "На жаль, не атрымалася запампаваць."
msgid "Server Error"
msgstr "Памылка Сервера"
msgid "Delete"
msgstr "Выдаліць"
msgid "Upload"
msgstr "Запампаваць"
msgid "Uploading…"
msgstr "Запампоўваецца..."
msgid "Choose an image"
msgstr "Выбраць малюнак"
msgid "Edit this image"
msgstr "Адрэдагаваць гэты малюнак"
msgid "Images"
msgstr "Малявання"
msgid "Change image"
msgstr "Змяніць малюнак"

View File

@@ -0,0 +1,105 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Lyuboslav Petrov <petrov.lyuboslav@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Lyuboslav Petrov <petrov.lyuboslav@gmail.com>, 2014\n"
"Language-Team: Bulgarian (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Edit"
msgstr "Редакция"
msgid "Choose"
msgstr "Избери"
msgid "Yes, delete"
msgstr "Да, изтрий го"
msgid "Popular tags"
msgstr "Популярни тагове"
msgid "New"
msgstr "Ново"
msgid "Latest images"
msgstr "Последни изображения"
msgid "Choose a format"
msgstr "Избери формат"
msgid "Insert image"
msgstr "Вмъкни Изображение"
msgid "Add an image"
msgstr "Добави Изображение"
msgid "Add image"
msgstr "Добави Изображение"
msgid "Save"
msgstr "Запази"
#, python-format
msgid "Editing image %(title)s"
msgstr "Редакция на %(title)s"
msgid "Editing"
msgstr "Редактиране"
msgid "Delete image"
msgstr "Изтрий Изображение"
msgid "Preview"
msgstr "Преглед"
msgid "URL"
msgstr "URL"
msgid "Tags"
msgstr "Тагове"
msgid "Delete"
msgstr "Изтрий"
msgid "Upload"
msgstr "Качване"
msgid "Choose an image"
msgstr "Изберете изображение"
msgid "Choose another image"
msgstr "Избери друго Изображение"
msgid "Images"
msgstr "Изображения"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Изображение '%(image_title)s' обновено."
msgid "The image could not be saved due to errors."
msgstr "Изображението не можеше да бъде запазено поради грешки."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Изображение '%(image_title)s' изтрито."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Изображение '%(image_title)s' добавено."
msgid "The image could not be created due to errors."
msgstr "Изображението не можеше да бъде създадено поради грешки."

View File

@@ -0,0 +1,40 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bengali (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Collection"
msgstr "সংগ্রহ"
msgid "Add"
msgstr "যোগ করুন"
msgid "Edit"
msgstr "সম্পাদনা করুন"
msgid "Save"
msgstr "সংরক্ষণ"
msgid "Editing"
msgstr "সম্পাদিত হচ্ছে"
msgid "URL"
msgstr "URL"
msgid "Delete"
msgstr "মুছে ফেলুন "

View File

@@ -0,0 +1,589 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# David Llop, 2014
# David Llop, 2014
# Roger Pons <rogerpons@gmail.com>, 2017,2020,2022-2024
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Roger Pons <rogerpons@gmail.com>, 2017,2020,2022-2024\n"
"Language-Team: Catalan (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Wagtail images"
msgstr "Imatges de Wagtail"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"Formats permesos: %(supported_formats)s. Mida màxima de fitxer: "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "Formats permesos: %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr ""
"No és un format d'imatge permès. Formats permesos: %(supported_formats)s."
#, python-format
msgid ""
"Not a valid .%(extension)s image. The extension does not match the file "
"format (%(image_format)s)"
msgstr ""
"No és una imatge .%(extension)s vàlida. L'extensió no coincideix amb el "
"format de fitxer (%(image_format)s)"
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"Aquest fitxer és massa gran (%(file_size)s). Mida màxima de fitxer "
"%(max_filesize)s."
#, python-format
msgid ""
"This file has too many pixels (%(num_pixels)s). Maximum pixels "
"%(max_pixels_count)s."
msgstr ""
"El fitxer té massa píxels (%(num_pixels)s). Píxels màxims "
"%(max_pixels_count)s."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr "Aquest fitxer és massa gran. Mida màxima de fitxer %(max_filesize)s."
msgid "Full width"
msgstr "Amplada completa"
msgid "Left-aligned"
msgstr "Alineat a l'esquerra"
msgid "Right-aligned"
msgstr "Alineat a la dreta"
msgid "Collection"
msgstr "Col·lecció"
msgid "Format"
msgstr "Format"
msgid "Image is decorative"
msgstr "La imatge és decorativa"
msgid "Alt text"
msgstr "Text alternatiu"
msgid "Please add some alt text for your image or mark it as decorative"
msgstr "Afegiu un text alternatiu a la imatge o marqueu-la com a decorativa"
msgid "Filter"
msgstr "Filtrar"
msgid "Original size"
msgstr "Mida original"
msgid "Resize to width"
msgstr "Canviar la mida a l'amplada"
msgid "Resize to height"
msgstr "Canviar la mida a l'alçada"
msgid "Resize to min"
msgstr "Canviar la mida al mínim"
msgid "Resize to max"
msgstr "Canviar la mida al màxim"
msgid "Resize to fill"
msgstr "Canviar la mida per ajustar"
msgid "Width"
msgstr "Amplada"
msgid "Height"
msgstr "Alçada"
msgid "Closeness"
msgstr "Proximitat"
msgid "Add"
msgstr "Afegir"
msgid "Add/edit images you own"
msgstr "Afegir/editar imatges pròpies"
msgid "Edit"
msgstr "Editar"
msgid "Edit any image"
msgstr "Editar alguna imatge"
msgid "Choose"
msgstr "Seleccionar"
msgid "Select images in choosers"
msgstr "Seleccionar imatges als selectors"
msgid "title"
msgstr "títol"
msgid "file"
msgstr "fitxer"
msgid "width"
msgstr "amplada"
msgid "height"
msgstr "alçada"
msgid "created at"
msgstr "creada el"
msgid "uploaded by user"
msgstr "pujada per l'usuari"
msgid "tags"
msgstr "etiquetes"
msgid "image"
msgstr "imatge"
msgid "images"
msgstr "imatges"
#, python-format
msgid "Add tags to 1 image"
msgid_plural "Add tags to %(counter)s images"
msgstr[0] "Afegir etiquetes a 1 imatge"
msgstr[1] "Afegir etiquetes a %(counter)s imatges"
msgid "Add tags to images"
msgstr "Afegir etiquetes a les imatges"
msgid "Are you sure you want to tag the following image?"
msgid_plural "Are you sure you want to tag the following images?"
msgstr[0] "N'esteu segur que voleu etiquetar la imatge següent?"
msgstr[1] "N'esteu segur que voleu etiquetar les imatges següents?"
msgid "You don't have permission to add tags to this image"
msgid_plural "You don't have permission to add tags to these images"
msgstr[0] "No teniu permís per afegir etiquetes a aquesta imatge"
msgstr[1] "No teniu permís per afegir etiquetes a aquestes imatges"
msgid "Yes, add"
msgstr "Sí, afegir"
msgid "No, don't add"
msgstr "No afegir"
#, python-format
msgid "Add 1 image to new collection"
msgid_plural "Add %(counter)s images to new collection"
msgstr[0] "Afegir 1 imatge a la nova col·lecció"
msgstr[1] "Afegir %(counter)s imatges a la nova col·lecció"
msgid "Add images to collection"
msgstr "Afegir imatges a una col·lecció"
msgid ""
"Are you sure you want to add the following image to the selected collection?"
msgid_plural ""
"Are you sure you want to add the following images to the selected collection?"
msgstr[0] ""
"N'esteu segur que voleu afegir la imatge següent a la col·lecció "
"seleccionada?"
msgstr[1] ""
"N'esteu segur que voleu afegir les imatges següents a la col·lecció "
"seleccionada?"
msgid "You don't have permission to add this image to a collection"
msgid_plural "You don't have permission to add these images to a collection"
msgstr[0] "No teniu permís per afegir aquesta imatge a la col·lecció"
msgstr[1] "No teniu permís per afegir aquestes imatges a la col·lecció"
#, python-format
msgid "Delete 1 image"
msgid_plural "Delete %(counter)s images"
msgstr[0] "Esborrar 1 imatge"
msgstr[1] "Esborrar %(counter)s imatges"
msgid "Delete images"
msgstr "Esborrar imatges"
msgid "Are you sure you want to delete this image?"
msgid_plural "Are you sure you want to delete these images?"
msgstr[0] "Esteu segur de voler esborrar aquesta imatge?"
msgstr[1] "Esteu segur de voler esborrar aquestes imatges?"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "Utilitzat %(usage_count)s vegada"
msgstr[1] "Utilitzat %(usage_count)s vegades"
msgid "You don't have permission to delete this image"
msgid_plural "You don't have permission to delete these images"
msgstr[0] "No teniu permís per esborrar aquesta imatge"
msgstr[1] "No teniu permís per esborrar aquestes imatges"
msgid "Yes, delete"
msgstr "Si, esborra"
msgid "No, don't delete"
msgstr "No, no esborrar"
msgid "Popular tags"
msgstr "Tags populars"
msgid ""
"Upload successful. However, your new image seems to be a duplicate of an "
"existing image. You may delete it if it wasn't required."
msgstr ""
"S'ha pujat correctament. Tot i això, la nova imatge sembla ser un duplicat "
"d'una imatge existent. Podeu esborrar-la si no és necessària."
msgid "Existing"
msgstr "Existent"
msgid "New"
msgstr "Nou"
msgid "Use new image"
msgstr "Utilitzar la nova imatge"
msgid "Use existing and delete new"
msgstr "Utilitzar l'existent i esborrar la nova"
msgid "Latest images"
msgstr "Últimes imatges"
#, python-format
msgid "Select %(title)s"
msgstr "Seleccionar %(title)s"
msgid "You haven't uploaded any images in this collection."
msgstr "No heu pujat cap imatge en aquesta col·lecció."
msgid "You haven't uploaded any images."
msgstr "No heu pujat cap imatge."
msgid ""
"Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>upload one now</a>?"
msgstr ""
"Per què no <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>pujar-ne un ara</a>?"
msgid "Choose a format"
msgstr "Escull un fomat"
msgid "Insert image"
msgstr "Insereix una imatge"
#, python-format
msgid ""
"<span>%(total)s</span> Image <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgid_plural ""
"<span>%(total)s</span> Images <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgstr[0] ""
"<span>%(total)s</span> Imatge <span class=\"w-sr-only\">creada a "
"%(site_name)s</span>"
msgstr[1] ""
"<span>%(total)s</span> Imatges <span class=\"w-sr-only\">creades a "
"%(site_name)s</span>"
msgid "Change image file:"
msgstr "Canviar fitxer d'imatge:"
msgid "Add an image"
msgstr "Afegeix una imatge"
msgid "Add image"
msgstr "Afegeix imatge"
msgid "Save"
msgstr "Desa"
msgid "Keep new image"
msgstr "Mantenir la nova imatge"
msgid "Delete new image"
msgstr "Esborrar la nova imatge"
#, python-format
msgid "Editing image %(title)s"
msgstr "Editant imatge %(title)s"
msgid "Editing"
msgstr "Editant"
msgid "Delete image"
msgstr "Esborra imatge"
msgid "Image focal point"
msgstr "Punt focal de la imatge"
msgid "URL Generator"
msgstr "Generador d'URL"
msgid "Focal point"
msgstr "Punt focal"
msgid "(optional)"
msgstr "(opcional)"
msgid ""
"To define this image's most important region, drag a box over the image "
"above."
msgstr ""
"Per definir la regió més important d'aquesta imatge, arrossegueu un quadre "
"sobre la imatge de dalt."
msgid "Current focal point shown"
msgstr "Punt focal actual mostrat"
msgid "Remove focal area"
msgstr "Esborrar l'àrea focal"
msgid "Max dimensions"
msgstr "Dimensions màximes"
msgid "Filesize"
msgstr "Mida de fitxer"
msgid "File not found"
msgstr "No s'ha trobat el fitxer"
msgid "Usage"
msgstr "Ús"
msgid "Sort by"
msgstr "Odenar per"
msgid "Select all images in listing"
msgstr "Seleccionar totes les imatges de la llista"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr "Ho sentim, cap imatge coincideix amb \"<em>%(query_string)s</em>\""
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"No heu pujat cap imatge a aquesta col·lecció. Per què no en <a "
"href=\"%(wagtailimages_add_image_url)s\">pugeu una ara</a>?"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"No heu pujat cap imatge. Per què no en <a "
"href=\"%(wagtailimages_add_image_url)s\">pugeu una ara</a>?"
msgid "Preview"
msgstr "Previsualització"
msgid "URL"
msgstr "URL"
msgid "Image URL"
msgstr "URL d'imatge"
msgid "Copy URL"
msgstr "Copiar URL"
msgid "Copied to clipboard"
msgstr "S'ha copiat al porta-retalls"
msgid "Copying to clipboard failed"
msgstr "Ha fallat la còpia al porta-retalls"
msgid "Add multiple images"
msgstr "Afegir diverses imatges"
msgid "Add images"
msgstr "Afegir imatges"
msgid "Drag and drop images into this area to upload immediately."
msgstr ""
"Arrossegueu i deixeu anar imatges en aquesta àrea per pujar-les "
"immediatament."
msgid "Or choose from your computer"
msgstr "O trieu del vostre ordinador"
msgid "Add to collection:"
msgstr "Afegir a la col·lecció:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"Pujada finalitzada correctament. Actualitzeu aquesta imatge amb un títol més "
"adequat, si s'escau. També podeu eliminar del tot la imatge si la pujada no "
"era requerida."
msgid ""
"Upload successful. However, your new image seems to be a duplicate of this "
"existing image. You may delete it if it wasn't required."
msgstr ""
"S'ha pujat correctament. Tot i això, la nova imatge sembla ser un duplicat "
"d'una imatge existent. Podeu esborrar-la si no és necessària."
msgid "Sorry, upload failed."
msgstr "La pujada ha fallat."
msgid "Server Error"
msgstr "Error del servidor"
msgid ""
"Report this error to your website administrator with the following "
"information:"
msgstr ""
"Informar d'aquest error a l'administrador web amb la informació següent:"
msgid "Image updated."
msgstr "Imatge actualitzada."
msgid "Image permissions"
msgstr "Permisos d'imatge"
msgid "Add an image permission"
msgstr "Afegir un permís d'imatge"
msgid "Tags"
msgstr "Tags"
msgid "Tag"
msgstr "Etiqueta"
msgid "Add tags to the selected images"
msgstr "Afegir etiquetes a les imatges seleccionades"
#, python-format
msgid "New tags have been added to %(num_parent_objects)d image"
msgid_plural "New tags have been added to %(num_parent_objects)d images"
msgstr[0] "S'han afegit etiquetes noves a %(num_parent_objects)d imatge"
msgstr[1] "S'han afegit etiquetes noves a %(num_parent_objects)d imatges"
msgid "Add to collection"
msgstr "Afegir a col·lecció"
msgid "Add selected images to collection"
msgstr "Afegir les imatges seleccionades a la col·lecció"
#, python-format
msgid "%(num_parent_objects)d image has been added to %(collection)s"
msgid_plural "%(num_parent_objects)d images have been added to %(collection)s"
msgstr[0] "S'ha afegit %(num_parent_objects)d imatge a %(collection)s"
msgstr[1] "S'han afegit %(num_parent_objects)d imatges a %(collection)s"
msgid "Delete"
msgstr "Eliminar"
msgid "Delete selected images"
msgstr "Esborrar les imatges seleccionades"
#, python-format
msgid "%(num_parent_objects)d image has been deleted"
msgid_plural "%(num_parent_objects)d images have been deleted"
msgstr[0] "S'ha esborrat %(num_parent_objects)d imatge"
msgstr[1] "S'han esborrat %(num_parent_objects)d imatges"
msgid "Upload"
msgstr "Puja"
msgid "Uploading…"
msgstr "Pujant…"
msgid "Choose an image"
msgstr "Escull una imatge"
msgid "Choose another image"
msgstr "Escull una altra imatge"
msgid "Edit this image"
msgstr "Editar aquesta imatge"
msgid "Newest"
msgstr "Les més noves"
msgid "Oldest"
msgstr "Les més antigues"
msgid "Title: (A -> Z)"
msgstr "Títol: (A -> Z)"
msgid "Title: (Z -> A)"
msgstr "Títol: (Z -> A)"
msgid "File size: (low to high)"
msgstr "Mida de fitxer: (menor a major)"
msgid "File size: (high to low)"
msgstr "Mida de fitxer: (major a menor)"
msgid "Images"
msgstr "Imatges"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Imatge '%(image_title)s' actualitzada."
msgid "Edit again"
msgstr "Tornar a editar"
msgid "The image could not be saved due to errors."
msgstr "No s'ha pogut desar la imatge."
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr ""
"No s'ha trobat el fitxer origen de la imatge. Canvieu l'origen o elimineu la "
"imatge."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Imatge '%(image_title)s' eliminada."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Imatge '%(image_title)s' afegida."
msgid "The image could not be created due to errors."
msgstr "No s'ha pogut crear la imatge."
msgid "Image"
msgstr "Imatge"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s imatge"
msgstr[1] "%(count)s imatges"
msgid "Change image"
msgstr "Substituir imatge"

View File

@@ -0,0 +1,458 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# IT Management <hudan@itmanagement.cz>, 2018
# IT Management <hudan@itmanagement.cz>, 2018,2020,2024
# IT Management <hudan@itmanagement.cz>, 2020
# Jan Feřtek, 2023
# Jiri Stepanek <stepiiicz@gmail.com>, 2015
# Marek Turnovec <aesculap@gmail.com>, 2016
# Matt Westcott <matthew@torchbox.com>, 2022
# Mirek Zvolský <zvolsky@seznam.cz>, 2019-2021
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: IT Management <hudan@itmanagement.cz>, 2018,2020,2024\n"
"Language-Team: Czech (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Wagtail images"
msgstr "Wagtail obrázky"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"Podporované formáty: %(supported_formats)s. Maximální velikost souboru: "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "Podporované formáty: %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr ""
"Nepodporovaný formát obrázku. Podporovány jsou formáty %(supported_formats)s"
#, python-format
msgid ""
"Not a valid .%(extension)s image. The extension does not match the file "
"format (%(image_format)s)"
msgstr ""
"Neplatný obrázek typu .%(extension)s. Přípona neodpovídá formátu souboru "
"(%(image_format)s)"
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"Soubor je příliš velký (%(file_size)s). Maximální velikost souboru "
"%(max_filesize)s."
#, python-format
msgid ""
"This file has too many pixels (%(num_pixels)s). Maximum pixels "
"%(max_pixels_count)s."
msgstr ""
"Soubor má příliš mnoho bodů (%(num_pixels)s). Maximum je "
"%(max_pixels_count)s."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr "Soubor je příliš velký. Maximální velikost souboru %(max_filesize)s."
msgid "Full width"
msgstr "Plná šířka"
msgid "Left-aligned"
msgstr "Zarovnané doleva"
msgid "Right-aligned"
msgstr "Zarovnané doprava"
msgid "Collection"
msgstr "Soubor (kolekce)"
msgid "Format"
msgstr "Formát"
msgid "Image is decorative"
msgstr "Obrázek je dekorační"
msgid "Alt text"
msgstr "Alternativní text"
msgid "Please add some alt text for your image or mark it as decorative"
msgstr ""
"Prosím buď zadejte alternativní text pro váš obrázek a nebo jej označte jako "
"dekorační"
msgid "Filter"
msgstr "Filtr"
msgid "Original size"
msgstr "Původní velikost"
msgid "Resize to width"
msgstr "Přizpůsobit šířku"
msgid "Resize to height"
msgstr "Přizpůsobit výšku"
msgid "Resize to min"
msgstr "Zvětšit na minimální velikost"
msgid "Resize to max"
msgstr "Zmenšit na maximální velikost"
msgid "Resize to fill"
msgstr "Vyplnit obdélník"
msgid "Width"
msgstr "Šířka"
msgid "Height"
msgstr "Výška"
msgid "Closeness"
msgstr "Přiblížení"
msgid "Add"
msgstr "Přidat"
msgid "Add/edit images you own"
msgstr "Přidat/upravit své obrázky"
msgid "Edit"
msgstr "Upravit"
msgid "Edit any image"
msgstr "Upravit jakýkoliv obrázek"
msgid "Choose"
msgstr "Vyber"
msgid "Select images in choosers"
msgstr "Vyber obrázky pomocí výběrových prvků"
msgid "title"
msgstr "název"
msgid "file"
msgstr "soubor"
msgid "width"
msgstr "šířka"
msgid "height"
msgstr "výška"
msgid "created at"
msgstr "vytvořeno"
msgid "uploaded by user"
msgstr "nahráno uživatelem"
msgid "tags"
msgstr "Štítky"
msgid "image"
msgstr "obrázek"
msgid "images"
msgstr "obrázky"
#, python-format
msgid "Add tags to 1 image"
msgid_plural "Add tags to %(counter)s images"
msgstr[0] "Přidat štítky k 1 obrázku"
msgstr[1] "Přidat štítky k %(counter)s obrázkům"
msgstr[2] "Přidat štítky k %(counter)s obrázkům"
msgstr[3] "Přidat štítky k %(counter)s obrázkům"
msgid "Add tags to images"
msgstr "Přidat štítky k obrázkům"
msgid "Are you sure you want to tag the following image?"
msgid_plural "Are you sure you want to tag the following images?"
msgstr[0] "Opravdu chcete oštítkovat následující obrázek? "
msgstr[1] "Opravdu chcete oštítkovat následující obrázky? "
msgstr[2] "Opravdu chcete oštítkovat následující obrázky? "
msgstr[3] "Opravdu chcete oštítkovat následující obrázky? "
msgid "You don't have permission to add tags to this image"
msgid_plural "You don't have permission to add tags to these images"
msgstr[0] "Nemáte oprávnění přidávat k tomuto obrázku štítky"
msgstr[1] "Nemáte oprávnění přidávat k těmto obrázkům štítky"
msgstr[2] "Nemáte oprávnění přidávat k těmto obrázkům štítky"
msgstr[3] "Nemáte oprávnění přidávat k těmto obrázkům štítky"
msgid "Yes, add"
msgstr "Ano, přidat"
msgid "No, don't add"
msgstr "Ne, nepřidávat"
#, python-format
msgid "Add 1 image to new collection"
msgid_plural "Add %(counter)s images to new collection"
msgstr[0] "Přidat 1 obrázek do nové kolekce "
msgstr[1] "Přidat %(counter)s obrázky do nové kolekce"
msgstr[2] "Přidat %(counter)s obrázku do nové kolekce"
msgstr[3] "Přidat %(counter)s obrázků do nové kolekce"
msgid "Add images to collection"
msgstr "Přidat obrázky do kolekce"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "Použito %(usage_count)sx"
msgstr[1] "Použito %(usage_count)sx"
msgstr[2] "Použito %(usage_count)sx"
msgstr[3] "Použito %(usage_count)sx"
msgid "Yes, delete"
msgstr "Ano, smazat"
msgid "No, don't delete"
msgstr "Ne, nemazat"
msgid "Popular tags"
msgstr "Oblíbené štítky"
msgid "Existing"
msgstr "Existující"
msgid "New"
msgstr "Nový"
msgid "Latest images"
msgstr "Poslední obrázky"
msgid "Choose a format"
msgstr "Zvolte formát"
msgid "Insert image"
msgstr "Vložit obrázek"
msgid "Change image file:"
msgstr "Změnit soubor obrázku:"
msgid "Add an image"
msgstr "Přidat obrázek"
msgid "Add image"
msgstr "Přidat obrázek"
msgid "Save"
msgstr "Uložit"
#, python-format
msgid "Editing image %(title)s"
msgstr "Úprava obrázku %(title)s"
msgid "Editing"
msgstr "Úprava"
msgid "Delete image"
msgstr "Smazat obrázek"
msgid "URL Generator"
msgstr "Generátor URL"
msgid "Focal point"
msgstr "Bod pro ostření"
msgid "(optional)"
msgstr "(volitelné)"
msgid ""
"To define this image's most important region, drag a box over the image "
"above."
msgstr ""
"Určete nejdůležitější oblast obrázku tím, že přesunete box nad obrázkem."
msgid "Current focal point shown"
msgstr "Zobrazen aktuální středový bod"
msgid "Remove focal area"
msgstr "Odstranit středovou oblast"
msgid "Max dimensions"
msgstr "Maximální rozměry"
msgid "Filesize"
msgstr "Velikost souboru"
msgid "File not found"
msgstr "Soubor nenalezen"
msgid "Usage"
msgstr "Použití"
msgid "Sort by"
msgstr "Řadit podle"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr ""
"Bohužel, výrazu <em>\"%(query_string)s\"</em> neodpovídají žádné obrázky"
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"V kolekci nebyly nalezeny žádné obrázky. Nový obrázek můžete přidat <a "
"href=\"%(wagtailimages_add_image_url)s\">zde</a>."
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Nebyly nalezeny žádné obrázky. Nový obrázek můžete přidat <a "
"href=\"%(wagtailimages_add_image_url)s\">zde</a>."
msgid "Preview"
msgstr "Náhled"
msgid "URL"
msgstr "URL"
msgid "Add multiple images"
msgstr "Přidat více obrázků"
msgid "Add images"
msgstr "Přidat obrázky"
msgid "Drag and drop images into this area to upload immediately."
msgstr ""
"Chcete-li nahrát obrázky na server, přetáhněte je myší do této oblasti."
msgid "Or choose from your computer"
msgstr "Nebo zvolte soubor ve vašem počítači"
msgid "Add to collection:"
msgstr "Přidat do kolekce:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"Obrázky byly nahrány. Níže můžete upravit titulky, je-li to třeba. Také "
"můžete vybrané obrázky úplně odstranit, jestliže byly nahrány omylem."
msgid "Sorry, upload failed."
msgstr "Nahrání obrázků na server selhalo."
msgid "Server Error"
msgstr "Chyba serveru"
msgid "Image updated."
msgstr "Obrázek aktualizován."
msgid "Image permissions"
msgstr "Oprávnění obrázku"
msgid "Add an image permission"
msgstr "Přidat oprávnění obrázku"
msgid "Tags"
msgstr "Tagy"
msgid "Delete"
msgstr "Smazat"
msgid "Upload"
msgstr "Nahrát"
msgid "Uploading…"
msgstr "Nahrávání…"
msgid "Choose an image"
msgstr "Zvolit obrázek"
msgid "Choose another image"
msgstr "Zvolit jiný obrázek"
msgid "Edit this image"
msgstr "Upravit tento obrázek"
msgid "Newest"
msgstr "Nejnovější"
msgid "Oldest"
msgstr "Nejstarší"
msgid "Title: (A -> Z)"
msgstr "Název: (A -> Z)"
msgid "Title: (Z -> A)"
msgstr "Název: (Z -> A)"
msgid "File size: (low to high)"
msgstr "Velikost souboru (vzestupně)"
msgid "File size: (high to low)"
msgstr "Velikost souboru (sestupně)"
msgid "Images"
msgstr "Obrázky"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Obrázek '%(image_title)s' byl upraven."
msgid "Edit again"
msgstr "Upravit znovu"
msgid "The image could not be saved due to errors."
msgstr "Obrázek nelze uložit, zkontrolujte správné vyplnění polí."
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr ""
"Zdrojový soubor obrázku není možné nalézt. Prosím změňte zdroj nebo obrázek "
"smažte."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Obrázek '%(image_title)s' byl smazán."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Obrázek '%(image_title)s' byl přidán."
msgid "The image could not be created due to errors."
msgstr "Obrázek nelze vytvořit, zkontrolujte správné vyplnění polí."
msgid "Image"
msgstr "Obrázek"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s obrázek"
msgstr[1] "%(count)s obrázky"
msgstr[2] "%(count)s obrázků"
msgstr[3] "%(count)s obrázků"
msgid "Change image"
msgstr "Změnit obrázek"

View File

@@ -0,0 +1,501 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Adam Hughes <adamhughes31@gmail.com>, 2020
# Philip Crisp, 2022
# Philip Crisp, 2022
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Philip Crisp, 2022\n"
"Language-Team: Welsh (http://app.transifex.com/torchbox/wagtail/language/"
"cy/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cy\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != "
"11) ? 2 : 3;\n"
msgid "Wagtail images"
msgstr "Delweddau Wagtail"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"Fformatau a gefnogir: %(supported_formats)s. Maint ffeil mwyaf: "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "Fformatau a gefnogir: %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr ""
"Nid yw'n fformat delwedd a gefnogir. Fformatau a gefnogir: "
"%(supported_formats)s."
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"Mae'r ffeil hon yn rhu fawr (%(file_size)s). Maint ffeil fwyaf "
"%(max_filesize)s."
#, python-format
msgid ""
"This file has too many pixels (%(num_pixels)s). Maximum pixels "
"%(max_pixels_count)s."
msgstr ""
"Mae gormod o bicseli yn y ffeil hon (%(num_pixels)s). Uchafswm picsel "
"%(max_pixels_count)s."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr "Mae'r ffeil hon yn rhy fawr. Maint ffeil mwyaf %(max_filesize)s."
msgid "Full width"
msgstr "Lled llawn"
msgid "Left-aligned"
msgstr "Wedi'i alinio i'r chwith"
msgid "Right-aligned"
msgstr "Wedi'i alinio i'r dde"
msgid "Collection"
msgstr "Casgliad"
msgid "Format"
msgstr "Fformat"
msgid "Image is decorative"
msgstr "Mae'r llun yn addurniadol"
msgid "Alt text"
msgstr "Testun amgen"
msgid "Please add some alt text for your image or mark it as decorative"
msgstr ""
"Ychwanegwch destun amgen ar gyfer eich delwedd neu ei nodi fel addurnol"
msgid "Filter"
msgstr "Hidlydd"
msgid "Original size"
msgstr "Maint gwreiddiol"
msgid "Resize to width"
msgstr "Newid maint i led"
msgid "Resize to height"
msgstr "Newid maint i uchder"
msgid "Resize to min"
msgstr "Newid maint i'r lleiafswm"
msgid "Resize to max"
msgstr "Newid maint i uchafswm"
msgid "Resize to fill"
msgstr "Newid maint i lenwi"
msgid "Width"
msgstr "Lled"
msgid "Height"
msgstr "Uchder"
msgid "Closeness"
msgstr "Agosrwydd"
msgid "Add"
msgstr "Ychwanegu"
msgid "Add/edit images you own"
msgstr "Ychwanegu/golygu delweddau sy'n eiddo i chi"
msgid "Edit"
msgstr "Golygu"
msgid "Edit any image"
msgstr "Golygu unrhyw ddelwedd"
msgid "Choose"
msgstr "Dewis"
msgid "Select images in choosers"
msgstr "Dewiswch ddelweddau mewn dewiswyr"
msgid "title"
msgstr "teitl"
msgid "file"
msgstr "ffeil"
msgid "width"
msgstr "lled"
msgid "height"
msgstr "uchder"
msgid "created at"
msgstr "creu yn"
msgid "uploaded by user"
msgstr "wedi'i uwchlwytho gan ddefnyddiwr"
msgid "tags"
msgstr "tagiau"
msgid "image"
msgstr "delwedd"
msgid "images"
msgstr "delweddau"
msgid "Add tags to images"
msgstr "Ychwanegu tagiau i lluniau"
msgid "Are you sure you want to tag the following image?"
msgid_plural "Are you sure you want to tag the following images?"
msgstr[0] "Ydych chi'n siŵr eich bod am dagio'r llun canlynol?"
msgstr[1] "Ydych chi'n siŵr eich bod am dagio'r lluniau canlynol?"
msgstr[2] "Ydych chi'n siŵr eich bod am dagio'r lluniau canlynol?"
msgstr[3] "Ydych chi'n siŵr eich bod am dagio'r lluniau canlynol?"
msgid "You don't have permission to add tags to this image"
msgid_plural "You don't have permission to add tags to these images"
msgstr[0] "Nid oes gennych ganiatâd i ychwanegu tagiau at y llun hon"
msgstr[1] "Nid oes gennych ganiatâd i ychwanegu tagiau at y lluniau hon"
msgstr[2] "Nid oes gennych ganiatâd i ychwanegu tagiau at y lluniau hon"
msgstr[3] "Nid oes gennych ganiatâd i ychwanegu tagiau at y lluniau hon"
msgid "Yes, add"
msgstr "Ia, ychwanegu"
msgid "No, don't add"
msgstr "Na, paid a ychwanegu"
msgid "Add images to collection"
msgstr "Ychwanegu lluniau i'r casgliad"
msgid ""
"Are you sure you want to add the following image to the selected collection?"
msgid_plural ""
"Are you sure you want to add the following images to the selected collection?"
msgstr[0] ""
"Ydych chi'n siŵr eich bod am ychwanegu'r llun canlynol i'r casgliad a "
"ddewiswyd?"
msgstr[1] ""
"Ydych chi'n siŵr eich bod am ychwanegu'r lluniau canlynol i'r casgliad a "
"ddewiswyd?"
msgstr[2] ""
"Ydych chi'n siŵr eich bod am ychwanegu'r lluniau canlynol i'r casgliad a "
"ddewiswyd?"
msgstr[3] ""
"Ydych chi'n siŵr eich bod am ychwanegu'r lluniau canlynol i'r casgliad a "
"ddewiswyd?"
msgid "You don't have permission to add this image to a collection"
msgid_plural "You don't have permission to add these images to a collection"
msgstr[0] "Nid oes gennych ganiatâd i ychwanegu'r llun hon at gasgliad"
msgstr[1] "Nid oes gennych ganiatâd i ychwanegu'r lluniau hon at gasgliad"
msgstr[2] "Nid oes gennych ganiatâd i ychwanegu'r lluniau hon at gasgliad"
msgstr[3] "Nid oes gennych ganiatâd i ychwanegu'r lluniau hon at gasgliad"
#, python-format
msgid "Delete 1 image"
msgid_plural "Delete %(counter)s images"
msgstr[0] "Dileu 1 llun"
msgstr[1] "Dileu %(counter)s lluniau"
msgstr[2] "Dileu %(counter)s lluniau"
msgstr[3] "Dileu %(counter)s lluniau"
msgid "Delete images"
msgstr "Dileu lluniau"
msgid "Are you sure you want to delete this image?"
msgid_plural "Are you sure you want to delete these images?"
msgstr[0] "Ydych chi'n siŵr eich bod am ddileu'r llun hon?"
msgstr[1] "Ydych chi'n siŵr eich bod am ddileu'r lluniau hyn?"
msgstr[2] "Ydych chi'n siŵr eich bod am ddileu'r lluniau hyn?"
msgstr[3] "Ydych chi'n siŵr eich bod am ddileu'r lluniau hyn?"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "Wedi defnyddio %(usage_count)s waith"
msgstr[1] "Wedi defnyddio %(usage_count)s o weithiau"
msgstr[2] "Wedi defnyddio %(usage_count)s o weithiau"
msgstr[3] "Wedi defnyddio %(usage_count)s o weithiau"
msgid "You don't have permission to delete this image"
msgid_plural "You don't have permission to delete these images"
msgstr[0] "Nid oes gennych ganiatâd i ddileu'r llun yma"
msgstr[1] "Nid oes gennych ganiatâd i ddileu'r lluniau hyn"
msgstr[2] "Nid oes gennych ganiatâd i ddileu'r lluniau hyn"
msgstr[3] "Nid oes gennych ganiatâd i ddileu'r lluniau hyn"
msgid "Yes, delete"
msgstr "Ia, dileu"
msgid "No, don't delete"
msgstr "Na, peidiwch a ddileu"
msgid "Popular tags"
msgstr "Tagiau poblogaidd"
msgid "New"
msgstr "Newydd"
msgid "Latest images"
msgstr "Lluniau diweddaraf"
msgid "Choose a format"
msgstr "Dewisiwch fformat"
msgid "Insert image"
msgstr "Mewnosod llun"
msgid "Change image file:"
msgstr "Newid ffeil llun:"
msgid "Add an image"
msgstr "Ychwanegu llun"
msgid "Add image"
msgstr "Ychwanegu llun"
msgid "Save"
msgstr "Cadw"
#, python-format
msgid "Editing image %(title)s"
msgstr "Golygu llun %(title)s"
msgid "Editing"
msgstr "Golygu"
msgid "Delete image"
msgstr "Dileu delwedd"
msgid "URL Generator"
msgstr "Cynhyrchydd URL"
msgid "Focal point"
msgstr "Pwynt ffocws"
msgid "(optional)"
msgstr "(dewisol)"
msgid ""
"To define this image's most important region, drag a box over the image "
"above."
msgstr ""
"I ddiffinio rhanbarth pwysicaf y llun hwn, llusgwch flwch dros y ddelwedd "
"uchod."
msgid "Current focal point shown"
msgstr "Dangosir y canolbwynt presennol"
msgid "Remove focal area"
msgstr "Dileu'r ardal ffocws"
msgid "Max dimensions"
msgstr "Dimensiynau mwyaf"
msgid "Filesize"
msgstr "Maint ffeil"
msgid "File not found"
msgstr "Ffeil heb ei chanfod"
msgid "Usage"
msgstr "Defnydd"
msgid "Select all images in listing"
msgstr "Dewiswch yr holl lluniau yn y rhestr"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr ""
"Mae'n ddrwg gennym, dim lluniau yn cyfateb \"<em>%(query_string)s</em>\""
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Nid ydych wedi uwchlwytho unrhyw lluniau yn y casgliad hwn. Pam ddim <a "
"href=\"%(wagtailimages_add_image_url)s\">uwchlwytho un rwan</a>?"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Nid ydych wedi uwchlwytho unrhyw luniau. Pam ddim <a "
"href=\"%(wagtailimages_add_image_url)s\">uwchlwytho un rwan</a>?"
msgid "Preview"
msgstr "Rhagolwg"
msgid "URL"
msgstr "URL"
msgid "Add multiple images"
msgstr "Ychwanegu lluniau lluosog"
msgid "Add images"
msgstr "Ychwanegu lluniau"
msgid "Drag and drop images into this area to upload immediately."
msgstr "Llusgwch a gollwng lluniau i'r ardal hon i'w huwchlwytho ar unwaith."
msgid "Or choose from your computer"
msgstr "Neu dewiswch o'ch cyfrifiadur"
msgid "Add to collection:"
msgstr "Ychwanegu at y casgliad:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"Llwytho i fyny yn llwyddiannus. Diweddarwch y llun hwn gyda theitl mwy "
"priodol, os oes angen. Gallwch hefyd ddileu'r llun yn gyfan gwbl os nad oedd "
"angen yr uwchlwythiad."
msgid "Sorry, upload failed."
msgstr "Mae'n ddrwg gennym, ni fu modd uwchlwytho."
msgid "Server Error"
msgstr "Gwall Gweinydd"
msgid ""
"Report this error to your website administrator with the following "
"information:"
msgstr ""
"Riportiwch y gwall hwn i weinyddwr eich gwefan gyda'r wybodaeth ganlynol:"
msgid "Image updated."
msgstr "Diweddarwyd y ddelwedd."
msgid "Image permissions"
msgstr "Caniatadau llun"
msgid "Add an image permission"
msgstr "Ychwanegu caniatad llun"
msgid "Tag"
msgstr "Tag"
msgid "Add tags to the selected images"
msgstr "Ychwanegu tagiau at y lluniau a ddewiswyd"
#, python-format
msgid "New tags have been added to %(num_parent_objects)d image"
msgid_plural "New tags have been added to %(num_parent_objects)d images"
msgstr[0] "Mae tagiau newydd wedi eu hychwanegu at %(num_parent_objects)d llun"
msgstr[1] "Mae tagiau newydd wedi eu hychwanegu at %(num_parent_objects)d llun"
msgstr[2] "Mae tagiau newydd wedi eu hychwanegu at %(num_parent_objects)d llun"
msgstr[3] "Mae tagiau newydd wedi eu hychwanegu at %(num_parent_objects)d llun"
msgid "Add to collection"
msgstr "Ychwanegu at casgliad"
msgid "Add selected images to collection"
msgstr "Ychwanegu lluniau dethol i'r casgliad"
#, python-format
msgid "%(num_parent_objects)d image has been added to %(collection)s"
msgid_plural "%(num_parent_objects)d images have been added to %(collection)s"
msgstr[0] ""
"Mae %(num_parent_objects)d llun wedi eu hychwanegu at %(collection)s"
msgstr[1] ""
"Mae %(num_parent_objects)d llun wedi eu hychwanegu at %(collection)s"
msgstr[2] ""
"Mae %(num_parent_objects)d llun wedi eu hychwanegu at %(collection)s"
msgstr[3] ""
"Mae %(num_parent_objects)d llun wedi eu hychwanegu at %(collection)s"
msgid "Delete"
msgstr "Dileu"
msgid "Delete selected images"
msgstr "Dileu lluniau a ddewiswyd"
#, python-format
msgid "%(num_parent_objects)d image has been deleted"
msgid_plural "%(num_parent_objects)d images have been deleted"
msgstr[0] "%(num_parent_objects)d llun wedi'i dileu"
msgstr[1] "%(num_parent_objects)d lluniau wedi'i dileu"
msgstr[2] "%(num_parent_objects)d lluniau wedi'i dileu"
msgstr[3] "%(num_parent_objects)d lluniau wedi'i dileu"
msgid "Upload"
msgstr "Uwchlwytho"
msgid "Uploading…"
msgstr "Wrthi'n uwchlwytho…"
msgid "Choose an image"
msgstr "Dewis delwedd"
msgid "Edit this image"
msgstr "Golygu'r llun hon"
msgid "Images"
msgstr "Delweddau"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Llun '%(image_title)s' wedi'i diweddaru."
msgid "Edit again"
msgstr "Golygu eto"
msgid "The image could not be saved due to errors."
msgstr "Ni fu modd cadw'r llun oherwydd gwallau."
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr ""
"Nid oedd modd dod o hyd i'r ffeil delwedd ffynhonnell. Newidiwch y "
"ffynhonnell neu dilëwch y ddelwedd."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Llun '%(image_title)s' wedi'i dileu."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Llun '%(image_title)s' wedi'i ychwanegu."
msgid "The image could not be created due to errors."
msgstr "Ni fu modd creu'r llun oherwydd gwallau."
msgid "Image"
msgstr "Llun"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s llun"
msgstr[1] "%(count)s lluniau"
msgstr[2] "%(count)s lluniau"
msgstr[3] "%(count)s lluniau"
msgid "Change image"
msgstr "Newid llun"

View File

@@ -0,0 +1,76 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Alt text"
msgstr "Alt text"
msgid "Add"
msgstr "Tilføj"
msgid "Edit"
msgstr "Rediger"
msgid "Choose"
msgstr "Vælg"
msgid "title"
msgstr "Titel"
msgid "file"
msgstr "Fil"
msgid "created at"
msgstr "oprettet"
msgid "uploaded by user"
msgstr "uploaded af en bruger"
msgid "tags"
msgstr "tags"
msgid "Yes, delete"
msgstr "Ja, slet"
msgid "New"
msgstr "Ny"
msgid "Save"
msgstr "Gem"
msgid "Editing"
msgstr "Redigerer"
msgid "Preview"
msgstr "Forhåndsvis"
msgid "URL"
msgstr "URL"
msgid "Server Error"
msgstr "Server Fejl"
msgid "Delete"
msgstr "Slet"
msgid "Upload"
msgstr "Upload"
msgid "Uploading…"
msgstr "Uploading..."

View File

@@ -0,0 +1,622 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# 79353a696ad19dc202b261b3067b7640_bec941e, 2015
# afc855de1dd00c1e4f7aa3cae5754e5d_0bf750b <15c35d934145d5adf5690c1365dd87dc_240248>, 2014
# fd3e232e7013009a14520c2bc2e16691_e19811b, 2018
# Bohreromir, 2019-2020
# Oliver Engel <codeangel@posteo.de>, 2022
# Ettore Atalan <atalanttore@googlemail.com>, 2017,2019-2020
# fd3e232e7013009a14520c2bc2e16691_e19811b, 2018
# Florian Vogt <flori@vorlif.org>, 2023
# Henrik Kröger <hedwig@riseup.net>, 2016,2018
# Oliver Engel <codeangel@posteo.de>, 2021
# Bohreromir, 2020
# Bohreromir, 2019
# Johannes Spielmann <j@spielmannsolutions.com>, 2014-2015
# Krzysztof Jeziorny <github@jeziorny.net>, 2021
# afc855de1dd00c1e4f7aa3cae5754e5d_0bf750b <15c35d934145d5adf5690c1365dd87dc_240248>, 2014
# Matti Borchers, 2022
# mattibo, 2022
# Matt Westcott <matthew@torchbox.com>, 2022
# Max Pfeiffer <max.pfeiffer@alp-phone.ch>, 2015
# Moritz Pfeiffer <moritz@alp-phone.ch>, 2016,2018
# Oliver Engel <codeangel@posteo.de>, 2021-2022
# Oliver Engel <codeangel@posteo.de>, 2021
# pcraston <patrick@craston.com>, 2014
# pcraston <patrick@craston.com>, 2014
# Peter Dreuw <archandha@gmx.net>, 2019
# Stefan Hammer <stefan@hammerworxx.com>, 2022-2024
# Stefan Hammer <stefan@hammerworxx.com>, 2022
# Tammo van Lessen <tvanlessen@gmail.com>, 2015
# Stefan Hammer <stefan@hammerworxx.com>, 2022
# Wasilis Mandratzis-Walz, 2015
# 79353a696ad19dc202b261b3067b7640_bec941e, 2015
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Stefan Hammer <stefan@hammerworxx.com>, 2022-2024\n"
"Language-Team: German (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Wagtail images"
msgstr "Wagtail Bilder"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"Unterstützte Dateiformate: %(supported_formats)s. Maximale Dateigröße: "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "Unterstütze Dateiformate: %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr ""
"Nicht unterstütztes Bildformat. Unterstützte Bildformate: "
"%(supported_formats)s."
#, python-format
msgid ""
"Not a valid .%(extension)s image. The extension does not match the file "
"format (%(image_format)s)"
msgstr ""
"Kein gültiges .%(extension)s-Bild. Die Erweiterung stimmt nicht mit dem "
"Dateiformat überein (%(image_format)s)"
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"Die Datei ist zu groß (%(file_size)s). Maximale Dateigröße %(max_filesize)s."
#, python-format
msgid ""
"This file has too many pixels (%(num_pixels)s). Maximum pixels "
"%(max_pixels_count)s."
msgstr ""
"Dieses Bild hat zu viele Pixel (%(num_pixels)s). Das Maximum ist "
"%(max_pixels_count)s."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr "Die Datei ist zu groß. Maximale Dateigröße %(max_filesize)s."
msgid "Full width"
msgstr "Ganze Breite"
msgid "Left-aligned"
msgstr "Linksbündig"
msgid "Right-aligned"
msgstr "Rechtsbündig"
msgid "Collection"
msgstr "Sammlung"
msgid "Format"
msgstr "Format"
msgid "Image is decorative"
msgstr "Bild ist dekorativ"
msgid "Alt text"
msgstr "Alternativtext"
msgid "Please add some alt text for your image or mark it as decorative"
msgstr ""
"Bitte füge etwas Alternativtext für dein Bild hinzu oder markiere es als "
"dekorativ"
msgid "Filter"
msgstr "Filter"
msgid "Original size"
msgstr "Ursprüngliche Größe"
msgid "Resize to width"
msgstr "Auf Breite anpassen"
msgid "Resize to height"
msgstr "Auf Höhe anpassen"
msgid "Resize to min"
msgstr "Auf Mindestgröße anpassen"
msgid "Resize to max"
msgstr "Auf Maximalgröße anpassen"
msgid "Resize to fill"
msgstr "Anpassen, so dass es die Größe ausfüllt"
msgid "Width"
msgstr "Breite"
msgid "Height"
msgstr "Höhe"
msgid "Closeness"
msgstr "Nähe"
msgid "Add"
msgstr "Hinzufügen"
msgid "Add/edit images you own"
msgstr "Hinzufügen/Bearbeiten von Bildern, die Sie besitzen."
msgid "Edit"
msgstr "Bearbeiten"
msgid "Edit any image"
msgstr "Jedes Bild bearbeiten"
msgid "Choose"
msgstr "Auswählen"
msgid "Select images in choosers"
msgstr "Wähle Bilder im Chooser aus"
msgid "title"
msgstr "Titel"
msgid "file"
msgstr "Datei"
msgid "width"
msgstr "Breite"
msgid "height"
msgstr "Höhe"
msgid "created at"
msgstr "Erstellt am"
msgid "uploaded by user"
msgstr "Hochgeladen von Benutzer"
msgid "tags"
msgstr "Schlagwörter"
msgid "image"
msgstr "Bild"
msgid "images"
msgstr "Bilder"
#, python-format
msgid "Add tags to 1 image"
msgid_plural "Add tags to %(counter)s images"
msgstr[0] "Schlagwörter zu 1 Bild hinzufügen"
msgstr[1] "Schlagwörter zu %(counter)s Bildern hinzufügen"
msgid "Add tags to images"
msgstr "Schlagwörter zu Bildern hinzufügen"
msgid "Are you sure you want to tag the following image?"
msgid_plural "Are you sure you want to tag the following images?"
msgstr[0] "Sind Sie sich sicher, dass Sie das folgende Bild taggen möchten?"
msgstr[1] "Sind Sie sich sicher, dass Sie die folgenden Bilder taggen möchten?"
msgid "You don't have permission to add tags to this image"
msgid_plural "You don't have permission to add tags to these images"
msgstr[0] ""
"Sie haben nicht die Berechtigung, diesem Bild Schlagwörter hinzuzufügen."
msgstr[1] ""
"Sie haben nicht die Berechtigung, diesen Bildern Schlagwörter hinzuzufügen."
msgid "Yes, add"
msgstr "Ja, hinzufügen"
msgid "No, don't add"
msgstr "Nein, nicht hinzufügen"
#, python-format
msgid "Add 1 image to new collection"
msgid_plural "Add %(counter)s images to new collection"
msgstr[0] "1 Bild zur neuen Sammlung hinzufügen"
msgstr[1] "%(counter)s Bilder zur neuen Sammlung hinzufügen"
msgid "Add images to collection"
msgstr "Der Sammlung hinzufügen"
msgid ""
"Are you sure you want to add the following image to the selected collection?"
msgid_plural ""
"Are you sure you want to add the following images to the selected collection?"
msgstr[0] ""
"Sind Sie sich sicher, dass Sie das folgende Bild zur ausgewählten Sammlung "
"hinzufügen möchten?"
msgstr[1] ""
"Sind Sie sich sicher, dass Sie die folgenden Bilder zur ausgewählten "
"Sammlung hinzufügen möchten?"
msgid "You don't have permission to add this image to a collection"
msgid_plural "You don't have permission to add these images to a collection"
msgstr[0] ""
"Sie haben nicht die Berechtigung, dieses Bild einer Sammlung hinzuzufügen"
msgstr[1] ""
"Sie haben nicht die Berechtigung, diese Bilder einer Sammlung hinzuzufügen"
#, python-format
msgid "Delete 1 image"
msgid_plural "Delete %(counter)s images"
msgstr[0] "1 Bild löschen"
msgstr[1] "%(counter)s Bilder löschen"
msgid "Delete images"
msgstr "Bilder löschen"
msgid "Are you sure you want to delete this image?"
msgid_plural "Are you sure you want to delete these images?"
msgstr[0] "Sind Sie sicher, dass Sie dieses Bild löschen möchten?"
msgstr[1] "Sind Sie sicher, dass Sie diese Bilder löschen möchten?"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "%(usage_count)s mal benutzt"
msgstr[1] "%(usage_count)s mal benutzt"
msgid "You don't have permission to delete this image"
msgid_plural "You don't have permission to delete these images"
msgstr[0] "Sie haben nicht die Berechtigung, dieses Bild zu löschen"
msgstr[1] "Sie haben nicht die Berechtigung, diese Bilder zu löschen"
msgid "Yes, delete"
msgstr "Ja, löschen"
msgid "No, don't delete"
msgstr "Nein, nicht löschen"
msgid "Popular tags"
msgstr "Häufig verwendete Schlagwörter"
msgid ""
"Upload successful. However, your new image seems to be a duplicate of an "
"existing image. You may delete it if it wasn't required."
msgstr ""
"Upload erfolgreich. Jedoch dürfte das neue Bild ein Duplikat eines bereits "
"vorhandenen Bildes sein. Sie können es löschen, wenn Sie es nicht benötigen."
msgid "Existing"
msgstr "Vorhanden"
msgid "New"
msgstr "Neu"
msgid "Use new image"
msgstr "Neues Bild verwenden"
msgid "Use existing and delete new"
msgstr "Vorhandenes verwenden und neues löschen"
msgid "Latest images"
msgstr "Neueste Bilder"
#, python-format
msgid "Select %(title)s"
msgstr "%(title)s auswählen"
msgid "You haven't uploaded any images in this collection."
msgstr "Sie haben in dieser Sammlung keine Bilder hochgeladen."
msgid "You haven't uploaded any images."
msgstr "Sie haben noch keine Bilder hochgeladen."
msgid ""
"Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>upload one now</a>?"
msgstr ""
"Warum nicht <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>ein neues hochladen</a>?"
msgid "Choose a format"
msgstr "Wählen Sie ein Format aus"
msgid "Insert image"
msgstr "Bild einfügen"
#, python-format
msgid ""
"<span>%(total)s</span> Image <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgid_plural ""
"<span>%(total)s</span> Images <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgstr[0] ""
"<span>%(total)s</span> Bild <span class=\"w-sr-only\">erstellt in "
"%(site_name)s</span>"
msgstr[1] ""
"<span>%(total)s</span> Bilder <span class=\"w-sr-only\">erstellt in "
"%(site_name)s</span>"
msgid "Change image file:"
msgstr "Bild-Datei ändern: "
msgid "Add an image"
msgstr "Ein Bild hinzufügen"
msgid "Add image"
msgstr "Bild hinzufügen"
msgid "Save"
msgstr "Speichern"
msgid "Keep new image"
msgstr "Neues Bild behalten"
msgid "Delete new image"
msgstr "Neues Bild löschen"
#, python-format
msgid "Editing image %(title)s"
msgstr "Bearbeite Bild %(title)s"
msgid "Editing"
msgstr "Bearbeite"
msgid "Delete image"
msgstr "Bild löschen"
msgid "Image focal point"
msgstr "Bildfokuspunkt"
msgid "URL Generator"
msgstr "URL Generator"
msgid "Focal point"
msgstr "Fokuspunkt"
msgid "(optional)"
msgstr "(optional)"
msgid ""
"To define this image's most important region, drag a box over the image "
"above."
msgstr ""
"Zeichnen Sie eine Box auf dem Bild, um den wichtigsten Bereich des Bildes zu "
"definieren."
msgid "Current focal point shown"
msgstr "Aktueller Fokuspunkt wird angezeigt"
msgid "Remove focal area"
msgstr "Fokusbereich entfernen"
msgid "Max dimensions"
msgstr "Max Dimensionen"
msgid "Filesize"
msgstr "Dateigröße"
msgid "File not found"
msgstr "Datei nicht gefunden"
msgid "Usage"
msgstr "Verwendung"
msgid "Sort by"
msgstr "Sortieren nach"
msgid "Select all images in listing"
msgstr "Alle Bilder in der Aufzählung auswählen"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr ""
"Es gibt leider keine Bilder zum Suchbegriff „<em>%(query_string)s</em>“"
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Sie haben noch keine Bilder in dieser Sammlung hochgeladen. Warum nicht "
"jetzt <a href=\"%(wagtailimages_add_image_url)s\">eines hochladen</a>?"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Sie haben noch keine Bilder hochgeladen. Warum nicht jetzt <a "
"href=\"%(wagtailimages_add_image_url)s\">eines hochladen</a>?"
msgid "Preview"
msgstr "Vorschau"
msgid "URL"
msgstr "URL"
msgid "Image URL"
msgstr "Bild-URL"
msgid "Copy URL"
msgstr "URL kopieren"
msgid "Copied to clipboard"
msgstr "In Zwischenablage kopiert"
msgid "Copying to clipboard failed"
msgstr "Fehler beim Kopieren in die Zwischenablage"
msgid "Add multiple images"
msgstr "Mehrere Bilder hinzufügen"
msgid "Add images"
msgstr "Bilder hinzufügen"
msgid "Drag and drop images into this area to upload immediately."
msgstr "Ziehen Sie Bilder in diesen Bereich, um sie sofort hochzuladen."
msgid "Or choose from your computer"
msgstr "Oder wählen Sie es von Ihrem Computer aus"
msgid "Add to collection:"
msgstr "Der Sammlung hinzufügen:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"Upload erfolgreich. Bitte geben Sie diesem Bild einen passenden Titel. Sie "
"können das Bild auch entfernen, wenn der Upload nicht notwendig war."
msgid ""
"Upload successful. However, your new image seems to be a duplicate of this "
"existing image. You may delete it if it wasn't required."
msgstr ""
"Upload erfolgreich. Jedoch dürfte das neue Bild ein Duplikat dieses bereits "
"vorhandenen Bildes sein. Sie können es löschen, wenn Sie es nicht benötigen."
msgid "Sorry, upload failed."
msgstr "Entschuldigung, der Upload ist fehlgeschlagen."
msgid "Server Error"
msgstr "Server-Fehler"
msgid ""
"Report this error to your website administrator with the following "
"information:"
msgstr ""
"Melden Sie diesen Fehler Ihrem Webseitenadministrator mit der folgenden "
"Information:"
msgid "Image updated."
msgstr "Bild geändert."
msgid "Image permissions"
msgstr "Bild-Berechtigungen"
msgid "Add an image permission"
msgstr "Eine Bild-Berechtigung hinzufügen"
msgid "Tags"
msgstr "Schlagwörter"
msgid "Tag"
msgstr "Schlagwort"
msgid "Add tags to the selected images"
msgstr "Schlagwörter zu den ausgewählten Bildern hinzufügen"
#, python-format
msgid "New tags have been added to %(num_parent_objects)d image"
msgid_plural "New tags have been added to %(num_parent_objects)d images"
msgstr[0] "Neue Schlagwörter wurden%(num_parent_objects)d Bild hinzugefügt"
msgstr[1] "Neue Schlagwörter wurden %(num_parent_objects)d Bildern hinzugefügt"
msgid "Add to collection"
msgstr "Der Sammlung hinzufügen"
msgid "Add selected images to collection"
msgstr "Die markierten Bilder der Sammlung hinzufügen"
#, python-format
msgid "%(num_parent_objects)d image has been added to %(collection)s"
msgid_plural "%(num_parent_objects)d images have been added to %(collection)s"
msgstr[0] "%(num_parent_objects)d Bild wurde %(collection)s hinzugefügt"
msgstr[1] "%(num_parent_objects)d Bilder wurden %(collection)s hinzugefügt"
msgid "Delete"
msgstr "Löschen"
msgid "Delete selected images"
msgstr "Ausgewählte Bilder löschen"
#, python-format
msgid "%(num_parent_objects)d image has been deleted"
msgid_plural "%(num_parent_objects)d images have been deleted"
msgstr[0] "%(num_parent_objects)d Bild wurde gelöscht"
msgstr[1] "%(num_parent_objects)d Bilder wurden gelöscht"
msgid "Upload"
msgstr "Hochladen"
msgid "Uploading…"
msgstr "Wird hochgeladen…"
msgid "Choose an image"
msgstr "Bild auswählen"
msgid "Choose another image"
msgstr "Anderes Bild wählen"
msgid "Edit this image"
msgstr "Dieses Bild bearbeiten"
msgid "Newest"
msgstr "Neueste"
msgid "Oldest"
msgstr "Älteste"
msgid "Title: (A -> Z)"
msgstr "Titel: (A -> Z)"
msgid "Title: (Z -> A)"
msgstr "Titel: (Z -> A)"
msgid "File size: (low to high)"
msgstr "Dateigröße: (niedrig bis hoch)"
msgid "File size: (high to low)"
msgstr "Dateigröße: (hoch bis niedrig)"
msgid "Images"
msgstr "Bilder"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Bild ‚%(image_title)s‘ aktualisiert."
msgid "Edit again"
msgstr "Nochmal bearbeiten"
msgid "The image could not be saved due to errors."
msgstr "Aufgrund von Fehlern konnte das Bild nicht gespeichert werden."
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr ""
"Die Bild-Quelldatei konnte nicht gefunden werden. Bitte ändern Sie die "
"Quelle oder löschen Sie das Bild."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Bild ‚%(image_title)s‘ gelöscht."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Bild ‚%(image_title)s‘ hinzugefügt."
msgid "The image could not be created due to errors."
msgstr "Aufgrund von Fehlern konnte das Bild nicht erstellt werden."
msgid "Image"
msgstr "Bild"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s Bild"
msgstr[1] "%(count)s Bilder"
msgid "Change image"
msgstr "Bild ändern"

View File

@@ -0,0 +1,161 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Fauzaan Gasim, 2024
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Fauzaan Gasim, 2024\n"
"Language-Team: Divehi (http://app.transifex.com/torchbox/wagtail/language/"
"dv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: dv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "%(supported_formats)s ސަޕޯޓްކުރާ ފޯމެޓް"
msgid "Collection"
msgstr "ކަލެކްޝަން"
msgid "Alt text"
msgstr "ބަދަލު ލިޔުންކޮޅު"
msgid "Filter"
msgstr "ފިލްޓަރ ކުރޭ"
msgid "Add"
msgstr "އިތުރު"
msgid "Edit"
msgstr "އެޑިޓް"
msgid "Choose"
msgstr "ނަގާ"
msgid "title"
msgstr "ޓައިޓަލް"
msgid "file"
msgstr "ފައިލް"
msgid "created at"
msgstr "އުފެއްދިފައިވަނީ "
msgid "uploaded by user"
msgstr "ޔޫސަރ އަޕްލޯޑް ކޮށްފައި"
msgid "tags"
msgstr "ޓެގްތައް"
msgid "image"
msgstr "އިމޭޖް"
msgid "Yes, add"
msgstr "ލައްބަ އިތުރުކުރޭ"
msgid "No, don't add"
msgstr "ނޫން އިތުރު ނުކުރާތި"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "%(usage_count)sފަހަރު ބޭނުން ކުރެވިއްޖެ"
msgstr[1] " %(usage_count)s ފަހަރު ބޭނުންކުރެވިއްޖެ "
msgid "Yes, delete"
msgstr "ލައްބަ! ފުހެލާ"
msgid "No, don't delete"
msgstr "ނޫން! ފުހެނުލާތި"
msgid "Existing"
msgstr "މިހާރު ހުރި"
msgid "New"
msgstr "އާ"
#, python-format
msgid "Select %(title)s"
msgstr "%(title)s ސެލެކްޓް ކުރޭ"
msgid ""
"Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>upload one now</a>?"
msgstr "މިހާރު އެއްޗެއް އަޕްލޯޑް ކޮށްލަން ވީނު؟"
msgid "Save"
msgstr "ސޭވްކުރޭ"
msgid "Editing"
msgstr "އެޑިޓްކުރަނީ"
msgid "Delete image"
msgstr "އިމޭޖް ޑިލީޓްކުރޭ"
msgid "Filesize"
msgstr "ފައިލް ސައިޒް"
msgid "File not found"
msgstr "ފައިލް ނުފެނުން"
msgid "Usage"
msgstr "ބޭނުންކުރުން"
msgid "Preview"
msgstr "ޕްރިވިއު"
msgid "URL"
msgstr "URL"
msgid "Or choose from your computer"
msgstr "ނުވަތަ ކޮމްޕިއުޓަރުން ޚިޔާރު ކުރޭ"
msgid "Add to collection:"
msgstr "ކަލެކްޝަނަށް އިތުރުކުރޭ:"
msgid "Sorry, upload failed."
msgstr "ސޮރީ، އަޕްލޯޑް ފެއިލްވެއްޖެ."
msgid "Server Error"
msgstr "ސަރވަރ ގެ މައްސަލައެއް ޖެހިއްޖެ"
msgid ""
"Report this error to your website administrator with the following "
"information:"
msgstr "މި އެރަރ ތިރީގައިވާ މަޢުލޫމާތުތަކާއެކު ވެބްސައިޓް އެޑްމިނިސްޓްރޭޓަރަށް ރިޕޯޓްކުރޭ"
msgid "Tags"
msgstr "ޓެގްތައް"
msgid "Tag"
msgstr "ޓެގް"
msgid "Add to collection"
msgstr "ކަލެކްޝަނަށް އިތުރުކުރޭ:"
msgid "Delete"
msgstr "ޑިލީޓްކުރެވޭ"
msgid "Upload"
msgstr "އަޕްލޯޑް ކުރޭ"
msgid "Uploading…"
msgstr "އަޕްލޯޑް ވަނީ . . . "
msgid "Choose an image"
msgstr "އިމޭޖެއް ނަގާ"
msgid "Edit this image"
msgstr "މި އިމޭޖް އެޑިޓްކުރޭ"
msgid "Change image"
msgstr "އިމޭޖް ބަދަލު ކުރޭ"

View File

@@ -0,0 +1,332 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# 79353a696ad19dc202b261b3067b7640_bec941e, 2015
# George Giannoulopoulos <vdotoree@yahoo.gr>, 2015
# jim dal <dimitrisdal@gmail.com>, 2014
# Nick Mavrakis <mavrakis.n@gmail.com>, 2017
# serafeim <serafeim@torchbox.com>, 2014,2016
# serafeim <serafeim@torchbox.com>, 2014,2016
# George Giannoulopoulos <vdotoree@yahoo.gr>, 2015
# Wasilis Mandratzis-Walz, 2015
# 79353a696ad19dc202b261b3067b7640_bec941e, 2015
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: 79353a696ad19dc202b261b3067b7640_bec941e, 2015\n"
"Language-Team: Greek (http://app.transifex.com/torchbox/wagtail/language/"
"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"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"Υποστηριζόμενες μορφες: %(supported_formats)s. Μέγιστο μέγεθος αρχείου: "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "Υποστηριζόμενες μορφές: %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr ""
"Δεν είναι μια υποστηριζόμενη μορφή εικόνας. Υποστηριζόμενες μορφές: "
"%(supported_formats)s."
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"Το αρχείο είναι πολύ μεγάλο (%(file_size)s). Μέγιστο μέγεθος αρχείου "
"%(max_filesize)s."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr ""
"Το αρχείο είναι πολύ μεγάλο. Μέγιστο μέγεθος αρχείου %(max_filesize)s."
msgid "Full width"
msgstr "Πλήρες πλάτος"
msgid "Left-aligned"
msgstr "Στοίχιση αριστερά"
msgid "Right-aligned"
msgstr "Στοίχιση δεξιά"
msgid "Collection"
msgstr "Συλλογή"
msgid "Filter"
msgstr "Φίλτρο"
msgid "Original size"
msgstr "Γνήσιο μέγεθος"
msgid "Resize to width"
msgstr "Αλλαγή μεγέθους σε πλάτος"
msgid "Resize to height"
msgstr "Αλλαγή μεγέθους σε ύψος"
msgid "Resize to min"
msgstr "Αλλαγή μεγέθους σε ελάχ"
msgid "Resize to max"
msgstr "Αλλαγή μεγέθους έως μέγ"
msgid "Resize to fill"
msgstr "Αλλαγή μεγέθους για να αναπληρώσει"
msgid "Width"
msgstr "Πλάτος"
msgid "Height"
msgstr "Υψος"
msgid "Closeness"
msgstr "Εγγύτητα"
msgid "Add"
msgstr "Προσθήκη"
msgid "Add/edit images you own"
msgstr "Προσθήκη/επεξεργασία των εικόνων σας"
msgid "Edit"
msgstr "Επεξεργασία"
msgid "Edit any image"
msgstr "Επεξεργασία όλων των εικόνων"
msgid "Choose"
msgstr "Επιλογή"
msgid "title"
msgstr "τίτλος"
msgid "file"
msgstr "αρχείο"
msgid "width"
msgstr "πλάτος"
msgid "height"
msgstr "ύψος"
msgid "created at"
msgstr "δημιουργία στις"
msgid "uploaded by user"
msgstr "ανέβηκε από το χρήστη"
msgid "tags"
msgstr "ετικέτες"
msgid "image"
msgstr "Εικόνα"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "Χρησιμοποιήθηκε %(usage_count)s φορά/ές"
msgstr[1] "Χρησιμοποιήθηκε %(usage_count)s φορά/ές"
msgid "Yes, delete"
msgstr "Ναι, να διαγραφεί"
msgid "No, don't delete"
msgstr "Ακύρωση διαγραφής"
msgid "Popular tags"
msgstr "Δημοφιλείς ετικέτες"
msgid "New"
msgstr "Καινούργιο"
msgid "Latest images"
msgstr "Τελευταίες εικόνες"
msgid "Choose a format"
msgstr "Επιλογή τύπου"
msgid "Insert image"
msgstr "Εισαγωγή εικόνας"
msgid "Change image file:"
msgstr "Αλλαγή αρχείου εικόνας:"
msgid "Add an image"
msgstr "Προσθήκη εικόνας"
msgid "Add image"
msgstr "Προσθήκη εικόνας"
msgid "Save"
msgstr "Αποθήκευση"
#, python-format
msgid "Editing image %(title)s"
msgstr "Επεξεργασία εικόνας %(title)s"
msgid "Editing"
msgstr "Διόρθωση"
msgid "Delete image"
msgstr "Διαγραφή εικόνας"
msgid "URL Generator"
msgstr "Παραγωγή URL"
msgid "Current focal point shown"
msgstr "Τρέχον εστιακό σημείο παρουσιάζεται"
msgid "Max dimensions"
msgstr "Μέγιστες διαστάσεις"
msgid "Filesize"
msgstr "Μέγεθος Αρχείου"
msgid "File not found"
msgstr "Το αρχείο δεν βρέθηκε"
msgid "Usage"
msgstr "Χρήση"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr ""
"Λυπούμαστε, καμία εικόνα δε ταιριάζει με το \"<em>%(query_string)s</em>\""
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Δεν έχετε ανεβάσει εικόνες στη συλλογή. Θέλετε να <a "
"href=\"%(wagtailimages_add_image_url)s\">ανεβάσετε μία</a>;"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Δεν έχετε ανεβάσει εικόνες. Θέλετε να <a "
"href=\"%(wagtailimages_add_image_url)s\">ανεβάσετε μία</a>?"
msgid "Preview"
msgstr "Προεπισκόπηση"
msgid "URL"
msgstr "URL"
msgid "Add multiple images"
msgstr "Προσθήκη πολλαπλών εικόνων"
msgid "Add images"
msgstr "Προσθήκη εικόνων"
msgid "Drag and drop images into this area to upload immediately."
msgstr ""
"Μεταφέρετε και αποθέστε εικόνες σε αυτόν τον τομέα για να τις ανεβάσετε "
"αμέσως."
msgid "Or choose from your computer"
msgstr "Ή επιλέξτε από τον υπολογιστή σας"
msgid "Add to collection:"
msgstr "Προσθήκη συλλογής:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"Μεταφόρτωση επιτυχής. Ενημερώστε την εικόνα με ένα πιο κατάλληλο τίτλο, αν "
"είναι απαραίτητο. Μπορείτε επίσης να διαγράψετε την εικόνα εντελώς, αν η "
"αποστολή δεν ήταν απαραίτητη."
msgid "Sorry, upload failed."
msgstr "Συγγνώμη, η μεταφόρτωση απέτυχε."
msgid "Server Error"
msgstr "Σφάλμα"
msgid "Image updated."
msgstr "Ενημέρωση εικόνας"
msgid "Image permissions"
msgstr "Άδειες εικόνων"
msgid "Add an image permission"
msgstr "Προσθήκη αδειών εικόνων"
msgid "Tags"
msgstr "Ετικέτες"
msgid "Delete"
msgstr "Διαγραφή"
msgid "Upload"
msgstr "Ανέβασμα"
msgid "Uploading…"
msgstr "Ανέβασμα εικόνας …"
msgid "Choose an image"
msgstr "Επιλέξατε εικόνα"
msgid "Choose another image"
msgstr "Επιλογή άλλης εικόνας"
msgid "Edit this image"
msgstr "Επεξεργασία αυτής της εικόνας"
msgid "Images"
msgstr "Εικόνες"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Η εικόνα '%(image_title)s' ενημερώθηκε."
msgid "Edit again"
msgstr "Επεξεργασία ξανά"
msgid "The image could not be saved due to errors."
msgstr "Δεν ήταν δυνατή η αποθήκευση της εικόνας."
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr ""
"Το αρχείο προέλευσης της εικόνας δεν θα μπορεσε να βρεθεί. Παρακαλούμε να "
"αλλάξετε την πηγή ή να διαγράψετε την εικόνα."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Η εικόνα '%(image_title)s' διαγράφηκε."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Η εικόνα '%(image_title)s' δημιουργήθηκε."
msgid "The image could not be created due to errors."
msgstr "Δεν ήταν δυνατή η δημιουργία της εικόνας."
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s εικόνα"
msgstr[1] "%(count)s εικόνες"

View File

@@ -0,0 +1,707 @@
# 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 <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-07 10:06+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"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"
#: apps.py:12
msgid "Wagtail images"
msgstr ""
#: fields.py:53
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
#: fields.py:59
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr ""
#: fields.py:67
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr ""
#: fields.py:71
#, python-format
msgid ""
"Not a valid .%(extension)s image. The extension does not match the file "
"format (%(image_format)s)"
msgstr ""
#: fields.py:75
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
#: fields.py:79
#, python-format
msgid ""
"This file has too many pixels (%(num_pixels)s). Maximum pixels "
"%(max_pixels_count)s."
msgstr ""
#: fields.py:83
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr ""
#: formats.py:112
msgid "Full width"
msgstr ""
#: formats.py:115
msgid "Left-aligned"
msgstr ""
#: formats.py:118
msgid "Right-aligned"
msgstr ""
#: forms.py:29 views/bulk_actions/add_to_collection.py:13
msgid "Collection"
msgstr ""
#: forms.py:155
msgid "Format"
msgstr ""
#: forms.py:160
msgid "Image is decorative"
msgstr ""
#: forms.py:162
msgid "Alt text"
msgstr ""
#: forms.py:175
msgid "Please add some alt text for your image or mark it as decorative"
msgstr ""
#: forms.py:183
msgid "Filter"
msgstr ""
#: forms.py:185
msgid "Original size"
msgstr ""
#: forms.py:186
msgid "Resize to width"
msgstr ""
#: forms.py:187
msgid "Resize to height"
msgstr ""
#: forms.py:188
msgid "Resize to min"
msgstr ""
#: forms.py:189
msgid "Resize to max"
msgstr ""
#: forms.py:190
msgid "Resize to fill"
msgstr ""
#: forms.py:193
msgid "Width"
msgstr ""
#: forms.py:194
msgid "Height"
msgstr ""
#: forms.py:195
msgid "Closeness"
msgstr ""
#: forms.py:201
msgid "Add"
msgstr ""
#: forms.py:201
msgid "Add/edit images you own"
msgstr ""
#: forms.py:202 views/images.py:357
msgid "Edit"
msgstr ""
#: forms.py:202
msgid "Edit any image"
msgstr ""
#: forms.py:203
msgid "Choose"
msgstr ""
#: forms.py:203
msgid "Select images in choosers"
msgstr ""
#: models.py:257
msgid "title"
msgstr ""
#: models.py:260
msgid "file"
msgstr ""
#: models.py:265
msgid "width"
msgstr ""
#: models.py:266
msgid "height"
msgstr ""
#: models.py:268
msgid "created at"
msgstr ""
#: models.py:272
msgid "uploaded by user"
msgstr ""
#: models.py:280
msgid "tags"
msgstr ""
#: models.py:856
msgid "image"
msgstr ""
#: models.py:857
msgid "images"
msgstr ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_tags.html:4
#, python-format
msgid "Add tags to 1 image"
msgid_plural "Add tags to %(counter)s images"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_tags.html:7
msgid "Add tags to images"
msgstr ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_tags.html:14
msgid "Are you sure you want to tag the following image?"
msgid_plural "Are you sure you want to tag the following images?"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_tags.html:32
msgid "You don't have permission to add tags to this image"
msgid_plural "You don't have permission to add tags to these images"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_tags.html:39
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_to_collection.html:39
msgid "Yes, add"
msgstr ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_tags.html:40
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_to_collection.html:40
msgid "No, don't add"
msgstr ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_to_collection.html:4
#, python-format
msgid "Add 1 image to new collection"
msgid_plural "Add %(counter)s images to new collection"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_to_collection.html:7
msgid "Add images to collection"
msgstr ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_to_collection.html:14
msgid ""
"Are you sure you want to add the following image to the selected collection?"
msgid_plural ""
"Are you sure you want to add the following images to the selected collection?"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_add_to_collection.html:32
msgid "You don't have permission to add this image to a collection"
msgid_plural "You don't have permission to add these images to a collection"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_delete.html:3
#, python-format
msgid "Delete 1 image"
msgid_plural "Delete %(counter)s images"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_delete.html:6
msgid "Delete images"
msgstr ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_delete.html:13
#: views/images.py:330
msgid "Are you sure you want to delete this image?"
msgid_plural "Are you sure you want to delete these images?"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_delete.html:23
#: templates/wagtailimages/images/edit.html:87
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_delete.html:32
msgid "You don't have permission to delete this image"
msgid_plural "You don't have permission to delete these images"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_delete.html:39
#: templates/wagtailimages/images/confirm_delete.html:16
msgid "Yes, delete"
msgstr ""
#: templates/wagtailimages/bulk_actions/confirm_bulk_delete.html:40
#: templates/wagtailimages/images/confirm_delete.html:17
msgid "No, don't delete"
msgstr ""
#: templates/wagtailimages/chooser/chooser.html:12
msgid "Popular tags"
msgstr ""
#: templates/wagtailimages/chooser/confirm_duplicate_upload.html:6
msgid ""
"Upload successful. However, your new image seems to be a duplicate of an "
"existing image. You may delete it if it wasn't required."
msgstr ""
#: templates/wagtailimages/chooser/confirm_duplicate_upload.html:10
msgid "Existing"
msgstr ""
#: templates/wagtailimages/chooser/confirm_duplicate_upload.html:15
msgid "New"
msgstr ""
#: templates/wagtailimages/chooser/confirm_duplicate_upload.html:22
msgid "Use new image"
msgstr ""
#: templates/wagtailimages/chooser/confirm_duplicate_upload.html:32
msgid "Use existing and delete new"
msgstr ""
#: templates/wagtailimages/chooser/results.html:4
msgid "Latest images"
msgstr ""
#: templates/wagtailimages/chooser/results.html:14
#, python-format
msgid "Select %(title)s"
msgstr ""
#: templates/wagtailimages/chooser/results.html:32
msgid "You haven't uploaded any images in this collection."
msgstr ""
#: templates/wagtailimages/chooser/results.html:34
msgid "You haven't uploaded any images."
msgstr ""
#: templates/wagtailimages/chooser/results.html:37
msgid ""
"Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>upload one now</a>?"
msgstr ""
#: templates/wagtailimages/chooser/select_format.html:3
msgid "Choose a format"
msgstr ""
#: templates/wagtailimages/chooser/select_format.html:16
msgid "Insert image"
msgstr ""
#: templates/wagtailimages/homepage/site_summary_images.html:6
#, python-format
msgid ""
"<span>%(total)s</span> Image <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgid_plural ""
"<span>%(total)s</span> Images <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgstr[0] ""
msgstr[1] ""
#: templates/wagtailimages/images/_file_field.html:7
msgid "Change image file:"
msgstr ""
#: templates/wagtailimages/images/add.html:4 views/images.py:63
msgid "Add an image"
msgstr ""
#: templates/wagtailimages/images/add.html:48
msgid "Add image"
msgstr ""
#: templates/wagtailimages/images/add.html:64
#: templates/wagtailimages/images/edit.html:41
#: templates/wagtailimages/images/edit.html:97
msgid "Save"
msgstr ""
#: templates/wagtailimages/images/confirm_duplicate_upload.html:14
msgid "Keep new image"
msgstr ""
#: templates/wagtailimages/images/confirm_duplicate_upload.html:18
msgid "Delete new image"
msgstr ""
#: templates/wagtailimages/images/edit.html:3
#, python-format
msgid "Editing image %(title)s"
msgstr ""
#: templates/wagtailimages/images/edit.html:22
msgid "Editing"
msgstr ""
#: templates/wagtailimages/images/edit.html:43
#: templates/wagtailimages/images/edit.html:99 views/images.py:318
msgid "Delete image"
msgstr ""
#: templates/wagtailimages/images/edit.html:58
msgid "Image focal point"
msgstr ""
#: templates/wagtailimages/images/edit.html:65
msgid "URL Generator"
msgstr ""
#: templates/wagtailimages/images/edit.html:71
msgid "Focal point"
msgstr ""
#: templates/wagtailimages/images/edit.html:71
msgid "(optional)"
msgstr ""
#: templates/wagtailimages/images/edit.html:72
msgid ""
"To define this image's most important region, drag a box over the image "
"above."
msgstr ""
#: templates/wagtailimages/images/edit.html:72
msgid "Current focal point shown"
msgstr ""
#: templates/wagtailimages/images/edit.html:74
msgid "Remove focal area"
msgstr ""
#: templates/wagtailimages/images/edit.html:80
msgid "Max dimensions"
msgstr ""
#: templates/wagtailimages/images/edit.html:82
msgid "Filesize"
msgstr ""
#: templates/wagtailimages/images/edit.html:83
msgid "File not found"
msgstr ""
#: templates/wagtailimages/images/edit.html:85
msgid "Usage"
msgstr ""
#: templates/wagtailimages/images/index.html:14
msgid "Sort by"
msgstr ""
#: templates/wagtailimages/images/index.html:26
msgid "Select all images in listing"
msgstr ""
#: templates/wagtailimages/images/index_results.html:28
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr ""
#: templates/wagtailimages/images/index_results.html:32
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
#: templates/wagtailimages/images/index_results.html:34
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
#: templates/wagtailimages/images/url_generator.html:23
#: templates/wagtailimages/images/url_generator.html:27
msgid "Preview"
msgstr ""
#: templates/wagtailimages/images/url_generator.html:32
msgid "URL"
msgstr ""
#: templates/wagtailimages/images/url_generator.html:35
msgid "Image URL"
msgstr ""
#: templates/wagtailimages/images/url_generator.html:39
msgid "Copy URL"
msgstr ""
#: templates/wagtailimages/images/url_generator.html:43
msgid "Copied to clipboard"
msgstr ""
#: templates/wagtailimages/images/url_generator.html:46
msgid "Copying to clipboard failed"
msgstr ""
#: templates/wagtailimages/multiple/add.html:5
msgid "Add multiple images"
msgstr ""
#: templates/wagtailimages/multiple/add.html:13
msgid "Add images"
msgstr ""
#: templates/wagtailimages/multiple/add.html:18
msgid "Drag and drop images into this area to upload immediately."
msgstr ""
#: templates/wagtailimages/multiple/add.html:23
msgid "Or choose from your computer"
msgstr ""
#: templates/wagtailimages/multiple/add.html:28
msgid "Add to collection:"
msgstr ""
#: templates/wagtailimages/multiple/add.html:62
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
#: templates/wagtailimages/multiple/add.html:64
msgid ""
"Upload successful. However, your new image seems to be a duplicate of this "
"existing image. You may delete it if it wasn't required."
msgstr ""
#: templates/wagtailimages/multiple/add.html:66
msgid "Sorry, upload failed."
msgstr ""
#: templates/wagtailimages/multiple/add.html:68
msgid "Server Error"
msgstr ""
#: templates/wagtailimages/multiple/add.html:69
msgid ""
"Report this error to your website administrator with the following "
"information:"
msgstr ""
#: templates/wagtailimages/multiple/add.html:72
msgid "Image updated."
msgstr ""
#: templates/wagtailimages/permissions/includes/image_permissions_formset.html:5
msgid "Image permissions"
msgstr ""
#: templates/wagtailimages/permissions/includes/image_permissions_formset.html:6
msgid "Add an image permission"
msgstr ""
#: views/bulk_actions/add_tags.py:10
msgid "Tags"
msgstr ""
#: views/bulk_actions/add_tags.py:14
msgid "Tag"
msgstr ""
#: views/bulk_actions/add_tags.py:16
msgid "Add tags to the selected images"
msgstr ""
#: views/bulk_actions/add_tags.py:41
#, python-format
msgid "New tags have been added to %(num_parent_objects)d image"
msgid_plural "New tags have been added to %(num_parent_objects)d images"
msgstr[0] ""
msgstr[1] ""
#: views/bulk_actions/add_to_collection.py:21
msgid "Add to collection"
msgstr ""
#: views/bulk_actions/add_to_collection.py:23
msgid "Add selected images to collection"
msgstr ""
#: views/bulk_actions/add_to_collection.py:54
#, python-format
msgid "%(num_parent_objects)d image has been added to %(collection)s"
msgid_plural "%(num_parent_objects)d images have been added to %(collection)s"
msgstr[0] ""
msgstr[1] ""
#: views/bulk_actions/delete.py:8 views/images.py:183
msgid "Delete"
msgstr ""
#: views/bulk_actions/delete.py:10
msgid "Delete selected images"
msgstr ""
#: views/bulk_actions/delete.py:30
#, python-format
msgid "%(num_parent_objects)d image has been deleted"
msgid_plural "%(num_parent_objects)d images have been deleted"
msgstr[0] ""
msgstr[1] ""
#: views/chooser.py:51 views/chooser.py:318
msgid "Upload"
msgstr ""
#: views/chooser.py:52 views/chooser.py:319
msgid "Uploading…"
msgstr ""
#: views/chooser.py:317 widgets.py:13
msgid "Choose an image"
msgstr ""
#: views/chooser.py:320
msgid "Choose another image"
msgstr ""
#: views/chooser.py:321 widgets.py:15
msgid "Edit this image"
msgstr ""
#: views/images.py:47
msgid "Newest"
msgstr ""
#: views/images.py:48
msgid "Oldest"
msgstr ""
#: views/images.py:49
msgid "Title: (A -> Z)"
msgstr ""
#: views/images.py:50
msgid "Title: (Z -> A)"
msgstr ""
#: views/images.py:51
msgid "File size: (low to high)"
msgstr ""
#: views/images.py:52
msgid "File size: (high to low)"
msgstr ""
#: views/images.py:62 wagtail_hooks.py:52 wagtail_hooks.py:160
msgid "Images"
msgstr ""
#: views/images.py:156
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr ""
#: views/images.py:157
msgid "Edit again"
msgstr ""
#: views/images.py:161
msgid "The image could not be saved due to errors."
msgstr ""
#: views/images.py:178
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr ""
#: views/images.py:336
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr ""
#: views/images.py:354
#, python-format
msgid "Image '%(image_title)s' added."
msgstr ""
#: views/images.py:363
msgid "The image could not be created due to errors."
msgstr ""
#: wagtail_hooks.py:79
msgid "Image"
msgstr ""
#: wagtail_hooks.py:180
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] ""
msgstr[1] ""
#: widgets.py:14
msgid "Change image"
msgstr ""

View File

@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (India) (http://app.transifex.com/torchbox/wagtail/"
"language/en_IN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_IN\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Save"
msgstr "Save"
msgid "Editing"
msgstr "Editing"

View File

@@ -0,0 +1,592 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Amós Oviedo <amos.oviedo@gmail.com>, 2014,2021-2022
# Amós Oviedo <amos.oviedo@gmail.com>, 2014
# Daniel Chimeno <daniel@chimeno.me>, 2015,2017
# Daniel Chimeno <daniel@chimeno.me>, 2015
# Amós Oviedo <amos.oviedo@gmail.com>, 2014
# Joaquín T <joaquintita@gmail.com>, 2014
# Joaquín T <joaquintita@gmail.com>, 2014
# José Luis <alagunajs@gmail.com>, 2015-2016
# José Luis <alagunajs@gmail.com>, 2018
# Mauricio Baeza <python@amigos.email>, 2015
# Mauricio Baeza <python@amigos.email>, 2015
# Oscar Luciano Espirilla Flores, 2020
# Oscar Luciano Espirilla Flores, 2020
# X Bello <xbello@gmail.com>, 2022
# José Luis <alagunajs@gmail.com>, 2016-2017
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: X Bello <xbello@gmail.com>, 2022\n"
"Language-Team: Spanish (http://app.transifex.com/torchbox/wagtail/language/"
"es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? "
"1 : 2;\n"
msgid "Wagtail images"
msgstr "Imágenes Wagtail"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"Formatos soportados: %(supported_formats)s. El tamaño máximo de archivo es: "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "Formatos soportados: %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr ""
"No esta soportado el formato de imagen. Formatos soportados: "
"%(supported_formats)s."
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"Este archivo es demasiado grande (%(file_size)s). El tamaño máximo de "
"archivo es: %(max_filesize)s."
#, python-format
msgid ""
"This file has too many pixels (%(num_pixels)s). Maximum pixels "
"%(max_pixels_count)s."
msgstr ""
"Este archivo contiene muchos pixeles (%(num_pixels)s). Máxima cantidad de "
"pixeles %(max_pixels_count)s."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr ""
"Este archivo es demasiado grande. El tamaño máximo de archivo es: "
"%(max_filesize)s."
msgid "Full width"
msgstr "Ancho completo"
msgid "Left-aligned"
msgstr "Alineado a la izquierda"
msgid "Right-aligned"
msgstr "Alineado a la derecha"
msgid "Collection"
msgstr "Colección"
msgid "Format"
msgstr "Formato"
msgid "Image is decorative"
msgstr "Imagen es decorativa"
msgid "Alt text"
msgstr "Texto alternativo"
msgid "Please add some alt text for your image or mark it as decorative"
msgstr ""
"Por favor añade algún texto alternativo para tu imagen o márcalo como "
"decorativo"
msgid "Filter"
msgstr "Filtro"
msgid "Original size"
msgstr "Tamaño original"
msgid "Resize to width"
msgstr "Redimensionar ancho"
msgid "Resize to height"
msgstr "Redimensionar alto"
msgid "Resize to min"
msgstr "Redimensionar min"
msgid "Resize to max"
msgstr "Redimensionar max"
msgid "Resize to fill"
msgstr "Redimensionar para llenar"
msgid "Width"
msgstr "Ancho"
msgid "Height"
msgstr "Alto"
msgid "Closeness"
msgstr "Proximidad"
msgid "Add"
msgstr "Agregar"
msgid "Add/edit images you own"
msgstr "Añadir/editar tus propias páginas"
msgid "Edit"
msgstr "Editar"
msgid "Edit any image"
msgstr "Editar cualquier imagen"
msgid "Choose"
msgstr "Seleccionar"
msgid "Select images in choosers"
msgstr "Seleccionar imágenes en selectores"
msgid "title"
msgstr "título"
msgid "file"
msgstr "archivo"
msgid "width"
msgstr "ancho"
msgid "height"
msgstr "alto"
msgid "created at"
msgstr "creado el"
msgid "uploaded by user"
msgstr "subido por el usuario"
msgid "tags"
msgstr "etiquetas"
msgid "image"
msgstr "Imagen"
msgid "images"
msgstr "Imágenes"
#, python-format
msgid "Add tags to 1 image"
msgid_plural "Add tags to %(counter)s images"
msgstr[0] "Añadir etiquedas a 1 imagen"
msgstr[1] "Añadir etiquetas a %(counter)s imágenes"
msgstr[2] "Añadir etiquetas a %(counter)s imágenes"
msgid "Add tags to images"
msgstr "Añadir etiquetas a imágenes"
msgid "Are you sure you want to tag the following image?"
msgid_plural "Are you sure you want to tag the following images?"
msgstr[0] "¿Seguro que quieres etiquetar la siguiente imagen?"
msgstr[1] "¿Seguro que quieres etiquetar las siguientes imágenes?"
msgstr[2] "¿Seguro que quieres etiquetar las siguientes imágenes?"
msgid "You don't have permission to add tags to this image"
msgid_plural "You don't have permission to add tags to these images"
msgstr[0] "No tienes permiso para añadir etiquetas a esta imagen"
msgstr[1] "No tienes permiso para añadir etiquetas a estas imágenes"
msgstr[2] "No tienes permiso para añadir etiquetas a estas imágenes"
msgid "Yes, add"
msgstr "Sí, añadir"
msgid "No, don't add"
msgstr "No, no añadir"
#, python-format
msgid "Add 1 image to new collection"
msgid_plural "Add %(counter)s images to new collection"
msgstr[0] "Añadir 1 imagen a nueva colección"
msgstr[1] "Añadir %(counter)s imágenes a nueva colección"
msgstr[2] "Añadir %(counter)s imágenes a nueva colección"
msgid "Add images to collection"
msgstr "Añadir imágenes a colección"
msgid ""
"Are you sure you want to add the following image to the selected collection?"
msgid_plural ""
"Are you sure you want to add the following images to the selected collection?"
msgstr[0] ""
"¿Seguro que quieres añadir la siguientes imagen a la colección seleccionada?"
msgstr[1] ""
"¿Seguro que quieres añadir las siguientes imágenes a la colección "
"seleccionada?"
msgstr[2] ""
"¿Seguro que quieres añadir las siguientes imágenes a la colección "
"seleccionada?"
msgid "You don't have permission to add this image to a collection"
msgid_plural "You don't have permission to add these images to a collection"
msgstr[0] "No tienes permiso para añadir esta imagen a una colección"
msgstr[1] "No tienes permiso para añadir estas imágenes a una colección"
msgstr[2] "No tienes permiso para añadir estas imágenes a una colección"
#, python-format
msgid "Delete 1 image"
msgid_plural "Delete %(counter)s images"
msgstr[0] "Eliminar 1 imagen"
msgstr[1] "Eliminar %(counter)s imágenes"
msgstr[2] "Eliminar %(counter)s imágenes"
msgid "Delete images"
msgstr "Eliminar imágenes"
msgid "Are you sure you want to delete this image?"
msgid_plural "Are you sure you want to delete these images?"
msgstr[0] "¿Seguro que quieres eliminar esta imagen?"
msgstr[1] "¿Seguro que quieres eliminar estas imágenes?"
msgstr[2] "¿Seguro que quieres eliminar estas imágenes?"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "Usado %(usage_count)s vez"
msgstr[1] "Usado %(usage_count)s veces"
msgstr[2] "Usado %(usage_count)s veces"
msgid "You don't have permission to delete this image"
msgid_plural "You don't have permission to delete these images"
msgstr[0] "No tienes permiso para eliminar esta imagen"
msgstr[1] "No tienes permiso para eliminar estas imágenes"
msgstr[2] "No tienes permiso para eliminar estas imágenes"
msgid "Yes, delete"
msgstr "Sí, eliminar"
msgid "No, don't delete"
msgstr "No, no eliminar"
msgid "Popular tags"
msgstr "Etiquetas populares"
msgid ""
"Upload successful. However, your new image seems to be a duplicate of an "
"existing image. You may delete it if it wasn't required."
msgstr ""
"Subida con éxito. De todas formas, la nueva imagen parece un duplicado de "
"una que ya existía. Puedes eliminarla si no era necesaria."
msgid "Existing"
msgstr "Existentes"
msgid "New"
msgstr "Nuevo"
msgid "Use new image"
msgstr "Usar nueva imagen"
msgid "Use existing and delete new"
msgstr "Usar la existente y eliminar la nueva"
msgid "Latest images"
msgstr "Últimas imágenes"
#, python-format
msgid "Select %(title)s"
msgstr "Seleccionar %(title)s"
msgid "You haven't uploaded any images in this collection."
msgstr "No has subido ninguna imagen en esta colección."
msgid "You haven't uploaded any images."
msgstr "No has subido ninguna imagen."
msgid ""
"Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>upload one now</a>?"
msgstr ""
"¿Por qué no <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>subir uno ahora</a>?"
msgid "Choose a format"
msgstr "Selecciona un formato"
msgid "Insert image"
msgstr "Insertar imagen"
msgid "Change image file:"
msgstr "Cambiar archivo de imagen:"
msgid "Add an image"
msgstr "Añadir una imagen"
msgid "Add image"
msgstr "Añadir imagen"
msgid "Save"
msgstr "Guardar"
msgid "Keep new image"
msgstr "Mantener nueva imagen"
msgid "Delete new image"
msgstr "Eliminar nueva imagen"
#, python-format
msgid "Editing image %(title)s"
msgstr "Editando imagen %(title)s"
msgid "Editing"
msgstr "Editando"
msgid "Delete image"
msgstr "Eliminar imagen"
msgid "Image focal point"
msgstr "Punto focal de la imagen"
msgid "URL Generator"
msgstr "Generador de URL"
msgid "Focal point"
msgstr "Punto focal"
msgid "(optional)"
msgstr "(opcional)"
msgid ""
"To define this image's most important region, drag a box over the image "
"above."
msgstr ""
"Para definir la región más importante de esta imagen, arrastre un cuadro "
"sobre la imagen de abajo."
msgid "Current focal point shown"
msgstr "Mostrando punto focal actual"
msgid "Remove focal area"
msgstr "Remover área focal"
msgid "Max dimensions"
msgstr "Dimensiones máximas"
msgid "Filesize"
msgstr "Tamaño de archivo"
msgid "File not found"
msgstr "Archivo no encotrado"
msgid "Usage"
msgstr "Uso"
msgid "Sort by"
msgstr "Ordenar por"
msgid "Select all images in listing"
msgstr "Seleccionar todas las imágenes de la lista"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr ""
"Lo sentimos, no hay coincidencias en las imágenes \"<em>%(query_string)s</"
"em>\""
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"No ha cargado imágenes en esta colección. Por qué no <a "
"href=\"%(wagtailimages_add_image_url)s\"> carga una ahora</a>?"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"No ha cargado imágenes. Por qué no <a "
"href=\"%(wagtailimages_add_image_url)s\"> carga una ahora</a>?"
msgid "Preview"
msgstr "Previsualizar"
msgid "URL"
msgstr "URL"
msgid "Add multiple images"
msgstr "Agregar multiples imágenes"
msgid "Add images"
msgstr "Agregar imágenes"
msgid "Drag and drop images into this area to upload immediately."
msgstr ""
"Arrastrar y soltar las imágenes dentro de esta area para subirlas "
"inmediatamente."
msgid "Or choose from your computer"
msgstr "Ó seleccione desde su ordenador."
msgid "Add to collection:"
msgstr "Añadir a la colección:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"¡Imagen subida exitosamente! Por favor, actualice esta imagen con un título "
"más apropiado si lo cree conveniente. También puede eliminar la imagen "
"completamente si la subida no era necesaria."
msgid ""
"Upload successful. However, your new image seems to be a duplicate of this "
"existing image. You may delete it if it wasn't required."
msgstr ""
"Subida con éxito. De todas formas, la nueva imagen parece un duplicado de "
"esta que ya existía. Puedes eliminarla si no era necesaria."
msgid "Sorry, upload failed."
msgstr "Lo sentimos, su subida ha fallado."
msgid "Server Error"
msgstr "Error de servidor"
msgid ""
"Report this error to your website administrator with the following "
"information:"
msgstr ""
"Reporte este error a su administrador web con la siguiente información:"
msgid "Image updated."
msgstr "Imagen actualizada"
msgid "Image permissions"
msgstr "Permisos de imagen"
msgid "Add an image permission"
msgstr "Añadir un permiso de imagen"
msgid "Tags"
msgstr "Etiquetas"
msgid "Tag"
msgstr "Etiqueta"
msgid "Add tags to the selected images"
msgstr "Añadir etiquetas a las imágenes seleccionadas"
#, python-format
msgid "New tags have been added to %(num_parent_objects)d image"
msgid_plural "New tags have been added to %(num_parent_objects)d images"
msgstr[0] "Nuevas etiquetas han sido añadidas a %(num_parent_objects)d imagen"
msgstr[1] ""
"Nuevas etiquetas han sido añadidas a %(num_parent_objects)d imágenes"
msgstr[2] ""
"Nuevas etiquetas han sido añadidas a %(num_parent_objects)d imágenes"
msgid "Add to collection"
msgstr "Añadir a colección"
msgid "Add selected images to collection"
msgstr "Añadir imágenes seleccionados a colección"
#, python-format
msgid "%(num_parent_objects)d image has been added to %(collection)s"
msgid_plural "%(num_parent_objects)d images have been added to %(collection)s"
msgstr[0] "%(num_parent_objects)d imagen ha sido añadida a %(collection)s"
msgstr[1] "%(num_parent_objects)d imágenes han sido añadidas a %(collection)s"
msgstr[2] "%(num_parent_objects)d imágenes han sido añadidas a %(collection)s"
msgid "Delete"
msgstr "Eliminar"
msgid "Delete selected images"
msgstr "Eliminar imágenes seleccionadas"
#, python-format
msgid "%(num_parent_objects)d image has been deleted"
msgid_plural "%(num_parent_objects)d images have been deleted"
msgstr[0] "%(num_parent_objects)d imagen ha sido eliminada"
msgstr[1] "%(num_parent_objects)d imágenes han sido eliminadas"
msgstr[2] "%(num_parent_objects)d imágenes han sido eliminadas"
msgid "Upload"
msgstr "Subir"
msgid "Uploading…"
msgstr "Subiendo..."
msgid "Choose an image"
msgstr "Seleccionar una imagen"
msgid "Choose another image"
msgstr "Seleccionar otra imagen"
msgid "Edit this image"
msgstr "Editar esta imagen"
msgid "Newest"
msgstr "Más reciente"
msgid "Oldest"
msgstr "Más antigua"
msgid "Title: (A -> Z)"
msgstr "Título: (A -> Z)"
msgid "Title: (Z -> A)"
msgstr "Título: (Z -> A)"
msgid "File size: (low to high)"
msgstr "Tamaño de archivo: (de menor a mayor)"
msgid "File size: (high to low)"
msgstr "Tamaño de archivo: (de mayor a menor)"
msgid "Images"
msgstr "Imágenes"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Imagen '%(image_title)s' actualizada."
msgid "Edit again"
msgstr "Editar de nuevo"
msgid "The image could not be saved due to errors."
msgstr "La imagen no puedo ser guardada debido a errores"
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr ""
"El archivo origen de la imagen no pudo ser encontrado. Por favor, cambia el "
"origen o elimina esta imagen."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Imagen '%(image_title)s' eliminada."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Imagen '%(image_title)s' añadida."
msgid "The image could not be created due to errors."
msgstr "La imagen no pudo ser creada debido a errores."
msgid "Image"
msgstr "Imagen"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s image"
msgstr[1] "%(count)s imagenes"
msgstr[2] "%(count)s imagenes"
msgid "Change image"
msgstr "Cambiar imagen"

View File

@@ -0,0 +1,48 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Latin America) (http://app.transifex.com/torchbox/"
"wagtail/language/es_419/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es_419\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? "
"1 : 2;\n"
msgid "Collection"
msgstr "Colección"
msgid "Add"
msgstr "Añadir"
msgid "Edit"
msgstr "Editar"
msgid "Choose"
msgstr "Seleccionar"
#, python-format
msgid "Select %(title)s"
msgstr "Seleccionar %(title)s"
msgid "Save"
msgstr "Guardar"
msgid "Editing"
msgstr "Editando"
msgid "URL"
msgstr "URL"
msgid "Delete"
msgstr "Borrar"

View File

@@ -0,0 +1,354 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Erlend Eelmets <debcf78e@opayq.com>, 2020
# Erlend Eelmets <debcf78e@opayq.com>, 2020
# Matt Westcott <matthew@torchbox.com>, 2020
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Matt Westcott <matthew@torchbox.com>, 2020\n"
"Language-Team: Estonian (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Wagtail images"
msgstr "Wagtail pildid"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"Toetatud vormingud: %(supported_formats)s. Maksimaalne failisuurus: "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "Toetatud vormingud: %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr "Pole toetatud pildivorming. Toetatud vormingud: %(supported_formats)s."
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"See fail on liiga suur (%(file_size)s). Maksimaalne failisuurus "
"%(max_filesize)s."
#, python-format
msgid ""
"This file has too many pixels (%(num_pixels)s). Maximum pixels "
"%(max_pixels_count)s."
msgstr ""
"Selles failis on liiga palju piksleid (%(num_pixels)s). Maksimaalne piksel "
"%(max_pixels_count)s."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr "See fail on liiga suur. Maksimaalne failisuurus %(max_filesize)s."
msgid "Full width"
msgstr "Täislaius"
msgid "Left-aligned"
msgstr "Joondatud vasakule"
msgid "Right-aligned"
msgstr "Paremale joondatud"
msgid "Collection"
msgstr "Kogumine"
msgid "Alt text"
msgstr "Alt-tekst"
msgid "Filter"
msgstr "Filtreeri"
msgid "Original size"
msgstr "Algne suurus"
msgid "Resize to width"
msgstr "Suuruse muutmine laiuseks"
msgid "Resize to height"
msgstr "Suuruse muutmine suurusele"
msgid "Resize to min"
msgstr "Suuruse muutmine min"
msgid "Resize to max"
msgstr "Suuruse muutmine max"
msgid "Resize to fill"
msgstr "Suuruse muutmiseks täitmiseks"
msgid "Width"
msgstr "Laius"
msgid "Height"
msgstr "Kõrgus"
msgid "Closeness"
msgstr "Lähedus"
msgid "Add"
msgstr "Lisama"
msgid "Add/edit images you own"
msgstr "Lisage / muutke omatavaid pilte"
msgid "Edit"
msgstr "Muuda"
msgid "Edit any image"
msgstr "Muutke suvalist pilti"
msgid "Choose"
msgstr "Valige"
msgid "title"
msgstr "pealkiri"
msgid "file"
msgstr "faili"
msgid "width"
msgstr "laius"
msgid "height"
msgstr "kõrgus"
msgid "created at"
msgstr "loodud aadressil"
msgid "uploaded by user"
msgstr "kasutaja üles laaditud"
msgid "tags"
msgstr "sildid"
msgid "image"
msgstr "pilt"
msgid "images"
msgstr "pilte"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "Kasutatud %(usage_count)s korda"
msgstr[1] "Kasutatud %(usage_count)s korda"
msgid "Yes, delete"
msgstr "Jah, kustuta"
msgid "No, don't delete"
msgstr "Ei, ära kustuta"
msgid "Popular tags"
msgstr "Populaarsed sildid"
msgid "Existing"
msgstr "Olemasolev"
msgid "New"
msgstr "Uus"
msgid "Latest images"
msgstr "Uusimad pildid"
msgid "Choose a format"
msgstr "Valige vorming"
msgid "Insert image"
msgstr "Sisesta pilt"
msgid "Change image file:"
msgstr "Pildifaili muutmine:"
msgid "Add an image"
msgstr "Lisage pilt"
msgid "Add image"
msgstr "Lisa pilt"
msgid "Save"
msgstr "Salvesta"
#, python-format
msgid "Editing image %(title)s"
msgstr "%(title)s redigeerimine"
msgid "Editing"
msgstr "Redigeerimine"
msgid "Delete image"
msgstr "Kustuta pilt"
msgid "URL Generator"
msgstr "URL-i generaator"
msgid "Focal point"
msgstr "Fookuspunkt"
msgid "(optional)"
msgstr "(valikuline)"
msgid ""
"To define this image's most important region, drag a box over the image "
"above."
msgstr ""
"Selle pildi kõige olulisema piirkonna määratlemiseks lohistage kast "
"ülaloleva pildi kohale."
msgid "Current focal point shown"
msgstr "Kuvatud praegune fookuspunkt"
msgid "Remove focal area"
msgstr "Eemaldage fookusala"
msgid "Max dimensions"
msgstr "Maksimaalsed mõõtmed"
msgid "Filesize"
msgstr "Faili suurus"
msgid "File not found"
msgstr "Faili ei leitud"
msgid "Usage"
msgstr "Kasutamine"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr "Vabandust, ükski pilt ei vasta \"<em>%(query_string)s</em>\" päringule"
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Te pole sellesse kogusse ühtegi pilti üles laadinud. Miks mitte <a "
"href=\"%(wagtailimages_add_image_url)s\">seda kohe üles laadida</a>?"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Te pole ühtegi pilti üles laadinud. Miks mitte <a "
"href=\"%(wagtailimages_add_image_url)s\">seda kohe üles laadida</a>?"
msgid "Preview"
msgstr "Eelvaade"
msgid "URL"
msgstr "URL"
msgid "Add multiple images"
msgstr "Lisage mitu pilti"
msgid "Add images"
msgstr "Lisage pilte"
msgid "Drag and drop images into this area to upload immediately."
msgstr "Kohe üleslaadimiseks lohistage pilte sellesse piirkonda."
msgid "Or choose from your computer"
msgstr "Või valige oma arvutist"
msgid "Add to collection:"
msgstr "Lisa kogusse:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"Üleslaadimine õnnestus. Vajadusel värskendage seda pilti sobivama "
"pealkirjaga. Võite ka pildi täielikult kustutada, kui üleslaadimist pole "
"vaja."
msgid "Sorry, upload failed."
msgstr "Vabandust, üleslaadimine ebaõnnestus."
msgid "Server Error"
msgstr "Serveri viga"
msgid "Image updated."
msgstr "Pilt on värskendatud."
msgid "Image permissions"
msgstr "Pildi load"
msgid "Add an image permission"
msgstr "Lisage pildiluba"
msgid "Delete"
msgstr "Kustuta"
msgid "Upload"
msgstr "Laadi üles"
msgid "Uploading…"
msgstr "Üleslaadimine ..."
msgid "Choose an image"
msgstr "Valige pilt"
msgid "Edit this image"
msgstr "Muutke seda pilti"
msgid "Images"
msgstr "Kujutised"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Pilt „%(image_title)s” on värskendatud."
msgid "Edit again"
msgstr "Muuda uuesti"
msgid "The image could not be saved due to errors."
msgstr "Pilti ei õnnestunud vigade tõttu salvestada."
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr "Allikapildifaili ei leitud. Palun muutke allikat või kustutage pilt."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Pilt '%(image_title)s' on kustutatud."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Pilt '%(image_title)s' on lisatud."
msgid "The image could not be created due to errors."
msgstr "Pilti ei saanud vigade tõttu luua."
msgid "Image"
msgstr "Pilt"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s pilt"
msgstr[1] "%(count)s pilti"
msgid "Change image"
msgstr "Muuda pilti"

View File

@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Basque (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Preview"
msgstr "Aurrikusi"
msgid "Delete"
msgstr "Ezabatu"

View File

@@ -0,0 +1,398 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Amir Mahmoodi, 2022
# Amir Mahmoodi, 2022
# Bardia, 2024
# Matt Westcott <matthew@torchbox.com>, 2022
# Mohammad Hossein Mojtahedi <Mhm5000@gmail.com>, 2017
# pyzenberg <pyzenberg@gmail.com>, 2017
# pyzenberg <pyzenberg@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Bardia, 2024\n"
"Language-Team: Persian (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Wagtail images"
msgstr "تصاویر وگتیل"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"فورمت‌های پشتیبانی شده: %(supported_formats)s. حداکثر اندازه فایل: "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "فورمت‌های پشتیبانی‌شده: %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr ""
"فورمت تصویر پشتیبانی نمی‌شود. فورمت های مورد قبول: %(supported_formats)s."
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"این فایل بیش از حد بزرگ است (%(file_size)s). حداکثر ظرفیت ممکن "
"%(max_filesize)s است."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr "این فایل بیش از حد بزرگ است. حداکثر اندازه %(max_filesize)s."
msgid "Full width"
msgstr "عرض کامل"
msgid "Left-aligned"
msgstr "چپ چین"
msgid "Right-aligned"
msgstr "راست چین"
msgid "Collection"
msgstr "مجموعه"
msgid "Alt text"
msgstr "متن جایگزین"
msgid "Filter"
msgstr "صافی"
msgid "Original size"
msgstr "اندازه اصلی"
msgid "Resize to width"
msgstr "ریسایز به طول"
msgid "Resize to height"
msgstr "ریسایز به ارتفاع"
msgid "Resize to min"
msgstr "ریسایز به حداقل"
msgid "Resize to max"
msgstr "ریسایز به حداکثر"
msgid "Resize to fill"
msgstr "ریسایز به پوشاندن"
msgid "Width"
msgstr "عرض"
msgid "Height"
msgstr "طول"
msgid "Closeness"
msgstr "تراکم"
msgid "Add"
msgstr "افزودن"
msgid "Add/edit images you own"
msgstr "افزودن/ویرایش تصاویر خودتان"
msgid "Edit"
msgstr "ویرایش"
msgid "Edit any image"
msgstr "ویرایش هرنوع تصویری"
msgid "Choose"
msgstr "انتخاب کنید"
msgid "title"
msgstr "عنوان"
msgid "file"
msgstr "فایل"
msgid "width"
msgstr "عرض"
msgid "height"
msgstr "ارتفاع"
msgid "created at"
msgstr "ساخته‌شده در"
msgid "uploaded by user"
msgstr "آپلود‌شده توسط کاربر"
msgid "tags"
msgstr "برچسب‌ها"
msgid "image"
msgstr "تصویر"
msgid "images"
msgstr "تصاویر"
msgid "You don't have permission to add tags to this image"
msgid_plural "You don't have permission to add tags to these images"
msgstr[0] "شما مجوز اضافه کردن برچسب به این تصویر را ندارید"
msgstr[1] "شما مجوز اضافه کردن برچسب به این تصاویر را ندارید"
msgid "Yes, add"
msgstr "بله اضافه کن"
msgid "No, don't add"
msgstr "خیر، اضافه نکن"
msgid "Add images to collection"
msgstr "اضافه کردن تصاویر به مجموعه"
msgid "You don't have permission to add this image to a collection"
msgid_plural "You don't have permission to add these images to a collection"
msgstr[0] "شما مجوز اضافه کردن این تصویر به مجموعه را ندارید"
msgstr[1] "شما مجوز اضافه کردن این تصاویر به مجموعه را ندارید"
msgid "Delete images"
msgstr "تصاویر را حذف کن"
msgid "Are you sure you want to delete this image?"
msgid_plural "Are you sure you want to delete these images?"
msgstr[0] "آیا از حذف این تصویر اطمینان دارید؟"
msgstr[1] "آیا از حذف این تصاویر اطمینان دارید؟"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "%(usage_count)s بار استفاده شده"
msgstr[1] "%(usage_count)s بار استفاده شده"
msgid "You don't have permission to delete this image"
msgid_plural "You don't have permission to delete these images"
msgstr[0] "شما مجوز حذف این تصویر را ندارید"
msgstr[1] "شما مجوز حذف این تصاویر را ندارید"
msgid "Yes, delete"
msgstr "بله حذف شود"
msgid "No, don't delete"
msgstr "نه، حذف نکن"
msgid "Popular tags"
msgstr "برچسب های پرتکرار"
msgid "New"
msgstr "جدید"
msgid "Use new image"
msgstr "استفاده از تصویر جدید"
msgid "Latest images"
msgstr "آخرین تصاویر"
#, python-format
msgid "Select %(title)s"
msgstr "انتخاب %(title)s"
msgid ""
"Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>upload one now</a>?"
msgstr ""
"<a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-trigger>یک مورد "
"الآن بارگذاری کنید</a>"
msgid "Choose a format"
msgstr "انتخاب یک فورمت"
msgid "Insert image"
msgstr "درج تصویر"
msgid "Change image file:"
msgstr "تغییر فایل تصویر:"
msgid "Add an image"
msgstr "افزودن تصویر"
msgid "Add image"
msgstr "افزودن تصویر"
msgid "Save"
msgstr "ذخیره"
#, python-format
msgid "Editing image %(title)s"
msgstr "ویرایش تصویر %(title)s"
msgid "Editing"
msgstr "در حال ویرایش"
msgid "Delete image"
msgstr "حذف تصویر"
msgid "URL Generator"
msgstr "نشانی ساز"
msgid "(optional)"
msgstr "(اختیاری)"
msgid "Current focal point shown"
msgstr "نقطه کانونی فعلی نمایش داده شد"
msgid "Remove focal area"
msgstr "حذف منطقه کانونی"
msgid "Max dimensions"
msgstr "حداکثر ابعاد"
msgid "Filesize"
msgstr "اندازه فایل"
msgid "File not found"
msgstr "فایل پیدا نشد"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr "متاسفانه هیچ تصویری با «<em>%(query_string)s</em>» پیدا نشد"
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"هنوز به این مجموعه تصویری آپلود نشده. می‌توانید یکی را الان <a "
"href=\"%(wagtailimages_add_image_url)s\">آپلود</a> کنید"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"هنوز تصویر آپلود نکرده اید. می‌توانید یکی را الان <a "
"href=\"%(wagtailimages_add_image_url)s\">آپلود</a> کنید"
msgid "Preview"
msgstr "پیش‌نمایش"
msgid "URL"
msgstr "URL"
msgid "Add multiple images"
msgstr "افزودن چند تصویر"
msgid "Add images"
msgstr "افزودن تصاویر"
msgid "Drag and drop images into this area to upload immediately."
msgstr "برای آپلود فوری تصاویر را به این محدوده بیاندازید."
msgid "Or choose from your computer"
msgstr "یا از کامپیوتر یکی را انتخاب کنید"
msgid "Add to collection:"
msgstr "افزودن به مجموعه:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"آپلود انجام شد. لطفا عنوانی مناسب برای این تصویر انتخاب کنید. همچنین "
"می‌توانید این تصویر را کاملا پاک کنید اگر آپلود نیاز نبود."
msgid "Sorry, upload failed."
msgstr "متاسفانه آپلود ناموفق بود."
msgid "Server Error"
msgstr "خطای سرور"
msgid "Image updated."
msgstr "تصویر آپلود شد."
msgid "Image permissions"
msgstr "مجوزهای تصویر"
msgid "Add an image permission"
msgstr "افزودن مجوز تصویر"
msgid "Tag"
msgstr "برچسب"
#, python-format
msgid "New tags have been added to %(num_parent_objects)d image"
msgid_plural "New tags have been added to %(num_parent_objects)d images"
msgstr[0] "برچسب های جدید به %(num_parent_objects)d تصویر اضافه شدند"
msgstr[1] "برچسب های جدید به %(num_parent_objects)d تصویر اضافه شدند"
msgid "Delete"
msgstr "حذف"
#, python-format
msgid "%(num_parent_objects)d image has been deleted"
msgid_plural "%(num_parent_objects)d images have been deleted"
msgstr[0] "%(num_parent_objects)d تصویر حذف شد"
msgstr[1] "%(num_parent_objects)d تصویر حذف شد"
msgid "Upload"
msgstr "آپلود"
msgid "Uploading…"
msgstr "در حال آپلود…"
msgid "Choose an image"
msgstr "تصویر را انتخاب کنید"
msgid "Choose another image"
msgstr "تصویر دیگری انتخاب کنید"
msgid "Edit this image"
msgstr "ویرایش این تصویر"
msgid "Images"
msgstr "عکس‌ها"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "تصویر '%(image_title)s' بروزرسانی شد."
msgid "Edit again"
msgstr "ویرایش مجدد"
msgid "The image could not be saved due to errors."
msgstr "به دلیل بروز خطا این تصویر ذخیره نشد."
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr "تصویر منبع پیدا نشد. لطفا منبع را تغییر دهید یا تصویر را حذف نمایید."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "تصویر '%(image_title)s' حذف شد."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "تصویر '%(image_title)s' اضافه شد."
msgid "The image could not be created due to errors."
msgstr "به دلیل بروز خطا تصویر ایجاد نشد."
msgid "Image"
msgstr "تصویر"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s تصویر"
msgstr[1] "%(count)s تصویر"
msgid "Change image"
msgstr "تغییر تصویر"

View File

@@ -0,0 +1,591 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Aarni Koskela, 2016
# Aarni Koskela, 2016
# Eetu Häivälä, 2016-2017
# Jiri Grönroos <jiri.gronroos@iki.fi>, 2021-2024
# Juha Yrjölä <juha.yrjola@iki.fi>, 2016
# Matt Westcott <matthew@torchbox.com>, 2022
# Rauli Laine <rauli.laine@iki.fi>, 2016
# Rauli Laine <rauli.laine@iki.fi>, 2016
# Valter Maasalo <vmaasalo@gmail.com>, 2020
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2021-2024\n"
"Language-Team: Finnish (http://app.transifex.com/torchbox/wagtail/language/"
"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"
msgid "Wagtail images"
msgstr "Wagtailin kuvat"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"Tuetut muodot: %(supported_formats)s. Tiedoston koko voi olla enintään: "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "Tuetut muodot: %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr "Kuvan muoto ei ole tuettu. Tuetut muodot: %(supported_formats)s."
#, python-format
msgid ""
"Not a valid .%(extension)s image. The extension does not match the file "
"format (%(image_format)s)"
msgstr ""
"Ei kelvollinen .%(extension)s-kuva. Tiedostopääte ei vastaa tiedostomuotoa "
"(%(image_format)s)"
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"Tiedosto on liian suuri (%(file_size)s). Tiedoston koko voi olla enintään "
"%(max_filesize)s."
#, python-format
msgid ""
"This file has too many pixels (%(num_pixels)s). Maximum pixels "
"%(max_pixels_count)s."
msgstr ""
"Tässä tiedostossa on liian monta kuvapistettä (%(num_pixels)s). "
"Enimmäismäärä on %(max_pixels_count)s, "
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr ""
"Tiedosto on liian suuri. Tiedoston koko voi olla enintään %(max_filesize)s."
msgid "Full width"
msgstr "Täysi leveys"
msgid "Left-aligned"
msgstr "Tasattu vasemmalle"
msgid "Right-aligned"
msgstr "Tasattu oikealle"
msgid "Collection"
msgstr "Kokoelma"
msgid "Format"
msgstr "Muoto"
msgid "Image is decorative"
msgstr "Kuva on vain koristeellinen"
msgid "Alt text"
msgstr "Vaihtoehtoinen teksti"
msgid "Please add some alt text for your image or mark it as decorative"
msgstr ""
"Lisää kuvalle vaihtoehtoinen teksti tai merkitse se vain koristeelliseksi."
msgid "Filter"
msgstr "Suodatin"
msgid "Original size"
msgstr "Alkuperäinen koko"
msgid "Resize to width"
msgstr "Muuta leveys"
msgid "Resize to height"
msgstr "Muuta korkeus"
msgid "Resize to min"
msgstr "Muuta pienempään suuntaan"
msgid "Resize to max"
msgstr "Muuta suurempaan suuntaan"
msgid "Resize to fill"
msgstr "Muuta täyttämään"
msgid "Width"
msgstr "Leveys"
msgid "Height"
msgstr "Korkeus"
msgid "Closeness"
msgstr "Läheisyys"
msgid "Add"
msgstr "Lisää"
msgid "Add/edit images you own"
msgstr "Lisää/muokkaa kuvia jota omistat"
msgid "Edit"
msgstr "Muokkaa"
msgid "Edit any image"
msgstr "Muokkaa mitä vain kuvaa"
msgid "Choose"
msgstr "Valitse"
msgid "Select images in choosers"
msgstr "Valitse kuvat valitsimissa"
msgid "title"
msgstr "otsikko"
msgid "file"
msgstr "tiedosto"
msgid "width"
msgstr "leveys"
msgid "height"
msgstr "korkeus"
msgid "created at"
msgstr "luotu"
msgid "uploaded by user"
msgstr "lähettänyt käyttäjä"
msgid "tags"
msgstr "tunnisteet"
msgid "image"
msgstr "kuva"
msgid "images"
msgstr "kuvaa"
#, python-format
msgid "Add tags to 1 image"
msgid_plural "Add tags to %(counter)s images"
msgstr[0] "Lisää tunnisteet 1 kuvaan"
msgstr[1] "Lisää tunnisteet %(counter)s kuvaan"
msgid "Add tags to images"
msgstr "Lisää tunnisteet kuviin"
msgid "Are you sure you want to tag the following image?"
msgid_plural "Are you sure you want to tag the following images?"
msgstr[0] "Haluatko varmasti lisätä tunnisteen seuraavaan kuvaan?"
msgstr[1] "Haluatko varmasti lisätä tunnisteen seuraaviin kuviin?"
msgid "You don't have permission to add tags to this image"
msgid_plural "You don't have permission to add tags to these images"
msgstr[0] "Oikeutesi eivät riitä tunnisteiden lisäämiseen tähän kuvaan"
msgstr[1] "Oikeutesi eivät riitä tunnisteiden lisäämiseen näihin kuviin"
msgid "Yes, add"
msgstr "Kyllä, lisää"
msgid "No, don't add"
msgstr "Ei, älä lisää"
#, python-format
msgid "Add 1 image to new collection"
msgid_plural "Add %(counter)s images to new collection"
msgstr[0] "Lisää 1 kuva uuteen kokoelmaan"
msgstr[1] "Lisää %(counter)s kuvaa uuteen kokoelmaan"
msgid "Add images to collection"
msgstr "Lisää kuvia kokoelmaan"
msgid ""
"Are you sure you want to add the following image to the selected collection?"
msgid_plural ""
"Are you sure you want to add the following images to the selected collection?"
msgstr[0] "Haluatko varmasti lisätä seuraavan kuvan valittuun kokoelmaan?"
msgstr[1] "Haluatko varmasti lisätä seuraavat kuvat valittuun kokoelmaan?"
msgid "You don't have permission to add this image to a collection"
msgid_plural "You don't have permission to add these images to a collection"
msgstr[0] "Oikeutesi eivät riitä tämän kuvan lisäämiseksi kokoelmaan"
msgstr[1] "Oikeutesi eivät riitä näiden kuvien lisäämiseen kokoelmaan"
#, python-format
msgid "Delete 1 image"
msgid_plural "Delete %(counter)s images"
msgstr[0] "Poista 1 kuva"
msgstr[1] "Poista %(counter)s kuvaa"
msgid "Delete images"
msgstr "Poista kuvat"
msgid "Are you sure you want to delete this image?"
msgid_plural "Are you sure you want to delete these images?"
msgstr[0] "Haluatko varmasti poistaa tämän kuvan?"
msgstr[1] "Haluatko varmasti poistaa nämä kuvat?"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "Käytetty %(usage_count)s kerran"
msgstr[1] "Käytetty %(usage_count)s kertaa"
msgid "You don't have permission to delete this image"
msgid_plural "You don't have permission to delete these images"
msgstr[0] "Oikeutesi eivät riitä tämän kuvan poistamiseen"
msgstr[1] "Oikeutesi eivät riitä näiden kuvien poistamiseen"
msgid "Yes, delete"
msgstr "Kyllä, poista"
msgid "No, don't delete"
msgstr "Ei, älä poista"
msgid "Popular tags"
msgstr "Suositut tunnisteet"
msgid ""
"Upload successful. However, your new image seems to be a duplicate of an "
"existing image. You may delete it if it wasn't required."
msgstr ""
"Lähetys onnistui. Uusi kuva vaikuttaa kuitenkin olevan kaksoiskappale "
"olemassa olevasta kuvasta. Saatat mahdollisesti haluta poistaa uuden kuvan, "
"jos kaksoiskappale ei ollut tarkoituksellinen."
msgid "Existing"
msgstr "Olemassa oleva"
msgid "New"
msgstr "Uusi"
msgid "Use new image"
msgstr "Käytä uutta kuvaa"
msgid "Use existing and delete new"
msgstr "Käytä olemassa olevaa ja poista uusi"
msgid "Latest images"
msgstr "Tuoreimmat kuvat"
#, python-format
msgid "Select %(title)s"
msgstr "Valitse %(title)s"
msgid "You haven't uploaded any images in this collection."
msgstr "Et ole lähettänyt kuvia tähän kokoelmaan."
msgid "You haven't uploaded any images."
msgstr "Et ole lähettänyt kuvia."
msgid ""
"Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>upload one now</a>?"
msgstr ""
"Mitä jos vaikka <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>lähettäisit kuvan nyt</a>?"
msgid "Choose a format"
msgstr "Valitse muoto"
msgid "Insert image"
msgstr "Lisää kuva"
#, python-format
msgid ""
"<span>%(total)s</span> Image <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgid_plural ""
"<span>%(total)s</span> Images <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgstr[0] ""
"<span>%(total)s</span> kuva <span class=\"w-sr-only\">luotu sivustolla "
"%(site_name)s</span>"
msgstr[1] ""
"<span>%(total)s</span> kuvaa <span class=\"w-sr-only\">luotu sivustolla "
"%(site_name)s</span>"
msgid "Change image file:"
msgstr "Vaihda kuvatiedosto:"
msgid "Add an image"
msgstr "Lisää kuva"
msgid "Add image"
msgstr "Lisää kuva"
msgid "Save"
msgstr "Tallenna"
msgid "Keep new image"
msgstr "Säilytä uusi kuva"
msgid "Delete new image"
msgstr "Poista uusi kuva"
#, python-format
msgid "Editing image %(title)s"
msgstr "Muokataan kuvaa %(title)s"
msgid "Editing"
msgstr "Muokataan"
msgid "Delete image"
msgstr "Poista kuva"
msgid "Image focal point"
msgstr "Kuvan kiintopiste"
msgid "URL Generator"
msgstr "URL-generaattori"
msgid "Focal point"
msgstr "Polttopiste"
msgid "(optional)"
msgstr "(valinnainen)"
msgid ""
"To define this image's most important region, drag a box over the image "
"above."
msgstr ""
"Määrittele kuvan tärkein alue rajaamalla yläpuolella olevasta kuvasta "
"suorakaide."
msgid "Current focal point shown"
msgstr "Nykyinen kiintopiste näkyy"
msgid "Remove focal area"
msgstr "Poista polttopiste"
msgid "Max dimensions"
msgstr "Enimmäismitat"
msgid "Filesize"
msgstr "Tiedostokoko"
msgid "File not found"
msgstr "Tiedostoa ei löydy"
msgid "Usage"
msgstr "Käyttö"
msgid "Sort by"
msgstr "Järjestys"
msgid "Select all images in listing"
msgstr "Valitse listauksen kaikki kuvat"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr ""
"Pahoittelut, yksikään kuva ei täsmää hakuun \"<em>%(query_string)s</em>\""
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Et ole lähettänyt yhtään kuvaa tähän kokoelmaan. Mikset vaikka <a "
"href=\"%(wagtailimages_add_image_url)s\">lähettäisi yhtä nyt</a>?"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Et ole lähettänyt yhtään kuvaa. Mikset vaikka <a "
"href=\"%(wagtailimages_add_image_url)s\">lähettäisi yhtä nyt</a>?"
msgid "Preview"
msgstr "Esikatsele"
msgid "URL"
msgstr "URL"
msgid "Image URL"
msgstr "Kuvan osoite"
msgid "Copy URL"
msgstr "Kopioi osoite"
msgid "Copied to clipboard"
msgstr "Kopioitu leikepöydälle"
msgid "Copying to clipboard failed"
msgstr "Leikepöydälle kopiointi epäonnistui"
msgid "Add multiple images"
msgstr "Lisää useita kuvia"
msgid "Add images"
msgstr "Lisää kuvia"
msgid "Drag and drop images into this area to upload immediately."
msgstr "Raahaa ja pudota kuvia tälle alueelle lähettääksesi ne heti."
msgid "Or choose from your computer"
msgstr "Tai valitse tietokoneeltasi"
msgid "Add to collection:"
msgstr "Lisää kokoelmaan:"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"Siirto onnistui. Päivitä kuva osuvammalla otsikolla, jos tarpeellista. Voit "
"myös poistaa kuvan kokonaan, jos siirto ei ollut tarpeellinen."
msgid ""
"Upload successful. However, your new image seems to be a duplicate of this "
"existing image. You may delete it if it wasn't required."
msgstr ""
"Lähetys onnistui. Uusi kuva vaikuttaa kuitenkin olevan tämän olemassa olevan "
"kuvan kaksoiskappale. Saatat mahdollisesti haluta poistaa uuden kuvan, jos "
"kaksoiskappale ei ollut tarkoituksellinen."
msgid "Sorry, upload failed."
msgstr "Pahoittelut, siirto epäonnistui."
msgid "Server Error"
msgstr "Palvelinvirhe"
msgid ""
"Report this error to your website administrator with the following "
"information:"
msgstr "Raportoi tämä virhe sivuston ylläpitäjälle seuraavan tiedon kanssa:"
msgid "Image updated."
msgstr "Kuva päivitetty."
msgid "Image permissions"
msgstr "Kuvan oikeudet"
msgid "Add an image permission"
msgstr "Lisää kuvaoikeus"
msgid "Tags"
msgstr "Tunnisteet"
msgid "Tag"
msgstr "Tunniste"
msgid "Add tags to the selected images"
msgstr "Lisää tunnisteet valittuihin kuviin"
#, python-format
msgid "New tags have been added to %(num_parent_objects)d image"
msgid_plural "New tags have been added to %(num_parent_objects)d images"
msgstr[0] "Uusia tunnisteita on lisätty %(num_parent_objects)d kuvaan"
msgstr[1] "Uusia tunnisteita on lisätty %(num_parent_objects)d kuvaan"
msgid "Add to collection"
msgstr "Lisää kokoelmaan"
msgid "Add selected images to collection"
msgstr "Lisää valitut kuvat kokoelmaan"
#, python-format
msgid "%(num_parent_objects)d image has been added to %(collection)s"
msgid_plural "%(num_parent_objects)d images have been added to %(collection)s"
msgstr[0] "%(num_parent_objects)d kuva on lisätty kokoelmaan %(collection)s"
msgstr[1] "%(num_parent_objects)d kuvaa on lisätty kokoelmaan %(collection)s"
msgid "Delete"
msgstr "Poista"
msgid "Delete selected images"
msgstr "Poista valitut kuvat"
#, python-format
msgid "%(num_parent_objects)d image has been deleted"
msgid_plural "%(num_parent_objects)d images have been deleted"
msgstr[0] "%(num_parent_objects)d kuva on poistettu"
msgstr[1] "%(num_parent_objects)d kuvaa on poistettu"
msgid "Upload"
msgstr "Lähetä"
msgid "Uploading…"
msgstr "Lähetetään…"
msgid "Choose an image"
msgstr "Valitse kuva"
msgid "Choose another image"
msgstr "Valitse toinen kuva"
msgid "Edit this image"
msgstr "Muokkaa tätä kuvaa"
msgid "Newest"
msgstr "Uusin"
msgid "Oldest"
msgstr "Vanhin"
msgid "Title: (A -> Z)"
msgstr "Nimi: (A -> Ö)"
msgid "Title: (Z -> A)"
msgstr "Nimi: (Ö -> A)"
msgid "File size: (low to high)"
msgstr "Tiedostokoko: (pienimmästä suurimpaan)"
msgid "File size: (high to low)"
msgstr "Tiedostokoko: (suurimmasta pienimpään)"
msgid "Images"
msgstr "Kuvat"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Kuva '%(image_title)s' päivitetty."
msgid "Edit again"
msgstr "Muokkaa uudestaan"
msgid "The image could not be saved due to errors."
msgstr "Kuvaa ei voitu tallentaa virheiden vuoksi."
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr ""
"Valittua kuvatiedostoa ei löytynyt. Ole hyvä ja valitse toinen kuvatiedosto "
"tai poista kuva."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Kuva '%(image_title)s' poistettu."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Kuva '%(image_title)s' lisätty."
msgid "The image could not be created due to errors."
msgstr "Kuvaa ei voitu luoda virheiden vuoksi."
msgid "Image"
msgstr "Kuva"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s kuva"
msgstr[1] "%(count)s kuvaa"
msgid "Change image"
msgstr "Vaihda kuva"

View File

@@ -0,0 +1,637 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Adrien <laadrien@gmail.com>, 2014
# Benoît Vogel <contact@spicy-informatique.com>, 2016,2019
# Bertrand Bordage <bordage.bertrand@gmail.com>, 2015-2018
# 69c761fa404d2f74d5a7a2904d9e6f47_dc2dbc9 <f37077798760362881f9d396b6e22ec7_1878>, 2018
# 69c761fa404d2f74d5a7a2904d9e6f47_dc2dbc9 <f37077798760362881f9d396b6e22ec7_1878>, 2018
# Léo <leo@naeka.fr>, 2016
# Loic Teixeira, 2018
# Loic Teixeira, 2020-2023
# Loic Teixeira, 2018
# nahuel, 2014
# nahuel, 2014
# Sebastien Andrivet <sebastien@andrivet.com>, 2016
# Sébastien Corbin <seb.corbin@gmail.com>, 2024
# Timothy Allen <flipper@peregrinesalon.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: Wagtail\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
"PO-Revision-Date: 2014-02-20 21:05+0000\n"
"Last-Translator: Sébastien Corbin <seb.corbin@gmail.com>, 2024\n"
"Language-Team: French (http://app.transifex.com/torchbox/wagtail/language/"
"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=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
"1000000 == 0 ? 1 : 2;\n"
msgid "Wagtail images"
msgstr "Images Wagtail"
#, python-format
msgid ""
"Supported formats: %(supported_formats)s. Maximum filesize: "
"%(max_upload_size)s."
msgstr ""
"Formats supportés : %(supported_formats)s. Taille maximum : "
"%(max_upload_size)s."
#, python-format
msgid "Supported formats: %(supported_formats)s."
msgstr "Formats supportés : %(supported_formats)s."
#, python-format
msgid "Not a supported image format. Supported formats: %(supported_formats)s."
msgstr ""
"Format d'image non supporté. Formats supportés : %(supported_formats)s."
#, python-format
msgid ""
"Not a valid .%(extension)s image. The extension does not match the file "
"format (%(image_format)s)"
msgstr ""
"Image .%(extension)s non valide. L'extension de fichier ne correspond pas "
"format du fichier (%(image_format)s)"
#, python-format
msgid ""
"This file is too big (%(file_size)s). Maximum filesize %(max_filesize)s."
msgstr ""
"Ce fichier est trop gros (%(file_size)s). La taille de fichier maximale est "
"de %(max_filesize)s."
#, python-format
msgid ""
"This file has too many pixels (%(num_pixels)s). Maximum pixels "
"%(max_pixels_count)s."
msgstr ""
"Ce fichier a un trop grand nombre de pixels (%(num_pixels)s). Nombre maximum "
"de pixels %(max_pixels_count)s."
#, python-format
msgid "This file is too big. Maximum filesize %(max_filesize)s."
msgstr ""
"Ce fichier est trop gros. La taille de fichier maximale est %(max_filesize)s."
msgid "Full width"
msgstr "Pleine largeur"
msgid "Left-aligned"
msgstr "Aligné à gauche"
msgid "Right-aligned"
msgstr "Aligné à droite"
msgid "Collection"
msgstr "Collection"
msgid "Format"
msgstr "Format"
msgid "Image is decorative"
msgstr "L'image est décorative"
msgid "Alt text"
msgstr "Texte alternatif"
msgid "Please add some alt text for your image or mark it as decorative"
msgstr ""
"Veuillez ajouter un texte alternatif ou marquer l'image comme décorative"
msgid "Filter"
msgstr "Filtre"
msgid "Original size"
msgstr "Taille d'origine"
msgid "Resize to width"
msgstr "Redimensionner en largeur"
msgid "Resize to height"
msgstr "Redimensionner en hauteur"
msgid "Resize to min"
msgstr "Redimensionner au minimum"
msgid "Resize to max"
msgstr "Redimensionner au maximum"
msgid "Resize to fill"
msgstr "Redimensionner pour occuper tout l'espace"
msgid "Width"
msgstr "Largeur"
msgid "Height"
msgstr "Hauteur"
msgid "Closeness"
msgstr "Proximité"
msgid "Add"
msgstr "Ajouter"
msgid "Add/edit images you own"
msgstr "Ajouter/modifier vos images"
msgid "Edit"
msgstr "Modifier"
msgid "Edit any image"
msgstr "Modifier n’importe quelle image"
msgid "Choose"
msgstr "Choisir"
msgid "Select images in choosers"
msgstr "Sélectionner une image dans le sélecteur d'images"
msgid "title"
msgstr "titre"
msgid "file"
msgstr "fichier"
msgid "width"
msgstr "largeur"
msgid "height"
msgstr "hauteur"
msgid "created at"
msgstr "créé le"
msgid "uploaded by user"
msgstr "Transférée par l'utilisateur"
msgid "tags"
msgstr "Mots-clés"
msgid "image"
msgstr "image"
msgid "images"
msgstr "images"
#, python-format
msgid "Add tags to 1 image"
msgid_plural "Add tags to %(counter)s images"
msgstr[0] "Ajouter des mots-clés à 1 image"
msgstr[1] "Ajouter des mots-clés à %(counter)s images"
msgstr[2] "Ajouter des mots-clés à %(counter)s images"
msgid "Add tags to images"
msgstr "Ajouter des mots-clés à des images"
msgid "Are you sure you want to tag the following image?"
msgid_plural "Are you sure you want to tag the following images?"
msgstr[0] ""
"Êtes-vous sûr(e) de vouloir ajouter des mots-clés à l'image sélectionnée ?"
msgstr[1] ""
"Êtes-vous sûr(e) de vouloir ajouter des mots-clés aux images sélectionnées ?"
msgstr[2] ""
"Êtes-vous sûr(e) de vouloir ajouter des mots-clés aux images sélectionnées ?"
msgid "You don't have permission to add tags to this image"
msgid_plural "You don't have permission to add tags to these images"
msgstr[0] ""
"Vous n’avez pas l’autorisation d'ajouter des mots-clés à cette image"
msgstr[1] "Vous n’avez pas l’autorisation d'ajouter des mots-clés à ces images"
msgstr[2] "Vous n’avez pas l’autorisation d'ajouter des mots-clés à ces images"
msgid "Yes, add"
msgstr "Oui, ajouter"
msgid "No, don't add"
msgstr "Non, ne pas ajouter"
#, python-format
msgid "Add 1 image to new collection"
msgid_plural "Add %(counter)s images to new collection"
msgstr[0] "Ajouter 1 image à la nouvelle collection"
msgstr[1] "Ajouter %(counter)s images à la nouvelle collection"
msgstr[2] "Ajouter %(counter)s images à la nouvelle collection"
msgid "Add images to collection"
msgstr "Ajouter des images à la collection"
msgid ""
"Are you sure you want to add the following image to the selected collection?"
msgid_plural ""
"Are you sure you want to add the following images to the selected collection?"
msgstr[0] ""
"Êtes-vous sûr(e) de vouloir ajouter l'image suivante à la collection "
"sélectionnée ?"
msgstr[1] ""
"Êtes-vous sûr(e) de vouloir ajouter les images suivantes à la collection "
"sélectionnée ?"
msgstr[2] ""
"Êtes-vous sûr(e) de vouloir ajouter les images suivantes à la collection "
"sélectionnée ?"
msgid "You don't have permission to add this image to a collection"
msgid_plural "You don't have permission to add these images to a collection"
msgstr[0] ""
"Vous n’avez pas l’autorisation d'ajouter cette image à une collection"
msgstr[1] ""
"Vous n’avez pas l’autorisation d'ajouter ces images à une collection"
msgstr[2] ""
"Vous n’avez pas l’autorisation d'ajouter ces images à une collection"
#, python-format
msgid "Delete 1 image"
msgid_plural "Delete %(counter)s images"
msgstr[0] "Supprimer 1 image"
msgstr[1] "Supprimer %(counter)s images"
msgstr[2] "Supprimer %(counter)s images"
msgid "Delete images"
msgstr "Supprimer les images"
msgid "Are you sure you want to delete this image?"
msgid_plural "Are you sure you want to delete these images?"
msgstr[0] "Êtes-vous sûr(e) de vouloir supprimer cette image ?"
msgstr[1] "Êtes-vous sûr(e) de vouloir supprimer ces images ?"
msgstr[2] "Êtes-vous sûr(e) de vouloir supprimer ces images ?"
#, python-format
msgid "Used %(usage_count)s time"
msgid_plural "Used %(usage_count)s times"
msgstr[0] "Utilisé(e) %(usage_count)s fois"
msgstr[1] "Utilisé(e) %(usage_count)s fois"
msgstr[2] "Utilisé(e) %(usage_count)s fois"
msgid "You don't have permission to delete this image"
msgid_plural "You don't have permission to delete these images"
msgstr[0] "Vous n’avez pas l’autorisation de supprimer cette image"
msgstr[1] "Vous n’avez pas l’autorisation de supprimer ces images"
msgstr[2] "Vous n’avez pas l’autorisation de supprimer ces images"
msgid "Yes, delete"
msgstr "Oui, supprimer"
msgid "No, don't delete"
msgstr "Non, ne pas supprimer"
msgid "Popular tags"
msgstr "Mots-clés populaires"
msgid ""
"Upload successful. However, your new image seems to be a duplicate of an "
"existing image. You may delete it if it wasn't required."
msgstr ""
"Transfert réussi. Cependant, la nouvelle image semble être une copie d'une "
"image existante. Vous pouvez la supprimer si ce n'était pas nécessaire."
msgid "Existing"
msgstr "Existant"
msgid "New"
msgstr "Nouveau"
msgid "Use new image"
msgstr "Utiliser une nouvelle image"
msgid "Use existing and delete new"
msgstr "Utiliser l'image existante et supprimer la nouvelle"
msgid "Latest images"
msgstr "Dernières images"
#, python-format
msgid "Select %(title)s"
msgstr "Sélectionner %(title)s"
msgid "You haven't uploaded any images in this collection."
msgstr "Vous n’avez pas encore transféré d'images dans cette collection."
msgid "You haven't uploaded any images."
msgstr "Vous n’avez pas encore transféré d'images."
msgid ""
"Why not <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>upload one now</a>?"
msgstr ""
"Pourquoi ne pas <a class=\"upload-one-now\" href=\"#tab-upload\" data-tab-"
"trigger>en transférer un</a> ?"
msgid "Choose a format"
msgstr "Choisissez un format"
msgid "Insert image"
msgstr "Insérer l'image"
#, python-format
msgid ""
"<span>%(total)s</span> Image <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgid_plural ""
"<span>%(total)s</span> Images <span class=\"w-sr-only\">created in "
"%(site_name)s</span>"
msgstr[0] ""
"<span>%(total)s</span> image <span class=\"w-sr-only\">créée dans "
"%(site_name)s</span>"
msgstr[1] ""
"<span>%(total)s</span> images <span class=\"w-sr-only\">créées dans "
"%(site_name)s</span>"
msgstr[2] ""
"<span>%(total)s</span> images <span class=\"w-sr-only\">créées dans "
"%(site_name)s</span>"
msgid "Change image file:"
msgstr "Changer le fichier d'image"
msgid "Add an image"
msgstr "Ajouter une image"
msgid "Add image"
msgstr "Ajouter l'image"
msgid "Save"
msgstr "Enregistrer"
msgid "Keep new image"
msgstr "Garder la nouvelle image"
msgid "Delete new image"
msgstr "Supprimer la nouvelle image"
#, python-format
msgid "Editing image %(title)s"
msgstr "Modification de l'image %(title)s"
msgid "Editing"
msgstr "Modification"
msgid "Delete image"
msgstr "Supprimer l'image"
msgid "Image focal point"
msgstr "Zone d'intérêt de l'image"
msgid "URL Generator"
msgstr "Générateur d'URL"
msgid "Focal point"
msgstr "Point d'intérêt"
msgid "(optional)"
msgstr "(facultatif)"
msgid ""
"To define this image's most important region, drag a box over the image "
"above."
msgstr ""
"Pour définir la zone la plus importante de cette image, tracez un rectangle "
"sur l'image ci-dessus."
msgid "Current focal point shown"
msgstr "Point d'intérêt courant tracé"
msgid "Remove focal area"
msgstr "Retirer la zone d’intérêt"
msgid "Max dimensions"
msgstr "Dimensions maximum"
msgid "Filesize"
msgstr "Taille du fichier"
msgid "File not found"
msgstr "Fichier non trouvé"
msgid "Usage"
msgstr "Utilisation"
msgid "Sort by"
msgstr "Ordonner par"
msgid "Select all images in listing"
msgstr "Sélectionner toutes les images dans la liste"
#, python-format
msgid "Sorry, no images match \"<em>%(query_string)s</em>\""
msgstr "Désolé, aucune image ne correspond à \"<em>%(query_string)s</em>\""
#, python-format
msgid ""
"You haven't uploaded any images in this collection. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Vous n’avez pas encore transféré d’image dans cette collection. Pourquoi ne "
"pas <a href=\"%(wagtailimages_add_image_url)s\">en ajouter une maintenant</"
"a> ?"
#, python-format
msgid ""
"You haven't uploaded any images. Why not <a "
"href=\"%(wagtailimages_add_image_url)s\">upload one now</a>?"
msgstr ""
"Vous n'avez pas encore transféré d'image. Pourquoi ne pas <a "
"href=\"%(wagtailimages_add_image_url)s\">en ajouter une maintenant</a> ?"
msgid "Preview"
msgstr "Prévisualisation"
msgid "URL"
msgstr "URL"
msgid "Image URL"
msgstr "URL de l'image"
msgid "Copy URL"
msgstr "Copier l'URL"
msgid "Copied to clipboard"
msgstr "Copié dans le presse-papier"
msgid "Copying to clipboard failed"
msgstr "Impossible de copier dans le presse-papier"
msgid "Add multiple images"
msgstr "Ajouter plusieurs images"
msgid "Add images"
msgstr "Ajouter une image"
msgid "Drag and drop images into this area to upload immediately."
msgstr ""
"Glisser/déposer des images dans cette zone pour les transférer immédiatement."
msgid "Or choose from your computer"
msgstr "Ou sélectionner à partir de votre ordinateur"
msgid "Add to collection:"
msgstr "Ajouter à la collection :"
msgid ""
"Upload successful. Please update this image with a more appropriate title, "
"if necessary. You may also delete the image completely if the upload wasn't "
"required."
msgstr ""
"Transfert réussi. Mettez à jour cette image avec un titre plus approprié si "
"nécessaire. Vous pouvez également supprimer complètement cette image si "
"l'envoi n'était pas nécessaire."
msgid ""
"Upload successful. However, your new image seems to be a duplicate of this "
"existing image. You may delete it if it wasn't required."
msgstr ""
"Transfert réussi. Cependant, la nouvelle image semble être une copie de "
"cette image. Vous pouvez la supprimer si ce n'était pas nécessaire."
msgid "Sorry, upload failed."
msgstr "Désolé, le transfert a échoué."
msgid "Server Error"
msgstr "Erreur du serveur"
msgid ""
"Report this error to your website administrator with the following "
"information:"
msgstr ""
"Signalez cette erreur à votre webmaster avec les informations suivantes :"
msgid "Image updated."
msgstr "Image mise à jour."
msgid "Image permissions"
msgstr "Permissions d’image"
msgid "Add an image permission"
msgstr "Ajouter une permission d’image"
msgid "Tags"
msgstr "Mots-clés"
msgid "Tag"
msgstr "Mot-clé"
msgid "Add tags to the selected images"
msgstr "Ajouter des mots-clés aux images sélectionnées"
#, python-format
msgid "New tags have been added to %(num_parent_objects)d image"
msgid_plural "New tags have been added to %(num_parent_objects)d images"
msgstr[0] ""
"Les nouveaux mots-clés ont été ajoutés à %(num_parent_objects)d image"
msgstr[1] ""
"Les nouveaux mots-clés ont été ajoutés à %(num_parent_objects)d images"
msgstr[2] ""
"Les nouveaux mots-clés ont été ajoutés à %(num_parent_objects)d images"
msgid "Add to collection"
msgstr "Ajouter à la collection"
msgid "Add selected images to collection"
msgstr "Ajouter les images sélectionnées à la collection"
#, python-format
msgid "%(num_parent_objects)d image has been added to %(collection)s"
msgid_plural "%(num_parent_objects)d images have been added to %(collection)s"
msgstr[0] ""
"%(num_parent_objects)d image a été ajoutée à la collection « %(collection)s »"
msgstr[1] ""
"%(num_parent_objects)d images ont été ajoutées à la collection "
"« %(collection)s »"
msgstr[2] ""
"%(num_parent_objects)d images ont été ajoutées à la collection "
"« %(collection)s »"
msgid "Delete"
msgstr "Supprimer"
msgid "Delete selected images"
msgstr "Supprimer les images sélectionnés"
#, python-format
msgid "%(num_parent_objects)d image has been deleted"
msgid_plural "%(num_parent_objects)d images have been deleted"
msgstr[0] "%(num_parent_objects)d image a été supprimée"
msgstr[1] "%(num_parent_objects)d images ont été supprimées"
msgstr[2] "%(num_parent_objects)d images ont été supprimées"
msgid "Upload"
msgstr "Transférer"
msgid "Uploading…"
msgstr "Transfert…"
msgid "Choose an image"
msgstr "Choisir une image"
msgid "Choose another image"
msgstr "Choisir une autre image"
msgid "Edit this image"
msgstr "Modifier cette image"
msgid "Newest"
msgstr "Plus récent"
msgid "Oldest"
msgstr "Plus ancien(ne)"
msgid "Title: (A -> Z)"
msgstr "Titre : (A → Z)"
msgid "Title: (Z -> A)"
msgstr "Titre : (Z → A)"
msgid "File size: (low to high)"
msgstr "Taille de fichier : (croissant)"
msgid "File size: (high to low)"
msgstr "Taille de fichier : (décroissant)"
msgid "Images"
msgstr "Images"
#, python-format
msgid "Image '%(image_title)s' updated."
msgstr "Image « %(image_title)s » mise à jour."
msgid "Edit again"
msgstr "Modifier à nouveau"
msgid "The image could not be saved due to errors."
msgstr "L'image ne peut être enregistrée du fait d'erreurs."
msgid ""
"The source image file could not be found. Please change the source or delete "
"the image."
msgstr ""
"Le fichier image source n'a pas été trouvé. Veuillez changer la source ou "
"supprimer l'image."
#, python-format
msgid "Image '%(image_title)s' deleted."
msgstr "Image « %(image_title)s » supprimée."
#, python-format
msgid "Image '%(image_title)s' added."
msgstr "Image « %(image_title)s » ajoutée."
msgid "The image could not be created due to errors."
msgstr "L'image ne peut être créée du fait d'erreurs."
msgid "Image"
msgstr "Image"
#, python-format
msgid "%(count)s image"
msgid_plural "%(count)s images"
msgstr[0] "%(count)s image"
msgstr[1] "%(count)s images"
msgstr[2] "%(count)s images"
msgid "Change image"
msgstr "Changer l'image"

Some files were not shown because too many files have changed in this diff Show More