Skip to content

Commit

Permalink
Make plugin settings dialog translatable (2)
Browse files Browse the repository at this point in the history
  • Loading branch information
sdottaka committed Mar 30, 2023
1 parent 72213ad commit 56c2ffe
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 60 deletions.
98 changes: 39 additions & 59 deletions Plugins/dlls/CompareMSExcelFiles.sct
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
<property name="PluginExtendedProperties">
<get/>
</property>
<method name="OnEvent"/>
<method name="UnpackFile"/>
<method name="PackFile"/>
<method name="IsFolder"/>
Expand Down Expand Up @@ -59,6 +60,7 @@ MsgCannotGetMacros = "Cannot get Macros." & vbCrLf & _

Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim wsh: Set wsh = CreateObject("WScript.Shell")
Dim winmergeObj

Function isAccessibleVBAProject(wbk)
Dim count
Expand Down Expand Up @@ -405,6 +407,10 @@ Function get_PluginExtendedProperties()
get_PluginExtendedProperties = "ProcessType=Content Extraction;FileType=MS-Excel;MenuCaption=MS-Excel"
End Function

Sub OnEvent(eventType, wmobj)
Set winmergeObj = wmobj
End Sub

Function UnpackFile(fileSrc, fileDst, pbChanged, pSubcode)
Dim fo
Dim xl
Expand Down Expand Up @@ -615,11 +621,29 @@ Function PackFolder(fileSrc, folderDst, pbChanged, pSubcode)
PackFolder = False
End Function

Function Translate(text)
Dim re: Set re = CreateObject("VBScript.RegExp")
re.Pattern = "\${([^}]+)}"
re.Global = True
Translate = text
Dim match
Dim matches:Set matches = re.Execute(text)
if IsEmpty(winmergeObj) Then
For Each match in matches
Translate = Replace(Translate, match.Value, match.Submatches(0))
Next
Else
For Each match in matches
Translate = Replace(Translate, match.Value, winmergeObj.Translate(match.Submatches(0)))
Next
End If
End Function

Function ShowSettingsDialog()
Dim tname: tname = fso.BuildPath(fso.GetSpecialFolder(2), fso.GetTempName() & ".hta")
Dim tfile: Set tfile = fso.CreateTextFile(tname)
Dim mshta
tfile.Write getResource("dialog1")
tfile.Write Translate(getResource("dialog1"))
tfile.Close
mshta = wsh.ExpandEnvironmentStrings("%SystemRoot%\mshta.exe")
If Not fso.FileExists(mshta) Then
Expand Down Expand Up @@ -665,8 +689,6 @@ End Sub
window.resizeTo(w, h);
window.moveTo((screen.width - w) / 2, (screen.height - h) / 2);

cboLanguage.selectedIndex = navigator.browserLanguage.substr(0, 2) === 'ja' ? 1 : 0;
setLanguage(navigator.browserLanguage);
chkUnpackToFolder.checked = regRead(REGKEY_PATH + "UnpackToFolder", false);
chkUpdateLinks.checked = (regRead(REGKEY_PATH + "UpdateLinks", 0) == 3);
chkCompareDocumentProperties.checked = regRead(REGKEY_PATH + "CompareDocumentProperties", false);
Expand All @@ -685,24 +707,6 @@ End Sub
chkCompareWorksheetsAsHTML_onclick();
}

function setLanguage(lang) {
var div = document.getElementById("language") || document.createElement('div')
div.id = "language";
var html = '&shy;<style>';
if (lang.substr(0, 2).toLowerCase() === 'ja') {
html += '.en { display: none } .ja { display: inline }';
} else {
html += '.ja { display: none } .en { display: inline }';
}
div.innerHTML = html;
if (!document.getElementById("language"))
document.body.appendChild(div);
}

function cboLanguage_onclick() {
setLanguage(cboLanguage.options[cboLanguage.selectedIndex].text);
}

