LanguageInterface.php

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

Namespace

Drupal\Core\Language

File

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

View source
<?php

namespace Drupal\Core\Language;


/**
 * Defines an interface for languages.
 *
 * @ingroup i18n
 */
interface LanguageInterface {
    
    /**
     * Special system language code (only applicable to UI language).
     *
     * Refers to the language used in Drupal and module/theme source code. Drupal
     * uses the built-in text for English by default, but if configured to allow
     * translation/customization of English, we need to differentiate between the
     * built-in language and the English translation.
     */
    const LANGCODE_SYSTEM = 'system';
    
    /**
     * The language code used when no language is explicitly assigned (yet).
     *
     * Should be used when language information is not available or cannot be
     * determined. This special language code is useful when we know the data
     * might have linguistic information, but we don't know the language.
     *
     * See http://www.w3.org/International/questions/qa-no-language#undetermined.
     */
    const LANGCODE_NOT_SPECIFIED = 'und';
    
    /**
     * The language code used when the marked object has no linguistic content.
     *
     * Should be used when we explicitly know that the data referred has no
     * linguistic content.
     *
     * See http://www.w3.org/International/questions/qa-no-language#nonlinguistic.
     */
    const LANGCODE_NOT_APPLICABLE = 'zxx';
    
    /**
     * Language code referring to the default language of data, e.g. of an entity.
     *
     * See the BCP 47 syntax for defining private language tags:
     * http://www.rfc-editor.org/rfc/bcp/bcp47.txt
     */
    const LANGCODE_DEFAULT = 'x-default';
    
    /**
     * Language code referring to site's default language.
     */
    const LANGCODE_SITE_DEFAULT = 'site_default';
    
    /**
     * A regex for validating language codes according to W3C specifications.
     *
     * @see https://www.w3.org/International/articles/language-tags/
     */
    const VALID_LANGCODE_REGEX = '[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*';
    
    /**
     * The language state when referring to configurable languages.
     */
    const STATE_CONFIGURABLE = 1;
    
    /**
     * The language state when referring to locked languages.
     */
    const STATE_LOCKED = 2;
    
    /**
     * The language state used when referring to all languages.
     */
    const STATE_ALL = 3;
    
    /**
     * The language state used when referring to the site's default language.
     */
    const STATE_SITE_DEFAULT = 4;
    
    /**
     * The type of language used to define the content language.
     */
    const TYPE_CONTENT = 'language_content';
    
    /**
     * The type of language used to select the user interface.
     */
    const TYPE_INTERFACE = 'language_interface';
    
    /**
     * The type of language used for URLs.
     */
    const TYPE_URL = 'language_url';
    
    /**
     * Language written left to right. Possible value of $language->direction.
     */
    const DIRECTION_LTR = 'ltr';
    
    /**
     * Language written right to left. Possible value of $language->direction.
     */
    const DIRECTION_RTL = 'rtl';
    
    /**
     * Gets the name of the language.
     *
     * @return string
     *   The human-readable name of the language (in the language that was
     *   used to construct this object).
     */
    public function getName();
    
    /**
     * Gets the ID (language code).
     *
     * @return string
     *   The language code.
     */
    public function getId();
    
    /**
     * Gets the text direction (left-to-right or right-to-left).
     *
     * @return string
     *   Either self::DIRECTION_LTR or self::DIRECTION_RTL.
     */
    public function getDirection();
    
    /**
     * Gets the weight of the language.
     *
     * @return int
     *   The weight, used to order languages with larger positive weights sinking
     *   items toward the bottom of lists.
     */
    public function getWeight();
    
    /**
     * Returns whether this language is the default language.
     *
     * @return bool
     *   Whether the language is the default language.
     */
    public function isDefault();
    
    /**
     * Returns whether this language is locked.
     *
     * @return bool
     *   Whether the language is locked or not.
     */
    public function isLocked();

}

Interfaces

Title Deprecated Summary
LanguageInterface Defines an interface for languages.

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