Drupal 8/9/10 Connector

Drupal 8/9/10 FAQs

1. Why do we see discrepancies in word counts (in Drupal vs. Dashboard)?

Parsers work differently in Drupal than in Smartling. The TMGMT (not to be confused with TMGMT Smartling) module doesn't count words by the same rules as the Smartling parser. If the discrepancy isn't too large (no more than 5-7%), then this is considered normal behavior.

2. Why isn't the submitted node to Smartling localized in Drupal?

If your content isn’t localized yet, it may mean that Drupal cron hasn't processed “download translation” queue. If your cron was set up correctly, then translation will be downloaded and applied by the next cron runs.

3. When is content pushed live?

Example: If there's a paragraph on pageA and the paragraph has been fully translated, will that paragraph be pushed live and the remainder of the pageA will remain in English? Or does a full pageA need to be localized before any content on that pageA can go live?

Translation is applied to a node/entity/etc right after downloading it by the provider (if Auto accept finished translations option is enabled in provider settings). Full pageA needs to be localized before it goes live. The connector generates an XML file with all the strings from a node - title, body, other text fields, fields from paragraphs etc.

If you translated only fields from a paragraph, it means that this file in Smartling isn't fully translated (not 100%). Connector asks Smartling for fully translated files by cron and downloads/applies them. But you can force download unfinished files (by clicking Download from the job manage page) and then the node will be partially translated. For example, if you translated the node title but not the body, and then downloaded the translation manually, you will see a node with only the translated title.

4. When a page is being updated frequently, how does the system deal with this?

Example: I updated pageA on Monday and submitted it for localization. Then I updated it again on Thursday, but pageA is already in localization. Will this new submission override the content that is in progress?

You don’t have to re-submit the edited node/entity if you’ve already submitted it earlier. TMGMT Smartling module has a dependency on TMGMT Extension Suite module which does the job for you (if “Track changes of the translatable entities” option is enabled on /admin/tmgmt/extension-settings page). It tracks changes in translatable entities, and it detects them, then adds needed entities into the queue for re-uploading. By the next cron run, it will be uploaded into Smartling automatically in the background. You can also select which languages content needs to be re-submitted to.

5. Why does the system sometimes not allow you to submit for localization?

Sometimes the system doesn't allow you to submit for localization because the content is in progress. This is because you can't request translation for a node for some language if there is exactly the same Drupal TMGMT job that has already been submitted and hasn’t been finished yet. In other words, it means that you already have pending (unfinished) translation for this node.

6. What does "Pending Translation" status mean?

On the Translate tab of a node/entity, sometimes there are inactive items in “Pending Translation” status. See the answer to question #5.

7. Why is my node half [LANG_CODE] and half English?

See the answer to "When is content pushed live?".

8. Why can't I resubmit pages when I make a change?

You can, but TMGMT Extension Suite module does it for you. Sometimes pages get updated frequently, and there's a need to resubmit those pages when a change is made (even when a translation is In Progress). See the answer to question #4.

9. What do the progress levels refer to?

Example: I’d like to understand when I go to Drupal > Translation > Jobs what that is showing. What is a progress level of 1, 3 10? What is the tag number? What if something is marked "needs review"?

Let’s consider this Jobs listing page as an example: 


Column  Description
Label Contains an icon that represents job status and job name. Job can be “unprocessed” (red), “in progress” (blue) and “needs review” (yellow). “Unprocessed" means that you created a job but didn’t submit it (clicked on “Request translation” button on “Sources” page but then closed a job page). “In progress” means that content that is in a job was sent for translation. “Needs review” means that some of the job items in a job need review. It can happen when “Auto accept finished translations” option is disabled in the provider settings. (In this case, when the connector downloads translations, the TMGMT will not accept them automatically).
Provider Contains the provider name which processes a TMGMT job. It might be “Undefined” if you didn’t submit the job yet.
Progress Contains a progress bar which indicates how many job items are in a job. Additionally, it shows the state of that job item. For example, the first job has no job items and has “Unprocessed” progress because the whole job is unprocessed. The second job contains two job items. One of them is in “translated” state (yellow, and contains translation that can be reviewed), and second is in “reviewed” state (light green, and translation is reviewed on the job item page). The third job again contains two job items: one of them is in “Pending” state (blue, and there is no translation in a job item) and the second is in “accepted” state (dark green, and the translation is saved as completed). The last job contains only one job item that is in “pending” state.
Words Amount of words in the current job.
Tags Amount of html tags in the current job.
Smartling A link to the file in the Smartling Dashboard. 

