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

[localization] add embedded Chinese loc file => v1.3.4 Chinese

This commit is contained in:
Pete Batard 2013-07-18 01:22:26 +01:00
parent a976772df6
commit 3d3d05a052
7 changed files with 117 additions and 8 deletions

74
res/locale/rufus.loc Normal file
View file

@ -0,0 +1,74 @@
l "Chinese (Simplified)" 0x0804, 0x1004, 0x0404, 0x0c04, 0x1404
t IDC_START "开始"
t IDC_STOP "关闭"
t IDS_DEVICE_TXT "设备"
t IDS_PARTITION_TYPE_TXT "分区计划和目标系统类型"
t IDS_FILESYSTEM_TXT "文件系统"
t IDS_CLUSTERSIZE_TXT "簇的大小"
t IDS_LABEL_TXT "新卷标"
t IDS_FORMATOPTIONS_TXT "格式选项 "
t IDC_BADBLOCKS "检查设备的坏块:"
t IDC_QUICKFORMAT "快速格式化"
t IDC_BOOT "创建一个可启动的磁盘使用:"
r IDC_BOOT +10,0
t IDC_SET_ICON "创建扩展标签和图标文件"
m IDC_ADVANCED -24,0
m IDC_NBPASSES 8,0
m IDC_BOOTTYPE 8,0
m IDC_SELECT_ISO 6,0
t IDC_ABOUT "关于..."
t IDC_LOG "日志"
m IDC_LOG -5,0
r IDC_LOG +5,0
t IDCANCEL "关闭"
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:"
p IDD_ABOUTBOX
t IDD_ABOUTBOX "关于 Rufus"
t IDC_ABOUT_LICENSE "许可证"
t IDC_ABOUT_UPDATES "更新"
t IDOK "确定"
p IDD_ISO_EXTRACT
t IDD_ISO_EXTRACT "复制ISO文件..."
t IDC_ISO_FILENAME "打开ISO映像 - 请稍候..."
t IDC_ISO_ABORT "取消"
p IDD_LICENSE
t IDD_LICENSE "Rufus 许可证"
t IDOK "取消"
p IDD_NOTIFICATION
t IDC_MORE_INFO "更多信息"
t IDYES "是"
t IDNO "否"
p IDD_LOG
t IDD_LOG "日志"
t IDC_LOG_CLEAR "清除日志"
t IDC_LOG_SAVE "保存日志"
t IDCANCEL "关闭日志"
p IDD_LICENSE
t IDOK "取消"
p IDD_UPDATE_POLICY
t 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 IDD_NEW_VERSION "检查更新 - Rufus"
t IDS_NEW_VERSION_AVAIL_TXT "更新的版本可用。请下载最新版本!"
t IDC_WEBSITE "点击这里进入网站"
t IDS_NEW_VERSION_NOTES_TXT "发行说明"
t IDS_NEW_VERSION_DOWNLOAD_TXT "下载"
t IDC_DOWNLOAD "下载"
t IDCANCEL "取消"

View file

