fix: use rule.locale