| "Top
Speed" Internationalization Speaker Notes
© Copyright 1999 ProDomus, Inc. Hartford, CT USA.
All Rights Reserved Worldwide
Philip S. Will
ProDomus, Inc.
April 20, 1999
TopSpeed Euro Devcon 99
Amsterdam
"Top Speed" Internationalization: Essential Question
What are some techniques to speed up the process of making existing and new applications
global ready.
Development Environment Big time gains.
Anticipatory Coding.
- Globalization Matrix
- Literal Text
- Window and Report Strings
- Property Assignments
- Text
- Format Strings
3. Data Text Drop Lists/Queues Choices
- Picture
- Date: m/d/y order, separators, full/abbreviated day/month names (d17, d18)
- Time: separators, AM/PM names, format (t7, t8)
- Numbers: decimal/thousand separators
- Currency: symbols, digits, separators
- Clarion Environment
- ClaCarSet: Character Set
- ClaColSeq: Collating Sequence
- ClaAmPm: AM/PM Strings
- ClaMonth: Month Name List
- ClaMon: Abbreviated Month Name List
- ClaDiGraph: Digraph List
- ClaCase: Upper String, Lower String list
- ClaButton: OK,&Yes,&No,&Abort,&Retry,&Ignore,CanceL,&Help
- CLAMsgErrorNumber
- CLLFN: Long file name support on or off.
- Other Dialogs.
- Character/Keyboard
- Code Page/Font Support
- Ideographic Charcters
- Bi-Directional Writing
- Keyboard Layouts
- Entry Control Limitations
- Localization
- Collaterals
- Globalization Techniques
- Clarion International Language Tools
- International Functions
- ConvertAnsiToOem
- ConvertOemToAnsi
- IsAlpha
- IsLower
- IsUpper
- Locale
- Some Limitations
First five functions require an accurate case string.
No facility to access international settings in Windows
- Legacy Application Translation
- No international support
- Many template created literals are not accessible for translation
- English language dependent coding
- ABC Translation Library Functions
- Property
Extract Text
- Methods
AddTranslation
Init
Kill
TranslateControl
TranslateControls
TranslateProperty
TranslateString
TranslateWindow
- Some Limitations
Single Language
Translation without recompiling difficult
Scattered translation files (TRN files).
Difficult to create language file that includes translations in in-line code.
No Translation Tools.
No Access to Windows International Information.
Doesnt translate group headers in a browse.
Doesnt translate listbox pictures.
Doesnt translate entry pictures.
Properties easy to add.
Limited variable text function.
Literal equates in TRN files.
- Modifying the Working Environment
- Purposes
- Create a framework for customizing templates
- Reducing coding requirements
Change default entries to ones you use.
Change generated code to meet special requirements
Add code that would otherwise have to be added template additions.
- Clean up development directory
- Facilitate version archiving
- Avoid changes being overwritten by vendor updates
- Modified Redirection File (Relative Directories)
- Minimum modification
Tp? = .\template;%ROOT%\template
- Additional Modifications
Directory for modifications applicable to all projects
Directories for all generated code
- Limitations
ABC Include File location fixed by INI setting.
- Modify Location of ABC Compliant Libraries
- Speed Load Time
- Clarion4.ini, C5ee.ini
[Paths]
Libsrc=Libsrc\ABC
Search for INC files with !ABCIncludeFile
- Modified Builtins.clw File
- Use equates to provide alternative names.
- Message, Halt, Stop, Type
COMPILE('@@',PDBuiltins)
PDMESSAGE(STRING,<STRING>,<STRING>,<STRING>,UNSIGNED=0,|
BOOL=FALSE),UNSIGNED,PROC,NAME('Cla$MessageBox')
@@
OMIT('@@',PDBuiltins) MESSAGE(STRING,<STRING>,<STRING>,|
<STRING>,UNSIGNED=0,BOOL=FALSE),UNSIGNED,PROC,|
NAME('Cla$MessageBox')
@@
- Write alternative Functions with translation built in.
- LibHook Properties
- What are they
System Properties
0 uses builtin function. Address of alternative function.
- Hook Properties
PROP:ColorDialogHook
PROP:FileDialogHook
PROP:FontDialog
PROP:PrinterDialog
PROP:HaltHook
PROP:MessageHook
PROP:StopHook
PROP:AssertHook
PROP:FatalErrorHook
- Write two alterative functions for each
With translation (for strings without variables)
For strings that must merge variables.
- Modified Templates
- Legacy Templates Translate Strings
10 Standar tpw files contain inaccessible literal strings.
- ABC and Legacy: Update buttons and form wizard
Change entry string to 120
Change default action message entries to variables: !InsertMessage etc.
- Edit Editor Color Setup
- Make Editor More Friendly
- Extension List
Trn;Red;Tpl; Tpw;Clw; Cla;Equ; Inc; Inx;Var;exp;txt;log;
add;pdi;txa;txd
- Anticpitory Coding (International Specs)
- Template Coding
- Great Initiator. Use ! to allow variable entries.
- Make entry fields large enough for !Translator.TranslateString(..) 31 characters
before content.
- Include optional translator code.
- Third Party Products
- Check for multi-lingual capacity.
- Change field sizes if necessary.
- Check for access to source code.
- Coding Standards Develop an International Spec.
- Appendix
- Development Standards
- Other Resources
- The Mighty Initiator!, by Philip Will, Mar/Apr 1997 Clarion Tech Journal.
- www.microsoft.com/globaldev
- Sample C5 Cr2 Alternative Builtins Functions and Builtins.clw file.
(Built5.zip). NOTE: for use the CW translaor,
TranslateString should be changed to Translator.TranslateString.
- Sample C5 Cr2 Alternative Functions using SYSTEM{PROP:xxxHook}
properties: PDHook.zip
- Sample C5 Cr2 redirection file using relative directories and a batch
file for creating these. PDRed.zip
|