replaceLocale function

String replaceLocale(
  1. RegExp pattern,
  2. String path,
  3. String locale
)

Inserts the locale in a path using pattern as place holder.

Implementation

String replaceLocale(RegExp pattern, String path, String locale) {
  var match = pattern.firstMatch(path);
  if (match == null) return path;

  var s2 = path.substring(0, match.start);

  var g0 = match.group(0);

  if (match.groupCount == 0) {
    s2 += locale;
  } else if (match.groupCount == 1) {
    var g1 = match.group(1)!;

    var idx = g0!.indexOf(g1);

    assert(idx >= 0);

    s2 += g0.substring(0, idx);
    s2 += locale;
    s2 += g0.substring(idx + g1.length);
  } else {
    throw StateError(
        'Locale pattern only can have 1 group: match groups: ${match.groupCount}');
  }

  s2 += path.substring(match.end);

  return s2;
}