Skip to content

About

Create content based on the content of a language. Usefull when handling multilingual sites to create the full site structure in another language.

Resources

Stars

1 star

Watchers

2 watching

Forks

Repository files navigation

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: check the documentation to learn how this product can help you on effectively translating the content.

Translation

If a translation service is configured in Plone — for example Google Translate or DeepL — a copy can optionally translate the copied text as it goes.

  • Tick Translate the copied content? in the classic UI form, or send "translate": true over REST.
  • Page titles, descriptions, and rich text are translated with the configured service, preserving rich-text markup.
  • Fields marked language-independent (for example a shared relation) are left to plone.app.multilingual; this add-on does not copy or translate them.
  • When nothing can translate a value, the original is kept and the copy is not aborted.
  • The copy report shows, per object, whether it was translated, partially translated, or left as-is.

Translation is optional. Without a configured service — or without the (merged but unreleased) plone.app.multilingual external-translation API — the copy behaves exactly like a plain copy.

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,
  "translate": true
}

The endpoint requires the Manage portal permission and always answers 200 with a per-object result, including the translation outcome of each copied object. 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

About

Create content based on the content of a language. Usefull when handling multilingual sites to create the full site structure in another language.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages