Есть ли проблемы с производительностью или оговорки с файлами ресурсов (.resx)?

Файлы ресурсов кажутся отличными для локализации ярлыков и сообщений, но являются ли они идеальными?

Например:

  1. Есть ли лучшее решение, если есть огромное количество ресурсов? Как 100 000 строк в файле .resx? (Теоретически, у меня на самом деле нет этой проблемы)
  2. Является ли это хорошим методом для хранения других типов данных, таких как изображения, значки, аудиофайлы, обычные файлы и т. Д.?
  3. Рекомендуется ли хранить ваши .resx-файлы в автономном проекте для упрощения обновления / компиляции?
  4. Есть ли другие проблемы, с которыми вы столкнулись при использовании .resx-файлов?

c#,asp.net,resources,resx,resource-files,

15

Ответов: 8


5 принят

 1. Есть ли лучшее решение, если есть огромное количество ресурсов? Как 100 000 строк в файле .resx? (Теоретически, у меня на самом деле нет этой проблемы)

Я использовал Alfresco в качестве альтернативного репозитория контента для проектов Java. Файлы RESX, с точки зрения поддержки (из-за проблем с кодировкой, которые, как я полагаю), могут сильно вонять.

 2. Является ли это хорошим методом для хранения других типов данных, таких как изображения, значки, аудиофайлы, обычные файлы и т. Д.?

Я видел, как он работает с изображениями ... но это все. (не уверен в других носителях / файлах)

 3. Лучше ли хранить ваши файлы .resx в автономном проекте для упрощения обновления / компиляции?

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

 4. Есть ли другие проблемы, с которыми вы столкнулись при использовании .resx-файлов?

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


Недавно я использовал файл .resx с 5 миллионами строк (нормальная длина, как и это предложение), скомпилированный в разных DLLS размером около 1 ГБ. Он по-прежнему отлично работает в веб-проекте Azure.

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


3

Мы использовали файлы ресурсов в относительно большом приложении .NET Windows Forms (более 500 различных форм, примерно 20 строк ресурсов для каждой формы), и у нас не было проблем с производительностью в отношении ресурсов из файлов .resx. Мы использовали Babylon.NET как инструмент для управления переводами (имеет бесплатную версию только для переводчиков). Вы не указали, будет ли ваш проект веб-или настольным приложением. Одна функциональность, которую предоставляют файлы ресурсов для настольных приложений, - это возможность локализовать позиции управления и размер, которые ИМХО невозможно использовать с помощью других инструментов (если вы не используете что-то вроде управления компоновкой DevExpress, которое имеет автоматическую калибровку).


2

У меня было две проблемы с файлами ресурсов, как о производительности переводчиков (людей), так и скорости поиска строк.

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

Поэтому они просто использовали Excel для редактирования переводов. Поэтому мы могли бы также сохранить переведенные строки в виде CVS-файла, поэтому избегаем копировать переведенные строки в файлы ресурсов.

Необходимо выполнить новую сборку, чтобы потребовать влияние любых переводов.

Еще раз, если переведенные строки были сохранены в виде файла CSV, мы могли бы кэшировать их в кеше ASP.NET. Затем любые изменения в переводах будут отображаться при загрузке следующей страницы.


Таким образом, мы могли бы использовать пользовательскую реализацию поставщика ресурсов и поддерживать стандартную систему поиска ресурсов ASP.NET. Или просто игнорируйте стандартную систему поиска ресурсов, если это не поможет в вашем случае - это зависит от того, как написаны ваши страницы.


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


1

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

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

C #, ASP.NET, ресурсы, RESX, ресурсные-файлы,
Похожие вопросы