Getting Started with Soluling Cloud

This walks through the whole Soluling Cloud loop end to end: add a resource file, translate it in the browser, and get the localized files back. There are four ways to do it, and all of them use the same browser-based Translate for the translating itself:

  • The dashboard - add files and download the localized ones in the browser. Nothing to install; the easiest way to try Soluling Cloud.
  • SoluCLI - push files and pull the localized ones from the command line. Scriptable, so the whole loop can run in your CI/CD pipeline.
  • Soluling Desktop - keep the project on your own machine and use the cloud for the translating: create and update the cloud project from Desktop, import the translations back into your local project, and build there.
  • SoluMake - the same as the Desktop path, but from the command line: create, upload, download and build the project in a script or on your build server.

The dashboard and Translate need nothing but a browser and, for SoluCLI, an npm package; Soluling Desktop and SoluMake are Windows applications.

Once the loop works, Add users shows how to bring translators and other team members in, so you don't have to translate everything yourself.

See Cloud Tools for a fuller picture of the pieces involved, and Workflows for how this fits alongside other setups.

Before you start

You need a Soluling account with a Soluling Cloud plan - the free one is enough for this tutorial. Create an account if you don't already have one.

All four paths use the same small JSON file as the resource to localize. Save it as messages.json somewhere on disk:

{
  "greeting": "Hello",
  "farewell": "Goodbye"
}

Path 1: The dashboard

Create a project

Sign in and open Cloud > Dashboard for Projects, Users and Terminology. It lists your projects, along with your account's users and translation memory:

The Soluling Cloud dashboard

Click Add a new project, then Select files and pick messages.json - or just drag and drop it onto the page - and click Create. On the next page:

  • Check the project's Name - it defaults to the file's name.
  • Set the Original language to English - the language messages.json is written in.
  • Under Target languages, check Finnish and Swedish or any other languages you want to translate to.
  • Under Source type, select JSON file (.json). Soluling has several parsers for JSON files - for example for Angular-translate and Ngx-translate files - so pick the one that matches your file. For a plain JSON file like messages.json, that's the generic JSON one.

Click Create. The project appears on the dashboard; its status changes to Ready once the file has been processed.

Translate the project

Click the project's green Translate button on the dashboard - or open Translate and pick the project from your project list. Machine translation suggestions, translation memory, and spell checking are all available right there; see Translation quality for what else is available.

Soluling Translate in action

Translate as many of the target languages as you like - you don't have to finish every language before moving on to the next step.

Get the localized files back

In Translate's top bar, click the project's name, messages. It takes you straight to the project's Manage page on the dashboard - the same page the project's Manage button on the dashboard opens. Its Files section lists messages.json with a download button for each target language.

If you've translated something since the localized files were last made, the page says Localized files need to be built - click Build localized files and wait a moment until it finishes. Then click Finnish and Swedish to download messages.json localized into each language.

Update the project

Localization isn't a one-time step - as the source file changes, upload the new version, translate what's new or changed, and download again. Edit messages.json, say adding a thanks string and changing the existing greeting:

{
  "greeting": "Hi there",
  "farewell": "Goodbye",
  "thanks": "Thank you"
}

On the dashboard, click the project's Update file button (the upload arrow), then Select a file and pick the edited messages.json - or drop it onto the page - and click Update. For a project with several files, use the file's own Manage file button in the project's Files section instead.

Existing translations are carried forward automatically - only the strings that actually changed or were added need translating. Translate the new thanks string and review greeting's now-stale translation for each language, then build and download the localized files again from the Manage page.

You can also add more files to a project at any time from its Manage page.

Path 2: SoluCLI

Install and sign in

SoluCLI is a single npm package, no platform-specific binaries:

npm install -g @soluling/solucli

Every command needs your credentials - pass them with --user/--password, or, better, set them once as environment variables (SOLULING_USER, SOLULING_PASSWORD) so they're never typed on the command line at all. If you skip both, SoluCLI prompts for them instead (password input is masked) - handy interactively, but in a CI/CD pipeline there's nobody to answer, so set them one of these two ways there:

