Difference between revisions of "LocalyzerQA"

From Lingoport Wiki
Jump to: navigation, search
(Introduction)
(Configuration)
 
(53 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
 
== Introduction ==
 
== Introduction ==
  +
=== LocalyzerQA Video ===
  +
The 4'30" video below introduces LocalyzerQA
  +
* https://vimeo.com/502773426
  +
For supported versions, please see:
  +
[[Lingoport_Suite_Installation#Supported_Versions]]
  +
 
=== Linguistic Review Made Easy ===
 
=== Linguistic Review Made Easy ===
Lingoport Localyzer facilitates the process of translating resource file (properties, resx, json, etc.). LocalyzerQA is focused on the Linguistic Review process of a running application with translations. A Linguistic Reviewer may be a application specialist who is native in a language, an in-country in-company person, a member of a localization team, a member of a translation team.
+
Lingoport '''Localyzer''' facilitates the process of translating resource file (properties, resx, json, etc.). '''LocalyzerQA''' is focused on the Linguistic Review process of a running application after translation. A Linguistic Reviewer may be an application specialist who is native in a language, an in-country in-company person, a member of a localization team, or a member of a translation team.
   
Without LocalyzerQA, the linguist review process tends to be cumbersome. ''For example,'' Linguistic Reviewers may navigate the application based on an email sent by the dev team, then when finding an issue screen shot the page, highlight the text to be corrected, open a defect in a bug tracking system, assign it to a manager who will then have to find which team/dev/repository that may belong to, have a developer (who is busy with feature development) figure out where the error is located for a string in a language they most likely don't speak and may not even read (think Chinese or Japanese for an English speaker), send the file with a correction via email to a language service provider; The language service provider team then needs to handle that retranslation, start a workflow, assign that correction, return the correction, send the correction some time later back to the dev team (which may be busy with some other tasks), figure from the email where to push the file back, and finally have a correction in the repo. This tends to take days.
+
Without LocalyzerQA, the linguistic review process tends to be cumbersome. ''For example,'' Linguistic Reviewers may navigate the application based on an email sent by the dev team, then when finding an issue: screen shot the page, highlight the text to be corrected, open a defect in a bug tracking system, assign it to a manager who will then have to find which team/dev/repository that may belong to, have a developer (who is busy with feature development) figure out where the error is located for a string in a language they most likely don't speak and may not even read (think Chinese or Japanese for an English speaker), and send the file with a correction via email to a language service provider. The language service provider team then needs to handle that retranslation: start a workflow, assign that correction, return the correction, send the correction some time later back to the dev team (which may be busy with some other tasks), figure from the email where to push the file back, and finally have a correction in the repo. This tends to take days.
   
With LocalyzerQA, this process takes minutes and does not involve developers.
+
With LocalyzerQA, this process takes minutes and does not involve developers.
  +
  +
== User Guide ==
  +
=== Prerequisite ===
  +
Before using LocalyzerQA, Localyzer must be configured with Trackback Localize. see
  +
* [[On_Boarding_a_Localyzer_Project#Pseudo-Localize_and.2For_Trackback]]
  +
  +
=== Configuration / Managers ===
  +
*[[LocalyzerQA Configuration]]
  +
  +
=== Executing a Linguistic Review / Linguists and Managers ===
  +
*[[LocalyzerQA Linguist Review]]
  +
  +
== LocalyzerQA Main Concepts ==
   
 
=== Users: Managers and Linguists ===
 
=== Users: Managers and Linguists ===
 
Users in LocalyzerQA can have two roles:
 
Users in LocalyzerQA can have two roles:
* Manager: They set up other Managers and Linguists, Applications, Review, and Tasks, and assign and perform Tasks
+
* Manager: They set up other Managers and Linguists, Applications, Review, and Tasks, and assign and perform Tasks.
 
* Linguist: They execute Tasks, i.e. they do the review for a locale (a task) as per the manager's instructions for that review.
 
* Linguist: They execute Tasks, i.e. they do the review for a locale (a task) as per the manager's instructions for that review.
   
Line 28: Line 46:
   
 
=== Localyzer Trackback locale ===
 
=== Localyzer Trackback locale ===
Localyzer creates trackback files for a configured locales, by default 'ia' or Interlingua. (The reason for this default locale is that most browsers support interlingua and interlingua is not an actual market locale for typical application. The trackback files contain a key and the original source text. The key allows the system to identify the resource in a repository, branch, resource files on-boarded in Localyzer.
+
Localyzer creates trackback files for a configured locale, by default 'ia' or Interlingua. (The reason for this default locale is that most browsers support interlingua and interlingua is not an actual market locale for typical application.) The trackback files contain a key and the original source text. The key allows the system to identify the resource in a repository, branch, resource file on-boarded in Localyzer.
   
For example, if, for a UI label, the original messages.properties files contains
+
For example, if, for a UI label,
<code>welcome.title=Welcome</code>
+
* the original '''messages.properties''' files contains <code>welcome.title=Welcome</code>
   
a typical translated file, say French, would have the translated messages_fr.properties file with
+
* a typical translated file, say French, would have the translated '''messages_fr.properties''' file with <code>welcome.title=Bienvenue</code>
<code>welcome.title=Bienvenue</code>
 
   
and the trackback file messages_ia.properties would have
+
* and the trackback file '''messages_ia.properties''' would have <code>welcome.title=143.9278 Welcome</code>
<code>welcome.title=143.9278 Welcome</code>
 
   
 
The UI label would display:
 
The UI label would display:
Line 51: Line 67:
 
* [[LocalyzerQAEncodingError]]
 
* [[LocalyzerQAEncodingError]]
 
* [[LocalyzerQANotFoundParameter]]
 
* [[LocalyzerQANotFoundParameter]]
* [[LocalyzerQAUnknowError]]
+
* [[LocalyzerQAUnknownError]]
 
* [[LocalyzerQANotFound]]
 
* [[LocalyzerQANotFound]]
 
* [[LocalyzerQAIcuMsgformatError]]
 
* [[LocalyzerQAIcuMsgformatError]]
  +
* [[LocalyzerQAUnknownFormatError]]
* [[LocalyzerQAUnknowFormatError]]
 
 
* [[LocalyzerQAFileTooBig]]
 
* [[LocalyzerQAFileTooBig]]
 
* [[LocalyzerQANonWritableFile]]
 
* [[LocalyzerQANonWritableFile]]
  +
  +
= LocalyzerQA Release Notes =
  +
For supported versions, please see:
  +
[[Lingoport_Suite_Installation#Supported_Versions]]
  +
  +
[[LocalyzerQA Release Notes]]
  +
  +
= Licensing =
  +
[[LocalyzerQA License]]
  +
  +
= New LocalyzerQA Installation =
  +
  +
==Create the database conf file==
  +
Use the default user for Docker which is /home/centos for CentOS systems and /home/ec2-user for RedHat virtual systems. The mysql and conf.d folders may need to be created as well.
  +
  +
vi /home/<user>/mysql/conf.d/mysql.cnf
  +
  +
[client]
  +
default-character-set = utf8mb4
  +
[mysql]
  +
default-character-set = utf8mb4
  +
  +
== Configuration ==
  +
  +
Request the ''LocalyzerQAInstall.zip'' file from your customer success engineer. The zip file contains four files:
  +
  +
install.conf
  +
InstallLocalyzerQA.sh
  +
UninstallLocalyzerQA.sh
  +
UpdateLocalyzerQA.sh
  +
  +
Copy the above files under your home directory, ''for instance'' <code><user>/localyzerQAInstall</code> where <user> may be <code>/home/centos</code> or <code>/home/ec2-user</code>.
  +
  +
===Set up install.conf ===
  +
  +
Fill in your home directory, DB password, serverURL and port number, your Docker Hub username and token. The initial version number will be provided for the first installation. For updates, this will be the only parameter to change in the <code>install.conf</code> file.
  +
  +
==Run InstallCommandCenter.sh==
  +
  +
chmod +x InstallLocalyzerQA.sh
  +
sudo ./InstallLocalyzerQA.sh
  +
  +
To check the running container status
  +
  +
sudo docker ps
  +
  +
If you need to re-run the InstallLocalyzerQA.sh, make sure to run UninstallLocalyzerQA.sh first to clean your environment.
  +
  +
Note: Docker image version is not the Command Center version, check latest docker image version at https://hub.docker.com/repository/docker/lingoport/localyzerqa/general
  +
  +
You should see at least an MySQL and a LocalyzerQA container running.
  +
  +
  +
  +
  +
  +
  +
= LocalyzerQAUpdate =
  +
==Update install.conf ==
  +
  +
Change the ''version number'' in the install.conf to get the LocalyzerQA image update version.
  +
  +
localyzerqa_image_version=<new version number>
  +
  +
  +
====Run UpdateCommandCenter.sh====
  +
  +
chmod +x UpdateLocalyzerQA.sh
  +
sudo ./UpdateLocalyzerQA.sh
  +
  +
To check the running container status
  +
  +
sudo docker ps
  +
  +
= Start and Stop System =
  +
* From Command Center, as an administrator, go to settings and click 'Restart'
  +
* From the VM, use docker commands to stop or start Command Center. For example:
  +
  +
sudo docker ps
  +
sudo docker stop <hash>
  +
sudo docker ps
  +
  +
sudo docker container ls -a | grep command
  +
sudo docker start <hash>
  +
sudo docker ps
  +
  +
  +
= Uninstall =
  +
  +
sudo ./UninstallLocalyzerQA.sh
  +
Uninstalling the LocalyzerQA Servers ...
  +
  +
sudo docker ps
  +
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  +
  +
= FAQ and Troubleshooting =
  +
  +
== Make sure the Server URL is reachable ==
  +
Navigate to the server URL set up in <code>install.conf</code>: is the login screen available?
  +
  +
If it is not, first check that the docker container is up and running. Make sure both <code>lingoport/localyzerqa</code> and <code>mysql</code> are running.
  +
  +
sudo docker container ls -a
  +
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  +
3d9da7a80e0a '''lingoport/localyzerqa''':80 "catalina.sh run" 3 days ago Up 6 hours 0.0.0.0:8082->8080/tcp, :::8082->8080/tcp pedantic_aryabhata
  +
683c55907c06 '''mysql''':5.7 "docker-entrypoint.s…" 3 days ago Up 6 hours 3306/tcp, 33060/tcp quizzical_newton
  +
  +
Check with IT that the DNS for that system is correct.
  +
  +
Check with IT that the firewall allows for reaching the URL from your system.
  +
  +
Ask IT to check the https and the server URL / DNS.

Latest revision as of 18:55, 9 November 2023

Introduction

LocalyzerQA Video

The 4'30" video below introduces LocalyzerQA

For supported versions, please see: Lingoport_Suite_Installation#Supported_Versions

Linguistic Review Made Easy

Lingoport Localyzer facilitates the process of translating resource file (properties, resx, json, etc.). LocalyzerQA is focused on the Linguistic Review process of a running application after translation. A Linguistic Reviewer may be an application specialist who is native in a language, an in-country in-company person, a member of a localization team, or a member of a translation team.

Without LocalyzerQA, the linguistic review process tends to be cumbersome. For example, Linguistic Reviewers may navigate the application based on an email sent by the dev team, then when finding an issue: screen shot the page, highlight the text to be corrected, open a defect in a bug tracking system, assign it to a manager who will then have to find which team/dev/repository that may belong to, have a developer (who is busy with feature development) figure out where the error is located for a string in a language they most likely don't speak and may not even read (think Chinese or Japanese for an English speaker), and send the file with a correction via email to a language service provider. The language service provider team then needs to handle that retranslation: start a workflow, assign that correction, return the correction, send the correction some time later back to the dev team (which may be busy with some other tasks), figure from the email where to push the file back, and finally have a correction in the repo. This tends to take days.

With LocalyzerQA, this process takes minutes and does not involve developers.

User Guide

Prerequisite

Before using LocalyzerQA, Localyzer must be configured with Trackback Localize. see

Configuration / Managers

Executing a Linguistic Review / Linguists and Managers

LocalyzerQA Main Concepts

Users: Managers and Linguists

Users in LocalyzerQA can have two roles:

  • Manager: They set up other Managers and Linguists, Applications, Review, and Tasks, and assign and perform Tasks.
  • Linguist: They execute Tasks, i.e. they do the review for a locale (a task) as per the manager's instructions for that review.

Applications

An application is what the Linguists (and Managers) will review. It can be a Web Application, or a Device based application, any application that Localyzer has on-boarded for translation. An application configuration includes the list of target locales.

Reviews

A Review is a set of directive which can be applied to an application. An application can have reviews for a small increment of development, like a sprint, or part of an application, like the registration pages, or an initial full application review, or an ad-hoc spot check. The same review applies to all or some of the locales in the application.

Just like for the functional QA of an application, a review is assigned to a user (a Manager or a Linguist) for execution.

Tasks

A task is a review for a locale. A French linguist should not review the Japanese application. So for a given review, the French task will be assigned to a French linguist, the Japanese task to a Japanese linguist.

Post Edits

The post edits are the corrections made by the linguists for a task. Post edits are handled automatically by the Localyzer backend.

Localyzer Trackback locale

Localyzer creates trackback files for a configured locale, by default 'ia' or Interlingua. (The reason for this default locale is that most browsers support interlingua and interlingua is not an actual market locale for typical application.) The trackback files contain a key and the original source text. The key allows the system to identify the resource in a repository, branch, resource file on-boarded in Localyzer.

For example, if, for a UI label,

  • the original messages.properties files contains welcome.title=Welcome
  • a typical translated file, say French, would have the translated messages_fr.properties file with welcome.title=Bienvenue
  • and the trackback file messages_ia.properties would have welcome.title=143.9278 Welcome

The UI label would display:

  • Welcome when the locale is set to English,
  • Bienvenue when the locale is set to French,
  • 143.9278 Welcome when the locale is set to Interlingua

Handling Errors

LocalyzerQA Release Notes

For supported versions, please see: Lingoport_Suite_Installation#Supported_Versions

LocalyzerQA Release Notes

Licensing

LocalyzerQA License

New LocalyzerQA Installation

Create the database conf file

Use the default user for Docker which is /home/centos for CentOS systems and /home/ec2-user for RedHat virtual systems. The mysql and conf.d folders may need to be created as well.

vi /home/<user>/mysql/conf.d/mysql.cnf
   [client]
   default-character-set = utf8mb4
   [mysql]
   default-character-set = utf8mb4

Configuration

Request the LocalyzerQAInstall.zip file from your customer success engineer. The zip file contains four files:

   install.conf
   InstallLocalyzerQA.sh
   UninstallLocalyzerQA.sh
   UpdateLocalyzerQA.sh

Copy the above files under your home directory, for instance <user>/localyzerQAInstall where <user> may be /home/centos or /home/ec2-user.

Set up install.conf

Fill in your home directory, DB password, serverURL and port number, your Docker Hub username and token. The initial version number will be provided for the first installation. For updates, this will be the only parameter to change in the install.conf file.

Run InstallCommandCenter.sh

    chmod +x InstallLocalyzerQA.sh
    sudo ./InstallLocalyzerQA.sh

To check the running container status

   sudo docker ps

If you need to re-run the InstallLocalyzerQA.sh, make sure to run UninstallLocalyzerQA.sh first to clean your environment.

Note: Docker image version is not the Command Center version, check latest docker image version at https://hub.docker.com/repository/docker/lingoport/localyzerqa/general

You should see at least an MySQL and a LocalyzerQA container running.




LocalyzerQAUpdate

Update install.conf

Change the version number in the install.conf to get the LocalyzerQA image update version.

 localyzerqa_image_version=<new version number>


Run UpdateCommandCenter.sh

    chmod +x UpdateLocalyzerQA.sh
    sudo ./UpdateLocalyzerQA.sh

To check the running container status

   sudo docker ps

Start and Stop System

  • From Command Center, as an administrator, go to settings and click 'Restart'
  • From the VM, use docker commands to stop or start Command Center. For example:
   sudo docker ps
   sudo docker stop <hash>
   sudo docker ps
   
   sudo docker container ls -a | grep command
   sudo docker start <hash>
   sudo docker ps


Uninstall

 sudo ./UninstallLocalyzerQA.sh
 Uninstalling the LocalyzerQA Servers ...
 sudo docker ps
 CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

FAQ and Troubleshooting

Make sure the Server URL is reachable

Navigate to the server URL set up in install.conf: is the login screen available?

If it is not, first check that the docker container is up and running. Make sure both lingoport/localyzerqa and mysql are running.

 sudo docker container ls -a 
 CONTAINER ID   IMAGE                         COMMAND                  CREATED      STATUS       PORTS                                       NAMES
 3d9da7a80e0a   lingoport/localyzerqa:80   "catalina.sh run"        3 days ago   Up 6 hours   0.0.0.0:8082->8080/tcp, :::8082->8080/tcp   pedantic_aryabhata
 683c55907c06   mysql:5.7                     "docker-entrypoint.s…"   3 days ago   Up 6 hours   3306/tcp, 33060/tcp                         quizzical_newton

Check with IT that the DNS for that system is correct.

Check with IT that the firewall allows for reaching the URL from your system.

Ask IT to check the https and the server URL / DNS.