"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

 

  1. "Top Speed" Internationalization: Essential Question

    1. What are some techniques to speed up the process of making existing and new applications global ready.
    1. Development Environment – Big time gains.
    2. Anticipatory Coding.
  1. Globalization Matrix
    1. Literal Text
    1. Window and Report Strings
    2. Property Assignments
    1. Text
    2. Format Strings

3. Data Text – Drop Lists/Queues Choices

    1. Picture
    1. Date: m/d/y order, separators, full/abbreviated day/month names (d17, d18)
    2. Time: separators, AM/PM names, format (t7, t8)
    3. Numbers: decimal/thousand separators
    4. Currency: symbols, digits, separators
    1. Clarion Environment
    1. ClaCarSet: Character Set
    2. ClaColSeq: Collating Sequence
    3. ClaAmPm: AM/PM Strings
    4. ClaMonth: Month Name List
    5. ClaMon: Abbreviated Month Name List
    6. ClaDiGraph: Digraph List
    7. ClaCase: Upper String, Lower String list
    8. ClaButton: OK,&Yes,&No,&Abort,&Retry,&Ignore,CanceL,&Help
    9. CLAMsgErrorNumber
    10. CLLFN: Long file name support on or off.
    11. Other Dialogs.
    1. Character/Keyboard
    1. Code Page/Font Support
    2. Ideographic Charcters
    3. Bi-Directional Writing
    4. Keyboard Layouts
    5. Entry Control Limitations
    1. Localization
    2. Collaterals
  1. Globalization Techniques
  1. Clarion International Language Tools
    1. International Functions
    1. ConvertAnsiToOem
    2. ConvertOemToAnsi
    3. IsAlpha
    4. IsLower
    5. IsUpper
    6. Locale
    7. Some Limitations

First five functions require an accurate case string.

No facility to access international settings in Windows

    1. Legacy Application Translation
    1. No international support
    2. Many template created literals are not accessible for translation
    3. English language dependent coding
    1. ABC Translation Library Functions
    1. Property
    2. Extract Text

    3. Methods
    4. AddTranslation
      Init
      Kill
      TranslateControl
      TranslateControls
      TranslateProperty
      TranslateString
      TranslateWindow

    5. 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.
Doesn’t translate group headers in a browse.
Doesn’t translate listbox pictures.
Doesn’t translate entry pictures.
Properties easy to add.
Limited variable text function.
Literal equates in TRN files.

    1. Modifying the Working Environment
    1. Purposes
    1. Create a framework for customizing templates
    2. Reducing coding requirements
    3. 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.

    4. Clean up development directory
    5. Facilitate version archiving
    6. Avoid changes being overwritten by vendor updates
    1. Modified Redirection File (Relative Directories)
    1. Minimum modification
    2. Tp? = .\template;%ROOT%\template

    3. Additional Modifications
    4. Directory for modifications applicable to all projects
      Directories for all generated code

    5. Limitations

ABC Include File location fixed by INI setting.

    1. Modify Location of ABC Compliant Libraries
    1. Speed Load Time
    2. Clarion4.ini, C5ee.ini

[Paths]
Libsrc=Libsrc\ABC
Search for INC files with !ABCIncludeFile

    1. Modified Builtins.clw File
    1. Use equates to provide alternative names.
    2. Message, Halt, Stop, Type
    3. 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')

      @@

    4. Write alternative Functions with translation built in.
    1. LibHook Properties
    1. What are they
    2. System Properties
      0 uses builtin function. Address of alternative function.

    3. Hook Properties
    4. PROP:ColorDialogHook
      PROP:FileDialogHook
      PROP:FontDialog
      PROP:PrinterDialog
      PROP:HaltHook
      PROP:MessageHook
      PROP:StopHook
      PROP:AssertHook
      PROP:FatalErrorHook

    5. Write two alterative functions for each

With translation (for strings without variables)
For strings that must merge variables.

    1. Modified Templates
    1. Legacy Templates – Translate Strings
    2. 10 Standar tpw files contain inaccessible literal strings.

    3. ABC and Legacy: Update buttons and form wizard

Change entry string to 120
Change default action message entries to variables: !InsertMessage etc.

    1. Edit Editor Color Setup
    1. Make Editor More Friendly
    2. Extension List

Trn;Red;Tpl; Tpw;Clw; Cla;Equ; Inc; Inx;Var;exp;txt;log; add;pdi;txa;txd

  1. Anticpitory Coding (International Specs)
  1. Template Coding
    1. Great Initiator. Use ! to allow variable entries.
    2. Make entry fields large enough for !Translator.TranslateString(..) – 31 characters before content.
    3. Include optional translator code.
  1. Third Party Products
    1. Check for multi-lingual capacity.
    2. Change field sizes if necessary.
    3. Check for access to source code.
  1. Coding Standards – Develop an International Spec.
  1. Appendix
  1. Development Standards
  2. Other Resources
    1. The Mighty Initiator!, by Philip Will, Mar/Apr 1997 Clarion Tech Journal.
    2. www.microsoft.com/globaldev
    3. 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.
    4. Sample C5 Cr2 Alternative Functions using SYSTEM{PROP:xxxHook} properties: PDHook.zip
    5. Sample C5 Cr2 redirection file using relative directories and a batch file for creating these.  PDRed.zip