Narzędzia tłumacza
Eksportowanie tłumaczenia z SDL Passolo Translator Edition
Opublikowano 19 gru 2017
SDL Passolo Translator Edition to program, który co prawda pozwala na bezpośredni eksport tłumaczenia w formacie rozpoznawanym przez xbench, jednak funkcja ta ma pewne ograniczenia. Na przykład nie zezwala na eksport łańcucha tłumaczenia o długości przekraczającej 2000 znaków. Być może nie jest to niezbędne, ponieważ Passolo udostępnia własne opcje sprawdzania poprawności tłumaczenia. Ja jednak preferuję pracę z xbench i dlatego postanowiłem poszukać odpowiedniego rozwiązania.
W przypadku Passolo Translator Edition z pomocą przychodzi mechanizm Automation Object Model, który pozwala na pisanie skryptów rozszerzających możliwości programu. (To, o czym piszę, dotyczy na pewno wersji 2011, 2015 i 2016, gdyż tam to sprawdzałem). Program Passolo jest nawet wyposażony w edytor pozwalający na pisanie makr. Nie wiem, czy jest dobry, bo z niego nie korzystałem, a odpowiednie makro opracowałem za pomocą mojego ulubionego edytora (Notepad++). Moje makro to właściwie tylko niewielka modyfikacja innego makra, które znalazłem w sieci. Ja nazwałem swój plik makra ExportToXbenchDisplayed.bas, ale można mu nadać dowolną nazwę, byle z rozszerzeniem .bas. Jego treść jest następująca:
''This macro exports English and translated strings to a text file for use in xbench. ''The macro displays all (and only) strings that are currently displayed in the string list. ' ExportToXbenchDisplayed.bas ' Version 1.0 Created 12/18/2014 by Grzegorz Karpowicz ' Based on TransDump.bas by Hidenori Yoshizumi Option Explicit 'Define Constant Dim CsvName As String 'CSV file name Dim errorcount As Integer Sub Main() Dim prj As PslProject Dim s1 As String, s2 As String, s As String Dim filePath As String Dim i As Long Dim fso Dim myfile If PSL.Projects.Count < 1 Then MsgBox "No project open", vbCritical, "Warning" Exit Sub End If Set prj = PSL.ActiveProject ' Put put file path filePath = prj.Location If Right(filePath, 1) <> "\" Then filePath = filePath & "\" End If filePath = filePath & prj.Name & "-Displayed" & ".txt" Set fso = CreateObject("Scripting.FileSystemObject") Set myfile = fso.CreateTextFile(filePath, True, True) For i = 1 To PSL.ActiveTransDisplay.StringCount(pslDisplay) s1 = Trim(PSL.ActiveTransDisplay.String(i,pslDisplay).SourceText) s2 = Trim(PSL.ActiveTransDisplay.String(i,pslDisplay).Text) If s1 <> "" Or s2 <> "" Then s = Refine(PSL.ActiveTransDisplay.String(i,pslDisplay).SourceText) & Chr(9) & Refine(PSL.ActiveTransDisplay.String(i,pslDisplay).Text) myfile.WriteLine s End If Next i myfile.Close MsgBox "Done" End Sub Private Function Refine(s As String) As String Dim ss As String ss = Trim(s) ss = Replace(ss, Chr(10), "\n") ss = Replace(ss, Chr(13), "\r") ss = Replace(ss, Chr(9), "\t") Refine = ss End Function
Nie widzę sensu w tłumaczeniu, co robią poszczególne instrukcje. Najważniejsze jest to, że wykonanie tego makra powoduje wyeksportowanie wszystkich segmentów wyświetlanych w danym momencie na liście All strings do pliku tekstowego w formacie określanym przez xbench jako Tab-delimited Text File. O tym, które segmenty zostaną wyeksportowane, decyduje bieżący filtr ustawiony w Passolo. Na przykład po zakończeniu tłumaczenia można ustawić filtr Strings for review i wyeksportować przetłumaczone segmenty (niebieskie) w celu ich wczytania do xbench i sprawdzenia.
Eksportowany plik zostaje zapisany w tym samym katalogu, w którym znajduje się tłumaczony plik, a jego nazwa ma format <nazwa-pliku-tłumaczonego>-Displayed.txt. Na przykład podczas tłumaczenia w programie Passolo 2011 pliku sample_translation.tbulic11 plik wyeksportowany za pomocą powyższego makra zostanie zapisany w tym samym katalogu, ale pod nazwą sample_translation-Displayed.txt. Wystarczy wczytać go do xbench i wykonać wybrane testy. Niestety nie ma takiej możliwości, aby podczas wyświetlania wyników kontroli jakości w xbench przejść z wiersza wyświetlanego na liście błędów bezpośrednio do odpowiedniego segmentu w Passolo za pomocą opcji Edit Source (kombinacja klawiszy Ctrl+Alt+Enter).
Aby móc korzystać z tego makra, należy zapisać je w odpowiednim katalogu na dysku komputera. Ten odpowiedni katalog zależy od używanej wersji Passolo:
- 2011: C:/Users/Public/Documents/Passolo Translator/2011
- 2015: C:/Users/Public/Documents/Passolo Translator 2015/Macros
- 2016: C:/Users/Public/Documents/Passolo Translator 2016/Macros
To właściwie wystarczy, tyle że wywołanie makra jest kłopotliwe, gdyż wymaga przebrnięcia przez dwa poziomy menu, wybrania odpowiedniego makra i kliknięcia przycisku uruchamiającego. Dużo wygodniej jest dodać makro do menu Tools. Można to łatwo zrobić we wszystkich omawianych tu wersjach Passolo. Procedura jest bardzo podobna, a występujące różnice (wynikające ze zmian wprowadzonych do interfejsu użytkownika przy przejściu od wersji 2011 do 2015 — wstęga zamiast paska narzędzi) są nieistotne. Po wybraniu kolejno opcji Tools > Configure Tools zostaje wyświetlone okno dialogowe Tools. Należy teraz kliknąć w tym oknie przycisk Add Macro, wybrać z wyświetlonej listy makr pozycję ExportToXbenchDisplayed.bas i wypełnić pola Title (obowiązkowo) oraz Description (nieobowiązkowo). U mnie wygląda to, jak na poniższej ilustracji, na której zaznaczyłem wymienione powyżej przycisk i pole listy.
Symbol & umieszczony w polu Title oznacza klawisz skrótu umożliwiający wybór nowo utworzonej opcji menu Tools za pomocą klawiatury. Efekt końcowy zależy od wersji Passolo. W wersji 2011 wygląda tak:
A w wersji 2016 tak:
Teraz można już z łatwością wyeksportować tłumaczenie do xbench. Wystarczy ustawić odpowiedni filtr (np. Strings for review) i wybrać opcję menu Tools > Export to xbench all displayed strings (za pomocą klawiatury: Alt+t e). Zakończenie eksportu jest sygnalizowane komunikatem Done. Wynikowy plik z tłumaczeniem można wczytać do xbench i wykonać wybrane testy kontroli jakości.