LRM Commands Reference
Contents
Introduction
To invoke a command, you must type java -jar <path-to-jarfile>command.jar -parameters
For instance, on Linux, if the Lingoport Resource Manager Command Line Interface jar file is located under ~/lingoport/lrm-server-2.0
(the default location) and you want to list the Resource Manager projects, you would type:
java -jar ~/lingoport/lrm-server-2.0/lrm-cli.jar --list-projects
Each command also has an abbreviation. The long version of each command starts with two dashes, --
. The short version of each command starts with one dash, -
.
For example, the previous example could have been written:
java -jar ~/lingoport/lrm-server-2.0/lrm-cli.jar -lp
To Note
The help provides a list of all available commands. The debug
and the verbose
flags can be applied to all commands.
-d,--debug Log4j Debug mode -v,--verbose Verbose (console logging) -h,--help Displays Help.
Reference
This reference gives the short and the long version of each Resource Manager command and a usage example.
-ak,--activate-kit Activate a kit. Example: lrm-cli.jar -ak --project-name MyProject --kit-version 2 -au,--add-user Add a user. Example: lrm-cli.jar -au --new-name MyName --new-password MyPassword -cp,--create-project Create a project from an xml file. Example: lrm-cli.jar -cp -f C:/MyLocation/Setup.xml -d,--debug Log4j Debug mode -dk,--deactivate-kit Deactivate a specific kit. Example: lrm-cli.jar -dk --project-name MyProject --kit-version 2 -dp,--delete-project Delete a project. Example: lrm-cli.jar -dp --project-name MyProject -dr,--dry-run Optional argument for --prep-kit. Runs --prep-kit without altering the database. -ep,--export-project Export the project into an xml file. If option `-f` is not specified then the xml file is saved to the default report directory. Example: lrm-cli.jar -ep -f <string> Location of file (-f C:/MyLocation) or file name with path (-f C:/myfolder/myfile.xml) -h,--help Displays Help. -ii,--import-issues Report on all the active import issues. Example lrm-cli.jar -r -ii -pn MyProjectName -ik,--import-kit Import the translated kit. Example: lrm-cli.jar -ik -pn MyProject -f C:/KitLocation -ks,--kit-status Report on all the incomplete and complete kits. Example lrm-cli.jar -r -ks -pn MyProjectName -ksi,--kit-status-incomplete Report on all the incomplete kits. Example lrm-cli.jar -r -ksi -pn MyProjectName -kv,--kit-version <number> Specifies the kit version id when activating or deactivating a kit. -lp,--list-projects Lists all the projects to the console. Example: lrm-cli.jar -lp -nn,--new-name <string> Specifies either the new project name when renaming a project (-rp) or the user name when adding a user (-au). -np,--new-password <string> Specifies the password when adding a user (-au). -p,--password <string> Optional argument used to log into the LRM system as a different user than indicated in the LrmUserConfig.xml file. -pi,--project-inspect Report on all the files that were found using the project definition for the supplied project name. Example: lrm-cli.jar -r -pi -pn MyProjectName -pk,--prep-kit Prep a kit. Example: lrm-cli.jar -pk --project-name MyProject -pn,--project-name <string> Specifies the project name. -ps,--project-status Report on the productivity and status of the supplied project name. Example lrm-cli.jar -r -ps -pn MyProjectName -r,--report Run a report that is specified by an additional option. If option `-f` is not specified then the report is saved to the default report directory. Example: lrm-cli.jar -r <report option> -rp,--rename-project Rename a project. Example: lrm-cli.jar -rp --project-name projectName --new-name NewName -si,--source-issues Report on the source issues for the supplied project name. Example: lrm-cli.jar -r -si -pn MyProjectName -u,--user <string> Optional argument used to log into the LRM system as a different user than indicated in the LrmUserConfig.xml file. -up,--update-project Update a project from an xml file. Example: lrm-cli.jar -up -f C:/MyLocation/Setup.xml -v,--verbose Verbose (console logging)
Commands to Know
These commands are necessary to on-board a project and to handle licensing.
To make things easier, set up an alias for the command. The examples below will be using the lrm alias
On Unix:
alias lrm='java -jar ~/lingoport/lrm-server-2.0/lrm-cli.jar'
lrm --version
In Windows:
set "LRM=java -jar C:\Lingoport\LRM-Server-2.0\lrm-cli.jar"
%LRM% --version
To get help, use the --help (or -h) option:
java -jar ~/lingoport/lrm-server-2.0/lrm-cli.jar --help
Create a project
lrm --create-project -f <path to proj.xml file>
For example:
lrm -cp -f projects/MyProject.xml
The -f
is the location of the project description file. The project description file must contain a <group-name> stanza and a <project-name> stanza otherwise the creation will fail. The <top-level-dir> is the path to the source code for this LRM Project.
<project-name>MyProject</project-name>
<group-name>Blue</group-name>
<project-desc>This project contains resource files of all types for baseline testing</project-desc>
<top-level-dir>Lingoport\test\MyProject\resources\</top-level-dir>
<target-locales
<locale>de_DE</locale>
<locale>fr_FR</locale>
<locale>zh_CN</locale>
</target-locales>
To see if there are multiple groups:
lrm --list-groups
To create a project when there are multiple groups use the -gn
option. The group name must match that in the MyProject.xml file.
lrm -cp -f projects/MyProject.xml -gn <group-name>
To verify that the project was created in a group. If there is only one group the -gn
is optional:
lrm -lp -gn <group-name>
Update a project
After creating a project, there may be times when you want to change some of the LRM options and resources. To update the options:
- Export the project to create the ProjectDefinition.xml file
- Modify the ProjectDefinition.xml file
- Inspect the project to verify the changes.
- Update the project to use the new changes.
First, export the project. This will create a file ProjectDefinition.xml in the reports area. The default location for the reports directory is ~/Lingoport_Data/LRM/<group-name>/reports/<project>
. The -f option can be used to create the ProjectDefinition.xml file in a different location. The --group-name is optional if there is only one group defined.
lrm --export-project --project-name <project> --group-name <group-name>
For example:
lrm -ep -pn MyProject -gn Blue
or
lrm -ep -pn MyProject -f /var/tmp -gn Blue
Next, modify the ProjectDefinition.xml file. The file can be modified to detect or skip various errors, which target locales to create and define the resources and their extensions. The file can also be modified to exclude various files in the search.
To verify the changes, run a Project Inspection report. This creates ProjectInspect_xx_YY.xml (where xx_YY are locale identifiers) files in the default location at ~/Lingoport_Data/LRM/<group-name>/reports/<project>
. The -f option can be used to create the ProjectInspect_xx_YY.xml files in a different location. The --group-name is optional if there is only one group defined.
lrm --report --project-inspect --project-name <project> --group-name <group-name>
For example:
lrm -r -pi -pn MyProject -gn Blue
or
lrm -r -pi -pn MyProject -f /var/tmp -gn Blue
Finally, update the project using the --update-project option.
lrm --update-project -f <location of ProjectDefinition.xml>
For example:
lrm -up -f Lingoport_Data/LRM/<group-name>/reports/<project>/ProjectDefinition.xml
or
lrm -ep -pn MyProject -f /var/tmp/ProjectDefinition.xml
Delete project
A project can be deleted if no prep kits have been created. The -gn flag is optional if there is only one group defined.
lrm --delete-project --project-name <Project> --group-name <group-name>
For example:
lrm -dp -pn MyProject -gn Blue
Create a group
When creating a group, you must have the license associated with the group. Sometimes, the group is referred to as the company. These terms in Lingoport Resource Manager are interchangeable. If you do not have a license, contact support@lingoport.com. With the license you will have the following information:
- The group name (-gn)
- The number of licenses (-nl) - this determines how many projects you can create under this group.
- The expiration date (-dt)
- The license key (-lkey) - a 10-digit code provided by Lingoport
lrm --create-group --group-name <group-name> --number-of-licenses <number of licenses> --date <expiration-date> -license-key <license key>
For example:
lrm --create-group -gn Blue -nl 10 -dt 2016-12-31 -lkey 1234567890
To verify that the group was created successfully, use the --list-groups option. This will show the options used to create the group.
lrm -lg
Name Max Project Exp Date Days Left
Blue 10 2016-12-31 452
Process completed successfully.
Update a license
If the expiration date for a license passes or there are more projects than the licensed number, a new license can be generated. Contact support@lingoport.com to get a new license. Just like when creating a new group, the following information is needed. The license key will be different than the one previously issued by Lingoport.
- The group name (-gn)
- The number of licenses (-nl) - this determines how many projects you can create under this group.
- The expiration date (-dt)
- The license key (-lkey) - a 10-digit code provided by Lingoport
lrm --update-license --group-name <group-name> --number-of-licenses <number of licenses> -date <expiration date> --license-key <license key>
For example:
lrm -ul -gn Blue -nl 100 -dt 2016-12-31 -lkey 9987654321
To verify the change, use the --list-groups command
lrm -lg
Name Max Project Exp Date Days Left
Blue 100 2016-12-31 452
Process completed successfully.
Create reports
A number of LRM commands will create reports which can assist with creating prep kits and determining problems. Reports are run using the -r option followed by the report to be created in the default location at ~/Lingoport_Data/LRM/<group-name>/reports/<project>
. The -f option can be used to create the report files in different locations. The --group-name is optional if there is only one group defined. Many of the reports created are the same reports used to populate the Lingoport Dashboard.
lrm --report <report option> --project-name <Project> -group-name <group-name>
Files to Prep
Creates the FilesToPrep.xml file.
lrm --report --files-to-prep --project-name <Project> --group-name <group-name>
For example:
lrm -r -fp -pn MyProject -gn Blue
Import Issues
Creates the TranslationIssues.xml file for the active import issues.
lrm --report --import-issues --project-name <Project> --group-name <group-name>
For example:
lrm -r -ii -pn MyProject -gn Blue
Kit Status
Creates the PrepKitStatus.xml file.
lrm --report --kit-status --project-name <Project> --group-name <group-name>
For example:
lrm -r -ks -pn MyProject -gn Blue
Incomplete Kit Status
Creates the IncompletePrepKit.xml file.
lrm --report --kit-status-incomplete --project-name <Project> --group-name <group-name>
For example:
lrm -r -ksi -pn MyProject -gn Blue
Inspect Project
Creates the ProjectInspect_<locale>.xml files.
lrm --report --project-inspect --project-name <Project> --group-name <group-name>
For example:
lrm -r -pi -pn MyProject -gn Blue
Project Status
Creates the TranslationStatus.xml file.
lrm --report --project-status --project-name <Project> --group-name <group-name>
For example:
lrm -r -ps -pn MyProject -gn Blue
Source Issues
Creates the ResourceIssues.xml file.
lrm --report --source-issues --project-name <Project> --group-name <group-name>
For example:
lrm -r -si -pn MyProject -gn Blue
Working with Prep Kits
With Lingoport Resource Manager 2.0, much of the prep kit work is done by processes run under the Jenkins framework. This section is provided for troubleshooting purposes. For any questions, contact support@lingoport.com
Project Inspection
The first step you'll want to take with your new Lingoport Resource Manager Project is to make sure that LRM is finding all the resource files in your source code tree. We use the --project-inspect command to do this; LRM will search for all resources files described by your project's definitions, and create reports for each target locale, named ProjectInspect<locale>.xml, in your LRM Project's reports folder. The base locale
Base locale: The starting locale which will be translated into the target locales.
Target locale: The resulting translations from the base locale. For example if the base locale is en_US (United States English) and a target locale is fr_FR (France french), the resource files will start in English and be translated into French.
Enter:
lrm --report --project-inspect -pn <project name>
For the base locale, the resulting ProjectInspect<baseLocale>.xml report contains:
- The associated LRM project name and source path
- The locale and whether it is the base locale
- The total number of resource files found
- A listing of each resource file
For each target locale, the resulting ProjectInspect<locale>.xml report contains:
- The associated LRM project name and source path
- The locale and whether it is the base locale
- The total number of resource files based on the number of base resource files
- A listing of each resource file. These files may not currently exist, but will be created once an LRM import is successful
Be sure to check the base locale reports for any errors, including omissions and incorrect duplicate resource files. If you find problems, make sure you have the latest version of your LRM Project's Definition.xml file (use project-export command) and then modify it, possibly adding exclude and include folders to tailor LRM's search for resource files. Once your project-inspect reports are clean, you can run the project-update command to store the latest project definitions. The target locale reports will be a reflection of the base locale report, showing you the resource files that will be created for translation.
Exporting and Updating an LRM project
If you want to update an LRM Project's configuration, you should first run the --export-project command to export the latest configuration settings, make any changes, and then run the --update-project command.
For example:
lrm --export-project --project-name MyProject>
LRM will create a file named ProjectDefinition.xml in your LRM Project's reports folder (<home>/Lingoport_Data/LRM/<group-name>/reports/MyProject
), unless you include the -f option to locate it elsewhere, with all the latest settings associated with your LRM Project. Once you modify this exported xml file, you can run the LRM --update-project command to update the LRM Project's stored configuration:
lrm --update-project -f <home>/Lingoport_Data/LRM/<group-name>/reports/MyProject
Fixing the Project Definition
If, after running the Project Inspect report, you notice that more files need to included or excluded then fix the project definition by running --update-project and then run the Project Inspect report to verify that the expected files are displayed in the report. Run the following commands until the correct files are included and excluded:
lrm --update-project -f <path to the ProjectDefinition.xml file>
lrm -r --project-inspect -pn <Project Name>
Preparing a Kit
A Kit is what we call the set of resource files that are gathered by LRM, set out for translation, and then integrated back into the source code tree once translated. LRM sets and tracks versions of a Kit so that, as your developers add strings to the base resource files, you can prepare and send out the Kit multiple times. There are a variety of checks that LRM makes on the base resource files to ensure that they are correct, as well as tracking the progress and correctness of the translated resource files. Note: If your project contains translated files, then when prepping your first kit, LRM will not be able to detect if a text change has occurred within a resource string. It will, however, be able to detect added keys or missed translations.
Dry Run Kit Preparation
Once LRM Project's set of resource files has been validated using the --project-inspect command, create the first Kit to send out for translation, using the --prep-kit command. However, to make sure that the Kit has no errors, we recommend that first using the --dry-run option. This will go through the steps of Kit creation, including checking for errors, without actually creating the Kit and storing information in the LRM database.
lrm --prep-kit --dry-run --project-name <project name>
The resulting BaseFileSearch<target locale>.xml report files are located in the reports folder (<home>/Lingoport_Data/LRM/<group-name>/reports/MyProject
), unless you include the -f option to locate it elsewhere. Be sure to check all the target locale reports to make sure that the set of resource files is correct. Remember that although the first time you'll be sending out all base resource files for translation, subsequent Kit preparations will only include base resource files that have actually changed since the last time the --prep-kit command was run. In addition, if there are warnings or errors in the base resource files (the default locale), one of these report files will be created: BaseFileSearchErrors<default locale>.xml will contain both errors and warnings; BaseFileSearchWarnings<default locale>.xml will be created if there are only warnings detected. While warnings do not need to be fixed, you must correct all errors in order to create a Kit.
Base resource file errors and warnings detected are:
ENCODING - the base-file-encoding you set in your LRM Project's definitions xml file does not match. You should fix the encoding of the base resource file and run --prep-kit --dry-run again. DUPLICATE_KEY - there is a duplicate string key in the base resource file. Remove the duplicate and run --prep-kit --dry-run again. EMPTY_KEY - the value has no corresponding key. Either remove the value from the file or add the appropriate key. EMPTY_VALUE - the string key in the base resource file is set to an empty string. This is just a warning and will not prevent you from creating and sending out a Kit FILE_TOO_BIG - a base resource file cannot be larger than 16 megabytes. You will need to break up your resource file into multiple files and then run --prep-kit --dry-run again.
In addition to the BaseFileSearch<default locale>.xml report, if you have already run a --prep-kit command and sent files out for translation, then you may also see OutstandingPrepFiles<target locale>.xml reports in the folder. These files will contain all the resource files that have not been received back from translation and subsequently, imported into the source code. If a resource file is 'outstanding' but has changed since the last time it was sent out for translation then it will be included in the prep kit.
If there are duplicate file names, then the report DuplicatePrepFiles<target locale>.xml will be created listing the duplicate file names. This is an indication that another kit will need to be prepared after the current kit has successfully been prepped.
Kit Preparation
With the --dry-run option running successfully, you're ready to prepare a Kit for translation. You do this by running the --prep-kit command with only the LRM project name.
lrm --prep-kit --project-name <project name>
By default, the Kit is created under your 'prep_kit' folder,. Each time you prepare a Kit for your LRM project, LRM will create a folder named PREP_KIT_<version>,(<home>/Lingoport_Data/LRM/<group-name>/prep_kit/MyProject
), with all the latest settings associated with your LRM Project where <version> is the kit version number. For example, if you ran --prep-kit on your LRM Project named MyProject, the first Kit would be created in the folder (<home>/Lingoport_Data/LRM/<group-name>/prep_kit/MyProject/PREP_KIT_1
.
The PREP_KIT_<version> contains:
- A folder for each locale with a copy of each base resource file that has changed since the last time the kit was prepped If the --changes-only option is include with the --prep-kit command then the resource files will contain only the key/value pairs that have changed since the last time the kit was prepped;
- A BaseFileSearch<target locale>.xml file for each locale describing the base files for the kit;
- If LRM detected only warnings in your base resource files, then there will also be a BaseFileSearchWarnings<default locale>.xml file describing the warnings.
- However, if there are errors in the base resource files (rather than just warnings), the PREP_KIT_<version> folder will contain a BaseFileSearchErrors<default locale>.xml file and the kit will not be created. You must correct all errors prior to preparing a kit.
The PREP_KIT_<version> folder is what you send out for translation. The localization vendor will translate the resource files in each of the target locale folders.
Important Note: It is required that the resource files in the target locale folders are translated and returned, maintaining all the other text in the resource files. This is because LRM places a comment tag at the top of each resource file that indicates the LRM Project, Kit version and target locale, which LRM needs during the Kit Import process. An example LRM tag is: MyProjectName_1_5