diff --git a/CHANGES.rst b/CHANGES.rst index 40c2f8b2..4dcc0b1a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,12 @@ Changelog 1.8 (unreleased) ---------------- +- Add Spanish translation. + [macagua] + +- Add i18n support. + [macagua] + - Fix html: improve mapping from scale to picture variant. [maurits] - Allow overriding the fallback variant in img_variant_fixer. diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index 615546a1..f8dc16dc 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -5,4 +5,6 @@ Contributors - Maurits van Rees, m.van.rees@zestsoftware.nl -- Fred van Dijk, f.van.dijk@zestsoftware.nl \ No newline at end of file +- Fred van Dijk, f.van.dijk@zestsoftware.nl + +- Leonardo J. Caballero G., leonardocaballero@gmail.com diff --git a/README.rst b/README.rst index 5dfc4f73..a2ff6b2b 100644 --- a/README.rst +++ b/README.rst @@ -27,7 +27,7 @@ Export and import all kinds of data from and to Plone sites using a intermediate The main use-case is migrations since it enables you to for example migrate from Plone 4 with Archetypes and Python 2 to Plone 6 with Dexterity and Python 3 in one step. Most features use `plone.restapi` to serialize and deserialize data. -See also the training on migrating with exportimport: https://training.plone.org/migrations/exportimport.html +See also the training on migrating with ``exportimport``: https://training.plone.org/migrations/exportimport.html .. contents:: Contents :local: @@ -96,7 +96,7 @@ When a in-place-migration is not required you can choose this addon to migrate t * Export content from a Plone site (it supports Plone 4 and 5, Archetypes and Dexterity, Python 2 and 3). * Import the exported content into a new site (Plone 5.2+, Dexterity, Python 3) -* Export and import relations, users and groups with their roles, translations, local roles, ordering, dedault-pages, comments, portlets and redirects. +* Export and import relations, users and groups with their roles, translations, local roles, ordering, default-pages, comments, portlets and redirects. How to migrate additional features like Annotations or Marker Interfaces is discussed in the FAQ section. @@ -107,7 +107,7 @@ You can use this addon to * Archive your content as json * Export data to prepare a migration to another system -* Combine content from mutiple plone-sites into one. +* Combine content from multiple plone-sites into one. * Import a plone-site as a subsite into another. * Import content from other systems as long as it fits the required format. * Update or replace existing data @@ -156,8 +156,8 @@ To fix this you can check the checkbox "Modify exported data for migrations". This will modify the data during export: * Drop unused data (e.g. `next_item` and `components`) -* Remove all relationfields -* Change some fieldnames that changed between AT and DX +* Remove all relation fields +* Change some field names that changed between Archetypes and Dexterity * ``excludeFromNav`` → ``exclude_from_nav`` * ``allowDiscussion`` → ``allow_discussion`` @@ -174,8 +174,8 @@ This will modify the data during export: * ``contactName`` → ``contact_name`` * ``contactPhone`` → ``contact_phone`` -* Update view names on Folders and Collection thet changed since Plone 4. -* Export ATTopic and their criteria to Collections with querystrings. +* Update view names on Folders and Collection that changed since Plone 4. +* Export ``ATTopic`` and their criteria to Collections with querystrings. * Update Collection-criteria. * Links and images in Richtext-Fields of content and portlets have changes since Plone 4. the view ``/@@fix_html`` allows you to fix these. @@ -191,8 +191,8 @@ You can choose between four options how to deal with content that already exists * Update: Reuse and only overwrite imported data * Ignore: Create with a new id -Imported content is initially created with ``invokeFactory`` using portal_type and id of the exported item before deserialing the rest of the data. -You can set additional values by specifying a dict ``factory_kwargs`` that will be passed to the facory. +Imported content is initially created with ``invokeFactory`` using portal_type and id of the exported item before deserializing the rest of the data. +You can set additional values by specifying a dict ``factory_kwargs`` that will be passed to the factory. Like this you can set values on the imported object that are expected to be there by subscribers to IObjectAddedEvent. @@ -558,7 +558,7 @@ Here we drop empty lines from the creators: item["creators"] = [i for i in item.get("creators", []) if i] return item -This example migrates a PloneHelpCenter to a simple folder/document structure during import. +This example migrates a ``PloneHelpCenter`` to a simple folder/document structure during import. There are a couple more types to handle (as folder or document) but you get the idea, don't you? .. code-block:: python @@ -834,7 +834,7 @@ It may also happen, when you have validators that rely on content or configurati .. note:: - For relationfields this is not necessary since relations are imported after content anyway! + For relation fields this is not necessary since relations are imported after content anyway! There are two ways to handle these issues: @@ -1279,7 +1279,7 @@ This custom export exports and imports some selected settings and addons from a **Import:** The import installs the addons and load the settings in the registry. -Since Plone 5 portal_properties is no longer used. +Since Plone 5 ``portal_properties`` is no longer used. .. code-block:: python @@ -1450,7 +1450,7 @@ Export: ) return actions -Import exported PloneFormGen data into Easyform: +Import exported ``PloneFormGen`` data into ``Easyform``: .. code-block:: python @@ -2131,6 +2131,13 @@ Written by :alt: Starzel.de +Translations +============ + +This product has been translated into + +- Spanish + Installation ============ @@ -2147,14 +2154,14 @@ Install collective.exportimport by adding it to your buildout:: and then running ``bin/buildout`` -You don't need to activate the add-on in the Site Setup Add-ons control panel to be able to use the forms @@export_content and @@import_content in your site. +You don't need to activate the add-on in the Site Setup Add-ons control panel to be able to use the forms ``@@export_content`` and ``@@import_content`` in your site. You do need to add it to your buildout configuration and run buildout to make these features available at all. See https://docs.plone.org/manage/installing/installing_addons.html for details. Installing in Plone 4 --------------------- -collective.exportimport depends on plone.restapi . For Plone 4, you need to pin plone.restapi to 7.x . When installing plone.restapi version 7.x.x in Plone 4 you may need to add the following version pins to your buildout:: +``collective.exportimport`` depends on ``plone.restapi``. For Plone 4, you need to pin ``plone.restapi`` to 7.x . When installing ``plone.restapi`` version 7.x.x in Plone 4 you may need to add the following version pins to your buildout:: [versions] PyJWT = 1.7.1 @@ -2191,8 +2198,7 @@ collective.exportimport depends on plone.restapi . For Plone 4, you need to pin contextlib2 = 0.6.0.post1 -These versions are taken from the plone.restapi 7.x README: https://pypi.org/project/plone.restapi/7.8.1/ - +These versions are taken from the ``plone.restapi`` 7.x README: https://pypi.org/project/plone.restapi/7.8.1/ Contribute diff --git a/src/collective/exportimport/export_content.py b/src/collective/exportimport/export_content.py index 3bf06e5c..fe9eb177 100644 --- a/src/collective/exportimport/export_content.py +++ b/src/collective/exportimport/export_content.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from Acquisition import aq_base from App.config import getConfiguration +from collective.exportimport import _ from collective.exportimport import config from collective.exportimport.interfaces import IBase64BlobsMarker from collective.exportimport.interfaces import IMigrationMarker @@ -119,7 +120,7 @@ def __call__( self.depth = int(depth) self.depth_options = ( - ("-1", "unlimited"), + ("-1", _(u"unlimited")), ("0", "0"), ("1", "1"), ("2", "2"), @@ -134,9 +135,9 @@ def __call__( ) self.include_blobs = int(include_blobs) self.include_blobs_options = ( - ("0", "as download urls"), - ("1", "as base-64 encoded strings"), - ("2", "as blob paths"), + ("0", _(u"as download urls")), + ("1", _(u"as base-64 encoded strings")), + ("2", _(u"as blob paths")), ) self.include_revisions = include_revisions @@ -146,7 +147,7 @@ def __call__( return self.template() if not self.portal_type: - api.portal.show_message(u"Select at least one type to export", self.request) + api.portal.show_message(_(u"Select at least one type to export"), self.request) return self.template() if self.include_blobs == 1: @@ -194,7 +195,7 @@ def __call__( json.dump(datum, f, sort_keys=True, indent=4) if number: f.write("]") - msg = u"Exported {} items ({}) as {} to {}".format( + msg = _(u"Exported {} items ({}) as {} to {}").format( number, ", ".join(self.portal_type), filename, filepath ) logger.info(msg) @@ -218,7 +219,7 @@ def __call__( json.dump(datum, f, sort_keys=True, indent=4) if number: f.write("]") - msg = u"Exported {} {}".format(number, self.portal_type) + msg = _(u"Exported {} {}").format(number, self.portal_type) logger.info(msg) api.portal.show_message(msg, self.request) response = self.request.response diff --git a/src/collective/exportimport/export_other.py b/src/collective/exportimport/export_other.py index 51189885..1dc8a5de 100644 --- a/src/collective/exportimport/export_other.py +++ b/src/collective/exportimport/export_other.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from Acquisition import aq_base from App.config import getConfiguration +from collective.exportimport import _ from collective.exportimport import config from OFS.interfaces import IOrderedContainer from operator import itemgetter @@ -80,7 +81,7 @@ class BaseExport(BrowserView): def download(self, data): filename = u"{}.json".format(self.__name__) if not data: - msg = u"No data to export for {}".format(self.__name__) + msg = _(u"No data to export for {}").format(self.__name__) logger.info(msg) api.portal.show_message(msg, self.request) return self.request.response.redirect(self.request["ACTUAL_URL"]) @@ -97,7 +98,7 @@ def download(self, data): filepath = os.path.join(directory, filename) with open(filepath, "w") as f: json.dump(data, f, sort_keys=True, indent=4) - msg = u"Exported to {}".format(filepath) + msg = _(u"Exported to {}").format(filepath) logger.info(msg) api.portal.show_message(msg, self.request) return self.request.response.redirect(self.request["ACTUAL_URL"]) @@ -121,7 +122,7 @@ class ExportRelations(BaseExport): def __call__( self, download_to_server=False, debug=False, include_linkintegrity=False ): - self.title = "Export relations" + self.title = _(u"Export relations") self.download_to_server = download_to_server if not self.request.form.get("form.submitted", False): return self.index() @@ -229,7 +230,7 @@ class ExportMembers(BaseExport): def __init__(self, context, request): super(ExportMembers, self).__init__(context, request) self.pms = api.portal.get_tool("portal_membership") - self.title = "Export members, groups and roles" + self.title = _(u"Export members, groups and roles") self.group_roles = {} def __call__(self, download_to_server=False): @@ -327,7 +328,7 @@ class ExportTranslations(BaseExport): DROP_PATH = [] def __call__(self, download_to_server=False): - self.title = "Export translations" + self.title = _(u"Export translations") self.download_to_server = download_to_server if not self.request.form.get("form.submitted", False): return self.index() @@ -409,7 +410,7 @@ class ExportLocalRoles(BaseExport): """Export all local roles""" def __call__(self, download_to_server=False): - self.title = "Export local roles" + self.title = _(u"Export local roles") self.download_to_server = download_to_server if not self.request.form.get("form.submitted", False): return self.index() @@ -466,7 +467,7 @@ class ExportOrdering(BaseExport): """Export all local roles""" def __call__(self, download_to_server=False): - self.title = "Export ordering" + self.title = _(u"Export ordering") self.download_to_server = download_to_server if not self.request.form.get("form.submitted", False): return self.index() @@ -502,7 +503,7 @@ class ExportDefaultPages(BaseExport): """Export all default_page settings.""" def __call__(self, download_to_server=False): - self.title = "Export default pages" + self.title = _(u"Export default pages") self.download_to_server = download_to_server if not self.request.form.get("form.submitted", False): return self.index() @@ -581,7 +582,7 @@ def get_default_page_info(self, obj): class ExportDiscussion(BaseExport): def __call__(self, download_to_server=False): - self.title = "Export comments" + self.title = _(u"Export comments") self.download_to_server = download_to_server if not self.request.form.get("form.submitted", False): return self.index() @@ -620,7 +621,7 @@ def all_discussions(self): class ExportPortlets(BaseExport): def __call__(self, download_to_server=False): - self.title = "Export portlets" + self.title = _(u"Export portlets") self.download_to_server = download_to_server if not self.request.form.get("form.submitted", False): return self.index() @@ -755,7 +756,7 @@ def export_plone_redirects(): class ExportRedirects(BaseExport): def __call__(self, download_to_server=False): - self.title = "Export redirects" + self.title = _(u"Export redirects") self.download_to_server = download_to_server if not self.request.form.get("form.submitted", False): return self.index() diff --git a/src/collective/exportimport/fix_html.py b/src/collective/exportimport/fix_html.py index 0d018f2b..2edf2b90 100644 --- a/src/collective/exportimport/fix_html.py +++ b/src/collective/exportimport/fix_html.py @@ -1,6 +1,7 @@ # -*- coding: UTF-8 -*- from Acquisition import aq_parent from bs4 import BeautifulSoup +from collective.exportimport import _ from collections import defaultdict from logging import getLogger from plone import api @@ -39,7 +40,7 @@ class FixHTML(BrowserView): def __call__(self): - self.title = "Fix links to content and images in richtext" + self.title = _(u"Fix links to content and images in richtext") if not self.request.form.get("form.submitted", False): return self.index() commit = self.request.form.get("form.commit", True) @@ -47,11 +48,11 @@ def __call__(self): msg = [] fix_count = fix_html_in_content_fields(context=self.context, commit=commit) - msg.append(u"Fixed HTML for {} fields in content items".format(fix_count)) + msg.append(_(u"Fixed HTML for {} fields in content items").format(fix_count)) logger.info(msg[-1]) fix_count = fix_html_in_portlets(context=self.context) - msg.append(u"Fixed HTML for {} portlets".format(fix_count)) + msg.append(_(u"Fixed HTML for {} portlets").format(fix_count)) logger.info(msg[-1]) # TODO: Fix html in tiles diff --git a/src/collective/exportimport/import_content.py b/src/collective/exportimport/import_content.py index a7ae97cf..192ecefb 100644 --- a/src/collective/exportimport/import_content.py +++ b/src/collective/exportimport/import_content.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- from Acquisition import aq_base +from collective.exportimport import _ from collective.exportimport import config from collective.exportimport.interfaces import IMigrationMarker from datetime import datetime @@ -120,10 +121,10 @@ def __call__( self.handle_existing_content = int(request.get("handle_existing_content", 0)) self.handle_existing_content_options = ( - ("0", "Skip: Don't import at all"), - ("1", "Replace: Delete item and create new"), - ("2", "Update: Reuse and only overwrite imported data"), - ("3", "Ignore: Create with a new id"), + ("0", _("Skip: Don't import at all")), + ("1", _("Replace: Delete item and create new")), + ("2", _("Update: Reuse and only overwrite imported data")), + ("3", _("Ignore: Create with a new id")), ) self.import_old_revisions = request.get("import_old_revisions", False) @@ -139,7 +140,7 @@ def __call__( # This is an error. But when you upload 10 GB AND select a server file, # it is a pity when you would have to upload again. api.portal.show_message( - u"json file was uploaded, so the selected server file was ignored.", + _(u"json file was uploaded, so the selected server file was ignored."), request=self.request, type="warn", ) @@ -156,7 +157,7 @@ def __call__( close_file = True break else: - msg = "File '{}' not found on server.".format(server_file) + msg = _("File '{}' not found on server.").format(server_file) api.portal.show_message(msg, request=self.request, type="warn") server_file = None status = "error" @@ -175,7 +176,7 @@ def __call__( status = "error" msg = str(e) api.portal.show_message( - u"Exception during uplad: {}".format(e), + _(u"Exception during upload: {}").format(e), request=self.request, ) else: @@ -956,16 +957,16 @@ def fix_portal_type(portal_type): class ResetModifiedAndCreatedDate(BrowserView): def __call__(self): - self.title = "Reset creation and modification date" - self.help_text = """

