В моем офисе мы обсуждали, что будет лучшим способом обработки локализации наших настольных приложений.Должен ли я хранить данные локализации для настольных приложений в базе данных?
Хотя использование файлов ресурсов представлялось очевидным выбором, мы поняли, что можем использовать базу данных для централизованного управления локализацией. Приложение будет подключаться к базе данных, чтобы начать загрузку всех необходимых переводов или загрузить заказы по запросу при визуализации элементов управления.
Приложения (созданные с использованием C#) развертываются в высоко контролируемой среде для внутреннего использования с помощью инструментов, которые обрабатывают сама публикация, а также текущие обновления. У нас есть один репозиторий для распространения файлов и один сервер базы данных для обработки нескольких спутниковых сайтов.
Будет ли база данных жизнеспособным решением для обработки пользовательских интерфейсов в настольном приложении?
Звучит нормально, но это не лучший способ для всех. Это может быть лучше всего в вашем сценарии (сначала рассмотрите все). Вопрос в том, почему ресурс вреден для вас? Почему база данных? Уметь быстро обмениваться обновлениями локализации? Как часто это происходит? Являются ли преимущества недостатками? Только вы можете ответить на эти и другие вопросы. В настоящее время вопрос слишком широк (если мы попытаемся рассмотреть все) или основанное на мнениях (как все могут подумать о его сценарии). – Sinatr
@Sinatr Ну, идея инициатора по использованию базы данных для хранения переводов - это позволить нам «централизовать локализацию» для повторного использования переводов между приложениями. Это, конечно, приводит к проблемам, в которых файлы ресурсов свободны - это зависит от сети и значительно медленнее. Мне было интересно, есть ли способ смягчить недостатки базы данных и по-прежнему сможет извлечь выгоду из остроконечных ошибок. –
Вы можете создать собственную локализацию. Я использую txt-файлы, которые загружаются при запуске приложения и используются для обновления свойств статического класса с помощью отражения. Тогда все, что вам нужно, это простой механизм для получения версии и загрузки полных переводов (если версия более новая, чем клиент уже имеет). База данных должна делать. – Sinatr