# all files / diagram-js/lib/i18n/translate/ translate.js

100% Statements 3/3
75% Branches 3/4
100% Functions 2/2
100% Lines 3/3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

    2237×

    2237×
    68×

     /**
     * A simple translation stub to be used for multi-language support
     * in diagrams. Can be easily replaced with a more sophisticated
     * solution.
     *
     * @example
     *
     * // use it inside any diagram component by injecting `translate`.
     *
     * function MyService(translate) {
     *   alert(translate('HELLO {you}', { you: 'You!' }));
     * }
     *
     * @param {String} template to interpolate
     * @param {Object} [replacements] a map with substitutes
     *
     * @return {String} the translated string
     */
    export default function translate(template, replacements) {

      replacements = replacements || {};

      return template.replace(/{([^}]+)}/g, function(_, key) {
        return replacements[key] || '{' + key + '}';
      });
    }