Skip to content

Commit 79acc0e

Browse files
committed
add note and creation info for tmx export and import; apply extra info when applying a tm
1 parent 5ef00e9 commit 79acc0e

8 files changed

+201
-90
lines changed

BasicCAT/BasicCAT.b4j

+54-51
Original file line numberDiff line numberDiff line change
@@ -169,57 +169,57 @@ Library8=jrandomaccessfile
169169
Library9=jb4xencryption
170170
Module1=FileChooserUtils
171171
Module10=preTranslateDialog
172-
Module11=SearchView
173-
Module12=TMManager
174-
Module13=importDialog
175-
Module14=idmlFilter
176-
Module15=Xml2Map
177-
Module16=XMLUtils
178-
Module17=Utils
179-
Module18=TMX
180-
Module19=searchAndReplaceDialog
172+
Module11=zip4j
173+
Module12=progressDialog
174+
Module13=SearchView
175+
Module14=TMManager
176+
Module15=importDialog
177+
Module16=idmlFilter
178+
Module17=Xml2Map
179+
Module18=XMLUtils
180+
Module19=Utils
181181
Module2=Project
182-
Module20=xliffFilter
183-
Module21=Preferences
184-
Module22=ITP
185-
Module23=AutoSaver
186-
Module24=icu4j
187-
Module25=tikal
188-
Module26=PDF2TXT
189-
Module27=FileUtils
190-
Module28=Map2Xml
191-
Module29=MT
182+
Module20=TMX
183+
Module21=searchAndReplaceDialog
184+
Module22=xliffFilter
185+
Module23=Preferences
186+
Module24=ITP
187+
Module25=AutoSaver
188+
Module26=icu4j
189+
Module27=tikal
190+
Module28=PDF2TXT
191+
Module29=FileUtils
192192
Module3=segmentation
193-
Module30=SRX
194-
Module31=POIWord
195-
Module32=pdfbox
196-
Module33=git
197-
Module34=dictWebView
198-
Module35=InputTextAreaBox
199-
Module36=FontPicker
200-
Module37=TermEditor
201-
Module38=TermManager
202-
Module39=HistoryViewer
193+
Module30=Map2Xml
194+
Module31=MT
195+
Module32=SRX
196+
Module33=POIWord
197+
Module34=pdfbox
198+
Module35=git
199+
Module36=dictWebView
200+
Module37=InputTextAreaBox
201+
Module38=FontPicker
202+
Module39=TermEditor
203203
Module4=CustomListView
204-
Module40=HistoryRecord
205-
Module41=Previewer
206-
Module42=ClientKVS
207-
Module43=statistics
208-
Module44=LanguageTool
209-
Module45=confirmReviewDialog
210-
Module46=LanguagePairSelector
211-
Module47=idmlUtils
212-
Module48=editDistance
213-
Module49=InputBox
204+
Module40=TermManager
205+
Module41=HistoryViewer
206+
Module42=HistoryRecord
207+
Module43=Previewer
208+
Module44=ClientKVS
209+
Module45=statistics
210+
Module46=LanguageTool
211+
Module47=confirmReviewDialog
212+
Module48=LanguagePairSelector
213+
Module49=idmlUtils
214214
Module5=txtFilter
215-
Module50=MTParamsFiller
216-
Module51=progressDialog
217-
Module52=filterGenericUtils
218-
Module53=TBX
219-
Module54=CallSubUtils
220-
Module55=viewSegment
221-
Module56=serverLauncher
222-
Module57=zip4j
215+
Module50=editDistance
216+
Module51=InputBox
217+
Module52=MTParamsFiller
218+
Module53=filterGenericUtils
219+
Module54=TBX
220+
Module55=CallSubUtils
221+
Module56=viewSegment
222+
Module57=serverLauncher
223223
Module58=languageChooser
224224
Module59=TMEditor
225225
Module6=TM
@@ -711,9 +711,12 @@ Sub fillWithTM
711711
Log(LastException)
712712
Return
713713
End Try
714-
Dim targetTextArea As TextArea
715-
targetTextArea=pane.GetNode(1)
716-
targetTextArea.Text=tmTableView.SelectedRowValues(2)
714+
Dim translation As String=tmTableView.SelectedRowValues(2)
715+
currentProject.setTranslation(currentProject.lastEntry,translation,True)
716+
currentProject.fillOne(currentProject.lastEntry,translation)
717+
'Dim targetTextArea As TextArea
718+
'targetTextArea=pane.GetNode(1)
719+
'targetTextArea.Text=translation
717720
currentProject.contentIsChanged
718721
End If
719722
End If
@@ -1021,7 +1024,7 @@ Sub exportTMXMi_Action
10211024
Dim translation As String
10221025
translation=targetMap.Get("text")
10231026
bitext.Add(translation)
1024-
1027+
bitext.Add(targetMap)
10251028
segments.Add(bitext)
10261029
Next
10271030
Dim result As Int

