Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
tutorial:adm:personalize_localization [2018/12/28 13:20]
kotisovam [Personalize localization]
tutorial:adm:personalize_localization [2018/12/28 13:31] (current)
kotisovam [Script run]
Line 1: Line 1:
 +====== Personalize localization ======
 +If you want to personalize some of error, warning, info messages, labels, buttons, etc. you can use the simple shell script (for now, TODO is the script only for Linux systems).
  
 +Presently, you can download the script [[http://​up.xyxy.cz/​f.php?​h=3mcRC8p0&​d=1|here]] ​ (TODO script will be part of the product).
 +
 +Place the script into the built-in frontend (eq. czechidm-app/​dist/​).
 +
 +As **pre-requisites** you must install [[https://​stedolan.github.io/​jq/​|jq library]]. JQ is like sed for JSON data. For a debian system you can use:
 +  $ apt-get install jq
 +
 +Set up a script permission:
 +  $ chmod +x localizationTransform.sh
 +  ​
 +Create file ''​override_localization.txt''​ at same path as script. The list files of folder czechidm-app will be like:
 +
 +<​code>​
 +build.sh
 +config
 +czechidm-modules
 +dist
 +docs
 +gulpfile.babel.js
 +index.html
 +localizationTransform.sh
 +node_modules
 +override_localization.txt
 +package.json
 +src
 +</​code>​
 +
 +===== Configuration file =====
 +
 +In file ''​override_localization.txt''​ is each line one override message. Structure:
 +
 +  <​MODULE_ID>;<​LOCALIZATION>;<​LOCALIZATION_KEY>;<​LOCALIZATION_MESSAGE>​
 +
 +  * **MODULE_ID**:​ id of module (core, acc, reg, pwdreset),
 +  * **LOCALIZATION**:​ localization :) (cs, en),
 +  * **LOCALIZATION KEY**: key of override message,
 +  * **LOCALIZATION MESSAGE**: new localization message
 +
 +
 +Examples:
 +<​code>​
 +core;​en;​app.name;​New CzechIdM
 +core;​cs;​app.name;​Nové CzechIdM
 +core;​en;​entity.Role.name;​New role name
 +core;​cs;​entity.Role.name;​Nové jméno role
 +acc;​cs;​content.system.detail.header;​New connected system
 +acc;​en;​content.system.detail.header;​Nový napojený systém
 +</​code>​
 +
 +===== Script run =====
 +  $ ./​lozalizationTransform.sh
 +
 +On running the script, you get a message displaying the standard output. If some localization key will not be found though, you will receive an error message pointing out the reason for failure:
 +  FAILED key: '​content.role.nonExisting'​ was not found.
 +
 +===== Example output of script =====
 +
 +<​code>​
 +➜  dist ./​lozalizationTransform.sh ​
 +     ​____ ​             _       ​___ ​   _ __  __ 
 +    / ___|_______ ​ ___| |__   |_ _|__| |  \/  |
 +   | |   ​|_ ​ / _ \/ __| '_ \   | |/ _' | |\/| |
 +   | |___ / /  __/ (__| | | |  | | (_| | |  | |
 +    \____/​___\___|\___|_| |_| |___\__,​_|_| ​ |_|
 + ​___ ​ _____   ​__ ​         _      _   ​_ ​            
 +| _ )/ __\ \ / /  ___ ___| |_  _| |_(_)___ _ _  ___
 +| _ \ (__ \ V /  (_-</ _ \ | || |  _| / _ \ ' \(_-<
 +|___/\___| \_/   /​__/​\___/​_|\_,​_|\__|_\___/​_||_/​__/​
 +Script for transfrom lozalization message from build FE project
 +
 +JQ installed.
 +Replace: '​app.name',​ language: '​cs',​ module: '​core',​ new localization:​ '​Test'​
 +Replace: '​app.name',​ language: '​cs',​ module: '​core',​ new localization:​ '​Test'​
 +Replace: '​entity.Role.name',​ language: '​cs',​ module: '​core',​ new localization:​ 'new role name'
 +Replace: '​entity.Role.name',​ language: '​en',​ module: '​core',​ new localization:​ 'new role name'
 +FAILED key: '​entity.Role.test'​ was not found.
 +FAILED key: '​entity.Role.test.'​ was not found.
 +
 +Localization translation was ended.
 +
 +</​code>​