function chkUnpackToFolder_onclick() {
if (!chkUnpackToFolder.checked) {
chkCompareWorksheetsAsImage.checked = false;
Expand Down Expand Up @@ -777,84 +781,60 @@ End Sub
</head>
<body onload="onload();">
<div>
<ul>
<li>
<label class="en">Language: </label>
<label class="ja">����: </label>
<select id="cboLanguage" onclick="cboLanguage_onclick();" >
<option value="English">English</option>
<option value="Japanese">Japanese</option>
</select>
</li>
</ul>
<ul>
<li>
<input id="chkUnpackToFolder" type="checkbox" onclick="chkUnpackToFolder_onclick();"/>
<label class="en">Extract workbook data to multiple files</label>
<label class="ja">���[�N�u�b�N�̏��𕡐��t�@�C���ɓW�J����</label>
<label class="en">${Extract workbook data to multiple files}</label>
</li>
<li>
<input id="chkUpdateLinks" type="checkbox" />
<label class="en">Update external references(links)</label>
<label class="ja">��r���A�O���Q��(�����N)���X�V����</label>
<label class="en">${Update external references(links)}</label>
</li>
<li>
<input id="chkCompareDocumentProperties" type="checkbox" />
<label class="en">Compare document properties</label>
<label class="ja">�h�L�������g�v���p�e�B���r����</label>
<label class="en">${Compare document properties}</label>
</li>
<li>
<input id="chkCompareNames" type="checkbox" />
<label class="en">Compare names</label>
<label class="ja">���O�̒�`���r����</label>
<label class="en">${Compare names}</label>
</li>
<li>
<input id="chkCompareCellValues" type="checkbox" />
<label class="en">Compare cell values</label>
<label class="ja">�e�Z���̒l���r����</label>
<label class="en">${Compare cell values}</label>
</li>
<li>
<input id="chkCompareWorksheetsAsImage" type="checkbox" onclick="chkCompareWorksheetsAsImage_onclick();"/>
<label class="en">Compare worksheets as image (very slow)</label>
<label class="ja">���[�N�V�[�g���摜�����Ĕ�r���� (�������ԑ���)</label>
<span class="en"> - Image split size: </span>
<span class="ja"> - �摜�����T�C�Y: </span>
<label class="en">${Compare worksheets as image (very slow)}</label>
<span class="en">${ - Image split size: }</span>
<input id="txtImageWidth" type="text" size="5" maxlength="4" onkeyDown="return onlyNumeric();" onpaste="return onPaste();" />
<span> x </span>
<input id="txtImageHeight" type="text" size="5" maxlength="4" onkeyDown="return onlyNumeric();" onpaste="return onPaste();" />
</li>
<li>
<input id="chkCompareWorksheetsAsHTML" type="checkbox" onclick="chkCompareWorksheetsAsHTML_onclick();"/>
<label class="en">Compare worksheets as HTML</label>
<label class="ja">���[�N�V�[�g��HTML�Ƃ��ĕۑ����Ĕ�r����</label>
<label class="en">${Compare worksheets as HTML}</label>
</li>
<li>
<input id="chkCompareFormulas" type="checkbox" />
<label class="en">Compare formulas</label>
<label class="ja">�������r����</label>
<label class="en">${Compare formulas}</label>
</li>
<li>
<input id="chkCompareTextsInShapes" type="checkbox" />
<label class="en">Compare texts in shapes</label>
<label class="ja">�}�`���̃e�L�X�g���r����</label>
<label class="en">${Compare texts in shapes}</label>
</li>
<li>
<input id="chkCompareHeadersAndFooters" type="checkbox" />
<label class="en">Compare headers and footers</label>
<label class="ja">�w�b�_�[�ƃt�b�^�[���r����</label>
<label class="en">${Compare headers and footers}</label>
</li>
<li>
<input id="chkCompareVBAMacros" type="checkbox" />
<label class="en">Compare VBA macros</label>
<label class="ja">VBA �}�N�����r����</label>
<label class="en">${Compare VBA macros}</label>
</li>
</ul>
<ul>
<li>
<input class="en" type="button" onclick="btnOk_onclick();" value="OK" />
<input class="en" type="button" onclick="btnCancel_onclick();" value="Cancel" />
<input class="ja" type="button" onclick="btnOk_onclick();" value="OK" />
<input class="ja" type="button" onclick="btnCancel_onclick();" value="�L�����Z��" />
<input class="en" type="button" onclick="btnOk_onclick();" value="${OK}" />
<input class="en" type="button" onclick="btnCancel_onclick();" value="${Cancel}" />
</li>
</ul>
</div>
Expand Down
3 changes: 2 additions & 1 deletion Src/Plugins.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1639,10 +1639,11 @@ bool InvokePutPluginVariables(const String& vars, LPDISPATCH piScript)

bool InvokeOnEvent(int eventType, LPDISPATCH wmobj, LPDISPATCH piScript)
{
// argument text
// argument wmobj
VARIANT vdispWinMerge{ VT_DISPATCH };
vdispWinMerge.pdispVal = wmobj;
vdispWinMerge.pdispVal->AddRef();
// argument eventType
VARIANT viEventType{ VT_I4 };
viEventType.intVal = eventType;

Expand Down

0 comments on commit 56c2ffe

Please sign in to comment.