Eksportowanie tłumaczenia z SDL Passolo Translator Edition

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.

Passolo-01.png

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:

Passolo-02.png

A w wersji 2016 tak:

Passolo-03.png

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.

<< Wróć do poprzedniej strony