Sincronização com o Figma

As variáveis podem ser editadas dos dois lados — no Figma e no variable Jar. Um único botão Sincronizar alinha as mudanças dos dois de uma vez.

Sincronizar

Quando você clica no botão Sincronizar no plugin:

  1. Suas variáveis atuais do Figma são comparadas com o Master.
  2. Alteradas só no Figma → aplicadas ao Master.
  3. Alteradas só no variable Jar (edições na grade, traduções aprovadas, …) → aplicadas ao Figma na hora.
  4. Alteradas dos dois lados (um conflito) → não são aplicadas automaticamente; ficam para você resolver no app web.

A sincronização leva os metadados das variáveis — escopos e descrições — junto com os valores. Uma variável criada na web tem um ponto laranja ao lado do nome (Ainda não está no Figma) até a sincronização que a cria no Figma; essa única sincronização limpa tanto o ponto quanto o — da coluna Escopos. Não é preciso clicar em Sincronizar duas vezes.

Quando a sincronização termina, um aviso na parte de baixo do Figma resume o resultado:

ResultadoSignificado
Sem alteraçõesOs dois lados já eram idênticos
Sincronização concluída, com uma contagemEssa quantidade de mudanças foi processada sem conflitos
Conflitos encontrados, com uma contagemEssa quantidade de conflitos está esperando no app web

O topo do plugin mostra o nome do projeto conectado e quando ele foi sincronizado pela última vez.

O painel do plugin conectado — nome do projeto, horário da última sincronização e botão Sincronizar
O painel do plugin conectado — nome do projeto, horário da última sincronização e botão Sincronizar

Resolver conflitos

Um conflito acontece quando a mesma variável é alterada de forma diferente no Figma e no variable Jar antes de uma sincronização. A sincronização para naquela variável sem mudar nada, então nenhum dos dois valores se perde até você escolher. Você resolve na grade Master do variable Jar escolhendo, por variável, o valor do Figma ou o valor deste lado.

Um banner Conflitos: N aparece acima da grade Master, que passa a mostrar só as linhas em conflito. Clique em Ver tudo no banner para ver também as outras linhas, e em Só conflitos para filtrar de novo.

Uma célula em conflito é um botão de duas linhas. A linha de cima é VA (o valor do variable Jar), a de baixo é Figma (o valor do Figma), e só a linha escolhida fica preenchida de vermelho. Clique na outra linha para trocar. O valor do Figma vem selecionado no início, e você pode escolher por modo (coluna).

Uma célula em conflito — a linha VA em cima e a linha Figma embaixo, só a escolhida em vermelho
Uma célula em conflito — a linha VA em cima e a linha Figma embaixo, só a escolhida em vermelho
O banner de conflitos acima da grade, com células em conflito mostrando os valores do VA e do Figma em duas linhas
O banner de conflitos acima da grade, com células em conflito mostrando os valores do VA e do Figma em duas linhas

Além dos valores, há mais cinco tipos de conflito, todos escolhidos linha por linha com o mesmo botão de duas linhas:

ConflitoOnde escolherEscolha inicial
ValorColunas de modo — VA / Figma por modoFigma
DescriçãoO banner mostra Descrições também divergiram · N; escolha linha por linha na coluna DescriçãoFigma
EscoposO banner mostra Escopos também divergiram · N; escolha linha por linha na coluna EscoposFigma
NomeOs dois lados renomearam de forma diferente — a célula do nome mostra os dois nomes nas duas linhas (só a parte que difere; passe o mouse para ver o caminho completo) e você escolhe qual manterFigma
Excluída no Figma, editada aquiA célula do nome oferece Manter no VA / Excluir aqui tambémManter no VA
Excluída aqui, editada no FigmaAparece como uma linha fantasma cinza; a célula do nome oferece Manter Figma / Excluir no Figma tambémManter Figma
Um conflito de nome, uma linha fantasma e um conflito de exclusão no Figma na mesma tela — só a linha escolhida em vermelho
Um conflito de nome, uma linha fantasma e um conflito de exclusão no Figma na mesma tela — só a linha escolhida em vermelho

Nos conflitos de nome e de exclusão, passar o mouse sobre a célula do nome explica a situação. Um conflito de nome, por exemplo, diz “Os dois lados renomearam esta variável de formas diferentes. Nada foi alterado — escolha o nome a manter.”; uma linha fantasma diz “Excluída no VA, mas editada no Figma. Nada foi alterado — escolha se quer restaurá-la com os valores do Figma ou excluí-la no Figma também.” Os conflitos de exclusão começam no lado de manter porque, se a exclusão fosse o padrão, um único Aplicar apagaria a edição.

Se qualquer um dos lados editar de novo uma variável ainda em conflito antes de resolvê-lo, o conflito continua. A próxima sincronização não sobrescreve a edição do outro lado, e a célula mostra o valor mais recente dos dois lados. Quando os dois valores ficam iguais, o conflito some sozinho.

