Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/Language/LanguageInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/Language/LanguageInterface.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,149 @@ +<?php + +namespace Drupal\Core\Language; + +/** + * Defines a language. + */ +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'; + + /** + * 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(); + +}