1
1
Fork 0
mirror of https://github.com/pbatard/rufus.git synced 2024-08-14 23:57:05 +00:00

[localization] autogenerated control and dialog tables

* Also more translations
This commit is contained in:
Pete Batard 2013-06-28 14:09:26 +01:00
parent 9426be0bc1
commit 7636342cf3
12 changed files with 302 additions and 99 deletions

View file

@ -55,7 +55,37 @@ m IDC_LOG -5 0
r IDC_LOG +5 0 r IDC_LOG +5 0
t IDCANCEL "关闭" t IDCANCEL "关闭"
t IDC_START "开始" t IDC_START "开始"
t IDC_ADVANCED_GROUP "高级选项"
t IDC_ENABLE_FIXED_DISKS "列表固定(非flash)或USB磁盘分区"
t IDC_EXTRA_PARTITION "添加修复旧的BIOS额外的分区校准等等"
t IDC_RUFUS_MBR "使用 Rufus MBR BIOS ID:"
# TODO: dialog title
t IDD_DIALOG "Does this work?"
p IDD_ABOUTBOX p IDD_ABOUTBOX
t IDC_ABOUT_LICENSE "许可证" t IDC_ABOUT_LICENSE "许可证"
t IDC_ABOUT_UPDATES "更新" t IDC_ABOUT_UPDATES "更新"
t IDOK "确定" t IDOK "确定"
t IDD_ABOUTBOX "关于"
p IDD_LOG
t IDC_LOG_CLEAR "清除日志"
t IDC_LOG_SAVE "保存日志"
t IDCANCEL "关闭日志"
p IDD_LICENSE
t IDOK "取消"
p IDD_UPDATE_POLICY
t IDS_UPDATE_SETTINGS_TXT "设置"
t IDS_UPDATE_FREQUENCY_TXT "检查更新:"
t IDS_INCLUDE_BETAS_TXT "包括测试版本:"
t IDC_CHECK_NOW "立即检查"
t IDCANCEL "取消"
p IDD_NEW_VERSION
t IDS_NEW_VERSION_AVAIL_TXT "更新的版本可用。请下载最新版本!"
t IDC_WEBSITE "<a href="http://rufus.akeo.ie">点击这里进入网站</a>"
t IDS_NEW_VERSION_NOTES_TXT "发行说明"
t IDS_NEW_VERSION_DOWNLOAD_TXT "下载"
t IDC_DOWNLOAD "下载"

View file

@ -187,6 +187,7 @@
<ClInclude Include="..\libcdio\cdio\logging.h" /> <ClInclude Include="..\libcdio\cdio\logging.h" />
<ClInclude Include="..\libcdio\cdio\udf.h" /> <ClInclude Include="..\libcdio\cdio\udf.h" />
<ClInclude Include="..\localization.h" /> <ClInclude Include="..\localization.h" />
<ClInclude Include="..\localization_data.h" />
<ClInclude Include="..\msapi_utf8.h" /> <ClInclude Include="..\msapi_utf8.h" />
<ClInclude Include="..\dos.h" /> <ClInclude Include="..\dos.h" />
<ClInclude Include="..\registry.h" /> <ClInclude Include="..\registry.h" />

View file

@ -107,6 +107,9 @@
<ClInclude Include="..\localization.h"> <ClInclude Include="..\localization.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\localization_data.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="..\..\res\rufus.ico"> <None Include="..\..\res\rufus.ico">

View file

