We recently switched to Memsource from a legacy system which simply wasn’t doing the job we need it do. Memsource is one of several companies that offer a cloud platform for translation.

A major factor in the decision was the automation API the company offers with most of its plans. The API is clean and well documented. Unless binaries are exchanged, it returns JSON responses. They offer an automation widget out of the box for our interaction with translation clients. The widget simply works, but we wanted to give a customer greater flexibility and decided to write a small API-based interface.

The result of this undertaking can be seen in the two screenshots below. The interface allows a VigourSoft customer to select a project template, which has been set up on the server and includes any translation memories, termbases, and various other project properties.

The top part of the interface allows a customer to create a new empty project based on a selected template (project settings), to specify a project name, and to add a short note. The part labeled “Upload zip file to selected project” is where a customer selects the desired target project and uploads a zip file with source files for translation.

The third box, finally, automatically displays the current jobs in the selected project with the target languages and the work status. There, the customer can select a file and download it in the same manner as users download any other document from the internet.

There are only a few things to consider for developing a tool like this. The basic issue is authentication. For Memsource, the requirement is: Most APIs require an authenticated user who is identified by a token. To obtain a token, call the following API and use the returned value in all subsequent calls. Each token is valid for 24 hours. The Vigoursoft tool uses a cookie to store a token for the 24 hour period of validity. A hidden html form with a login dialog will display the first time a token is needed and subsequently when the current one has expired.

So, once a token has been retrieved, the login form will get out of the way until it is needed again, thus giving us optimal use of the screen real estate.

The code is standard javascript. It does not use any external libraries, and the size of this implementation is about 16KB, without an effort to optimize the code.

 

Leave a Reply

Your email address will not be published. Required fields are marked *