Translating an external workbench/pl

W poniższych uwagach, powinien być nazwą twojego dodatku lub środowiska pracy, na przykład,  lub, lub cokolwiek innego. Ten kontekst sprawia, że wszystkie tłumaczenia twojego kodu będą zebrane pod tą samą nazwą, aby tłumacze mogli je łatwiej zidentyfikować. Oznacza to, że będą oni dokładnie wiedzieli, do którego dodatku lub środowiska pracy należy dany ciąg znaków.

Uwaga: Oto skrypt all-in-one, który automatyzuje całą procedurę opisaną poniżej (zalecamy jednak przeczytanie procedury, aby wiedzieć, co skrypt powinien zrobić): https://github.com/yorikvanhavre/BIM_Workbench/blob/master/utils/updateTranslations.py

Informacje ogólne

 * Dodaj folder . Możesz nadać mu inną nazwę, ale tak będzie łatwiej, ponieważ jest on taki sam w całym FreeCAD. W tym folderze umieścisz pliki (pliki tłumaczenia "źródła") i  (skompilowane pliki tłumaczenia).
 * Należy tłumaczyć tylko tekst, który jest wyświetlany użytkownikowi w interfejsie użytkownika programu FreeCAD. Tekst, wyświetlany w konsoli Python nie powinien być tłumaczony.
 * Tekst, który jest wyświetlany w, jest wyświetlany w oknie "Widok raportu" i dlatego powinien zostać przetłumaczony. Okno "Widok raportu" jest czymś innym niż konsola Python.

W każdym pliku .py Python

 * W każdym pliku, w którym musisz przetłumaczyć tekst, musisz mieć zdefiniowaną funkcję . Łatwym sposobem jest użycie tej z środowiska Rysunek Roboczy:

Od wersji FreeCAD 0.19 moduł FreeCAD definiuje również funkcję translate, najlepiej użyć właśnie tej:


 * Cały tekst, który musi zostać przetłumaczony, musi zostać przekazany przez funkcję.

staje się

Może to być użyte wszędzie: w, w , w oknach dialogowych Qt, itd. Funkcje nie dodają automatycznie znaku nowej linii , więc musi on być dodany na końcu, jeśli jest to pożądane. Ten znak również nie wymaga tłumaczenia, więc może znajdować się poza funkcją tłumaczącą:


 * Jeśli używasz plików wykonanych za pomocą QtDesigner, nie trzeba z nimi robić nic specjalnego.
 * Podczas tworzenia nowych obiektów, nie tłumacz "Nazwy" obiektu. Należy raczej tłumaczyć "Etykietę" obiektu. Różnica polega na tym, że "Nazwa" jest unikalna; pozostaje taka sama przez całe życie obiektu; z drugiej strony, "Etykieta" może być zmieniana przez użytkownika wedle życzenia.
 * Kiedy tworzysz właściwości dla swoich obiektów, nie tłumacz nazwy właściwości. Ale umieść opis wewnątrz :

Nie używaj swojego własnego w tym konkretnym przypadku. Zachowaj.
 * Nie tłumacz tekstu operacji na dokumentach wykonanych za pomocą

Wewnątrz InitGui.py

 * Dodaj następującą linię, blisko początku pliku:


 * Aby przetłumaczyć nazwy menu:


 * Makro nie robi nic, ale zaznacza teksty, które później zostaną pobrane przez narzędzie . Ponieważ nie robi ono w zasadzie nic, używamy go tylko w szczególnych przypadkach, gdy FreeCAD sam się wszystkim zajmuje.
 * Dodaj ścieżkę do folderu w funkcji Initialized:

Plik nie ma atrybutu plik, więc nie jest łatwo znaleźć względną lokalizację folderu tłumaczeń. Łatwym sposobem na obejście tego problemu jest zaimportowanie innego pliku z tego samego folderu, a następnie wykonanie w tym pliku polecenia

