LanguageManagerInterface.php

Same filename in other branches
  1. 8.9.x core/lib/Drupal/Core/Language/LanguageManagerInterface.php
  2. 10 core/lib/Drupal/Core/Language/LanguageManagerInterface.php
  3. 11.x core/lib/Drupal/Core/Language/LanguageManagerInterface.php

Namespace

Drupal\Core\Language

File

core/lib/Drupal/Core/Language/LanguageManagerInterface.php

View source
<?php

namespace Drupal\Core\Language;

use Drupal\Core\Url;

/**
 * Common interface for the language manager service.
 */
interface LanguageManagerInterface {
    
    /**
     * Returns whether or not the site has more than one language added.
     *
     * @return bool
     *   TRUE if more than one language is added, FALSE otherwise.
     */
    public function isMultilingual();
    
    /**
     * Returns an array of the available language types.
     *
     * @return array
     *   An array of language type machine names.
     */
    public function getLanguageTypes();
    
    /**
     * Returns information about all defined language types.
     *
     * @return array
     *   An associative array of language type information arrays keyed by
     *   language type machine name, in the format of
     *   hook_language_types_info(). In some implementing classes, this is based
     *   on information from hook_language_types_info() and
     *   hook_language_types_info_alter().
     */
    public function getDefinedLanguageTypesInfo();
    
    /**
     * Returns the current language for the given type.
     *
     * @param string $type
     *   (optional) The language type; e.g., the interface or the content
     *   language. Defaults to
     *   \Drupal\Core\Language\LanguageInterface::TYPE_INTERFACE.
     *
     * @return \Drupal\Core\Language\LanguageInterface
     *   The current language object for the given type of language.
     */
    public function getCurrentLanguage($type = LanguageInterface::TYPE_INTERFACE);
    
    /**
     * Resets the given language type or all types if none specified.
     *
     * @param string|null $type
     *   (optional) The language type to reset as a string, e.g.,
     *   LanguageInterface::TYPE_INTERFACE, or NULL to reset all language types.
     *   Defaults to NULL.
     *
     * @return $this
     *   The language manager that has been reset.
     */
    public function reset($type = NULL);
    
    /**
     * Returns a language object representing the site's default language.
     *
     * @return \Drupal\Core\Language\LanguageInterface
     *   A language object.
     */
    public function getDefaultLanguage();
    
    /**
     * Returns a list of languages set up on the site.
     *
     * @param int $flags
     *   (optional) Specifies the state of the languages that have to be returned.
     *   It can be: LanguageInterface::STATE_CONFIGURABLE,
     *   LanguageInterface::STATE_LOCKED, or LanguageInterface::STATE_ALL.
     *
     * @return \Drupal\Core\Language\LanguageInterface[]
     *   An associative array of languages, keyed by the language code.
     */
    public function getLanguages($flags = LanguageInterface::STATE_CONFIGURABLE);
    
    /**
     * Returns a list of languages set up on the site in their native form.
     *
     * @return \Drupal\Core\Language\LanguageInterface[]
     *   An associative array of languages, keyed by the language code, ordered
     *   by weight ascending and name ascending.
     */
    public function getNativeLanguages();
    
    /**
     * Returns a language object from the given language code.
     *
     * @param string $langcode
     *   The language code.
     *
     * @return \Drupal\Core\Language\LanguageInterface|null
     *   A fully-populated language object or NULL.
     */
    public function getLanguage($langcode);
    
    /**
     * Produced the printed name for a language for display.
     *
     * @param string $langcode
     *   The language code.
     *
     * @return string
     *   The printed name of the language.
     */
    public function getLanguageName($langcode);
    
    /**
     * Returns a list of the default locked languages.
     *
     * @param int $weight
     *   (optional) An integer value that is used as the start value for the
     *   weights of the locked languages.
     *
     * @return \Drupal\Core\Language\LanguageInterface[]
     *   An array of language objects.
     */
    public function getDefaultLockedLanguages($weight = 0);
    
    /**
     * Checks whether a language is locked.
     *
     * @param string $langcode
     *   The language code.
     *
     * @return bool
     *   Returns whether the language is locked.
     */
    public function isLanguageLocked($langcode);
    
    /**
     * Returns the language fallback candidates for a given context.
     *
     * @param array $context
     *   (optional) An associative array of data that can be useful to determine
     *   the fallback sequence. The following keys are used in core:
     *   - langcode: Language code of the desired language.
     *   - operation: The name of the operation indicating the context where
     *     language fallback is being applied. The following operations are
     *     defined in core, but more may be defined in contributed modules:
     *       - entity_view: Invoked when an entity is about to be displayed.
     *         The data key contains the loaded entity.
     *       - views_query: Invoked when a field based views query is performed.
     *         The data key contains a reference to the field object.
     *       - locale_lookup: Invoked when a string translation was not found.
     *         The data key contains the source string.
     *   - data: A data structure that makes sense in the provided
     *     context, see above.
     *
     * @return array
     *   An array of language codes sorted by priority: first values should be
     *   tried first.
     */
    public function getFallbackCandidates(array $context = []);
    
    /**
     * Returns the language switch links for the given language type.
     *
     * @param string $type
     *   The language type.
     * @param \Drupal\Core\Url $url
     *   The URL the switch links will be relative to.
     *
     * @return object|null
     *   An object with the following keys:
     *   - links: An array of links indexed by the language ID
     *   - method_id: The language negotiation method ID
     *   or NULL if there are no language switch links.
     */
    public function getLanguageSwitchLinks($type, Url $url);
    
    /**
     * Sets the configuration override language.
     *
     * @param \Drupal\Core\Language\LanguageInterface $language
     *   The language to override configuration with.
     *
     * @return $this
     */
    public function setConfigOverrideLanguage(LanguageInterface $language = NULL);
    
    /**
     * Gets the current configuration override language.
     *
     * @return \Drupal\Core\Language\LanguageInterface
     *   The current configuration override language.
     */
    public function getConfigOverrideLanguage();
    
    /**
     * Some common languages with their English and native names.
     *
     * Language codes are defined by the W3C language tags document for
     * interoperability. Language codes typically have a language and, optionally,
     * a script or regional variant name. See:
     * http://www.w3.org/International/articles/language-tags/ for more
     * information.
     *
     * @return array
     *   An array of language code to language name information. Language name
     *   information itself is an array of English and native names.
     */
    public static function getStandardLanguageList();

}

Interfaces

Title Deprecated Summary
LanguageManagerInterface Common interface for the language manager service.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.