Лучшие альтернативы использованию файлов ресурсов на сайте .net - PullRequest
13 голосов
/ 17 мая 2011

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

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

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

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

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

Ответы [ 5 ]

5 голосов
/ 17 мая 2011

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

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

2 голосов
/ 17 мая 2011

Конечно - используйте файл конфигурации.По сути, это файл 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>

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

1 голос
/ 29 июля 2011

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

1 голос
/ 17 мая 2011

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

0 голосов
/ 04 сентября 2017

Используйте Microsoft MAT или напишите собственного провайдера для MAT. Больше информации на их сайте: https://developer.microsoft.com/en-us/windows/develop/multilingual-app-toolkit; -)

...