Использование SQL для локализации вместо файлов RESX в ASP.NET - PullRequest
6 голосов
/ 11 апреля 2010

Я думаю о разработке следующего, но задаюсь вопросом, существует ли оно уже там:

Мне нужно решение на основе SQL для назначения и управления текстовыми значениями локализации для сайта asp.net вместо использования файлов RESX. Это помогает сохранять текст на сайте, не снимая его для развертывания, когда требуется обновление.

Спасибо.

Ответы [ 5 ]

3 голосов
/ 11 апреля 2010

Мы на самом деле пошли по этому пути и в итоге получили действительно очень медленный веб-сайт - отказ от механизма перевода на основе SQL и использование ресурсов ASP.NET дали нам значительное повышение производительности. Так что я не могу порекомендовать вам сделать то же самое .... (и да - мы кэшировали и оптимизировали пропускную способность и все такое - а работа на основе SQL все еще была значительно медленнее).

Вы получаете то, за что платите - подход на основе SQL был более гибким с точки зрения возможности «переводить» на лету, исправлять опечатки и прочее. Но, в конце концов, в нашем приложении (Webforms, .NET 2.0 в то время) использование ресурсов оказалось единственным жизнеспособным путем.

1 голос
/ 11 апреля 2010

Мы сделали это (перевод на основе SQL), и мы очень довольны результатом!Мы разработали интерфейс для переводческих агентств для выполнения обновлений на странице онлайн.Как побочный эффект, решение стало служить системой управления контентом.Если вы кешируете свои данные, производительность не является проблемой.Недостатком является то, что мы вложили несколько сотен часов в наше решение.(Я бы предположил, что около 600 часов, но я мог проверить.)

0 голосов
/ 05 августа 2013

Я создал схему перевода на основе SQL. Но я загружаю только необходимые переводы для данной страницы, когда она запрашивается, и только переводы для этой конкретной страницы.

Они загружаются в объект словаря при перезагрузке страницы и кэшируются во время сеанса. Тогда это просто замена текста, основанная на поиске по этому вопросу.

Практически все это генерируется динамически и включает пользовательский контент, который должен быть переведен, поэтому гибкость является ключевой.

Производительность довольно высокая, запросы SQL для извлечения всех данных занимают намного больше времени (условно говоря).

0 голосов
/ 04 января 2012

Я не уверен насчет перезапуска сайта, но по крайней мере использование .NET MVC очень удобно, и я не заметил этой проблемы перезапуска, и, если происходит, как часто вам нужно обновлять файлы resx? Для больших проектов я использую для создания решения с несколькими проектами, один для локализации, что-то вроде этого:

  • MyApp.Localization
    • Модель
    • Страница
    • File1.resx
  • MyApp.Core
  • MyApp.Web

Затем в веб-проекте я добавляю ссылку на проект Localization и использую его как

@MyApp.Localization.Model.Customer.CustomerName

@MyApp.Localization.Page.About.PageTitle

@MyApp.Localization.File1.Paragraph1

Каждый раз, когда я изменяю переведенный текст, я либо загружаю обновленный файл .dll, либо копирую файлы .resx.

ПРИМЕЧАНИЕ. Вам необходимо установить для файлов resx значение PUBLIC, чтобы к ним можно было обращаться строго по типу.

0 голосов
/ 11 апреля 2010

В результате мы получили гибридное решение, в котором пользователи могли редактировать содержимое в базе данных, но затем приложение создало .resx, который был развернут вручную.

Вы также можете полностью обойти перевод сервера и выполнить перевод в jQuery на клиенте, что я успешно использовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...