2016-01-19 88 views
16

Utrzymuję jeden program napisany w C# 2.0 (VS2005). Ma dość duży kod, wielu autorów, to prawie aplikacja wewnętrzna, ale obecnie jest to również jeden z naszych klientów, którzy z niej korzystają.C# .NET i tłumaczenie zewnętrznego komponentu

Aplikacja jest wielojęzyczna, a tłumaczenie własnych formularzy i komponentów działa poprawnie. Ale jest jeden komponent - DockPanel Suite autorstwa WeifenLuo i muszę przetłumaczyć go na inny język (zh-CN) - jeden z chińskich facetów przetłumaczył plik z zasobami na jego język i teraz próbuję go włączyć i wykorzystać w aplikacji, ale zawodzę - chociaż cała aplikacja jest po chińsku, ten komponent pozostaje w języku angielskim. Nieprzetłumaczony plik zasobów można znaleźć na github: https://github.com/dockpanelsuite/dockpanelsuite/blob/master/WinFormsUI/Docking/Strings.resx

Jak to zrobić? Próbowałem prawie wszystkiego, naiwnego podejścia (tylko resgen i kompilacji przez al, i próbując użyć go jako zestawu satelitarnego - również wypróbowałem ilmerge), a następnie otwierając DockPanelSuite w VS2013 Express, dodając resx jako Strings.zh-CN.resx, ale nic nie działa i podpowiedzi oraz inne są nadal w języku angielskim.

Próbowano także intensyfikacji-in z debugger, ale debugger wybuchł w tooltip = Strings.DockPaneCaption_ToolTipAutoHide ale nie wkroczyć getter określonym w Strings.Designer.cs

utknąłem i nie wiem, jak to zrobić że. Dowolny pomysł? Dziękuję bardzo!

+0

Nie bardzo rozumiem twój problem, ale jedno mogę pomóc wyjaśnić: "to nie wkroczyło w gettera" - nie będzie. Aby debugować seter lub getter, potrzebujesz specjalnego sposobu. Sprawdź to: http://stackoverflow.com/questions/4408110/debugging-automatic-properties – Ian

+0

Problem polega na tym, że nie mogę "wstawić" innego zasobu językowego do komponentu (w oddzielnej bibliotece DLL). Wciąż używa angielskiego. –

Odpowiedz

6

udało mi się przetłumaczyć etykietę w aplikacji demo w bardzo prosty proces:

  • git sklonować bibliotekę
  • Copy & wklej Strings.resx plik
  • Zmień nazwę kopii na ciągi .pt-BR.resx
  • kompilacji, to się robi (w moim przypadku, tłumaczone "Zamknij" label)

enter image description here

jednak projekt ten zawiera wiele pliki Strings.resx

enter image description here

Czy zmienić wszystkie z nich? A może po prostu go zmieniłeś? (może źle, tak jak zrobiłem to przy pierwszej próbie)

+0

Cześć, dziękuję za odpowiedź. Dobra uwaga, ale jeśli się nie mylę, każdy "motyw" przechodzi do oddzielenia .dll i nie używam ich. Ale, oczywiście, próbowałem aktualizować każdy resx, aby zobaczyć, z którego ciągu pochodzą pliki i pochodzą one z pliku, którego używam i próbuję przetłumaczyć (dodałem krótki ciąg id do każdego "Auto hide" w zasobach i Ciąg WinFormsUI pojawił się w mojej aplikacji). –