home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -seriously_amiga- / programming / e / catalogobj / catalog.readme < prev    next >
Text File  |  1998-04-23  |  2KB  |  49 lines

  1. CatalogObj: OO class by Kyzer/CSG.
  2.  
  3. INSTALLATION: copy catalog.m to emodules:class/
  4.  
  5. This  object  allows you to use localized strings in the E language. It can
  6. be  easily  used as a base for automatically generated catalog sources, and
  7. can work with multiple instances of itself.
  8.  
  9. If  you  have  not read the docs to locale.library, the docs of CatComp, or
  10. the docs of FlexCat, then do so now.
  11.  
  12. Basically,  all the static strings in your program are accessed not by just
  13. writing  them  (the usual way), but by calling a function with an ID value,
  14. usually  a meaningfully-named constant. Note here that to function in the E
  15. language,  your  ID  names  in  a catalog must be uppercase in at least the
  16. first two characters.
  17.  
  18. It  is  easiest  to  use  this with the source-generator FlexCat. Make an E
  19. source  from  your  catalog,  using  the  provided 'E.sd' file, then simply
  20. compile  it  and  use  it  in  your  program in the same way as the example
  21. 'helloworld_test.e'.
  22.  
  23. If  you  don't use FlexCat (more fool you), basically all you have to do is
  24. create an instance of catalog_obj, open your catalog with it, and provide a
  25. block  of  default  id/string  pairs - see the included autodocs. You don't
  26. need  to worry about using one catalog after closing another - each catalog
  27. keeps its own copy of localebase.
  28.  
  29. To use more than one catalog, just use more than one object - here is a
  30. basic and very silly example:
  31.  
  32. CONST MSG_MAGIC=100, MSG_POCKETS=999
  33.  
  34. DEF cat1:PTR TO catalog_obj,
  35.     cat2:PTR TO catalog_obj
  36.  
  37. PROC main()
  38.   NEW cat1.open('magic.catalog')
  39.   NEW cat2.open('pocket.catalog')
  40.  
  41.   cat1.def([MSG_MAGIC,   'Magic'])
  42.   cat2.def([MSG_POCKETS, 'Pockets'])
  43.  
  44.   WriteF('\s \s\n', cat1.get(MSG_MAGIC), cat2.get(MSG_POCKETS))
  45.  
  46.   END cat1
  47.   END cat2
  48. ENDPROC
  49.