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
{
  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?