Quantcast
Channel: Issues for Drupal core
Viewing all articles
Browse latest Browse all 295579

Make it possible to provide 'langcode' in $options for URL generation instead of Language object

$
0
0

Problem/Motivation

A lot of code uses just langcodes everywhere.

The url generator code still requires the full language object. This issue exists to reduce the code complexity for developers and themers when building Drupal\Core\Url or Drupal\Core\Render\Element\Link objects.

Proposed resolution

Allow to specify 'language' as a langcode string such as "de" or "en". This langcode will be used to load the proper Language object internally.

For example, the only way to link to a language that is not current LanguageInterface::TYPE_URL used to be before this issue:

$language_manager = \Drupal::service('language_manager');
$url = Url::fromRoute( 'user.register', [], ['language' => $language_manager->getLanguage('it')]);
$link = Link::createFromRoute($text, 'user.register', [], ['language' => $language_manager->getLanguage('de')]);

This issue proposes to add this additional way:

$url = Url::fromRoute( 'user.register', [], ['language' => 'it']);
$link = Link::createFromRoute($text, 'user.register', [], ['language' => 'de']);

Remaining tasks

Review

User interface changes

None.

API changes

Besides setting $options = ['language' => where_do_we_get_language_object_from()] there is now
a simple $options = ['language' => 'en'] when you generate a URL.

Issue categoryTask, because it just improves existing APIs
Issue priorityNormal, given how often you have to explicitly generate URLs for a given language.
DisruptionNot disruptive, but it makes the API work more like expected

Viewing all articles
Browse latest Browse all 295579

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>