Make column names translatable in Window->Window...

Close #4219
This commit is contained in:
AngryGamer 2018-02-24 14:04:59 -08:00 committed by Don HO
parent a242214a28
commit 13801e3540
3 changed files with 43 additions and 12 deletions

View File

@ -1025,6 +1025,11 @@ please give another one."/>
<ColumnName name="Name"/>
<ColumnExt name="Ext."/>
</DocSwitcher>
<WindowsDlg>
<ColumnName name="Name"/>
<ColumnPath name="Path"/>
<ColumnType name="Type"/>
</WindowsDlg>
<AsciiInsertion>
<PanelTitle name="ASCII Insertion Panel"/>
<ColumnVal name="Value"/>

View File

@ -1025,6 +1025,11 @@ please give another one."/>
<ColumnName name="Name"/>
<ColumnExt name="Ext."/>
</DocSwitcher>
<WindowsDlg>
<ColumnName name="Name"/>
<ColumnPath name="Path"/>
<ColumnType name="Type"/>
</WindowsDlg>
<AsciiInsertion>
<PanelTitle name="ASCII Insertion Panel"/>
<ColumnVal name="Value"/>

View File

@ -32,6 +32,7 @@
#include "WindowsDlgRc.h"
#include "DocTabView.h"
#include "EncodingMapper.h"
#include "localization.h"
using namespace std;
@ -43,6 +44,11 @@ using namespace std;
#define LVS_EX_DOUBLEBUFFER 0x00010000
#endif
#define WD_ROOTNODE "WindowsDlg"
#define WD_CLMNNAME "ColumnName"
#define WD_CLMNPATH "ColumnPath"
#define WD_CLMNTYPE "ColumnType"
static const TCHAR *readonlyString = TEXT(" [Read Only]");
const UINT WDN_NOTIFY = RegisterWindowMessage(TEXT("WDN_NOTIFY"));
@ -534,16 +540,22 @@ BOOL WindowsDlg::onInitDialog()
lvColumn.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_FMT;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.pszText = TEXT("\u21F5 Name");
generic_string columnText;
NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance())->getNativeLangSpeaker();
columnText = TEXT("\u21F5 ") + pNativeSpeaker->getAttrNameStr(TEXT("Name"), WD_ROOTNODE, WD_CLMNNAME);
lvColumn.pszText = const_cast<TCHAR *>(columnText.c_str());
lvColumn.cx = width / 4;
SendMessage(_hList, LVM_INSERTCOLUMN, 0, LPARAM(&lvColumn));
lvColumn.pszText = TEXT("\u21F5 Path");
columnText = TEXT("\u21F5 ") + pNativeSpeaker->getAttrNameStr(TEXT("Path"), WD_ROOTNODE, WD_CLMNPATH);
lvColumn.pszText = const_cast<TCHAR *>(columnText.c_str());
lvColumn.cx = 300;
SendMessage(_hList, LVM_INSERTCOLUMN, 1, LPARAM(&lvColumn));
lvColumn.fmt = LVCFMT_CENTER;
lvColumn.pszText = TEXT("\u21F5 Type");
columnText = TEXT("\u21F5 ") + pNativeSpeaker->getAttrNameStr(TEXT("Type"), WD_ROOTNODE, WD_CLMNTYPE);
lvColumn.pszText = const_cast<TCHAR *>(columnText.c_str());
lvColumn.cx = 50;
SendMessage(_hList, LVM_INSERTCOLUMN, 2, LPARAM(&lvColumn));
@ -570,49 +582,58 @@ void WindowsDlg::updateColumnNames()
lvColumn.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_FMT;
lvColumn.fmt = LVCFMT_LEFT;
generic_string columnText;
NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance())->getNativeLangSpeaker();
columnText = pNativeSpeaker->getAttrNameStr(TEXT("Name"), WD_ROOTNODE, WD_CLMNNAME);
if (_currentColumn != 0)
{
lvColumn.pszText = TEXT("\u21F5 Name");
columnText = TEXT("\u21F5 ") + columnText;
}
else if (_reverseSort)
{
lvColumn.pszText = TEXT("\u25B3 Name");
columnText = TEXT("\u25B3 ") + columnText;
}
else
{
lvColumn.pszText = TEXT("\u25BD Name");
columnText = TEXT("\u25BD ") + columnText;
}
lvColumn.pszText = const_cast<TCHAR *>(columnText.c_str());
lvColumn.cx = static_cast<int>(SendMessage(_hList, LVM_GETCOLUMNWIDTH, 0, 0));
SendMessage(_hList, LVM_SETCOLUMN, 0, LPARAM(&lvColumn));
columnText = pNativeSpeaker->getAttrNameStr(TEXT("Path"), WD_ROOTNODE, WD_CLMNPATH);
if (_currentColumn != 1)
{
lvColumn.pszText = TEXT("\u21F5 Path");
columnText = TEXT("\u21F5 ") + columnText;
}
else if (_reverseSort)
{
lvColumn.pszText = TEXT("\u25B3 Path");
columnText = TEXT("\u25B3 ") + columnText;
}
else
{
lvColumn.pszText = TEXT("\u25BD Path");
columnText = TEXT("\u25BD ") + columnText;
}
lvColumn.pszText = const_cast<TCHAR *>(columnText.c_str());
lvColumn.cx = static_cast<int>(SendMessage(_hList, LVM_GETCOLUMNWIDTH, 1, 0));
SendMessage(_hList, LVM_SETCOLUMN, 1, LPARAM(&lvColumn));
lvColumn.fmt = LVCFMT_CENTER;
columnText = pNativeSpeaker->getAttrNameStr(TEXT("Type"), WD_ROOTNODE, WD_CLMNTYPE);
if (_currentColumn != 2)
{
lvColumn.pszText = TEXT("\u21F5 Type");
columnText = TEXT("\u21F5 ") + columnText;
}
else if (_reverseSort)
{
lvColumn.pszText = TEXT("\u25B3 Type");
columnText = TEXT("\u25B3 ") + columnText;
}
else
{
lvColumn.pszText = TEXT("\u25BD Type");
columnText = TEXT("\u25BD ") + columnText;
}
lvColumn.pszText = const_cast<TCHAR *>(columnText.c_str());
lvColumn.cx = static_cast<int>(SendMessage(_hList, LVM_GETCOLUMNWIDTH, 2, 0));
SendMessage(_hList, LVM_SETCOLUMN, 2, LPARAM(&lvColumn));
}