@ -33,59 +33,7 @@
#include "resource.h" #include "resource.h"
#include "msapi_utf8.h" #include "msapi_utf8.h"
#include "localization.h" #include "localization.h"
#include "localization_data.h"
#define LOC_CTRL(x) { #x, x }
// TODO: move this to an autogenerated file
const loc_control_id control_id[] = {
// The dialog IDs must come first
LOC_CTRL(IDD_DIALOG),
LOC_CTRL(IDD_ABOUTBOX),
LOC_CTRL(IDD_NOTIFICATION),
LOC_CTRL(IDD_LICENSE),
LOC_CTRL(IDD_ISO_EXTRACT),
LOC_CTRL(IDD_LOG),
LOC_CTRL(IDD_UPDATE_POLICY),
LOC_CTRL(IDD_NEW_VERSION),
LOC_CTRL(IDOK),
LOC_CTRL(IDCANCEL),
LOC_CTRL(IDS_DEVICE_TXT),
LOC_CTRL(IDS_PARTITION_TYPE_TXT),
LOC_CTRL(IDS_FILESYSTEM_TXT),
LOC_CTRL(IDS_CLUSTERSIZE_TXT),
LOC_CTRL(IDS_LABEL_TXT),
LOC_CTRL(IDS_FORMATOPTIONS_TXT),
LOC_CTRL(IDC_ADVANCED_GROUP),
LOC_CTRL(IDC_BADBLOCKS),
LOC_CTRL(IDC_QUICKFORMAT),
LOC_CTRL(IDC_BOOT),
LOC_CTRL(IDC_SET_ICON),
LOC_CTRL(IDC_ADVANCED),
LOC_CTRL(IDC_NBPASSES),
LOC_CTRL(IDC_BOOTTYPE),
LOC_CTRL(IDC_SELECT_ISO),
LOC_CTRL(IDC_ABOUT),
LOC_CTRL(IDC_LOG),
LOC_CTRL(IDC_START),
LOC_CTRL(IDC_ABOUT_LICENSE),
LOC_CTRL(IDC_ABOUT_UPDATES),
};
// Have a root loc_cmd that points to parent loc_cmd
// MUST be in the same order as in resource.h, and with IDs in
// consecutive order with no gap, as we'll use IDD_XYZ = IDD_DIALOG to
// locate our index in dialog_active
#define LOC_DLG_LST(x) { x, NULL, {NULL, NULL} }
loc_dlg_list loc_dlg[IDD_NEW_VERSION - IDD_DIALOG + 1] = {
LOC_DLG_LST(IDD_DIALOG),
LOC_DLG_LST(IDD_ABOUTBOX),
LOC_DLG_LST(IDD_NOTIFICATION),
LOC_DLG_LST(IDD_LICENSE),
LOC_DLG_LST(IDD_ISO_EXTRACT),
LOC_DLG_LST(IDD_LOG),
LOC_DLG_LST(IDD_UPDATE_POLICY),
LOC_DLG_LST(IDD_NEW_VERSION),
};
/* c control ID (no space, no quotes), s: quoted string, i: 32 bit signed integer, */ /* c control ID (no space, no quotes), s: quoted string, i: 32 bit signed integer, */
loc_parse parse_cmd[] = { loc_parse parse_cmd[] = {
@ -155,45 +103,58 @@ void apply_localization(int dlg_id, HWND hDlg)
{ {
loc_cmd* lcmd; loc_cmd* lcmd;
HWND hCtrl = NULL; HWND hCtrl = NULL;
if (hDlg != NULL) { int id_start = IDD_DIALOG, id_end = IDD_DIALOG + ARRAYSIZE(loc_dlg);
loc_dlg[dlg_id-IDD_DIALOG].hDlg = hDlg;
} else {
hDlg = loc_dlg[dlg_id-IDD_DIALOG].hDlg;
}
if (!IsWindow(hDlg))
return; // Not an active dialog
if (list_empty(&loc_dlg[dlg_id-IDD_DIALOG].list))
return; // Empty list
list_for_each_entry(lcmd, &loc_dlg[dlg_id-IDD_DIALOG].list, list, loc_cmd) { if ((dlg_id >= id_start) && (dlg_id < id_end)) {
if (lcmd->command <= LC_TEXT) { // TODO: should always be the case // If we have a valid dialog_id, just process that one dialog
hCtrl = GetDlgItem(hDlg, lcmd->ctrl_id); id_start = dlg_id;
if (hCtrl == NULL) { id_end = dlg_id + 1;
// TODO: store the line nr in command so that we can print a better error? if (hDlg != NULL) {
// Would also avoid global in dispatch loc_dlg[dlg_id-IDD_DIALOG].hDlg = hDlg;
loc_line_nr = lcmd->line_nr;
luprintf("control '%s' is not part of dialog '%s'\n",
lcmd->text[0], control_id[dlg_id-IDD_DIALOG].name);
}
} }
}
switch(lcmd->command) { for (dlg_id = id_start; dlg_id < id_end; dlg_id++) {
// NB: For commands that take an ID, ctrl_id is always a valid index at this stage hDlg = loc_dlg[dlg_id-IDD_DIALOG].hDlg;
case LC_TEXT: if ((!IsWindow(hDlg)) || (list_empty(&loc_dlg[dlg_id-IDD_DIALOG].list)))
if (hCtrl != NULL) { continue;
SetWindowTextU(hCtrl, lcmd->text[1]);
list_for_each_entry(lcmd, &loc_dlg[dlg_id-IDD_DIALOG].list, list, loc_cmd) {
if (lcmd->command <= LC_TEXT) { // TODO: should always be the case
if (lcmd->ctrl_id == dlg_id) {
if (dlg_id == IDD_DIALOG) {
luprint("changing the title of the main dialog is not allowed");
continue;
}
hCtrl = hDlg;
} else {
hCtrl = GetDlgItem(hDlg, lcmd->ctrl_id);
}
if (hCtrl == NULL) {
loc_line_nr = lcmd->line_nr;
luprintf("control '%s' is not part of dialog '%s'\n",
lcmd->text[0], control_id[dlg_id-IDD_DIALOG].name);
}
} }
break;
case LC_MOVE: switch(lcmd->command) {
if (hCtrl != NULL) { // NB: For commands that take an ID, ctrl_id is always a valid index at this stage
ResizeMoveCtrl(hDlg, hCtrl, lcmd->num[0], lcmd->num[1], 0, 0); case LC_TEXT:
if (hCtrl != NULL) {
SetWindowTextU(hCtrl, lcmd->text[1]);
}
break;
case LC_MOVE:
if (hCtrl != NULL) {
ResizeMoveCtrl(hDlg, hCtrl, lcmd->num[0], lcmd->num[1], 0, 0);
}
break;
case LC_RESIZE:
if (hCtrl != NULL) {
ResizeMoveCtrl(hDlg, hCtrl, 0, 0, lcmd->num[0], lcmd->num[1]);
}
break;
} }
break;
case LC_RESIZE:
if (hCtrl != NULL) {
ResizeMoveCtrl(hDlg, hCtrl, 0, 0, lcmd->num[0], lcmd->num[1]);
}
break;
} }
} }
} }

View file

@ -20,6 +20,8 @@
#include <stdint.h> #include <stdint.h>
#include <stddef.h> #include <stddef.h>
#pragma once
// What we need for localization // What we need for localization
// # Comment // # Comment
// v 1 1 // UI target version (major, minor) // v 1 1 // UI target version (major, minor)

113
src/localization_data.h Normal file
View file

@ -0,0 +1,113 @@
/*
* Rufus: The Reliable USB Formatting Utility
* Localization tables - autogenerated from resource.h
* Copyright © 2013 Pete Batard <pete@akeo.ie>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <windows.h>
#include "resource.h"
#include "localization.h"
#define LOC_CTRL(x) { #x, x }
#define LOC_DLG(x) { x, NULL, {NULL, NULL} }
// Control IDs
const loc_control_id control_id[] = {
// The dialog IDs must come first
LOC_CTRL(IDD_DIALOG),
LOC_CTRL(IDD_ABOUTBOX),
LOC_CTRL(IDD_NOTIFICATION),
LOC_CTRL(IDD_LICENSE),
LOC_CTRL(IDD_ISO_EXTRACT),
LOC_CTRL(IDD_LOG),
LOC_CTRL(IDD_UPDATE_POLICY),
LOC_CTRL(IDD_NEW_VERSION),
LOC_CTRL(IDC_DEVICE),
LOC_CTRL(IDC_FILESYSTEM),
LOC_CTRL(IDC_START),
LOC_CTRL(IDC_PARTITION_SCHEME),
LOC_CTRL(IDC_CLUSTERSIZE),
LOC_CTRL(IDC_STATUS),
LOC_CTRL(IDC_ABOUT),
LOC_CTRL(IDC_LABEL),
LOC_CTRL(IDC_QUICKFORMAT),
LOC_CTRL(IDC_BOOT),
LOC_CTRL(IDC_BADBLOCKS),
LOC_CTRL(IDC_PROGRESS),
LOC_CTRL(IDC_BOOTTYPE),
LOC_CTRL(IDC_NBPASSES),
LOC_CTRL(IDC_TEST),
LOC_CTRL(IDC_SELECT_ISO),
LOC_CTRL(IDC_SET_ICON),
LOC_CTRL(IDC_RUFUS_MBR),
LOC_CTRL(IDC_ISO_FILENAME),
LOC_CTRL(IDC_ISO_ABORT),
LOC_CTRL(IDC_DISK_ID),
LOC_CTRL(IDC_EXTRA_PARTITION),
LOC_CTRL(IDC_ENABLE_FIXED_DISKS),
LOC_CTRL(IDC_ABOUT_LICENSE),
LOC_CTRL(IDC_ABOUT_ICON),
LOC_CTRL(IDC_ABOUT_UPDATES),
LOC_CTRL(IDC_ABOUT_COPYRIGHTS),
LOC_CTRL(IDC_ABOUT_BLURB),
LOC_CTRL(IDC_LICENSE_TEXT),
LOC_CTRL(IDC_NOTIFICATION_ICON),
LOC_CTRL(IDC_NOTIFICATION_TEXT),
LOC_CTRL(IDC_NOTIFICATION_LINE),
LOC_CTRL(IDC_ADVANCED),
LOC_CTRL(IDC_ADVANCED_GROUP),
LOC_CTRL(IDC_LOG),
LOC_CTRL(IDC_LOG_EDIT),
LOC_CTRL(IDC_LOG_SAVE),
LOC_CTRL(IDC_LOG_CLEAR),
LOC_CTRL(IDC_MORE_INFO),
LOC_CTRL(IDC_POLICY),
LOC_CTRL(IDC_UPDATE_FREQUENCY),
LOC_CTRL(IDC_INCLUDE_BETAS),
LOC_CTRL(IDC_RELEASE_NOTES),
LOC_CTRL(IDC_DOWNLOAD),
LOC_CTRL(IDC_CHECK_NOW),
LOC_CTRL(IDC_WEBSITE),
LOC_CTRL(IDC_YOUR_VERSION),
LOC_CTRL(IDC_LATEST_VERSION),
LOC_CTRL(IDC_DOWNLOAD_URL),
LOC_CTRL(IDS_DEVICE_TXT),
LOC_CTRL(IDS_PARTITION_TYPE_TXT),
LOC_CTRL(IDS_FILESYSTEM_TXT),
LOC_CTRL(IDS_CLUSTERSIZE_TXT),
LOC_CTRL(IDS_LABEL_TXT),
LOC_CTRL(IDS_FORMATOPTIONS_TXT),
LOC_CTRL(IDS_UPDATE_SETTINGS_TXT),
LOC_CTRL(IDS_UPDATE_FREQUENCY_TXT),
LOC_CTRL(IDS_INCLUDE_BETAS_TXT),
LOC_CTRL(IDS_NEW_VERSION_AVAIL_TXT),
LOC_CTRL(IDS_NEW_VERSION_DOWNLOAD_TXT),
LOC_CTRL(IDS_NEW_VERSION_NOTES_TXT),
LOC_CTRL(IDOK),
LOC_CTRL(IDCANCEL)
};
// Dialog data
loc_dlg_list loc_dlg[] = {
LOC_DLG(IDD_DIALOG),
LOC_DLG(IDD_ABOUTBOX),
LOC_DLG(IDD_NOTIFICATION),
LOC_DLG(IDD_LICENSE),
LOC_DLG(IDD_ISO_EXTRACT),
LOC_DLG(IDD_LOG),
LOC_DLG(IDD_UPDATE_POLICY),
LOC_DLG(IDD_NEW_VERSION),
};

82
src/localization_data.sh Normal file
View file

@ -0,0 +1,82 @@
#!/bin/sh
echo This file recreates localization_data.c according resource.h
echo
# check that sed are available
type -P sed &>/dev/null || { echo "sed command not found. Aborting." >&2; exit 1; }
# Create the first sed command file
cat > cmd.sed <<\_EOF
# Insert header
1i /*\
* Rufus: The Reliable USB Formatting Utility\
* Localization tables - autogenerated from resource.h\
* Copyright © 2013 Pete Batard <pete@akeo.ie>\
*\
* This program is free software: you can redistribute it and/or modify\
* it under the terms of the GNU General Public License as published by\
* the Free Software Foundation, either version 3 of the License, or\
* (at your option) any later version.\
*\
* This program is distributed in the hope that it will be useful,\
* but WITHOUT ANY WARRANTY; without even the implied warranty of\
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\
* GNU General Public License for more details.\
*\
* You should have received a copy of the GNU General Public License\
* along with this program. If not, see <http://www.gnu.org/licenses/>.\
*/\
\
#include <windows.h>\
#include "resource.h"\
#include "localization.h"\
\
#define LOC_CTRL(x) { #x, x }\
#define LOC_DLG(x) { x, NULL, {NULL, NULL} }\
\
// Control IDs\
const loc_control_id control_id[] = {\
// The dialog IDs must come first
# Add the control entries - must be in IDD_, IDC_ or IDS_
s/^#define \(ID[D|C|S][^ ]*\) .*/\ LOC_CTRL(\1),/
# Add IDs that aren't present in resource.h and close table
$a\
LOC_CTRL(IDOK),\
LOC_CTRL(IDCANCEL)\
\};\
# Remove everything else
/^[#|\/]/d
/^$/d
_EOF
# Run first part
sed -f cmd.sed resource.h > localization_data.h
# Create the second sed command file
cat > cmd.sed <<\_EOF
# Insert dialog table header
1i // Dialog data\
loc_dlg_list loc_dlg[] = {
# Add the dialog entries - must start with IDD_
s/^#define \(IDD[^ ]*\) .*/\ LOC_DLG(\1),/
# Close the table
$a\
};
# Remove everything else
/^[#|\/]/d
/^$/d
_EOF
# Run second part
sed -f cmd.sed resource.h >> localization_data.h
rm cmd.sed
echo Done.

View file

@ -262,7 +262,7 @@ char* get_loc_data_file(const char* filename)
} while(1); } while(1);
out: out:
apply_localization(IDD_DIALOG, hMainDialog); apply_localization(-1, NULL);
if (fd != NULL) if (fd != NULL)
fclose(fd); fclose(fd);
safe_free(wfilename); safe_free(wfilename);

View file

@ -100,6 +100,12 @@
#define IDS_CLUSTERSIZE_TXT 2003 #define IDS_CLUSTERSIZE_TXT 2003
#define IDS_LABEL_TXT 2004 #define IDS_LABEL_TXT 2004
#define IDS_FORMATOPTIONS_TXT 2005 #define IDS_FORMATOPTIONS_TXT 2005
#define IDS_UPDATE_SETTINGS_TXT 2006
#define IDS_UPDATE_FREQUENCY_TXT 2007
#define IDS_INCLUDE_BETAS_TXT 2008
#define IDS_NEW_VERSION_AVAIL_TXT 2009
#define IDS_NEW_VERSION_DOWNLOAD_TXT 2010
#define IDS_NEW_VERSION_NOTES_TXT 2011
// Next default values for new objects // Next default values for new objects
// //
@ -108,7 +114,7 @@
#define _APS_NO_MFC 1 #define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 404 #define _APS_NEXT_RESOURCE_VALUE 404
#define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 2020 #define _APS_NEXT_CONTROL_VALUE 1071
#define _APS_NEXT_SYMED_VALUE 3000 #define _APS_NEXT_SYMED_VALUE 3000
#endif #endif
#endif #endif

View file

@ -871,6 +871,7 @@ BOOL CALLBACK LogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
switch (message) { switch (message) {
case WM_INITDIALOG: case WM_INITDIALOG:
apply_localization(IDD_LOG, hDlg);
hLog = GetDlgItem(hDlg, IDC_LOG_EDIT); hLog = GetDlgItem(hDlg, IDC_LOG_EDIT);
// Increase the size of our log textbox to MAX_LOG_SIZE (unsigned word) // Increase the size of our log textbox to MAX_LOG_SIZE (unsigned word)
PostMessage(hLog, EM_LIMITTEXT, MAX_LOG_SIZE , 0); PostMessage(hLog, EM_LIMITTEXT, MAX_LOG_SIZE , 0);
@ -893,8 +894,9 @@ BOOL CALLBACK LogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
return TRUE; return TRUE;
case IDC_LOG_SAVE: case IDC_LOG_SAVE:
log_size = GetWindowTextLengthU(hLog); log_size = GetWindowTextLengthU(hLog);
if (log_size > 0) if (log_size <= 0)
log_buffer = (char*)malloc(log_size); break;
log_buffer = (char*)malloc(log_size);
if (log_buffer != NULL) { if (log_buffer != NULL) {
log_size = GetDlgItemTextU(hDlg, IDC_LOG_EDIT, log_buffer, log_size); log_size = GetDlgItemTextU(hDlg, IDC_LOG_EDIT, log_buffer, log_size);
if (log_size != 0) { if (log_size != 0) {
@ -906,14 +908,13 @@ BOOL CALLBACK LogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
safe_free(filepath); safe_free(filepath);
} }
safe_free(log_buffer); safe_free(log_buffer);
} else {
uprintf("Could not allocate buffer to save log\n");
} }
break; break;
} }
break; break;
case WM_CLOSE: case WM_CLOSE:
ShowWindow(hDlg, SW_HIDE); ShowWindow(hDlg, SW_HIDE);
reset_localization(IDD_LOG);
log_displayed = FALSE; log_displayed = FALSE;
return TRUE; return TRUE;
} }

