С#.NET & Перевод внешнего компонента
Я поддерживаю одну программу, написанную на С# 2.0 (VS2005). У этого есть довольно большая база кода, много авторов, это почти внутреннее приложение, но в настоящее время это также один из наших клиентов, использующих его.
Приложение является многоязычным, а перевод собственных форм и компонентов работает нормально. Но есть один компонент - DockPanel Suite от WeifenLuo, и мне нужно перевести его на другой язык (zh-CN) - один из китайских ребят перевел файл ресурсов на свой язык, и теперь я пытаюсь включить и использовать в приложении, но я терпеть неудачу - хотя целое приложение находится на китайском языке, этот компонент остается на английском. Непереведенный файл ресурсов можно найти в github: https://github.com/dockpanelsuite/dockpanelsuite/blob/master/WinFormsUI/Docking/Strings.resx
Как это сделать? Я попробовал почти все, наивный подход (просто resgen
и скомпилировать al
, и попытаться использовать его как сборку спутника - также попробовал ilmerge
), а затем открыть DockPanelSuite в VS2013 Express, добавив resx как Strings.zh-CN.resx, но ничего не работает, а всплывающие подсказки и другие по-прежнему остаются на английском языке.
Пробовал также вступать в отладчик, но отладчик разбился на tooltip = Strings.DockPaneCaption_ToolTipAutoHide
, но он не входил в getter, определенный в Strings.Designer.cs
Я застрял, и я не знаю, как это сделать. Есть идеи? Большое спасибо!
Ответы
Ответ 1
Я смог перевести метку в демонстрационном приложении в очень простой процесс:
- git клонировать библиотеку
- Скопируйте и вставьте файл Strings.resx
- Переименуйте копию в Strings.pt-BR.resx
- Скомпилируйте, это было сделано (в моем случае я перевел метку "Закрыть" )
![введите описание изображения здесь]()
однако этот проект содержит много файлов Strings.resx
![введите описание изображения здесь]()
Вы все изменили? Или вы просто изменили его? (возможно, неправильный, как и в первой попытке)