replaceLocale function
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;
}