Appendix A

Internationalization Development Standards

"Top Speed" Internationalization

© Copyright 1999 ProDomus, Inc. Hartford, CT USA.

Philip S. Will

ProDomus, Inc.

April 20, 1999

 
  1. User Interface
    1. Graphics
    1. Use culturally appropriate graphics.
    2. Check the meaning of specific graphics in different cultures or allow run time user selection of graphics.
    3. Icons and graphics should be descriptively named.
    4. Use icons profusely.
    5. Avoice putting text in bitmaps or icons.
    1. Window Attributes
    1. Use system font if different code pages are expected. Size and style can vary.
    2. Use GetLongDate function for main window status date display.
    1. Control Attributes
    1. STRING/PROMPT. Physically resize prompt and string controls to allow room to expand by at least 50%. (Default sizes do not expand and display properly.) If using prompts to display word wrapped text, allow space for an additional line. See space allowance table below for more detail.
    2. ACCELERATORS. Use Accelerator keys where appropriate (prompts, menus, buttons, radios, checks).
    3. HOT KEYS. Use number or function keys for Hot Keys, i.e. avoid Ctrl+P for Print.
    4. Consider using icons for buttons without text.
    5. Use tooltips and messages wherever possible.
    6. Equate Names. Use descriptive names for equates in addition to consistent naming conventions. Important for CWIntl which uses equate names for field specific translation.
    7. CHECK. Preferably use numeric values rather than alpa characters such as Y/N for Yes/No. If word wrapping is ever enabled, allow space for it.
    8. OPTION/RADIO. Should have VALUE attributes, preferably numeric. If word wrapping is ever enabled, allow space for it.
    9. Literal FROM attributes, STANDARD LOOKUPS/Status Values (Drops, Browses). Such things as status values (Open/Close) should be maintained as numbers rather than literal text. Desicriptions should be translatable. An Option with radio buttons is easier to implement for many of these even though it may take more space than a drop.
    10. Pictures. Use International Pictures (@d17, @d18, @t7, @t8)
    11. Use currency symbol in numbers. (Important for PD Translator and CWIntl).
    12. Use unformatted strings for telephone numbers and zip codes.

 

II.  General Coding

    1. Clarion Environment
    1. Use [Program].Env File for speed.
    2. Use LOCALE functions for control.
    3. Include a CASE structure to enable proper return from IsAlpha, Numeric, Lower, and Upper functions.
    4. If using CLACOLSEQ Provide means to rebuild file keys. Make sure that it is consistent for all users.
    1. Windows Environment

                    1.   Make use of windows NLS functions if possible (GetLocaleInfo).

    1. Number and currency formats.
    2. Full and abbreviated day and month names.
    3. Calendar Information (week of year rules, first day of week).

               2.  Use CW windows setting date and time picture formats (D17, T7)

    1. Data
    1. Make lookup files case sensitive, i.e. file is not the same as File.
    2. Use numeric id’s for standard lookup, status fields, types, and the like.
    1. Windows
    1. Translate windows before the accept loop (avoid flicker)
    2. Do not use ENTRY or DROPCOMBO controls for any language using ideographic characters. (use UNICODE when and if it becomes available).
    1. Reports
    1. Add Name to reports.
    2. Design for different paper sizes.
    1. In-Line Code
    1. Develop a merge string function to handle variable text in different language sentence syntax, i.e.
      MergeString(‘This file was created on %1’,Ctl:Date)
    2. Avoid Translator.TranslateString(‘Error:’) & ERROR() as the translation function will generate its own error. The error displayed will only idicate whether "Error:" was translated.
    3. Avoid hard coded localization.
    4. Use property assignments after translation for strings you do not what translated.
    5. Do not build text strings dynamically by concatenating multiple strings or by removing characters from static text.
    6. Avoid slang, colloquialisms, or obscure phrasing and text.
    7. Avoid CASE OF ‘A’ TO ‘Z’.

 

Length of English Text (Characters) Space Allocation
1-10 200 Percent
11-20 100 Percent
21-30 80 Percent
31-50 60 Percent
51-70 40 Percent
70+