Progress
Internationalization Guide
Using Case Tables
Developers design applications to support different market requirements, for example, different character sets and different sort order of characters within a character set. The rules for changing case might also be different, and our applications must allow for this. For example, Japanese, Chinese, Korean, Hebrew, Arabic, and Thai alphabets have only one case and do not have uppercase and lowercase versions of letters. Other cultures do have different case rules. In France, lowercase letters with accents, for example, the character “é,” lose the accent when capitalized. Therefore, the character “é” becomes “E.” However, in Canada the character “é” retains the accent and becomes “É” when capitalized.
Progress provides many case tables to accommodate different case rules for different markets. You can also create your own case rules by creating your own case tables. When you deploy your application, select the appropriate case rules by using the Case Table (-cpcase) startup parameter. The -cpcase startup parameter affects the CAPS function, the LC function, and the FORMAT character (!). The CAPS function specifies uppercase rules, and the LC function specifies lowercase rules. The FORMAT character (!) is used to specify that data must be uppercase. The case table defines the uppercase and lowercase equivalents for each character in the code page. For example, the French case table defines the uppercase equivalent for the character “é” as “E.” If you apply the LC function to the lowercase “é,” it does not change. The French-Canadian case table however, defines the uppercase “é” as “É.”
These differences in case rules are important because an application that uses the wrong case rules might change the meanings of words. Case rules can also affect your queries. For example, using French case rules you cannot find the name “René” with the following query:
The query does find the name “René” using French-Canadian case rules because the French case table defines the uppercase equivalent of “é” as “E,” not “É.”
In France, the query must run with an uppercase “E” and no accent as follows:
This query finds the name “René” only if you use the French case rules, not the French-Canadian case rules.
Progress has a default case table for every code page that it supports. The case tables are in the
DLC/prolang/convmap.dat
file. For more information on theconvmap.dat
file, see Understanding Code Pages." The default case table for a given code page is called BASIC.Your application might require a different mapping between uppercase and lowercase characters than the one that the BASIC case table provides. Progress allows you to specify which case table you want to use at startup. You can use the Case Table (-cpcase) startup parameter when you start a Progress client session or server.
The following rules determine how Progress decides which case table to use for case conversions:
This is a sample startup command that sets the code page and case table:
This command uses -cpcase to specify that the Progress client use the French case table when performing case conversions instead of the BASIC case table for the IBM850 code page.
NOTE: The case table you specify must appear in theconvmap.cp
file, which is a binary file that contains tables for managing characters created by compiling theDLC/prolang/convmap.dat
file. Ifconvmap.dat
does not have a certain case table, you can create your own.For more information on case tables, see Understanding Character Processing Tables."
Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |