Difference between revisions of "Pseudo Localization"

From Lingoport Wiki
Jump to: navigation, search
(Created page with "== config_pseudo_loc.xml.xml == File '''<code>config_pseudo_loc.xml</code>''' is the configuration file for setting up pseudo localization instructions for LRM resource files....")
 
(Accent Only Configuration Example)
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  +
== What is Pseudo-Localization? ==
== config_pseudo_loc.xml.xml ==
 
  +
Pseudo-localization is an effective way to test the localization-readiness of an application.  By pseudo-localizing the resource files, an application can be tested for internationalization without waiting for localization.
File '''<code>config_pseudo_loc.xml</code>''' is the configuration file for setting up pseudo localization instructions for LRM resource files. It is located in the global '''<code><HOME>/Lingoport_Data/L10nStreamlining/config</code>''' folder. If you need different criteria for a group or project then the file can be copied and moved to '''<code><HOME>/Lingoport_Data/L10nStreamlining/<group>/config</code>''' or '''<code><HOME>/Lingoport_Data/L10nStreamlining/<group>/projects/<project>config</code>''' respectively.
 
  +
  +
Creating pseudo-localized resource files help test for
  +
* embedded strings,
  +
* text that was externalized but should not be,
  +
* text expansion issues,
  +
* character-encoding problems,
  +
* text concatenation issues, and
  +
* UI boundary issues can be identified.
  +
  +
An application typically retrieves strings based on a locale, such as French. A pseudo-locale is like a normal locale, but the strings are not translated, they simply show differently, as in the example below where the pseudo-locale is 'esperanto' and the English strings have been pseudo-localized:
  +
  +
[[File:Pseudo-localization.jpg|center|500px]]
  +
  +
== Configuration: config_pseudo_loc.xml.xml ==
  +
'''<code>config_pseudo_loc.xml</code>''' is the configuration file for setting up pseudo localization instructions for LRM resource files. It is located in the global '''<code><HOME>/Lingoport_Data/L10nStreamlining/config</code>''' folder. If you need different criteria for a group or project then the file can be copied and moved to '''<code><HOME>/Lingoport_Data/L10nStreamlining/<group>/config</code>''' or '''<code><HOME>/Lingoport_Data/L10nStreamlining/<group>/projects/<project>config</code>''' respectively.
   
 
The '''config_pseudo_loc.xml''' file is used when running the <code>--pseudo-loc</code> command. A pseudo-localized file will be created for each base resource file if the project has a designated pseudo-locale.
 
The '''config_pseudo_loc.xml''' file is used when running the <code>--pseudo-loc</code> command. A pseudo-localized file will be created for each base resource file if the project has a designated pseudo-locale.
Line 12: Line 27:
 
* '''expansion lengths''' - defines the expansion percentage based on a strings length. This is useful to test language expansions.
 
* '''expansion lengths''' - defines the expansion percentage based on a strings length. This is useful to test language expansions.
 
* '''expansion character''' - the character that will be used to pad the string in order to simulate string expansion
 
* '''expansion character''' - the character that will be used to pad the string in order to simulate string expansion
* ''expansion end character'' - characters at the end of expansion. Typically, these are symbols across a range of codepoints in order to ensure that content from the various code pages are supported
+
* '''expansion end character''' - characters at the end of expansion. Typically, these are symbols across a range of codepoints in order to ensure that content from the various code pages are supported
* ''start and end characters'' - characters at the start and end of the resource string. This is useful to catch resource strings that are concatenated within the code.
+
* '''start and end characters''' - characters at the start and end of the resource string. This is useful to catch resource strings that are concatenated within the code.
 
* '''accents''' - a flag indicating whether the resource string should be accented. This is needed to ensure that all visible user strings are localized.
 
* '''accents''' - a flag indicating whether the resource string should be accented. This is needed to ensure that all visible user strings are localized.
  +
