On a recent Drupal project, we ran into a scenario where we had a centralized marketing team managing content for a large global company. The team was primarily English-speaking and was responsible for the content across multiple countries and languages. As the new multilingual sites were being built out, the addition of new languages automatically caused the system to import interface translations which translated the administration interface. Unfortunately, this made the site extremely hard to navigate for the teams responsible for working with it, and we needed to find a way to disable the auto interface translation.

As we searched around, we were not able to find good documentation for this “feature” and how to alter it, so we decided to put it together!

The Problem

When we add a language to the Drupal system it starts a batch process that adds the interface translation for that language. Out of the box, Drupal doesn’t provide any interface to disable this.

Updating Translations in Drupal backend

The Solution

Interface Translation is a part of locale Drupal’s core module. Which adds the interface translation. When we install the locale module it creates a locale.settings.yml which contains the below settings.

cache_strings: true
translate_english: false
javascript:
  directory: languages
translation:
  use_source: remote_and_local
  default_filename: '%project-%version.%language.po'
  default_server_pattern: 'https://ftp.drupal.org/files/translations/%core/%project/%project-%version.%language.po'
  overwrite_customized: false
  overwrite_not_customized: true
  update_interval_days: 0
  path: ''
  import_enabled: true

Screenshot of adding a language in the Drupal interface

local.module file contains the below code which gets called when the Add language form is submitted.

if (\Drupal::config('locale.settings')->get('translation.import_enabled')) {
    // Download and import translations for the newly added language.
    $batch = locale_translation_batch_update_build([], [$langcode], $options);
    batch_set($batch);
  }

Check - locale_form_language_admin_add_form_alter_submit function.

If we set import_enabled to false then interface translation will be disabled and it’ll simply add the new language.

After a bit of digging, we had good news that it was a simple configuration file change to update this. If you found this information helpful, or need help with a development challenge you and/or your team are facing we would love to hear from you!

Blog Category
Tags
Components
Category
Title
More on Drupal
View Reference
Recent Blog
DrupalCon Singapore 2024 brought together developers, marketers, and innovators from around the globe to celebrate the power and potential of Drupal. I was honored to be among the attendees, sharing my expertise on stage and immersing myself in the incredible energy of the event. My talk with Gaurav Goyal, "Navigating Tomorrow: The Future of Websites in the Age of AI and Content Proliferation," was a standout moment, sparking conversations about how Drupal is evolving to meet the demands of a rapidly changing digital landscape
152
Image
John
Ready to boost your lead generation campaign performance? WebOps streamlines optimization, scaling, and reporting for better results.
151
Image
lead generation
Digital Polygon Marketing Team attends Hubspot Inbound conference September 2024. Read our highlights from the event.
150
Image
hubspot sign at inbound 2024