         self.sendMessage(type: "join", data: ["room":name])
     }
     
+    /// Subscribe to current language updates
+    private static func joinLanguageRoom(){
+        let languageRoom = "\((self.appKey)!)_\((self.languageCode)!)"
+        joinRoom(name:languageRoom)
+    }
+    
     private static func leaveRoom(name:String){
         self.sendMessage(type: "leave", data: ["room":name])
+    }
+    
+    /// Subscribe to current language updates
+    private static func leaveLanguageRoom(){
+        if self.appKey != nil && self.languageCode != nil {
+            let languageRoom = "\((self.appKey)!)_\((self.languageCode)!)"
+            leaveRoom(name:languageRoom)
+        }
     }
     
     private static func sendMessage(type:String, data:SocketData...){

    /// - parameter language: language 2 character code
    public static func setLanguage(_ language:String){
        if languageCode != language {
            languageCode = language
            loadLanguage(code: language);
            //NotificationCenter.default.post(name: Notification.Name(rawValue: "LOCALIZATION_CHANGED"), object: self)

            }.resume()
    }
    
    
    
    /// Load initial language
    private static func initialLanguage(){
