         
         self.excludedPaths.forEach { exclude in
             if let message = validTargetPath(at: exclude) {
-                self.diags.emit(warning: "Invalid Exclude: \(exclude): \(message)")
+                let warning = "Invalid Exclude '\(exclude)': \(message)."
+                self.diags.emit(warning: warning)
             }
         }
         
         self.declaredSources?.forEach { source in
             if let message = validTargetPath(at: source) {
-                self.diags.emit(warning: "Invalid Source: \(source): \(message)")
+                let warning = "Invalid Source '\(source)': \(message)."
+                self.diags.emit(warning: warning)
             }
         }
 

        diagnoseLocalizedAndUnlocalizedVariants(in: resources)
        diagnoseMissingDevelopmentRegionResource(in: resources)
        diagnoseInfoPlistConflicts(in: resources)

        // It's an error to contain mixed language source files.
        if sources.containsMixedLanguage {

                    diags.emit(.error("duplicate resource rule '\(declaredResource.rule)' found for file at '\(path)'"))
                }
                matchedRule = Rule(rule: declaredResource.rule.fileRule, localization: declaredResource.localization)
            }
        }

