Problem/Motivation

To translate interface text, configuration content, and entity content in a specific render context is difficult. To accomplish this, you must change the site's default language, set the config override, and modify the default langcode on the translation service.

+        $this->languageDefault->set($language);
+
+        $this->languageManager->setConfigOverrideLanguage($language);
+        $this->languageManager->reset();
+
+        $string_translation = $this->getStringTranslation();
+        if ($string_translation instanceof TranslationManager) {
+          $string_translation->setDefaultLangcode($language->getId());
+          $string_translation->reset();

Proposed resolution

The LanguageManagerInterface should have a "setLanguage" method (or other naming) which streamlines this task.

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

Comments

mglaman created an issue. See original summary.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

johnv’s picture

Component: base system » transliteration system
Status: Active » Closed (outdated)

Not sure what the use case is here.

To interface the User translation text, you can
- install locale (Interface translation) module
- goto admin/config/regional/translate
- set the target language, to be able to the new language.

Or, for the others,
switch from default language '/node/8/edit' to target language '/nl/node/8/edit'
having set up /admin/config/regional/language/detection properly.

But, 5 years have past.
Settings this to outdated.

flocondetoile’s picture

Status: Closed (outdated) » Active

I believe this issue is still relevant.
The use case is to change programmatically the language in order to translate something in another language. An example as a use case is how Drupal Commerce send Email Order Receipt, given the preferred language of a customer.

See https://git.drupalcode.org/project/commerce/-/blob/8.x-2.x/src/MailHandl...

flocondetoile’s picture

Priority: Normal » Minor
johnv’s picture

Then this issue seems like the same (duplicate) feature request? #2350907: Create simple helper function to add a string translation programatically

Adding the word 'programmatically' already helps the reader.

johnv’s picture

sleitner’s picture

Component: transliteration system » language.module
sleitner’s picture

Status: Active » Closed (duplicate)
Related issues: +#2410579: Allow to change the current language