Abstract language system's path handling

You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Drupal's localization system implements URL, path, and domain based context-management functionality (toggled using the variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE) switch). This code overlaps with (and conflicts with) Domain Access module, PURL module, and a number of other third-party tools for building large sites.

The tools implemented in the language system allow the following elements of the URL to control the site's current language:

This is both limiting for the language system (different sections inside the same site cannot easily be mapped to other languages), and collides with modules like Domain Access that use the same path information to control other contextual data (active OG, for example).

In addition, there's conceptual overlap with the Block.module based path/role/php visibility management. Both should be moved to a central location and any module should be able to use them.