.NET рдкрд░ рдПрдХ рдлрдВрдХреНрд╢рди рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдмрд╛рд░-рдмрд╛рд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рдХрд╛рдо рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ рдпреЗ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рд╡рд╛рд▓реЗ рдЬреЛрдбрд╝реЗ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ:

  1. рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ред
  2. рд╕реНрдерд╛рдиреАрдп рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдЯреВрд▓ рдХрд╛ рдЕрднрд╛рд╡ (рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рдеред рдлрд╝рд░реНрдореИрдЯ)ред
  3. рд╕рд╛рдВрд╕реНрдХреГрддрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп - рдХрд┐рд╕реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рд╢рдмреНрдж рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди - рдХреЗрд╡рд▓ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬреЛ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрдорд┐рдпреЛрдВ рд╕реЗ рдореБрдХреНрдд рд╣реЛрдЧрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ C # рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ред

рдкреБрд╕реНрддрдХрд╛рд▓рдп рд░рдЪрдирд╛


SourceForge рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд▓рд┐рдВрдХ: https://sourceforge.net/projects/open-genesis/?source=navbar

рдЙрджрд╛рд╣рд░рдг: рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рджреГрд╢реНрдп

рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:



рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд


рдЫрд╡рд┐

рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреНрд░рдмрдВрдзрдХ

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдЬрдм рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреНрд░рдмрдВрдзрдХ (рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреНрд░рдмрдВрдзрдХ) рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд░рд╛рд╕реНрддрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреИрдХреЗрдЬ ( рд▓реЛрдХрд▓рд╛рдЗрдЬрд╝реЗрд╢рдирдкреИрдХреЗрдЬ ) рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХреГрддрд┐ (рд░реВрд╕реА рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреИрдХреЗрдЬ) рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЕрдВрдЧреНрд░реЗрдЬреА, рдЖрджрд┐)ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдВрдкреВрд░реНрдг рдЖрд░рдВрднрд┐рдХ рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

//    LocalizationManager = new LocalizationManager(); LocalizationManager.BasePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Localization"); LocalizationManager.Initialize(); try { LocalizationManager.DetectAllLocalizations(); } catch (LocalizationException ex) { MessageBox.Show(ex.Message, " ", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛, рддреЛ рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рдиреАрдпрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЙрдирдХреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг (рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛, рд╕реНрдерд╛рдиреАрдпрдХрд░рдгDescriptor ) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдмрдВрдзрдХ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред рдЗрди рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдкреИрдХреЗрдЬ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА рд╕реНрдерд╛рдиреАрдпрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рдмрдВрдзрдХ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:

 manager.Localizations 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рд░реВрд╕реА рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реАрдзреЗ рдкреНрд░рдмрдВрдзрдХ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 LocalizationPackage package = manager.Load("ru"); 

рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕рд╕реЗ рд▓рд╛рдЗрдиреЗрдВ, рд╕рдВрд╕рд╛рдзрди рдЖрджрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 manager.Unload("ru"); 

рдорд╣рддреНрд╡рдкреВрд░реНрдг! рдЖрдк рд╕реНрдерд╛рдиреАрдпрдХрд░рдгреЛрдВ рдХреА рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓реЛрдб рдФрд░ рдЕрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рд╕рднреА рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЛрдореЗрди (AppDomain) рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред

рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреИрдХреЗрдЬ

рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рд╕рднреА рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╡рд╣ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреНрд░рдмрдВрдзрдХ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ [ProjectDir] \ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реЛрдЧреА, рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреИрдХреЗрдЬ рд╕реАрдзреЗ [ProjectDir] \ Localization \ ru , [ProjectDir] \ Localization \ en рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдЖрджрд┐ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдВрдЧреЗред

рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдирдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

рдЫрд╡рд┐



рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкреНрд░рдмрдВрдзрдХ рдмрдирд╛рдпрд╛ рдФрд░ рдЙрд╕рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдкреИрдХреЗрдЬ рд▓реЛрдб рдХрд┐рдпрд╛ред рдЕрдм рдЗрд╕реЗ рддреАрди рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рдЗрд╕рдХреА рдХреБрдВрдЬреА (рдХреНрд▓рд╛рд╕рд┐рдХ рд╡рд┐рдзрд┐) рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдХреБрдВрдЬреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ Int32ред

    рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
     LocalizationPackage package = manager.Load(culture); string strByName = package["name"]; string strByID = package[150]; 

  2. рдЧреБрдЬрд░рддреА рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡рд░реВрдкрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдпрд╣ рд╡рд╣ рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

    рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
     LocalizationPackage package = manager.Load(culture); string formattedString = package["name", arg1, args2, ...]; 

    рдХрд┐рд╕реА рднреА рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

  3. рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣рд╛рдВ рд╕реЗ рдЫрд╡рд┐ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдпрд╛ GetImage (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо) рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдордирдорд╛рдиреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GetResourceFilePath (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред


рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреБрднрд╛рд╖рд┐рдпрд╛


рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рддрд╛рдХрдд рдЙрд╕рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рд╡рд╣ рдХреНрдпрд╛ рдкрд╕рдВрдж рд╣реИ?
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рддрд╛рд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХреГрддрд┐ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рд╕реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рд╛рдорд╛рдиреНрдп рдХреБрдВрдЬреА рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ "рд╢реБрджреНрдз" рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИ) рдпрд╛ рд╡рд┐рд╢реЗрд╖ GetFormattedString рд╡рд┐рдзрд┐ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк, params рдСрдмреНрдЬреЗрдХреНрдЯ [] args) рджреНрд╡рд╛рд░рд╛, рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдордирдорд╛рдирд╛ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рд╣реИрдВ:

  1. рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рддрд░реНрдХ рдХрд╛ рд╕рдорд╛рд╡реЗрд╢ред

    рдкреНрд░рд╛рд░реВрдк рдирд┐рд░реНрджреЗрд╢:
     %index% 

    рдкрд░рд┐рдгрд╛рдо: рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рддрд░реНрдХ рд╕рдВрдЦреНрдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛

    рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
     package.GetFormattedString("%1% = %0%%%", 80, ""); 

    рдкрд░рд┐рдгрд╛рдо:
      = 80% 

    рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ % рдЪрд░рд┐рддреНрд░, рдПрдХ рд╕реЗрд╡рд╛ рдЪрд░рд┐рддреНрд░ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдПрдХ рдЕрдиреНрдп рдЪрд░рд┐рддреНрд░ рд╕реЗ рдмрдЪ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдорд╛рди рд╣реИред

  2. рдлрд╝реАрдЪрд░ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

    рдкреНрд░рд╛рд░реВрдк рдирд┐рд░реНрджреЗрд╢:
     %Func(arg1, arg2, ..., argN)% 


    рджрд▓реАрд▓реЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ , рджреЛрд╣рд░реЗ-рдЙрджреНрдзреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ (рдЦреБрдж рдЙрджреНрдзрд░рдг рд╕реЗ рдмрдЪ рдЬрд╛рддреА рд╣реИрдВ, рдЬреИрд╕реЗ%, рдбрдмрд▓-рд░реАрдкреНрд▓реЗ рджреНрд╡рд╛рд░рд╛), рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ (% рдЗрдВрдбреЗрдХреНрд╕) рджреНрд╡рд╛рд░рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрд░реНрдХ , рдпрд╛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ ред

    рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
     package.GetFormattedString(" %1%    %Upper(Random(\"\", \"\", \"\"))% ,  %0% %Plural(%0, \"\", \"\", \"\")% .", 55, "MegaDeath2000"); 

    рдкрд░рд┐рдгрд╛рдо:
      MegaDeath2000     ,  55  . 


рдмрд┐рд▓реНрдЯ-рдЗрди рдлреАрдЪрд░реНрд╕ рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди


LocalizationPackage рд╡рд░реНрдЧ рдореЗрдВ рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд "рдорд╛рдирдХ" рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:


