C #: рефакторинг файла ресурсов - PullRequest
3 голосов
/ 05 июня 2009

Кто-нибудь знает хороший инструмент для рефакторинга ресурсов в решении Visual Studio 2008?

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

Кто-нибудь знает о хорошем визуальном студийном расширении или плагине ReSharper, который может помочь мне в этом? Сейчас это немного болезненно, потому что сначала мне нужно переименовать ключ в файле базовых ресурсов, а затем в локализованных версиях. А потом скомпилировать, чтобы получить все ошибки компиляции, возникающие из-за ключа, который теперь имеет другое имя, а затем пройти и исправить их все ... очень раздражает = /

Ответы [ 4 ]

1 голос
/ 10 ноября 2011

Я только что наткнулся на этот вопрос, который побудил меня написать в блоге о том, что я использую для этой проблемы, здесь Перемещение и переименование ключей ресурсов в файле .resx .

У меня есть два скрипта PowerShell, один из которых переименовывает ключ ресурса, а другой перемещает ключ ресурса из одного файла ресурсов в другой.

Используя эти сценарии, я могу переименовать ресурсный ключ:

.\RenameResource.ps1 oldKey newKey

И я могу переместить ресурс с ключом «keyName» из файла с именем «ResourceFile1.resx» в «ResourceFile2.resx»:

.\MoveResource.ps1 ResourceFile1 ResourceFile2 keyName
0 голосов
/ 10 июня 2009

Мы искали Sisulizer для локализации нашего программного обеспечения, и я думаю, что оно выполняет то, о чем вы просите (возможно, немного излишне?)

0 голосов
/ 16 мая 2010

Кажется, что некоторые новые функции в ReSharper 5 помогают с этим

Локализация ваших приложений с помощью ReSharper 5

Эта демонстрация показывает, как ReSharper 5 помогает вам быстро локализовать строки в вашем коде, не нарушая обычный рабочий процесс. Работа с файлами ресурсов больше не является кошмаром разработчика с ReSharper 5.

0 голосов
/ 05 июня 2009

RGreatEx подходит, когда вам нужно переместить много строк кода в ресурсы. Но в этом случае это не поможет.
Там нет такого плагина (* это означает, что я никогда не видел такого и не нашел в Google, но есть некоторые локализаторы, которые могут помочь перевести на новый язык - http://www.peoplewords.com/download/ResxEditor.aspx и http://sourceforge.net/projects/resx/ и http://www.resx -localization-studio.net / и http://madskristensen.net/post/A-NET-resource-editor-application-for-resx-files.aspx). Но вы легко (возможно) можете сделать это без него.
Все, что вам нужно, это написать небольшой инструмент, который сгенерирует общий словарь строк для выбранного языка для нескольких выбранных файлов resx и сохранит его где-нибудь. Еще один инструмент, который вам нужно создать, - это инструмент, который будет генерировать новые файлы resx (после ваших изменений), используя измененные resxs в качестве шаблонов и используя словарь, созданный предыдущим инструментом.
Конечно, все новые и измененные строки будут отсутствовать, но это можно исправить вручную. Это займет не так много времени (особенно если вы добавите функциональность для записи журнала пропущенных строк во время генерации нового resx).

...