translate.string()

The translate.string() function returns a translated $string with a global dictionary(if in use) and/or $dictionary if translation is found, otherwise not translated $string.

Global dictionary is in use on $dictionary-global set to true, or by setting $global argument to true.

// Functions.
@use '../translator.dictionary.function';

// Modules.
@use '../dictionary';

// The `translator.translate-string()` or `translate.string()` function.
@function string($string, $key: null, $dictionary: (), $global: null) {
  @return if(
    type-of($string) == string,
    dictionary.translation(
        $string,
        translator.dictionary($key, $dictionary, $global)
      )
      or $string,
    $string
  );
}

Parameters

$string

A string to translate with a global dictionary and/or $dictionary.

$key: null

A key to retrieve the dictionary from a global(if in use) and/or $dictionary.

$dictionary: ()

The dictionary that is used to translate $string.

$global: null

A bool value indicates whether to use a global dictionary. Default, null, then $dictionary-global is checked.

Return

The return value is translated $string retrieved from a global dictionary(if in use) and/or $dictionary.

Examples

// Use.
@use '@angular-package/sass/translator';

// Examples.
$-dictionary-example: dictionary.merge(null, (
  (extra large, 'extra large', extra-large): xl,
  (extra small, 'extra small', extra-small): xs,
  border: b,
  class: (prefix: class-prefix, separator: class-separator, suffix: class-suffix, calendars: (calendar: cal), labels: (label: lab)),
  color: c,
  general: (word: słowo, (wrapper, wrap): owijka, (technology, technologia): tech, color: c),
  large: lg,
  medium: md,
  outline: o,
  prefix: spectre,
  small: sm,
  suffix: end,
));

// Default translate.
@debug translator.translate-string(prefix); // spectre

// Translate from the sub-dictionary `class`.
@debug translator.translate-string(prefix, class); // class-prefix

// Translate string with delimiter '-'.
@debug translator.translate-string(extra-large); // xl
@debug translator.translate-string(extra-large, class); // xl

// Translate with a provided `$dictionary`.
@debug translator.translate-string(prefix, class, $-dictionary-example); // class-prefix
@debug translator.translate-string(word, general, $-dictionary-example); // słowo
@debug translator.translate-string(wrap, general, $-dictionary-example); // owijka
@debug translator.translate-string(wrapper, general, $-dictionary-example); // owijka

// Nested key.
@debug translator.translate-string(calendar, (class, calendars), $-dictionary-example); // cal

// Deactivate global dictionary.
@debug translator.translate-string(extra-large, $global: false); // extra-large

Last updated