Introduction

From Lingoport Wiki
Jump to: navigation, search

Overview

The Lingoport Suite encompasses Globalyzer, the Lingoport Resource Manager, and the Lingoport Dashboard. Together the suite enables continuous tracking and updates to the internationalization and localization status of software products.

The Lingoport Suite helps Software Engineering teams with the globalization tasks:

The suite is composed of three integrated components to create & maintain software for any language or cultural format in every release increment.

  • Globalyzer: Identify internationalization (i18n) issues that inhibit localization and global user experience during development: Catch up on i18n technical debt.
  • LRM (Lingoport Resource Manager): Make localization proactive. Detect & manage changes to resource files in your source code. Streamline translation jobs. Automate localization updates between development and translation.
  • Dashboard: The hub of our suite. See it all, drill down, create notifications and manage the process. Bridge gaps between localization & development. Increase visibility and track globalization metrics.

Current versions of Lingoport products and supporting applications


If your Continuous Globalization System is installed using the Stack Installer, these products and applications will be installed via that method. These are minimum versions and anything higher is acceptable.

Date Lingoport Suite Globalyzer LRM Lingoport Dashboard Java JDK MySQL Linux Jenkins Tomcat*
05/01/2017 1.8 5.3 3.2 5.6.6 1.8 5.6 CentOS 7 2.19 7.x
02/01/2017 1.8 5.3 3.1 5.6.1 1.8 5.6 CentOS 7 2.19 7.x
12/15/2016 1.7 5.2 3.1 5.6.1 1.8 5.6 CentOS 7 2.19 7.x

Updated July 2017

*Tomcat is required only for the Globalyzer Server. If a customer chooses to use Lingoport's hosted Globalyzer Server for user administration and rule set creation, the Tomcat requirement is not applicable.

Continuous Globalization System Hardware Requirements

Many of the Lingoport Suite components are installed on the Continuous Globalization System. This includes LRM, Dashboard Server and Dashboard Client, Jenkins, MySQL, and Globalyzer Client.

Element Recommended Minimum
CPU 4
Memory 8 GB
Disk 500 GB

The Globalyzer Server may be hosted by Lingoport, reside on another server, or be installed on the same system. Other Linux and Windows machines may have Globalyzer clients installed.

Lingoport Suite Details

Globalyzer

Lingoport's Globalyzer scans source code for internationalization issues. It uses sets of regular expression based rules ('rule sets') on tokens found by lexers/parsers to detect these issues and to filter false positives. These rule sets are synced and stored on a single server, and may be downloaded onto numerous client applications which perform the source code scans. Please note that the rule sets are only lists of regular expressions, and do not contain any code.

Client applications include a desktop client ("Globalyzer Workbench"), two command line clients ("Globalyzer CLI", "Globalyzer Lite"), and an API that may be used to construct custom programs including Globalyzer code scanning functionality. Client applications may produce scan results in XML, CSV, HTML and Excel formats. The desktop client may also be used to view the results directly. Globalyzer Lite may be integrated into IDEs as an external tool. It may be used to scan files that developers are working on, and will display the scan results in the IDEs console output window.

Globalyzer Server - allows development teams around the world to share and collaborate together using high powered internationalization rule sets during scanning of code. Development Teams can set up their own server, or use Lingoport's Globalyzer Server to set up users and rule sets.

Globalyzer Workbench - provides a fully functional code analysis and editing environment for finding, fixing, testing and reporting on internationalization issues in a wide variety of programming languages. Globalyzer Workbench runs as a stand-alone desktop editor in an Eclipse Environment.

Globalyzer Lite - ideal for scanning code for internationalization issues on the fly and generating corresponding reports. It does not require an external database, therefore multiple instances of Globalyzer Lite can be run concurrently. Globalyzer Lite parses and executes Globalyzer Lite Project Definition XML files. This bypasses the need to create projects and scans using Globalyzer Workbench.

Globalyzer Command Line - create automated Globalyzer scans as part of your continuous integration so that you can report and track internationalization issues over time. There is also a Globalyzer Ant Client, Maven Client and XSL Client.

Globalyzer API - allows you to create Globalyzer projects and scans, execute scans, and generate reports from a Java program.

Lingoport Resource Manager (LRM)

