fix static method
Walk every ARB in project and re-emit it through ArbWriter. The
writer's canonical form deterministically:
- sorts keys byte-wise lexicographic,
- hoists
@@localeto the top, - places each
@keyblock immediately after its key, - emits
@@file-level metadata (preserved verbatim) after@@locale, - drops
orphanMetadata(by construction — writer never emits it), - in translation ARBs, strips
@keymetadata blocks (the writer only emits them when the source ARB shape is detected by a non-@@localekey matching the convention; translation files passed through_stripMetadatalose theirs).
Files that are already canonical are not touched. Returns a FixReport for terminal display.
Implementation
static FixReport fix(DialectProject project) {
final changed = <String>[];
_maybeRewrite(project.source, changed);
for (final t in project.translations.values) {
_maybeRewrite(_stripMetadata(t), changed);
}
return FixReport(changedFiles: changed);
}