2013-03-08 2 views
7

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

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

ответ

1

Вам нужно будет его написать. Я сделал аналогичные вещи с помощью платформы O2 Platform AST Mono.Cecil и mono Cecil API.

Если вы дадите мне небольшой проект с использованием может вам нужно (а Resx файл и представление MVC) Я могу показать вам фрагмент кода пример

1

Я не видел ничего, что бы заботиться об этом , Моя первая мысль связана с проблемами локализации, которые могут быть представлены в большинстве решений «из коробки».

Это может быть далеко, но выстрелил. Не могли бы вы написать приложение C#, которое загрузило бы сборку, в которой хранится файл ресурсов, затем прокрутите каждый файл в проекте и замените ключи ресурсов на значения?

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

0

Спутниковые сборки .. Если у вас есть все ресурсы приложения, размещенные в проекте, создайте язык, отличный от используемого по умолчанию, который вы хотите реализовать. Например, fr_ca.ErrorMsg | en_gb.ErrorMsg и en_Us.ErrorMsg. Язык по умолчанию может быть указан в главном файле Thread.CultureInfo. Если en_us затем заполнит файл en_us всеми необходимыми статьями, а другие ресурсы будут загружены только в том случае, если он не существует в ресурсе по умолчанию -> en_us.

+0

Вопрос в том, можно ли _remove_ локализации, а не добавлять его! –

+0

Извиняюсь заранее. Удаление локализации. Если у вас есть существующая локализация, используйте языковые ресурсы по умолчанию и удалите остальные. Или удалите и языковые ресурсы из своего приложения и перестройте оттуда :( –

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