localizeProject function
Future<void>
localizeProject(
)
Implementation
Future<void> localizeProject() async {
// Map<String, String> translationsKeyValue = {};
Directory lib = Directory('lib');
if (!lib.existsSync()) {
ConsoleLog.error("lib directory doesn't exist");
return;
}
final files = lib.listSync();
for (var fileSystemEntity in files) {
final file = File(fileSystemEntity.path);
// ✅ Read first line
final firstLineStream = file
.openRead(0, 10)
.transform(utf8.decoder)
.transform(const LineSplitter());
String? firstLine;
await for (var line in firstLineStream) {
firstLine = line;
break;
}
if (firstLine != null && firstLine.contains('@ignore')) {
continue;
}
ConsoleLog.line();
await for (var line
in file.openRead().transform(utf8.decoder).transform(const LineSplitter())) {
final stringRegex = RegExp(
r'''(?<!\w)(["'])(?:(?=(\\?))\2.)*?\1''',
);
final shouldIgnore =
RegExp(r'\b(import|export)\b').hasMatch(line) || line.contains('@ignore');
if (stringRegex.hasMatch(line) && !shouldIgnore) {
ConsoleLog.step(line);
}
}
ConsoleLog.line();
}
}