Skip to content

Commit

Permalink
feat: extend ARB files correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
robert-virkus committed Feb 12, 2024
1 parent e183061 commit 10a1e29
Showing 1 changed file with 28 additions and 26 deletions.
54 changes: 28 additions & 26 deletions tools/localization_extender.dart
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ class LocalizationExtender {
print('No referenced arb file found for ${currentArbFile.name}');
continue;
}
print('Extending ${currentArbFile.name}.');
extendArb(referencedArbMap, currentArbFile.read());
}

Expand Down Expand Up @@ -168,34 +169,35 @@ class LocalizationExtender {
}

/// Extends the arb file with the referenced arb file
Map<String, dynamic> extendArb(
Map<String, dynamic> arb,
void extendArb(
Map<String, dynamic> referencedArb,
Map<String, dynamic> extendingArb,
) {
final extendedArb = <String, dynamic>{};
for (final entry in arb.entries) {
final key = entry.key;
final value = entry.value;
if (value is String) {
final referencedValue = referencedArb[key];
if (referencedValue is String) {
extendedArb[key] = '$value\n$referencedValue';
} else {
extendedArb[key] = value;
}
} else if (value is Map<String, dynamic>) {
final referencedValue = referencedArb[key];
if (referencedValue is Map<String, dynamic>) {
extendedArb[key] = extendArb(value, referencedValue);
} else {
extendedArb[key] = value;
}
} else {
extendedArb[key] = value;
}
}

return extendedArb;
referencedArb.addAll(extendingArb);
// for (final entry in extendingArb.entries) {
// final key = entry.key;
// final value = entry.value;
// referencedArb[key] = value;
// if (value is String) {
// final referencedValue = referencedArb[key];
// if (referencedValue is String) {
// extendedArb[key] = '$value\n$referencedValue';
// } else {
// extendedArb[key] = value;
// }
// } else if (value is Map<String, dynamic>) {
// final referencedValue = referencedArb[key];
// if (referencedValue is Map<String, dynamic>) {
// extendedArb[key] = extendArb(value, referencedValue);
// } else {
// extendedArb[key] = value;
// }
// } else {
// extendedArb[key] = value;
// }
// }

// return extendedArb;
}

/// Replaces the value in the arb file
Expand Down

0 comments on commit 10a1e29

Please sign in to comment.