Atualizações Over-the-Air (OTA) oferecem uma maneira flexível de entregar atualizações de tradução para aplicativos móveis e web sem exigir um novo lançamento na App Store, Google Play ou outras plataformas de implantação. Essa abordagem suporta localização contínua e fluxos de trabalho de desenvolvimento ágil, reduzindo atrasos e processos manuais.
O recurso OTA em Phrase Strings integra-se com plataformas iOS, Android, React Native, Flutter, i18next e Rails. Atualizações para rótulos de texto são enviadas instantaneamente para aplicativos móveis.
Um novo lançamento deve ser criado para que as configurações atualizadas sejam aplicadas. Todo conteúdo incluído em um lançamento deve estar disponível em Phrase Strings, que transmite traduções diretamente para o aplicativo. Se o conteúdo não estiver presente, as traduções não serão entregues.
Para aplicativos móveis, o OTA requer a integração do Kit de Desenvolvimento de Software (SDK) relevante no aplicativo para recuperar traduções do Phrase Strings em tempo de execução.
Ao iniciar um aplicativo que implementa o SDK iOS, Android, React Native ou Flutter pela primeira vez em um dispositivo, um identificador de dispositivo único e aleatório é gerado. Esse identificador rastreia usuários ativos ao longo de um determinado período de tempo. Não é utilizado para qualquer outra forma ou meio de rastreamento e não contém informações de usuário ou dispositivo.
O número de solicitações OTA e a quantidade de Usuários Ativos Mensais (MAU) são limitados, dependendo do plano de preços selecionado.
MAU é o número de dispositivos únicos dos quais as traduções são solicitadas. Cada dispositivo recebe um ID aleatório. MAU é calculado com base no número de IDs únicos atribuídos nos últimos 30 dias. Cada interação com os servidores Phrase é considerada uma solicitação.
Dados Enviados com Solicitações OTA
O SDK se comunica com o serviço OTA para verificar atualizações e inclui os seguintes detalhes com cada solicitação:
-
Identificador do dispositivo (por exemplo. "F3AFCB10-80A2-84CB-94C0-27F5EF58876D". Único para este aplicativo e, portanto, não permite rastrear um dispositivo específico.)
-
Versão do aplicativo (por exemplo. "1.2.0")
-
Última atualização do arquivo de tradução (por exemplo. "1542187679")
-
Versão do SDK (por exemplo. "1.0.0")
-
Local (por exemplo, "de-DE")
-
Formato do arquivo (por exemplo, "strings")
-
Cliente (por exemplo, "ios")
-
Distribuição ID (ID da distribuição)
-
Segredo do ambiente (para distinguir entre desenvolvimento e produção)
Domínios usados pelos SDKs:
Datacenter da UE
-
ota.eu.phrase.com
-
cdn.eu.phrase.com
-
ota.phraseapp.com
-
cdn.phraseapp.com
Datacenter dos EUA
-
ota.us.phrase.com
-
cdn.us.phrase.com
Frase OTA SDKs são projetados para garantir que os aplicativos permaneçam funcionais mesmo se a API OTA estiver indisponível. Nesses casos, o SDK recorre às últimas traduções obtidas com sucesso armazenadas no dispositivo ou às traduções incluídas no pacote do aplicativo. Isso evita erros ou strings ausentes para os usuários finais. Para garantir um fallback confiável, as traduções incluídas devem ser mantidas atualizadas com cada lançamento do aplicativo.
As distribuições são uma configuração que define como e onde as atualizações OTA são entregues para uma plataforma ou projeto específico.
As plataformas-alvo são definidas dentro da distribuição:
-
iOS
-
Android
-
Flutter
-
i18next
-
Rails
Múltiplas distribuições são possíveis, mas idealmente há uma distribuição por projeto. Se uma distribuição para iOS e Android estiver em uso, os espaços reservados para os dois formatos são convertidos automaticamente.
Fallbacks
Se os fallbacks de idioma estiverem configurados nas configurações de idioma do projeto ao qual a distribuição está conectada, as strings do idioma selecionado serão exibidas se o idioma solicitado existir, mas a chave não estiver traduzida.
Se um idioma específico de país (por exemplo, en-GB) for usado, mas não fizer parte da versão de lançamento, o sistema pode recorrer a uma versão padrão (por exemplo, en) desse idioma, se existir no projeto. Se o idioma solicitado não for encontrado, o local padrão do projeto pode ser servido em vez disso.
Os fallbacks não funcionarão em chaves vinculadas.
Criar uma distribuição
Para criar uma distribuição, siga estas etapas:
-
Na caixa na página , clique em Configurar ou no número de configurações se algumas já existirem.
A página é aberta e exibe as configurações existentes.
-
Clique em Nova distribuição. A janela é aberta.
-
Na aba Geral, forneça um , qual a distribuição está associada, idiomas e plataformas .
-
Para distribuições Android, clique na aba Android para selecionar a opção de formato que envolve qualquer tradução, incluindo tags HTML em CDATA, se necessário.
-
Após selecionar o projeto para associar à distribuição, a aba Agendamento se torna disponível. Se necessário, use esta aba para configurar lançamentos OTA agendados na distribuição.
-
-
Na aba Idiomas de fallback, selecione as configurações de fallback específicas da distribuição conforme necessário. As opções de fallback são priorizadas conforme exibido na lista.
-
Opcionalmente, clique na aba Traduções para selecionar a opção de usar a versão mais recente revisada das traduções. Ative esta opção apenas ao trabalhar com o fluxo de trabalho de revisão avançada.
-
Clique em Gravar.
Os detalhes da distribuição são exibidos com os IDs necessários pelos SDKs. Os detalhes podem ser exibidos novamente clicando na distribuição na página .
Para atualizar as traduções, crie um novo lançamento dentro da distribuição. O estado atual do projeto é exportado e disponibilizado para os clientes conectados.
Para criar um lançamento, siga estas etapas:
-
Na página Over the air, clique em Adicionar lançamento ao lado da distribuição necessária.
A janela se abre.
-
Forneça uma , necessária, , e .
Se necessário, insira tags para incluir apenas chaves com tags específicas no lançamento.
-
Clique em Gravar.
O lançamento é adicionado à lista na parte inferior da página de detalhes da distribuição.
Para configurar horários recorrentes para liberar a distribuição, siga estas etapas:
-
Na página , clique no ícone da engrenagem
ao lado da distribuição necessária.
A janela é exibida.
-
Selecione a aba Schedule release e clique em .
As opções de agendamento de lançamento são exibidas.
Nota
As opções de agendamento também estão disponíveis na criação de uma nova distribuição.
-
No menu suspenso , escolha a frequência de lançamento selecionando uma das opções disponíveis:
-
-
Selecione os dias da semana desejados para os lançamentos agendados.
-
-
Forneça um horário e o relevante.
-
Se necessário, selecione , e para os lançamentos agendados.
-
O campo é exibido apenas se a ramificação estiver ativada no projeto. Selecionar um ramo atualiza a lista de locais e idiomas.
-
-
Opcionalmente, especifique as versões do aplicativo nos campos e .
Deixe em branco para aplicar o lançamento agendado a todas as versões do aplicativo.
-
Clique em Gravar.
A distribuição é atualizada com informações de agendamento de lançamento.
Desativar o agendamento interrompe o lançamento automático da distribuição, mas as configurações configuradas são salvas.
Integrar o SDK móvel ou a biblioteca Web apropriada permite a atualização de traduções com um único clique, mas também fornece métricas para medir o uso. Os relatórios do SDK móvel e da biblioteca Web oferecem insights valiosos sobre usuários ativos do aplicativo e seus idiomas. Este conjunto de relatórios está disponível para cada distribuição, e os dados são atualizados duas vezes ao dia.
Relatórios são fornecidos para o número de usuários ativos, solicitações gerais, solicitações por idioma, solicitações por plataforma e para idiomas de dispositivos não fornecidos.
Os relatórios para cada distribuição são acessados através do ícone na página .
A documentação técnica para integrar os SDKs OTA está disponível no arquivo README de cada repositório de projeto: