This document describes the process of managing translations from the TMS system to their integration into the main repository branch.
The workflow involves multiple actors and systems:
- Translator
- TMS (Translation Management System)
- GitHub
- Developers
- Local Environment
- Translator completes the translation flow in TMS.
- TMS automatically creates a Pull Request (PR) on GitHub with translations [EN-PT].
- GitHub notifies assigned developer about new PR.
- Developer downloads PR to local environment.
Developer must run a supervised script (script.rb
) that performs:
- Rebase and squash PR commits
- Run linter on .yml files
- Resolve rebase conflicts
- Rewrite
pt-br.yml
files topt.yml
- Final visual verification
- Duplicate keys
- YML indentation issues
- Valid YML syntax
- No extra spaces
- Correct UTF-8 encoding
To approve PR:
- Linter passes without errors
- No conflicts exist
- Translations are complete
- Developer approves and confirms PR on GitHub
- Translations integrate into master branch
EN.yml
andPT.yml
files integrate into main branch
- Developer rejects PR on GitHub
- Translator is notified of required changes
- Process returns to Translation Phase
- Incomplete translations
- Format errors
- PR without changes
The sequence diagram shows the flow in its last phase where the review of a new Pull Request for Translations is performed.
---
config:
theme: mc
---
sequenceDiagram
participant TD as Translator
participant TMS as TMS System
participant GH as GitHub
participant M as Master Branch
participant DA as Developer A
participant L as Localhost
Note over TD,TMS: ... Translation Phase
TD->>+TMS: Completes translation flow
Note over TMS,L: Final Phase - Translation Integration into Buk
TMS->>-GH: Creates PR with translations [EN-PT]
GH->>DA: Notifies new PR with translations
Note over DA: Receives notification<br/>of new PR<br/>
DA->>L: Downloads new PR
rect rgb(255, 245, 245)
Note over L: Supervised execution of script.rb
L->>L: Rebase and squash PR commits [Auto]
Note over L: Common conflicts:<br/>1. Duplicate keys<br/>2. YML indentation
L->>L: Resolve rebase conflicts [Manual]
L->>L: Linter for .yml files [Auto]
Note over L: Validations:<br/>1. Valid YML syntax<br/>2. No extra spaces<br/>3. UTF-8 encoding
L->>L: Rewrite pt-br.yml > pt.yml files [Manual]
L->>L: Visual verification [Manual]
end
alt PR Approved
Note over L: Acceptance criteria:<br/>1. Linter passes without errors<br/>2. No conflicts<br/>3. Translations complete
L->>GH: Approves and confirms PR
GH->>M: Integrates translations
Note over M: EN.yml and PT.yml files<br/>integrated in master
else PR Requires Changes
Note over L: Common rejection reasons:<br/>1. Incomplete translations<br/>2. Format errors<br/>3. PR without changes
L->>GH: Rejects PR
GH->>TD: Notifies required changes
Note over TMS: Returns to<br/>Translation Phase<br/>
end
- YML file format consistency is crucial (source and target files)
- Manual verification ensures translation quality
- Process designed to maintain translation integrity throughout