Skip to content

Latest commit

 

History

History
55 lines (42 loc) · 2.9 KB

README.md

File metadata and controls

55 lines (42 loc) · 2.9 KB

i18n-scripts

The i18n-scripts folder contains all homebrewed scripts for i18n workflow automation in OpenShift.

Languages

The list of languages we're using are stored in languages.sh. All scripts that rely on language information import this variable, and it should be updated whenever OpenShift gains support for an additional language.

Memsource Automation

We have created two scripts to handle pushing and pulling translations to/from Memsource, the tool the Red Hat Globalization team uses for translation jobs.

Before running either tool, you must first install the unofficial Memsource CLI client. You also have to configure it with your Memsource login info.

Once your login info is configured, you should be able to log in by running source ~/.memsourcerc.

Example CLI usage for upload script: yarn memsource-upload -v 4.8 -s 200

  • -v is the current OpenShift version
  • -s is the current sprint number

Example CLI usage for download script: yarn memsource-download -p 6sB6qwpbRkGCeBQq4hUyK1

Build

build-i18n.sh runs as part of the general yarn i18n command workflow. This script runs the i18next parser across the entire codebase and generates json files based on the marked keys in the application.

Folder Consolidation

consolidate-public-folders.js runs as part of the general yarn i18n command workflow. The goal of the script is to consolidate all json files across the application with the name "public" into a single json file in the public folder. This is required to avoid namespace conflicts, as i18next requires unique namespaces.

English Defaults

set-english-defaults.js runs as part of the general yarn i18n command workflow. This script programmatically adds values for each new key in a json file after the parser is run. The goal of this script was to save developers time and minimize errors, as it saves developers from having to manually edit json files most of the time. In some cases, such as complex pluralization, manual edits will be required.

Export

export-pos.sh is a utility for Memsource automation. It exports all i18next json files in PO format in all the languages we currently support, so we can hand them off to the translation team.

i18n-to-PO

i18n-to-po.js is a utility for Memsource automation. It is used by export-pos.sh to export individual files.

PO-to-i18n

po-to-i18n.js is a utility for Memsource automation. It is used by the download script to correctly sort files into their original locations and convert them back into json format.