void writeTranslations()

in lib/generate_localized.dart [112:140]


  void writeTranslations(
      Iterable<TranslatedMessage> usableTranslations, String locale) {
    for (var translation in usableTranslations) {
      // Some messages we generate as methods in this class. Simpler ones
      // we inline in the map from names to messages.
      var messagesThatNeedMethods =
          translation.originalMessages.where(_hasArguments).toSet().toList();
      for (var original in messagesThatNeedMethods) {
        output
          ..write("  ")
          ..write(
              original.toCodeForLocale(locale, _methodNameFor(original.name)))
          ..write("\n\n");
      }
    }
    output.write(messagesDeclaration);

    // Now write the map of names to either the direct translation or to a
    // method.
    var entries = (usableTranslations
            .expand((translation) => translation.originalMessages)
            .toSet()
            .toList()
              ..sort((a, b) => a.name.compareTo(b.name)))
        .map((original) =>
            '    "${original.escapeAndValidateString(original.name)}" '
            ': ${_mapReference(original, locale)}');
    output..write(entries.join(",\n"))..write("\n  };\n}\n");
  }