* '''add-invisible-chars''' - a flag indicating whether instrumented characters should prep-pend and append the pseudo-localized text. This is useful when testing the Lingoport Incontext Reviewer.
   
  +
== Pseudo-Localization Examples ==
The first step in configuring the global email file is to verify, with your IT department, the mail server credentials.
 
  +
=== Typical Configuration Example ===
[[Sending_Emails#Send_Email_Command|Send email command]] may be used to test the configuration values.
 
 
==== Example No Authorization Email Configuration ====
 
Test your email configuration using the [[Sending_Emails#Sending_Email_with_SMTP_protocol_and_no_authorization | -se command for no authorization]].
 
 
&lt;smtp-host&gt;smtp.gmail.com/&lt;smtp-host&gt;
 
&lt;smtp-auth&gt;'''none'''&lt;/smtp-auth&gt;
 
&lt;email-sender&gt;joe@mycompany.com&lt;/email-sender&gt;
 
&lt;sender-password encrypted="false"&gt;mypassword&lt;/sender-password&gt;
 
 
==== Example SMTP Authorization Email Configuration ====
 
Test your email configuration using the [[Sending_Emails#Sending_Email_with_SMTP_authorization | -se command for SMTP authorization]].
 
 
&lt;smtp-host&gt;smtp.gmail.com/&lt;smtp-host&gt;
 
&lt;smtp-auth&gt;'''mail.smtp.auth'''&lt;/smtp-auth&gt;
 
&lt;email-sender&gt;joe@mycompany.com&lt;/email-sender&gt;
 
&lt;sender-password encrypted="false"&gt;&lt;/sender-password&gt;
 
 
==== Example SMTPS Authorization Email Configuration ====
 
Test your email configuration using the [[Sending_Emails#Sending_Email_with_SMTPS_protocol|-se command for SMTPS authorization]].
 
 
&lt;smtp-host&gt;smtp.gmail.com/&lt;smtp-host&gt;
 
&lt;smtp-auth&gt;'''mail.smtps.auth'''&lt;/smtp-auth&gt;
 
&lt;email-sender&gt;joe@mycompany.com&lt;/email-sender&gt;
 
&lt;sender-password encrypted="false"&gt;mypassword&lt;/sender-password&gt;
 
 
=== Additional Email Configuration ===
 
In addition, there are configuration settings for when to send out notification emails and whether or not to send out the 'No Files to Prep' email.
 
* '''dashboard-url''' - Dashboard URL used as the link destination for the email Log In button
 
* '''notify-changes-email-interval''' - By default, the ''Notification'' email may be sent every day. Since the project's Jenkins Notification job is only run once a week, this email will only be set out once a week.
 
* '''late-kits-email-interval''' - By default, the ''Late Prep Kits'' email may be sent every day depending on the number of days late. Since the project's Jenkins Notification job is only run once a week, this email will be sent out once a week.
 
* '''number-days-late''' - By default, a prep kit is deemed late if it is 7 days late.
 
* '''send-no-files-to-prep-email''' - By default, the ''No Files to Prep'' email will be sent out when there is a request to prep a kit but there are no files to prep. If a Jenkins job is created that automatically attempts to prep a kit, then this value should be set to ''0'' so that the email is not sent. Otherwise, the email recipient's inbox may be inundated with 'No Files to Prep' emails.
 
 
=== Encrypted Password ===
 
The <code><sender-password></code> can be configured with the <code>encrypted</code> attribute set to true, as in
 
<pre>
 
...
 
<email-sender>mailuser@company.com</email-sender>
 
<sender-password encrypted="true">UUIasd455</sender-password>
 
...
 
</pre>
 
 
To encrypt the password, use the <code>encrypt</code> command line on <code>lrm-common.jar</code> file. For instance:
 
 
'''<code>> java -jar <LRM_INSTALLATION_PATH>/lib/lpcommon.jar --encrypt</code>'''
 
 
which will prompt you for the text (here the password) to encrypt and will provide the result on the console.
 
 
== Java Options for sending emails ==
 
It may be necessary to explicitly set the email port and/or STARTTLS flag rather than rely on the default mail server values. In addition, the email session debug mode can be enabled.
 
 
There are 3 email settings that may be set through java options:
 
* Email Server Port
 
* SMTP STARTTLS enabled
 
* Email Session Debug mode enabled
 
 
==== Email Protocol Port Number ====
 
The expected java option for explicitly setting the protocol port number is:
 
* mail.smtp.port
 
 
Linux example if setting java options within a shell session.
 
 
:: <span style="background-color: #eaecf0;>export _JAVA_OPTIONS='-Dmail.smtp.port=25'</span>
 
 
=== Enable/Disable STARTTLS ===
 
The expected java option for explicitly enabling/disabling STARTTLS is:
 
* mail.smtp.starttls.enable
 
 
Linux example if setting java options within a shell session.
 
 
:: <span style="background-color: #eaecf0;>export _JAVA_OPTIONS='-Dmail.smtp.starttls.enable=true'</span>
 
 
STARTTLS is automatically enabled for the SMTPS protocol.
 
 
=== Enable Email Session Debug mode ===
 
The expected java option for explicitly enabling/disabling the email session debug mode is:
 
* mail.debug.mode
 
 
Linux example if setting java options within a shell session.
 
 
:: <span style="background-color: #eaecf0;>export _JAVA_OPTIONS='-Dmail.debug.mode=true'</span>
 
 
== Send Email Command ==
 
The ''send email command'' is used to test sending an email using your mail server credentials. Before starting, verify with your IT department the mail server credentials otherwise errors will occur.
 
   
  +
&lt;expansion&gt;
The ''send email command'' is accessed through the lpcommon.jar file and is located in the <code>lib</code> folder (i.e. ../lrm-server-x.x/lib). This command is used to test the configured mail server. Before running this command, you may want to [[Sending_Emails#Enable_Email_Session_Debug_mode |enable the email session debug mode]].
 
  +
&lt;lengths&gt;
  +
&lt;length max="10" expand-percentage="200"/&gt;
  +
&lt;length max="20" expand-percentage="100"/&gt;
  +
&lt;length max="30" expand-percentage="80"/&gt;
  +
&lt;length max="50" expand-percentage="60"/&gt;
  +
&lt;length max="70" expand-percentage="40"/&gt;
  +
&lt;length max="" expand-percentage="30"/&gt;
  +
&lt;/lengths&gt;
  +
&lt;expansion-char>-&lt;/expansion-char&gt;
  +
  +
&lt;!-- П: A Cyrillic character - (for Russian or ‘R’) --&gt;
  +
&lt;!-- 國: A common Chinese character (Hanzi, Kanji or Hanja) defined in Unicode BMP or Plane 0 – (for Chinese or ‘C’) --&gt;
  +
&lt;!-- カ: A Katakana character (used for Japanese or ‘J’) --&gt;
  +
&lt;!-- 내: A Hangul character (for Korean or ‘K’) --&gt;
  +
&lt;expansion-end-chars&gt; П國カ내&lt;/expansion-end-chars&gt;
  +
&lt;/expansion&gt;
  +
&lt;start-char>[&lt;/start-char&gt;
  +
&lt;end-char>]&lt;/end-char&gt;
  +
&lt;accent-chars>1&lt;/accent-chars&gt;
  +
&lt;!-- Flag indicating whether to add instrumented (non-printable unicode characters) to the start and end of the string
  +
The instrumented characters will be before any start character and after any end character
  +
0 - do not add instrumented characters
  +
1 - add instrumented characters --&gt;
  +
&lt;add-invisible-chars>0</add-invisible-chars&gt;
   
  +
Based on this configuration, an example pseudo-localization would be:
In order to run the send email <code>-sse</code> or <code>--send-smtp-email</code> command, you must specify an existing location for the error log.
 
   
  +
Base Resource string: "This is an example using the typical configuration"
In addition to the log file, there are 5 other required fields.
 
  +
Pseudo-localized string: "[Ţĥîš îš åñ éẋåɱþļé ûšîñĝ ţĥé ţýþîçåļ çöñƒîĝûŕåţîöñ------------------------П國カ내]"
* '''SMTP Host''' denoted by option <code>-sh</code> or <code>--smtp-host</code>
 
* '''Senders email address''' denoted by option <code>-es</code> or <code>--email-sender</code>
 
* '''Email Subject''' denoted by option <code>-subj</code> or <code>--subject</code>
 
* '''Email Message''' denoted by option <code>-msg</code> or <code>--message</code>
 
* '''Email Recipients''' denoted by option <code>-r</code> or <code>--recipients</code>
 
   
  +
=== No Expansion Configuration Example ===
=== Sending Email with SMTP protocol and no authorization ===
 
  +
Edit the ''config_pseudo_loc.xml'' for no expansion by setting the ''expand-percentage'' to 0 and not entering any characters for the ''expansion character'' as well as the ''expansion end characters''.
To test sending an email using the SMTP protocol with no authorization run the following command:
 
:: <span style="background-color: #eaecf0;>java -jar lpcommon.jar -sse -lf /var/lib/jenkins/test/error.log -sh smtp.gmail.com -es myemail@mycompany.com -subj test -msg "This is a test" -r anotheremail@email.com </span>
 
   
  +
&lt;expansion&gt;
In looking at the console log you should see the following:
 
  +
&lt;lengths&gt;
* Email protocol is `smtp` (which is the default)
 
  +
&lt;length max="" expand-percentage="0"/&gt;
* Authorization `mail.smtp.auth` is set to `false`
 
  +
&lt;/lengths&gt;
  +
&lt;expansion-char>&lt;/expansion-char&gt;
  +
&lt;expansion-end-chars&gt;&lt;/expansion-end-chars&gt;
  +
&lt;/expansion&gt;
  +
&lt;start-char>[&lt;/start-char&gt;
  +
&lt;end-char>]&lt;/end-char&gt;
  +
&lt;accent-chars>1&lt;/accent-chars&gt;
  +
&lt;add-invisible-chars>0</add-invisible-chars&gt;
   
  +
Based on this configuration, an example pseudo-localization would be:
If errors occurs then you'll need to change your email send options. For error examples see [[Sending_Emails#Error_Messages|Email Error Messages]].
 
   
  +
Base Resource string: "This is an example of no expansion configuration"
=== Sending Email with SMTP authorization ===
 
  +
Pseudo-localized string: "[Ţĥîš îš åñ éẋåɱþļé öƒ ñö éẋþåñšîöñ çöñƒîĝûŕåţîöñ]"
To test sending an email using the SMTP protocol with SMTP authorization run the following command:
 
:: <span style="background-color: #eaecf0;>java -jar lpcommon.jar -sse -lf /var/lib/jenkins/test/error.log -sh smtp.gmail.com '''-sa mail.smtp.auth''' -es myemail@mycompany.com -subj test -msg "This is a test" -r anotheremail@email.com </span>
 
   
  +
=== End Character Symbols with no Expansion Configuration Example ===
In looking at the console log you should see the following:
 
  +
Edit the ''config_pseudo_loc.xml'' for no expansion by setting the ''expand-percentage'' to 0 and not entering any characters for the ''expansion character'' as well as the ''expansion end characters''. Add appropriate symbols to the ''end characters'' in order to ensure that content from the various code pages are supported.
* Email protocol is `smtp`
 
  +
&lt;expansion&gt;
* Authorization `mail.smtp.auth` is set to `true`
 
  +
&lt;lengths&gt;
  +
&lt;length max="" expand-percentage="0"/&gt;
  +
&lt;/lengths&gt;
  +
&lt;expansion-char>&lt;/expansion-char&gt;
  +
&lt;expansion-end-chars&gt;&lt;/expansion-end-chars&gt;
  +
&lt;/expansion&gt;
  +
&lt;start-char>[&lt;/start-char&gt;
  +
&lt;!-- П: A Cyrillic character - (for Russian or ‘R’) --&gt;
  +
&lt;!-- 國: A common Chinese character (Hanzi, Kanji or Hanja) defined in Unicode BMP or Plane 0 – (for Chinese or ‘C’) --&gt;
  +
&lt;!-- カ: A Katakana character (used for Japanese or ‘J’) --&gt;
  +
&lt;!-- 내: A Hangul character (for Korean or ‘K’) --&gt;
  +
&lt;end-char> П國カ내]&lt;/end-char&gt;
  +
&lt;accent-chars>1&lt;/accent-chars&gt;
  +
&lt;add-invisible-chars>0</add-invisible-chars&gt;
   
  +
Based on this configuration, an example pseudo-localization would be:
If errors occurs then you'll need to change your email send options. For error examples see [[Sending_Emails#Error_Messages|Email Error Messages]].
 
   
  +
Base Resource string: "This is an example of no expansion configuration"
=== Sending Email with SMTPS protocol ===
 
  +
Pseudo-localized string: "[Ţĥîš îš åñ éẋåɱþļé öƒ ñö éẋþåñšîöñ ŵîţĥ éñð çĥåŕåçţéŕš šýɱƀöļš çöñƒîĝûŕåţîöñ П國カ내]"
To test sending an email using the SMTP protocol with SMTP authorization run the following command:
 
:: <span style="background-color: #eaecf0;>java -jar lpcommon.jar -sse -lf /var/lib/jenkins/test/error.log -sh smtp.gmail.com '''-sa mail.smtps.auth''' -es myemail@mycompany.com -subj test -msg "This is a test" -r anotheremail@email.com '''-ep mypassword''' </span>
 
   
  +
=== Accent Only Configuration Example ===
In looking at the console log you should see the following:
 
  +
Edit the ''config_pseudo_loc.xml'' for no expansion by setting the ''expand-percentage'' to 0 and not entering any characters for the ''expansion character'' as well as the ''expansion end characters''. Remove any characters defined in the ''start and end characters''.
* Email protocol is `smtp` (which is the default)
 
* Authorization `mail.smtp.auth` is set to `false`
 
   
  +
&lt;expansion&gt;
If errors occurs then you'll need to change your email send options. For error examples see [[Sending_Emails#Error_Messages|Email Error Messages]].
 
  +
&lt;lengths&gt;
  +
&lt;length max="" expand-percentage="0"/&gt;
  +
&lt;/lengths&gt;
  +
&lt;expansion-char>&lt;/expansion-char&gt;
  +
&lt;expansion-end-chars&gt;&lt;/expansion-end-chars&gt;
  +
&lt;/expansion&gt;
  +
&lt;start-char>&lt;/start-char&gt;
  +
&lt;end-char>&lt;/end-char&gt;
  +
&lt;accent-chars>1&lt;/accent-chars&gt;
  +
&lt;add-invisible-chars>0</add-invisible-chars&gt;
   
  +
Based on this configuration, an example pseudo-localization would be:
=== Error Messages ===
 
The first step in trouble shooting any email messages is to verify, with your IT department, the mail server credentials.
 
   
  +
Base Resource string: "This is an example of accent only configuration"
If you're unable to send an email successfully then you may want to enable the debug mode for the email session. This will provide additional information regarding the progress of the session. Set the debug mode through [[Sending_Emails#Enable_Email_Session_Debug_mode|java options]].
 
  +
Pseudo-localized string: "Ţĥîš îš åñ éẋåɱþļé öƒ åççéñţ öñļý çöñƒîĝûŕåţîöñ"
After enabling the debug mode, the error messages should provide explicit information regarding the reason for the failure. There are a few error messages that may not be so obvious. These are:
 
* Connection is not successful due to invalid port number:
 
:: The default port number will be used when setting up the connection. If you're unable to change the default port number then you'll need to explicitly set it via [[Sending_Emails#Email_Protocol_Port_Number|java options]].
 
* Must issue a STARTTLS command first. This error indicates that STARTTLS must be enabled. This error occurs when the protocol is SMTP. You can attempt to fix this error by:
 
:: Setting the authorization to SMTPS (connection may require a password)
 
::: or
 
:: Explicitly setting STARTTLS through the java option [[Sending_Emails#Enable.2FDisable_STARTTLS|mail.smtp.starttls.enable]] and adding the password to the command line (<code>-ep</code>)
 

Revision as of 19:52, 28 November 2018

What is Pseudo-Localization?

Pseudo-localization is an effective way to test the localization-readiness of an application.  By pseudo-localizing the resource files, an application can be tested for internationalization without waiting for localization.

Creating pseudo-localized resource files help test for

  • embedded strings,
  • text that was externalized but should not be,
  • text expansion issues,
  • character-encoding problems,
  • text concatenation issues, and
  • UI boundary issues can be identified.

An application typically retrieves strings based on a locale, such as French. A pseudo-locale is like a normal locale, but the strings are not translated, they simply show differently, as in the example below where the pseudo-locale is 'esperanto' and the English strings have been pseudo-localized:

Pseudo-localization.jpg

Configuration: config_pseudo_loc.xml.xml

config_pseudo_loc.xml is the configuration file for setting up pseudo localization instructions for LRM resource files. It is located in the global <HOME>/Lingoport_Data/L10nStreamlining/config folder. If you need different criteria for a group or project then the file can be copied and moved to <HOME>/Lingoport_Data/L10nStreamlining/<group>/config or <HOME>/Lingoport_Data/L10nStreamlining/<group>/projects/<project>config respectively.

The config_pseudo_loc.xml file is used when running the --pseudo-loc command. A pseudo-localized file will be created for each base resource file if the project has a designated pseudo-locale.

There are 2 categories of information contained in the config_pseudo_loc.xml file.

  • pseudo localization instructions
  • regex pattern for each parser type defining the parameters as well as special characters that should not be pseudo-localized.

Pseudo Localization Instructions

The configuration consists of the following xml elements:

  • expansion lengths - defines the expansion percentage based on a strings length. This is useful to test language expansions.
  • expansion character - the character that will be used to pad the string in order to simulate string expansion
  • expansion end character - characters at the end of expansion. Typically, these are symbols across a range of codepoints in order to ensure that content from the various code pages are supported
  • start and end characters - characters at the start and end of the resource string. This is useful to catch resource strings that are concatenated within the code.
  • accents - a flag indicating whether the resource string should be accented. This is needed to ensure that all visible user strings are localized.
  • add-invisible-chars - a flag indicating whether instrumented characters should prep-pend and append the pseudo-localized text. This is useful when testing the Lingoport Incontext Reviewer.

Pseudo-Localization Examples

Typical Configuration Example

      <expansion>
        <lengths>
           <length max="10" expand-percentage="200"/>
           <length max="20" expand-percentage="100"/>
           <length max="30" expand-percentage="80"/>
           <length max="50" expand-percentage="60"/>
           <length max="70" expand-percentage="40"/>
           <length max=""   expand-percentage="30"/>
        </lengths>
        <expansion-char>-</expansion-char>
        
        <!-- П: A Cyrillic character - (for Russian or ‘R’) -->
        <!-- 國: A common Chinese character (Hanzi, Kanji or Hanja) defined in Unicode BMP or Plane 0 – (for Chinese or ‘C’) -->	    
        <!-- カ: A Katakana character (used for Japanese or ‘J’) -->
        <!-- 내: A Hangul character (for Korean or ‘K’) -->
        <expansion-end-chars> П國カ내</expansion-end-chars>
      </expansion>
      <start-char>[</start-char>
      <end-char>]</end-char>
      <accent-chars>1</accent-chars>
      <!-- Flag indicating whether to add instrumented (non-printable unicode characters) to the start and end of the string
        The instrumented characters will be before any start character and after any end character 
        0 - do not add instrumented characters 
        1 - add instrumented characters     -->
      <add-invisible-chars>0</add-invisible-chars>

Based on this configuration, an example pseudo-localization would be:

Base Resource string: "This is an example using the typical configuration"
Pseudo-localized string: "[Ţĥîš îš åñ éẋåɱþļé ûšîñĝ ţĥé ţýþîçåļ çöñƒîĝûŕåţîöñ------------------------П國カ내]"

No Expansion Configuration Example

Edit the config_pseudo_loc.xml for no expansion by setting the expand-percentage to 0 and not entering any characters for the expansion character as well as the expansion end characters.

      <expansion>
        <lengths>
           <length max=""   expand-percentage="0"/>
        </lengths>
        <expansion-char></expansion-char>
        <expansion-end-chars></expansion-end-chars>
      </expansion>
      <start-char>[</start-char>
      <end-char>]</end-char>
      <accent-chars>1</accent-chars>
      <add-invisible-chars>0</add-invisible-chars>

Based on this configuration, an example pseudo-localization would be:

Base Resource string: "This is an example of no expansion configuration"
Pseudo-localized string: "[Ţĥîš îš åñ éẋåɱþļé öƒ ñö éẋþåñšîöñ çöñƒîĝûŕåţîöñ]"

End Character Symbols with no Expansion Configuration Example

Edit the config_pseudo_loc.xml for no expansion by setting the expand-percentage to 0 and not entering any characters for the expansion character as well as the expansion end characters. Add appropriate symbols to the end characters in order to ensure that content from the various code pages are supported.

      <expansion>
         <lengths>
            <length max=""   expand-percentage="0"/>
         </lengths>
         <expansion-char></expansion-char>
         <expansion-end-chars></expansion-end-chars>
      </expansion>
      <start-char>[</start-char>
      <!-- П: A Cyrillic character - (for Russian or ‘R’) -->
      <!-- 國: A common Chinese character (Hanzi, Kanji or Hanja) defined in Unicode BMP or Plane 0 – (for Chinese or ‘C’) -->	    
      <!-- カ: A Katakana character (used for Japanese or ‘J’) -->
      <!-- 내: A Hangul character (for Korean or ‘K’) -->
      <end-char> П國カ내]</end-char>
      <accent-chars>1</accent-chars>
      <add-invisible-chars>0</add-invisible-chars>

Based on this configuration, an example pseudo-localization would be:

Base Resource string: "This is an example of no expansion configuration"
Pseudo-localized string: "[Ţĥîš îš åñ éẋåɱþļé öƒ ñö éẋþåñšîöñ ŵîţĥ éñð çĥåŕåçţéŕš šýɱƀöļš çöñƒîĝûŕåţîöñ П國カ내]"

Accent Only Configuration Example

Edit the config_pseudo_loc.xml for no expansion by setting the expand-percentage to 0 and not entering any characters for the expansion character as well as the expansion end characters. Remove any characters defined in the start and end characters.

      <expansion>
         <lengths>
            <length max=""   expand-percentage="0"/>
         </lengths>
         <expansion-char></expansion-char>
         <expansion-end-chars></expansion-end-chars>
      </expansion>
      <start-char></start-char>
      <end-char></end-char>
      <accent-chars>1</accent-chars>
      <add-invisible-chars>0</add-invisible-chars>

Based on this configuration, an example pseudo-localization would be:

Base Resource string: "This is an example of accent only configuration"
Pseudo-localized string: "Ţĥîš îš åñ éẋåɱþļé öƒ åççéñţ öñļý çöñƒîĝûŕåţîöñ"