Files
apitdn/fluig_rag_docs/Plataforma Documentação técnica/Recurso de Processos (BPM)/Desenvolvimento de Workflow/Tradução de Processos.md
T

170 lines
7.2 KiB
Markdown
Raw Normal View History

2026-05-06 13:35:47 -03:00
---
title: Tradução de Processos
source: https://tdn.totvs.com/pages/viewpage.action?pageId=160105353
path: \Plataforma Documentação técnica\Recurso de Processos (BPM)\Desenvolvimento de Workflow\Tradução de Processos.md
---
# Índice
- 1 [Objetivo](#TraduçãodeProcessos-Objetivo)
- 2 [Antes de começar](#TraduçãodeProcessos-Antesdecomeçar)
- 3 [Gerando arquivos de literais](#TraduçãodeProcessos-Gerandoarquivosdeliterais)
- 3.1 [Criando arquivos ao criar um novo diagrama](#TraduçãodeProcessos-Criandoarquivosaocriarumnovodiagrama)
- 3.2 [Criando arquivos a partir de um diagrama existente](#TraduçãodeProcessos-Criandoarquivosapartirdeumdiagramaexistente)
- 3.3 [Criando arquivos manualmente](#TraduçãodeProcessos-Criandoarquivosmanualmente)
- 4 [Editando o arquivo de literais](#TraduçãodeProcessos-Editandooarquivodeliterais)
- 5 [Quebra de strings longas em tradução de processos](#TraduçãodeProcessos-Quebradestringslongasemtraduçãodeprocessos)
- 6 [Criando literais para utilizar em customizações](#TraduçãodeProcessos-Criandoliteraisparautilizaremcustomizações)
# Objetivo
---
O objetivo deste guia é demonstrar o funcionamento do sistema de tradução de processos do Fluig. Dessa forma, você pode manter seus processos e mensagens em idiomas diferentes que serão usados conforme a preferência do usuário
# Antes de começar
---
Por questões de padronização de encoding no fluig, mesmo nossos arquivos properties utilizam o encoding UTF-8, que é diferente da configuração padrão do eclipse. Por este motivo, é necessário fazer uma alteração na configuração do **Studio**em **Preferences** (Preferências)pesquise por **Content Types** (Tipos de conteúdo), **Text** (Texto),**Java properties file** (Arquivo de propriedade Java) e altere de ISO-8859-1 para **UTF-8**.
![](..\..\..\images\TraducaoProcessos.gif)
# Gerando arquivos de literais
---
Você pode gerar os arquivos ao mesmo tempo que cria o processo, gerar posteriormente após desenhar todas as etapas do processo ou ainda de forma manual.
## Criando arquivos ao criar um novo diagrama
Para gerar arquivos de literais em conjunto com a criação de um novo diagrama, basta assinalar a opção "Cria os arquivos de literais" na tela apresentada a seguir:
![](..\..\..\images\Tradu%C3%A7%C3%A3oProcessos1.png)
Ao assinalar “Cria os arquivos de literais” são criados três arquivos *properties*, onde são armazenadas as literais nos idiomas suportados pelo fluig (inglês, português e espanhol), conforme imagem a seguir:
![](..\..\..\images\TraducaoProcessos2.png)
## Criando arquivos a partir de um diagrama existente
Para gerar os arquivos de tradução de um diagrama já existente, facilitando assim que todos os componentes sejam devidamente atribuídos, clique com o botão direito em cima do arquivo do diagrama na *view* do eclipse "Package Explorer" e vá na opção "Externalizar Strings"
![](..\..\..\images\image2022-3-10_18-21-57.png)
Ao fazer isso, será criado na pasta **literals** arquivos de tradução em português, inglês e espanhol.
![](..\..\..\images\image2022-3-10_18-23-0.png)
Note que irá preencher automaticamente as propriedades de todas as atividades e do processo conforme o que foi configurado no próprio diagrama. Então, basta editar conforme a necessidade.
## Criando arquivos manualmente
Para projetos mais recentes, a pasta “literals” é criada automaticamente, tanto na criação de novos diagramas quanto na importação de processos com literais definidas. Para projetos e diagramas antigos, a pasta e os arquivos de propriedades podem ser criados utilizando as opções *"New Folder"* e "*New File*" do Eclipse, que também estão disponíveis no menu de contexto de *mouse* do Fluig.
![](..\..\..\images\Tradu%C3%A7aoProcessos3.png)
Os arquivos de literais criados desta forma devem seguir a seguinte convenção:
**(Nome do diagrama) + “\_en\_US.properties”** ou **“\_es.properties”** ou **“\_pt\_BR.properties”**.
Se algum dos arquivos não for exportado, será assumido as propriedades do próprio diagrama para usuários do idioma cujo arquivo não foi criado.
# Editando o arquivo de literais
---
As informações gerais do processo, podem ser editadas pelas entradas:
- **process.category** = categoria do processo;
- **process.description** = descrição do processo;
- **process.instructions** = instruções do processo.
E da versão do processo, em:
- **process.version.instructions** = instruções da versão do processo;
Já  para traduzir informações das atividades, devem ser criadas literais utilizando a seguinte semântica:
**(código da atividade) + "." + campo a ser traduzido = "*string* desejada”**.
Onde:
**Código da atividade:** pode ser obtido verificando as propriedades de cada elemento do diagrama, conforme imagem a seguir:
![](..\..\..\images\Tradu%C3%A7%C3%A3oProcessos4.png)
**Campo a ser traduzido:** é o que se deseja traduzir. O campo "*name*" representa o nome e o campo "*instructions*" representa as instruções dele.
Nesta linha, ao traduzir a atividade com o código "task6" o arquivo de literal terá a seguinte atividade:
- **6.*name* = "*Financial approvement*"**.
- **6.instructions = "*In this point of the process we have the financial approvoment*"**.
Para fluxos, além da propriedade "*name*", podem ser utilizadas mais duas propriedades:
- **name:** *string* utilizada como valor do campo “Nome”;
- **flow:** *string* utilizada como valor do campo “Ativ. Fluxo”;
- **return:** *string* utilizada como valor do campo “Ativ. Retorno”.
# Quebra de *strings* longas em tradução de processos
---
Em alguns casos, as *strings* de tradução podem ficar muito longas ultrapassando o tamanho dos objetos que contém estas *strings*, conforme o exemplo abaixo:
![](..\..\..\images\Tradu%C3%A7%C3%A3oProcessos5.png)
Note na imagem acima que a *string* "Solicitação workflow inicia nesta tarefa" está ultrapassando o espaço definido para o objeto de anotação.
Para evitar este problema o desenvolvedor de processos poderá utilizar o caractere "\n" para realização da quebra de linhas, evitando esta situação.
```
// Implementação que apresenta o problema (sem o \n)
7.name=Solicitação workflow inicia nesta tarefa
// Implementação corrigida.
7.name=Solicitação workflow \n inicia nesta tarefa
```
Após aplicar o caractere de quebra de linha, o problema será corrigido conforme pode ser observado na imagem abaixo.
![](..\..\..\images\Tradu%C3%A7%C3%A3oProcessos6.png)
# Criando literais para utilizar em customizações
---
Você pode também fazer com que suas mensagens de erros customizadas sejam também traduzidas.  suas própria exceções.
Para isso, na implementação ao invés de retornar simplesmente:
```
throw "Informe o usuário"
```
Você pode fazer da seguinte forma. Adicionar aos arquivos de tradução a literal "validation\_name"
**diagrama\_pt\_BR.properties**
```
validation_user=Informe o usuário
```
**diagrama\_es.properties**
```
validation_user=Informe un usuario
```
**diagrama\_en\_US.properties**
```
validation_user=Enter a User
```
E na customização, usar a função **i18n.translate** passando a chave utilizada nos arquivos de tradução:
```
throw i18n.translate("validation_name");
```