Anonymous - 2008-06-07

Format will be the same, but API will simplify:

New API for refactored library

sealed class Language
  string LinkedFile (get)
  string EnglishName (get)
  string NaturalName (get)
// no public constructors

public class Translation
  static Translation Current (get)
  string this[int index] (get)
  string Copyright(get)
  string Author(get)
  string Email(get)
  void Load(string filename, ReadOnlyCollection<string> namespacesToLoad)
  string[] ToSetOfLines(int id)

class ManagerBehaviourSettings
  bool UseToolGeneratedConfigFile(get)
  bool RequestLanguageIfNotSpecified(get)

public class LocalizationGenericException: Exception
// no public constructors
  string Details(get)

delegate void ApplyLanguage(Translation instance);
delegate void ChangedLanguageOptions(string languageName);
class LanguagesManager
  event ApplyLanguage OnApplyLanguageEventHandler;
  event ChangedLanguageOptions OnChangedLanguageOptionsEventHandler;
  string CurrentLanguage{get, set}
  LanguagesManager(ReadOnlyCollection<string> namespacesToLoad,
                                string pathToLocals,
                                string projectName,
                                ManagerBehaviourSettings settings)
  void Init()
  void Init(string language)
  void ShowSelectlanguageDialog(bool canCancel, bool apply)
  void GenerateMenuWithLanguages(ToolStripMenuItem menuItemWhereToAdd)
  void Apply()

class Languages
  Language[] GetItems()
  void Load(string directoryWithLocals)

All libraries will throw LocalizationGenericException except cases such as empty strings an so on

Memory usage for keeping locals decreased in 2.1 time,
speed of retrieving improved
license changed

Question is about API. Is it all's ok about it?