[Из песочницы] Локализация проектов на .NET с интерпретатором функций

Пролог Начну с того, что за много лет работы программистом я неоднократно сталкивался с задачей внедрения в проект локализации в том или ином виде, но обычно это были решения, работающие на основе подгружаемого словаря с парами ключ-значение. Такой подход вполне оправдан для небольших проектов, но имеет ряд существенных недостатков: Сложность внедрения в существующий проект. Отсутствие средств форматирования локализованных сообщений (за исключением стандартного string.Format). Невозможность встраивания культурно-зависимых функций. Например, типичную задачу, — подстановку нужной формы слова в зависимости от значения числа, — одними словарями значений не разрешить. Проанализировав эти проблемы, я пришел к выводу о необходимости создания собственной библиотеки для локализации проектов, которая будет лишена перечисленных выше недостатков. В этой статье я расскажу о принципах ее работы с примерами кода на C#.Состав библиотеки Ссылка на проект SourceForge: https://sourceforge.net/projects/open-genesis/? source=navbar В сборку входят следующие проекты: Genesis.Localization — основная библиотека локализации. Ru — реализация русской локализации (пример). En — реализация английской локализации (пример). LocalizationViewer — программа для демонстрации возможностей библиотеки с возможностью редактирования локализаций.image Читать дальше →

© Habrahabr.ru