Extracts string messages from TypeScript React components or ts files that use React Intl Sample in 2020

Extracts string messages from TypeScript React components or ts files that use React Intl Sample in 2020


tutorials -

typescript-react-intl

Extracts string messages from TypeScript React components or ts files that use React Intl.

Usage

If you have many files to processes,you can get contents use node-glob with fs module

npm i typescript-react-intl -D

var parse = require('typescript-react-intl').default;

// results is an array
// contents is your tsx file 
var results = parse(contents)


React-intl

Only support <FormattedMessage/> and defineMessages We don't use <FormattedHtmlMessage/>

Examples


var fs = require('fs');
var glob = require('glob');
var parser = require('typescript-react-intl').default;

function runner (pattern, cb) {
  var results = [];
  pattern = pattern || 'src/**/*[email protected](tsx|ts)';
  glob(pattern, function (err, files) {   
    if (err) {
      throw new Error(err);
    }
    files.forEach(f => {
      var contents = fs.readFileSync(f).toString();
      var res = parser(contents);
      results = results.concat(res);
    });
   
    cb && cb(results);
  });
}

// demo 
runner(null, function (res) {

  var locale = {};

  res.forEach(r => {
    locale[r.id] = r.defaultMessage;
  });


  var locales = {
    en: locale,  
  };

  // save file to disk。you can save as a json file,just change the ext and contents as you want.
  fs.writeFileSync(`src/translations/all.ts`, `export default ${JSON.stringify(locales, null, 2)}\r`);

});


GitHub

Trending On Tutorial Stuff

Our Sponsors

Top Applications in Tutorial Stuff

Top Experts In Tutorial Stuff