Skip to main content

cs.linguacopier

PyPI Python versions Plone versions Tests License GitHub issues GitHub last commit

Full Documentation

This products adds an action to copy contents to a selected language.

We have faced many times the work to create the contents of a site in one language and then recreate it in another language to let the customer or translators translate it.

This products provides an action with several options, which allows the content editor to recreate the contents of one section of the site in one or more languages, easing the work of the content editor.

Disclaimer: this product does not effectively translate the contents (does not translate "House" to "Casa"), it just copies the actual content in the other language.

Installation

Install cs.linguacopier by adding cs.linguacopier it to your project's dependencies (either buildout, pyproject.toml, requirements.txt, uv or whatever you use to manage your Plone project's dependencies).

REST API

When plone.restapi is installed, the copier is also available over REST, so a Volto front end can use it:

POST /<content>/@copy-content-to

with a JSON body such as:

{
  "target_languages": ["es", "ca"],
  "include_context": true,
  "include_children": true
}

The endpoint requires the Manage portal permission and always answers 200 with a per-object result. See the documentation for the full request and response contract.

Contribute

Support

If you are having issues, please let us know using the Github Issue Tracker: https://github.com/codesyntax/cs.linguacopier/issues

License

The project is licensed under the GPLv2.

Contributors

Changelog

2.0 (2026-10-02)

Breaking changes

  • Replace pkg_resources namespace with PEP 420 native namespace. Support only Plone 6.2 and Python 3.10+. #3928
  • Rename the @@copy-content-to form fields to include_context and include_children, matching the new REST API parameter names.

New features

  • Add a POST /<content>/@copy-content-to REST service so that a Volto front end can copy content and its subobjects into target languages. The endpoint is available when plone.restapi is installed.
  • Show the outcome of a copy in the classic-UI @@copy-content-to form: a per-object report (created, updated, skipped, failed) with the reasons for the failures, exportable as CSV.
  • Stop offering the content's own language as a copy target: the @@copy-content-to form lists only the other supported languages (and is hidden when there is none), and the REST endpoint rejects a request that names the content's own language.

Bug fixes

  • Fix copy_other_things adapter lookup and updating of existing properties in copy_other_properties.

Internal

  • Update configuration files @plone

Tests

  • Add unit and integration tests for the content copier.

1.3 (2025-08-28)

Internal

  • Repackage @erral

1.2 (2024-07-23)

  • Remove includeDependencies for Plone 6 compatibility. @erral

1.1 (2021-03-22)

  • add my name @libargutxi
  • RelationList @libargutxi
  • RelationList fields @libargutxi

1.0 (2019-07-11)

  • Initial release. @erral

Metadata

Release files for cs.linguacopier 2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cs.linguacopier 2.0
File Size Uploaded
cs_linguacopier-2.0.tar.gz 108.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cs.linguacopier 2.0
File Interpreter ABI Platform
cs_linguacopier-2.0-py3-none-any.whl Python 3 none any Details

Total release size: 142.7 kB

Release files / cs_linguacopier-2.0.tar.gz

Download URL cs_linguacopier-2.0.tar.gz
Size 108.8 kB
Tags Source
SHA-256 checksum
How to use checksums
65d4f090e57071d615c816aa05a00620a9e84df6cb2a1ced8721f7974dc5011c
BLAKE2b-256 checksum
How to use checksums
7a1815e02307431785065bc15e62da042714d56ae8a891f68b5cf6f55d28983d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.2

Release files / cs_linguacopier-2.0-py3-none-any.whl

Download URL cs_linguacopier-2.0-py3-none-any.whl
Size 34.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e83b29098e91b80b97ee3bad0f310666f7e2ee04457eb4daa00e9d0a645f21f
BLAKE2b-256 checksum
How to use checksums
05142cb42cd4bcf875cdaf650b887578d0e7b37281145d4a4954f0a39218b3ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.2

Release history Release notifications | RSS feed

2.3.1

2 release files

2.3

2 release files

2.2

2 release files

2.1

2 release files

This release

2.0 This release

2 release files

1.3

2 release files

1.2

2 release files

1.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page