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