public __construct($string, array $arguments = array(), array $options = array(), ?Drupal\Core\StringTranslation\TranslationInterface $string_translation = null) Constructs a new class instance.
/**
* Constructs a new class instance.
*
* When possible, use the
* \Drupal\Core\StringTranslation\StringTranslationTrait $this->t(). Otherwise
* create a new \Drupal\Core\StringTranslation\TranslatableMarkup object
* directly.
*
* Calling the trait's t() method or instantiating a new TranslatableMarkup
* object serves two purposes:
* - At run-time it translates user-visible text into the appropriate
* language.
* - Static analyzers detect calls to t() and new TranslatableMarkup, and add
* the first argument (the string to be translated) to the database of
* strings that need translation. These strings are expected to be in
* English, so the first argument should always be in English.
* To allow the site to be localized, it is important that all human-readable
* text that will be displayed on the site or sent to a user is made available
* in one of the ways supported by the
* @link https://www.drupal.org/node/322729 Localization API @endlink.
* See the @link https://www.drupal.org/node/322729 Localization API @endlink
* pages for more information, including recommendations on how to break up or
* not break up strings for translation.
*
* @section sec_translating_vars Translating Variables
* $string should always be an English literal string.
*
* $string should never contain a variable, such as:
* @code
* new TranslatableMarkup($text)
* @endcode
* There are several reasons for this:
* - Using a variable for $string that is user input is a security risk.
* - Using a variable for $string that has even guaranteed safe text (for
* example, user interface text provided literally in code), will not be
* picked up by the localization static text processor. (The parameter could
* be a variable if the entire string in $text has been passed into t() or
* new TranslatableMarkup() elsewhere as the first argument, but that
* strategy is not recommended.)
*
* It is especially important never to call new TranslatableMarkup($user_text)
* or t($user_text) where $user_text is some text that a user entered -- doing
* that can lead to cross-site scripting and other security problems. However,
* you can use variable substitution in your string, to put variable text such
* as user names or link URLs into translated text. Variable substitution
* looks like this:
* @code
* new TranslatableMarkup("@name's blog", ['@name' => $account->getDisplayName()]);
* @endcode
* Basically, you can put placeholders like @name into your string, and the
* method will substitute the sanitized values at translation time. (See the
* Localization API pages referenced above and the documentation of
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* for details about how to safely and correctly define variables in your
* string.) Translators can then rearrange the string as necessary for the
* language (e.g., in Spanish, it might be "blog de @name").
*
* @param string $string
* A string containing the English text to translate.
* @param array $arguments
* (optional) An associative array of replacements to make after
* translation. Based on the first character of the key, the value is
* escaped and/or themed. See
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for
* details.
* @param array $options
* (optional) An associative array of additional options, with the following
* elements:
* - 'langcode' (defaults to the current language): A language code, to
* translate to a language other than what is used to display the page.
* - 'context' (defaults to the empty context): The context the source
* string belongs to.
* @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
* (optional) The string translation service.
*
* @throws \InvalidArgumentException
* Exception thrown when $string is not a string.
*
* @see \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* @see \Drupal\Core\StringTranslation\StringTranslationTrait::t()
*
* @ingroup sanitization
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:129
public getUntranslatedString(): string Gets the untranslated string value stored in this translated string.
/**
* Gets the untranslated string value stored in this translated string.
*
* @return string
* The string stored in this wrapper.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:145
public getOption($name): mixed Gets a specific option from this translated string.
/**
* Gets a specific option from this translated string.
*
* @param string $name
* Option name.
*
* @return mixed
* The value of this option or empty string of option is not set.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:158
public getOptions(): mixed[] Gets all options from this translated string.
/**
* Gets all options from this translated string.
*
* @return mixed[]
* The array of options.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:168
public getArguments(): mixed[] Gets all arguments from this translated string.
/**
* Gets all arguments from this translated string.
*
* @return mixed[]
* The array of arguments.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:178
public render(): string Renders the object as a string.
/**
* Renders the object as a string.
*
* @return string
* The translated string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:188
public __sleep(): array Magic __sleep() method to avoid serializing the string translator.
/**
* Magic __sleep() method to avoid serializing the string translator.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:203
protected getStringTranslation(): \Drupal\Core\StringTranslation\TranslationInterface Gets the string translation service.
/**
* Gets the string translation service.
*
* @return \Drupal\Core\StringTranslation\TranslationInterface
* The string translation service.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:213
public count(): int Returns the string length.
/**
* Returns the string length.
*
* @return int
* The length of the string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:227
public __toString(): string Implements the magic __toString() method.
/**
* Implements the magic __toString() method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:13
public jsonSerialize(): string Returns a representation of the object for use in JSON serialization.
/**
* Returns a representation of the object for use in JSON serialization.
*
* @return string
* The safe string content.
*/
Inherited from Drupal\Component\Render\FormattableMarkup
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:97
protected _die() For test purposes, wrap die() in an overridable method.
/**
* For test purposes, wrap die() in an overridable method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:31
protected static Drupal\Component\Render\FormattableMarkup::placeholderFormat($string, array $args): string Replaces placeholders in a string with values.
/**
* Replaces placeholders in a string with values.
*
* For convenience examples are listed here. Refer to the parameter
* description for $args for details of the placeholders "@", "%", and ":".
*
* Secure examples.
* @code
* // Return the HTML string "Prefix $some_variable".
* $this->placeholderFormat('Prefix @foo', ['@foo' => $some_variable]);
* // Convert an object to a sanitized string.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => (string) $safe_string_interface_object]);
* // Wrap $some_variable in an <em> tag.
* $this->placeholderFormat('Prefix %foo', ['%foo' => $some_variable]);
* // The following are using the : placeholder inside an HTML tag.
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo" title="static text">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* // Use a : placeholder inside an HTML tag.
* $this->placeholderFormat('<img src=":foo" />', [':foo' => '/image.png']);
* @endcode
* The above are typical examples of using the placeholders correctly.
*
* Insecure examples.
* @code
* // The following are using the @ placeholder inside an HTML tag.
* $this->placeholderFormat('<@foo>text</@foo>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a @foo>link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a href="@foo">link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a title="@foo">link text</a>', ['@foo' => $some_variable]);
* // Implicitly convert an object to a string, which is not sanitized.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => $safe_string_interface_object]);
* @endcode
* These are the more common mistakes that can be made. Make sure that your
* site is not using any insecure usages of these placeholders.
*
* @param string $string
* A string containing placeholders. The string itself is expected to be
* safe and correct HTML. Any unsafe content must be in $args and inserted
* via placeholders. It is insecure to use the @ or % placeholders within
* the "<" and ">" of an HTML tag.
* @param array $args
* An associative array of replacements. Each array key should be the same
* as a placeholder in $string. The corresponding value should be a string
* or an object that implements \Drupal\Component\Render\MarkupInterface.
* The args[] value replaces the placeholder in $string. Sanitization and
* formatting will be done before replacement. The type of sanitization
* and formatting depends on the first character of the key:
* - @variable: Use as the default choice for anything displayed on the
* site. Do not use within the "<" and ">" of an HTML tag, such as in
* HTML attribute values. Doing so is a security risk.
* - %variable: Use when @variable would be appropriate, but you want the
* placeholder value to be wrapped in an <em> tag with a placeholder
* class. As with @variable, do not use within the "<" and ">" of an HTML
* tag, such as in HTML attribute values. Doing so is a security risk.
* - :variable: Use when the return value is to be used as a URL value of an
* HTML attribute. Only the "href" attribute is supported. The return
* value is escaped with
* \Drupal\Component\Utility\Html::escape() and filtered for dangerous
* protocols using UrlHelper::stripDangerousProtocols(). Use this when
* using the "href" attribute, ensuring the value is always wrapped in
* quotes.
*
* @return string
* A formatted HTML string with the placeholders replaced.
*
* @ingroup sanitization
*
* @see \Drupal\Core\StringTranslation\TranslatableMarkup
* @see \Drupal\Core\StringTranslation\PluralTranslatableMarkup
* @see \Drupal\Component\Utility\Html::escape()
* @see \Drupal\Component\Utility\UrlHelper::stripDangerousProtocols()
* @see \Drupal\Core\Url::fromUri()
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:175
protected static Drupal\Component\Render\FormattableMarkup::placeholderEscape($value): string Escapes a placeholder replacement value if needed.
/**
* Escapes a placeholder replacement value if needed.
*
* @param string|\Drupal\Component\Render\MarkupInterface $value
* A placeholder replacement value.
*
* @return string
* The properly escaped replacement value.
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:237
public __construct($string, array $arguments = array(), array $options = array(), ?Drupal\Core\StringTranslation\TranslationInterface $string_translation = null) Constructs a new class instance.
/**
* Constructs a new class instance.
*
* When possible, use the
* \Drupal\Core\StringTranslation\StringTranslationTrait $this->t(). Otherwise
* create a new \Drupal\Core\StringTranslation\TranslatableMarkup object
* directly.
*
* Calling the trait's t() method or instantiating a new TranslatableMarkup
* object serves two purposes:
* - At run-time it translates user-visible text into the appropriate
* language.
* - Static analyzers detect calls to t() and new TranslatableMarkup, and add
* the first argument (the string to be translated) to the database of
* strings that need translation. These strings are expected to be in
* English, so the first argument should always be in English.
* To allow the site to be localized, it is important that all human-readable
* text that will be displayed on the site or sent to a user is made available
* in one of the ways supported by the
* @link https://www.drupal.org/node/322729 Localization API @endlink.
* See the @link https://www.drupal.org/node/322729 Localization API @endlink
* pages for more information, including recommendations on how to break up or
* not break up strings for translation.
*
* @section sec_translating_vars Translating Variables
* $string should always be an English literal string.
*
* $string should never contain a variable, such as:
* @code
* new TranslatableMarkup($text)
* @endcode
* There are several reasons for this:
* - Using a variable for $string that is user input is a security risk.
* - Using a variable for $string that has even guaranteed safe text (for
* example, user interface text provided literally in code), will not be
* picked up by the localization static text processor. (The parameter could
* be a variable if the entire string in $text has been passed into t() or
* new TranslatableMarkup() elsewhere as the first argument, but that
* strategy is not recommended.)
*
* It is especially important never to call new TranslatableMarkup($user_text)
* or t($user_text) where $user_text is some text that a user entered -- doing
* that can lead to cross-site scripting and other security problems. However,
* you can use variable substitution in your string, to put variable text such
* as user names or link URLs into translated text. Variable substitution
* looks like this:
* @code
* new TranslatableMarkup("@name's blog", ['@name' => $account->getDisplayName()]);
* @endcode
* Basically, you can put placeholders like @name into your string, and the
* method will substitute the sanitized values at translation time. (See the
* Localization API pages referenced above and the documentation of
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* for details about how to safely and correctly define variables in your
* string.) Translators can then rearrange the string as necessary for the
* language (e.g., in Spanish, it might be "blog de @name").
*
* @param string $string
* A string containing the English text to translate.
* @param array $arguments
* (optional) An associative array of replacements to make after
* translation. Based on the first character of the key, the value is
* escaped and/or themed. See
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for
* details.
* @param array $options
* (optional) An associative array of additional options, with the following
* elements:
* - 'langcode' (defaults to the current language): A language code, to
* translate to a language other than what is used to display the page.
* - 'context' (defaults to the empty context): The context the source
* string belongs to.
* @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
* (optional) The string translation service.
*
* @throws \InvalidArgumentException
* Exception thrown when $string is not a string.
*
* @see \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* @see \Drupal\Core\StringTranslation\StringTranslationTrait::t()
*
* @ingroup sanitization
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:129
public getUntranslatedString(): string Gets the untranslated string value stored in this translated string.
/**
* Gets the untranslated string value stored in this translated string.
*
* @return string
* The string stored in this wrapper.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:145
public getOption($name): mixed Gets a specific option from this translated string.
/**
* Gets a specific option from this translated string.
*
* @param string $name
* Option name.
*
* @return mixed
* The value of this option or empty string of option is not set.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:158
public getOptions(): mixed[] Gets all options from this translated string.
/**
* Gets all options from this translated string.
*
* @return mixed[]
* The array of options.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:168
public getArguments(): mixed[] Gets all arguments from this translated string.
/**
* Gets all arguments from this translated string.
*
* @return mixed[]
* The array of arguments.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:178
public render(): string Renders the object as a string.
/**
* Renders the object as a string.
*
* @return string
* The translated string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:188
public __sleep(): array Magic __sleep() method to avoid serializing the string translator.
/**
* Magic __sleep() method to avoid serializing the string translator.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:203
protected getStringTranslation(): \Drupal\Core\StringTranslation\TranslationInterface Gets the string translation service.
/**
* Gets the string translation service.
*
* @return \Drupal\Core\StringTranslation\TranslationInterface
* The string translation service.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:213
public count(): int Returns the string length.
/**
* Returns the string length.
*
* @return int
* The length of the string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:227
public __toString(): string Implements the magic __toString() method.
/**
* Implements the magic __toString() method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:13
public jsonSerialize(): string Returns a representation of the object for use in JSON serialization.
/**
* Returns a representation of the object for use in JSON serialization.
*
* @return string
* The safe string content.
*/
Inherited from Drupal\Component\Render\FormattableMarkup
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:97
protected _die() For test purposes, wrap die() in an overridable method.
/**
* For test purposes, wrap die() in an overridable method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:31
protected static Drupal\Component\Render\FormattableMarkup::placeholderFormat($string, array $args): string Replaces placeholders in a string with values.
/**
* Replaces placeholders in a string with values.
*
* For convenience examples are listed here. Refer to the parameter
* description for $args for details of the placeholders "@", "%", and ":".
*
* Secure examples.
* @code
* // Return the HTML string "Prefix $some_variable".
* $this->placeholderFormat('Prefix @foo', ['@foo' => $some_variable]);
* // Convert an object to a sanitized string.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => (string) $safe_string_interface_object]);
* // Wrap $some_variable in an <em> tag.
* $this->placeholderFormat('Prefix %foo', ['%foo' => $some_variable]);
* // The following are using the : placeholder inside an HTML tag.
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo" title="static text">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* // Use a : placeholder inside an HTML tag.
* $this->placeholderFormat('<img src=":foo" />', [':foo' => '/image.png']);
* @endcode
* The above are typical examples of using the placeholders correctly.
*
* Insecure examples.
* @code
* // The following are using the @ placeholder inside an HTML tag.
* $this->placeholderFormat('<@foo>text</@foo>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a @foo>link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a href="@foo">link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a title="@foo">link text</a>', ['@foo' => $some_variable]);
* // Implicitly convert an object to a string, which is not sanitized.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => $safe_string_interface_object]);
* @endcode
* These are the more common mistakes that can be made. Make sure that your
* site is not using any insecure usages of these placeholders.
*
* @param string $string
* A string containing placeholders. The string itself is expected to be
* safe and correct HTML. Any unsafe content must be in $args and inserted
* via placeholders. It is insecure to use the @ or % placeholders within
* the "<" and ">" of an HTML tag.
* @param array $args
* An associative array of replacements. Each array key should be the same
* as a placeholder in $string. The corresponding value should be a string
* or an object that implements \Drupal\Component\Render\MarkupInterface.
* The args[] value replaces the placeholder in $string. Sanitization and
* formatting will be done before replacement. The type of sanitization
* and formatting depends on the first character of the key:
* - @variable: Use as the default choice for anything displayed on the
* site. Do not use within the "<" and ">" of an HTML tag, such as in
* HTML attribute values. Doing so is a security risk.
* - %variable: Use when @variable would be appropriate, but you want the
* placeholder value to be wrapped in an <em> tag with a placeholder
* class. As with @variable, do not use within the "<" and ">" of an HTML
* tag, such as in HTML attribute values. Doing so is a security risk.
* - :variable: Use when the return value is to be used as a URL value of an
* HTML attribute. Only the "href" attribute is supported. The return
* value is escaped with
* \Drupal\Component\Utility\Html::escape() and filtered for dangerous
* protocols using UrlHelper::stripDangerousProtocols(). Use this when
* using the "href" attribute, ensuring the value is always wrapped in
* quotes.
*
* @return string
* A formatted HTML string with the placeholders replaced.
*
* @ingroup sanitization
*
* @see \Drupal\Core\StringTranslation\TranslatableMarkup
* @see \Drupal\Core\StringTranslation\PluralTranslatableMarkup
* @see \Drupal\Component\Utility\Html::escape()
* @see \Drupal\Component\Utility\UrlHelper::stripDangerousProtocols()
* @see \Drupal\Core\Url::fromUri()
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:175
protected static Drupal\Component\Render\FormattableMarkup::placeholderEscape($value): string Escapes a placeholder replacement value if needed.
/**
* Escapes a placeholder replacement value if needed.
*
* @param string|\Drupal\Component\Render\MarkupInterface $value
* A placeholder replacement value.
*
* @return string
* The properly escaped replacement value.
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:237
public __construct($string, array $arguments = array(), array $options = array(), ?Drupal\Core\StringTranslation\TranslationInterface $string_translation = null) Constructs a new class instance.
/**
* Constructs a new class instance.
*
* When possible, use the
* \Drupal\Core\StringTranslation\StringTranslationTrait $this->t(). Otherwise
* create a new \Drupal\Core\StringTranslation\TranslatableMarkup object
* directly.
*
* Calling the trait's t() method or instantiating a new TranslatableMarkup
* object serves two purposes:
* - At run-time it translates user-visible text into the appropriate
* language.
* - Static analyzers detect calls to t() and new TranslatableMarkup, and add
* the first argument (the string to be translated) to the database of
* strings that need translation. These strings are expected to be in
* English, so the first argument should always be in English.
* To allow the site to be localized, it is important that all human-readable
* text that will be displayed on the site or sent to a user is made available
* in one of the ways supported by the
* @link https://www.drupal.org/node/322729 Localization API @endlink.
* See the @link https://www.drupal.org/node/322729 Localization API @endlink
* pages for more information, including recommendations on how to break up or
* not break up strings for translation.
*
* @section sec_translating_vars Translating Variables
* $string should always be an English literal string.
*
* $string should never contain a variable, such as:
* @code
* new TranslatableMarkup($text)
* @endcode
* There are several reasons for this:
* - Using a variable for $string that is user input is a security risk.
* - Using a variable for $string that has even guaranteed safe text (for
* example, user interface text provided literally in code), will not be
* picked up by the localization static text processor. (The parameter could
* be a variable if the entire string in $text has been passed into t() or
* new TranslatableMarkup() elsewhere as the first argument, but that
* strategy is not recommended.)
*
* It is especially important never to call new TranslatableMarkup($user_text)
* or t($user_text) where $user_text is some text that a user entered -- doing
* that can lead to cross-site scripting and other security problems. However,
* you can use variable substitution in your string, to put variable text such
* as user names or link URLs into translated text. Variable substitution
* looks like this:
* @code
* new TranslatableMarkup("@name's blog", ['@name' => $account->getDisplayName()]);
* @endcode
* Basically, you can put placeholders like @name into your string, and the
* method will substitute the sanitized values at translation time. (See the
* Localization API pages referenced above and the documentation of
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* for details about how to safely and correctly define variables in your
* string.) Translators can then rearrange the string as necessary for the
* language (e.g., in Spanish, it might be "blog de @name").
*
* @param string $string
* A string containing the English text to translate.
* @param array $arguments
* (optional) An associative array of replacements to make after
* translation. Based on the first character of the key, the value is
* escaped and/or themed. See
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for
* details.
* @param array $options
* (optional) An associative array of additional options, with the following
* elements:
* - 'langcode' (defaults to the current language): A language code, to
* translate to a language other than what is used to display the page.
* - 'context' (defaults to the empty context): The context the source
* string belongs to.
* @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
* (optional) The string translation service.
*
* @throws \InvalidArgumentException
* Exception thrown when $string is not a string.
*
* @see \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* @see \Drupal\Core\StringTranslation\StringTranslationTrait::t()
*
* @ingroup sanitization
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:129
public getUntranslatedString(): string Gets the untranslated string value stored in this translated string.
/**
* Gets the untranslated string value stored in this translated string.
*
* @return string
* The string stored in this wrapper.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:145
public getOption($name): mixed Gets a specific option from this translated string.
/**
* Gets a specific option from this translated string.
*
* @param string $name
* Option name.
*
* @return mixed
* The value of this option or empty string of option is not set.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:158
public getOptions(): mixed[] Gets all options from this translated string.
/**
* Gets all options from this translated string.
*
* @return mixed[]
* The array of options.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:168
public getArguments(): mixed[] Gets all arguments from this translated string.
/**
* Gets all arguments from this translated string.
*
* @return mixed[]
* The array of arguments.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:178
public render(): string Renders the object as a string.
/**
* Renders the object as a string.
*
* @return string
* The translated string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:188
public __sleep(): array Magic __sleep() method to avoid serializing the string translator.
/**
* Magic __sleep() method to avoid serializing the string translator.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:203
protected getStringTranslation(): \Drupal\Core\StringTranslation\TranslationInterface Gets the string translation service.
/**
* Gets the string translation service.
*
* @return \Drupal\Core\StringTranslation\TranslationInterface
* The string translation service.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:213
public count(): int Returns the string length.
/**
* Returns the string length.
*
* @return int
* The length of the string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:227
public __toString(): string Implements the magic __toString() method.
/**
* Implements the magic __toString() method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:13
public jsonSerialize(): string Returns a representation of the object for use in JSON serialization.
/**
* Returns a representation of the object for use in JSON serialization.
*
* @return string
* The safe string content.
*/
Inherited from Drupal\Component\Render\FormattableMarkup
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:97
protected _die() For test purposes, wrap die() in an overridable method.
/**
* For test purposes, wrap die() in an overridable method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:31
protected static Drupal\Component\Render\FormattableMarkup::placeholderFormat($string, array $args): string Replaces placeholders in a string with values.
/**
* Replaces placeholders in a string with values.
*
* For convenience examples are listed here. Refer to the parameter
* description for $args for details of the placeholders "@", "%", and ":".
*
* Secure examples.
* @code
* // Return the HTML string "Prefix $some_variable".
* $this->placeholderFormat('Prefix @foo', ['@foo' => $some_variable]);
* // Convert an object to a sanitized string.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => (string) $safe_string_interface_object]);
* // Wrap $some_variable in an <em> tag.
* $this->placeholderFormat('Prefix %foo', ['%foo' => $some_variable]);
* // The following are using the : placeholder inside an HTML tag.
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo" title="static text">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* // Use a : placeholder inside an HTML tag.
* $this->placeholderFormat('<img src=":foo" />', [':foo' => '/image.png']);
* @endcode
* The above are typical examples of using the placeholders correctly.
*
* Insecure examples.
* @code
* // The following are using the @ placeholder inside an HTML tag.
* $this->placeholderFormat('<@foo>text</@foo>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a @foo>link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a href="@foo">link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a title="@foo">link text</a>', ['@foo' => $some_variable]);
* // Implicitly convert an object to a string, which is not sanitized.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => $safe_string_interface_object]);
* @endcode
* These are the more common mistakes that can be made. Make sure that your
* site is not using any insecure usages of these placeholders.
*
* @param string $string
* A string containing placeholders. The string itself is expected to be
* safe and correct HTML. Any unsafe content must be in $args and inserted
* via placeholders. It is insecure to use the @ or % placeholders within
* the "<" and ">" of an HTML tag.
* @param array $args
* An associative array of replacements. Each array key should be the same
* as a placeholder in $string. The corresponding value should be a string
* or an object that implements \Drupal\Component\Render\MarkupInterface.
* The args[] value replaces the placeholder in $string. Sanitization and
* formatting will be done before replacement. The type of sanitization
* and formatting depends on the first character of the key:
* - @variable: Use as the default choice for anything displayed on the
* site. Do not use within the "<" and ">" of an HTML tag, such as in
* HTML attribute values. Doing so is a security risk.
* - %variable: Use when @variable would be appropriate, but you want the
* placeholder value to be wrapped in an <em> tag with a placeholder
* class. As with @variable, do not use within the "<" and ">" of an HTML
* tag, such as in HTML attribute values. Doing so is a security risk.
* - :variable: Use when the return value is to be used as a URL value of an
* HTML attribute. Only the "href" attribute is supported. The return
* value is escaped with
* \Drupal\Component\Utility\Html::escape() and filtered for dangerous
* protocols using UrlHelper::stripDangerousProtocols(). Use this when
* using the "href" attribute, ensuring the value is always wrapped in
* quotes.
*
* @return string
* A formatted HTML string with the placeholders replaced.
*
* @ingroup sanitization
*
* @see \Drupal\Core\StringTranslation\TranslatableMarkup
* @see \Drupal\Core\StringTranslation\PluralTranslatableMarkup
* @see \Drupal\Component\Utility\Html::escape()
* @see \Drupal\Component\Utility\UrlHelper::stripDangerousProtocols()
* @see \Drupal\Core\Url::fromUri()
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:175
protected static Drupal\Component\Render\FormattableMarkup::placeholderEscape($value): string Escapes a placeholder replacement value if needed.
/**
* Escapes a placeholder replacement value if needed.
*
* @param string|\Drupal\Component\Render\MarkupInterface $value
* A placeholder replacement value.
*
* @return string
* The properly escaped replacement value.
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:237
public __construct($string, array $arguments = array(), array $options = array(), ?Drupal\Core\StringTranslation\TranslationInterface $string_translation = null) Constructs a new class instance.
/**
* Constructs a new class instance.
*
* When possible, use the
* \Drupal\Core\StringTranslation\StringTranslationTrait $this->t(). Otherwise
* create a new \Drupal\Core\StringTranslation\TranslatableMarkup object
* directly.
*
* Calling the trait's t() method or instantiating a new TranslatableMarkup
* object serves two purposes:
* - At run-time it translates user-visible text into the appropriate
* language.
* - Static analyzers detect calls to t() and new TranslatableMarkup, and add
* the first argument (the string to be translated) to the database of
* strings that need translation. These strings are expected to be in
* English, so the first argument should always be in English.
* To allow the site to be localized, it is important that all human-readable
* text that will be displayed on the site or sent to a user is made available
* in one of the ways supported by the
* @link https://www.drupal.org/node/322729 Localization API @endlink.
* See the @link https://www.drupal.org/node/322729 Localization API @endlink
* pages for more information, including recommendations on how to break up or
* not break up strings for translation.
*
* @section sec_translating_vars Translating Variables
* $string should always be an English literal string.
*
* $string should never contain a variable, such as:
* @code
* new TranslatableMarkup($text)
* @endcode
* There are several reasons for this:
* - Using a variable for $string that is user input is a security risk.
* - Using a variable for $string that has even guaranteed safe text (for
* example, user interface text provided literally in code), will not be
* picked up by the localization static text processor. (The parameter could
* be a variable if the entire string in $text has been passed into t() or
* new TranslatableMarkup() elsewhere as the first argument, but that
* strategy is not recommended.)
*
* It is especially important never to call new TranslatableMarkup($user_text)
* or t($user_text) where $user_text is some text that a user entered -- doing
* that can lead to cross-site scripting and other security problems. However,
* you can use variable substitution in your string, to put variable text such
* as user names or link URLs into translated text. Variable substitution
* looks like this:
* @code
* new TranslatableMarkup("@name's blog", ['@name' => $account->getDisplayName()]);
* @endcode
* Basically, you can put placeholders like @name into your string, and the
* method will substitute the sanitized values at translation time. (See the
* Localization API pages referenced above and the documentation of
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* for details about how to safely and correctly define variables in your
* string.) Translators can then rearrange the string as necessary for the
* language (e.g., in Spanish, it might be "blog de @name").
*
* @param string $string
* A string containing the English text to translate.
* @param array $arguments
* (optional) An associative array of replacements to make after
* translation. Based on the first character of the key, the value is
* escaped and/or themed. See
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for
* details.
* @param array $options
* (optional) An associative array of additional options, with the following
* elements:
* - 'langcode' (defaults to the current language): A language code, to
* translate to a language other than what is used to display the page.
* - 'context' (defaults to the empty context): The context the source
* string belongs to.
* @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
* (optional) The string translation service.
*
* @throws \InvalidArgumentException
* Exception thrown when $string is not a string.
*
* @see \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* @see \Drupal\Core\StringTranslation\StringTranslationTrait::t()
*
* @ingroup sanitization
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:129
public getUntranslatedString(): string Gets the untranslated string value stored in this translated string.
/**
* Gets the untranslated string value stored in this translated string.
*
* @return string
* The string stored in this wrapper.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:145
public getOption($name): mixed Gets a specific option from this translated string.
/**
* Gets a specific option from this translated string.
*
* @param string $name
* Option name.
*
* @return mixed
* The value of this option or empty string of option is not set.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:158
public getOptions(): mixed[] Gets all options from this translated string.
/**
* Gets all options from this translated string.
*
* @return mixed[]
* The array of options.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:168
public getArguments(): mixed[] Gets all arguments from this translated string.
/**
* Gets all arguments from this translated string.
*
* @return mixed[]
* The array of arguments.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:178
public render(): string Renders the object as a string.
/**
* Renders the object as a string.
*
* @return string
* The translated string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:188
public __sleep(): array Magic __sleep() method to avoid serializing the string translator.
/**
* Magic __sleep() method to avoid serializing the string translator.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:203
protected getStringTranslation(): \Drupal\Core\StringTranslation\TranslationInterface Gets the string translation service.
/**
* Gets the string translation service.
*
* @return \Drupal\Core\StringTranslation\TranslationInterface
* The string translation service.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:213
public count(): int Returns the string length.
/**
* Returns the string length.
*
* @return int
* The length of the string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:227
public __toString(): string Implements the magic __toString() method.
/**
* Implements the magic __toString() method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:13
public jsonSerialize(): string Returns a representation of the object for use in JSON serialization.
/**
* Returns a representation of the object for use in JSON serialization.
*
* @return string
* The safe string content.
*/
Inherited from Drupal\Component\Render\FormattableMarkup
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:97
protected _die() For test purposes, wrap die() in an overridable method.
/**
* For test purposes, wrap die() in an overridable method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:31
protected static Drupal\Component\Render\FormattableMarkup::placeholderFormat($string, array $args): string Replaces placeholders in a string with values.
/**
* Replaces placeholders in a string with values.
*
* For convenience examples are listed here. Refer to the parameter
* description for $args for details of the placeholders "@", "%", and ":".
*
* Secure examples.
* @code
* // Return the HTML string "Prefix $some_variable".
* $this->placeholderFormat('Prefix @foo', ['@foo' => $some_variable]);
* // Convert an object to a sanitized string.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => (string) $safe_string_interface_object]);
* // Wrap $some_variable in an <em> tag.
* $this->placeholderFormat('Prefix %foo', ['%foo' => $some_variable]);
* // The following are using the : placeholder inside an HTML tag.
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo" title="static text">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* // Use a : placeholder inside an HTML tag.
* $this->placeholderFormat('<img src=":foo" />', [':foo' => '/image.png']);
* @endcode
* The above are typical examples of using the placeholders correctly.
*
* Insecure examples.
* @code
* // The following are using the @ placeholder inside an HTML tag.
* $this->placeholderFormat('<@foo>text</@foo>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a @foo>link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a href="@foo">link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a title="@foo">link text</a>', ['@foo' => $some_variable]);
* // Implicitly convert an object to a string, which is not sanitized.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => $safe_string_interface_object]);
* @endcode
* These are the more common mistakes that can be made. Make sure that your
* site is not using any insecure usages of these placeholders.
*
* @param string $string
* A string containing placeholders. The string itself is expected to be
* safe and correct HTML. Any unsafe content must be in $args and inserted
* via placeholders. It is insecure to use the @ or % placeholders within
* the "<" and ">" of an HTML tag.
* @param array $args
* An associative array of replacements. Each array key should be the same
* as a placeholder in $string. The corresponding value should be a string
* or an object that implements \Drupal\Component\Render\MarkupInterface.
* The args[] value replaces the placeholder in $string. Sanitization and
* formatting will be done before replacement. The type of sanitization
* and formatting depends on the first character of the key:
* - @variable: Use as the default choice for anything displayed on the
* site. Do not use within the "<" and ">" of an HTML tag, such as in
* HTML attribute values. Doing so is a security risk.
* - %variable: Use when @variable would be appropriate, but you want the
* placeholder value to be wrapped in an <em> tag with a placeholder
* class. As with @variable, do not use within the "<" and ">" of an HTML
* tag, such as in HTML attribute values. Doing so is a security risk.
* - :variable: Use when the return value is to be used as a URL value of an
* HTML attribute. Only the "href" attribute is supported. The return
* value is escaped with
* \Drupal\Component\Utility\Html::escape() and filtered for dangerous
* protocols using UrlHelper::stripDangerousProtocols(). Use this when
* using the "href" attribute, ensuring the value is always wrapped in
* quotes.
*
* @return string
* A formatted HTML string with the placeholders replaced.
*
* @ingroup sanitization
*
* @see \Drupal\Core\StringTranslation\TranslatableMarkup
* @see \Drupal\Core\StringTranslation\PluralTranslatableMarkup
* @see \Drupal\Component\Utility\Html::escape()
* @see \Drupal\Component\Utility\UrlHelper::stripDangerousProtocols()
* @see \Drupal\Core\Url::fromUri()
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:175
protected static Drupal\Component\Render\FormattableMarkup::placeholderEscape($value): string Escapes a placeholder replacement value if needed.
/**
* Escapes a placeholder replacement value if needed.
*
* @param string|\Drupal\Component\Render\MarkupInterface $value
* A placeholder replacement value.
*
* @return string
* The properly escaped replacement value.
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:237
public __construct($string, array $arguments = array(), array $options = array(), ?Drupal\Core\StringTranslation\TranslationInterface $string_translation = null) Constructs a new class instance.
/**
* Constructs a new class instance.
*
* When possible, use the
* \Drupal\Core\StringTranslation\StringTranslationTrait $this->t(). Otherwise
* create a new \Drupal\Core\StringTranslation\TranslatableMarkup object
* directly.
*
* Calling the trait's t() method or instantiating a new TranslatableMarkup
* object serves two purposes:
* - At run-time it translates user-visible text into the appropriate
* language.
* - Static analyzers detect calls to t() and new TranslatableMarkup, and add
* the first argument (the string to be translated) to the database of
* strings that need translation. These strings are expected to be in
* English, so the first argument should always be in English.
* To allow the site to be localized, it is important that all human-readable
* text that will be displayed on the site or sent to a user is made available
* in one of the ways supported by the
* @link https://www.drupal.org/node/322729 Localization API @endlink.
* See the @link https://www.drupal.org/node/322729 Localization API @endlink
* pages for more information, including recommendations on how to break up or
* not break up strings for translation.
*
* @section sec_translating_vars Translating Variables
* $string should always be an English literal string.
*
* $string should never contain a variable, such as:
* @code
* new TranslatableMarkup($text)
* @endcode
* There are several reasons for this:
* - Using a variable for $string that is user input is a security risk.
* - Using a variable for $string that has even guaranteed safe text (for
* example, user interface text provided literally in code), will not be
* picked up by the localization static text processor. (The parameter could
* be a variable if the entire string in $text has been passed into t() or
* new TranslatableMarkup() elsewhere as the first argument, but that
* strategy is not recommended.)
*
* It is especially important never to call new TranslatableMarkup($user_text)
* or t($user_text) where $user_text is some text that a user entered -- doing
* that can lead to cross-site scripting and other security problems. However,
* you can use variable substitution in your string, to put variable text such
* as user names or link URLs into translated text. Variable substitution
* looks like this:
* @code
* new TranslatableMarkup("@name's blog", ['@name' => $account->getDisplayName()]);
* @endcode
* Basically, you can put placeholders like @name into your string, and the
* method will substitute the sanitized values at translation time. (See the
* Localization API pages referenced above and the documentation of
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* for details about how to safely and correctly define variables in your
* string.) Translators can then rearrange the string as necessary for the
* language (e.g., in Spanish, it might be "blog de @name").
*
* @param string $string
* A string containing the English text to translate.
* @param array $arguments
* (optional) An associative array of replacements to make after
* translation. Based on the first character of the key, the value is
* escaped and/or themed. See
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for
* details.
* @param array $options
* (optional) An associative array of additional options, with the following
* elements:
* - 'langcode' (defaults to the current language): A language code, to
* translate to a language other than what is used to display the page.
* - 'context' (defaults to the empty context): The context the source
* string belongs to.
* @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
* (optional) The string translation service.
*
* @throws \InvalidArgumentException
* Exception thrown when $string is not a string.
*
* @see \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* @see \Drupal\Core\StringTranslation\StringTranslationTrait::t()
*
* @ingroup sanitization
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:129
public getUntranslatedString(): string Gets the untranslated string value stored in this translated string.
/**
* Gets the untranslated string value stored in this translated string.
*
* @return string
* The string stored in this wrapper.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:145
public getOption($name): mixed Gets a specific option from this translated string.
/**
* Gets a specific option from this translated string.
*
* @param string $name
* Option name.
*
* @return mixed
* The value of this option or empty string of option is not set.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:158
public getOptions(): mixed[] Gets all options from this translated string.
/**
* Gets all options from this translated string.
*
* @return mixed[]
* The array of options.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:168
public getArguments(): mixed[] Gets all arguments from this translated string.
/**
* Gets all arguments from this translated string.
*
* @return mixed[]
* The array of arguments.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:178
public render(): string Renders the object as a string.
/**
* Renders the object as a string.
*
* @return string
* The translated string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:188
public __sleep(): array Magic __sleep() method to avoid serializing the string translator.
/**
* Magic __sleep() method to avoid serializing the string translator.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:203
protected getStringTranslation(): \Drupal\Core\StringTranslation\TranslationInterface Gets the string translation service.
/**
* Gets the string translation service.
*
* @return \Drupal\Core\StringTranslation\TranslationInterface
* The string translation service.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:213
public count(): int Returns the string length.
/**
* Returns the string length.
*
* @return int
* The length of the string.
*/
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php:227
public __toString(): string Implements the magic __toString() method.
/**
* Implements the magic __toString() method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:13
public jsonSerialize(): string Returns a representation of the object for use in JSON serialization.
/**
* Returns a representation of the object for use in JSON serialization.
*
* @return string
* The safe string content.
*/
Inherited from Drupal\Component\Render\FormattableMarkup
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:97
protected _die() For test purposes, wrap die() in an overridable method.
/**
* For test purposes, wrap die() in an overridable method.
*/
Defined in <drupal>/core/lib/Drupal/Component/Utility/ToStringTrait.php:31
protected static Drupal\Component\Render\FormattableMarkup::placeholderFormat($string, array $args): string Replaces placeholders in a string with values.
/**
* Replaces placeholders in a string with values.
*
* For convenience examples are listed here. Refer to the parameter
* description for $args for details of the placeholders "@", "%", and ":".
*
* Secure examples.
* @code
* // Return the HTML string "Prefix $some_variable".
* $this->placeholderFormat('Prefix @foo', ['@foo' => $some_variable]);
* // Convert an object to a sanitized string.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => (string) $safe_string_interface_object]);
* // Wrap $some_variable in an <em> tag.
* $this->placeholderFormat('Prefix %foo', ['%foo' => $some_variable]);
* // The following are using the : placeholder inside an HTML tag.
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo" title="static text">link text</a>', [':foo' => $some_variable]);
* $this->placeholderFormat('<a href=":foo">link text</a>', [':foo' => $some_variable]);
* // Use a : placeholder inside an HTML tag.
* $this->placeholderFormat('<img src=":foo" />', [':foo' => '/image.png']);
* @endcode
* The above are typical examples of using the placeholders correctly.
*
* Insecure examples.
* @code
* // The following are using the @ placeholder inside an HTML tag.
* $this->placeholderFormat('<@foo>text</@foo>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a @foo>link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a href="@foo">link text</a>', ['@foo' => $some_variable]);
* $this->placeholderFormat('<a title="@foo">link text</a>', ['@foo' => $some_variable]);
* // Implicitly convert an object to a string, which is not sanitized.
* $this->placeholderFormat('Non-sanitized replacement value: @foo', ['@foo' => $safe_string_interface_object]);
* @endcode
* These are the more common mistakes that can be made. Make sure that your
* site is not using any insecure usages of these placeholders.
*
* @param string $string
* A string containing placeholders. The string itself is expected to be
* safe and correct HTML. Any unsafe content must be in $args and inserted
* via placeholders. It is insecure to use the @ or % placeholders within
* the "<" and ">" of an HTML tag.
* @param array $args
* An associative array of replacements. Each array key should be the same
* as a placeholder in $string. The corresponding value should be a string
* or an object that implements \Drupal\Component\Render\MarkupInterface.
* The args[] value replaces the placeholder in $string. Sanitization and
* formatting will be done before replacement. The type of sanitization
* and formatting depends on the first character of the key:
* - @variable: Use as the default choice for anything displayed on the
* site. Do not use within the "<" and ">" of an HTML tag, such as in
* HTML attribute values. Doing so is a security risk.
* - %variable: Use when @variable would be appropriate, but you want the
* placeholder value to be wrapped in an <em> tag with a placeholder
* class. As with @variable, do not use within the "<" and ">" of an HTML
* tag, such as in HTML attribute values. Doing so is a security risk.
* - :variable: Use when the return value is to be used as a URL value of an
* HTML attribute. Only the "href" attribute is supported. The return
* value is escaped with
* \Drupal\Component\Utility\Html::escape() and filtered for dangerous
* protocols using UrlHelper::stripDangerousProtocols(). Use this when
* using the "href" attribute, ensuring the value is always wrapped in
* quotes.
*
* @return string
* A formatted HTML string with the placeholders replaced.
*
* @ingroup sanitization
*
* @see \Drupal\Core\StringTranslation\TranslatableMarkup
* @see \Drupal\Core\StringTranslation\PluralTranslatableMarkup
* @see \Drupal\Component\Utility\Html::escape()
* @see \Drupal\Component\Utility\UrlHelper::stripDangerousProtocols()
* @see \Drupal\Core\Url::fromUri()
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:175
protected static Drupal\Component\Render\FormattableMarkup::placeholderEscape($value): string Escapes a placeholder replacement value if needed.
/**
* Escapes a placeholder replacement value if needed.
*
* @param string|\Drupal\Component\Render\MarkupInterface $value
* A placeholder replacement value.
*
* @return string
* The properly escaped replacement value.
*/
Defined in <drupal>/core/lib/Drupal/Component/Render/FormattableMarkup.php:237
/**
* {@inheritdoc}
*/
Defined in <drupal>/core/lib/Drupal/Core/Entity/ContentEntityType.php:21
public getConfigDependencyKey() {@inheritdoc}
$0->getConfigDependencyKey()
/**
* {@inheritdoc}
*/
Defined in <drupal>/core/lib/Drupal/Core/Entity/ContentEntityType.php:37
protected checkStorageClass($class) {@inheritdoc}
/**
* {@inheritdoc}
*
* @throws \InvalidArgumentException
* If the provided class does not implement
* \Drupal\Core\Entity\ContentEntityStorageInterface.
*
* @see \Drupal\Core\Entity\ContentEntityStorageInterface
*/
Defined in <drupal>/core/lib/Drupal/Core/Entity/ContentEntityType.php:50
public getRevisionMetadataKeys() {@inheritdoc}
$0->getRevisionMetadataKeys()
/**
* {@inheritdoc}
*/
Defined in <drupal>/core/lib/Drupal/Core/Entity/ContentEntityType.php:60
public getRevisionMetadataKey($key) {@inheritdoc}
$0->getRevisionMetadataKey()
/**
* {@inheritdoc}
*/
Defined in <drupal>/core/lib/Drupal/Core/Entity/ContentEntityType.php:67
public hasRevisionMetadataKey($key) {@inheritdoc}
$0->hasRevisionMetadataKey()
/**
* {@inheritdoc}
*/
Defined in <drupal>/core/lib/Drupal/Core/Entity/ContentEntityType.php:75
public setRevisionMetadataKey($key, $field_name) {@inheritdoc}
$0->setRevisionMetadataKey()
/**
* {@inheritdoc}
*/
Defined in <drupal>/core/lib/Drupal/Core/Entity/ContentEntityType.php:83
public get($property) {@inheritdoc}
$0->get()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:381
public set($property, $value) {@inheritdoc}
$0->set()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:394
public isInternal() {@inheritdoc}
$0->isInternal()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:410
public isStaticallyCacheable() {@inheritdoc}
$0->isStaticallyCacheable()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:417
public isRenderCacheable() {@inheritdoc}
$0->isRenderCacheable()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:424
public isPersistentlyCacheable() {@inheritdoc}
$0->isPersistentlyCacheable()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:431
public getKeys() {@inheritdoc}
$0->getKeys()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:438
public getKey($key) {@inheritdoc}
$0->getKey()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:445
public hasKey($key) {@inheritdoc}
$0->hasKey()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:453
public getOriginalClass() {@inheritdoc}
$0->getOriginalClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:461
public getDecoratedClasses(): array {@inheritdoc}
$0->getDecoratedClasses()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:468
public setClass($class) {@inheritdoc}
$0->setClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:475
public entityClassImplements($interface) {@inheritdoc}
$0->entityClassImplements()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:491
public getHandlerClasses() {@inheritdoc}
$0->getHandlerClasses()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:498
public getHandlerClass($handler_type, $nested = false) {@inheritdoc}
$0->getHandlerClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:505
public setHandlerClass($handler_type, $value) {@inheritdoc}
$0->setHandlerClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:516
public hasHandlerClass($handler_type, $nested = false) {@inheritdoc}
$0->hasHandlerClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:524
public getStorageClass() {@inheritdoc}
$0->getStorageClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:539
public setStorageClass($class) {@inheritdoc}
$0->setStorageClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:546
public getFormClass($operation) {@inheritdoc}
$0->getFormClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:565
public setFormClass($operation, $class) {@inheritdoc}
$0->setFormClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:572
public hasFormClasses() {@inheritdoc}
$0->hasFormClasses()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:580
public hasRouteProviders() {@inheritdoc}
$0->hasRouteProviders()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:587
public getListBuilderClass() {@inheritdoc}
$0->getListBuilderClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:594
public setListBuilderClass($class) {@inheritdoc}
$0->setListBuilderClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:601
public hasListBuilderClass() {@inheritdoc}
$0->hasListBuilderClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:609
public getViewBuilderClass() {@inheritdoc}
$0->getViewBuilderClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:616
public setViewBuilderClass($class) {@inheritdoc}
$0->setViewBuilderClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:623
public hasViewBuilderClass() {@inheritdoc}
$0->hasViewBuilderClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:631
public getRouteProviderClasses() {@inheritdoc}
$0->getRouteProviderClasses()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:638
public getAccessControlClass() {@inheritdoc}
$0->getAccessControlClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:645
public setAccessClass($class) {@inheritdoc}
$0->setAccessClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:652
public getAdminPermission() {@inheritdoc}
$0->getAdminPermission()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:660
public getCollectionPermission(): ?string {@inheritdoc}
$0->getCollectionPermission()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:667
public getPermissionGranularity() {@inheritdoc}
$0->getPermissionGranularity()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:674
public getLinkTemplates() {@inheritdoc}
$0->getLinkTemplates()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:681
public getLinkTemplate($key) {@inheritdoc}
$0->getLinkTemplate()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:688
public hasLinkTemplate($key) {@inheritdoc}
$0->hasLinkTemplate()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:696
public setLinkTemplate($key, $path) {@inheritdoc}
$0->setLinkTemplate()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:704
public getBundleEntityType() {@inheritdoc}
$0->getBundleEntityType()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:716
public getBundleOf() {@inheritdoc}
$0->getBundleOf()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:723
public getBundleLabel() {@inheritdoc}
$0->getBundleLabel()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:730
public getBaseTable() {@inheritdoc}
$0->getBaseTable()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:745
public showRevisionUi() {@inheritdoc}
$0->showRevisionUi()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:752
public isTranslatable() {@inheritdoc}
$0->isTranslatable()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:759
public isRevisionable() {@inheritdoc}
$0->isRevisionable()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:766
public getRevisionDataTable() {@inheritdoc}
$0->getRevisionDataTable()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:774
public getRevisionTable() {@inheritdoc}
$0->getRevisionTable()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:781
public getDataTable() {@inheritdoc}
$0->getDataTable()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:788
public getLabel() {@inheritdoc}
$0->getLabel()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:795
public getCollectionLabel() {@inheritdoc}
$0->getCollectionLabel()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:802
public getSingularLabel() {@inheritdoc}
$0->getSingularLabel()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:813
public getPluralLabel() {@inheritdoc}
$0->getPluralLabel()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:824
public getCountLabel($count) {@inheritdoc}
$0->getCountLabel()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:835
public getUriCallback() {@inheritdoc}
$0->getUriCallback()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:849
public setUriCallback($callback) {@inheritdoc}
$0->setUriCallback()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:856
public getGroup() {@inheritdoc}
$0->getGroup()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:864
public getGroupLabel() {@inheritdoc}
$0->getGroupLabel()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:871
public getListCacheContexts() {@inheritdoc}
$0->getListCacheContexts()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:878
public getListCacheTags() {@inheritdoc}
$0->getListCacheTags()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:885
public getBundleListCacheTags(string $bundle): array {@inheritdoc}
$0->getBundleListCacheTags()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:892
public isCommonReferenceTarget() {@inheritdoc}
$0->isCommonReferenceTarget()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:909
public getConstraints() {@inheritdoc}
$0->getConstraints()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:916
public setConstraints(array $constraints) {@inheritdoc}
$0->setConstraints()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:923
public addConstraint($constraint_name, $options = null) {@inheritdoc}
$0->addConstraint()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:931
public getBundleConfigDependency($bundle) {@inheritdoc}
$0->getBundleConfigDependency()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/Entity/EntityType.php:939
public id() {@inheritdoc}
$0->id()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Component\Plugin\Definition\PluginDefinition
Defined in <drupal>/core/lib/Drupal/Component/Plugin/Definition/PluginDefinition.php:35
public getClass() {@inheritdoc}
$0->getClass()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Component\Plugin\Definition\PluginDefinition
Defined in <drupal>/core/lib/Drupal/Component/Plugin/Definition/PluginDefinition.php:50
public getProvider() {@inheritdoc}
$0->getProvider()
/**
* {@inheritdoc}
*/
Inherited from Drupal\Component\Plugin\Definition\PluginDefinition
Defined in <drupal>/core/lib/Drupal/Component/Plugin/Definition/PluginDefinition.php:57
public __sleep(): array {@inheritdoc}
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php:33
public __wakeup(): void {@inheritdoc}
/**
* {@inheritdoc}
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/DependencyInjection/DependencySerializationTrait.php:73
protected t($string, array $args = array(), array $options = array()): \Drupal\Core\StringTranslation\TranslatableMarkup Translates a string to the current language or to a given language.
/**
* Translates a string to the current language or to a given language.
*
* See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for
* important security information and usage guidelines.
*
* In order for strings to be localized, make them available in one of the
* ways supported by the
* @link https://www.drupal.org/node/322729 Localization API @endlink. When
* possible, use the \Drupal\Core\StringTranslation\StringTranslationTrait
* $this->t(). Otherwise create a new
* \Drupal\Core\StringTranslation\TranslatableMarkup object.
*
* @param string $string
* A string containing the English text to translate.
* @param array $args
* (optional) An associative array of replacements to make after
* translation. Based on the first character of the key, the value is
* escaped and/or themed. See
* \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for
* details.
* @param array $options
* (optional) An associative array of additional options, with the following
* elements:
* - 'langcode' (defaults to the current language): A language code, to
* translate to a language other than what is used to display the page.
* - 'context' (defaults to the empty context): The context the source
* string belongs to. See the
* @link i18n Internationalization topic @endlink for more information
* about string contexts.
*
* @return \Drupal\Core\StringTranslation\TranslatableMarkup
* An object that, when cast to a string, returns the translated string.
*
* @see \Drupal\Component\Render\FormattableMarkup::placeholderFormat()
* @see \Drupal\Core\StringTranslation\TranslatableMarkup::__construct()
*
* @ingroup sanitization
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/StringTranslationTrait.php:70
protected formatPlural($count, $singular, $plural, array $args = array(), array $options = array()): \Drupal\Core\StringTranslation\PluralTranslatableMarkup Formats a string containing a count of items.
/**
* Formats a string containing a count of items.
*
* @see \Drupal\Core\StringTranslation\TranslationInterface::formatPlural()
*
* @return \Drupal\Core\StringTranslation\PluralTranslatableMarkup
* An object that, when cast to a string, returns the translated string.
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/StringTranslationTrait.php:83
protected getNumberOfPlurals($langcode = null): int Returns the number of plurals supported by a given language.
/**
* Returns the number of plurals supported by a given language.
*
* @see \Drupal\locale\PluralFormulaInterface::getNumberOfPlurals()
*
* @return int
* The number of plurals supported.
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/StringTranslationTrait.php:95
protected getStringTranslation(): \Drupal\Core\StringTranslation\TranslationInterface Gets the string translation service.
/**
* Gets the string translation service.
*
* @return \Drupal\Core\StringTranslation\TranslationInterface
* The string translation service.
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/StringTranslationTrait.php:109
public setStringTranslation(Drupal\Core\StringTranslation\TranslationInterface $translation): $this Sets the string translation service to use.
$0->setStringTranslation()
/**
* Sets the string translation service to use.
*
* @param \Drupal\Core\StringTranslation\TranslationInterface $translation
* The string translation service.
*
* @return $this
*/
Inherited from Drupal\Core\Entity\EntityType
Defined in <drupal>/core/lib/Drupal/Core/StringTranslation/StringTranslationTrait.php:125
public const Drupal\Core\Entity\EntityTypeInterface::ID_MAX_LENGTH :: integer 32
public const Drupal\Core\Entity\EntityTypeInterface::BUNDLE_MAX_LENGTH :: integer 32