ngx-translate / core

The internationalization (i18n) library for Angular
MIT License
4.53k stars 579 forks source link

The params for translations are ignored #929

Open esavelyeva opened 6 years ago

esavelyeva commented 6 years ago

Current behavior

The params for translations are ignored.

Expected behavior

Params values should be added into the translation.

How do you think that we should fix this?

No idea.

Minimal reproduction of the problem with instructions

Forked ngx-translate demo from GitHub readme to reproduce https://stackblitz.com/edit/github-a35qvr

Environment

ngx-translate version: 10.0.1 Angular version: 6.0.0

Browser: any

esavelyeva commented 6 years ago

For now I'm using this function to apply the prams to the translations:

export function applyParamsToTranslation(trans: string, params: Object): string {
  // TODO add err handling
  function getTransParamNames(text: string): Array<string> {
    return text.match(/{{\s*[\w\.]+\s*}}/g).map(function(bracedParam) {
      return bracedParam.match(/[\w\.]+/)[0];
    });
  }
  const keys = getTransParamNames(trans);
  for (let i = 0; i < keys.length; i++) {
    if (params[keys[i]]) {
      trans = trans.replace(keys[i], params[keys[i]]);
    }
  }
  return trans.replace(/{{|}}/g, '');
}