As atualizações Over-the-Air (OTA) oferecem uma maneira flexível de fornecer 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 oferece suporte à localização contínua e fluxos de trabalho de desenvolvimento ágil, reduzindo atrasos e processos manuais.
O recurso OTA no Phrase Strings integra-se às plataformas iOS, Android, React Native, Flutter, i18next e Rails. As atualizações para rótulos de texto são enviadas instantaneamente em aplicativos móveis.
Um novo lançamento deve ser criado para que as configurações atualizadas sejam aplicadas. Todo o conteúdo incluído em um lançamento deve estar disponível no Phrase Strings, que transmite as 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 Software Development Kit (SDK) relevante ao aplicativo para recuperar traduções do Phrase Strings em tempo de execução.
Dica
Para detalhes sobre distribuição, lançamento e referência de API, consulte o Developer Hub.
Ao iniciar um aplicativo que implementa o SDK para iOS, Android, React Native ou Flutter pela primeira vez em um dispositivo, um identificador de dispositivo único e aleatório é gerado. Este identificador rastreia usuários ativos durante um determinado período de tempo. Ele não é usado para nenhuma outra forma ou meio de rastreamento e não contém nenhuma informação do usuário ou do dispositivo.
O número de solicitações OTA e o número 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. O MAU é calculado com base no número de IDs únicos atribuídos nos últimos 30 dias. Cada interação com os servidores do Phrase é considerada uma solicitação.
Dados enviados com solicitações OTA
O SDK comunica-se com o serviço OTA para verificar atualizações e inclui os seguintes detalhes em cada solicitação:
-
Identificador do dispositivo (por exemplo, "F3AFCB10-80A2-84CB-94C0-27F5EF58876D"). Exclusivo 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
-
Localidade (por exemplo, "de-DE")
-
Formato de arquivo (por exemplo, "strings")
-
Cliente (por exemplo, "ios")
-
Distribuição ID (ID da distribuição)
-
Segredo do ambiente (para distinguir o desenvolvimento da 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
Os SDKs OTA do Phrase 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 buscadas com sucesso armazenadas no dispositivo, ou às traduções agrupadas 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 agrupadas devem ser mantidas atualizadas a cada lançamento de aplicativo.
Distribuições são configurações definidas que determinam como e onde as atualizações OTA são entregues para uma plataforma ou projeto específico.
As plataformas de destino 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 usar uma distribuição para iOS e Android, os placeholders para os dois formatos são convertidos automaticamente.
Permissões
O gerenciamento de distribuições e lançamentos OTA é limitado pela atribuição de projeto. Os usuários os gerenciam apenas nos projetos aos quais estão atribuídos.
As funções de Proprietário, Administrador, Gerente de Projeto, Desenvolvedor e Designer têm acesso total às distribuições e lançamentos OTA por padrão. A função de Tradutor não tem acesso.
Proprietários e Administradores têm acesso a todos os projetos.
Os usuários precisam de permissão em nível de conta para gerenciar distribuições antes de criar uma. A nova distribuição é anexada apenas aos projetos que o usuário pode acessar.
Para um controle mais granular, clientes Enterprise podem entrar em contato com a equipe de suporte sobre uma função personalizada.
Fallbacks
Se os fallbacks de idioma estiverem definidos 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 um país (por exemplo, en-GB) for usado, mas não fizer parte da versão, o sistema pode recorrer a uma versão padrão (por exemplo, en) desse idioma, caso ela exista no projeto. Se o idioma solicitado não for encontrado, a localidade padrão do projeto poderá ser fornecida.
Os fallbacks não funcionarão em chaves vinculadas.
A configuração do projeto é aplicada quando o arquivo de lançamento é gerado. Isso não depende da opção na guia .
A opção na distribuição é resolvida quando um dispositivo solicita uma versão. Isso cobre apenas chaves ausentes ou não traduzidas, não traduções não verificadas.
Criar uma distribuição
Para criar uma distribuição, siga estas etapas:
-
Na caixa na página , clique em Configure ou no número de configurações se já existirem.
A página é aberta e exibe as configurações existentes.
-
Clique em Nova distribuição. A janela é aberta.
-
Na guia General, forneça um , selecione o com o qual a distribuição está associada, bem como os e as necessários.
-
Para distribuições Android, clique na guia 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 a ser associado à distribuição, a guia Scheduling torna-se disponível. Se necessário, use esta guia para na distribuição.
-
-
Na guia Fallback languages, 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 guia Translations para selecionar a opção de usar a versão revisada mais recente das traduções. Ative esta opção apenas ao trabalhar com o .
-
Clique em Gravar.
Os detalhes da distribuição são exibidos com os IDs exigidos 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 é aberta.
-
Forneça uma , selecione a necessária, o , os e as .
Os idiomas que ainda não foram adicionados à lista de idiomas da distribuição aparecem desmarcados e indisponíveis para seleção. Adicione os idiomas necessários à distribuição para torná-los selecionáveis em versões futuras.
Se nenhum locale for selecionado manualmente ao criar uma versão, todos os locales configurados na distribuição são incluídos na versão por padrão.
Se necessário, insira tags para incluir apenas chaves com tags específicas na versão. Adicionar um filtro de tag a uma versão inclui apenas as chaves que possuem essa tag. As chaves sem a tag são excluídas da versão completamente, e o aplicativo conectado recorre aos arquivos de tradução estáticos agrupados localmente em sua base de código para essas chaves. A filtragem por tag funciona independentemente de : se a ramificação estiver ativada, selecione a ramificação e a(s) tag(s) relevante(s); se a ramificação não estiver ativada, selecione apenas a(s) tag(s) relevante(s).
-
Clique em Gravar.
A versão é adicionada à lista na parte inferior da página de detalhes da distribuição.
Para configurar agendamentos recorrentes para o lançamento da distribuição, siga estas etapas:
-
Na página , clique no ícone de 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 durante a 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 habilitada no projeto. Selecionar uma ramificação atualiza a lista de locales e idiomas.
-
-
Opcionalmente, especifique as versões do aplicativo nos campos e .
Deixe em branco para aplicar o agendamento de lançamento a todas as versões do aplicativo.
-
Clique em Gravar.
A distribuição é atualizada com as informações de agendamento de lançamento.
Desabilitar o agendamento interrompe o lançamento automático da distribuição, mas as configurações definidas são salvas.
Nota
Não há opção na interface do Strings para pausar ou desabilitar temporariamente o OTA. Para impedir que um aplicativo busque traduções, remova o ID de distribuição da configuração OTA do aplicativo; restaure o ID para retomar o OTA. Como último recurso, exclua a distribuição e crie uma nova.
Integrar o SDK móvel ou a biblioteca Web apropriados 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 fornecem informações valiosas sobre os usuários ativos do aplicativo e seus idiomas de aplicativo. Este conjunto de relatórios está disponível para cada distribuição, e os dados são atualizados duas vezes ao dia.
Os 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 dispositivo não fornecidos.
Os relatórios para cada distribuição são acessados por meio do ícone na página .
O número de usuários ativos mostrado nestes relatórios reflete uma janela móvel de 30 dias com base na data atual, não um calendário fixo ou período de ciclo de faturamento.
A documentação técnica para a integração dos SDKs OTA está disponível no arquivo README de cada repositório de projeto: