entity_translate_side_by_side
Edit multiple translations of the same entity side-by-side
The Entity Translate Side by Side module streamlines Drupal entity translations, allowing users to edit content in multiple languages side by side. Supporting various entity types, it offers a flexible translation workflow with features like multi-language selection, drag-and-drop navigation, and integration with Drupal's core translation system.
Features
- Should work for any translatable entity type.
- Provides an intuitive user interface to display and edit content in different languages side by side.
- Only updates translations that really changed.
- Supports drag-and-drop functionality for easy navigation in the translation interface.
- Enables flexible configuration of the languages to be translated by the user.
- Integrates into existing entity drop-down menus through hook implementation.
- Adds a new permission 'Access Entity Translate Side by Side' to control access to the module.
Installation and configuration
- 1. First install the module in your Drupal environment and activate it
- 2. Go to: /admin/config/system/entity-translate-side-by-side
- 3. Select the languages to be loaded by default
Usage
The module integrates into Drupal via a hook into entity operations.
- On the edit page of any entity (like a node or a custom entity), look for the operations dropdown menu.
- In the dropdown, you'll see an added option titled "Translate side by side."
- Selecting this option will route you to the page where the entity can be translated.
Permissions
To use the module, users must have the 'Access Entity Translate Side by Side' permission assigned to their role.
Similar projects
- Entity Translation Unified Form (D7/8/9/10)
- Multilanguage Form Display (D8)
- translate_side_by_side (D8)
- entity_translation_sbs (D7)
- Entity Translation: Separated shared elements form (ETSSEF) (D7)
Why another project?
We first tested all similar projects that exist. But all of them had disadvantages:
- limited to some entity types
- saving all translations, regardless if they really changed or not (this has an impact on translation histories, search indexing, ...)
- ...
After trying to solve these with patches and hook implementations, we decided that it is much cleaner, less code and better maintainable to start a new project.