translate.js 699 B

1234567891011121314151617181920212223242526
  1. /**
  2. * A simple translation stub to be used for multi-language support
  3. * in diagrams. Can be easily replaced with a more sophisticated
  4. * solution.
  5. *
  6. * @example
  7. *
  8. * // use it inside any diagram component by injecting `translate`.
  9. *
  10. * function MyService(translate) {
  11. * alert(translate('HELLO {you}', { you: 'You!' }));
  12. * }
  13. *
  14. * @param {String} template to interpolate
  15. * @param {Object} [replacements] a map with substitutes
  16. *
  17. * @return {String} the translated string
  18. */
  19. export default function translate(template, replacements) {
  20. replacements = replacements || {};
  21. return template.replace(/{([^}]+)}/g, function(_, key) {
  22. return replacements[key] || '{' + key + '}';
  23. });
  24. }