function getSubstringsForReplacing()

in packages/lib/i18n/i18n.ts [55:74]


    function getSubstringsForReplacing(str: string, interpolationValues: Record<string, string | number>): Record<string, string | number> {
      let currentInterpolatedFragmentStart = -1;
      const substringToValueMap: Record<string, string | number> = {};
      for (let i = 0; i < (str.length - 1); ++i) {
        if (str[i] === '{' && str[i + 1] === '{') {
          currentInterpolatedFragmentStart = i + 2;
          i = currentInterpolatedFragmentStart;
        } else if (str[i] === '}' && str[i + 1] === '}' &&
          currentInterpolatedFragmentStart > 0) {
          const variableName = str.substring(
            currentInterpolatedFragmentStart, i
          );
          const value = interpolationValues[variableName.trim()];
          if (value !== undefined) {
            substringToValueMap[`{{${variableName}}}`] = value;
          }
        }
      }
      return substringToValueMap;
    }