Windows (PowerShell):

$env:SOLULING_USER = "you@example.com"
$env:SOLULING_PASSWORD = "yourpassword"

Windows (Command Prompt):

set SOLULING_USER=you@example.com
set SOLULING_PASSWORD=yourpassword

Linux / macOS (bash):

export SOLULING_USER=you@example.com
export SOLULING_PASSWORD=yourpassword

See Authenticate for every option.

Create a project

You don't need the desktop application or a .ntp file to get started - SoluCLI can create a project directly from the resource file you want localized. Push messages.json, telling SoluCLI what language it's written in and which languages to localize into:

solucli project create-source messages.json --original-language en --target-languages "fi;sv"

This prints the new project as JSON - note its id, you'll need it for every command below. If you'd rather set the project up first and push files into it afterwards, use create-empty and add-source instead - see the full command reference.

Translate the project

Translating is the same as in the dashboard path - open Translate, sign in with the same account, and pick the project from your project list. See Translate the project above.

Get the localized files back

project download-source downloads a source's localized file for one language. If the project has unpushed translations, it automatically queues a build and waits for it first - no separate build step to run:

solucli project download-source 123 messages.json fi ./out/messages.fi.json
solucli project download-source 123 messages.json sv ./out/messages.sv.json

Replace 123 with the project id from the first step in every command from here on.

Update the project

Edit messages.json the same way as in the dashboard path - adding a thanks string and changing the existing greeting:

{
  "greeting": "Hi there",
  "farewell": "Goodbye",
  "thanks": "Thank you"
}

Then push the updated file:

solucli project update-source 123 messages.json ./messages.json

SoluCLI carries existing translations forward automatically - only the strings that actually changed or were added need translating. Back in Translate, translate the new thanks string and review greeting's now-stale translation for each language, then download the localized files again:

solucli project download-source 123 messages.json fi ./out/messages.fi.json

Wire these same two commands into your CI/CD pipeline and the whole loop runs on every commit; see the CI/CD example on the SoluCLI page.

Path 3: Soluling Desktop

If you already work in Soluling Desktop - or your files are something only Desktop can scan, like an EXE, a database or a whole Visual Studio project - you can keep the Soluling project file (.ntp) on your own machine and use the cloud just for translating. Desktop creates and updates the cloud project, imports the translations back into your local project, and builds the localized files locally.

Cloud action in Soluling Desktop

Create a project

Download and install Soluling Desktop, then create a new Soluling project for messages.json, with English as the original language and Finnish and Swedish as target languages, and save it.

On the Translate tab, in the Send and Receive group, click Configure Cloud:

  • Log in with your Soluling account, and select the cloud account to use if you have several.
  • Click OK to create the cloud project. When Desktop asks whether to upload the local project to the cloud, click Yes, and Yes again to wait until the cloud has processed it.

The project now also appears on the dashboard, marked as created from a .ntp file.

Translate the project

Translating is the same as in the other paths - in Translate, by you or by the translators you invited. See Translate the project above.

Get the translations back

On the Translate tab, click Import from Cloud. Desktop downloads the translations made in the cloud and imports them into your local project. Then, on the Home tab, click Build to create the localized messages.json files locally, the same way as for any Soluling project.

Update the project

Edit messages.json the same way as in the other paths - adding a thanks string and changing the existing greeting - then, on the Home tab, click Scan so the project picks up the changes.

On the Translate tab, click Upload to Cloud. The cloud project is updated to match your local one, and translations that exist only in the cloud so far are kept. Translate the new and changed strings in Translate, then Import from Cloud and Build again.

To do the same from a build script, see Path 4: SoluMake.

Path 4: SoluMake

SoluMake is the command-line version of Soluling Desktop. It works like the Desktop path - the Soluling project file (.ntp) stays on your machine, the cloud is used for translating, and the localized files are built locally - but every step is a command, so the whole loop can run in a build script or on a build server.

SoluMake (SoluMake.exe) is installed with Soluling Desktop. On a build server, run the Soluling setup and choose to install only the files needed by build automation. See SoluMake for running it in a cloud-hosted DevOps pipeline, and Pricing for the plans that include a SoluMake license.

