Sub ssEng2Chn (ByVal FormName As String, frm As Form)
'Example: On Form_Load event, call ssEng2Chn to perform
' conversion :-
' ssEng2Chn FormTitle, Form
Dim tbXlate As Table
Dim btbOpened As Integer, OpenRetry As Integer
Dim i As Integer, MatchStr As String
Dim nCtrls As Integer
Dim ret As Integer
Dim oldCursor As Integer
Dim fdApplName As Field, fdFormName As Field
Dim fdItemName As Field
Dim fdEngText As Field, fdAltText As Field
oldCursor = Screen.MousePointer
Screen.MousePointer = HOURGLASS
nCtrls = frm.Controls.Count
ReDim bXlated(0 To nCtrls) As Integer
ReDim szCaptions(0 To nCtrls) As String
szCaptions(0) = frm.Caption
On Error Resume Next
For i = 1 To nCtrls
szCaptions(i) = frm.Controls(i - 1).Caption
Next i
OpenRetry = 0
OpenE2CErrRetry:
On Error GoTo errEng2Chn
If (G_SaveCaption) Then
Set tbXlate = g_helpdb.OpenTable("LangXlate")
Else
Set tbXlate = g_helpdb.OpenTable("LangXlate", DB_READONLY)
End If
btbOpened = True
tbXlate.Index = "PrimaryKey"
Set fdApplName = tbXlate!ApplName
Set fdFormName = tbXlate!FormName
Set fdItemName = tbXlate!ItemName
Set fdEngText = tbXlate!EngText
Set fdAltText = tbXlate!AltText
If G_SaveCaption Then
Dim dsXlate As Dynaset
Dim szCap As String
Dim DelimAt As Integer
On Error GoTo errE2CNoCaption
For i = 0 To nCtrls
'If (I = 0) Then
' szCap = frm.Caption
'Else
' szCap = frm.Controls(I - 1).Caption
'End If
szCap = szCaptions(i)
DelimAt = InStr(szCap, ":")
If (DelimAt > 0) Then
szCap = Trim$(Left$(szCap, DelimAt - 1))
End If
tbXlate.Seek "=", gAppName, FormName, szCap
If (Not tbXlate.NoMatch) Then
If (G_Sess.Language = "C") Then
SetControlCaption frm, i, NVL(fdAltText, ""), bXlated()
Else
SetControlCaption frm, i, NVL(fdEngText, ""), bXlated()
End If
ElseIf (gAppName <> "" And FormName <> "" And szCap <> "") Then
tbXlate.AddNew
fdApplName = gAppName
fdFormName = FormName
fdItemName = szCap
fdEngText = szCap
tbXlate.Update
End If
errE2CNoCaption:
If (Err <> 0) Then Resume errE2CSkipNoCaption
errE2CSkipNoCaption:
Next i
Else
tbXlate.Seek ">=", gAppName, FormName, ""
Do
If (tbXlate.NoMatch) Then Exit Do
If (UCase$(fdApplName) <> UCase$(gAppName) Or UCase$(fdFormName) <> UCase$(FormName)) Then
Exit Do
End If
MatchStr = fdItemName
i = 0
Do
i = FindControlByCaption(frm, i, MatchStr, bXlated(), szCaptions())
If (i >= 0) Then
If (G_Sess.Language = "C") Then
SetControlCaption frm, i, NVL(fdAltText, ""), bXlated()
Else
SetControlCaption frm, i, NVL(fdEngText, ""), bXlated()
End If
i = i + 1
End If
Loop While (i >= 0)
tbXlate.MoveNext
Loop
If (pXlateTable <> 0) Then
FormCommonTranslate frm, bXlated()
End If
End If
errEng2Chn:
If (btbOpened) Then
tbXlate.Close
Else
If OpenRetry <= 5 Then
On Error Resume Next
OpenRetry = OpenRetry + 1
g_helpdb.Close
Set g_helpdb = OpenDatabase(FullPath(G_Sess.WorkFilePath, "HELP.MDB"), False, True)
GoTo OpenE2CErrRetry:
End If
End If
Screen.MousePointer = oldCursor
Exit Sub
End Sub