User Interface
Graphics
Use culturally appropriate graphics.
Check the meaning of specific graphics in different cultures or allow run time user
selection of graphics.
Icons and graphics should be descriptively named.
Use icons profusely.
Avoice putting text in bitmaps or icons.
- Window Attributes
- Use system font if different code pages are expected. Size and style can vary.
- Use GetLongDate function for main window status date display.
- Control Attributes
- 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.
- ACCELERATORS. Use Accelerator keys where appropriate (prompts, menus, buttons, radios,
checks).
- HOT KEYS. Use number or function keys for Hot Keys, i.e. avoid Ctrl+P for Print.
- Consider using icons for buttons without text.
- Use tooltips and messages wherever possible.
- Equate Names. Use descriptive names for equates in addition to consistent naming
conventions. Important for CWIntl which uses equate names for field specific translation.
- 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.
- OPTION/RADIO. Should have VALUE attributes, preferably numeric. If word wrapping is ever
enabled, allow space for it.
- 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.
- Pictures. Use International Pictures (@d17, @d18, @t7, @t8)
- Use currency symbol in numbers. (Important for PD Translator and CWIntl).
- Use unformatted strings for telephone numbers and zip codes.
II. General Coding
Clarion Environment
Use [Program].Env File for speed.
Use LOCALE functions for control.
Include a CASE structure to enable proper return from IsAlpha, Numeric, Lower, and Upper
functions.
If using CLACOLSEQ Provide means to rebuild file keys. Make sure that it is consistent
for all users.
- Windows Environment
1. Make use of windows NLS functions if possible (GetLocaleInfo).
- Number and currency formats.
- Full and abbreviated day and month names.
- Calendar Information (week of year rules, first day of week).
2. Use CW
windows setting date and time picture formats (D17, T7)
- Data
- Make lookup files case sensitive, i.e. file is not the same as File.
- Use numeric ids for standard lookup, status fields, types, and the like.
- Windows
- Translate windows before the accept loop (avoid flicker)
- Do not use ENTRY or DROPCOMBO controls for any language using ideographic characters.
(use UNICODE when and if it becomes available).
- Reports
- Add Name to reports.
- Design for different paper sizes.
- In-Line Code
- 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)
- Avoid Translator.TranslateString(Error:) & ERROR() as the translation
function will generate its own error. The error displayed will only idicate whether
"Error:" was translated.
- Avoid hard coded localization.
- Use property assignments after translation for strings you do not what translated.
- Do not build text strings dynamically by concatenating multiple strings or by removing
characters from static text.
- Avoid slang, colloquialisms, or obscure phrasing and text.
- Avoid CASE OF A TO Z.
|