class Language in Drupal 8
Same name in this branch
- 8 core/lib/Drupal/Core/Language/Language.php \Drupal\Core\Language\Language
- 8 core/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php \Drupal\ckeditor\Plugin\CKEditorPlugin\Language
- 8 core/modules/language/src/Plugin/Condition/Language.php \Drupal\language\Plugin\Condition\Language
- 8 core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php \Drupal\Core\TypedData\Plugin\DataType\Language
- 8 core/modules/language/src/Plugin/migrate/source/Language.php \Drupal\language\Plugin\migrate\source\Language
Same name and namespace in other branches
- 9 core/lib/Drupal/Core/Language/Language.php \Drupal\Core\Language\Language
An object containing the information for an interface language.
Hierarchy
- class \Drupal\Core\Language\Language implements LanguageInterface
Expanded class hierarchy of Language
See also
\Drupal\Core\Language\LanguageManager::getLanguage()
58 files declare their use of Language
- AliasManagerTest.php in core/
modules/ path_alias/ tests/ src/ Unit/ AliasManagerTest.php - ConfigEntityBaseUnitTest.php in core/
tests/ Drupal/ Tests/ Core/ Config/ Entity/ ConfigEntityBaseUnitTest.php - Contains \Drupal\Tests\Core\Config\Entity\ConfigEntityBaseUnitTest.
- ConfigEntityStorageTest.php in core/
tests/ Drupal/ Tests/ Core/ Config/ Entity/ ConfigEntityStorageTest.php - ConfigMapperManagerTest.php in core/
modules/ config_translation/ tests/ src/ Unit/ ConfigMapperManagerTest.php - ConfigNamesMapperTest.php in core/
modules/ config_translation/ tests/ src/ Unit/ ConfigNamesMapperTest.php - Contains \Drupal\Tests\config_translation\Unit\ConfigNamesMapperTest.
62 string references to 'Language'
- ckeditor.schema.yml in core/
modules/ ckeditor/ config/ schema/ ckeditor.schema.yml - core/modules/ckeditor/config/schema/ckeditor.schema.yml
- ConfigTestForm::form in core/
modules/ config/ tests/ config_test/ src/ ConfigTestForm.php - Gets the actual form array to be built.
- ConfigTranslationController::itemPage in core/
modules/ config_translation/ src/ Controller/ ConfigTranslationController.php - Language translations overview page for a configuration name.
- ConfigTranslationListUiTest::doBlockListTest in core/
modules/ config_translation/ tests/ src/ Functional/ ConfigTranslationListUiTest.php - Tests the block listing for the translate operation.
- ConfigTranslationListUiTest::doContactFormsListTest in core/
modules/ config_translation/ tests/ src/ Functional/ ConfigTranslationListUiTest.php - Tests the contact forms listing for the translate operation.
File
- core/
lib/ Drupal/ Core/ Language/ Language.php, line 12
Namespace
Drupal\Core\LanguageView source
class Language implements LanguageInterface {
/**
* The values to use to instantiate the default language.
*
* @var array
*/
public static $defaultValues = [
'id' => 'en',
'name' => 'English',
'direction' => self::DIRECTION_LTR,
'weight' => 0,
'locked' => FALSE,
];
// Properties within the Language are set up as the default language.
/**
* The human readable English name.
*
* @var string
*/
protected $name = '';
/**
* The ID, langcode.
*
* @var string
*/
protected $id = '';
/**
* The direction, left-to-right, or right-to-left.
*
* Defined using constants, either self::DIRECTION_LTR or self::DIRECTION_RTL.
*
* @var int
*/
protected $direction = self::DIRECTION_LTR;
/**
* The weight, used for ordering languages in lists, like selects or tables.
*
* @var int
*/
protected $weight = 0;
/**
* Locked indicates a language used by the system, not an actual language.
*
* Examples of locked languages are, LANGCODE_NOT_SPECIFIED, und, and
* LANGCODE_NOT_APPLICABLE, zxx, which are usually shown in language selects
* but hidden in places like the Language configuration and cannot be deleted.
*
* @var bool
*/
protected $locked = FALSE;
/**
* Constructs a new class instance.
*
* @param array $values
* An array of property values, keyed by property name, used to construct
* the language.
*/
public function __construct(array $values = []) {
// Set all the provided properties for the language.
foreach ($values as $key => $value) {
if (property_exists($this, $key)) {
$this->{$key} = $value;
}
}
// If some values were not set, set sane defaults of a predefined language.
if (!isset($values['name']) || !isset($values['direction'])) {
$predefined = LanguageManager::getStandardLanguageList();
if (isset($predefined[$this->id])) {
if (!isset($values['name'])) {
$this->name = $predefined[$this->id][0];
}
if (!isset($values['direction']) && isset($predefined[$this->id][2])) {
$this->direction = $predefined[$this->id][2];
}
}
}
}
/**
* {@inheritdoc}
*/
public function getName() {
return $this->name;
}
/**
* {@inheritdoc}
*/
public function getId() {
return $this->id;
}
/**
* {@inheritdoc}
*/
public function getDirection() {
return $this->direction;
}
/**
* {@inheritdoc}
*/
public function getWeight() {
return $this->weight;
}
/**
* {@inheritdoc}
*/
public function isDefault() {
return static::getDefaultLangcode() == $this
->getId();
}
/**
* {@inheritdoc}
*/
public function isLocked() {
return (bool) $this->locked;
}
/**
* Sort language objects.
*
* @param \Drupal\Core\Language\LanguageInterface[] $languages
* The array of language objects keyed by langcode.
*/
public static function sort(&$languages) {
uasort($languages, function (LanguageInterface $a, LanguageInterface $b) {
$a_weight = $a
->getWeight();
$b_weight = $b
->getWeight();
if ($a_weight == $b_weight) {
$a_name = $a
->getName();
$b_name = $b
->getName();
// If either name is a TranslatableMarkup object it can not be converted
// to a string. This is because translation requires a sorted list of
// languages thereby causing an infinite loop. Determine the order based
// on ID if this is the case.
if ($a_name instanceof TranslatableMarkup || $b_name instanceof TranslatableMarkup) {
$a_name = $a
->getId();
$b_name = $b
->getId();
}
return strnatcasecmp($a_name, $b_name);
}
return $a_weight < $b_weight ? -1 : 1;
});
}
/**
* Gets the default langcode.
*
* @return string
* The current default langcode.
*/
protected static function getDefaultLangcode() {
$language = \Drupal::service('language.default')
->get();
return $language
->getId();
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Language:: |
public static | property | The values to use to instantiate the default language. | |
Language:: |
protected | property | The direction, left-to-right, or right-to-left. | |
Language:: |
protected | property | The ID, langcode. | |
Language:: |
protected | property | Locked indicates a language used by the system, not an actual language. | |
Language:: |
protected | property | The human readable English name. | |
Language:: |
protected | property | The weight, used for ordering languages in lists, like selects or tables. | |
Language:: |
protected static | function | Gets the default langcode. | |
Language:: |
public | function |
Gets the text direction (left-to-right or right-to-left). Overrides LanguageInterface:: |
|
Language:: |
public | function |
Gets the ID (language code). Overrides LanguageInterface:: |
|
Language:: |
public | function |
Gets the name of the language. Overrides LanguageInterface:: |
|
Language:: |
public | function |
Gets the weight of the language. Overrides LanguageInterface:: |
|
Language:: |
public | function |
Returns whether this language is the default language. Overrides LanguageInterface:: |
|
Language:: |
public | function |
Returns whether this language is locked. Overrides LanguageInterface:: |
|
Language:: |
public static | function | Sort language objects. | |
Language:: |
public | function | Constructs a new class instance. | |
LanguageInterface:: |
constant | Language written left to right. Possible value of $language->direction. | ||
LanguageInterface:: |
constant | Language written right to left. Possible value of $language->direction. | ||
LanguageInterface:: |
constant | Language code referring to the default language of data, e.g. of an entity. | ||
LanguageInterface:: |
constant | The language code used when the marked object has no linguistic content. | ||
LanguageInterface:: |
constant | The language code used when no language is explicitly assigned (yet). | ||
LanguageInterface:: |
constant | Language code referring to site's default language. | ||
LanguageInterface:: |
constant | Special system language code (only applicable to UI language). | ||
LanguageInterface:: |
constant | The language state used when referring to all languages. | ||
LanguageInterface:: |
constant | The language state when referring to configurable languages. | ||
LanguageInterface:: |
constant | The language state when referring to locked languages. | ||
LanguageInterface:: |
constant | The language state used when referring to the site's default language. | ||
LanguageInterface:: |
constant | The type of language used to define the content language. | ||
LanguageInterface:: |
constant | The type of language used to select the user interface. | ||
LanguageInterface:: |
constant | The type of language used for URLs. | ||
LanguageInterface:: |
constant | A regex for validating language codes according to W3C specifications. |