mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
[loc] finalize new translations for 3.2
* Also fix a MinGW warning
This commit is contained in:
parent
1004a6e066
commit
1612064c66
5 changed files with 94 additions and 48 deletions
|
@ -5,15 +5,27 @@ When editing an existing translation, make sure to follow:
|
|||
https://github.com/pbatard/rufus/wiki/Localization#Editing_a_translation
|
||||
|
||||
o v3.2 (2018.??.??)
|
||||
- *NEW* MSG_087
|
||||
*NEW* MSG_123
|
||||
*NEW* MSG_124
|
||||
*NEW* MSG_125
|
||||
*NEW* MSG_126
|
||||
*NEW* MSG_127
|
||||
- *NEW* MSG_172
|
||||
- *NEW* MSG_240
|
||||
The following appears in Advanced format options → Check device for bad blocks → dropdown menu with
|
||||
%s being replaced with SLC, MLC or TLC, which is a type of flash memory. In other words, this message
|
||||
should mean "for a flash memory device of type %s". *Please* try to keep the translation as short as
|
||||
possible so that it won't result in an overly large dropdown...
|
||||
- *NEW* MSG_087 "for %s devices"
|
||||
The following 4 messages can be tested using https://github.com/pbatard/rufus/raw/master/res/loc/test/casper_test.iso
|
||||
- *NEW* MSG_123 "Persistent partition size"
|
||||
- *NEW* MSG_124 "No persistence"
|
||||
- *NEW* MSG_125 "Set the size of the persistent partition for live USB media. Setting the size to 0 disables the persistent partition."
|
||||
- *NEW* MSG_126 "Set the partition size units."
|
||||
As of Rufus 3.2, *ALL* downloads from the servers are digitally signed, and their signature is validated using the
|
||||
public key that is embedded in the application. This message appears in an error dialog if the validation fails.
|
||||
- *NEW* MSG_172 "Invalid download signature"
|
||||
This message was present in 3.0, but I forgot to mention it then. It has to do with the signature
|
||||
validation that Rufus uses when downloading an update.
|
||||
- *NEW* MSG_240 "The signature for the downloaded update can not be validated (...)"
|
||||
You can see this status message by pressing <Ctrl>-<Alt>-<Z> and then selecting Start.
|
||||
It's the same as MSG_286 but with a process that *may* be faster, hence the name.
|
||||
- *NEW* MSG_306
|
||||
Note: Because this is the introduction of a new translation framework, and I am a bit short of time for that
|
||||
unification of MSG_084/MSG_104/MSG_114/MSG_116 will happen in another translation round...
|
||||
|
||||
o v3.0 (2018.03.27)
|
||||
- All positioning ('m', 's') has now been removed as well as some controls, for the 3.0 UI redesign
|
||||
|
|
|
@ -959,6 +959,7 @@ namespace pollock
|
|||
[STAThread]
|
||||
static void Main(string[] args)
|
||||
{
|
||||
bool use_local_loc = false;
|
||||
Console.OutputEncoding = System.Text.Encoding.UTF8;
|
||||
Console.CancelKeyPress += delegate (object sender, ConsoleCancelEventArgs e) {
|
||||
e.Cancel = true;
|
||||
|
@ -966,6 +967,11 @@ namespace pollock
|
|||
};
|
||||
Console.WriteLine($"{app_name} {version_str} - Poedit to rufus.loc conversion utility");
|
||||
Console.WriteLine();
|
||||
foreach (var arg in args)
|
||||
{
|
||||
if (arg.Contains("l"))
|
||||
use_local_loc = true;
|
||||
}
|
||||
|
||||
if (AppDomain.CurrentDomain.FriendlyName.Contains('m'))
|
||||
goto Maintainer_Mode;
|
||||
|
@ -986,7 +992,7 @@ namespace pollock
|
|||
if (ver == null)
|
||||
{
|
||||
Console.WriteLine("ERROR: Could not access application data.");
|
||||
goto Exit;
|
||||
goto Error;
|
||||
}
|
||||
foreach (var line in ver.Split('\n'))
|
||||
{
|
||||
|
@ -1010,7 +1016,7 @@ namespace pollock
|
|||
if ((download_url == null) || (rufus_url == null) || (update_version[0] == 0))
|
||||
{
|
||||
Console.WriteLine("FAILED");
|
||||
goto Exit;
|
||||
goto Error;
|
||||
}
|
||||
Console.WriteLine("DONE");
|
||||
|
||||
|
@ -1023,7 +1029,7 @@ namespace pollock
|
|||
if (DownloadFile(download_url))
|
||||
{
|
||||
Console.WriteLine("Now re-launch this program using the latest version.");
|
||||
goto Exit;
|
||||
goto Error;
|
||||
}
|
||||
Console.WriteLine("Download failed.");
|
||||
}
|
||||
|
@ -1051,10 +1057,19 @@ namespace pollock
|
|||
}
|
||||
}
|
||||
|
||||
if (!use_local_loc)
|
||||
{
|
||||
// Download the latest loc file
|
||||
Console.Write("Downloading the latest loc file... ");
|
||||
if (!DownloadFile(loc_url))
|
||||
goto Exit;
|
||||
goto Error;
|
||||
}
|
||||
else
|
||||
{
|
||||
var local_loc = @"C:\rufus\res\loc\rufus.loc";
|
||||
Console.Write($"Copying loc file from '{local_loc}'... ");
|
||||
File.Copy(local_loc, "rufus.loc", true);
|
||||
}
|
||||
|
||||
var loc_file = loc_url.Split('/').Last();
|
||||
// Convert to CRLF and get all the language ids
|
||||
|
@ -1109,13 +1124,18 @@ Retry:
|
|||
Console.WriteLine($"{list[index][0]} was selected.");
|
||||
Console.WriteLine();
|
||||
po_file = $"{list[index][1]}.po";
|
||||
if (File.Exists(po_file))
|
||||
{
|
||||
if (!PromptForQuestion($"A '{po_file}' file already exists. Do you want to overwrite it? (If unsure, answer 'y')"))
|
||||
goto Error;
|
||||
}
|
||||
|
||||
Language old_en_US = null;
|
||||
if (list[index][2] == list[0][2])
|
||||
{
|
||||
Console.WriteLine("Note: This language is already at the most recent version!");
|
||||
if (!PromptForQuestion("Do you still want to edit it?"))
|
||||
goto Exit;
|
||||
goto Error;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1133,26 +1153,19 @@ Retry:
|
|||
var url = "https://github.com/pbatard/rufus/releases/tag/v" + list[index][2];
|
||||
var str = DownloadString(url);
|
||||
if (str == null)
|
||||
{
|
||||
index = -1;
|
||||
goto Exit;
|
||||
}
|
||||
goto Error;
|
||||
var sha = str.Substring(str.IndexOf("/pbatard/rufus/commit/") + 22, 40);
|
||||
// TODO: Remove this once everyone has upgraded past 3.2
|
||||
string loc_dir = ((list[index][2][0] == '2') || ((list[index][2][0] == '3') && (list[index][2][2] == '0'))) ? "localization" : "loc";
|
||||
url = "https://github.com/pbatard/rufus/raw/" + sha + "/res/" + loc_dir + "/rufus.loc";
|
||||
if (!DownloadFile(url, old_loc_file))
|
||||
{
|
||||
index = -1;
|
||||
goto Exit;
|
||||
}
|
||||
goto Error;
|
||||
}
|
||||
var old_langs = ParseLocFile(old_loc_file, "en-US");
|
||||
if ((old_langs == null) || (old_langs.Count != 1))
|
||||
{
|
||||
Console.WriteLine("Error: Unable to get en-US data from previous loc file.");
|
||||
index = -1;
|
||||
goto Exit;
|
||||
goto Error;
|
||||
}
|
||||
old_en_US = old_langs[0];
|
||||
}
|
||||
|
@ -1160,8 +1173,7 @@ Retry:
|
|||
if (CreatePoFiles(ParseLocFile(loc_file, list[index][1]), old_en_US) != 1)
|
||||
{
|
||||
Console.WriteLine("Failed to create PO file");
|
||||
index = -1;
|
||||
goto Exit;
|
||||
goto Error;
|
||||
}
|
||||
|
||||
// Watch for file modifications
|
||||
|
@ -1182,18 +1194,18 @@ Retry:
|
|||
Console.WriteLine($"* The {list[index][0]} translation file ({list[index][1]}) is now ready to be edited in Poedit.");
|
||||
Console.WriteLine("* Please look for entries highlited in orange - they are the ones requiring an update.");
|
||||
Console.WriteLine("*");
|
||||
Console.WriteLine("* Whenever you save your changes in Poedit, an new 'rufus.loc' will be generated so");
|
||||
Console.WriteLine($"* that you can test your changes using '{rufus_file}' in the same directory.");
|
||||
Console.WriteLine("* Whenever you save your changes in Poedit, a new 'rufus.loc' will be generated so");
|
||||
Console.WriteLine($"* that you can test it with '{rufus_file}' in the same directory.");
|
||||
Console.WriteLine("*");
|
||||
Console.WriteLine("* PLEASE DO NOT CLOSE THIS CONSOLE APPLICATION - IT NEEDS TO RUN IN THE BACKGROUND!");
|
||||
Console.WriteLine("* Instead, when you are done editing your translation, simply close Poedit.");
|
||||
Console.WriteLine("*************************************************************************************");
|
||||
WaitForKey("Press any key to launch Poedit...");
|
||||
WaitForKey($"Press any key to open '{po_file}' in Poedit...");
|
||||
|
||||
Process process = new Process();
|
||||
process.StartInfo.FileName = poedit;
|
||||
process.StartInfo.WorkingDirectory = app_dir;
|
||||
process.StartInfo.Arguments = $"{list[index][1]}.po";
|
||||
process.StartInfo.Arguments = po_file;
|
||||
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
|
||||
if (!process.Start())
|
||||
{
|
||||
|
@ -1213,7 +1225,7 @@ Retry:
|
|||
else
|
||||
{
|
||||
Console.WriteLine("Poedit was not found. You will have to launch it and open the");
|
||||
Console.WriteLine($"'{app_dir + list[index][1]}.po' file manually.");
|
||||
Console.WriteLine($"'{po_file}' file manually.");
|
||||
}
|
||||
|
||||
Exit:
|
||||
|
@ -1223,11 +1235,15 @@ Exit:
|
|||
{
|
||||
Process.Start($"mailto:pete@akeo.ie?subject=Rufus {list[index][0]} translation v{list[0][2]} update" +
|
||||
$"&body=Hi Pete,%0D%0A%0D%0APlease find attached the latest {list[index][0]} translation." +
|
||||
$"%0D%0A%0D%0A<PLEASE ATTACH '{app_dir + list[index][1]}.po' AND REMOVE THIS LINE>" +
|
||||
$"%0D%0A%0D%0A<PLEASE ATTACH '{app_dir}{po_file}' AND REMOVE THIS LINE>" +
|
||||
$"%0D%0A%0D%0ARegards,");
|
||||
}
|
||||
return;
|
||||
|
||||
Error:
|
||||
WaitForKey("Press any key to exit...");
|
||||
return;
|
||||
|
||||
Maintainer_Mode:
|
||||
string file_name;
|
||||
OpenFileDialog file_dialog = new OpenFileDialog();
|
||||
|
|
|
@ -157,7 +157,8 @@ t MSG_032 "UEFI (non CSM)"
|
|||
t MSG_033 "BIOS or UEFI"
|
||||
# Number of bad block check passes (singular for 1 pass)
|
||||
t MSG_034 "%d pass"
|
||||
# Number of bad block check passes (plural for 2 or more passes)
|
||||
# Number of bad block check passes (plural for 2 or more passes).
|
||||
# See MSG_087 for the message that %s gets replaced with.
|
||||
t MSG_035 "%d passes %s"
|
||||
t MSG_036 "ISO Image"
|
||||
t MSG_037 "Application"
|
||||
|
@ -225,6 +226,11 @@ t MSG_084 "This ISO image seems to use an obsolete version of '%s'.\n"
|
|||
"'%s' exists there, it will be reused automatically."
|
||||
t MSG_085 "Downloading '%s'"
|
||||
t MSG_086 "No image selected"
|
||||
# This message appears in Advanced format options → Check device for bad blocks → dropdown menu
|
||||
# %s will be replaced with SLC, MLC or TLC, which is a type of flash memory. In other words, this
|
||||
# message should mean "for a flash memory device of type %s". *Please* try to keep the translation
|
||||
# as short as possible so that it won't result in an overly large dropdown... It's okay to use a
|
||||
# translation for "type" instead of "device" (e.g. "for TLC type"). See also MSG_035.
|
||||
t MSG_087 "for %s devices"
|
||||
t MSG_088 "Image is too big"
|
||||
t MSG_089 "The image is too big for the selected target."
|
||||
|
@ -308,11 +314,18 @@ t MSG_119 "advanced drive properties"
|
|||
t MSG_120 "advanced format options"
|
||||
t MSG_121 "Show %s"
|
||||
t MSG_122 "Hide %s"
|
||||
# A persistent partitions can be used with "Live" USB media to store data.
|
||||
# It means that data can be preserved across reboots on "Live" USB drives.
|
||||
# To test this feature, please download and select 'casper_test.iso' from:
|
||||
# https://github.com/pbatard/rufus/raw/master/res/loc/test/casper_test.iso
|
||||
t MSG_123 "Persistent partition size"
|
||||
# This message appears in the persistence 'Size' control when the slider is set to 0.
|
||||
# If running out of space, it is okay to use "No partition" or "None" to indicate that a persistent
|
||||
# partition will not be created (because the 'Size' edit control is *not* adjusted for width).
|
||||
t MSG_124 "No persistence"
|
||||
t MSG_125 "Use this slider to set the size of the persistent partition. Setting the size to 0 disables the persistent partition."
|
||||
t MSG_126 "Use this field to enter the size of the persistent partition. Setting the size to 0 disables the persistent partition."
|
||||
t MSG_127 "Set the persistent partition size unit."
|
||||
# Tooltips used for the peristence size slider and edit control
|
||||
t MSG_125 "Set the size of the persistent partition for live USB media. Setting the size to 0 disables the persistent partition."
|
||||
t MSG_126 "Set the partition size units."
|
||||
t MSG_150 "Type of computer you plan to use this bootable drive with. It is your responsibility to determine whether "
|
||||
"your target is of BIOS or UEFI type before you start creating the drive, as it may fail to boot otherwise."
|
||||
# You shouldn't translate 'Legacy Mode' as this is an option that usually appears in English in the UEFI settings.
|
||||
|
@ -340,6 +353,8 @@ t MSG_169 "Create an extra hidden partition and try to align partitions boundari
|
|||
"This can improve boot detection for older BIOSes"
|
||||
t MSG_170 "Enable the listing of USB Hard Drive enclosures. USE AT YOUR OWN RISKS!!!"
|
||||
t MSG_171 "Start the formatting operation.\nThis will DESTROY any data on the target!"
|
||||
# As of Rufus 3.2, *ALL* downloads from the servers are digitally signed, and their signature is validated using the
|
||||
# public key that is embedded in the application. This message appears in an error dialog if the validation fails.
|
||||
t MSG_172 "Invalid download signature"
|
||||
t MSG_173 "Click to select..."
|
||||
t MSG_174 "Rufus - The Reliable USB Formatting Utility"
|
||||
|
@ -437,6 +452,7 @@ t MSG_237 "Bad Blocks: Testing with pattern 0x%02X"
|
|||
# Example: "Partitioning (MBR)..."
|
||||
t MSG_238 "Partitioning (%s)..."
|
||||
t MSG_239 "Deleting partitions..."
|
||||
# This message has to do with the signature validation that Rufus uses when downloading an update.
|
||||
t MSG_240 "The signature for the downloaded update can not be validated. This could mean that your "
|
||||
"system is improperly configured for signature validation or indicate a malicious download.\n\n"
|
||||
"The download will be deleted. Please check the log for more details."
|
||||
|
@ -521,6 +537,8 @@ t MSG_303 "Show the log"
|
|||
t MSG_304 "Create a disk image of the selected device"
|
||||
t MSG_305 "Use this option to indicate whether you want to use this device to install Windows on another disk, "
|
||||
"or if you want to run Windows directly from this drive (Windows To Go)."
|
||||
# You can see this status message by pressing <Ctrl>-<Alt>-<Z> and then selecting START.
|
||||
# It's the same as MSG_286 but with a process that *may* be faster, hence the name.
|
||||
t MSG_306 "Fast-zeroing drive: %0.1f%% completed"
|
||||
|
||||
#########################################################################
|
||||
|
|
|
@ -1625,8 +1625,8 @@ static void InitDialog(HWND hDlg)
|
|||
CreateTooltip(GetDlgItem(hDlg, IDS_CSM_HELP_TXT), lmprintf(MSG_151), 30000);
|
||||
CreateTooltip(GetDlgItem(hDlg, IDC_IMAGE_OPTION), lmprintf(MSG_305), 30000);
|
||||
CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_SLIDER), lmprintf(MSG_125), 30000);
|
||||
CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_SIZE), lmprintf(MSG_126), 30000);
|
||||
CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_UNITS), lmprintf(MSG_127), 30000);
|
||||
CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_SIZE), lmprintf(MSG_125), 30000);
|
||||
CreateTooltip(GetDlgItem(hDlg, IDC_PERSISTENCE_UNITS), lmprintf(MSG_126), 30000);
|
||||
|
||||
if (!advanced_mode_device) // Hide as needed, since we display the advanced controls by default
|
||||
ToggleAdvancedDeviceOptions(FALSE);
|
||||
|
@ -2050,7 +2050,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
lPos = (LONG)pos;
|
||||
SendMessage(GetDlgItem(hMainDialog, IDC_PERSISTENCE_SLIDER), TBM_SETPOS, TRUE, lPos);
|
||||
if (persistence_size >= (SelectedDrive.DiskSize - img_report.projected_size)) {
|
||||
static_sprintf(tmp, "%d", lPos);
|
||||
static_sprintf(tmp, "%ld", lPos);
|
||||
app_changed_size = TRUE;
|
||||
SetWindowTextU(GetDlgItem(hMainDialog, IDC_PERSISTENCE_SIZE), tmp);
|
||||
}
|
||||
|
@ -2420,7 +2420,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
|||
if (lPos != 0) {
|
||||
if (persistence_size == 0)
|
||||
TogglePersistenceControls(TRUE);
|
||||
sprintf(tmp, "%ld", lPos);
|
||||
static_sprintf(tmp, "%ld", lPos);
|
||||
} else {
|
||||
TogglePersistenceControls(FALSE);
|
||||
static_sprintf(tmp, "0 (%s)", lmprintf(MSG_124));
|
||||
|
|
10
src/rufus.rc
10
src/rufus.rc
|
@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_ACCEPTFILES
|
||||
CAPTION "Rufus 3.2.1342"
|
||||
CAPTION "Rufus 3.2.1343"
|
||||
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
||||
BEGIN
|
||||
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
||||
|
@ -392,8 +392,8 @@ END
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,2,1342,0
|
||||
PRODUCTVERSION 3,2,1342,0
|
||||
FILEVERSION 3,2,1343,0
|
||||
PRODUCTVERSION 3,2,1343,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
@ -411,13 +411,13 @@ BEGIN
|
|||
VALUE "Comments", "https://akeo.ie"
|
||||
VALUE "CompanyName", "Akeo Consulting"
|
||||
VALUE "FileDescription", "Rufus"
|
||||
VALUE "FileVersion", "3.2.1342"
|
||||
VALUE "FileVersion", "3.2.1343"
|
||||
VALUE "InternalName", "Rufus"
|
||||
VALUE "LegalCopyright", "© 2011-2018 Pete Batard (GPL v3)"
|
||||
VALUE "LegalTrademarks", "https://www.gnu.org/copyleft/gpl.html"
|
||||
VALUE "OriginalFilename", "rufus-3.2.exe"
|
||||
VALUE "ProductName", "Rufus"
|
||||
VALUE "ProductVersion", "3.2.1342"
|
||||
VALUE "ProductVersion", "3.2.1343"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
Loading…
Reference in a new issue