Ao fazer upload de um arquivo para um projeto, todos os novos recursos são extraídos desse arquivo e armazenados em um projeto. O formato do arquivo enviado não precisa ser o formato inicial configurado para o projeto. Se tags forem fornecidas para agrupar recursos, novas chaves terão essas tags aplicadas.
Alguns formatos, como Gettext, fornecem informações meta adicionais valiosas, como comentários, descrições ou informações sobre formas plurais. Essas informações são extraídas quando e onde possível e são armazenadas junto com os recursos atribuídos, permitindo que todas as informações valiosas fornecidas nos arquivos de localização sejam salvas para uso posterior.
Existem vários métodos para fazer upload de arquivos:
-
No aplicativo, ao criar um novo projeto ou selecionando Fazer upload de arquivo em uma página de projeto
-
via API
-
via CLI
Ao fazer upload via API ou CLI, para formatos de arquivo que incluem múltiplos locais em um único arquivo (por exemplo, Phrase Strings .JSON, .YAML, multilíngue .XLSX/.CSV, .XLIFF, .TMX, Genesys JSON), o identificador de local de cada tradução no arquivo é correspondido a um local do projeto pelo nome do idioma, exatamente como configurado na aba do projeto. Códigos de local (por exemplo, "en-US") não são usados para essa correspondência, a menos que essa string exata também seja o nome configurado do local. Se o identificador de local de uma tradução não corresponder a nenhum nome de local no projeto, suas traduções falharão silenciosamente ao importar.
-
Por padrão, apenas novo conteúdo é extraído e quaisquer chaves existentes em um projeto de localização não são excluídas ou atualizadas; nenhum dado pode ser perdido ao fazer upload de arquivos. Se for necessário substituir dados existentes, substitua os recursos do projeto pelo conteúdo do arquivo de localização selecionando a opção . As traduções existentes serão substituídas pelo conteúdo do arquivo de localização enviado.
Esta opção também está disponível na API.
Nota
Para evitar perda de dados, certifique-se de que as alterações mais recentes sejam baixadas do Phrase para o arquivo de localização antes de alterá-lo e fazer o upload novamente com a opção .
-
Insira um identificador exclusivo (por exemplo, o caminho do arquivo) para adicionar ao início dos nomes das chave de tradução enviadas. Use um prefixo significativo relacionado ao projeto ou arquivo para manter os nomes das chave organizados.
Por exemplo, uma chave importada
hello_worldcom o prefixoproject_resultará na chaveproject_hello_world.O prefixo da chave de tradução garante que as chaves sejam correspondidas com as existentes para evitar colisões entre diferentes projetos ou arquivos.
Esta opção também está disponível na API e na interface CLI.
-
Adicionar novas chaves e substituir as existentes com o conteúdo do arquivo enviado.
-
Atualizar traduções de destino apenas se o texto original existente no idioma padrão do projeto corresponder ao texto original no arquivo multilíngue enviado.
-
Selecione esta opção se for necessário atualizar todas as descrições das chaves do arquivo enviado. Descrições vazias substituirão as existentes. As descrições podem conter qualquer informação adicional para tradutores e ajudar a identificar chaves individuais no editor.
-
Para manter as traduções organizadas, adicione vários códigos às chaves com rótulos significativos. Selecione esta opção para evitar que novas chaves sejam marcadas automaticamente com um código de upload.
-
Selecione esta opção para marcar automaticamente novas chaves e chaves com traduções atualizadas após o upload. Isso ajudará a distinguir entre Strings de tradução novas, atualizadas e antigas, garantindo que apenas as chaves relevantes sejam processadas posteriormente.
Esta opção também está disponível na API.
-
Especifique a codificação (por exemplo, UTF-8) do arquivo ou deixe-a ser selecionada automaticamente (a codificação selecionada automaticamente pode resultar em uma codificação incorreta e pode ser revertida desfazendo o upload).
-
-
evita a necessidade de verificar novamente as traduções de idiomas que não são o principal ao atualizar traduções.
-
trata todas as traduções enviadas como revisadas. Esta opção está disponível quando o fluxo de trabalho de revisão avançado foi ativado. Isso indica que as chaves estão prontas para serem enviadas para produção.
-
trata todas as traduções enviadas como verificadas.
-
Para fazer upload de arquivos no Strings, siga estas etapas:
-
Antes do upload, certifique-se de que o arquivo esteja formatado corretamente com base no tipo.
-
Em um projeto, selecione Upload de arquivo no menu .
A página é aberta.
-
Clique em Escolher arquivo, selecione um arquivo de um diretório.
O arquivo selecionado é adicionado ao campo .
-
Selecione um para o arquivo.
Os formatos sugeridos são apresentados primeiro com base no tipo de arquivo.
-
Selecione um idioma para o conteúdo do arquivo na lista suspensa.
Se essa informação não estiver no próprio arquivo, crie um novo idioma para o conteúdo ou use um existente.
-
Opcionalmente, forneça tags a serem atribuídas às novas chaves e quaisquer outras opções.
-
Clique em Gravar.
O conteúdo é importado e convertido em chaves.
-
Upload com falha
Se um arquivo não puder ser processado corretamente, detalhes do erro serão fornecidos para ajudar a mitigar o erro.
-
Upload bem-sucedido
Após o processamento bem-sucedido de um arquivo de tradução, uma página de resumo é apresentada, fornecendo uma visão geral do upload com botões que levam às etapas seguintes. Clique no código upload para abrir o arquivo no editor.
-
Removendo códigos
Para evitar a exclusão acidental de códigos ao remover códigos de um arquivo de localização e enviá-lo novamente, esses códigos não são excluídos automaticamente.
Para remover esses códigos, siga estas etapas:
Códigos não mencionados são códigos que não estão incluídos no upload atual, mas ainda existem no projeto. Ao excluí-los, todos os códigos e traduções associadas que não foram incluídos no arquivo enviado são removidos do projeto.
O limite para excluir códigos não mencionados é de 100.000 códigos. Em projetos que excedem esse limite, a opção não está disponível.
-
Desfazer um upload
Cada upload aciona várias ações e pode modificar muitos dados dentro dos projetos, e não é possível retrair um upload.
Para remover códigos que foram (incorretamente) introduzidos por um arquivo enviado, siga estas etapas:
Todos os códigos e traduções associadas criados por esse upload são removidos. As traduções para códigos que existiam antes do upload não serão removidas. Para remover traduções individuais, use o histórico de versões para cada tradução.
A partir de qualquer página do projeto, Selecionar no menu para acessar o arquivo de upload.
O arquivo de upload lista todos os uploads históricos em todos os estados possíveis. Clique no menu suspenso para filtrar uploads por estado (, e/ou ). Para localizar um upload específico, use a caixa de pesquisa no topo para pesquisar por nome.
Acessar resumos detalhados de upload de recursos afetados clicando em um upload listado. Todos os uploads bem-sucedidos também são apresentados no fluxo de atividade de um projeto.
Arquivos de idioma podem ser exportados de um projeto a qualquer momento e para qualquer formato de arquivo suportado.
Arquivos podem ser exportados do aplicativo, via API, ou CLI.
Arquivos podem ser baixados da aba de qualquer projeto selecionando-os e clicando em Download (múltiplos arquivos) ou no botão Mais opções /Download de um idioma.
Opções de download são apresentadas ao baixar um arquivo na janela de com abas para , e .
Selecionar diferentes apresenta diferentes opções. Para mais detalhes, consulte o artigo relevante sobre o formato de arquivo específico.
Opcionalmente, use o campo na aba para especificar um nome de arquivo de exportação Personalizado, ou deixe-o em branco para gerar um nome definido pelo sistema.
-
Se um prefixo de chave de tradução tiver sido adicionado durante o upload do arquivo, selecione esta opção na aba para remover o prefixo dos nomes das chaves de tradução exportadas:
-
Insira o prefixo para baixar todas as chaves e remover o prefixo especificado onde possível.
Importante
Isso pode Criar nomes de chave duplicados se outras chaves compartilharem o mesmo nome após a chave ser removida.
-
Se necessário, selecione para baixar apenas as chaves de tradução que contêm o prefixo especificado e remover o prefixo do arquivo baixado.
Esta opção também está disponível na API e na interface CLI.
-
Por padrão, recursos traduzíveis são armazenados como chaves e valores em vez de manter a estrutura de arquivo original. Isso permite formatos de arquivo intercambiáveis sem ficar bloqueado em um formato, bem como agrupamento flexível usando códigos.
Alguns frameworks ou configurações exigem múltiplos arquivos de texto original, também exigindo configuração adicional.
Mantendo arquivos separados
Em geral, mantenha todas as traduções para cada idioma em um arquivo. Isso torna os downloads de recursos mais rápidos e mais robustos. As traduções são mantidas organizadas em projetos, portanto, arquivos pequenos separados não são necessários.
Se for necessário manter arquivos de localização em arquivos separados, um fluxo de trabalho baseado em arquivo pode ser usado marcando as chaves durante o upload e usando os códigos como referência ao baixar chaves traduzidas de volta para os arquivos de texto original. Chaves podem carregar múltiplos códigos e ser incluídas em múltiplos arquivos, garantindo reuso e consistência. Um fluxo de trabalho baseado em código é flexível e permite a reorganização de recursos de tradução sem precisar ser feito o upload para projetos.
Dê nomes únicos às chaves em todos os arquivos para garantir um fluxo de trabalho tranquilo. Em uma abordagem baseada em chave-valor, uma chave deve ter os mesmos valores atribuídos a ela em cada contexto. Alguns frameworks permitem o uso de chaves não únicas em múltiplos arquivos. Alguns formatos, como Symfony, suportam domínios de mensagem. Esses domínios são detectados pelo nome do arquivo. Chaves não são automaticamente escopadas por domínios baseados em nome de arquivo, mas isso pode ser resolvido usando um prefixo de domínio único para chaves dentro do arquivo.
Exemplo de configuração de CLI
Se estiver trabalhando com CLI ou conectando um projeto a um repositório (por exemplo, GitHub, GitLab ou Bitbucket), configure um arquivo de configuração para gerenciar uploads e downloads.
Para o exemplo, um projeto tem vários arquivos de tradução nomeados semanticamente para o local do texto original. Por exemplo: accounts.en.yml, emails.en.yml etc. Esses nomes semânticos são gerenciados por meio de códigos.
Configure o .phrase.yml para refletir a organização dos arquivos no projeto de localização e vincule-os aos códigos no projeto Strings incluindo o marcador de posição de código no caminho do arquivo:
phrase:
access_token: "3d7e6598d955bfcab104c45c40af1b9459df5692ac4c28a17793"
project_id: "23485c9c5dfb15d85b32d9c5f3d2hl54"
file_format: yml
push:
sources:
- file: ./path/to/locales/<tag>.en.yml
params:
locale_id: "abcd1234cdef1234abcd1234cdef1234"
pull:
targets:
# accounts
- file: ./path/to/locales/accounts.<locale_name>.yml
params:
código: accounts
# emails
- file: ./path/to/locales/emails.<locale_name>.yml
params:
código: emails
Importante
Embora seja compatível, por motivos de segurança, não é recomendado armazenar tokens de acessar dentro do arquivo.
Definir uma variável de ambiente PHRASE_ACCESS_TOKEN é mais seguro.
Parâmetros de código também podem ser usados na seção push em vez de usar o marcador de posição <tag>.
A configuração cria chaves com códigos com base no arquivo de origem ao executar um push ou acionar a sincronização de um repositório. Ao executar pull ou acionar a exportar para o repositório, ele agrupa chaves em arquivos com base em seus códigos.
Um produto, site ou aplicativo é traduzido para vários idiomas diferentes, mas, em alguns casos, a localização não é apenas o idioma escolhido, mas versões diferentes dentro de um mesmo idioma.
Uma distinção adicional é necessária se:
-
Um produto tem uma marca diferente em regiões onde o mesmo idioma é falado.
-
Um produto é usado por diferentes clientes que desejam usar uma solução de etiqueta branca.
-
Variantes de idioma como simples, formal ou informal são necessárias.
Localizando um produto estático
Se um produto está totalmente desenvolvido e raramente atualizado, uma versão separada do produto pode existir dentro de um projeto.
-
Se uma única saída ou um projeto de curto prazo:
Criar um ramo, trabalhar exclusivamente nesse ramo durante a duração do projeto e Excluir o ramo quando Concluir.
-
Se um projeto de longo prazo:
Manter uma Duplicar do projeto existente. Isso permite o convite e trabalho com clientes na mesma organização apenas fornecendo acesso ao(s) seu(s) projeto(s), deixando outros projetos ocultos para eles.
Localizando um projeto com atualizações contínuas
Se um produto é constantemente atualizado com novo conteúdo (chaves), aplicar essas atualizações a múltiplos projetos e mantê-los sincronizados é difícil. Usar idiomas dedicados dentro de um projeto para mantê-los.
Códigos de idioma seguindo o padrão ISO (por exemplo, en-US) não precisam ser únicos, então muitas versões do mesmo idioma podem ser criadas dentro de um projeto. Distinga entre regiões, clientes ou públicos usando um nome de idioma único.
Quando configurada, qualquer chave recém-introduzida no local padrão apareceria como não traduzido nos outros idiomas e seria localizada adequadamente. Se estiver trabalhando com um cliente e seu(s) próprio(s) tradutor(es), atribua-os especificamente para que possam apenas editar suas versões de idioma atualizando o acesso ao idioma em seu perfil de usuário ou no gerenciamento de usuário do projeto.
Configurar processos de localização paralelos com trabalhos e fluxos de trabalho de revisão dentro do mesmo projeto. Essa flexibilidade também se estende ao upload e download de arquivos de idioma ou processos automatizados via API.