Idiomas Suportados
O SDK suporta três idiomas nativamente:enum class SupportedLanguage {
EN, // English
PT_BR, // Portuguese (Brazil)
ES // Spanish
}
Usando Idioma Predefinido
Método Simples
import com.valid.entry.localization.LivenessLocalization
import com.valid.entry.localization.SupportedLanguage
// Opção 1: Português Brasileiro
val localization = LivenessLocalization(language = SupportedLanguage.PT_BR)
// Opção 2: Usando factory methods
val localizationPtBr = LivenessLocalization.portugueseBrazil()
val localizationEnglish = LivenessLocalization.default() // English
val localizationSpanish = LivenessLocalization.spanish()
Aplicar na Configuração
val config = LivenessHubConfig(
apiBaseUrl = "https://api.yourserver.com",
apiKey = "your-api-key",
appName = "YourAppName",
cek = "your-base64-encoded-cek",
localization = localization // Aplica o idioma
)
Customização Completa de Textos
Para customizar todos os textos exibidos durante o fluxo de liveness, você pode criar objetos personalizados para cada categoria.Estrutura de Strings
O SDK organiza os textos em três categorias:ScreenStrings
Textos de telas (títulos, instruções, mensagens)
FeedbackStrings
Textos de feedback em tempo real
ButtonStrings
Textos dos botões
- Telas (ScreenStrings)
- Feedback (FeedbackStrings)
- Botões (ButtonStrings)
import com.valid.entry.localization.ScreenStrings
val screenStrings = ScreenStrings(
// Tela de captura
captureTitle = "Captura Facial",
captureHelpText = "Posicione seu rosto no centro da tela",
loadingText = "Aguarde, processando...",
// Tela de revisão
reviewPhotoTitle = "Revise sua Foto",
reviewPhotoInstruction = "A imagem está clara e bem iluminada?",
// Tela de preparação
getReadyTitle = "Prepare-se",
getReadySubtitle = "Vamos iniciar a verificação",
getReadyMessage = "Certifique-se de estar em um ambiente bem iluminado",
getReadyMessageLine2 = "Remova acessórios como óculos escuros ou bonés",
// Tela de retry
retryTitle = "Vamos Tentar Novamente",
retrySubtitle = "A captura anterior não foi bem sucedida",
retryTip1 = "Mantenha seu rosto centralizado",
retryTip2 = "Evite movimentos bruscos",
yourImageLabel = "Sua Foto",
idealImageLabel = "Foto Ideal",
// Tela de upload
uploadingMessage = "Enviando sua foto...",
uploadingSlowConnection = "Conexão lenta, por favor aguarde...",
successMessage = "Verificação concluída com sucesso!"
)
Estes textos são exibidos em tempo real durante a captura:
import com.valid.entry.localization.FeedbackStrings
val feedbackStrings = FeedbackStrings(
// Detecção de rosto
noFaceDetected = "Nenhum rosto detectado",
multipleFaces = "Múltiplos rostos detectados",
faceCentered = "Perfeito! Mantenha essa posição",
// Distância
tooClose = "Afaste-se um pouco",
tooFar = "Aproxime-se",
// Posicionamento
tooLeft = "Mova para a direita",
tooRight = "Mova para a esquerda",
tooHigh = "Abaixe a cabeça levemente",
tooLow = "Levante a cabeça levemente",
moveToEyeLevel = "Posicione a câmera na altura dos olhos",
// Ângulo/Pose
invalidIED = "Distância inter-ocular inválida",
faceAngleMisaligned = "Alinhe seu rosto com a câmera",
lookStraightAhead = "Olhe diretamente para a câmera",
holdHeadStraight = "Mantenha sua cabeça reta",
// Expressão
closedEyes = "Mantenha os olhos abertos",
smiling = "Mantenha uma expressão neutra",
neutralExpression = "Perfeito, mantenha assim",
removeDarkGlasses = "Remova seus óculos escuros",
// Iluminação
tooDark = "Ambiente muito escuro",
tooBright = "Luz muito forte",
lightFaceEvenly = "Ilumine seu rosto uniformemente",
brightenEnvironment = "Encontre um ambiente mais iluminado",
// Captura
holdSteady = "Mantenha-se parado",
frameYourFace = "Enquadre seu rosto no oval"
)
import com.valid.entry.localization.ButtonStrings
val buttonStrings = ButtonStrings(
back = "Voltar",
capture = "Capturar",
retake = "Refazer",
submit = "Enviar",
switchCamera = "Trocar Câmera",
flashOn = "Flash Ligado",
flashOff = "Flash Desligado",
imReady = "Estou Pronto",
tryAgain = "Tentar Novamente",
ok = "OK",
continueButton = "Continuar"
)
Aplicando Customização Completa
Combine todas as strings customizadas e aplique na configuração:import com.valid.entry.localization.*
// Crie o objeto de strings customizadas
val customStrings = LivenessStrings(
screens = screenStrings,
feedback = feedbackStrings,
buttons = buttonStrings
)
// Aplique a localização customizada
val localization = LivenessLocalization(
language = SupportedLanguage.PT_BR,
customStrings = customStrings
)
// Use na configuração do SDK
val config = LivenessHubConfig(
apiBaseUrl = "https://api.yourserver.com",
apiKey = "your-api-key",
appName = "YourAppName",
cek = "your-base64-encoded-cek",
localization = localization
)
LivenessHubSDK.init(applicationContext = this, config = config)
Classes de Localização
Resumo
| Classe | Descrição |
|---|---|
LivenessLocalization | Configuração principal de idioma e textos |
SupportedLanguage | Enum de idiomas suportados |
LivenessStrings | Container para todas as strings customizadas |
ScreenStrings | Textos de telas |
FeedbackStrings | Textos de feedback em tempo real |
ButtonStrings | Textos de botões |
Você pode customizar apenas as strings que deseja alterar. As demais usarão os
valores padrão do idioma selecionado.
Próximos Passos
Implementação
Veja como implementar a verificação
Troubleshooting
Resolução de problemas comuns