The %XLATE built-in function in RPGLE is used to translate characters in a string, similar to the TRANSLATE function in SQL or strtr() in PHP.
โ %XLATE Syntax
%XLATE(from: to: inputString)
- 
	
from: A string of characters to replace.
 - 
	
to: A string of replacement characters (must match the length of
from). - 
	
inputString: The string you want to translate.
 
Each character in inputString that appears in from is replaced by the corresponding character in to.
๐ Simple Example
**FREE
Dcl-S original Char(20) Inz('HELLO WORLD');
Dcl-S result   Char(20);
result = %XLATE('HELLO': '12345': original);
Dsply result; // Output: '12334 W4R3D'
*INLR = *ON;
Return;
๐ What happened?
- 
	
'H' → '1'
 - 
	
'E' → '2'
 - 
	
'L' → '3'
 - 
	
'O' → '4'
 
Characters not in the from string are left unchanged.
๐งพ Use Case Example: Uppercase to Lowercase
Dcl-S txt  Char(20) Inz('HELLO WORLD');
Dcl-S lower Char(20);
lower = %XLATE('ABCDEFGHIJKLMNOPQRSTUVWXYZ':
               'abcdefghijklmnopqrstuvwxyz':
               txt);
Dsply lower; // Output: 'hello world'
โ Important Notes
- 
	
Both
fromandtomust be the same length, or you get a compile error. - 
	
Only single-character substitutions are supported — not full-word replaces.
 - 
	
%XLATEis case-sensitive.