View file

@ -130,14 +130,14 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Update policy and settings" CAPTION "Update policy and settings"
FONT 8, "Microsoft Sans Serif", 400, 0, 0x0 FONT 8, "Microsoft Sans Serif", 400, 0, 0x0
BEGIN BEGIN
ICON IDI_ICON,IDC_ABOUT_ICON,11,8,21,20 ICON IDI_ICON,IDC_ABOUT_ICON,11,8,20,20
DEFPUSHBUTTON "Close",IDCANCEL,221,172,50,14,WS_GROUP DEFPUSHBUTTON "Close",IDCANCEL,221,172,50,14,WS_GROUP
CONTROL "",IDC_POLICY,"RichEdit20W",WS_VSCROLL | 0x804,46,8,235,130,WS_EX_STATICEDGE CONTROL "",IDC_POLICY,"RichEdit20W",WS_VSCROLL | 0x804,46,8,235,130,WS_EX_STATICEDGE
COMBOBOX IDC_UPDATE_FREQUENCY,133,155,66,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_UPDATE_FREQUENCY,133,155,66,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Check for updates:",IDC_STATIC,52,157,72,11 LTEXT "Check for updates:",IDS_UPDATE_FREQUENCY_TXT,52,157,80,11
LTEXT "Include beta versions:",IDC_STATIC,52,173,93,11 LTEXT "Include beta versions:",IDS_INCLUDE_BETAS_TXT,52,173,80,11
COMBOBOX IDC_INCLUDE_BETAS,133,171,36,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_INCLUDE_BETAS,133,171,36,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Settings",IDC_STATIC,45,145,161,46 GROUPBOX "Settings",IDS_UPDATE_SETTINGS_TXT,45,145,161,46
PUSHBUTTON "Check Now",IDC_CHECK_NOW,221,154,50,14 PUSHBUTTON "Check Now",IDC_CHECK_NOW,221,154,50,14
GROUPBOX "",IDC_STATIC,210,145,71,46 GROUPBOX "",IDC_STATIC,210,145,71,46
END END
@ -148,10 +148,10 @@ CAPTION "Check For Updates - Rufus"
FONT 8, "Microsoft Sans Serif", 400, 0, 0x0 FONT 8, "Microsoft Sans Serif", 400, 0, 0x0
BEGIN BEGIN
PUSHBUTTON "Close",IDCANCEL,167,244,50,14,WS_GROUP PUSHBUTTON "Close",IDCANCEL,167,244,50,14,WS_GROUP
CONTROL "",IDC_RELEASE_NOTES,"RichEdit20W",WS_VSCROLL | 0x804,15,77,352,88,WS_EX_STATICEDGE CONTROL "",IDC_RELEASE_NOTES,"RichEdit20W",ES_MULTILINE | ES_READONLY | WS_VSCROLL,15,77,352,88,WS_EX_STATICEDGE
DEFPUSHBUTTON "Download",IDC_DOWNLOAD,293,211,74,14,WS_GROUP DEFPUSHBUTTON "Download",IDC_DOWNLOAD,293,211,74,14,WS_GROUP
CONTROL "",IDC_PROGRESS,"msctls_progress32",WS_BORDER,15,212,270,11 CONTROL "",IDC_PROGRESS,"msctls_progress32",WS_BORDER,15,212,270,11
GROUPBOX "Release Notes",IDC_STATIC,8,63,367,111 GROUPBOX "Release Notes",IDS_NEW_VERSION_NOTES_TXT,8,63,367,111
LTEXT "A newer version is available. Please download the latest version!",IDC_STATIC,10,32,229,8 LTEXT "A newer version is available. Please download the latest version!",IDC_STATIC,10,32,229,8
LTEXT "[...]",IDC_YOUR_VERSION,10,8,124,8 LTEXT "[...]",IDC_YOUR_VERSION,10,8,124,8
LTEXT "[...]",IDC_LATEST_VERSION,10,19,129,8 LTEXT "[...]",IDC_LATEST_VERSION,10,19,129,8

