src/services/catalogue.cjs
BeforeProposed
+2−2
1414 else if (current.source !== text) {
1515 current.source = text;
1616 current.revision++;
17 // Existing approval state is retained.
17 for (const translation of Object.values(current.translations)) translation.approved = false;
1818 }
1919 return {key, revision: state.keys[key].revision};
2020}
3434 const item = current.translations[locale];
3535 v.requireValue(!!item, 'unknown translation');
3636 v.requireValue(command.revision === item.revision, 'translation revision conflict');
37 // Source revision compatibility is not checked.
37 v.requireValue(item.sourceRevision === current.revision, 'translation is stale');
3838 v.requireValue(actor !== item.author, 'independent reviewer required');
3939 item.approved = true;
4040 return {key: command.key, locale, approved: true};