BasicCAT/BasicCAT.b4j.meta

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,4 +188,4 @@ ModuleClosedNodes7=
188188
ModuleClosedNodes8=
189189
ModuleClosedNodes9=
190190
SelectedBuild=0
191-
VisibleModules=1,2,3,4,5,6,7,8,9,10,57,51
191+
VisibleModules=1,2,3,4,5,6,7,8,9,10,20,14,21,47

BasicCAT/Project.bas

+66-26
Original file line numberDiff line numberDiff line change
@@ -1761,16 +1761,7 @@ Public Sub fillPane(FirstIndex As Int, LastIndex As Int)
17611761
addTextAreaToSegmentPane(segmentPane,bitext.Get(0),bitext.Get(1))
17621762
Dim extra As Map
17631763
extra=bitext.Get(4)
1764-
If extra.ContainsKey("neglected") Then
1765-
If extra.Get("neglected")="yes" Then
1766-
Utils.disableTextArea(segmentPane)
1767-
End If
1768-
End If
1769-
If extra.ContainsKey("note") Then
1770-
If extra.Get("note")<>"" Then
1771-
CSSUtils.SetStyleProperty(segmentPane.GetNode(1),"-fx-background-color","green")
1772-
End If
1773-
End If
1764+
setPaneStatus(extra,segmentPane)
17741765
If Main.calculatedHeight.ContainsKey(bitext.Get(0)&" "&bitext.Get(1)) Then
17751766
Dim h As Int=Main.calculatedHeight.Get(bitext.Get(0)&" "&bitext.Get(1))
17761767
Main.setLayout(segmentPane,i,h)
@@ -1828,14 +1819,14 @@ Sub preTranslate(options As Map)
18281819
Log(similarity>=matchrate)
18291820

18301821
If similarity>=matchrate Then
1831-
setTranslation(index,resultList.Get(2))
1822+
setTranslation(index,resultList.Get(2),True)
18321823
'setSegment(bitext,index)
18331824
fillOne(index,resultList.Get(2))
18341825
End If
18351826
Else if options.Get("type")="MT" Then
18361827
wait for (MT.getMT(bitext.Get(0),projectFile.Get("source"),projectFile.Get("target"),options.Get("engine"))) Complete (translation As String)
18371828
If translation<>"" Then
1838-
setTranslation(index,translation)
1829+
setTranslation(index,translation,False)
18391830
'setSegment(bitext,index)
18401831
fillOne(index,translation)
18411832
End If
@@ -1860,14 +1851,31 @@ Sub fillOne(index As Int,translation As String)
18601851
Try
18611852
Dim p As Pane
18621853
p=Main.editorLV.Items.Get(index)
1854+
Dim targetTextArea As TextArea
1855+
targetTextArea=p.GetNode(1)
1856+
targetTextArea.Text=translation
1857+
Dim bitext As List
1858+
bitext=segments.Get(index)
1859+
Dim extra As Map
1860+
extra=bitext.Get(4)
1861+
setPaneStatus(extra,p)
1862+
contentIsChanged
18631863
Catch
18641864
Log(LastException)
1865-
Return
18661865
End Try
1867-
Dim targetTextArea As TextArea
1868-
targetTextArea=p.GetNode(1)
1869-
targetTextArea.Text=translation
1870-
contentIsChanged
1866+
End Sub
1867+
1868+
Sub setPaneStatus(extra As Map,segmentPane As Pane)
1869+
If extra.ContainsKey("neglected") Then
1870+
If extra.Get("neglected")="yes" Then
1871+
Utils.disableTextArea(segmentPane)
1872+
End If
1873+
End If
1874+
If extra.ContainsKey("note") Then
1875+
If extra.Get("note")<>"" Then
1876+
CSSUtils.SetStyleProperty(segmentPane.GetNode(1),"-fx-background-color","green")
1877+
End If
1878+
End If
18711879
End Sub
18721880

18731881
Public Sub fillVisibleTargetTextArea
@@ -1893,27 +1901,54 @@ End Sub
18931901
'impl
18941902
'--------------------------
18951903

