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);
}