Support TMGMT translations

Created on 23 August 2023, 10 months ago
Updated 15 September 2023, 9 months ago

This sounds like a VERY similar philosophy to the Groups module, which has its own ecosystem of language-routing modules associated with it that achieves the same thing you're going for here.

✨ Feature request
Status

Active

Version

1.0

Component

Miscellaneous

Created by

πŸ‡ΊπŸ‡ΈUnited States amaisano Boston

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @amaisano
  • Thanks for pointing that out. That sounds interesting, but can you provide any more information? I know about the Group module, but as far as I know that's mostly about permissions - ofcourse I may be completely off about that.

    I've looked into "projects that extend Group module", but I don't see anything related to translations.

    Can you point me to any documentation or module that provides asymmetric translations using the group module?

  • πŸ‡ΊπŸ‡ΈUnited States amaisano Boston

    Sorry for being so vague. I've used Groups - may not be everyone's experience - to achieve a full asymmetric translation ecosystem in Drupal.

    We created a different group for each of the "markets" or languages. One for EN-US, one for EN-UK, one for PT-BR, etc.

    When you enable groups, and then allow group_content to do its magic, you can basically assign a non-group node to one, or many groups.

    For instance, you create an article node. You can do this outside of groups, but with Groups you'd go "into" your market language group, and create the article. That article automatically gets created as a normal Drupal node, but a group_content wrapper entity is also created for it, which is unique to that group.

    So Node 1 is now assigned to EN-UK. If you want, you can _also_ assign Node 1 to EN-US. This is essentially saying you want to use the same "translation" for both languages.

    What's neat however is that you can field the group_content entity, and _any values present in that group_content entity_ are unique per group aka language. That is where you get your asymmetry from. You can have fields that are always the same per group at the node level, and fields that are unique to each language at the group_content level.

    If DE-DE wants to translate a US article, as long as the copy you want to translate is in the group_content layer for that node article bundle wrapper (each node bundle has its own group_content bundle) you simply assign the article node to DE-DE, and you can enter your own unique DE-DE translation values, AND paragraphs, and entities, and anything else. The "source" node is still article 1.

    When you add language negotiation to this, you can start assigning different languages to different groups, which allows the path alias to route you to the correct language of an article.

    Of course, this (and your module too), doesn't 'quite work with the typical TMGMT workflow or even content translation workflow that comes with Drupal. You are essentially creating a different piece of content per language, and the group router/controller is in charge of showing you the matching group_content for a node depending on your current language, which is what I see this module doing.

    Now, if your module still allows for a TMGMT job to request and perform translations, then that would be a HUGE advantage over something more manual like groups, so please let me know if I'm missing something.

  • πŸ‡¨πŸ‡ΏCzech Republic parisek

    That sounds great if this module support TMGMT β†’ translations together. I changed Title and hope to more people will need this.

    Thinking about
    - checkbox on node edit form to choose if I need asymmetric translations or not
    - use separate tab for asymmetric translations and on regular translation page show only notification

  • Thanks guys! It may take a while, but we'll look into this.
    I like the ideas to support both "core" and asymmetric translations. If you have more ideas let me know.
    And ofcourse, any forks are welcome too ;)

Production build 0.69.0 2024