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.