1896-
Public Sub setTranslation(index As String,translation As String)
1904+
Public Sub setTranslation(index As String,translation As String,isFromTM As Boolean)
18971905
If segments.Size=0 Then
18981906
Return
18991907
End If
19001908
Dim bitext As List
19011909
bitext=segments.Get(index)
19021910
If translation<>bitext.Get(1) Then
19031911
bitext.Set(1,translation)
1904-
Dim time As String=DateTime.Now
1912+
Dim time As Long
1913+
time=DateTime.Now
19051914
Dim extra As Map
19061915
extra=bitext.Get(4)
1907-
extra.Put("createdTime",time)
1916+
Dim creator As String
19081917
If settings.GetDefault("sharingTM_enabled",False)=True Then
1909-
extra.Put("creator",Main.preferencesMap.GetDefault("vcs_username","anonymous"))
1918+
creator=Main.preferencesMap.GetDefault("vcs_username","anonymous")
19101919
Else
19111920
If settings.GetDefault("git_enabled",False)=False Then
1912-
extra.Put("creator",Main.preferencesMap.GetDefault("vcs_username",""))
1921+
creator=Main.preferencesMap.GetDefault("vcs_username","")
19131922
Else
1914-
extra.Put("creator",Main.preferencesMap.GetDefault("vcs_username","anonymous"))
1923+
creator=Main.preferencesMap.GetDefault("vcs_username","anonymous")
19151924
End If
19161925
End If
1926+
If isFromTM Then
1927+
Dim targetMap As Map
1928+
targetMap.Initialize
1929+
Dim source As String
1930+
source=bitext.Get(0)
1931+
If projectTM.translationMemory.ContainsKey(source) Then
1932+
targetMap=projectTM.translationMemory.Get(source)
1933+
Else if projectTM.externalTranslationMemory.ContainsKey(source) Then
1934+
targetMap=projectTM.externalTranslationMemory.Get(source)
1935+
End If
1936+
If targetMap.ContainsKey("createdTime") Then
1937+
Try
1938+
time=targetMap.Get("createdTime")
1939+
Catch
1940+
Log(LastException)
1941+
End Try
1942+
End If
1943+
If targetMap.ContainsKey("creator") Then
1944+
creator=targetMap.Get("creator")
1945+
End If
1946+
If targetMap.ContainsKey("note") Then
1947+
extra.Put("note",targetMap.Get("note"))
1948+
End If
1949+
End If
1950+
extra.Put("createdTime",time)
1951+
extra.Put("creator",creator)
19171952
End If
19181953
End Sub
19191954

@@ -1925,7 +1960,12 @@ Sub saveOneTranslationToTM(bitext As List,index As Int)
19251960
Dim creator As String
19261961
Dim extra As Map
19271962
extra=bitext.Get(4)
1928-
createdTime=extra.GetDefault("createdTime",0)
1963+
Try
1964+
createdTime=extra.GetDefault("createdTime",0)
1965+
Catch
1966+
Log(LastException)
1967+
End Try
1968+
19291969
creator=extra.GetDefault("creator","anonymous")
19301970

19311971
Dim targetMap As Map
@@ -1963,7 +2003,7 @@ Public Sub saveAlltheTranslationToSegmentsInVisibleArea(FirstIndex As Int, LastI
19632003
End Try
19642004

19652005
targetTextArea=p.GetNode(1)
1966-
setTranslation(i,targetTextArea.Text)
2006+
setTranslation(i,targetTextArea.Text,False)
19672007

19682008
'projectTM.addPair(bitext.Get(0),bitext.Get(1))
19692009
Next
@@ -1974,7 +2014,7 @@ Sub saveTranslation(targetTextArea As TextArea)
19742014
index=Main.editorLV.Items.IndexOf(targetTextArea.Parent)
19752015
Dim bitext As List
19762016
bitext=segments.Get(index)
1977-
setTranslation(index,targetTextArea.Text)
2017+
setTranslation(index,targetTextArea.Text,False)
19782018
If targetTextArea.Text<>"" Then
19792019
saveOneTranslationToTM(bitext,index)
19802020
End If

BasicCAT/TM.bas

+10-2
Original file line numberDiff line numberDiff line change
@@ -151,14 +151,18 @@ End Sub
151151
Sub addPair(source As String,targetMap As Map)
152152
Dim target As String
153153
target=targetMap.Get("text")
154+
Dim note As String
155+
note=targetMap.Get("note")
154156
Dim createdTime As Long
155157
createdTime=targetMap.Get("createdTime")
156158
If translationMemory.ContainsKey(source) Then
157159
Dim previousTargetMap As Map
158160
previousTargetMap=translationMemory.Get(source)
159161
Dim previousCreatedTime As Long=previousTargetMap.GetDefault("createdTime",0)
160162
If previousTargetMap.Get("text")=target Then
161-
Return
163+
If previousTargetMap.GetDefault("note","")=note Then
164+
Return
165+
End If
162166
End If
163167
If previousCreatedTime>createdTime Then
164168
Return
@@ -207,10 +211,14 @@ Public Sub importExternalTranslationMemory(tmList As List,projectFile As Map) As
207211
Dim source,target,filename As String
208212
Dim targetMap As Map
209213
targetMap.Initialize
210-
If bitext.Size=3 Then
214+
215+
If bitext.Size>=3 Then
211216
source=bitext.get(0)
212217
target=bitext.Get(1)
213218
filename=bitext.Get(2)
219+
If bitext.Size=4 Then
220+
targetMap=bitext.Get(3)
221+
End If
214222
Else
215223
Continue
216224
End If

BasicCAT/TMManager.bas

+2
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,9 @@ Sub exportToFile
152152
Dim target As String
153153
target=targetMap.Get("text")
154154
bitext.Add(target)
155+
bitext.Add(targetMap)
155156
segments.Add(bitext)
157+
156158
Next
157159
Dim result As Int
158160
result=fx.Msgbox2(frm,"Include tags?","","Yes","Cancel","No",fx.MSGBOX_CONFIRMATION)

0 commit comments

Comments
 (0)