View file

@ -462,6 +462,7 @@ INT_PTR CALLBACK LicenseCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM
{ {
switch (message) { switch (message) {
case WM_INITDIALOG: case WM_INITDIALOG:
apply_localization(IDD_LICENSE, hDlg);
CenterDialog(hDlg); CenterDialog(hDlg);
SetDlgItemTextA(hDlg, IDC_LICENSE_TEXT, gplv3); SetDlgItemTextA(hDlg, IDC_LICENSE_TEXT, gplv3);
break; break;
@ -469,6 +470,7 @@ INT_PTR CALLBACK LicenseCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM
switch (LOWORD(wParam)) { switch (LOWORD(wParam)) {
case IDOK: case IDOK:
case IDCANCEL: case IDCANCEL:
reset_localization(IDD_LICENSE);
EndDialog(hDlg, LOWORD(wParam)); EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE; return (INT_PTR)TRUE;
} }
@ -963,6 +965,7 @@ INT_PTR CALLBACK UpdateCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM l
switch (message) { switch (message) {
case WM_INITDIALOG: case WM_INITDIALOG:
apply_localization(IDD_UPDATE_POLICY, hDlg);
SetTitleBarIcon(hDlg); SetTitleBarIcon(hDlg);
CenterDialog(hDlg); CenterDialog(hDlg);
hFrequency = GetDlgItem(hDlg, IDC_UPDATE_FREQUENCY); hFrequency = GetDlgItem(hDlg, IDC_UPDATE_FREQUENCY);
@ -1007,6 +1010,7 @@ INT_PTR CALLBACK UpdateCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM l
switch (LOWORD(wParam)) { switch (LOWORD(wParam)) {
case IDCLOSE: case IDCLOSE:
case IDCANCEL: case IDCANCEL:
reset_localization(IDD_UPDATE_POLICY);
EndDialog(hDlg, LOWORD(wParam)); EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE; return (INT_PTR)TRUE;
case IDC_CHECK_NOW: case IDC_CHECK_NOW: