i18n.js 866 B

1234567891011121314151617181920212223242526
  1. 'use strict';
  2. var fs = require('fs');
  3. var path = require('path');
  4. var langConfig = require('../../examples/i18n/page.json');
  5. langConfig.forEach(lang => {
  6. try {
  7. fs.statSync(path.resolve(__dirname, `../../examples/pages/${ lang.lang }`));
  8. } catch (e) {
  9. fs.mkdirSync(path.resolve(__dirname, `../../examples/pages/${ lang.lang }`));
  10. }
  11. Object.keys(lang.pages).forEach(page => {
  12. var templatePath = path.resolve(__dirname, `../../examples/pages/template/${ page }.tpl`);
  13. var outputPath = path.resolve(__dirname, `../../examples/pages/${ lang.lang }/${ page }.vue`);
  14. var content = fs.readFileSync(templatePath, 'utf8');
  15. var pairs = lang.pages[page];
  16. Object.keys(pairs).forEach(key => {
  17. content = content.replace(new RegExp(`<%=\\s*${ key }\\s*>`, 'g'), pairs[key]);
  18. });
  19. fs.writeFileSync(outputPath, content);
  20. });
  21. });