рдпрджрд┐ рдЖрдкрдХреЛ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред

  1. рдкреИрдХреЗрдЬ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд░реНрдЧ рдореЗрдВ, рдЖрдк рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ [рдлрдВрдХреНрд╢рди] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╡реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╣реБрд╡рдЪрди рдФрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд╛рд░реНрдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:

     [Function("P")] protected abstract object Plural(int count, params object[] forms); [Function] protected virtual object Random(params object[] variants) { if (variants.Length == 0) { return null; } else { return variants[_rnd.Next(variants.Length)]; } } 

    рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЙрдкрдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА (рдЫреЛрдЯреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╣реБрд╡рдЪрди рдХреЛ рдореБрдЦреНрдп рдирд╛рдо ( рдмрд╣реБрд╡рдЪрди ) рдФрд░ рдПрдХ рдЙрдкрдирд╛рдо ( рдкреА ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЛрдиреЛрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд╛рдореЛрдВ рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред

  2. рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХреАрдХрд░рдг, рдЗрд╕рдХреЗ рд▓рд┐рдП, InjectFormatterFunction рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

     var package = LocalizationManager.Load("ru"); package.InjectFormatterFunction(new Func<int, int, int>((a, b) => Math.Min(a, b)), "Min"); package.InjectFormatterFunction(new Func<int, int, int>((a, b) => Math.Max(a, b)), "Max"); package.GetFormattedString("%min(%0, max(%1, %2))%", 10, 8, 5); 

    рдкрд░рд┐рдгрд╛рдо:
     8 

    рдПрдХ рд╡рд┐рдзрд┐ (MethodInfo) рдпрд╛ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдПрдХ InjectFormatterFunction рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЛ рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреЛ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдбрд┐рдмрдЧ рдореЛрдб

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рди рдХреЗрд╡рд▓ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рддрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╣реИ:

 var package = LocalizationManager.Load("ru"); package["New Key"] = " "; package.Save(); 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдирдпрд╛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдФрд░ рдореВрд▓реНрдп (рдпрд╛ рдореМрдЬреВрджрд╛ рдПрдХ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛) рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдкреИрдХреЗрдЬ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рднреА рдЬрдм рдПрдХ рд▓рд╛рдкрддрд╛ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдПрдХ рдЦрд╛рд▓реА рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рд╣рдореЗрдВ рд╢рдмреНрджрдХреЛрд╢ рднрд░рдиреЗ рдХреА рджреЗрдЦрднрд╛рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдЦреБрдж рдХреЛ рдЦрд╛рд▓реА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдмрд╛рдж рдореЗрдВ рдбреЗрдЯрд╛ рд╕реЗ рднрд░ рджреЗрдВрдЧреЗред

рд░рд┐рд▓реАрдЬ рдореЗрдВ, рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ - рдПрдХ рдФрджреНрдпреЛрдЧрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЗрд╕рдХреЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдорд╛рдирдЪрд┐рддреНрд░рдг

рдпрд╣ рд╣рдорд╛рд░реА рдорд┐рдард╛рдИ рд╣реИред рдЙрджреНрджреЗрд╢реНрдп - рд░реВрдкреЛрдВ, рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдФрд░ рдЕрдиреНрдп рдЬрдЯрд┐рд▓ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рддреНрд╡рд░рд┐рдд рд╕реНрдерд╛рдиреАрдпрдХрд░рдгред
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рджреГрд╢реНрдп рдбреЗрдореЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдореБрдЦреНрдп рд░реВрдк рдХреЗ рд╡рд░реНрдгрди рдХрд╛ рдПрдХ рдЕрдВрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 [LocalizableClass("Text", "CAPTION")] public partial class frmMain : Form { ... [LocalizableClass] private System.Windows.Forms.ToolStripButton cmdExit; [LocalizableClass] private System.Windows.Forms.ToolStripButton cmdSave; [LocalizableClass] private System.Windows.Forms.ToolStripLabel lblSearch; ... /// <summary> ///   /// </summary> private void Localize() { LocalizationMapper mapper = new LocalizationMapper(); mapper.Current = manager["ru"]; mapper.Localize(this); } ... } 

LocalizationMapper , рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдлрд╝реАрд▓реНрдбреНрд╕ рдФрд░ рдЧреБрдгреЛрдВ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░реВрдкреЛрдВ) рдкрд░ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, [LocalizableClass] рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрдкрддреНрддрд┐ (рдкрд╛рда), рдФрд░ рдкреНрд░рдкрддреНрд░ рдХреА рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреБрдВрдЬреА <рд╡рд░реНрдЧ> <рдЙрдкрд╡рд░реНрдЧ> <рдлрд╝реАрд▓реНрдб> рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред CmdExit рдмрдЯрди рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП, рдХреБрдВрдЬреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧреА:

 LocalizationViewer.frmMain.cmdExit_Text 


рдирд┐рд╖реНрдХрд░реНрд╖


рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЬрд▓реНрдж рд╣реА рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕реБрдзрд╛рд░ рд╣реЛрдВрдЧреЗ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рдВрдХреБрд▓ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╣реИред SourceForge рдкрд░ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдмрдиреЗ рд░рд╣реЗрдВ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЖрдЧреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдФрд░ рд╡рд┐рдЪрд╛рд░ рд▓рд┐рдЦреЗрдВред

рдкреБрдирд╢реНрдЪ


рдЖрдк рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдордЬрдмреВрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рд▓реЗрдХрд┐рди рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдореЗрд░рд╛ рд╢реМрдХ рд╣реИ ...
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЖрддреНрдо-рд╕реБрдзрд╛рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░реЛрдЪрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реИред
рдЗрд╕реА рдХрд╛рд░рдг рд╕реЗ, рд╕рд╛рд╣рд┐рддреНрдп рдпрд╛ рд╕реВрдЪрдирд╛ рдХреЗ рдЕрдиреНрдп рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реЛрдЧрд╛ - рд╕рдм рдХреБрдЫ рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рдореЗрд░реЗ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд╢рди



  1. рдореЙрдбрд▓-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкрд╛рда рдкреИрдЯрд░реНрди рднрд░рдирд╛ред .NET рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрддрд┐рд╢реАрд▓ рдмрд╛рдЗрдЯрдХреЛрдб (IL) рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП

Source: https://habr.com/ru/post/In190556/


All Articles