diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..9365ef1b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,54 @@ +# Generated from: +# https://github.com/plone/meta/tree/main/config/default +# See the inline comments on how to expand/tweak this configuration file +# +# EditorConfig Configuration file, for more details see: +# http://EditorConfig.org +# EditorConfig is a convention description, that could be interpreted +# by multiple editors to enforce common coding conventions for specific +# file types + +# top-most EditorConfig file: +# Will ignore other EditorConfig files in Home directory or upper tree level. +root = true + + +[*] # For All Files +# Unix-style newlines with a newline ending every file +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +# Set default charset +charset = utf-8 +# Indent style default +indent_style = space +# Max Line Length - a hard line wrap, should be disabled +max_line_length = off + +[*.{py,cfg,ini}] +# 4 space indentation +indent_size = 4 + +[*.{yml,zpt,pt,dtml,zcml}] +# 2 space indentation +indent_size = 2 + +[*.{json,jsonl,js,jsx,ts,tsx,css,less,scss,html}] # Frontend development +# 2 space indentation +indent_size = 2 +max_line_length = 80 + +[{Makefile,.gitmodules}] +# Tab indentation (no size specified, but view as 4 spaces) +indent_style = tab +indent_size = unset +tab_width = unset + + +## +# Add extra configuration options in .meta.toml: +# [editorconfig] +# extra_lines = """ +# _your own configuration lines_ +# """ +## diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..7d4999d0 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require("@patternslib/dev/.eslintrc.js"); diff --git a/.flake8 b/.flake8 new file mode 100644 index 00000000..38918f42 --- /dev/null +++ b/.flake8 @@ -0,0 +1,22 @@ +# Generated from: +# https://github.com/plone/meta/tree/main/config/default +# See the inline comments on how to expand/tweak this configuration file +[flake8] +doctests = 1 +ignore = + # black takes care of line length + E501, + # black takes care of where to break lines + W503, + # black takes care of spaces within slicing (list[:]) + E203, + # black takes care of spaces after commas + E231, + +## +# Add extra configuration options in .meta.toml: +# [flake8] +# extra_lines = """ +# _your own configuration lines_ +# """ +## diff --git a/.github/workflows/meta.yml b/.github/workflows/meta.yml new file mode 100644 index 00000000..86891e9d --- /dev/null +++ b/.github/workflows/meta.yml @@ -0,0 +1,64 @@ +# Generated from: +# https://github.com/plone/meta/tree/main/config/default +# See the inline comments on how to expand/tweak this configuration file +name: Meta +on: + push: + branches: + - master + - main + pull_request: + branches: + - master + - main + workflow_dispatch: + +## +# To set environment variables for all jobs, add in .meta.toml: +# [github] +# env = """ +# debug: 1 +# image-name: 'org/image' +# image-tag: 'latest' +# """ +## + +jobs: + qa: + uses: plone/meta/.github/workflows/qa.yml@main + test: + uses: plone/meta/.github/workflows/test.yml@main + coverage: + uses: plone/meta/.github/workflows/coverage.yml@main + release_ready: + uses: plone/meta/.github/workflows/release_ready.yml@main + +## +# To modify the list of default jobs being created add in .meta.toml: +# [github] +# jobs = [ +# "qa", +# "test", +# "coverage", +# "dependencies", +# "release_ready", +# "circular", +# ] +## + +## +# To request that some OS level dependencies get installed +# when running tests/coverage jobs, add in .meta.toml: +# [github] +# os_dependencies = "git libxml2 libxslt" +## + + +## +# Specify additional jobs in .meta.toml: +# [github] +# extra_lines = """ +# another: +# uses: org/repo/.github/workflows/file.yml@main +# """ +## diff --git a/.gitignore b/.gitignore index 4c73ce1d..486392f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,62 +1,56 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] - -# C extensions -*.so +# Generated from: +# https://github.com/plone/meta/tree/main/config/default +# See the inline comments on how to expand/tweak this configuration file +# python related +*.egg-info +*.pyc +*.pyo + +# translation related +*.mo -# Distribution / packaging -.Python -env/ +# tools related build/ -develop-eggs/ +.coverage +.*project +coverage.xml dist/ -downloads/ +docs/_build +__pycache__/ +.tox +.vscode/ +node_modules/ + +# venv / buildout related +bin/ +develop-eggs/ eggs/ +.eggs/ +etc/ +.installed.cfg +include/ lib/ -lib64/ +lib64 +.mr.developer.cfg parts/ -sdist/ +pyvenv.cfg var/ -*.egg-info/ -.installed.cfg -*.egg - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.coverage -.cache -nosetests.xml -coverage.xml - -# Translations -*.mo -*.pot - -# Django stuff: -*.log - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ - -.DS_Store +local.cfg # mxdev -.make-sentinels/ -sources/ +/instance/ +/.make-sentinels/ /*-mxdev.txt +/reports/ +/sources/ +/venv/ .installed.txt + + +## +# Add extra configuration options in .meta.toml: +# [gitignore] +# extra_lines = """ +# _your own configuration lines_ +# """ +## diff --git a/.meta.toml b/.meta.toml new file mode 100644 index 00000000..3dd4f2b5 --- /dev/null +++ b/.meta.toml @@ -0,0 +1,22 @@ +# Generated from: +# https://github.com/plone/meta/tree/main/config/default +# See the inline comments on how to expand/tweak this configuration file +[meta] +template = "default" +commit-id = "3d81f019" + +[pyproject] +codespell_skip = "*.css.map,*.map,*.min.js,yarn.lock" + +[pre_commit] +zpretty_extra_lines = """ + args: ['--extend-exclude', 'relatedimages_selection.xml'] +""" + +[github] +jobs = [ + "qa", + "test", + "coverage", + "release_ready", + ] diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..cf505088 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,95 @@ +# Generated from: +# https://github.com/plone/meta/tree/main/config/default +# See the inline comments on how to expand/tweak this configuration file +ci: + autofix_prs: false + autoupdate_schedule: monthly + +repos: +- repo: https://github.com/asottile/pyupgrade + rev: v3.15.0 + hooks: + - id: pyupgrade + args: [--py38-plus] +- repo: https://github.com/pycqa/isort + rev: 5.13.2 + hooks: + - id: isort +- repo: https://github.com/psf/black + rev: 23.12.1 + hooks: + - id: black +- repo: https://github.com/collective/zpretty + rev: 3.1.0 + hooks: + - id: zpretty + args: ['--extend-exclude', 'relatedimages_selection.xml'] + +## +# Add extra configuration options in .meta.toml: +# [pre_commit] +# zpretty_extra_lines = """ +# _your own configuration lines_ +# """ +## +- repo: https://github.com/PyCQA/flake8 + rev: 6.1.0 + hooks: + - id: flake8 + +## +# Add extra configuration options in .meta.toml: +# [pre_commit] +# flake8_extra_lines = """ +# _your own configuration lines_ +# """ +## +- repo: https://github.com/codespell-project/codespell + rev: v2.2.6 + hooks: + - id: codespell + additional_dependencies: + - tomli + +## +# Add extra configuration options in .meta.toml: +# [pre_commit] +# codespell_extra_lines = """ +# _your own configuration lines_ +# """ +## +- repo: https://github.com/mgedmin/check-manifest + rev: "0.49" + hooks: + - id: check-manifest +- repo: https://github.com/regebro/pyroma + rev: "4.2" + hooks: + - id: pyroma +- repo: https://github.com/mgedmin/check-python-versions + rev: "0.22.0" + hooks: + - id: check-python-versions + args: ['--only', 'setup.py,pyproject.toml'] +- repo: https://github.com/collective/i18ndude + rev: "6.1.0" + hooks: + - id: i18ndude + + +## +# Add extra configuration options in .meta.toml: +# [pre_commit] +# i18ndude_extra_lines = """ +# _your own configuration lines_ +# """ +## + + +## +# Add extra configuration options in .meta.toml: +# [pre_commit] +# extra_lines = """ +# _your own configuration lines_ +# """ +## diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..4c04f8a7 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +* +!resources/ +!resources/** diff --git a/.release-it.js b/.release-it.js new file mode 100644 index 00000000..b865c3d2 --- /dev/null +++ b/.release-it.js @@ -0,0 +1 @@ +module.exports = require("@patternslib/dev/.release-it.js"); diff --git a/CHANGES.md b/CHANGES.md index 96e344b8..873ebcfb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,10 +2,13 @@ Changelog ========= -## 3.3.6 (unreleased) +## 3.4.0 (unreleased) --------------------- -- Nothing changed yet. +Features: + +- Outputfilter and pattern for related image gallery. + [petschki] ## 3.3.5 (2023-11-16) @@ -216,7 +219,7 @@ Features: 1.0 (2018-05-23) ---------------- -- Fix issue with disapearing images when 'include_leadimage' was deactivated +- Fix issue with disappearing images when 'include_leadimage' was deactivated [petschki] - support for Event Occurrences. diff --git a/MANIFEST.in b/MANIFEST.in index e1f9543e..7b414137 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,13 @@ recursive-include collective * recursive-include docs * include * -exclude *-mxdev.txt .installed.txt +recursive-exclude resources * +exclude *-mxdev.txt +exclude .installed.txt +exclude .*.js +exclude .prettierignore +exclude *.cfg +exclude *.js +exclude package.json +exclude pyproject.toml global-exclude *.pyc diff --git a/Makefile b/Makefile index 3627791e..560c6cb2 100644 --- a/Makefile +++ b/Makefile @@ -58,7 +58,7 @@ TEST_PREREQUISITES=${INSTALL_TARGET} RUN_PREREQUISITES=${INSTANCE_TARGET} ############################################################################## -# CONVINIENCE +# CONVENIENCE # install and run .PHONY: all # full install, test and run @@ -72,23 +72,12 @@ help: ## This help message @echo @echo "${WARN_COLOR}Additional parameters:${NO_COLOR}" @echo "${MARK_COLOR}PYTHON${NO_COLOR}: Python interpreter to be used (default: python3)" - @echo "${MARK_COLOR}VENV${NO_COLOR}: [on|off] wether to create a Python virtual environment or not (default: on)"s + @echo "${MARK_COLOR}VENV${NO_COLOR}: [on|off] whether to create a Python virtual environment or not (default: on)"s @echo "${MARK_COLOR}VENV_FOLDER${NO_COLOR}: location of the virtual environment (default: ./venv)" @echo @echo "${WARN_COLOR}Targets:${NO_COLOR}" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' -############################################################################## -# targets and prerequisites -# target has to be one file, otherwise step gets executes for each file separate -PREPARE_PREREQUISITES=${PIP_REQUIREMENTS_IN_FILE} ${CONSTRAINTS} mx.ini ${ADDONBASE}setup.cfg -PREPARE_TARGET=requirements-mxdev.txt -INSTALL_PREREQUSISTES=${PREPARE_TARGET} -INSTALL_TARGET=.installed.txt -INSTANCE_PREREQUISITES=${INSTALL_TARGET} ${INSTANCE_YAML} -INSTANCE_TARGET=${INSTANCE_FOLDER}/etc/zope.ini ${INSTANCE_FOLDER}/etc/zope.conf ${INSTANCE_FOLDER}/etc/site.zcml -TEST_PREREQUISITES=${INSTALL_TARGET} -RUN_PREREQUISITES=${INSTANCE_TARGET} ############################################################################## # BASE @@ -155,7 +144,7 @@ ${MXDEV_SENTINEL}: ${PIP_SENTINEL} @touch ${MXDEV_SENTINEL} .PHONY: prepare -prepare: ${PREPARE_TARGET} ## prepare soures and dependencies +prepare: ${PREPARE_TARGET} ## prepare sources and dependencies ${PREPARE_PREREQUISITES}: @touch $@ diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 00000000..7f530326 --- /dev/null +++ b/babel.config.js @@ -0,0 +1 @@ +module.exports = require("@patternslib/dev/babel.config.js"); diff --git a/bobtemplate.cfg b/bobtemplate.cfg new file mode 100644 index 00000000..03bf7a11 --- /dev/null +++ b/bobtemplate.cfg @@ -0,0 +1,5 @@ +[main] +version = 6.0.7 +template = plone_addon +git_init = n +python = python3 diff --git a/collective/behavior/relatedmedia/behavior.py b/collective/behavior/relatedmedia/behavior.py index 3887105a..1feb430d 100644 --- a/collective/behavior/relatedmedia/behavior.py +++ b/collective/behavior/relatedmedia/behavior.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from collective.behavior.relatedmedia import messageFactory as _ from collective.behavior.relatedmedia.utils import media_root_path from collective.behavior.relatedmedia.widget import RelatedAttachmentsFieldWidget @@ -7,6 +6,7 @@ from plone.autoform import directives as form from plone.autoform.interfaces import IFormFieldProvider from plone.supermodel import model +from z3c.form.interfaces import HIDDEN_MODE from z3c.relationfield.schema import RelationChoice from z3c.relationfield.schema import RelationList from zope import schema @@ -34,7 +34,7 @@ def read_js_template(path): @implementer(IVocabularyFactory) -class GalleryCSSClassesVocabulary(object): +class GalleryCSSClassesVocabulary: def __call__(self, context): return SimpleVocabulary.fromValues( api.portal.get_registry_record( @@ -75,6 +75,12 @@ def default_titles_as_caption(): ) +def default_show_images_viewlet(): + return api.portal.get_registry_record( + "collective.behavior.relatedmedia.show_images_viewlet", default=True + ) + + def default_include_leadimage(): return api.portal.get_registry_record( "collective.behavior.relatedmedia.include_leadimage_default", default=True @@ -161,6 +167,16 @@ class IRelatedMediaBehavior(model.Schema): required=False, ) + show_images_viewlet = schema.Bool( + title=_("Show images in viewlet"), + description=_( + "Turn this of if you place an image gallery inside TinyMCE via " + "gallery template to avoid duplicated content." + ), + defaultFactory=default_show_images_viewlet, + required=False, + ) + include_leadimage = schema.Bool( title=_("Include leadimage in image gallery?"), defaultFactory=default_include_leadimage, @@ -213,12 +229,16 @@ class IRelatedMediaBehavior(model.Schema): required=False, ) + # outdated + form.omitted("related_media_base_path") + model.fieldset( "relatedmedia", label=_("Related Media"), fields=[ "related_images", "related_attachments", + "show_images_viewlet", "show_titles_as_caption", "include_leadimage", "first_image_scale", @@ -231,6 +251,15 @@ class IRelatedMediaBehavior(model.Schema): ) +class IGalleryEditSchema(IRelatedMediaBehavior): + form.mode( + related_attachments=HIDDEN_MODE, + show_images_viewlet=HIDDEN_MODE, + gallery_css_class=HIDDEN_MODE, + related_media_base_path=HIDDEN_MODE, + ) + + # define languageindependent fields if p.a.multilingual is installed if HAS_PAM: alsoProvides( @@ -251,7 +280,7 @@ class IRelatedMediaBehavior(model.Schema): alsoProvides(IRelatedMediaBehavior["gallery_css_class"], ILanguageIndependentField) -# mark old name as depreacted +# mark old name as deprecated deprecated( "Renamed to 'IRelatedMediaBehavior'. Will be removed in Version 4.", IRelatedMedia="collective.behavior.relatedmedia.behavior:IRelatedMediaBehavior", diff --git a/collective/behavior/relatedmedia/browser.py b/collective/behavior/relatedmedia/browser.py index 811dc67f..fbd13c2f 100644 --- a/collective/behavior/relatedmedia/browser.py +++ b/collective/behavior/relatedmedia/browser.py @@ -1,7 +1,7 @@ -# -*- coding: utf-8 -*- from Acquisition import aq_inner from collective.behavior.relatedmedia import messageFactory as _ -from collective.behavior.relatedmedia.behavior import IRelatedMedia +from collective.behavior.relatedmedia.behavior import IGalleryEditSchema +from collective.behavior.relatedmedia.behavior import IRelatedMediaBehavior from collective.behavior.relatedmedia.events import update_leadimage from collective.behavior.relatedmedia.interfaces import IRelatedMediaSettings from collective.behavior.relatedmedia.utils import get_media_root @@ -12,11 +12,13 @@ from plone.app.layout.viewlets.common import ViewletBase from plone.app.registry.browser import controlpanel from plone.base.utils import human_readable_size +from plone.dexterity.browser.edit import DefaultEditForm from plone.dexterity.utils import createContentInContainer from plone.event.interfaces import IOccurrence from plone.memoize.instance import memoize from plone.namedfile.file import NamedBlobFile from plone.namedfile.file import NamedBlobImage +from plone.z3cform import layout from Products.CMFPlone.utils import safe_unicode from Products.Five import BrowserView from z3c.relationfield import RelationValue @@ -28,20 +30,20 @@ class RelatedBaseView(BrowserView): def __init__(self, context, request): - super(RelatedBaseView, self).__init__(context, request) + super().__init__(context, request) if IOccurrence.providedBy(self.context): self.context = self.context.aq_parent @property def behavior(self): - return IRelatedMedia(aq_inner(self.context), None) + return IRelatedMediaBehavior(aq_inner(self.context), None) @property def can_upload(self): - return IRelatedMedia.providedBy(self.context) and api.user.has_permission( - "Modify portal content", obj=self.context - ) + return IRelatedMediaBehavior.providedBy( + self.context + ) and api.user.has_permission("Modify portal content", obj=self.context) class RelatedImagesView(RelatedBaseView): @@ -61,6 +63,15 @@ def gallery_css_klass(self): ) return dflt_css_class + @property + def show_images_viewlet(self): + return self.request.get("ajax_load") or ( + self.behavior and self.behavior.show_images_viewlet + ) + + def can_edit(self): + return api.user.has_permission("Modify portal content") + @memoize def images(self): rm_behavior = self.behavior @@ -74,6 +85,7 @@ def images(self): first_img_title = "" first_img_scales = None first_img_description = "" + first_img_uuid = "" further_images = [] gallery = [] @@ -81,6 +93,7 @@ def images(self): # include leadimage if no related images are defined first_img_scales = context.restrictedTraverse("@@images") first_img_title = ILeadImage(context).image_caption + first_img_uuid = context.UID() further_images = imgs if not first_img_scales and len(imgs): @@ -89,6 +102,7 @@ def images(self): first_img_scales = first_img.restrictedTraverse("@@images") first_img_title = first_img.Title() first_img_description = first_img.Description() + first_img_uuid = first_img.UID() further_images = imgs[1:] if first_img_scales: @@ -113,6 +127,7 @@ def images(self): show_caption=show_caption, title=first_img_title, description=first_img_description, + uuid=first_img_uuid, ) ) @@ -136,12 +151,30 @@ def images(self): show_caption=show_caption, title=img.Title(), description=img.Description(), + uuid=img.UID(), ) ) + # pattern feature to filter special uuids to display with ?uuids=uuid1,uuid2,... + uuid_filter = self.request.get("uuids") + + if uuid_filter: + return [it for it in gallery if it["uuid"] in uuid_filter.split(",")] + return gallery +class GalleryEditForm(DefaultEditForm): + schema = IGalleryEditSchema + + @property + def additionalSchemata(self): + return () + + +GalleryEditView = layout.wrap_form(GalleryEditForm) + + class RelatedAttachmentsView(RelatedBaseView): @property def attachments(self): @@ -206,7 +239,7 @@ def __call__(self): return json.dumps( dict( status="error", - message="IRelatedMedia behavior not activated for this context", + message="IRelatedMediaBehavior behavior not activated for this context", ) ) @@ -244,4 +277,4 @@ class UploadViewlet(ViewletBase): def render(self): if not IViewView.providedBy(self.view): return "" - return super(UploadViewlet, self).render() + return super().render() diff --git a/collective/behavior/relatedmedia/configure.zcml b/collective/behavior/relatedmedia/configure.zcml index 99319033..7c98e70f 100644 --- a/collective/behavior/relatedmedia/configure.zcml +++ b/collective/behavior/relatedmedia/configure.zcml @@ -1,179 +1,201 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + i18n_domain="collective.behavior.relatedmedia" + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/collective/behavior/relatedmedia/events.py b/collective/behavior/relatedmedia/events.py index 4357c129..e853125b 100644 --- a/collective/behavior/relatedmedia/events.py +++ b/collective/behavior/relatedmedia/events.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from collective.behavior.relatedmedia.utils import get_media_root from collective.behavior.relatedmedia.utils import get_related_media from logging import getLogger @@ -113,7 +112,7 @@ def get_obj_from_relateditem_path(value, prefix=19): try: rel_obj = api.content.get(path=item_path) except Exception: - logger.warn("Could not find related item {}".format(item_path)) + logger.warn(f"Could not find related item {item_path}") return rel_obj diff --git a/collective/behavior/relatedmedia/interfaces.py b/collective/behavior/relatedmedia/interfaces.py index 9b7dcc31..cc0ba66c 100644 --- a/collective/behavior/relatedmedia/interfaces.py +++ b/collective/behavior/relatedmedia/interfaces.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from collective.behavior.relatedmedia import messageFactory as _ from zope import schema from zope.interface import Interface @@ -25,7 +24,7 @@ class IRelatedMediaSettings(Interface): title=_("Create Media Container in Assets Folder " "(language independent)?"), description=_( "If True, the Media Container path defined above is " - "generated in the language independend Assets folder. " + "generated in the language independent Assets folder. " "This requires plone.app.multilingual." ), default=False, @@ -75,6 +74,12 @@ class IRelatedMediaSettings(Interface): required=False, ) + show_images_viewlet_default = schema.Bool( + title=_("Show images in viewlet"), + default=True, + required=False, + ) + include_leadimage_default = schema.Bool( title=_("Include leadimage in image gallery?"), default=True, diff --git a/collective/behavior/relatedmedia/locales/collective.behavior.relatedmedia.pot b/collective/behavior/relatedmedia/locales/collective.behavior.relatedmedia.pot new file mode 100644 index 00000000..7d31bbac --- /dev/null +++ b/collective/behavior/relatedmedia/locales/collective.behavior.relatedmedia.pot @@ -0,0 +1,189 @@ +# --- PLEASE EDIT THE LINES BELOW CORRECTLY --- +# SOME DESCRIPTIVE TITLE. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2024-01-02 12:56+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" +"Language-Code: en\n" +"Language-Name: English\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: collective.behavior.relatedmedia\n" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Create Media Container in Assets Folder (language independent)?" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Create containers for each linked object?" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Crop first image" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Crop image" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Crop the image to the selected boundaries above" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Default gallery class for new articles" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Default setting for cropping gallery images" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Feel free to add/remove classes in your registry.xml" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Files" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Gallery CSS classes" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Gallery default scale" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Gallery default scale for first image" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Gallery image preview scale" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Gallery layout" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "If True, the Media Container path defined above is generated in the language independent Assets folder. This requires plone.app.multilingual." +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Image scale" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Include leadimage in image gallery?" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml +msgid "Manage content-related images and attachments" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Media Container" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt +msgid "No attachments uploaded yet" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_images.pt +msgid "No images uploaded yet" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Open Attachment links in new window" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Pictures" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml +msgid "Related Media" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/browser.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/profiles/default/controlpanel.xml +msgid "Related Media Settings" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml +msgid "Related media behavior" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Set first related image as leadimage?" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Show image titles as caption" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Show images in viewlet" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "This is applied on any change." +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Traversable path to media container. We respect IPloneSiteRoot, INavigationRoot and IChildSite (lineage) as \"/\"" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Turn this of if you place an image gallery inside TinyMCE via gallery template to avoid duplicated content." +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml +msgid "Uninstallation profile" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/viewlet_uploader.pt +msgid "Upload related media" +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_images.pt +msgid "edit gallery" +msgstr "" + +#. Default: "Related Attachments" +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "label_attachments" +msgstr "" + +#. Default: "Base Path" +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "label_base_path" +msgstr "" + +#. Default: "Base path for uploaded content. If not given the base path is automatically generated as [configured media root path]/[this id]." +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "label_base_path_desc" +msgstr "" + +#. Default: "Related Images" +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "label_images" +msgstr "" + +#. Default: "Attachments" +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt +msgid "title_attachments" +msgstr "" diff --git a/collective/behavior/relatedmedia/locales/de/LC_MESSAGES/collective.behavior.relatedmedia.po b/collective/behavior/relatedmedia/locales/de/LC_MESSAGES/collective.behavior.relatedmedia.po index 17a82eb5..8c8f80a9 100644 --- a/collective/behavior/relatedmedia/locales/de/LC_MESSAGES/collective.behavior.relatedmedia.po +++ b/collective/behavior/relatedmedia/locales/de/LC_MESSAGES/collective.behavior.relatedmedia.po @@ -1,10 +1,11 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2021-11-30 08:50+0000\n" -"PO-Revision-Date: 2021-11-30 09:50+0100\n" +"POT-Creation-Date: 2024-01-02 12:56+0000\n" +"PO-Revision-Date: 2024-01-02 14:00+0100\n" "Last-Translator: Peter Mathis \n" "Language-Team: \n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -13,170 +14,175 @@ msgstr "" "Language-Name: English\n" "Preferred-Encodings: utf-8 latin1\n" "Domain: DOMAIN\n" -"Language: de\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.4.2\n" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:21 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Create Media Container in Assets Folder (language independent)?" msgstr "Medienordner in sprachneutralem Container erstellen?" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:32 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Create containers for each linked object?" msgstr "Unterordner für verknüpfte Medien erstellen?" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/widget.py:81 -msgid "Created on" -msgstr "erstellt am" - -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:163 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Crop first image" msgstr "Erstes Bild zuschneiden" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:176 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Crop image" msgstr "Bild zuschneiden" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:177 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Crop the image to the selected boundaries above" msgstr "Bilder auf die ausgewählte Größe zuschneiden/skalieren" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:44 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Default gallery class for new articles" msgstr "Standard CSS Klasse für Bildgalerie" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:63 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Default setting for cropping gallery images" msgstr "Bildzuschnitt für Bildgalerie" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:184 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Feel free to add/remove classes in your registry.xml" msgstr "die css Klassen können über das registry.xml angepasst werden" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:126 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Files" msgstr "Dateien" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:38 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Gallery CSS classes" msgstr "Bildgalerie CSS Klassen" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:56 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Gallery default scale" msgstr "Bildgröße für Galerie" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:157 -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:49 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Gallery default scale for first image" msgstr "Bildgröße für das erste Bild in der Bildgalerie" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:170 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Gallery image preview scale" msgstr "Größe der Galeriebilder" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:183 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Gallery layout" msgstr "Galerie Layout CSS Klasse" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:22 -msgid "If True, the Media Container path defined above is generated in the language independend Assets folder. This requires plone.app.multilingual." -msgstr "Wenn aktiviert dann wird der zentrale Medienordner im sprachneutralen „Assets“ Ordner erstellt. Benötigt plone.app.multilingual support." +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "If True, the Media Container path defined above is generated in the language independent Assets folder. This requires plone.app.multilingual." +msgstr "Wenn aktiviert dann wird der Medienordner im sprachunabhängigen \"Assets\" Ordner erstellt. Somit sind alle Medien sprachübergreifend verfügbar. Dies benötigt das installierte Addon \"plone.app.multilingual\"" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:169 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Image scale" msgstr "Größe der weiteren Bilder" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:151 -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:69 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Include leadimage in image gallery?" msgstr "Teaserbild als erstes Bild in der Galerie verwenden?" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml:20 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml msgid "Manage content-related images and attachments" msgstr "Verwaltung von verknüpften Bildern und Dateien" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:11 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Media Container" msgstr "Medienordner" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt:17 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt msgid "No attachments uploaded yet" msgstr "keine Attachments vorhanden" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_images.pt:16 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_images.pt msgid "No images uploaded yet" msgstr "Keine Bilder vorhanden" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:82 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Open Attachment links in new window" msgstr "Link zu verknüpften Dateien in einem neuen Fenster öffnen" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:105 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Pictures" msgstr "Bilder" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:85 -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml:42 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml msgid "Related Media" msgstr "Verknüpfte Medien" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/browser.py:170 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/browser.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/profiles/default/controlpanel.xml msgid "Related Media Settings" msgstr "Einstellungen für verknüpfte Medien" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml:20 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml msgid "Related media behavior" msgstr "Verknüpfte Medien" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:75 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Set first related image as leadimage?" msgstr "Erstes verknüpftes Bild als Teaserbild setzen?" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:145 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Show image titles as caption" msgstr "Zeige Bildtitel als Unterschrift" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:76 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Show images in viewlet" +msgstr "Zeige Bilder im Galerie Viewlet" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "This is applied on any change." msgstr "dies wird bei jeder Änderung gesetzt" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/widget.py:82 -msgid "Title" -msgstr "Titel" - -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:12 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Traversable path to media container. We respect IPloneSiteRoot, INavigationRoot and IChildSite (lineage) as \"/\"" msgstr "Ein Pfad auf einen vorhandenen Ordner entweder auf der Haupebene (IPloneSiteRoot, INavigationRoot) oder einer Subsite (IChildSite, collective.lineage)" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml:28 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Turn this of if you place an image gallery inside TinyMCE via gallery template to avoid duplicated content." +msgstr "Deaktiveren, wenn sie die Galerie innerhalb des formatierbaren Textes platzieren." + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml msgid "Uninstallation profile" msgstr "Deinstallationsprofil" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:83 -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/viewlet_uploader.pt:4 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/viewlet_uploader.pt msgid "Upload related media" msgstr "Verknüpfte Medien hochladen" +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_images.pt +msgid "edit gallery" +msgstr "Galerie bearbeiten" + #. Default: "Related Attachments" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:124 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "label_attachments" msgstr "verknüpfte Downloads" #. Default: "Base Path" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:191 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "label_base_path" msgstr "Medienordner" #. Default: "Base path for uploaded content. If not given the base path is automatically generated as [configured media root path]/[this id]." -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:192 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "label_base_path_desc" msgstr "Alle Bilder und Dateien des Medienordners werden bei diesem Artikel ausgegeben. Beim Erstellen wird dieser Ordner automatisch erstellt." #. Default: "Related Images" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:103 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "label_images" msgstr "verknüpfte Bilder" #. Default: "Attachments" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt:5 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt msgid "title_attachments" msgstr "Downloads" diff --git a/collective/behavior/relatedmedia/locales/en/LC_MESSAGES/collective.behavior.relatedmedia.po b/collective/behavior/relatedmedia/locales/en/LC_MESSAGES/collective.behavior.relatedmedia.po index 13fc2f68..f75b8a52 100644 --- a/collective/behavior/relatedmedia/locales/en/LC_MESSAGES/collective.behavior.relatedmedia.po +++ b/collective/behavior/relatedmedia/locales/en/LC_MESSAGES/collective.behavior.relatedmedia.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2021-11-30 08:50+0000\n" +"POT-Creation-Date: 2024-01-02 12:56+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -14,167 +14,173 @@ msgstr "" "Preferred-Encodings: utf-8 latin1\n" "Domain: DOMAIN\n" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:21 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Create Media Container in Assets Folder (language independent)?" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:32 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Create containers for each linked object?" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/widget.py:81 -msgid "Created on" -msgstr "" - -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:163 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Crop first image" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:176 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Crop image" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:177 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Crop the image to the selected boundaries above" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:44 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Default gallery class for new articles" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:63 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Default setting for cropping gallery images" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:184 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Feel free to add/remove classes in your registry.xml" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:126 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Files" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:38 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Gallery CSS classes" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:56 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Gallery default scale" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:157 -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:49 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Gallery default scale for first image" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:170 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Gallery image preview scale" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:183 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Gallery layout" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:22 -msgid "If True, the Media Container path defined above is generated in the language independend Assets folder. This requires plone.app.multilingual." +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "If True, the Media Container path defined above is generated in the language independent Assets folder. This requires plone.app.multilingual." msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:169 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Image scale" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:151 -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:69 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Include leadimage in image gallery?" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml:20 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml msgid "Manage content-related images and attachments" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:11 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Media Container" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt:17 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt msgid "No attachments uploaded yet" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_images.pt:16 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_images.pt msgid "No images uploaded yet" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:82 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Open Attachment links in new window" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:105 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "Pictures" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:85 -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml:42 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml msgid "Related Media" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/browser.py:170 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/browser.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/profiles/default/controlpanel.xml msgid "Related Media Settings" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml:20 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml msgid "Related media behavior" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:75 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Set first related image as leadimage?" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:145 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Show image titles as caption" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:76 -msgid "This is applied on any change." +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "Show images in viewlet" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/widget.py:82 -msgid "Title" +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py +msgid "This is applied on any change." msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py:12 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/interfaces.py msgid "Traversable path to media container. We respect IPloneSiteRoot, INavigationRoot and IChildSite (lineage) as \"/\"" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml:28 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py +msgid "Turn this of if you place an image gallery inside TinyMCE via gallery template to avoid duplicated content." +msgstr "" + +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/configure.zcml msgid "Uninstallation profile" msgstr "" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:83 -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/viewlet_uploader.pt:4 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/viewlet_uploader.pt msgid "Upload related media" msgstr "" +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_images.pt +msgid "edit gallery" +msgstr "" + #. Default: "Related Attachments" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:124 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "label_attachments" msgstr "" #. Default: "Base Path" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:191 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "label_base_path" msgstr "" #. Default: "Base path for uploaded content. If not given the base path is automatically generated as [configured media root path]/[this id]." -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:192 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "label_base_path_desc" msgstr "" #. Default: "Related Images" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py:103 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/behavior.py msgid "label_images" msgstr "" #. Default: "Attachments" -#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt:5 +#: collective.behavior.relatedmedia/collective/behavior/relatedmedia/related_attachments.pt msgid "title_attachments" msgstr "" diff --git a/collective/behavior/relatedmedia/profiles/default/browserlayer.xml b/collective/behavior/relatedmedia/profiles/default/browserlayer.xml index 090058e2..5b88fd44 100644 --- a/collective/behavior/relatedmedia/profiles/default/browserlayer.xml +++ b/collective/behavior/relatedmedia/profiles/default/browserlayer.xml @@ -1,5 +1,6 @@ - + - + diff --git a/collective/behavior/relatedmedia/profiles/default/controlpanel.xml b/collective/behavior/relatedmedia/profiles/default/controlpanel.xml index 9f824c19..ab443281 100644 --- a/collective/behavior/relatedmedia/profiles/default/controlpanel.xml +++ b/collective/behavior/relatedmedia/profiles/default/controlpanel.xml @@ -1,20 +1,20 @@ - - + + - - Manage portal - + + Manage portal + diff --git a/collective/behavior/relatedmedia/profiles/default/metadata.xml b/collective/behavior/relatedmedia/profiles/default/metadata.xml index b6bd42a6..613fb4b3 100644 --- a/collective/behavior/relatedmedia/profiles/default/metadata.xml +++ b/collective/behavior/relatedmedia/profiles/default/metadata.xml @@ -1,4 +1,4 @@ - + - 3000 + 3002 diff --git a/collective/behavior/relatedmedia/profiles/default/registry.xml b/collective/behavior/relatedmedia/profiles/default/registry.xml index 960801d4..33768f21 100644 --- a/collective/behavior/relatedmedia/profiles/default/registry.xml +++ b/collective/behavior/relatedmedia/profiles/default/registry.xml @@ -1,28 +1,62 @@ - + - + - /media - False - - floatLeft - floatRight - fullWidth - - fullWidth - False - True + /media + False + + floatLeft + floatRight + fullWidth + + fullWidth + False + True + True - + - - True - python: member is not None - ++plone++collective.behavior.relatedmedia.resources/relatedmedia.js - - False - False - + + True + + ++plone++collective.behavior.relatedmedia.resources/bundles/relatedmedia-remote.min.js + + False + False + + + + + data-pat-related-images + + + + + + [ +{ + "title": "Gallery", + "description": "Adds a placeholder for a gallery. You can choose which images to display.", + "url": "++plone++collective.behavior.relatedmedia.resources/tinymce_gallery.html" +} +] + + + template + + diff --git a/collective/behavior/relatedmedia/profiles/default/types/Document.xml b/collective/behavior/relatedmedia/profiles/default/types/Document.xml index 374bfecd..43431fe3 100644 --- a/collective/behavior/relatedmedia/profiles/default/types/Document.xml +++ b/collective/behavior/relatedmedia/profiles/default/types/Document.xml @@ -1,7 +1,12 @@ - - - - - + + + + + diff --git a/collective/behavior/relatedmedia/profiles/uninstall/browserlayer.xml b/collective/behavior/relatedmedia/profiles/uninstall/browserlayer.xml index 0f681ee0..d9012d96 100644 --- a/collective/behavior/relatedmedia/profiles/uninstall/browserlayer.xml +++ b/collective/behavior/relatedmedia/profiles/uninstall/browserlayer.xml @@ -1,6 +1,7 @@ - + - + diff --git a/collective/behavior/relatedmedia/profiles/uninstall/controlpanel.xml b/collective/behavior/relatedmedia/profiles/uninstall/controlpanel.xml index fce7c2c5..0e9b97f7 100644 --- a/collective/behavior/relatedmedia/profiles/uninstall/controlpanel.xml +++ b/collective/behavior/relatedmedia/profiles/uninstall/controlpanel.xml @@ -1,13 +1,13 @@ - - + + - + diff --git a/collective/behavior/relatedmedia/profiles/uninstall/registry.xml b/collective/behavior/relatedmedia/profiles/uninstall/registry.xml index 099d1281..d45b5dd8 100644 --- a/collective/behavior/relatedmedia/profiles/uninstall/registry.xml +++ b/collective/behavior/relatedmedia/profiles/uninstall/registry.xml @@ -1,11 +1,14 @@ - + - + - + diff --git a/collective/behavior/relatedmedia/profiles/uninstall/types/Document.xml b/collective/behavior/relatedmedia/profiles/uninstall/types/Document.xml index dc948745..c1ade6e8 100644 --- a/collective/behavior/relatedmedia/profiles/uninstall/types/Document.xml +++ b/collective/behavior/relatedmedia/profiles/uninstall/types/Document.xml @@ -1,7 +1,14 @@ - - - - - + + + + + diff --git a/collective/behavior/relatedmedia/profiles/upgrades/local_config/registry.xml b/collective/behavior/relatedmedia/profiles/upgrades/local_config/registry.xml index ec7c2924..38a56245 100644 --- a/collective/behavior/relatedmedia/profiles/upgrades/local_config/registry.xml +++ b/collective/behavior/relatedmedia/profiles/upgrades/local_config/registry.xml @@ -1,8 +1,18 @@ - + - - - - - + + + + + diff --git a/collective/behavior/relatedmedia/profiles/upgrades/package_rename/registry.xml b/collective/behavior/relatedmedia/profiles/upgrades/package_rename/registry.xml index 6aa22b49..222910a7 100644 --- a/collective/behavior/relatedmedia/profiles/upgrades/package_rename/registry.xml +++ b/collective/behavior/relatedmedia/profiles/upgrades/package_rename/registry.xml @@ -1,8 +1,18 @@ - + - - - - - + + + + + diff --git a/collective/behavior/relatedmedia/profiles/upgrades/package_rename/types/Document.xml b/collective/behavior/relatedmedia/profiles/upgrades/package_rename/types/Document.xml index 4a362fe6..8a3756c5 100644 --- a/collective/behavior/relatedmedia/profiles/upgrades/package_rename/types/Document.xml +++ b/collective/behavior/relatedmedia/profiles/upgrades/package_rename/types/Document.xml @@ -1,7 +1,14 @@ - - - - - + + + + + diff --git a/collective/behavior/relatedmedia/profiles/upgrades/registry_cleanup/registry.xml b/collective/behavior/relatedmedia/profiles/upgrades/registry_cleanup/registry.xml index fad8df6c..9a71d657 100644 --- a/collective/behavior/relatedmedia/profiles/upgrades/registry_cleanup/registry.xml +++ b/collective/behavior/relatedmedia/profiles/upgrades/registry_cleanup/registry.xml @@ -1,6 +1,9 @@ - + - + diff --git a/collective/behavior/relatedmedia/related_attachments.pt b/collective/behavior/relatedmedia/related_attachments.pt index 810d697d..e6a2f09c 100644 --- a/collective/behavior/relatedmedia/related_attachments.pt +++ b/collective/behavior/relatedmedia/related_attachments.pt @@ -1,19 +1,33 @@ -
-

Attachments

-
diff --git a/collective/behavior/relatedmedia/related_images.pt b/collective/behavior/relatedmedia/related_images.pt index c051dc9a..18831790 100644 --- a/collective/behavior/relatedmedia/related_images.pt +++ b/collective/behavior/relatedmedia/related_images.pt @@ -1,21 +1,40 @@ -