Use the Unicode layout expansion factor startup parameter when compiling an ABL code to reserve extra space in the text segment for strings that are to be translated.

Operating system and syntax UNIX / Windows
-ulayout n
Use with Maximum value Minimum value Single-user default Multi-user default
Client Connection 16 0 - -
n
An expansion factor to be applied to strings with string attributes when they are stored in the text segment. A value of 0 indicates that no expansion should be performed.

The -ulayout parameter only has an effect when -cpinternal is UTF-8. Strings without string attributes are not affected by -ulayout.

The translation of a string may require more bytes in the text segment than the original, untranslated string. For example, an English string in UTF-8 generally requires only one byte per column. When translated to Japanese, the string may require two or three bytes per column. A -ulayout factor of 3 will reserve three times as much space in the text segment for the string to accommodate the translated string. The exact factor needed depends on what the application is trying to do; the example of -ulayout 3 might not work for all applications.

The expansion only applies to strings that have string attributes. For example, when -ulayout 3 is used, the compiler will reserve 90 bytes in the text segment for a string that has the attribute :L30; the compiler will not reserve any extra space for the same string if no string attribute is specified. If a string is too long to fit in the reserved space it is truncated, and a warning message is displayed: "Unicode string has been truncated. To fit string, increase value of -ulayout".

For more information on string attributes, see String Attributes option.