Rigi SDK tool
Rigi SDK is a .NET Command Line Interface (CLI) application designed for Windows, Linux, and macOS environments to support continuous localization (CI/CD). This application performs the following tasks:
Facilitates the integration between a working copy of a project and a project hosted at a specified URL.
Automates the process of sending files to the project.
Ensures these files are returned with corresponding project tokens or downloads target files from the project.
The application can work in the following modes:
General concept of CI Pipeline
The application is designed to be run automatically by CI/CD solutions.

Automated retrieval of translated content from Git repositories (general concept)
The environment for automatic file retrieval can be created using any service that creates CI/CD pipelines in Git.
Important
Files created by the application must be committed to the repository.
Warning
Committing files to the same branch in the pipeline could cause an infinite loop of job creation because, by default, a job is created every time changes are committed to the main branch.
For this example, we have created a new Rigi project.

This project has one source file (json). The target rules are defined so that the target files are placed in the same folder and are named <language>.json.
This project contains 56 source strings that are translated and validated in Japanese, German, and Italian.

Initial state: all target languages have 100% validated translations for 56 strings.
Upload mode
Prerequisites: The developers have implemented new features, including 33 new strings in the source JSON file.
In this example, the manifest contains absolute paths and is located outside the repository.
[ { "filepath": "C:\\repos\\clitest\\en.json", "fileId": "en", "parserId": "json", "targetRule": "TR_json" } ]
Actions: Rigi SDK is used to update the Rigi project with the new source files via the Upload mode.
upload -url https://xyz.rigi.io/projects/174 -repo C:\repos\clitest -manifest manifest.json -username jdoe@xyz.com -password "xxxxxxxxx"
To do so, a command line is run from a random folder:
Rigi-CLI.exe upload -url https://xyz.rigi.io/projects/174 -repo C:\repos\clitest -manifest C:\repos\clitest\manifest.json -username jdoe@xyz.com -password "xxxxxxxxx"
Result: This results in the following output:
Remote project URL: https://xyz.rigi.io/projects/174 Authentication... -> POST https://xyz.rigi.io/api/auth/login Target files unpacked in location: C:\repos\clitest
The project was updated with the new source strings. Their translation status is set to Untranslated.
'EN' and 'RG' are new strings. 'JA' already existed.
The target folder now contains the files with Rigi tokens:
en-JM contains the Rigi tokens
Align mode
Prerequisites: The developers have applied machine translations to the Japanese, German, and Italian target files.
Target files with MT translations.
They copied the files with the translations to the local repository at the location that matched the target rules. A
targetfiles.txt
file lists all paths of the target files:The
targetfiles.txt
file lists all JSON files with translations.Actions: Rigi SDK is used to align the Untranslated strings with translations from the target files and set them as Translated. To do so, a command line is run from a random folder:
Rigi-CLI.exe download -url https://xyz.rigi.io/projects/174 -targetfolder C:\repos\clitest -pseudo -master -username jdoe@xyz.com -password "xxxxxxxxx"
Result: This results in the following output:
Remote project URL: https://xyz.rigi.io/projects/174 Authentication... -> POST https://xyz.rigi.io/api/auth/login -> GET https://xyz.rigi.io/api/projects/174 -> POST https://x.rigi.io/api/projects/174/workspaces/align Align completed
The Untranslated texts are now aligned with translations from the target files and set to Translated:
The new strings ('Language', 'EN', and 'RG') are aligned with the translations from the German de-DE.json file.
The dashboard shows that all 89 source strings were translated for all target languages:
Download mode
Prerequisites: In the Rigi project, a translator or reviewer has made changes to the German translations and set the status to Reviewed.
The linguist has approved or edited all of the 'Translated' strings and set their status to 'Reviewed'.
Actions: Rigi SDK is used to download the files with translations. To do so, a command line is run from a random folder:
Rigi-CLI.exe align -url https://xyz.rigi.io/projects/174 -targetfiles C:\repos\clitest#targetfiles.txt -alignstate Translated -username jdoe@xyz.com -password "xxxxxxxxx"
Result: This results in the following output:
Remote project URL: https://xyz.rigi.io/projects/174 Authentication... -> POST https://xyz.rigi.io/api/auth/login -> GET https://xyz.rigi.io/api/projects/174 Downloading {"addSource": true, "targets": [], "generatePseudo": true, "generateDescriptor": true, "master": true} Downloading {"addSource": false, "targets": ["it-IT"], "generatePseudo": false, "generateDescriptor": false, "master": false} Downloading {"addSource": false, "targets": ["ja-JP"], "generatePseudo": false, "generateDescriptor": false, "master": false} Downloading {"addSource": false, "targets": ["de-DE"], "generatePseudo": false, "generateDescriptor": false, "master": false}
The downloaded master and target files are now present in the repository:
The downloaded German file contains the modifications: