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 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 com plataformas iOS, Android, React Native, Flutter, i18next e Rails. As 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 no 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 Software Development Kit (SDK)<1> 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 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. O MAU é calculado com base no número de IDs únicos atribuídos nos últimos 30 dias. Cada interação com os servidores da 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 em 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 de arquivo (por exemplo, "Strings")
-
Cliente (por exemplo, "ios")
-
ID Distribuição (ID da distribuição)
-
Segredo do ambiente (para distinguir o desenvolvimento da produção)
Domínios usados pelos SDKs:
datacenter: 'eu',
-
ota.eu.phrase.com
-
cdn.eu.phrase.com
-
ota.phraseapp.com
-
cdn.phraseapp.com
datacenter: "us",
-
ota.us.phrase.com
-
cdn.us.phrase.com
Os SDKs Phrase OTA 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 Strings buscadas com sucesso armazenadas no dispositivo ou às Strings 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 Strings agrupadas devem ser mantidas atualizadas a cada lançamento do aplicativo.
Distribuições são uma configuração definida que determina como e onde as atualizações OTA são entregues para uma plataforma ou projeto específico.
As plataformas de tradução são definidas dentro da distribuição:
-
iOS
-
Android
-
Flutter
-
i18next
-
Rails
Múltiplas distribuições são possíveis, mas o ideal é que haja uma distribuição por projeto. Se estiver usando uma distribuição para iOS e Android, os espaços reservados 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 projetos, 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 no nível da 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 Team de suporte sobre uma função Personalizado.
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 do lançamento, o sistema pode recorrer a uma versão padrão (por exemplo, en) desse idioma se ele existir no projeto. Se o idioma solicitado não for encontrado, o local padrão do projeto poderá ser fornecido.
Fallbacks não funcionarão em chaves vinculadas.
Criar uma distribuição
Para criar uma distribuição, siga estas etapas:
-
A partir da caixa na página , clique em Configurar ou no número de configurações, caso já existam.
A página abre e exibe as configurações existentes.
-
Clique em Nova distribuição. A janela abre.
-
Na aba Geral, forneça um , com qual a distribuição está associada, necessários e necessárias.
-
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 torna-se disponível. Se necessário, usar esta aba para configurar lançamentos agendados OTA na distribuição.
-
-
Na aba Idiomas de fallback, Selecionar 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, clicar na aba Traduções para Selecionar a opção de usar a versão mais recente de traduções revisado. Ativar esta opção apenas ao trabalhar com o fluxo de trabalho de revisão avançado.
-
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 a partir da página .
Para atualizar traduções, Criar um novo lançamento dentro da distribuição. O estado atual do projeto é exportado e disponibilizado para 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 abre.
-
Forneça uma , necessária, , e .
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 lançamentos futuros.
Se nenhum idioma for selecionado manualmente ao criar um lançamento, todos os idiomas configurados na distribuição serão incluídos no lançamento por padrão.
Se necessário, insira códigos para incluir apenas chaves com códigos específicos no lançamento. Adicionar um filtro de código a um lançamento inclui apenas as chaves que possuem esse código. Chaves sem o código são excluídas do lançamento 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 código funciona independentemente da ramificação: se a ramificação estiver ativada, selecione o ramo e o(s) código(s) relevante(s); se a ramificação não estiver ativada, selecione apenas o(s) código(s) relevante(s).
-
Clique em Gravar.
O lançamento é adicionado à 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 agendar lançamento 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, Selecionar , e para os lançamentos agendados.
-
O campo é exibido apenas se a ramificação estiver habilitada no projeto. Selecionar um ramo atualiza a lista de localidades 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.
Desabilitar o agendamento interrompe o lançamento automático da distribuição, mas as configurações configuradas são salvas.
Nota
Não há opção na interface de usuário de Strings para pausar ou desabilitar temporariamente o OTA. Para impedir que um aplicativo busque traduções, remova o ID da distribuição da configuração de OTA do aplicativo; restaure o ID para retomar o OTA. Como último recurso, Excluir a distribuição e Criar uma nova.
A integração do SDK móvel ou da 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 de SDK móvel e biblioteca Web fornecem informações valiosas sobre usuários de aplicativos móvel ativo 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 ativo, 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 ativo 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: