             case .pluralized(let values):
                 let pluralCategory = self.pluralCategory(for: locale, interpolations: interpolations)
                 guard let rawString = values[pluralCategory] else {
-                    assertionFailure("Missing plural value for category: \(pluralCategory)")
+                    print("Missing plural value for category: \(pluralCategory). Will default to an empty string.")
                     return ""
                 }
                 

    /// The PluralCategory is based on the first numeric value in `interpolations` and `PluralizationRule` for the given language.
    /// If no numeric value is found, it fallbacks to `.other`.
    func pluralCategory(`for` locale: LocaleIdentifier, interpolations: [String: Any]?) -> PluralCategory {
        guard let pluralizationRule = PluralizationRuleStore.pluralizationRule(forLocale: locale) else {
            assertionFailure("Missing pluralization rule for locale: \(locale). Will default to `other` rule.")
            return .other
        }
        
        if let interpolations = interpolations, let numericValue = self.extractNumericValue(from: interpolations) {
            return pluralizationRule.pluralCategory(forNumericValue: numericValue)
        }
        
        return .other
    }
    
    /// Extract the first numeric value from the interpolations and make it non negative.

    func extractNumericValue(from interpolations: [String: Any]) -> UInt? {
        for value in interpolations.values {
            if var intValue = value as? Int {
                // Make sure the value is always positive
                if intValue < 0 {
                    intValue *= -1
                }