Ao abrir uma linha em conflito no painel lateral (Detalhes), o lado escolhido na grade aparece em prévia com o selo Prévia do Figma / Prévia do VA (Prévia do conflito quando eixos diferentes escolheram lados diferentes), e a variável não pode ser editada no painel até o conflito ser resolvido — “Aplicar torna este valor definitivo.”

Clique em Aplicar:

  • Variáveis em que você manteve o valor do Figma → o Master recebe o valor do Figma.
  • Variáveis em que você manteve o valor do VA → a próxima sincronização aplica esse valor ao Figma.
  • Excluir aqui também → a variável também é excluída do Master. Manter Figma → ela é restaurada com os valores do Figma. Excluir no Figma também → a próxima sincronização a exclui no Figma.

Enquanto houver conflitos, não é possível criar uma planilha de tradução nem enviar alterações para aquela coleção. Aparece o aviso Conflitos do Figma não resolvidos: N com um botão Resolver no Master — na tela Enviar alterações, ele diz “Resolva os conflitos primeiro para que valores não confirmados não sejam enviados à planilha de tradução.” (veja Fluxo de tradução). Variáveis com conflito não resolvido também não podem ser movidas para outra coleção.

Renomeações e movimentações são preservadas

  • Renomeações — renomeie uma variável ou o caminho de um grupo na web e sincronize: no Figma, a mesma variável é simplesmente renomeada. Ela não é excluída e recriada, então os vínculos das camadas continuam intactos. Se os dois lados renomearam de forma diferente, ela para como o conflito de nome acima. Se o novo nome já pertence a outra variável no Figma, a renomeação fica pausada e a célula do nome mostra uma marca ! (Outra variável do Figma já tem este nome) — “Renomeação pausada: outra variável do Figma já usa o novo nome do VA. Para manter o nome do VA, renomeie primeiro essa variável no Figma e sincronize de novo, ou escolha o lado do Figma (nome antigo).”
  • Mover para outra coleção — variáveis movidas com clique direito → Mover para coleção ganham um ponto laranja ao lado do nome (Aguardando a movimentação no Figma — será criada lá na próxima sincronização). Na próxima sincronização, o plugin as recria na nova coleção e reconecta as camadas que as usavam (o plugin mostra Reconectando camadas… N/N). O ponto some nessa mesma sincronização, e o que não pôde ser reconectado é sinalizado na linha. Se a coleção de destino no Figma já tem uma variável com esse nome, a linha mostra no lugar um selo Aguardando no Figma e a movimentação fica em espera (“Já existe uma variável com este nome no Figma, então a movimentação está em espera — renomeie-a no Figma e sincronize de novo”). Renomeie essa variável no Figma e sincronize de novo para continuar.
  • Ordem — a ordem das variáveis e dos grupos é lida do Figma e atualizada a cada sincronização. Uma linha que você inseriu na web também assume, na próxima sincronização, a posição lida do Figma. As coleções aparecem na ordem de criação, e o menu Ordem das coleções no cabeçalho Coleções da barra lateral permite escolher Ordem de criação / Nome (A→Z) por projeto. A ordem de coleções reorganizada no painel do Figma não pode ser lida por plugins, então não é importada. Não há reordenação por arrastar na web.

Conexão de arquivos

Para sincronizar, primeiro conecte o arquivo do Figma a um projeto.

A tela Conectar este arquivo — Criar novo projeto ou Conectar a um projeto existente
A tela Conectar este arquivo — Criar novo projeto ou Conectar a um projeto existente
  • Criar uma conexão — abra o plugin num arquivo sem conexão e aparece a tela Conectar este arquivo. Escolha Criar novo projeto (todas as variáveis do arquivo são enviadas automaticamente) ou Conectar a um projeto existente.
  • Arquivo de outra pessoa — se o arquivo já estiver conectado ao projeto de outra pessoa, escolha Solicitar entrada como tradutor (grátis) / Pedir convite como membro da equipe / Começar com meu próprio projeto. Proprietários e membros da equipe aprovam os pedidos na página Membros (veja Equipe e funções).
A tela Já conectado — Solicitar entrada como tradutor / Pedir convite como membro da equipe / Começar com meu próprio projeto
A tela Já conectado — Solicitar entrada como tradutor / Pedir convite como membro da equipe / Começar com meu próprio projeto
  • Não há desconexão — o plugin não tem função de desconectar; uma conexão só é removida quando o projeto é excluído para sempre (pela lixeira, ou automaticamente 30 dias depois de ir para lá). Desinstalar e reinstalar o plugin não afeta a conexão.
  • Projeto na lixeira — caso o projeto conectado seja movido para a lixeira, o plugin mostra um aviso de lixeira em vez de sincronizar. O proprietário do espaço de trabalho pode restaurá-lo pelo app web; as outras pessoas que tinham acesso ao projeto são orientadas a falar com o proprietário. A conexão é mantida, então depois de restaurar o arquivo volta a se conectar como antes. Enquanto o projeto estiver na lixeira, as pessoas do mesmo espaço de trabalho não podem conectar o arquivo a outro projeto.
  • Duplicar um arquivo — as conexões são por arquivo do Figma, então uma cópia começa como um arquivo novo, sem conexão. Comece de novo por Conectar este arquivo nele.