handleGenerateI18nFiles function

void handleGenerateI18nFiles(
  1. I18nOption option
)

Implementation

void handleGenerateI18nFiles(I18nOption option) async {
  var current = Directory.current;

  var sourcePath = Directory(path.join(current.path, option.sourceDir));
  if (!await sourcePath.exists()) {
    printError('Source path does not exist');
    return;
  }

  var files =
      await dirContents(Directory(path.join(current.path, option.sourceDir)));
  var validFilesMap = getValidStringFileMap(files);
  var defaultTemplateLang =
      getDefaultTemplateLang(validFilesMap, option.templateLocale);
  var defaultJsonKeyMessageMap =
      await generateJsonKeyMessageMap(File(defaultTemplateLang!.path));

  var defaultLang = path.basename(getLocale(defaultTemplateLang.path));

  // Generate messages_all.dart
  _handleGenerateMessageAllDart(
      path.join(current.path, option.outputDir, 'messages_all.dart'),
      defaultLang,
      defaultJsonKeyMessageMap,
      validFilesMap);

  // Generate i18n.dart
  _handleGenerateI18nDart(
      path.join(current.path, option.outputDir, 'i18n.dart'),
      defaultLang,
      defaultJsonKeyMessageMap,
      validFilesMap);

  printInfo('Finished to generate 2 files.');
}