//   Copyright (C) 2016 and later: Unicode, Inc. and others.
//   License & terms of use: http://www.unicode.org/copyright.html#License
//
//   Copyright (C) 2000-2003, International Business Machines
//   Corporation and others.  All Rights Reserved.

en {
     errorcodes {
                     "No error",
                     "Illegal argument passed",
                     "Missing resource",
                     "Format is invalid",
                     "File access error",
                     "Internal program error",
                     "Message parse error",
                     "Memory allocation error",
                     "Index out of bounds error",
                     "Parse error",
                     "Invalid char found",
                     "Truncated char found",
                     "Illegal char found",
                     "Invalid table format",
                     "Invalid table file",
                     "Buffer overflow error",
                     "Unsupported error",
                     "Resource type mismatch",
                     "Illegal escape sequence",
                     "Unsupported escape sequence"
                     }
      helpTopics {
          udata           { "This is udata help topic" }
          resourcebundles { "This is resource bundle help topic" }
          collation       { "This is collation help topic" }
          breakit         { "This is break iterator help topic" }
          translit        { "This is transliteration help topic" }
          unicode         { "This is unicode help topic" }
          format          { "This is format help topic" }
      }

      helpKeywords {
          udata           { "udata" }
          resourcebundles { "resources" }
          collation       { "collation" }
          breakit         { "breakit" }
          translit        { "transliteration" }
          unicode         { "unicode" }
          format          { "format" }
      }
}