The Lingoport Resource Manager (LRM) manages resource files, which contain application text as key-value pairs (the keys are used in the application to retrieve the associated text). Resource files are typically translated across languages as part of the localization process. LRM is used to determine the translation status of these resource files. It also automates the process of sending text out to translation vendors when changes are made to be base (usually English) application text. LRM is often used in Jenkins scripts to automate translation.

LRM also performs various checks regarding the resource files. These checks include confirmation of file integrity, detection of duplicate or missing keys, and numerous other validations. When a translation vendor returns translated text for these resource files, LRM will detect the new content and perform its validations. If the validations pass then LRM will merge the new translations into appropriate resource files and check these in to source control. The check-in is typically done on a dedicated localization branch.

LRM Server - this term is used interchangeably with LRM.

LRM Database - the MySQL database used by LRM to manage resource files and translation status. The database is created when LRM Server is installed.

Lingoport Dashboard

The Lingoport Dashboard displays the internationalization and localization status of software projects. It consists of a client and a web server application. The client scans source code and reads in XML reports generated by Globalyzer and the Lingoport Resource Manager (LRM). It then sends the information to the web server. The web server, built on the SonarQube platform, displays the information in an easy to digest fashion. This information includes all detected internationalization issues, which may be viewed in source code - with the affected line(s) highlighted. The translation status, translation history, and current translation efforts for projects are also displayed.

Dashboard Server - displays the results of Globalyzer scans and/or the Lingoport Resource Manager (LRM) status in a web browser.

Dashboard Client - analyzes source code with Globalyzer and/or with LRM and uploads the report information to the Dashboard Server for display.

Stack Installer

The Lingoport Stack Installer and the Stack Updater is an automated tool to install, or update, and configure the Continuous Globalization System and the Lingoport Dashboard Server and Client. It installs and configures prerequisite software programs and then installs LRM, Globalyzer client, and Lingoport Dashboard.

An Example of the Lingoport Suite

The Lingoport Dashboard

Dashboard home.jpg

Here is an example of the Lingoport Dashboard. This is the Dashboard Home page which shows several Lingoport Projects defined. For the project CET.NOAAWeather, there are 144 Globalyzer Issues, it is 97.7% complete. The project uses LRM and is 93.0% completely translated.

If CET.NOAAWeather is selected, we open a more detailed overview of the Lingoport Suite functions.


Lingoport Overview

Dashboard overview2.jpg

Notice at the top of this screen that it says that it is the Lingoport Overview. This shows the summary of the Globalyzer Scan and the Resource Manager (LRM) status.

This shows that the Globalyzer Scan looked at 110 files in 22 directories for a total of 8027 lines.

The Globalyzer Issues that were identified were Concatenations and Locale Sensitive Methods.

The Resource Manager (LRM) shows 1 Base Resource File to be translated into 4 Target Locales and it is 93% Complete.

From the Dashboards pulldown under the CET.NOAAWeather project name, I can get more detail about the Globalyzer and LRM status.


Resource Manager

Dashboard lrm.jpg

This screen shows the details for the Resource Manager (LRM) status for project CET.NOAAWeather.

Notice the Resource Manager Completion Report in the lower right side. This shows the 4 locales and each of them are 93% completely translated. There is 1 file with 4 keys and 14 words that need to be translated for each locale.

The Next Prep Kit Content, there are no new files to send to translation. This indicates that the base resource file has not changed since the last kit.

In Prep Kit Due Dates, there are two prep kits (number 3 and 4) that are outstanding. The prep kits are at the translation vendor and they are 2 days late returning.


Globalyzer

Dashboard globalyzer2.jpg

The Globalyzer screen shows more of the details of the Globalyzer Scans. For this example, looking at the Globalyzer Scans at the bottom left of the screen, we see that only one scan was done. It was a scan named java based on the Rule Set named java05182016 which found 144 issues in 6154 lines and 65 files.

These issues are identified as Major, Critical or Minor in the Globalyzer Issues pie chart.

If Issues is selected under CET.NOAAWeather, more detail of the identified issues can be seen.


Issues

Dashboard issue.jpg

The Issues page shows all the selected issues. In this case, it is showing 160 issues, all of the Globalyzer (144) and LRM (16) issues.

For the issue at the top of the screen, the file ImageTask.java has a Locale Sensitive Method issue with the use of the java.lang.String method toLowerCase. Selecting the file will show the issue in the code.