Wewnątrz każdej klasy poleceń FreeCAD

 * Dodaj następującą linię, na początku pliku:


 * Przetłumacz i  polecenia w ten sposób:

gdzie jest nazwą polecenia, zdefiniowaną przez

Zbierz wszystkie ciągi z twojego modułu

 * Będziesz potrzebował zainstalowanych w systemie narzędzi, , i . W dystrybucjach Linuksa są one zwykle dostępne w pakietach o nazwach  lub . W niektórych systemach  nazywa się  lub  lub  lub podobnie. To samo dotyczy innych narzędzi. Możesz użyć wersji Qt4 lub Qt5 według własnego uznania.
 * Jeśli masz pliki, musisz najpierw uruchomić :

To działa rekurencyjnie i znajdzie pliki wewnątrz wszystkich twoich katalogów.
 * Jeśli masz pliki, musisz również uruchomić :


 * Jeśli wykonałeś obie operacje, musisz teraz połączyć te dwa pliki w jeden:


 * Sprawdź zawartość trzech plików, aby upewnić się, że zawierają one łańcuchy znaków, a następnie możesz usunąć zarówno , jak i.
 * Możesz to wszystko zrobić w jednym skrypcie bash, tak jak poniżej:

Przesłanie pliku .ts do platformy tłumaczeniowej
Nadszedł czas, aby zlecić tłumaczenie Twojego pliku. Możesz założyć konto na publicznej platformie tłumaczeniowej, takiej jak Crowdin lub Transifex, lub możesz skorzystać z naszego istniejącego konta FreeCAD-addons na Crowdin, które ma już wielu użytkowników, a zatem jest większa szansa, że Twój plik zostanie przetłumaczony szybko i przez ludzi, którzy znają FreeCAD.

Jeśli chcesz udostępnić swój plik na koncie FreeCAD Crowdin, skontaktuj się z użytkownikiem Yorik na forum FreeCAD.

niektóre platformy, takie jak Crowdin, mogą zintegrować się z GitHubem i wykonać wszystkie procesy z punktów 2, 3 i 4 automatycznie. W tym celu nie można korzystać z konta FreeCAD Crowdin. Będziesz musiał założyć własne konto.

Scalanie tłumaczeń
Kiedy Twój plik został przetłumaczony, choćby częściowo, możesz pobrać tłumaczenia ze strony:


 * Zazwyczaj pobierasz plik zawierający jeden plik  na każdy język.
 * Umieść wszystkie przetłumaczone pliki, razem ze swoim podstawowym plikiem , w folderze.

Kompilacja tłumaczeń
Teraz uruchom program dla każdego pliku, który posiadasz.

Możesz zautomatyzować ten proces

Powinieneś znaleźć jeden plik dla każdego przetłumaczonego pliku. Pliki będą używane przez Qt i FreeCAD w czasie pracy.

That's all you need. Note that certain parts of your workbench cannot be translated on-the-fly if you decide to switch languages. If this is the case, you will need to restart FreeCAD for the new language to take effect.

Testing translations

 * 1) Switch FreeCAD to a language you have translated (ex. German)
 * 2) Load translation into FreeCAD, ex.
 * 3) Test something, ex.

Result: This should give you the German translation. If this works ok, then the basic setup is OK. Then we can look at something else. For ex, command names should always use a special context that is the name of the command as registered to FreeCAD.

Important notes

 * Make sure you are using a *context* and *string* that actually are in the ts/qm file of course.

Convenience script
Yorik maintains a convenience script for the BIM workbench, that can gather, upload and download ts files. You can just copy and adapt that script for your workbench:

https://github.com/yorikvanhavre/BIM_Workbench/blob/master/utils/updateTranslations.py

Important references

 * Why and how to translate functions (forum thread)

Related Pages

 * External Workbenches
 * Localisation
 * For more informations make your requests here Translating external workbenches