I am currently developing an app in Swift and I have linked firebase in order for users to signup and login. The app is supposed to be in Spanish but I can't find a way to translate the authentication errors to Spanish. Is there an option in the firebase console to enable other languages or in the plist. Any help is appreciated.
Asked
Active
Viewed 5,688 times
2
-
Which errors, for example? – Doug Stevenson Jan 14 '18 at 23:47
-
https://i.stack.imgur.com/QBTeT.png – Alec Attie Jan 14 '18 at 23:49
2 Answers
13
Here is an example, how you can make custom error descriptions for any kind of Error Type
import Foundation
import Firebase
extension AuthErrorCode {
var description: String? {
switch self {
case .emailAlreadyInUse:
return "Este correo ya está siendo usado por otro usuario"
case .userDisabled:
return "Este usuario ha sido deshabilitado"
case .operationNotAllowed:
return "Operación no permitida"
case .invalidEmail:
return "Correo electrónico no valido"
case .wrongPassword:
return "Contraseña incorrecta"
case .userNotFound:
return "No se encontró cuenta del usuario con el correo especificado"
case .networkError:
return "Promblema al intentar conectar al servidor"
case .weakPassword:
return "Contraseña muy debil o no válida"
case .missingEmail:
return "Hace falta registrar un correo electrónico"
case .internalError:
return "Error interno"
case .invalidCustomToken:
return "Token personalizado invalido"
case .tooManyRequests:
return "Ya se han enviado muchas solicitudes al servidor"
default:
return nil
}
}
}
extension FirestoreErrorCode {
var description: String? {
switch self {
case .cancelled:
return "Operación cancelada"
case .unknown:
return "Error desconocido"
case .invalidArgument:
return "Argumento no valido"
case .notFound:
return "No se encotró el documento"
case .alreadyExists:
return "El documento que se pretende crear, ya existe"
case .permissionDenied:
return "No tienes permisos para realizar esta operación"
case .aborted:
return "Operación abortada"
case .outOfRange:
return "Rango invalido"
case .unimplemented:
return "Esta operación no ha sido implementada o no es soportada aún"
case .internal:
return "Error interno"
case .unavailable:
return "Por el momento el servicio no está disponible, intenta más tarde"
case .unauthenticated:
return "Usuario no autenticado"
default:
return nil
}
} }
extension StorageErrorCode {
var description: String? {
switch self {
case .unknown:
return "Error desconocido"
case .quotaExceeded:
return "El espacio para guardar archivos ha sido sobrepasado"
case .unauthenticated:
return "Usuario no autenticado"
case .unauthorized:
return "Usuario no autorizado para realizar esta operación"
case .retryLimitExceeded:
return "Tiempo de espera excedido. Favor de intentar de nuevo"
case .downloadSizeExceeded:
return "El tamaño de descarga excede el espacio en memoria"
case .cancelled:
return "Operación cancelada"
default:
return nil
}
} }
public extension Error {
var localizedDescription: String {
let error = self as NSError
if error.domain == AuthErrorDomain {
if let code = AuthErrorCode(rawValue: error.code) {
if let errorString = code.description {
return errorString
}
}
}else if error.domain == FirestoreErrorDomain {
if let code = FirestoreErrorCode(rawValue: error.code) {
if let errorString = code.description {
return errorString
}
}
}else if error.domain == StorageErrorDomain {
if let code = StorageErrorCode(rawValue: error.code) {
if let errorString = code.description {
return errorString
}
}
}
return error.localizedDescription
} }

Miyo Alpízar
- 131
- 1
- 5
3
Firebase errors are not localized. You could request a feature for this via Firebase support.
What you could do instead is create your own localized messages based on the error codes provided. This is what FirebaseUI does:
Or you could just simply use FirebaseUI-ios. It would save you a lot of time and effort.

Frank van Puffelen
- 565,676
- 79
- 828
- 807

bojeil
- 29,642
- 4
- 69
- 76