Здравствуйте. Хочу поделиться небольшой наработкой в области автоматизации локализации приложений разработанных с использованием технологии SilverLight. Прочитав этот пост (Локализация в Silverlight), стало ясно, что придется выносить все строковые константы в ресурсные файлы, что нельзя назвать особо интеллектуальной работой. Поэтому решил пойти длинным путём и попробовать автоматизировать данный процесс с помощью встроенных в Visual Studio макросов.
В связи с тем, что от меня так же требовали немного причесать код, было решено отказаться от полной автоматизации (полного сканирования всех xaml файлов с поиском русских букв и вынесением в ресурсы). Плюс не смог придумать нормальной автоматизации замены строковых констант в .cs файлах.
После анализа были выработаны следующие требования к макросу:
- проанализировать выделенную пользователем фразу (по нажатию на определённую комбинацию клавиш);
- найти перевод фразы в google translate (чтобы не напрягать пользователя придумыванием названия ресурса);
- добавить фразу в указанные заранее ресурсы (причем необходимо, чтобы изменения производились через VS, так как нам нужен сгенерированный прокси класс);
- заменить выделенную пользователем фразу на биндинг к ресурсу.