generateStrings static method
Implementation
static void generateStrings(Map<String, String> strings, {String languageCode = ""}) {
String filePath = "android/app/src/main/res/values/strings.xml";
if (languageCode != "") {
filePath = "android/app/src/main/res/values-$languageCode/strings.xml";
}
File file = FileCreator.openFile(filePath);
String content = file.readAsStringSync();
XmlDocument document = XmlDocument.parse(content);
XmlElement? resources = document.getElement("resources");
if (resources == null) {
log("Eine falsch formatierte Xml-Datei '$filePath' wurde gefunden. Bitte löschen.", color: PrintColor.red);
return;
}
// Entferne alle "shortcut_"-Einträge
resources.children.removeWhere((element) {
if (element is XmlElement) {
final name = element.getAttribute("name");
return name != null && name.startsWith("ssc_");
}
return false;
});
for (MapEntry<String, String> entry in strings.entries) {
final newString = XmlElement(XmlName("string"), [
XmlAttribute(XmlName("name"), entry.key),
], [XmlText(entry.value)]);
resources.children.add(XmlText("\n "));
resources.children.add(newString);
}
resources.children.add(XmlText('\n'));
final updatedXml = document.toXmlString(pretty: true, indent: " ");
file.writeAsStringSync(updatedXml);
}