Skip to main content

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",
    cekClientId = "your-client-id",
    cekKeyId = "your-key-id",
    cekEncryptionKey = "your-encryption-key",
    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

Textos de Telas (ScreenStrings)

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!"
)

Textos de Feedback (FeedbackStrings)

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"
)

Textos de Botões (ButtonStrings)

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",
    cekClientId = "your-client-id",
    cekKeyId = "your-key-id",
    cekEncryptionKey = "your-encryption-key",
    localization = localization
)

LivenessHubSDK.init(applicationContext = this, config = config)

Classes de Localização

Resumo

ClasseDescrição
LivenessLocalizationConfiguração principal de idioma e textos
SupportedLanguageEnum de idiomas suportados
LivenessStringsContainer para todas as strings customizadas
ScreenStringsTextos de telas
FeedbackStringsTextos de feedback em tempo real
ButtonStringsTextos 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