In the commands below, replace john@example.com and secret with the email (or username) and password of your Soluling account.

Create a project

Create a Soluling project for messages.json, with English as the original language and Finnish and Swedish as target languages:

SoluMake add -origlang:en -lang:fi;sv messages.json messages.ntp

Then upload it to the cloud. The first upload creates the cloud project; -wait waits until the cloud has processed it:

SoluMake upload -username:john@example.com -password:secret -wait messages.ntp

If you have several cloud accounts, add -account: with the account's id or GUID. Add -artifacts to have the cloud build and publish the localized files for OTA delivery. The project now also appears on the dashboard.

Translate the project

Translating is the same as in the other paths - in Translate, by you or by the translators you invited. See Translate the project above. To invite a translator from the command line, use the invite command:

SoluMake invite -username:john@example.com -password:secret -lang:fi -firstname:Jane -lastname:Doe -email:jane@example.com messages.ntp

Get the localized files back

Download the translations made in the cloud into your local project, then build the localized messages.json files locally:

SoluMake download -username:john@example.com -password:secret messages.ntp
SoluMake build messages.ntp

Update the project

Edit messages.json the same way as in the other paths - adding a thanks string and changing the existing greeting - then scan the project so it picks up the changes, and upload it again:

SoluMake scan messages.ntp
SoluMake upload -username:john@example.com -password:secret -wait messages.ntp

The cloud project is updated to match your local one, and translations that exist only in the cloud so far are kept. Translate the new and changed strings in Translate, then download and build again. In a build script, run download and build before you package your application, so it always gets the latest translations.

See How to use Soluling Cloud to create and build projects for more about SoluMake and the cloud, including the delete command that removes a cloud project.

Add users

So far you've done everything yourself. Usually other people translate or review - and they don't need your password or a copy of the files: give them access to your Soluling Cloud account or to one project, and they work in the same Translate with their own Soluling account. There are two ways to do it:

Add a user to your account

On the dashboard, go to the Users section - it lists you as the account's owner - and click Add a user. Then:

  • Enter the person's Email and Name.
  • Choose their Role - each role's description is shown as you pick it:
    • Account Admin - full access, the same as the owner: every project, user and invitation, and the account itself.
    • Project Manager - the same, except they can't delete the account or add other Account Admins and Project Managers.
    • Translation Manager - adds and manages Translator and Tester users and their rates, but not projects.
    • Translator - translates all of the account's projects, in the languages of their language pairs.
    • Tester - tests and reviews the translations of all of the account's projects, in the languages of their language pairs.
  • For a Translator or Tester, add their language pairs - for this tutorial, Source English and Target Finnish. The pairs decide which languages they can work on: with English → Finnish they see and translate only the Finnish translations of projects whose original language is English. Price per word and Currency are optional - fill them in if you pay them per word.

Click Add. If the email address already has a Soluling account, the person is added right away. If not, they get an email invitation (Invitation to translate a project) and are shown as invited in the Users section; once they open the link, create their account and accept, they become a user of your account. Use the user's edit and delete buttons in the same section to change their role and language pairs later, or remove them.

Invite someone to one project

Open the project's Manage page and, in its Languages and Invitations section, click Invite. Then:

  • Enter the person's Name and Email, and choose their role.
  • Under Languages, check the languages they may translate - say Finnish. Under Read-only languages, check any they should see but not change, e.g. Swedish as a reference.
  • Leave Whole account unchecked - checking it turns this into the same account-wide access Add a user gives.

Click Invite. The person gets the same kind of email invitation; after accepting it (and creating a Soluling account if they don't have one yet) they're offered a link that opens the project straight in Translate.

What translators see

Translators and testers sign in to Translate with their own account and pick the project from their project list - only the projects they have access to are listed. They can translate the languages their language pairs or invitation allow; any other language is either read-only or not shown at all, and the project's own settings, files and users stay yours to manage. You see their work in the same project as soon as they save it, and get it in the localized files the next time you build and download them.