new version details

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