LanguageNegotiatorInterface
interface LanguageNegotiatorInterface (View source)
Common interface for language negotiation services.
The language negotiation API is based on two major concepts:
- Language types: types of translatable data (the types of data that a user can view or request).
- Language negotiation methods: responsible for determining which language to use to present a particular piece of data to the user. Both language types and language negotiation methods are customizable.
Drupal defines three built-in language types:
- Interface language: The page's main language, used to present translated user interface elements such as titles, labels, help text, and messages.
- Content language: The language used to present content that is available in more than one language.
- URL language: The language associated with URLs. When generating a URL, this value will be used for URL's as a default if no explicit preference is provided. Modules can define additional language types through hook_language_types_info(), and alter existing language type definitions through hook_language_types_info_alter().
Language types may be configurable or fixed. The language negotiation methods associated with a configurable language type can be explicitly set through the user interface. A fixed language type has predetermined (module-defined) language negotiation settings and, thus, does not appear in the configuration page. Here is a code snippet that makes the content language (which by default inherits the interface language's values) configurable:
Constants
| METHOD_ID |
The language negotiation method id for the language negotiator itself. |
Methods
Resets the negotiated languages and the method instances.
Sets the current active user and resets all language types.
Initializes the specified language type.
Returns the language negotiation methods enabled for a language type.
Returns an instance of the specified language negotiation method.
Returns the ID of the language type's primary language negotiation method.
Checks whether a language negotiation method is enabled for a language type.
Saves a list of language negotiation methods for a language type.
Resave the configuration to purge missing negotiation methods.
Updates the configuration based on the given language types.
Details
reset()
Resets the negotiated languages and the method instances.
setCurrentUser(AccountInterface $current_user)
Sets the current active user and resets all language types.
LanguageInterface[]
initializeType(string $type)
Initializes the specified language type.
array[]
getNegotiationMethods(string $type = NULL)
Returns the language negotiation methods enabled for a language type.
LanguageNegotiationMethodInterface
getNegotiationMethodInstance(string $method_id)
Returns an instance of the specified language negotiation method.
string
getPrimaryNegotiationMethod(string $type)
Returns the ID of the language type's primary language negotiation method.
bool
isNegotiationMethodEnabled(string $method_id, string $type = NULL)
Checks whether a language negotiation method is enabled for a language type.
saveConfiguration(string $type, int[] $enabled_methods)
Saves a list of language negotiation methods for a language type.
purgeConfiguration()
Resave the configuration to purge missing negotiation methods.
updateConfiguration(array $types)
Updates the configuration based on the given language types.
Stores the list of the language types along with information about their configurable state. Stores the default settings if the language type is not configurable.