         }
     }
     
-    internal func localizedString(forKey key: String, withFallback fallback: String? = nil) -> String {
+    public func localizedString(forKey key: String, withFallback fallback: String? = nil) -> String {
         let translated = I18n.localizedString(forKey: key, withFallback: fallback)
         
         return self.i18nShouldUppercase

        self.update(i18nKey: key, forType: type)
    }
    
    internal func update(i18nKey key: String, forType type: String) { /* Should be overriden */ }
    
}

        }
    }
    
    public func retrieveI18nKey(forType type: String) -> String? {
        return self.getI18nKeys()?[type]
    }
    
    public func register(i18nKey key: String, forType type: String) {
        var keys = getI18nKeys()
        
        if keys == nil {