10. How can I disable context for some Drupal entities?

You can implement hook code hook_tmgmt_smartling_context_url_alter(&$url, JobItemInterface $job_item) in your custom module. Depending on a given job item you can set the context URL to NULL. In this case, context for a given entity inside a job item will not be generated.

For more information, read the Drupal documentation.

11. Can I check Smartling cron queues and process them manually?

Yes. On the Smartling provider settings page, there is a block called "Cron & Queues" where you can check how many items are in each Smartling queue (upload, download, check status, context), process them manually, or run the Drupal cron.


12. Why doesn't the translation download even if the file says 100% completed?

If the Automatically authorize content for translation in Smartling option is disabled in the provider settings, when the connector calculates translation progress, it takes into consideration unauthorized strings. This prevents downloading partially translated files with source content (source content in place of unauthorized strings) instead of translation.

13. Is it possible to translate URLs coming from Drupal in Smartling CAT tool?

Yes, href URLs coming from Drupal content fields can be translated. This can be set up at `/admin/tmgmt/translators/manage/<smartling_provider_name>` page.


14. Can it translate Paragraphs?

Yes, Paragraphs are supported by TMGMT. Please note that enabled for translation must be only fields inside paragraphs, but not the paragraphs itself. More details described in the official Paragraph module documentation.

15. Why doesn't connector upload changes from edited nodes/entities even though “Track changes of the translatable entities” option is enabled?

TMGMT Extension Suite module re-uploads edited nodes/entities in case there are related TMGMT Jobs in Drupal database. If TMGMT Job was removed for some reason, then the connector won't be able to upload changes to Smartling. TMGMT Jobs can be removed manually or by TMGMT automation rule "Purge finished jobs". It should be set as "Never" at /admin/tmgmt/settingspage.


16. Can I change the daily bucket job name?

Yes, you will need to implement hook_tmgmt_smartling_bucket_job_name_alter.

17. How can I add extra Smartling directives to the XML file which is being uploaded by connector?

By default, the connector adds the next list of Smartling directives to the generated XML files:

  • smartling.translate_paths
  • smartling.string_format_paths
  • smartling.variants_enabled
  • smartling.source_key_paths
  • smartling.character_limit_paths
  • smartling.placeholder_format_custom
  • smartling.include_translatable_attributes
  • smartling.exclude_translatable_attributes

You can alter this list by using hook_tmgmt_smartling_directives_alter hook in your custom module. Allowed directives are:

  • smartling.entity_escaping
  • smartling.variants_enabled
  • smartling.translate_paths
  • smartling.string_format_paths
  • smartling.placeholder_format_custom
  • smartling.placeholder_format
  • smartling.sltrans
  • smartling.source_key_paths
  • smartling.pseudo_inflation
  • smartling.instruction_paths
  • smartling.character_limit_paths
  • smartling.force_inline_for_tags
  • smartling.include_translatable_attributes
  • smartling.exclude_translatable_attributes

Please do it only if you understand what do you want to achieve

18. How can I change the name of the submitted file?

The default filename pattern is `JobID[id]_[source_locale]_[target_locale].xml` but you can implement hook `hook_tmgmt_smartling_filename_alter(&$name, JobInterface $job)` in your custom module to alter it. For example, you can include TMGMT Job label to the file name, as it's described here. Please note that it's required to include Job ID into the file name to make it unique.

19. The Connector overrides my translation edits in nodes/entities after download. Can I "lock" fields so that connector doesn't touch them?

Yes, at the translated node/entity edit page there is a section called "Lock fields" where you can select which fields will not be overridden by subsequential file translation downloads.


20. Can I 'opt-out' of specific log updates?

Yes, you can opt-out of receiving specific log messages, such as debugging logs, by following these steps:

  1. First, enable `tmgmt_smartling_log_settings` module.
  2. Then go to the `/admin/config/development/logging` page and set up severity levels for channels that you want to suppress.
  3. Submit settings form. For example, `smartling_api: info` - it means that in `smartling_api` channel will be only records which are higher than `info` level (e.g. not debug messages).


21. Can I disable context for some content/entity types?

Yes. You can exclude needed entities from being contextualized at the provider settings page, by selecting the entities you want to exclude from context.


Was this article helpful?