diff --git a/Makefile.in b/Makefile.in index 52f15289..601d838e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -106,6 +106,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ diff --git a/bootstrap.sh b/bootstrap.sh index 7b3c0a19..a90d6925 100644 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,6 +1,5 @@ #!/bin/sh aclocal || exit 1 -#autoheader || exit 1 automake -a -c || exit 1 autoconf || exit 1 rm -rf autom4te.cache diff --git a/configure b/configure index 9d02a286..817319c0 100644 --- a/configure +++ b/configure @@ -173,7 +173,8 @@ test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else @@ -574,6 +575,7 @@ AM_CFLAGS VISIBILITY_CFLAGS WINDRES RM +SED RANLIB OBJEXT EXEEXT @@ -3165,6 +3167,75 @@ else RANLIB="$ac_cv_prog_RANLIB" fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + # Extract the first word of "rm", so it can be a program name with args. set dummy rm; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -3505,6 +3576,8 @@ ac_config_files="$ac_config_files src/libcdio/udf/Makefile" ac_config_files="$ac_config_files src/libcdio/driver/Makefile" +ac_config_files="$ac_config_files res/localization/Makefile" + cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -4242,6 +4315,7 @@ do "src/libcdio/iso9660/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcdio/iso9660/Makefile" ;; "src/libcdio/udf/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcdio/udf/Makefile" ;; "src/libcdio/driver/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcdio/driver/Makefile" ;; + "res/localization/Makefile") CONFIG_FILES="$CONFIG_FILES res/localization/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac diff --git a/configure.ac b/configure.ac index a4358979..bfc38235 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,7 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], AC_PREREQ([2.50]) AC_PROG_CC AC_PROG_RANLIB +AC_PROG_SED AC_PATH_PROG(RM, rm, rm) AC_CHECK_TOOL(STRIP, strip, strip) AC_CHECK_TOOL(WINDRES, windres, windres) @@ -58,4 +59,5 @@ AC_CONFIG_FILES([src/syslinux/libinstaller/Makefile]) AC_CONFIG_FILES([src/libcdio/iso9660/Makefile]) AC_CONFIG_FILES([src/libcdio/udf/Makefile]) AC_CONFIG_FILES([src/libcdio/driver/Makefile]) +AC_CONFIG_FILES([res/localization/Makefile]) AC_OUTPUT diff --git a/res/localization/Makefile.am b/res/localization/Makefile.am new file mode 100644 index 00000000..b824d71c --- /dev/null +++ b/res/localization/Makefile.am @@ -0,0 +1,15 @@ +all-local: embedded.loc + +BUILT_SOURCES = embedded.loc +noinst_PROGRAMS = +noinst_EXES = + +pkg_v_sed = $(pkg_v_sed_$(V)) +pkg_v_sed_ = $(pkg_v_sed_$(AM_DEFAULT_VERBOSITY)) +pkg_v_sed_0 = @echo " SED $<"; + +embedded.loc: rufus.loc + $(pkg_v_sed)$(SED) -f embedded.sed $< > $@ + +clean-local: + -rm -rf embedded.loc diff --git a/res/localization/Makefile.in b/res/localization/Makefile.in new file mode 100644 index 00000000..0d88144a --- /dev/null +++ b/res/localization/Makefile.in @@ -0,0 +1,312 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +noinst_PROGRAMS = +subdir = res/localization +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +PROGRAMS = $(noinst_PROGRAMS) +depcomp = +am__depfiles_maybe = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AM_LDFLAGS = @AM_LDFLAGS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EXEEXT = @EXEEXT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +RM = @RM@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ +WINDRES = @WINDRES@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +BUILT_SOURCES = embedded.loc +noinst_EXES = +pkg_v_sed = $(pkg_v_sed_$(V)) +pkg_v_sed_ = $(pkg_v_sed_$(AM_DEFAULT_VERBOSITY)) +pkg_v_sed_0 = @echo " SED $<"; +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps res/localization/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign --ignore-deps res/localization/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(PROGRAMS) all-local +installdirs: +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-local clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: all check install install-am install-strip + +.PHONY: all all-am all-local check check-am clean clean-generic \ + clean-local clean-noinstPROGRAMS distclean distclean-generic \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am uninstall uninstall-am + +all-local: embedded.loc + +embedded.loc: rufus.loc + $(pkg_v_sed)$(SED) -f embedded.sed $< > $@ + +clean-local: + -rm -rf embedded.loc + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/res/localization/embedded.sed b/res/localization/embedded.sed new file mode 100644 index 00000000..90810b6f --- /dev/null +++ b/res/localization/embedded.sed @@ -0,0 +1,17 @@ +# This sed script removes everything we don't need from rufus.loc, for embedding. + +# remove comments (aggressively!) +s/#.*$// + +# remove empty lines +/^$/d + +# remove trailing whitespaces +s/[ \t]*$// + +# remove the UI controls for "en-US" as they are just here for translators +# 1,300 means we only do this for the the first 300 lines +1,300 {/g IDD_DIALOG/,/g IDD_MESSAGES/{/g IDD_MESSAGES/!d}} + +# output file *MUST* be CR/LF +s/$/\r/ \ No newline at end of file diff --git a/res/localization/new_translation.loc b/res/localization/new_translation.loc deleted file mode 100644 index d40a2d7d..00000000 --- a/res/localization/new_translation.loc +++ /dev/null @@ -1,414 +0,0 @@ -# This file should be saved as UTF-8, no-BOM - -######################## HOW TO ADD A NEW TRANSLATION ########################### -# For a more comprehensive set of instructions, please see the *FULL* Localization guide at: -# https://github.com/pbatard/rufus/wiki/Localization -# -# 1. Rename this file as 'rufus.loc' and save it in the same directory where you have the Rufus executable. -# 2. Start Rufus, and check the log a line starting with 'LCID' (eg. LCID 0x1809). -# 3. Edit the 'l' line below and: -# - set the IETF language tag (in quotes) for your language, eg: "en-US", "fr-FR", "zh-CN" -# See http://en.wikipedia.org/wiki/IETF_language_tag as well as the table on page 9 of -# http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-LCID%5D.pdf -# - set the name under which you want your language to appear in the (future) language selection menu. -# As this is the name users will see, it should be in your language (eg. "正體字" rather than "Chinese") -# - replace "0x1234" with the LCID code you got in step 2. You should also look at the table on page 9 of -# the PDF above to add all the LCID codes your translation should cover. Separate these codes with a comma. -# 4. Translate the messages that appear below into your language. The 'g' lines indicate the group a translated -# element belongs to. You shouldn't have to modify them. -# 5. (Re)launch Rufus. If a 'rufus.loc' file is found in the current directory, it will be used over the one -# embedded in the application. Since there is only one translation in this file, it will be used by default -# 6. Repeat steps 4 & 5 until you're happy with that translated elements. Note that you MUST restart Rufus every -# time you change your .loc file as there is no reload option. -# 7. Once you are satisfied with your translation, you should pick up the official rufus.loc from: -# https://github.com/pbatard/rufus/raw/master/res/localization/rufus.loc -# You should then add your translation at the end of it, and confirm that it is still picked as the default -# for your system You can also force the use of a translation by passing the option -l when starting Rufus. -# For instance, to have the "zz_ZZ" translation below apply, you could use either one of: -# rufus.exe -l zz-ZZ -# rufus.exe -l 0x1234 -# rufus.exe -l 0xabcd -# 8. If you need to resize a control or a dialog to fid the translated text, use the 'm' (Move) or 's' (reSize) -# options. For an example of how these commands work, see how they are use in the French translation at: -# https://github.com/pbatard/rufus/blob/master/res/localization/rufus.loc -# -# Tips: -# - Please make sure that you edit the language include *your* name in MSG_176. It will be displayed in the -# About dialog and I want to give you credit for your work! -# - Use Alt-R in Rufus to delete the registry keys on exit, which will reset the update check policy. This -# will allow you to see your translation for the initial prompt about application updates. -# - I strongly recommend installing and using DbgView to check for translation errors, as you will get more -# information about how Rufus initallly parses the translation file plus reports of any issue found (with -# the line number). Download DbgView from: http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx -# - As shown below, you can break a long message over multiple lines, as long as these fragments begin and end -# with a double quote ("). Also be careful to keep the special symbols such as %d, %s, \\b, \", \n. Time -# permitting, I'll try to provide examples of the output that these lines generate. -# - A more comprehensive guide WILL be available at https://github.com/pbatard/rufus/wiki/Localization -# This early set of instructions is provided only for impatient translators! ;) - -################################################################################ -l "zz-ZZ" "LangName_EN (LangName_ZZ)" 0x1234, 0xabcd -# See http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx or -# http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-LCID%5D.pdf -# for the LCID (0x####) codes you should use -v 1.0.2 - -# Main dialog -g IDD_DIALOG -t IDS_DEVICE_TXT "Device" -t IDS_PARTITION_TYPE_TXT "Partition scheme and target system type" -t IDS_FILESYSTEM_TXT "File system" -t IDS_CLUSTERSIZE_TXT "Cluster size" -t IDS_LABEL_TXT "New volume label" -t IDS_FORMAT_OPTIONS_GRP "Format Options " -t IDC_BADBLOCKS "Check device for bad blocks:" -t IDC_QUICKFORMAT "Quick format" -t IDC_BOOT "Create a bootable disk using:" -t IDC_SET_ICON "Create extended label and icon files" -t IDC_ABOUT "About..." -t IDC_LOG "Log" -t IDCANCEL "Close" -t IDC_START "Start" -t IDS_ADVANCED_OPTIONS_GRP "Advanced Options" -t IDC_ENABLE_FIXED_DISKS "List non removable or unpartitioned USB disks" -t IDC_EXTRA_PARTITION "Add fixes for old BIOSes (extra partition, align, etc.)" -t IDC_RUFUS_MBR "Use Rufus MBR with BIOS ID:" - -# About dialog -g IDD_ABOUTBOX -t IDD_ABOUTBOX "About Rufus" -t IDC_ABOUT_LICENSE "License" -t IDC_ABOUT_UPDATES "Updates" - -# About -> License dialog -g IDD_LICENSE -t IDD_LICENSE "Rufus License" -t IDCANCEL "Close" - -# Notifications. You can trigger one of these by using Alt-R and re-launching Rufus -g IDD_NOTIFICATION -t IDC_MORE_INFO "More information" -t IDYES "Yes" -t IDNO "No" - -# Log dialog -g IDD_LOG -t IDD_LOG "Log" -t IDC_LOG_CLEAR "Clear Log" -t IDC_LOG_SAVE "Save Log" -t IDCANCEL "Close Log" - -# About -> Updates -g IDD_UPDATE_POLICY -t IDD_UPDATE_POLICY "Update policy and settings" -t IDS_UPDATE_SETTINGS_GRP "Settings" -t IDS_UPDATE_FREQUENCY_TXT "Check for updates:" -t IDS_INCLUDE_BETAS_TXT "Include beta versions:" -t IDC_CHECK_NOW "Check Now" -t IDCANCEL "Close" - -# Dialog that appears when a new version is available -g IDD_NEW_VERSION -t IDD_NEW_VERSION "Check For Updates - Rufus" -t IDS_NEW_VERSION_AVAIL_TXT "A newer version is available. Please download the latest version!" -t IDC_WEBSITE "Click here to go to the website" -t IDS_NEW_VERSION_NOTES_GRP "Release Notes" -t IDS_NEW_VERSION_DOWNLOAD_GRP "Download" -t IDC_DOWNLOAD "Download" -t IDCANCEL "Close" - -# Dialog that appears when scanning/extracting ISO files -g IDD_ISO_EXTRACT -t IDD_ISO_EXTRACT "Copying ISO files..." -t IDC_ISO_FILENAME "Opening ISO image - please wait..." -t IDC_ISO_ABORT "Cancel" - -# Messages used throughout the application -g IDD_MESSAGES -t MSG_001 "Other instance detected" -t MSG_002 "Another Rufus application is running.\n" - "Please close the first application before running another one." -t MSG_003 "WARNING: ALL DATA ON DEVICE '%s' WILL BE DESTROYED.\n" - "To continue with this operation, click OK. To quit click CANCEL." -t MSG_004 "Rufus update policy" -t MSG_005 "Do you want to allow Rufus to check for application updates online?" -# Must be the same as IDD_DIALOG:IDCANCEL (i.e. "Close" - I know it's confusing) -t MSG_006 "Close" -t MSG_007 "Cancel" -t MSG_008 "Yes" -t MSG_009 "No" -t MSG_010 "Bad blocks found" -t MSG_011 "Check completed: %u bad block(s) found\n" - " %d read error(s)\n %d write error(s)\n %d corruption error(s)\n" -# The following will contain the formatted message above as well as the name of the bad blocks logfile -t MSG_012 "%s\nA more detailed report can be found in:\n%s" -t MSG_013 "Disabled" -t MSG_014 "Daily" -t MSG_015 "Weekly" -t MSG_016 "Monthly" -t MSG_017 "Custom" -t MSG_018 "Your version: %d.%d.%d (Build %d)" -t MSG_019 "Latest version: %d.%d.%d (Build %d)" -# *Short* size names. These can be used as suffixes -t MSG_020 "bytes" -t MSG_021 "KB" -t MSG_022 "MB" -t MSG_023 "GB" -t MSG_024 "TB" -t MSG_025 "PB" -# *Long* size names, as they are displayed for the cluster size in the MS format dialog. -t MSG_026 "bytes" # Yes, this is a repeat from MSG_020 -t MSG_027 "kilobytes" -t MSG_028 "megabytes" -t MSG_029 "Default" -# The following gets appended to the file system, cluster size, etc. -t MSG_030 "%s (Default)" -t MSG_031 "%s partition scheme for BIOS computer" -t MSG_032 "%s partition scheme for UEFI computer" -t MSG_033 "%s partition scheme for BIOS or UEFI computers" -# Number of bad block check passes (singular for 1 pass, plural for 2 or more passes) -t MSG_034 "%d Pass" -t MSG_035 "%d Passes" -t MSG_036 "ISO Image" -t MSG_037 "Application" -t MSG_038 "Abort" -t MSG_039 "Launch" -t MSG_040 "Download" -t MSG_041 "Operation cancelled by the user" -t MSG_042 "Error" -t MSG_043 "Error: %s" -t MSG_044 "File download" -t MSG_045 "USB Storage Device (Generic)" -t MSG_046 "%s (Disk %d)" -t MSG_047 "%s (%c:)" -t MSG_048 "Rufus - Flushing buffers" -t MSG_049 "Rufus - Cancellation" - -# Error messages -t MSG_050 "Success." -t MSG_051 "Undetermined error while formatting." -t MSG_052 "Cannot use the selected file system for this media." -t MSG_053 "Access to the device is denied." -t MSG_054 "Media is write protected." -t MSG_055 "The device is in use by another process. " - "Please close any other process that may be accessing the device." -t MSG_056 "Quick format is not available for this device." -t MSG_057 "The volume label is invalid." -t MSG_058 "The device handle is invalid." -t MSG_059 "The selected cluster size is not valid for this device." -t MSG_060 "The volume size is invalid." -t MSG_061 "Please insert a removable media in drive." -t MSG_062 "An unsupported command was received." -t MSG_063 "Memory allocation error." -t MSG_064 "Read error." -t MSG_065 "Write error." -t MSG_066 "Installation failure" -t MSG_067 "Could not open media. It may be in use by another process. " - "Please re-plug the media and try again." -t MSG_068 "Error while partitioning drive." -t MSG_069 "Could not copy files to target drive." -t MSG_070 "Cancelled by user." -# See http://en.wikipedia.org/wiki/Thread_%28computing%29 -t MSG_071 "Unable to start thread." -t MSG_072 "Bad blocks check didn't complete." -t MSG_073 "ISO image scan failure." -t MSG_074 "ISO image extraction failure." -t MSG_075 "Unable to remount volume." -t MSG_076 "Unable to patch/setup files for boot." -t MSG_077 "Unable to assign a drive letter." -t MSG_078 "Can't mount GUID volume." - -t MSG_080 "Rufus detected that Windows is still flushing its internal buffers onto the USB device.\n\n" - "Depending on the speed of your USB device, this operation may take a long time to complete, " - "especially for large files.\n\nWe recommend that you let Windows finish, to avoid corruption. " - "But if you grow tired of waiting, you can just unplug the device..." -t MSG_081 "Unsupported ISO" -t MSG_082 "This version of Rufus only supports bootable ISOs based on bootmgr/WinPE, isolinux or EFI.\n" - "This ISO doesn't appear to use either..." -t MSG_083 "Replace %s?" -t MSG_084 "This ISO image seems to use an obsolete version of '%s'.\n" - "Boot menus may not display properly because of this.\n\n" - "A newer version can be downloaded by Rufus to fix this issue:\n" - "- Choose 'Yes' to connect to the internet and download the file\n" - "- Choose 'No' to leave the existing ISO file unmodified\n" - "If you don't know what to do, you should select 'Yes'.\n\n" - "Note: The new file will be downloaded in the current directory and once a " - "'%s' exists there, it will be reused automatically." -t MSG_085 "Downloading %s" -t MSG_086 "No ISO image selected" -# The content between the quotes below (\"Create a bootable disk\") should match -# the beginning of the IDC_BOOT text -t MSG_087 "Please click on the disc button to select a bootable ISO, " - "or uncheck the \"Create a bootable disk...\" checkbox." -t MSG_088 "ISO too big" -t MSG_089 "This ISO image is too big for the selected target." -t MSG_090 "Unsupported ISO" -t MSG_091 "When using UEFI Target Type, only EFI bootable ISO images are supported. " - "Please select an EFI bootable ISO or set the Target Type to BIOS." -t MSG_092 "Unsupported filesystem" -t MSG_093 "When using UEFI Target Type, only FAT/FAT32 is supported. " - "Please select FAT/FAT32 as the File system or set the Target Type to BIOS." -t MSG_094 "Non UEFI compatible ISO" -t MSG_095 "This ISO image contains a file larger than 4 GB and cannot be used to create an EFI bootable USB.\n" - "This is a limitation of UEFI/FAT32, not Rufus." -t MSG_096 "Only FAT/FAT32 is supported for this type of ISO. Please select FAT/FAT32 as the File system." -t MSG_097 "Only 'bootmgr' or 'WinPE' based ISO images can currently be used with NTFS." -t MSG_098 "FAT/FAT32 can only be used for isolinux based ISO images or when the Target Type is UEFI." -t MSG_099 "Filesystem limitation" -t MSG_100 "This ISO image contains a file larger than 4GB file, which is more than the " - "maximum size allowed for a FAT or FAT32 file system." -t MSG_101 "Missing WIM support" -t MSG_102 "Your platform cannot extract files from WIM archives. WIM extraction " - "is required to create EFI bootable Windows 7 and Windows Vista USB drives. You can fix that " - "by installing a recent version of 7-Zip.\nDo you want to visit the 7-zip download page?" -t MSG_103 "Download %s?" -t MSG_104 "Syslinux v5.0 or later requires a '%s' file to be installed.\n" - "Because this file is more than 100 KB in size, and always present on Syslinux v5+ ISO images, " - "it is not embedded in Rufus.\n\nRufus can download the missing file for you:\n" - "- Select 'Yes' to connect to the internet and download the file\n" - "- Select 'No' if you want to manually copy this file on the drive later\n\n" - "Note: The file will be downloaded in the current directory and once a " - "'%s' exists there, it will be reused automatically.\n" -t MSG_105 "Cancelling may leave the device in an UNUSABLE state.\n" - "If you are sure you want to cancel, click YES. Otherwise, click NO." -t MSG_106 "Please select folder" -t MSG_107 "All files" -t MSG_108 "Rufus log" -t MSG_109 "0x%02X (Disk %d)" -# "Cluster size" below should be the same as the label for IDS_CLUSTERSIZE_TXT -# "kilobytes" should be the same as in MSG_027 -t MSG_110 "MS-DOS cannot boot from a drive using a 64 kilobytes Cluster size.\n" - "Please change the Cluster size or use FreeDOS." -t MSG_111 "Incompatible Cluster size" -# "%d:%02d" below is a duration (mins:secs) -t MSG_112 "Formatting a large UDF volumes can take a lot of time. At USB 2.0 speeds, the estimated formatting " - "duration is %d:%02d, during which the progress bar will appear frozen. Please be patient!" -t MSG_113 "Large UDF volume" - -# Tootips -# Partition Scheme and Target Type -t MSG_150 "Usually the safest choice. If you have an UEFI computer and want to install " - "an OS in EFI mode however, you should select one of the other options" -t MSG_151 "Use this if you want to install an OS in EFI mode, but need to access " - "the USB content from Windows XP" -t MSG_152 "The preferred option to install an OS in EFI mode and when " - "USB access is not required for Windows XP" -t MSG_153 "Test pattern: 0x%02X" -t MSG_154 "Test pattern: 0x%02X, 0x%02X" -t MSG_155 "Test pattern: 0x%02X, 0x%02X, 0x%02X" -t MSG_156 "Test pattern: 0x%02X, 0x%02X, 0x%02X, 0x%02X" -t MSG_157 "Sets the target filesystem" -t MSG_158 "Minimum size that a block of data will occupy in the filesystem" -t MSG_159 "Use this field to set the drive label\nInternational characters are accepted" -t MSG_160 "Toggle advanced options" -t MSG_161 "Check the device for bad blocks using a test pattern" -t MSG_162 "Uncheck this box to use the \"slow\" format method" -t MSG_163 "Check this box to make the USB drive bootable" -t MSG_164 "Method that will be used to make the drive bootable" -t MSG_165 "Click to select an ISO..." -t MSG_166 "Check this box to allow the display of international labels " - "and set a device icon (creates an autorun.inf)" -t MSG_167 "Install an MBR that allows boot selection and can masquerade the BIOS USB drive ID" -t MSG_168 "Try to masquerade first bootable USB drive (usually 0x80) as a different disk.\n" - "This should only be necessary if you install Windows XP and have more than one disk" -t MSG_169 "Create an extra hidden partition and try to align partitions boundaries.\n" - "This can improve boot detection for older BIOSes" -t MSG_170 "Enable detection for disks not normally detected by Rufus. USE AT YOUR OWN RISKS!!!" -t MSG_171 "Start the formatting operation.\nThis will DESTROY any data on the target!" -t MSG_172 "Licensing information and credits" -t MSG_173 "Click to select..." -# The following will appear in the about dialog -t MSG_174 "Rufus - The Reliable USB Formatting Utility" -t MSG_175 "Version %d.%d.%d (Build %d)" -t MSG_176 "English translation: Pete Batard " -t MSG_177 "Report bugs or request enhancements at:" -t MSG_178 "Additional Copyrights:" -t MSG_179 "Update Policy:" -t MSG_180 "If you choose to allow this program to check for application updates, " - "you agree that the following information may be collected on our server(s):" -t MSG_181 "Your operating system's architecture and version" -t MSG_182 "The version of the application you use" -t MSG_183 "Your IP address" -t MSG_184 "For the purpose of generating private usage statistics, we may keep the information collected, " - "\\b for at most a year\\b0 . However, we will not willingly disclose any of this individual data to third parties." -t MSG_185 "Update Process:" -t MSG_186 "Rufus does not install or run background services, therefore update checks are performed only when the main application is running.\\line\n" - "Internet access is of course required when checking for updates." - -# Status messages - these messages will appear on the status bar -t MSG_201 "Cancelling - Please wait..." -t MSG_202 "Scanning ISO image..." -t MSG_203 "Failed to scan ISO image" -# Parameter: the name of an obsolete Syslinux .c32 module. eg: "Obsolete vesamenu.c32 detected" -t MSG_204 "Obsolete %s detected" -# Display the name of the ISO selected. eg: "Using ISO: en_win7_x64_sp1.iso" -t MSG_205 "Using ISO: %s" -# Typically "Missing ldlinux.c32 file" -t MSG_206 "Missing %s file" -# The name proposed by Windows' Computer Management -> Disk Management when you try to format a drive -# with an empty label. See http://rufus.akeo.ie/pics/default_name.png -t MSG_207 "New Volume" -# Same message, once for singular and plural ("1 device found", "2 devices found") -t MSG_208 "%d device found" -t MSG_209 "%d devices found" -t MSG_210 "DONE." -t MSG_211 "Cancelled." -t MSG_212 "FAILED." -# Used when a new update has been downloaded and lauched -t MSG_213 "Launching new application..." -t MSG_214 "Failed to launch new application" -# Open/Save file -t MSG_215 "Opened %s" -t MSG_216 "Saved %s" -# Formatting status (make sure you use a double % to print the percent sign) -t MSG_217 "Formatting: %0.1f%% completed" -t MSG_218 "Creating file system: Task %d/%d completed" -t MSG_219 "NTFS Fixup: %d%% completed" -# Parameter: the file system and an estimated duration in mins and secs. -# eg. "Formatting (UDF) - Estimated duration 3:21..." -# NB: if "estimated duration" is too long, just use "estimated" or an abbreviation -t MSG_220 "Formatting (%s) - estimated duration %d:%02d..." -t MSG_221 "Setting Label (This may take while)..." -# Parameter: the file system. eg. "Formatting (NTFS)..." -t MSG_222 "Formatting (%s)..." -t MSG_223 "NTFS Fixup (Checkdisk)..." -t MSG_224 "Clearing MBR/PBR/GPT structures..." -t MSG_225 "Requesting disk access..." -t MSG_226 "Analyzing existing boot records..." -t MSG_227 "Closing existing volume..." -t MSG_228 "Writing master boot record..." -t MSG_229 "Writing partition boot record..." -t MSG_230 "Copying DOS files..." -t MSG_231 "Copying ISO files..." -t MSG_232 "Win7 EFI boot setup (this may take a while)..." -t MSG_233 "Finalizing, please wait..." -# Takes the Syslinux version as paramete. eg. "Installing Syslinux v5..." -t MSG_234 "Installing Syslinux v%d..." -# Bad blocks status. eg: "Bad Blocks: PASS 1/2 - 12.34% (0/0/1 errors)" -t MSG_235 "Bad Blocks: PASS %d/%d - %0.2f%% (%d/%d/%d errors)" -t MSG_236 "Bad Blocks: Testing with random pattern" -t MSG_237 "Bad Blocks: Testing with pattern 0x%02X" -# eg. "Partitioning (MBR)..." -t MSG_238 "Partitioning (%s)..." -t MSG_239 "Deleting partitions..." -t MSG_240 "Downloading %s: Connecting..." -t MSG_241 "Downloading: %0.1f%%" -t MSG_242 "Failed to download file." -t MSG_243 "Checking for Rufus updates..." -t MSG_244 "Updates: Unable to connect to the internet" -t MSG_245 "Updates: Unable to acces version data" -t MSG_246 "A new version of Rufus is available!" -t MSG_247 "No new version of Rufus was found" -t MSG_248 "Application registry keys successfully deleted" -t MSG_249 "Failed to delete application registry keys" -# eg. "Fixed disk detection enabled" "ISO size check disabled" -t MSG_250 "%s enabled" -t MSG_251 "%s disabled" -t MSG_252 "Size checks" -t MSG_253 "Fixed disks detection" -t MSG_254 "Force large FAT32 formatting" -t MSG_255 "NoDriveTypeAutorun will be deleted on exit" -t MSG_256 "Fake drive detection" -t MSG_257 "Joliet support" -t MSG_258 "Rock Ridge support" -t MSG_259 "Force update" diff --git a/res/localization/rufus.loc b/res/localization/rufus.loc index 7a40eae1..231810de 100644 --- a/res/localization/rufus.loc +++ b/res/localization/rufus.loc @@ -1,8 +1,134 @@ -# This file should be saved as UTF-8, no-BOM +# This file should be saved as UTF-8, no-BOM, with CR/LF + +######################## HOW TO ADD A NEW TRANSLATION ########################### +# For a more comprehensive set of instructions, please see the *FULL* Localization guide at: +# https://github.com/pbatard/rufus/wiki/Localization +# +# 0. Download the latest Rufus executable, start it and check the log for a line starting with 'LCID' +# (eg. LCID 0x1809). +# 1. Save this file in the same directory where you have the Rufus executable. +# 2. Copy the lines between ### TRANSLATOR START COPY ### and ### TRANSLATOR END COPY ### and paste them at +# the end of the file. +# 3. Edit the 'l' line in the section you copied and: +# - replace the "en-US" IETF language tag for your language, eg: "fr-FR", "zh-CN". +# See http://en.wikipedia.org/wiki/IETF_language_tag as well as the table on page 9 of +# http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-LCID%5D.pdf +# - set the name of your language first in English and then, in parenthesis, in your own language. +# eg: "Chinese Simplified (简体中文)" +# - remove the end of the line starting with 0x0409 and replaced it with the LCID code you got in step 0. +# You also may want to look at the table on page 9 of the PDF above to add all the LCID codes your +# translation should cover. Make sure you separate these codes with a comma. +# 4. Translate the messages that appear below into your language. The 'g' lines indicate the group a translated +# element belongs to. You shouldn't have to modify them. +# 5. (Re)launch Rufus. If a 'rufus.loc' file is found in the current directory, it will be used over the one +# embedded in the application. Since there is only one translation in this file, it will be used by default +# 6. Repeat steps 4 & 5 until you're happy with that translated elements. Note that you MUST restart Rufus every +# time you change your .loc file as there is no reload option. +# 7. Once you are satisfied with your translation, you should pick up the official rufus.loc from: +# https://github.com/pbatard/rufus/raw/master/res/localization/rufus.loc +# You should then add your translation at the end of it, and confirm that it is still picked as the default +# for your system You can also force the use of a translation by passing the option -l when starting Rufus. +# For instance, to have the "zh_CN" translation below apply, you could use either one of: +# rufus.exe -l zh-CN +# rufus.exe -l 0x0404 +# rufus.exe -l 0x0804 +# 8. If you need to resize a control or a dialog to fid the translated text, use the 'm' (Move) or 's' (reSize) +# options. For an example of how these commands work, see https://github.com/pbatard/rufus/wiki/Localization +# +# Tips: +# - Please make sure that you edit the language include *your* name and e-mail in MSG_176. It will be displayed +# in the About dialog and I want to give you credit for your work! +# - I strongly recommend installing and using DbgView to check for translation errors, as you will get more +# information about how Rufus initallly parses the translation file plus reports of any issue found (with +# the line number). Download DbgView from: http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx +# - As shown below, you can break a long message over multiple lines, as long as these fragments begin and end +# with a double quote ("). Also be careful to keep the special symbols such as %d, %s, \\b, \", \n. +# - Don't forget to check the translation guide from https://github.com/pbatard/rufus/wiki/Localization + ################################################################################ +############################ TRANSLATOR START COPY ############################# +################################################################################ +# See http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx or +# http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-LCID%5D.pdf +# for the LCID (0x####) codes you should use l "en-US" "English (English)" 0x0409, 0x0809, 0x0c09, 0x1009, 0x1409, 0x1809, 0x1c09, 0x2009, 0x2409, 0x2809, 0x2c09, 0x3009, 0x3409, 0x3809, 0x3c09, 0x4009, 0x4409, 0x4809 v 1.0.2 + +# Main dialog +g IDD_DIALOG +t IDS_DEVICE_TXT "Device" +t IDS_PARTITION_TYPE_TXT "Partition scheme and target system type" +t IDS_FILESYSTEM_TXT "File system" +t IDS_CLUSTERSIZE_TXT "Cluster size" +t IDS_LABEL_TXT "New volume label" +t IDS_FORMAT_OPTIONS_GRP "Format Options " +t IDC_BADBLOCKS "Check device for bad blocks:" +t IDC_QUICKFORMAT "Quick format" +t IDC_BOOT "Create a bootable disk using:" +t IDC_SET_ICON "Create extended label and icon files" +t IDC_ABOUT "About..." +t IDC_LOG "Log" +t IDCANCEL "Close" +t IDC_START "Start" +t IDS_ADVANCED_OPTIONS_GRP "Advanced Options" +t IDC_ENABLE_FIXED_DISKS "List non removable or unpartitioned USB disks" +t IDC_EXTRA_PARTITION "Add fixes for old BIOSes (extra partition, align, etc.)" +# 'MBR': See bhttp://en.wikipedia.org/wiki/Master_boot_record +# Rufus can install it's own custom MBR (the Rufus MBR), which also allows users +# to specify a custom disk ID for the BIOS. Note: the tooltip for this control is MSG_167. +t IDC_RUFUS_MBR "Use Rufus MBR with BIOS ID:" + +# About dialog +g IDD_ABOUTBOX +t IDD_ABOUTBOX "About Rufus" +t IDC_ABOUT_LICENSE "License" +t IDC_ABOUT_UPDATES "Updates" + +# About -> License dialog +g IDD_LICENSE +t IDD_LICENSE "Rufus License" +t IDCANCEL "Close" + +# Notifications. You can trigger one of these by using Alt-R and re-launching Rufus +g IDD_NOTIFICATION +t IDC_MORE_INFO "More information" +t IDYES "Yes" +t IDNO "No" + +# Log dialog +g IDD_LOG +t IDD_LOG "Log" +t IDC_LOG_CLEAR "Clear Log" +t IDC_LOG_SAVE "Save Log" +t IDCANCEL "Close Log" + +# About -> Updates +g IDD_UPDATE_POLICY +t IDD_UPDATE_POLICY "Update policy and settings" +t IDS_UPDATE_SETTINGS_GRP "Settings" +t IDS_UPDATE_FREQUENCY_TXT "Check for updates:" +t IDS_INCLUDE_BETAS_TXT "Include beta versions:" +t IDC_CHECK_NOW "Check Now" +t IDCANCEL "Close" + +# Dialog that appears when a new version is available +g IDD_NEW_VERSION +t IDD_NEW_VERSION "Check For Updates - Rufus" +t IDS_NEW_VERSION_AVAIL_TXT "A newer version is available. Please download the latest version!" +t IDC_WEBSITE "Click here to go to the website" +t IDS_NEW_VERSION_NOTES_GRP "Release Notes" +t IDS_NEW_VERSION_DOWNLOAD_GRP "Download" +t IDC_DOWNLOAD "Download" +t IDCANCEL "Close" + +# Dialog that appears when scanning/extracting ISO files +g IDD_ISO_EXTRACT +t IDD_ISO_EXTRACT "Copying ISO files..." +t IDC_ISO_FILENAME "Opening ISO image - please wait..." +t IDC_ISO_ABORT "Cancel" + +# Messages used throughout the application g IDD_MESSAGES t MSG_001 "Other instance detected" t MSG_002 "Another Rufus application is running.\n" @@ -11,7 +137,8 @@ t MSG_003 "WARNING: ALL DATA ON DEVICE '%s' WILL BE DESTROYED.\n" "To continue with this operation, click OK. To quit click CANCEL." t MSG_004 "Rufus update policy" t MSG_005 "Do you want to allow Rufus to check for application updates online?" -t MSG_006 "Close" # Must be the same as IDD_DIALOG:IDCANCEL (i.e. "Close" - I know it's confusing) +# Must be the same as IDD_DIALOG:IDCANCEL (i.e. "Close" - I know it's confusing) +t MSG_006 "Close" t MSG_007 "Cancel" t MSG_008 "Yes" t MSG_009 "No" @@ -86,6 +213,7 @@ t MSG_067 "Could not open media. It may be in use by another process. " t MSG_068 "Error while partitioning drive." t MSG_069 "Could not copy files to target drive." t MSG_070 "Cancelled by user." +# See http://en.wikipedia.org/wiki/Thread_%28computing%29 t MSG_071 "Unable to start thread." t MSG_072 "Bad blocks check didn't complete." t MSG_073 "ISO image scan failure." @@ -152,9 +280,12 @@ t MSG_106 "Please select folder" t MSG_107 "All files" t MSG_108 "Rufus log" t MSG_109 "0x%02X (Disk %d)" -t MSG_110 "MS-DOS cannot boot from a drive using a 64 kilobyte Cluster size.\n" +# "Cluster size" below should be the same as the label for IDS_CLUSTERSIZE_TXT +# "kilobytes" should be the same as in MSG_027 +t MSG_110 "MS-DOS cannot boot from a drive using a 64 kilobytes Cluster size.\n" "Please change the Cluster size or use FreeDOS." t MSG_111 "Incompatible Cluster size" +# "%d:%02d" below is a duration (mins:secs) t MSG_112 "Formatting a large UDF volumes can take a lot of time. At USB 2.0 speeds, the estimated formatting " "duration is %d:%02d, during which the progress bar will appear frozen. Please be patient!" t MSG_113 "Large UDF volume" @@ -194,7 +325,7 @@ t MSG_173 "Click to select..." # The following will appear in the about dialog t MSG_174 "Rufus - The Reliable USB Formatting Utility" t MSG_175 "Version %d.%d.%d (Build %d)" -t MSG_176 "" +t MSG_176 "English translation: Pete Batard " t MSG_177 "Report bugs or request enhancements at:" t MSG_178 "Additional Copyrights:" t MSG_179 "Update Policy:" @@ -238,9 +369,12 @@ t MSG_216 "Saved %s" t MSG_217 "Formatting: %0.1f%% completed" t MSG_218 "Creating file system: Task %d/%d completed" t MSG_219 "NTFS Fixup: %d%% completed" -# Parameter: the file system and an estimated duration in mins and secs +# Parameter: the file system and an estimated duration in mins and secs. +# eg. "Formatting (UDF) - Estimated duration 3:21..." +# NB: if "estimated duration" is too long, just use "estimated" or an abbreviation t MSG_220 "Formatting (%s) - estimated duration %d:%02d..." t MSG_221 "Setting Label (This may take while)..." +# Parameter: the file system. eg. "Formatting (NTFS)..." t MSG_222 "Formatting (%s)..." t MSG_223 "NTFS Fixup (Checkdisk)..." t MSG_224 "Clearing MBR/PBR/GPT structures..." @@ -283,6 +417,10 @@ t MSG_256 "Fake drive detection" t MSG_257 "Joliet support" t MSG_258 "Rock Ridge support" t MSG_259 "Force update" +################################################################################ +############################# TRANSLATOR END COPY ############################## +################################################################################ + ################################################################################ l "zh-CN" "Chinese Simplified (简体中文)" 0x0404, 0x0804, 0x0c04, 0x1004, 0x1404 diff --git a/src/.msvc/rufus.vcxproj b/src/.msvc/rufus.vcxproj index f19850d6..5fe26cff 100644 --- a/src/.msvc/rufus.vcxproj +++ b/src/.msvc/rufus.vcxproj @@ -97,7 +97,7 @@ MachineX86 - _UNICODE;UNICODE;%(PreprocessorDefinitions) + _UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions) @@ -124,7 +124,7 @@ MachineX64 - _UNICODE;UNICODE;%(PreprocessorDefinitions) + _UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions) @@ -147,7 +147,7 @@ MachineX86 - _UNICODE;UNICODE;%(PreprocessorDefinitions) + _UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions) @@ -173,7 +173,7 @@ MachineX64 - _UNICODE;UNICODE;%(PreprocessorDefinitions) + _UNICODE;UNICODE;RUFUS_LOC;%(PreprocessorDefinitions) @@ -217,6 +217,7 @@ + diff --git a/src/.msvc/rufus.vcxproj.filters b/src/.msvc/rufus.vcxproj.filters index f7d61035..e5321e31 100644 --- a/src/.msvc/rufus.vcxproj.filters +++ b/src/.msvc/rufus.vcxproj.filters @@ -121,6 +121,9 @@ Resource Files + + Resource Files + diff --git a/src/.msvc/rufus_sources b/src/.msvc/rufus_sources index f95c1bcc..94f66859 100644 --- a/src/.msvc/rufus_sources +++ b/src/.msvc/rufus_sources @@ -4,7 +4,7 @@ UMTYPE=windows UMENTRY=winmain INCLUDES=$(DDK_INC_PATH);.\ms-sys\inc;.\syslinux\libfat;.\syslinux\libinstaller;.\msvc-missing;.\libcdio;.\getopt -C_DEFINES = $(C_DEFINES) /DDDKBUILD /DUNICODE /D_UNICODE /DISOLATION_AWARE_ENABLED +C_DEFINES = $(C_DEFINES) /DDDKBUILD /DUNICODE /D_UNICODE /DRUFUS_LOC /DISOLATION_AWARE_ENABLED !IFNDEF MSC_WARNING_LEVEL MSC_WARNING_LEVEL=/W3 diff --git a/src/Makefile.am b/src/Makefile.am index 2fbb05e5..cc62540b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = ms-sys syslinux/libfat syslinux/libinstaller libcdio/iso9660 libcdio/udf libcdio/driver +SUBDIRS = ms-sys syslinux/libfat syslinux/libinstaller libcdio/iso9660 libcdio/udf libcdio/driver ../res/localization noinst_PROGRAMS = rufus @@ -6,7 +6,7 @@ pkg_v_rc = $(pkg_v_rc_$(V)) pkg_v_rc_ = $(pkg_v_rc_$(AM_DEFAULT_VERBOSITY)) pkg_v_rc_0 = @echo " RC $@"; -%_rc.o: %.rc +%_rc.o: %.rc ../res/localization/embedded.loc $(pkg_v_rc)$(WINDRES) $(AM_RCFLAGS) -i $< -o $@ rufus_SOURCES = drive.c icon.c parser.c localization.c iso.c net.c dos.c dos_locale.c badblocks.c syslinux.c vhd.c format.c stdio.c stdfn.c stdlg.c rufus.c diff --git a/src/Makefile.in b/src/Makefile.in index 46003ead..11f235ae 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -135,6 +135,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -181,7 +182,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = ms-sys syslinux/libfat syslinux/libinstaller libcdio/iso9660 libcdio/udf libcdio/driver +SUBDIRS = ms-sys syslinux/libfat syslinux/libinstaller libcdio/iso9660 libcdio/udf libcdio/driver ../res/localization pkg_v_rc = $(pkg_v_rc_$(V)) pkg_v_rc_ = $(pkg_v_rc_$(AM_DEFAULT_VERBOSITY)) pkg_v_rc_0 = @echo " RC $@"; @@ -623,7 +624,7 @@ uninstall-am: uninstall uninstall-am -%_rc.o: %.rc +%_rc.o: %.rc ../res/localization/embedded.loc $(pkg_v_rc)$(WINDRES) $(AM_RCFLAGS) -i $< -o $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/src/libcdio/driver/Makefile.in b/src/libcdio/driver/Makefile.in index 26add77d..22eaf76f 100644 --- a/src/libcdio/driver/Makefile.in +++ b/src/libcdio/driver/Makefile.in @@ -121,6 +121,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ diff --git a/src/libcdio/iso9660/Makefile.in b/src/libcdio/iso9660/Makefile.in index 62e21d72..16066ea3 100644 --- a/src/libcdio/iso9660/Makefile.in +++ b/src/libcdio/iso9660/Makefile.in @@ -118,6 +118,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ diff --git a/src/libcdio/udf/Makefile.in b/src/libcdio/udf/Makefile.in index 0aeca850..bd2979b2 100644 --- a/src/libcdio/udf/Makefile.in +++ b/src/libcdio/udf/Makefile.in @@ -118,6 +118,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ diff --git a/src/localization.c b/src/localization.c index 1f53993a..ffec48cd 100644 --- a/src/localization.c +++ b/src/localization.c @@ -69,7 +69,7 @@ const loc_parse parse_cmd[9] = { /* Globals */ int loc_line_nr; struct list_head locale_list = {NULL, NULL}; -char *loc_filename = NULL, *embedded_loc_filename = "[embedded] rufus.loc"; +char *loc_filename = NULL, *embedded_loc_filename = "embedded.loc"; /* * Hash table functions - modified From glibc 2.3.2: diff --git a/src/localization_data.h b/src/localization_data.h index 3a0e280e..c33133fa 100644 --- a/src/localization_data.h +++ b/src/localization_data.h @@ -71,6 +71,7 @@ const loc_control_id control_id[] = { LOC_CTRL(IDC_ADVANCED), LOC_CTRL(IDS_ADVANCED_OPTIONS_GRP), LOC_CTRL(IDC_LOG), + LOC_CTRL(IDC_LANG), LOC_CTRL(IDC_LOG_EDIT), LOC_CTRL(IDC_LOG_SAVE), LOC_CTRL(IDC_LOG_CLEAR), diff --git a/src/ms-sys/Makefile.in b/src/ms-sys/Makefile.in index b9d7da51..ed05e0ff 100644 --- a/src/ms-sys/Makefile.in +++ b/src/ms-sys/Makefile.in @@ -119,6 +119,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ diff --git a/src/parser.c b/src/parser.c index 592ce839..68d2b2c0 100644 --- a/src/parser.c +++ b/src/parser.c @@ -294,7 +294,7 @@ BOOL get_supported_locales(const char* filename) // We use the first version from our loc file (usually en-US) as our base // as it should always be the most up to date. loc_base_minor = lcmd->unum[1]; - loc_base_micro = lcmd->unum[0]; + loc_base_micro = lcmd->unum[2]; version_line_nr = loc_line_nr; } else if (lcmd->unum[1] < loc_base_minor) { luprintf("the version of this locale is incompatible with this version of " APPLICATION_NAME " and MUST be updated to at least v%d.%d.0", diff --git a/src/rufus.c b/src/rufus.c index bd552a31..66d070f8 100644 --- a/src/rufus.c +++ b/src/rufus.c @@ -2045,7 +2045,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine if (GetFileAttributesU("rufus.loc") == INVALID_FILE_ATTRIBUTES) { uprintf("loc file not found in current directory - embedded one will be used"); - loc_data = (BYTE*)GetResource(hMainInstance, MAKEINTRESOURCEA(IDR_LC_RUFUS_LOC), _RT_RCDATA, "rufus.loc", &loc_size, FALSE); + loc_data = (BYTE*)GetResource(hMainInstance, MAKEINTRESOURCEA(IDR_LC_RUFUS_LOC), _RT_RCDATA, "embedded.loc", &loc_size, FALSE); GetTempPathU(sizeof(tmp_path), tmp_path); GetTempFileNameU(tmp_path, APPLICATION_NAME, 0, loc_file); diff --git a/src/rufus.rc b/src/rufus.rc index 9fd5d8ee..8af0c8ff 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 206, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW -CAPTION "Rufus v1.4.0.303" +CAPTION "Rufus v1.4.0.304" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,94,291,50,14 @@ -191,7 +191,11 @@ END 3 TEXTINCLUDE BEGIN "\r\n" + "#ifdef RUFUS_LOC\r\n" "IDR_LC_RUFUS_LOC RCDATA ""../res/localization/rufus.loc""\r\n" + "#else\r\n" + "IDR_LC_RUFUS_LOC RCDATA ""../res/localization/embedded.loc""\r\n" + "#endif\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_V5_BSS RCDATA ""../res/syslinux/ldlinux_v5.bss""\r\n" @@ -285,8 +289,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,4,0,303 - PRODUCTVERSION 1,4,0,303 + FILEVERSION 1,4,0,304 + PRODUCTVERSION 1,4,0,304 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -303,13 +307,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "1.4.0.303" + VALUE "FileVersion", "1.4.0.304" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2013 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "1.4.0.303" + VALUE "ProductVersion", "1.4.0.304" END END BLOCK "VarFileInfo" @@ -340,7 +344,11 @@ IDI_DOWN ICON "../res/down.ico" // Generated from the TEXTINCLUDE 3 resource. // +#ifdef RUFUS_LOC IDR_LC_RUFUS_LOC RCDATA "../res/localization/rufus.loc" +#else +IDR_LC_RUFUS_LOC RCDATA "../res/localization/embedded.loc" +#endif 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_V5_BSS RCDATA "../res/syslinux/ldlinux_v5.bss" diff --git a/src/syslinux/libfat/Makefile.in b/src/syslinux/libfat/Makefile.in index eea33996..edfb60fe 100644 --- a/src/syslinux/libfat/Makefile.in +++ b/src/syslinux/libfat/Makefile.in @@ -118,6 +118,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ diff --git a/src/syslinux/libinstaller/Makefile.in b/src/syslinux/libinstaller/Makefile.in index 7b2e8faa..2066c768 100644 --- a/src/syslinux/libinstaller/Makefile.in +++ b/src/syslinux/libinstaller/Makefile.in @@ -118,6 +118,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@