2016-12-21 6 views
0

При использовании .resx файлы ресурсов для локализации У меня есть follwing болевые точки:Мои .resx Файл ресурсов Pain Points

  1. Для каждой метки, мне нужно, чтобы сделать запись в каждом отдельном файле языка. Он подвержен человеческой ошибке с точки зрения копирования имени записи, и было бы проще добавить разные языковые версии одной и той же метки в одном месте. Например:

    var lbl_Hello = new { en = "Hello, fr = "Bonjour" };

  2. Я не могу показаться, чтобы искать имена или значения внутри Resx визуального редактора с помощью визуального поиска Studio.

Есть ли альтернативы для преодоления этих проблем?

+0

См. Редактирование моего ответа. Ciao – Vi100

ответ

0

Я чувствую вашу боль. Смешно, что Microsoft не обеспечила лучшей альтернативы для этого в течение многих лет. Даже локализация .NET Core использует файлы .resx. Моя альтернатива для этого - создать таблицу с одним столбцом для языка, который вы хотите отслеживать. Затем загрузите его в память в ближайшее время в конвейере (в .NET Core) или в фазе конфигурации (старше ASP) в виде статической переменной (словаря) или я вставляю ее в локальный/общий кеш без даты истечения срока действия.

EDIT

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

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

+0

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

Смежные вопросы