@ -354,6 +354,20 @@ static __inline DWORD GetCurrentDirectoryU(DWORD nBufferLength, char* lpBuffer)
return ret; return ret;
} }
static __inline DWORD GetTempPathU(DWORD nBufferLength, char* lpBuffer)
{
DWORD ret = 0, err = ERROR_INVALID_DATA;
walloc(lpBuffer, nBufferLength);
ret = GetTempPathW(nBufferLength, wlpBuffer);
err = GetLastError();
if ((ret != 0) && ((ret = wchar_to_utf8_no_alloc(wlpBuffer, lpBuffer, nBufferLength)) == 0)) {
err = GetLastError();
}
wfree(lpBuffer);
SetLastError(err);
return ret;
}
static __inline DWORD GetModuleFileNameU(HMODULE hModule, char* lpFilename, DWORD nSize) static __inline DWORD GetModuleFileNameU(HMODULE hModule, char* lpFilename, DWORD nSize)
{ {
DWORD ret = 0, err = ERROR_INVALID_DATA; DWORD ret = 0, err = ERROR_INVALID_DATA;

View file

@ -199,7 +199,7 @@ char* get_loc_data_file(const char* filename)
char *ret = NULL; char *ret = NULL;
size_t i = 0; size_t i = 0;
int r = 0, line_nr_incr = 1; int r = 0, line_nr_incr = 1;
wchar_t wc = 0, last_wc, eol_char = 0; wchar_t wc = 0, eol_char = 0;
BOOL eol = FALSE; BOOL eol = FALSE;
if ((filename == NULL) || (filename[0] == 0)) if ((filename == NULL) || (filename[0] == 0))
@ -224,7 +224,6 @@ char* get_loc_data_file(const char* filename)
} }
do { // custom readline handling for string collation, realloc, line numbers, etc. do { // custom readline handling for string collation, realloc, line numbers, etc.
last_wc = wc;
wc = getwc(fd); wc = getwc(fd);
switch(wc) { switch(wc) {
case WEOF: case WEOF:
@ -238,7 +237,7 @@ char* get_loc_data_file(const char* filename)
// This assumes that the EOL sequence is always the same throughout the file // This assumes that the EOL sequence is always the same throughout the file
if (eol_char == 0) if (eol_char == 0)
eol_char = wc; eol_char = wc;
if (wc = eol_char) { if (wc == eol_char) {
if (eol) { if (eol) {
line_nr_incr++; line_nr_incr++;
} else { } else {

View file

@ -45,6 +45,7 @@
#define IDR_SL_LDLINUX_V4_SYS 401 #define IDR_SL_LDLINUX_V4_SYS 401
#define IDR_SL_LDLINUX_V5_BSS 402 #define IDR_SL_LDLINUX_V5_BSS 402
#define IDR_SL_LDLINUX_V5_SYS 403 #define IDR_SL_LDLINUX_V5_SYS 403
#define IDR_LC_RUFUS_LOC 500
#define IDC_DEVICE 1001 #define IDC_DEVICE 1001
#define IDC_FILESYSTEM 1002 #define IDC_FILESYSTEM 1002
#define IDC_START 1003 #define IDC_START 1003

View file

@ -1915,12 +1915,16 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
#endif #endif
{ {
const char* old_wait_option = "/W"; const char* old_wait_option = "/W";
const char* loc_name = "rufus.loc";
int i, opt, option_index = 0, argc = 0, si = 0; int i, opt, option_index = 0, argc = 0, si = 0;
BOOL attached_console = FALSE; BOOL attached_console = FALSE;
BYTE* loc_data;
DWORD loc_size, Size;
char loc_path[MAX_PATH];
char** argv = NULL; char** argv = NULL;
wchar_t **wenv, **wargv; wchar_t **wenv, **wargv;
PF_DECL(__wgetmainargs); PF_DECL(__wgetmainargs);
HANDLE mutex = NULL; HANDLE hFile = NULL, mutex = NULL;
HWND hDlg = NULL; HWND hDlg = NULL;
MSG msg; MSG msg;
int wait_for_mutex = 0; int wait_for_mutex = 0;
@ -2022,6 +2026,21 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
// 0x9e disables removable and fixed drive notifications // 0x9e disables removable and fixed drive notifications
SetLGP(FALSE, &existing_key, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", "NoDriveTypeAutorun", 0x9e); SetLGP(FALSE, &existing_key, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", "NoDriveTypeAutorun", 0x9e);
// Extract the embedded localization data into the user's temp dir
loc_data = (BYTE*)GetResource(hMainInstance, MAKEINTRESOURCEA(IDR_LC_RUFUS_LOC), _RT_RCDATA, loc_name, &loc_size, FALSE);
GetTempPathU(sizeof(loc_path), loc_path);
safe_strcat(loc_path, sizeof(loc_name), loc_name);
hFile = CreateFileU(loc_path, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL, CREATE_ALWAYS, 0, 0);
if ((hFile == INVALID_HANDLE_VALUE)|| (!WriteFile(hFile, loc_data, loc_size, &Size, 0)) || (loc_size != Size)) {
uprintf("Unable to create file '%s': %s.\n", loc_path, WindowsErrorString());
} else {
uprintf("Successfully extracted '%s'\n", loc_path);
get_loc_data_file(loc_path);
}
safe_closehandle(hFile);
// Create the main Window // Create the main Window
hDlg = CreateDialogW(hInstance, MAKEINTRESOURCEW(IDD_DIALOG), NULL, MainCallback); hDlg = CreateDialogW(hInstance, MAKEINTRESOURCEW(IDD_DIALOG), NULL, MainCallback);
if (hDlg == NULL) { if (hDlg == NULL) {

View file

@ -29,7 +29,7 @@
/* Program options */ /* Program options */
#define RUFUS_DEBUG // print debug info to Debug facility #define RUFUS_DEBUG // print debug info to Debug facility
/* Features not ready for prime time and that may *DESTROY* your data - USE AT YOUR OWN RISKS! */ /* Features not ready for prime time and that may *DESTROY* your data - USE AT YOUR OWN RISKS! */
#define RUFUS_TEST // #define RUFUS_TEST
#define APPLICATION_NAME "Rufus" #define APPLICATION_NAME "Rufus"
#define COMPANY_NAME "Akeo Consulting" #define COMPANY_NAME "Akeo Consulting"

View file

@ -71,7 +71,7 @@ END
IDD_ABOUTBOX DIALOGEX 0, 0, 287, 201 IDD_ABOUTBOX DIALOGEX 0, 0, 287, 201
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About Rufus" CAPTION "About Rufus"
FONT 8, "Microsoft Sans Serif", 400, 0, 0x0 FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN BEGIN
ICON IDI_ICON,IDC_ABOUT_ICON,11,8,20,20 ICON IDI_ICON,IDC_ABOUT_ICON,11,8,20,20
DEFPUSHBUTTON "OK",IDOK,231,181,50,14,WS_GROUP DEFPUSHBUTTON "OK",IDOK,231,181,50,14,WS_GROUP
@ -128,7 +128,7 @@ END
IDD_UPDATE_POLICY DIALOGEX 0, 0, 287, 198 IDD_UPDATE_POLICY DIALOGEX 0, 0, 287, 198
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU 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, "MS Shell Dlg", 400, 0, 0x0
BEGIN BEGIN
ICON IDI_ICON,IDC_ABOUT_ICON,11,8,20,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
@ -145,7 +145,7 @@ END
IDD_NEW_VERSION DIALOGEX 0, 0, 384, 268 IDD_NEW_VERSION DIALOGEX 0, 0, 384, 268
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Check For Updates - Rufus" CAPTION "Check For Updates - Rufus"
FONT 8, "Microsoft Sans Serif", 400, 0, 0x0 FONT 8, "MS Shell Dlg", 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",ES_MULTILINE | ES_READONLY | WS_VSCROLL,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
@ -184,6 +184,7 @@ END
3 TEXTINCLUDE 3 TEXTINCLUDE
BEGIN BEGIN
"\r\n" "\r\n"
"IDR_LC_RUFUS_LOC RCDATA ""../res/locale/rufus.loc""\r\n"
"IDR_SL_LDLINUX_V4_BSS RCDATA ""../res/syslinux/ldlinux_v4.bss""\r\n" "IDR_SL_LDLINUX_V4_BSS RCDATA ""../res/syslinux/ldlinux_v4.bss""\r\n"
"IDR_SL_LDLINUX_V4_SYS RCDATA ""../res/syslinux/ldlinux_v4.sys""\r\n" "IDR_SL_LDLINUX_V4_SYS RCDATA ""../res/syslinux/ldlinux_v4.sys""\r\n"
"IDR_SL_LDLINUX_V5_BSS RCDATA ""../res/syslinux/ldlinux_v5.bss""\r\n" "IDR_SL_LDLINUX_V5_BSS RCDATA ""../res/syslinux/ldlinux_v5.bss""\r\n"
@ -332,6 +333,7 @@ IDI_DOWN ICON "../res/down.ico"
// Generated from the TEXTINCLUDE 3 resource. // Generated from the TEXTINCLUDE 3 resource.
// //
IDR_LC_RUFUS_LOC RCDATA "../res/locale/rufus.loc"
IDR_SL_LDLINUX_V4_BSS RCDATA "../res/syslinux/ldlinux_v4.bss" IDR_SL_LDLINUX_V4_BSS RCDATA "../res/syslinux/ldlinux_v4.bss"
IDR_SL_LDLINUX_V4_SYS RCDATA "../res/syslinux/ldlinux_v4.sys" IDR_SL_LDLINUX_V4_SYS RCDATA "../res/syslinux/ldlinux_v4.sys"
IDR_SL_LDLINUX_V5_BSS RCDATA "../res/syslinux/ldlinux_v5.bss" IDR_SL_LDLINUX_V5_BSS RCDATA "../res/syslinux/ldlinux_v5.bss"