Creation- and modification-dates are changed during import. - This resets them to the original dates of the imported content.

""" + self.title = _(u"Reset creation and modification date") + self.help_text = _("

Creation- and modification-dates are changed during import." \ + "This resets them to the original dates of the imported content.

") if not self.request.form.get("form.submitted", False): return self.index() portal = api.portal.get() portal.ZopeFindAndApply(portal, search_sub=True, apply_func=reset_dates) - msg = "Finished resetting creation and modification dates." + msg = _(u"Finished resetting creation and modification dates.") logger.info(msg) api.portal.show_message(msg, self.request) return self.index() @@ -987,12 +988,12 @@ def reset_dates(obj, path): class FixCollectionQueries(BrowserView): def __call__(self): - self.title = "Fix collection queries" - self.help_text = """

This fixes invalid collection-criteria that were imported from Plone 4 or 5.

""" + self.title = _(u"Fix collection queries") + self.help_text = _(u"""

This fixes invalid collection-criteria that were imported from Plone 4 or 5.

""") if not HAS_COLLECTION_FIX: api.portal.show_message( - "plone.app.querystring.upgrades.fix_select_all_existing_collections is not available", + _(u"plone.app.querystring.upgrades.fix_select_all_existing_collections is not available"), self.request, ) return self.index() @@ -1002,6 +1003,6 @@ def __call__(self): portal = api.portal.get() fix_select_all_existing_collections(portal) - msg = "Finished fixing collection queries." + msg = _("Finished fixing collection queries.") api.portal.show_message(msg, self.request) return self.index() diff --git a/src/collective/exportimport/import_other.py b/src/collective/exportimport/import_other.py index 78c8c806..024e8176 100644 --- a/src/collective/exportimport/import_other.py +++ b/src/collective/exportimport/import_other.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from Acquisition import aq_base from BTrees.LLBTree import LLSet +from collective.exportimport import _ from collective.exportimport import config from datetime import datetime from OFS.interfaces import IOrderedContainer @@ -87,7 +88,7 @@ def __call__(self, jsonfile=None, return_json=False): status = "error" msg = e api.portal.show_message( - u"Failure while uploading: {}".format(e), + _(u"Failure while uploading: {}").format(e), request=self.request, ) else: @@ -191,13 +192,13 @@ def __call__(self, jsonfile=None, return_json=False): status = "error" logger.error(e) api.portal.show_message( - u"Failure while uploading: {}".format(e), + _(u"Failure while uploading: {}").format(e), request=self.request, ) else: groups = self.import_groups(data["groups"]) members = self.import_members(data["members"]) - msg = u"Imported {} groups and {} members".format(groups, members) + msg = _(u"Imported {} groups and {} members").format(groups, members) api.portal.show_message(msg, self.request) if return_json: msg = {"state": status, "msg": msg} @@ -284,7 +285,7 @@ def __call__(self, jsonfile=None, return_json=False): if not HAS_RELAPI and not HAS_PLONE6: api.portal.show_message( - "You need either Plone 6 or collective.relationhelpers to import relations", + _("You need either Plone 6 or collective.relationhelpers to import relations"), self.request, ) return self.index() @@ -303,7 +304,7 @@ def __call__(self, jsonfile=None, return_json=False): except Exception as e: status = "error" logger.error(e) - msg = u"Failure while uploading: {}".format(e) + msg = _(u"Failure while uploading: {}").format(e) api.portal.show_message(msg, request=self.request) else: msg = self.do_import(data) @@ -383,12 +384,12 @@ def __call__(self, jsonfile=None, return_json=False): status = "error" logger.error(e) api.portal.show_message( - u"Failure while uploading: {}".format(e), + _(u"Failure while uploading: {}").format(e), request=self.request, ) else: localroles = self.import_localroles(data) - msg = u"Imported {} localroles".format(localroles) + msg = _(u"Imported {} localroles").format(localroles) api.portal.show_message(msg, self.request) if return_json: msg = {"state": status, "msg": msg} @@ -452,7 +453,7 @@ def __call__(self, jsonfile=None, return_json=False): status = "error" logger.error(e) api.portal.show_message( - u"Failure while uploading: {}".format(e), + _(u"Failure while uploading: {}").format(e), request=self.request, ) else: @@ -460,7 +461,7 @@ def __call__(self, jsonfile=None, return_json=False): orders = self.import_ordering(data) end = datetime.now() delta = end - start - msg = u"Imported {} orders in {} seconds".format(orders, delta.seconds) + msg = _(u"Imported {} orders in {} seconds").format(orders, delta.seconds) logger.info(msg) api.portal.show_message(msg, self.request) if return_json: @@ -513,7 +514,7 @@ def __call__(self, jsonfile=None, return_json=False): ) else: defaultpages = self.import_default_pages(data) - msg = u"Changed {} default pages".format(defaultpages) + msg = _(u"Changed {} default pages").format(defaultpages) api.portal.show_message(msg, self.request) if return_json: msg = {"state": status, "msg": msg} @@ -581,12 +582,12 @@ def __call__(self, jsonfile=None, return_json=False): status = "error" logger.error(e) api.portal.show_message( - u"Failure while uploading: {}".format(e), + _(u"Failure while uploading: {}").format(e), request=self.request, ) else: results = self.import_data(data) - msg = u"Imported {} comments".format(results) + msg = _(u"Imported {} comments").format(results) api.portal.show_message(msg, self.request) if return_json: msg = {"state": status, "msg": msg} @@ -678,12 +679,12 @@ def __call__(self, jsonfile=None, return_json=False): status = "error" logger.error(e) api.portal.show_message( - u"Failure while uploading: {}".format(e), + _(u"Failure while uploading: {}").format(e), request=self.request, ) else: portlets = self.import_portlets(data) - msg = u"Created {} portlets".format(portlets) + msg = _(u"Created {} portlets").format(portlets) api.portal.show_message(msg, self.request) if return_json: msg = {"state": status, "msg": msg} @@ -813,12 +814,12 @@ def __call__(self, jsonfile=None, return_json=False): status = "error" logger.error(e) api.portal.show_message( - u"Failure while uploading: {}".format(e), + _(u"Failure while uploading: {}").format(e), request=self.request, ) else: import_plone_redirects(data) - msg = u"Redirects imported" + msg = _(u"Redirects imported") api.portal.show_message(msg, self.request) if return_json: msg = {"state": status, "msg": msg} diff --git a/src/collective/exportimport/locales/README.rst b/src/collective/exportimport/locales/README.rst index c0b3cdf5..3e40dd96 100644 --- a/src/collective/exportimport/locales/README.rst +++ b/src/collective/exportimport/locales/README.rst @@ -2,8 +2,8 @@ Adding and updating locales --------------------------- For every language you want to translate into you need a -locales/[language]/LC_MESSAGES/collective.task.po -(e.g. locales/de/LC_MESSAGES/collective.task.po) +``locales/[language]/LC_MESSAGES/collective.exportimport.po`` +(e.g. ``locales/de/LC_MESSAGES/collective.exportimport.po``) For German @@ -20,7 +20,7 @@ For updating locales Note ---- -The script uses gettext package for internationalization. +The script uses ``gettext`` package for internationalization. Install it before running the script. diff --git a/src/collective/exportimport/locales/collective.exportimport.pot b/src/collective/exportimport/locales/collective.exportimport.pot index e69de29b..28cd1181 100644 --- a/src/collective/exportimport/locales/collective.exportimport.pot +++ b/src/collective/exportimport/locales/collective.exportimport.pot @@ -0,0 +1,451 @@ +#--- PLEASE EDIT THE LINES BELOW CORRECTLY --- +#SOME DESCRIPTIVE TITLE. +#FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2023-02-17 02:40+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.exportimport\n" + +#: collective/exportimport/import_content.py:961 +msgid "

Creation- and modification-dates are changed during import.This resets them to the original dates of the imported content.

" +msgstr "" + +#: collective/exportimport/import_content.py:992 +msgid "

This fixes invalid collection-criteria that were imported from Plone 4 or 5.

" +msgstr "" + +#: collective/exportimport/templates/import_redirects.pt:32 +msgid "Beware that this import would work only if you keep the same Plone site id and location in the site !" +msgstr "" + +#: collective/exportimport/import_other.py:517 +msgid "Changed {} default pages" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:30 +msgid "Choose one" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:19 +msgid "Content Types to export" +msgstr "" + +#: collective/exportimport/import_other.py:687 +msgid "Created {} portlets" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:71 +msgid "Depth" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:56 +msgid "Do a commit after each number of items" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:139 +#: collective/exportimport/templates/export_other.pt:19 +msgid "Download to local machine" +msgstr "" + +#: collective/exportimport/import_content.py:179 +msgid "Exception during upload: {}" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:155 +#: collective/exportimport/templates/export_other.pt:32 +msgid "Export" +msgstr "" + +#: collective/exportimport/export_other.py:585 +#: collective/exportimport/templates/links.pt:38 +msgid "Export comments" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:11 +#: collective/exportimport/templates/links.pt:10 +msgid "Export content" +msgstr "" + +#: collective/exportimport/export_other.py:506 +#: collective/exportimport/templates/links.pt:30 +msgid "Export default pages" +msgstr "" + +#: collective/exportimport/export_other.py:413 +#: collective/exportimport/templates/links.pt:26 +msgid "Export local roles" +msgstr "" + +#: collective/exportimport/templates/links.pt:22 +msgid "Export members" +msgstr "" + +#: collective/exportimport/export_other.py:233 +msgid "Export members, groups and roles" +msgstr "" + +#: collective/exportimport/templates/links.pt:34 +msgid "Export object positions in parent" +msgstr "" + +#: collective/exportimport/export_other.py:470 +msgid "Export ordering" +msgstr "" + +#: collective/exportimport/export_other.py:624 +#: collective/exportimport/templates/links.pt:42 +msgid "Export portlets" +msgstr "" + +#: collective/exportimport/export_other.py:759 +#: collective/exportimport/templates/links.pt:46 +msgid "Export redirects" +msgstr "" + +#: collective/exportimport/export_other.py:125 +#: collective/exportimport/templates/links.pt:14 +msgid "Export relations" +msgstr "" + +#: collective/exportimport/export_other.py:331 +#: collective/exportimport/templates/links.pt:18 +msgid "Export translations" +msgstr "" + +#: collective/exportimport/export_other.py:101 +msgid "Exported to {}" +msgstr "" + +#: collective/exportimport/export_content.py:198 +msgid "Exported {} items ({}) as {} to {}" +msgstr "" + +#: collective/exportimport/export_content.py:222 +msgid "Exported {} {}" +msgstr "" + +#: collective/exportimport/templates/links.pt:8 +msgid "Exports" +msgstr "" + +#: collective/exportimport/import_other.py:91 +msgid "Failure while uploading: {}" +msgstr "" + +#: collective/exportimport/import_content.py:160 +msgid "File '{}' not found on server." +msgstr "" + +#: collective/exportimport/templates/import_content.pt:27 +msgid "File on server to import:" +msgstr "" + +#: collective/exportimport/import_content.py:1006 +msgid "Finished fixing collection queries." +msgstr "" + +#: collective/exportimport/import_content.py:969 +msgid "Finished resetting creation and modification dates." +msgstr "" + +#: collective/exportimport/import_content.py:991 +#: collective/exportimport/templates/links.pt:97 +msgid "Fix collection queries" +msgstr "" + +#: collective/exportimport/fix_html.py:43 +#: collective/exportimport/templates/links.pt:101 +msgid "Fix links to content and images in richtext" +msgstr "" + +#: collective/exportimport/fix_html.py:51 +msgid "Fixed HTML for {} fields in content items" +msgstr "" + +#: collective/exportimport/fix_html.py:55 +msgid "Fixed HTML for {} portlets" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:38 +msgid "Handle existing content" +msgstr "" + +#: collective/exportimport/templates/export_other.pt:44 +#: collective/exportimport/templates/import_defaultpages.pt:31 +#: collective/exportimport/templates/import_discussion.pt:31 +msgid "Help" +msgstr "" + +#: collective/exportimport/templates/import_defaultpages.pt:32 +#: collective/exportimport/templates/import_discussion.pt:32 +#: collective/exportimport/templates/import_localroles.pt:32 +msgid "Here is a example for the expected format. This is the format created by collective.exportimport when used for export." +msgstr "" + +#: collective/exportimport/templates/import_redirects.pt:34 +msgid "Here is an example for the expected format. This is the format created by collective.exportimport when used for export." +msgstr "" + +#: collective/exportimport/templates/import_content.pt:13 +#: collective/exportimport/templates/import_defaultpages.pt:13 +#: collective/exportimport/templates/import_discussion.pt:13 +msgid "Here you can upload a json-file." +msgstr "" + +#: collective/exportimport/templates/import_content.pt:39 +msgid "How should content be handled that exists with the same id/path?" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:88 +msgid "How should data from image- and file-fields be included?" +msgstr "" + +#: collective/exportimport/import_content.py:127 +msgid "Ignore: Create with a new id" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:92 +#: collective/exportimport/templates/import_defaultpages.pt:20 +#: collective/exportimport/templates/import_discussion.pt:20 +msgid "Import" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:11 +msgid "Import Content" +msgstr "" + +#: collective/exportimport/templates/import_defaultpages.pt:11 +msgid "Import Default Pages" +msgstr "" + +#: collective/exportimport/templates/import_discussion.pt:11 +msgid "Import Discussion" +msgstr "" + +#: collective/exportimport/templates/import_localroles.pt:11 +msgid "Import Localroles" +msgstr "" + +#: collective/exportimport/templates/import_members.pt:11 +msgid "Import Members, Groups and their Roles" +msgstr "" + +#: collective/exportimport/templates/import_ordering.pt:11 +msgid "Import Object Positions in Parent" +msgstr "" + +#: collective/exportimport/templates/import_redirects.pt:11 +msgid "Import Redirects" +msgstr "" + +#: collective/exportimport/templates/import_relations.pt:11 +msgid "Import Relations" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:71 +msgid "Import all items into the current folder" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:83 +msgid "Import all old revisions" +msgstr "" + +#: collective/exportimport/templates/links.pt:81 +msgid "Import comments" +msgstr "" + +#: collective/exportimport/templates/links.pt:53 +msgid "Import content" +msgstr "" + +#: collective/exportimport/templates/links.pt:73 +msgid "Import default pages" +msgstr "" + +#: collective/exportimport/templates/links.pt:69 +msgid "Import local roles" +msgstr "" + +#: collective/exportimport/templates/links.pt:65 +msgid "Import members" +msgstr "" + +#: collective/exportimport/templates/links.pt:77 +msgid "Import object positions in parent" +msgstr "" + +#: collective/exportimport/templates/import_portlets.pt:11 +#: collective/exportimport/templates/links.pt:85 +msgid "Import portlets" +msgstr "" + +#: collective/exportimport/templates/links.pt:89 +msgid "Import redirects" +msgstr "" + +#: collective/exportimport/templates/links.pt:57 +msgid "Import relations" +msgstr "" + +#: collective/exportimport/templates/import_translations.pt:11 +#: collective/exportimport/templates/links.pt:61 +msgid "Import translations" +msgstr "" + +#: collective/exportimport/import_other.py:590 +msgid "Imported {} comments" +msgstr "" + +#: collective/exportimport/import_other.py:201 +msgid "Imported {} groups and {} members" +msgstr "" + +#: collective/exportimport/import_other.py:392 +msgid "Imported {} localroles" +msgstr "" + +#: collective/exportimport/import_other.py:464 +msgid "Imported {} orders in {} seconds" +msgstr "" + +#: collective/exportimport/templates/links.pt:51 +msgid "Imports" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:87 +msgid "Include blobs" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:129 +msgid "Include revisions." +msgstr "" + +#: collective/exportimport/templates/export_content.pt:113 +msgid "Modify exported data for migrations." +msgstr "" + +#: collective/exportimport/templates/import_redirects.pt:33 +msgid "More code is needed if you have another use case." +msgstr "" + +#: collective/exportimport/export_other.py:84 +msgid "No data to export for {}" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:25 +msgid "No files found." +msgstr "" + +#: collective/exportimport/templates/export_content.pt:63 +msgid "Path" +msgstr "" + +#: collective/exportimport/import_other.py:822 +msgid "Redirects imported" +msgstr "" + +#: collective/exportimport/import_content.py:125 +msgid "Replace: Delete item and create new" +msgstr "" + +#: collective/exportimport/templates/links.pt:93 +msgid "Reset created and modified dates" +msgstr "" + +#: collective/exportimport/import_content.py:960 +msgid "Reset creation and modification date" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:145 +#: collective/exportimport/templates/export_other.pt:25 +msgid "Save to file on server" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:24 +msgid "Select all/none" +msgstr "" + +#: collective/exportimport/export_content.py:150 +msgid "Select at least one type to export" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:13 +msgid "Select which content to export as a json-file." +msgstr "" + +#: collective/exportimport/import_content.py:124 +msgid "Skip: Don't import at all" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:130 +msgid "This exports the content-history (versioning) of each exported item. Warning: This can significantly slow down the export!" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:84 +msgid "This will import the content-history (versioning) for each item that has revisions. Warning: This can significantly slow down the import!" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:72 +msgid "Unlimited: this item and all children, 0: this object only, 1: only direct children of this object, 2-x: children of this object up to the specified level" +msgstr "" + +#: collective/exportimport/import_content.py:126 +msgid "Update: Reuse and only overwrite imported data" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:114 +msgid "Use this if you want to import the data in a newer version of Plone or migrate from Archetypes to Dexterity. Read the documentation to learn which changes are made by this option." +msgstr "" + +#: collective/exportimport/import_other.py:288 +msgid "You need either Plone 6 or collective.relationhelpers to import relations" +msgstr "" + +#: collective/exportimport/export_content.py:139 +msgid "as base-64 encoded strings" +msgstr "" + +#: collective/exportimport/export_content.py:140 +msgid "as blob paths" +msgstr "" + +#: collective/exportimport/export_content.py:138 +msgid "as download urls" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:155 +msgid "export" +msgstr "" + +#: collective/exportimport/import_content.py:143 +msgid "json file was uploaded, so the selected server file was ignored." +msgstr "" + +#. Default: "Toggle all" +#: collective/exportimport/templates/export_content.pt:22 +msgid "label_toggle" +msgstr "" + +#: collective/exportimport/import_content.py:996 +msgid "plone.app.querystring.upgrades.fix_select_all_existing_collections is not available" +msgstr "" + +#. Default: "Or you can choose a file that is already uploaded on the server in one of these paths:" +#: collective/exportimport/templates/import_content.pt:21 +msgid "server_paths_list" +msgstr "" + +#: collective/exportimport/export_content.py:123 +msgid "unlimited" +msgstr "" diff --git a/src/collective/exportimport/locales/en/LC_MESSAGES/collective.exportimport.po b/src/collective/exportimport/locales/en/LC_MESSAGES/collective.exportimport.po index e69de29b..30b2ece5 100644 --- a/src/collective/exportimport/locales/en/LC_MESSAGES/collective.exportimport.po +++ b/src/collective/exportimport/locales/en/LC_MESSAGES/collective.exportimport.po @@ -0,0 +1,448 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2023-02-17 02:40+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: DOMAIN\n" + +#: collective/exportimport/import_content.py:961 +msgid "

Creation- and modification-dates are changed during import.This resets them to the original dates of the imported content.

" +msgstr "" + +#: collective/exportimport/import_content.py:992 +msgid "

This fixes invalid collection-criteria that were imported from Plone 4 or 5.

" +msgstr "" + +#: collective/exportimport/templates/import_redirects.pt:32 +msgid "Beware that this import would work only if you keep the same Plone site id and location in the site !" +msgstr "" + +#: collective/exportimport/import_other.py:517 +msgid "Changed {} default pages" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:30 +msgid "Choose one" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:19 +msgid "Content Types to export" +msgstr "" + +#: collective/exportimport/import_other.py:687 +msgid "Created {} portlets" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:71 +msgid "Depth" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:56 +msgid "Do a commit after each number of items" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:139 +#: collective/exportimport/templates/export_other.pt:19 +msgid "Download to local machine" +msgstr "" + +#: collective/exportimport/import_content.py:179 +msgid "Exception during upload: {}" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:155 +#: collective/exportimport/templates/export_other.pt:32 +msgid "Export" +msgstr "" + +#: collective/exportimport/export_other.py:585 +#: collective/exportimport/templates/links.pt:38 +msgid "Export comments" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:11 +#: collective/exportimport/templates/links.pt:10 +msgid "Export content" +msgstr "" + +#: collective/exportimport/export_other.py:506 +#: collective/exportimport/templates/links.pt:30 +msgid "Export default pages" +msgstr "" + +#: collective/exportimport/export_other.py:413 +#: collective/exportimport/templates/links.pt:26 +msgid "Export local roles" +msgstr "" + +#: collective/exportimport/templates/links.pt:22 +msgid "Export members" +msgstr "" + +#: collective/exportimport/export_other.py:233 +msgid "Export members, groups and roles" +msgstr "" + +#: collective/exportimport/templates/links.pt:34 +msgid "Export object positions in parent" +msgstr "" + +#: collective/exportimport/export_other.py:470 +msgid "Export ordering" +msgstr "" + +#: collective/exportimport/export_other.py:624 +#: collective/exportimport/templates/links.pt:42 +msgid "Export portlets" +msgstr "" + +#: collective/exportimport/export_other.py:759 +#: collective/exportimport/templates/links.pt:46 +msgid "Export redirects" +msgstr "" + +#: collective/exportimport/export_other.py:125 +#: collective/exportimport/templates/links.pt:14 +msgid "Export relations" +msgstr "" + +#: collective/exportimport/export_other.py:331 +#: collective/exportimport/templates/links.pt:18 +msgid "Export translations" +msgstr "" + +#: collective/exportimport/export_other.py:101 +msgid "Exported to {}" +msgstr "" + +#: collective/exportimport/export_content.py:198 +msgid "Exported {} items ({}) as {} to {}" +msgstr "" + +#: collective/exportimport/export_content.py:222 +msgid "Exported {} {}" +msgstr "" + +#: collective/exportimport/templates/links.pt:8 +msgid "Exports" +msgstr "" + +#: collective/exportimport/import_other.py:91 +msgid "Failure while uploading: {}" +msgstr "" + +#: collective/exportimport/import_content.py:160 +msgid "File '{}' not found on server." +msgstr "" + +#: collective/exportimport/templates/import_content.pt:27 +msgid "File on server to import:" +msgstr "" + +#: collective/exportimport/import_content.py:1006 +msgid "Finished fixing collection queries." +msgstr "" + +#: collective/exportimport/import_content.py:969 +msgid "Finished resetting creation and modification dates." +msgstr "" + +#: collective/exportimport/import_content.py:991 +#: collective/exportimport/templates/links.pt:97 +msgid "Fix collection queries" +msgstr "" + +#: collective/exportimport/fix_html.py:43 +#: collective/exportimport/templates/links.pt:101 +msgid "Fix links to content and images in richtext" +msgstr "" + +#: collective/exportimport/fix_html.py:51 +msgid "Fixed HTML for {} fields in content items" +msgstr "" + +#: collective/exportimport/fix_html.py:55 +msgid "Fixed HTML for {} portlets" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:38 +msgid "Handle existing content" +msgstr "" + +#: collective/exportimport/templates/export_other.pt:44 +#: collective/exportimport/templates/import_defaultpages.pt:31 +#: collective/exportimport/templates/import_discussion.pt:31 +msgid "Help" +msgstr "" + +#: collective/exportimport/templates/import_defaultpages.pt:32 +#: collective/exportimport/templates/import_discussion.pt:32 +#: collective/exportimport/templates/import_localroles.pt:32 +msgid "Here is a example for the expected format. This is the format created by collective.exportimport when used for export." +msgstr "" + +#: collective/exportimport/templates/import_redirects.pt:34 +msgid "Here is an example for the expected format. This is the format created by collective.exportimport when used for export." +msgstr "" + +#: collective/exportimport/templates/import_content.pt:13 +#: collective/exportimport/templates/import_defaultpages.pt:13 +#: collective/exportimport/templates/import_discussion.pt:13 +msgid "Here you can upload a json-file." +msgstr "" + +#: collective/exportimport/templates/import_content.pt:39 +msgid "How should content be handled that exists with the same id/path?" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:88 +msgid "How should data from image- and file-fields be included?" +msgstr "" + +#: collective/exportimport/import_content.py:127 +msgid "Ignore: Create with a new id" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:92 +#: collective/exportimport/templates/import_defaultpages.pt:20 +#: collective/exportimport/templates/import_discussion.pt:20 +msgid "Import" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:11 +msgid "Import Content" +msgstr "" + +#: collective/exportimport/templates/import_defaultpages.pt:11 +msgid "Import Default Pages" +msgstr "" + +#: collective/exportimport/templates/import_discussion.pt:11 +msgid "Import Discussion" +msgstr "" + +#: collective/exportimport/templates/import_localroles.pt:11 +msgid "Import Localroles" +msgstr "" + +#: collective/exportimport/templates/import_members.pt:11 +msgid "Import Members, Groups and their Roles" +msgstr "" + +#: collective/exportimport/templates/import_ordering.pt:11 +msgid "Import Object Positions in Parent" +msgstr "" + +#: collective/exportimport/templates/import_redirects.pt:11 +msgid "Import Redirects" +msgstr "" + +#: collective/exportimport/templates/import_relations.pt:11 +msgid "Import Relations" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:71 +msgid "Import all items into the current folder" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:83 +msgid "Import all old revisions" +msgstr "" + +#: collective/exportimport/templates/links.pt:81 +msgid "Import comments" +msgstr "" + +#: collective/exportimport/templates/links.pt:53 +msgid "Import content" +msgstr "" + +#: collective/exportimport/templates/links.pt:73 +msgid "Import default pages" +msgstr "" + +#: collective/exportimport/templates/links.pt:69 +msgid "Import local roles" +msgstr "" + +#: collective/exportimport/templates/links.pt:65 +msgid "Import members" +msgstr "" + +#: collective/exportimport/templates/links.pt:77 +msgid "Import object positions in parent" +msgstr "" + +#: collective/exportimport/templates/import_portlets.pt:11 +#: collective/exportimport/templates/links.pt:85 +msgid "Import portlets" +msgstr "" + +#: collective/exportimport/templates/links.pt:89 +msgid "Import redirects" +msgstr "" + +#: collective/exportimport/templates/links.pt:57 +msgid "Import relations" +msgstr "" + +#: collective/exportimport/templates/import_translations.pt:11 +#: collective/exportimport/templates/links.pt:61 +msgid "Import translations" +msgstr "" + +#: collective/exportimport/import_other.py:590 +msgid "Imported {} comments" +msgstr "" + +#: collective/exportimport/import_other.py:201 +msgid "Imported {} groups and {} members" +msgstr "" + +#: collective/exportimport/import_other.py:392 +msgid "Imported {} localroles" +msgstr "" + +#: collective/exportimport/import_other.py:464 +msgid "Imported {} orders in {} seconds" +msgstr "" + +#: collective/exportimport/templates/links.pt:51 +msgid "Imports" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:87 +msgid "Include blobs" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:129 +msgid "Include revisions." +msgstr "" + +#: collective/exportimport/templates/export_content.pt:113 +msgid "Modify exported data for migrations." +msgstr "" + +#: collective/exportimport/templates/import_redirects.pt:33 +msgid "More code is needed if you have another use case." +msgstr "" + +#: collective/exportimport/export_other.py:84 +msgid "No data to export for {}" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:25 +msgid "No files found." +msgstr "" + +#: collective/exportimport/templates/export_content.pt:63 +msgid "Path" +msgstr "" + +#: collective/exportimport/import_other.py:822 +msgid "Redirects imported" +msgstr "" + +#: collective/exportimport/import_content.py:125 +msgid "Replace: Delete item and create new" +msgstr "" + +#: collective/exportimport/templates/links.pt:93 +msgid "Reset created and modified dates" +msgstr "" + +#: collective/exportimport/import_content.py:960 +msgid "Reset creation and modification date" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:145 +#: collective/exportimport/templates/export_other.pt:25 +msgid "Save to file on server" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:24 +msgid "Select all/none" +msgstr "" + +#: collective/exportimport/export_content.py:150 +msgid "Select at least one type to export" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:13 +msgid "Select which content to export as a json-file." +msgstr "" + +#: collective/exportimport/import_content.py:124 +msgid "Skip: Don't import at all" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:130 +msgid "This exports the content-history (versioning) of each exported item. Warning: This can significantly slow down the export!" +msgstr "" + +#: collective/exportimport/templates/import_content.pt:84 +msgid "This will import the content-history (versioning) for each item that has revisions. Warning: This can significantly slow down the import!" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:72 +msgid "Unlimited: this item and all children, 0: this object only, 1: only direct children of this object, 2-x: children of this object up to the specified level" +msgstr "" + +#: collective/exportimport/import_content.py:126 +msgid "Update: Reuse and only overwrite imported data" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:114 +msgid "Use this if you want to import the data in a newer version of Plone or migrate from Archetypes to Dexterity. Read the documentation to learn which changes are made by this option." +msgstr "" + +#: collective/exportimport/import_other.py:288 +msgid "You need either Plone 6 or collective.relationhelpers to import relations" +msgstr "" + +#: collective/exportimport/export_content.py:139 +msgid "as base-64 encoded strings" +msgstr "" + +#: collective/exportimport/export_content.py:140 +msgid "as blob paths" +msgstr "" + +#: collective/exportimport/export_content.py:138 +msgid "as download urls" +msgstr "" + +#: collective/exportimport/templates/export_content.pt:155 +msgid "export" +msgstr "" + +#: collective/exportimport/import_content.py:143 +msgid "json file was uploaded, so the selected server file was ignored." +msgstr "" + +#. Default: "Toggle all" +#: collective/exportimport/templates/export_content.pt:22 +msgid "label_toggle" +msgstr "" + +#: collective/exportimport/import_content.py:996 +msgid "plone.app.querystring.upgrades.fix_select_all_existing_collections is not available" +msgstr "" + +#. Default: "Or you can choose a file that is already uploaded on the server in one of these paths:" +#: collective/exportimport/templates/import_content.pt:21 +msgid "server_paths_list" +msgstr "" + +#: collective/exportimport/export_content.py:123 +msgid "unlimited" +msgstr "" diff --git a/src/collective/exportimport/locales/es/LC_MESSAGES/collective.exportimport.po b/src/collective/exportimport/locales/es/LC_MESSAGES/collective.exportimport.po new file mode 100644 index 00000000..e640578c --- /dev/null +++ b/src/collective/exportimport/locales/es/LC_MESSAGES/collective.exportimport.po @@ -0,0 +1,461 @@ +# Leonardo J. Caballero G. , 2023. +msgid "" +msgstr "" +"Project-Id-Version: collective.exportimport\n" +"POT-Creation-Date: 2023-02-17 02:33+0000\n" +"PO-Revision-Date: 2023-02-16 22:41-0400\n" +"Last-Translator: Leonardo J. Caballero G. \n" +"Language-Team: ES \n" +"Language: es\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" +"X-Generator: Virtaal 0.7.1\n" +"Language-Code: es\n" +"Language-Name: Español\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: collective.exportimport\n" +"X-Is-Fallback-For: es-ar es-bo es-cl es-co es-cr es-do es-ec es-es es-sv es-gt es-hn es-mx es-ni es-pa es-py es-pe es-pr es-us es-uy es-ve\n" + +#: collective/exportimport/import_content.py:961 +msgid "

Creation- and modification-dates are changed during import.This resets them to the original dates of the imported content.

" +msgstr "" +"

Las fechas de creación y modificación se cambian durante la importación. " +"Esto las restablece a las fechas originales del contenido importado.

" + +#: collective/exportimport/import_content.py:992 +msgid "

This fixes invalid collection-criteria that were imported from Plone 4 or 5.

" +msgstr "

Esto corrige los criterios de recopilación no válidos que se importaron de Plone 4 o 5.

" + +#: collective/exportimport/templates/import_redirects.pt:32 +msgid "Beware that this import would work only if you keep the same Plone site id and location in the site !" +msgstr "" +"¡Tenga en cuenta que esta importación solo funcionaría si mantiene la misma " +"identificación y ubicación del sitio de Plone en el sitio!" + +#: collective/exportimport/import_other.py:517 +msgid "Changed {} default pages" +msgstr "Se cambiaron {} páginas predeterminadas" + +#: collective/exportimport/templates/import_content.pt:30 +msgid "Choose one" +msgstr "Elige uno" + +#: collective/exportimport/templates/export_content.pt:19 +msgid "Content Types to export" +msgstr "Tipos de contenido para exportar" + +#: collective/exportimport/import_other.py:687 +msgid "Created {} portlets" +msgstr "Creados {} portlets" + +#: collective/exportimport/templates/export_content.pt:71 +msgid "Depth" +msgstr "Profundidad" + +#: collective/exportimport/templates/import_content.pt:56 +msgid "Do a commit after each number of items" +msgstr "Haz una confirmación después de cada número de elementos" + +#: collective/exportimport/templates/export_content.pt:139 +#: collective/exportimport/templates/export_other.pt:19 +msgid "Download to local machine" +msgstr "Descargar a la máquina local" + +#: collective/exportimport/import_content.py:179 +msgid "Exception during upload: {}" +msgstr "Excepción durante la carga: {}" + +#: collective/exportimport/templates/export_content.pt:155 +#: collective/exportimport/templates/export_other.pt:32 +msgid "Export" +msgstr "Exportar" + +#: collective/exportimport/export_other.py:585 +#: collective/exportimport/templates/links.pt:38 +msgid "Export comments" +msgstr "Exportar comentarios" + +#: collective/exportimport/templates/export_content.pt:11 +#: collective/exportimport/templates/links.pt:10 +msgid "Export content" +msgstr "Exportar contenido" + +#: collective/exportimport/export_other.py:506 +#: collective/exportimport/templates/links.pt:30 +msgid "Export default pages" +msgstr "Exportar páginas predeterminadas" + +#: collective/exportimport/export_other.py:413 +#: collective/exportimport/templates/links.pt:26 +msgid "Export local roles" +msgstr "Exportar roles locales" + +#: collective/exportimport/templates/links.pt:22 +msgid "Export members" +msgstr "Exportar miembros" + +#: collective/exportimport/export_other.py:233 +msgid "Export members, groups and roles" +msgstr "Exportar miembros, grupos y roles" + +#: collective/exportimport/templates/links.pt:34 +msgid "Export object positions in parent" +msgstr "Exportar posiciones de objetos en el padre" + +#: collective/exportimport/export_other.py:470 +msgid "Export ordering" +msgstr "Exportar ordenamiento" + +#: collective/exportimport/export_other.py:624 +#: collective/exportimport/templates/links.pt:42 +msgid "Export portlets" +msgstr "Exportar portlets" + +#: collective/exportimport/export_other.py:759 +#: collective/exportimport/templates/links.pt:46 +msgid "Export redirects" +msgstr "Exportar redireccionamientos" + +#: collective/exportimport/export_other.py:125 +#: collective/exportimport/templates/links.pt:14 +msgid "Export relations" +msgstr "Exportar relaciones" + +#: collective/exportimport/export_other.py:331 +#: collective/exportimport/templates/links.pt:18 +msgid "Export translations" +msgstr "Exportar traducciones" + +#: collective/exportimport/export_other.py:101 +msgid "Exported to {}" +msgstr "Exportado a {}" + +#: collective/exportimport/export_content.py:198 +msgid "Exported {} items ({}) as {} to {}" +msgstr "Exportado {} elementos ({}) como {} a {}" + +#: collective/exportimport/export_content.py:222 +msgid "Exported {} {}" +msgstr "Exportado {} {}" + +#: collective/exportimport/templates/links.pt:8 +msgid "Exports" +msgstr "Exportaciones" + +#: collective/exportimport/import_other.py:91 +msgid "Failure while uploading: {}" +msgstr "Error al cargar: {}" + +#: collective/exportimport/import_content.py:160 +msgid "File '{}' not found on server." +msgstr "Archivo '{}' no encontrado en el servidor." + +#: collective/exportimport/templates/import_content.pt:27 +msgid "File on server to import:" +msgstr "Archivo en el servidor para importar:" + +#: collective/exportimport/import_content.py:1006 +msgid "Finished fixing collection queries." +msgstr "Se terminaron de arreglar las consultas de colección." + +#: collective/exportimport/import_content.py:969 +msgid "Finished resetting creation and modification dates." +msgstr "Finalizó el restablecimiento de las fechas de creación y modificación." + +#: collective/exportimport/import_content.py:991 +#: collective/exportimport/templates/links.pt:97 +msgid "Fix collection queries" +msgstr "Arreglar consultas de colección" + +#: collective/exportimport/fix_html.py:43 +#: collective/exportimport/templates/links.pt:101 +msgid "Fix links to content and images in richtext" +msgstr "Corregir enlaces a contenido e imágenes en texto enriquecido" + +#: collective/exportimport/fix_html.py:51 +msgid "Fixed HTML for {} fields in content items" +msgstr "HTML corregido para {} campos en elementos de contenido" + +#: collective/exportimport/fix_html.py:55 +msgid "Fixed HTML for {} portlets" +msgstr "HTML corregido para {} portlets" + +#: collective/exportimport/templates/import_content.pt:38 +msgid "Handle existing content" +msgstr "Manejar el contenido existente" + +#: collective/exportimport/templates/export_other.pt:44 +#: collective/exportimport/templates/import_defaultpages.pt:31 +#: collective/exportimport/templates/import_discussion.pt:31 +msgid "Help" +msgstr "Ayuda" + +#: collective/exportimport/templates/import_defaultpages.pt:32 +#: collective/exportimport/templates/import_discussion.pt:32 +#: collective/exportimport/templates/import_localroles.pt:32 +msgid "Here is a example for the expected format. This is the format created by collective.exportimport when used for export." +msgstr "Aquí hay un ejemplo para el formato esperado. Este es el formato creado por el collective.exportimport cuando se utiliza para la exportación." + +#: collective/exportimport/templates/import_redirects.pt:34 +msgid "Here is an example for the expected format. This is the format created by collective.exportimport when used for export." +msgstr "Aquí hay un ejemplo para el formato esperado. Este es el formato creado por el collective.exportimport cuando se utiliza para la exportación." + +#: collective/exportimport/templates/import_content.pt:13 +#: collective/exportimport/templates/import_defaultpages.pt:13 +#: collective/exportimport/templates/import_discussion.pt:13 +msgid "Here you can upload a json-file." +msgstr "Aquí puede cargar un archivo json." + +#: collective/exportimport/templates/import_content.pt:39 +msgid "How should content be handled that exists with the same id/path?" +msgstr "¿Cómo se debe manejar el contenido que existe con el mismo id/path?" + +#: collective/exportimport/templates/export_content.pt:88 +msgid "How should data from image- and file-fields be included?" +msgstr "¿Cómo se deben incluir los datos de los campos de imagen y archivo?" + +#: collective/exportimport/import_content.py:127 +msgid "Ignore: Create with a new id" +msgstr "Ignorar: Crear con un nuevo id" + +#: collective/exportimport/templates/import_content.pt:92 +#: collective/exportimport/templates/import_defaultpages.pt:20 +#: collective/exportimport/templates/import_discussion.pt:20 +msgid "Import" +msgstr "Importar" + +#: collective/exportimport/templates/import_content.pt:11 +msgid "Import Content" +msgstr "Importar Contenido" + +#: collective/exportimport/templates/import_defaultpages.pt:11 +msgid "Import Default Pages" +msgstr "Importar páginas predeterminadas" + +#: collective/exportimport/templates/import_discussion.pt:11 +msgid "Import Discussion" +msgstr "Importar discusión" + +#: collective/exportimport/templates/import_localroles.pt:11 +msgid "Import Localroles" +msgstr "Importar roles locales" + +#: collective/exportimport/templates/import_members.pt:11 +msgid "Import Members, Groups and their Roles" +msgstr "Importar miembros, grupos y sus roles" + +#: collective/exportimport/templates/import_ordering.pt:11 +msgid "Import Object Positions in Parent" +msgstr "Importar posiciones de objetos en el padre" + +#: collective/exportimport/templates/import_redirects.pt:11 +msgid "Import Redirects" +msgstr "Importar redireccionamientos" + +#: collective/exportimport/templates/import_relations.pt:11 +msgid "Import Relations" +msgstr "Importar relaciones" + +#: collective/exportimport/templates/import_content.pt:71 +msgid "Import all items into the current folder" +msgstr "Importar todos los elementos a la carpeta actual" + +#: collective/exportimport/templates/import_content.pt:83 +msgid "Import all old revisions" +msgstr "Importar todas las revisiones antiguas" + +#: collective/exportimport/templates/links.pt:81 +msgid "Import comments" +msgstr "Importar comentarios" + +#: collective/exportimport/templates/links.pt:53 +msgid "Import content" +msgstr "Importar contenido" + +#: collective/exportimport/templates/links.pt:73 +msgid "Import default pages" +msgstr "Importar páginas predeterminadas" + +#: collective/exportimport/templates/links.pt:69 +msgid "Import local roles" +msgstr "Importar roles locales" + +#: collective/exportimport/templates/links.pt:65 +msgid "Import members" +msgstr "Importar miembros" + +#: collective/exportimport/templates/links.pt:77 +msgid "Import object positions in parent" +msgstr "Importar posiciones de objetos en el padre" + +#: collective/exportimport/templates/import_portlets.pt:11 +#: collective/exportimport/templates/links.pt:85 +msgid "Import portlets" +msgstr "Importar portlets" + +#: collective/exportimport/templates/links.pt:89 +msgid "Import redirects" +msgstr "Importar redireccionamientos" + +#: collective/exportimport/templates/links.pt:57 +msgid "Import relations" +msgstr "Importar relaciones" + +#: collective/exportimport/templates/import_translations.pt:11 +#: collective/exportimport/templates/links.pt:61 +msgid "Import translations" +msgstr "Importar traducciones" + +#: collective/exportimport/import_other.py:590 +msgid "Imported {} comments" +msgstr "Importados {} comentarios" + +#: collective/exportimport/import_other.py:201 +msgid "Imported {} groups and {} members" +msgstr "Importados {} grupos y {} miembros" + +#: collective/exportimport/import_other.py:392 +msgid "Imported {} localroles" +msgstr "Importados {} roles locales" + +#: collective/exportimport/import_other.py:464 +msgid "Imported {} orders in {} seconds" +msgstr "Importados {} ordenes en {} segundos" + +#: collective/exportimport/templates/links.pt:51 +msgid "Imports" +msgstr "Importaciones" + +#: collective/exportimport/templates/export_content.pt:87 +msgid "Include blobs" +msgstr "Incluir blobs" + +#: collective/exportimport/templates/export_content.pt:129 +msgid "Include revisions." +msgstr "Incluir revisiones." + +#: collective/exportimport/templates/export_content.pt:113 +msgid "Modify exported data for migrations." +msgstr "Modificar datos exportados para migraciones." + +#: collective/exportimport/templates/import_redirects.pt:33 +msgid "More code is needed if you have another use case." +msgstr "Se necesita más código si tiene otro caso de uso." + +#: collective/exportimport/export_other.py:84 +msgid "No data to export for {}" +msgstr "No hay datos para exportar {}" + +#: collective/exportimport/templates/import_content.pt:25 +msgid "No files found." +msgstr "No se encontraron archivos." + +#: collective/exportimport/templates/export_content.pt:63 +msgid "Path" +msgstr "Ruta" + +#: collective/exportimport/import_other.py:822 +msgid "Redirects imported" +msgstr "Redirecciones importadas" + +#: collective/exportimport/import_content.py:125 +msgid "Replace: Delete item and create new" +msgstr "Reemplazar: Eliminar elemento y crear nuevo" + +#: collective/exportimport/templates/links.pt:93 +msgid "Reset created and modified dates" +msgstr "Restablecer fechas de creación y modificación" + +#: collective/exportimport/import_content.py:960 +msgid "Reset creation and modification date" +msgstr "Restablecer fecha de creación y modificación" + +#: collective/exportimport/templates/export_content.pt:145 +#: collective/exportimport/templates/export_other.pt:25 +msgid "Save to file on server" +msgstr "Guardar en un archivo en el servidor" + +#: collective/exportimport/templates/export_content.pt:24 +msgid "Select all/none" +msgstr "Seleccionar todo/ninguno" + +#: collective/exportimport/export_content.py:150 +msgid "Select at least one type to export" +msgstr "Seleccione al menos un tipo para exportar" + +#: collective/exportimport/templates/export_content.pt:13 +msgid "Select which content to export as a json-file." +msgstr "Seleccione qué contenido exportar como un archivo json." + +#: collective/exportimport/import_content.py:124 +msgid "Skip: Don't import at all" +msgstr "Omitir: no importar en absoluto" + +#: collective/exportimport/templates/export_content.pt:130 +msgid "This exports the content-history (versioning) of each exported item. Warning: This can significantly slow down the export!" +msgstr "Esto exporta el historial de contenido (versiones) de cada elemento exportado. Advertencia: ¡Esto puede ralentizar significativamente la exportación!" + +#: collective/exportimport/templates/import_content.pt:84 +msgid "This will import the content-history (versioning) for each item that has revisions. Warning: This can significantly slow down the import!" +msgstr "Esto importará el historial de contenido (versiones) para cada elemento que tenga revisiones. Advertencia: ¡Esto puede ralentizar significativamente la importación!" + +#: collective/exportimport/templates/export_content.pt:72 +msgid "Unlimited: this item and all children, 0: this object only, 1: only direct children of this object, 2-x: children of this object up to the specified level" +msgstr "" +"Ilimitado: este elemento y todos los elementos secundarios, 0: solo este " +"objeto, 1: solo elementos secundarios directos de este objeto, 2-x: " +"elementos secundarios de este objeto hasta el nivel especificado" + +#: collective/exportimport/import_content.py:126 +msgid "Update: Reuse and only overwrite imported data" +msgstr "Actualizar: reutilizar y solo sobrescribir datos importados" + +#: collective/exportimport/templates/export_content.pt:114 +msgid "Use this if you want to import the data in a newer version of Plone or migrate from Archetypes to Dexterity. Read the documentation to learn which changes are made by this option." +msgstr "Use esto si desea importar los datos en una versión más nueva de Plone o migrar de Archetypes a Dexterity. Lea la documentación para saber qué cambios se realizan con esta opción." + +#: collective/exportimport/import_other.py:288 +msgid "You need either Plone 6 or collective.relationhelpers to import relations" +msgstr "Necesitas Plone 6 o collective.relationhelpers para importar relaciones" + +#: collective/exportimport/export_content.py:139 +msgid "as base-64 encoded strings" +msgstr "como cadenas codificadas en base 64" + +#: collective/exportimport/export_content.py:140 +msgid "as blob paths" +msgstr "como rutas de blob" + +#: collective/exportimport/export_content.py:138 +msgid "as download urls" +msgstr "como urls de descarga" + +#: collective/exportimport/templates/export_content.pt:155 +msgid "export" +msgstr "exportar" + +#: collective/exportimport/import_content.py:143 +msgid "json file was uploaded, so the selected server file was ignored." +msgstr "archivo json se cargó, por lo que se ignoró el archivo del servidor seleccionado." + +#. Default: "Toggle all" +#: collective/exportimport/templates/export_content.pt:22 +msgid "label_toggle" +msgstr "Alternar todo" + +#: collective/exportimport/import_content.py:996 +msgid "plone.app.querystring.upgrades.fix_select_all_existing_collections is not available" +msgstr "plone.app.querystring.upgrades.fix_select_all_existing_collections no está disponible" + +#. Default: "Or you can choose a file that is already uploaded on the server in one of these paths:" +#: collective/exportimport/templates/import_content.pt:21 +msgid "server_paths_list" +msgstr "" +"O puede elegir un archivo que ya está cargado en el servidor en una de estas " +"rutas:" + +#: collective/exportimport/export_content.py:123 +msgid "unlimited" +msgstr "ilimitado" diff --git a/src/collective/exportimport/templates/export_content.pt b/src/collective/exportimport/templates/export_content.pt index 1c6d9a62..736a949d 100644 --- a/src/collective/exportimport/templates/export_content.pt +++ b/src/collective/exportimport/templates/export_content.pt @@ -2,15 +2,15 @@ xmlns:metal="http://xml.zope.org/namespaces/metal" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:i18n="http://xml.zope.org/namespaces/i18n" - i18n:domain="plone.z3cform" + i18n:domain="collective.exportimport" metal:use-macro="context/main_template/macros/master">
-

Export content

+

Export content

-

Select which content to export as a json-file.

+

Select which content to export as a json-file.

@@ -21,7 +21,7 @@
-
+