home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / comp / std / internat / 988 < prev    next >
Encoding:
Text File  |  1993-01-02  |  2.4 KB  |  47 lines

  1. Sender: Postmaster@iecc.cambridge.ma.us
  2. Newsgroups: comp.std.internat
  3. Path: sparky!uunet!wupost!usc!elroy.jpl.nasa.gov!decwrl!world!iecc!mailgateway
  4. Subject: Re: Dumb Americans (was INTERNATIONALIZATION: JAPAN, FAR EAST)
  5. References: <KIRAVUO.93Jan1164705@lesti.hut.fi>
  6. Organization: I.E.C.C.
  7. Date: 1 Jan 93 17:57:35 EST (Fri)
  8. From: johnl@iecc.cambridge.ma.us (John R. Levine)
  9. Message-ID: <9301011757.AA04714@iecc.cambridge.ma.us>
  10. Lines: 35
  11.  
  12. >it is my opinion that there is no way to make a simple character code that
  13. >will perform sorting and character conversion automatically.
  14.  
  15. Having done my share of i18n, I thoroughly agree.  When I was writing the
  16. international scaffolding for Javelin, a PC time-series modelling package,
  17. we came up with a locale-like thing that let you load a country
  18. configuration file.  The config file set the collating sequence, including
  19. which characters sort together, and whether there are pairs of characters
  20. that sort as one like spanish ch and ll, or single characters that sort as
  21. two, like the German umlauted vowels.  It also loaded the strings that
  22. were inserted automatically into graphs and printouts, e.g. month names
  23. and words like "Millions."
  24.  
  25. What did not change was the message strings in the program or the table of
  26. function and macro names, all of which were version-specific.  That is, if
  27. you bought a French version of Javelin, it always spoke French, but you
  28. could load in a country driver to produce reports in German or Spanish or
  29. Dutch.  The separation between the "locale" for the program and the
  30. "locale" for the reports was quite useful, and the users liked it.  The
  31. program message strings were linked in when a particular version of
  32. Javelin was built, so that the distributor for a particular country could
  33. build the version for that country.
  34.  
  35. Specifically referring to sorting, it became quite clear that we could not
  36. depend on there being a canonical printable version of a sortable string.
  37. In some languages, there are lower case characters without upper case
  38. equivalents or vice versa.  The canonical form was a list of collating
  39. sequence positions so that in English all versions of the letter "A" might
  40. turn into 12, all versions of "B" into 13, and so on.  The canonical form
  41. was easy to sort and useful for determining whether two strings were
  42. equivalent, important in the symbol table, but you couldn't turn it back
  43. into something printable.
  44.  
  45. Regards,
  46. John Levine, johnl@iecc.cambridge.ma.us, {spdcc|ima|world}!iecc!johnl
  47.