Подтвердить что ты не робот

Лучшие альтернативы использованию файлов ресурсов на .net сайте

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

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

Я знаю, что обновление файла resx заставляет приложение перекомпилировать, и мне не нравится идея разрешать загрузку нетехников и беспорядок с файлом resx (не говоря уже о том, что сайт не скомпилирован в живой среде), поэтому я "Интересно, есть ли другие доступные нам опции, кроме как спуститься по маршруту базы данных?

Если нам нужно создать этот тип функций локализации в нескольких таблицах базы данных, есть ли у кого-нибудь хорошие шаблоны для начала?

Не уверен, помогает ли это знать или нет, но сайт, о котором мы говорим о строительстве здесь, будет локализован примерно на 15 разных языках, включая китайский и арабский. Перевод будет применяться на страницах aspx и в XML, которые оставят нашу систему третьим лицам.

4b9b3361

Ответ 1

Что бы вы ни делали, вам, вероятно, потребуется написать настраиваемый ResourceProvider.

Вы можете подумать об использовании XML в качестве источника для локализуемых ресурсов - в этом случае вы можете использовать нескомпилированные файлы resx, но я думаю, это то, о чем вы жалуетесь. В противном случае вы можете использовать файлы пакетов, аналогичные свойствам Java, я имею в виду простой текстовый файл с парами ключ = значение. Это должно быть очень легко редактировать.

Ответ 2

Конечно - используйте конфигурационный файл. Это в основном файл XML.

<messages locale="DE">
    <message id="FileNotFound" Value="Die Datei wird nicht gefunden" />
    <message id="FatalErr" Value="Es ist ein schwerwiegender Fehler gewesen. Das Programm muss beendet." />
    ...
</messages>

У вас может быть один файл для каждого языка или объединить их в один файл.

Ответ 3

Верьте или нет, вы не первый из них!:) Здесь статья Я нашел несколько лет назад о том, как реализовать пользовательский поставщик ресурсов для .NET. Вы можете сохранить свой старый ресурсный подход в своем коде и предоставить провайдеру данные из любой точки, где бы вы ни находились.

Ответ 4

Вместо того, чтобы писать собственный поставщик ресурсов, может быть, онлайн-переводчик, например ResX Online Translator поможет? Переводчикам не нужно загружать любые resx, и файлы автоматически загружаются в ваше приложение asp.net в реальном времени (или dev).