         print("Skipping")
         return report
     }
-    let nonEnglisEnries = parseLocalizationFile(file)
+    let nonEnglishEnries = parseLocalizationFile(file)
     for englishEntry in englishEntries {
         report.language = language
-        if !nonEnglisEnries.contains(where: { $0.key == englishEntry.key }) {
+        if !nonEnglishEnries.contains(where: { $0.key == englishEntry.key }) {
+            if shouldIgnoreSingularKeyFor(language) && hasSingularSuffix(englishEntry.key) {
+                if nonEnglishEnries.contains(where: { $0.key == removeSingularSuffix(englishEntry.key) + "##{other}" }) {
+                    continue
+                }
+            }
             report.missingKeys.append(englishEntry.key)
             if addMissingEntries {
                 let defaultValue = "\n\"\(englishEntry.key)\" = \"\(englishEntry.value)\";"

        }
    }
    return report
}

func localizationFileLanguage(_ file : String) -> String? {

        }
        output += "<tr><th>Total: \(language.missingKeys.count)</th></tr>"
        output += "</table>"
    }
    let languagesMissingCount = report.allLanguages.map { $0.missingKeys.count }
    let totalCount = languagesMissingCount.reduce(0, { $0 + $1 })
    if (totalCount == 0) {
        output += "<h2>No misssing keys</h2>"
    }
    output += "<br /><br /><p>Thanks to <a href=http://twitter.com/catalinred>Catalin Rosu</a> for the HTML template!</p>"
    output += "</body>"
