docs: function findI18nKeysAndStrings(filePath) {
      const textContentRegEx = /data-i18n="(.*?)".*?>\s*(.*?)\s*</gs;
      const placeholderRegEx = /data-i18n-placeholder="(.*?)"(?:.*?placeholder="(.*?)")?/g;
      const phraseRegEx = /translatePhrase\('(.*?)'\)/g;
  
      // Get global variable
      const contents = fs.readFileSync(filePath).toString();
  
      /** @type {object} */
      const dict = {};
  
      let textMatch;
      while ((textMatch = textContentRegEx.exec(contents)) !== null) { // eslint-disable-line no-cond-assign
          const key = textMatch[1];
          const phrase = textMatch[2];
          dict[key] = phrase;
      }
  
      let placeholderMatch;
      while ((placeholderMatch = placeholderRegEx.exec(contents)) !== null) { // eslint-disable-line no-cond-assign
          const key = placeholderMatch[1];
          const phrase = placeholderMatch[2] || '- not found -';
          dict[key] = phrase;
      }
  
      let phraseMatch;
      while ((phraseMatch = phraseRegEx.exec(contents)) !== null) { // eslint-disable-line no-cond-assign
          const key = phraseMatch[1];
          const phrase = false;
          dict[key] = phrase;
      }
  
      return dict;
  }