git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 08/11] i18n: send-email: mark strings for translation

From
Vasco Almeida <vascomalmeida@sapo.pt>
Date
Aug 31, 2016, 12:31 UTC
Message-ID
<1472646690-9699-9-git-send-email-vascomalmeida@sapo.pt>
In-Reply-To
<1472646690-9699-1-git-send-email-vascomalmeida@sapo.pt>
Mark strings often displayed to user for translation.
Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
---
 git-send-email.perl | 53 +++++++++++++++++++++++++++++++----------------------
 1 file changed, 31 insertions(+), 22 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index 6958785..2521832 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -28,6 +28,7 @@ use File::Temp qw/ tempdir tempfile /;
 use File::Spec::Functions qw(catfile);
 use Error qw(:try);
 use Git;
+use Git::I18N;
 
 Getopt::Long::Configure qw/ pass_through /;
 
@@ -795,12 +796,12 @@ foreach my $f (@files) {
 }
 
 if (!defined $auto_8bit_encoding && scalar %broken_encoding) {
-	print "The following files are 8bit, but do not declare " .
-		"a Content-Transfer-Encoding.\n";
+	print __("The following files are 8bit, but do not declare " .
+		 "a Content-Transfer-Encoding.\n");
 	foreach my $f (sort keys %broken_encoding) {
 		print "    $f\n";
 	}
-	$auto_8bit_encoding = ask("Which 8bit encoding should I declare [UTF-8]? ",
+	$auto_8bit_encoding = ask(__("Which 8bit encoding should I declare [UTF-8]? "),
 				  valid_re => qr/.{4}/, confirm_only => 1,
 				  default => "UTF-8");
 }
@@ -827,7 +828,7 @@ if (defined $sender) {
 # But it's a no-op to run sanitize_address on an already sanitized address.
 $sender = sanitize_address($sender);
 
-my $to_whom = "To whom should the emails be sent (if anyone)?";
+my $to_whom = __("To whom should the emails be sent (if anyone)?");
 my $prompting = 0;
 if (!@initial_to && !defined $to_cmd) {
 	my $to = ask("$to_whom ",
@@ -857,7 +858,7 @@ sub expand_one_alias {
 
 if ($thread && !defined $initial_reply_to && $prompting) {
 	$initial_reply_to = ask(
-		"Message-ID to be used as In-Reply-To for the first email (if any)? ",
+		__("Message-ID to be used as In-Reply-To for the first email (if any)? "),
 		default => "",
 		valid_re => qr/\@.*\./, confirm_only => 1);
 }
@@ -916,7 +917,10 @@ sub validate_address {
 	my $address = shift;
 	while (!extract_valid_address($address)) {
 		print STDERR "error: unable to extract a valid address from: $address\n";
-		$_ = ask("What to do with this address? ([q]uit|[d]rop|[e]dit): ",
+		# TRANSLATORS: Make sure to include [q] [d] [e] in your
+		# translation. The program will only accept English input
+		# at this point.
+		$_ = ask(__("What to do with this address? ([q]uit|[d]rop|[e]dit): "),
 			valid_re => qr/^(?:quit|q|drop|d|edit|e)/i,
 			default => 'q');
 		if (/^d/i) {
@@ -1291,17 +1295,22 @@ Message-Id: $message_id
 		if ($needs_confirm eq "inform") {
 			$confirm_unconfigured = 0; # squelch this message for the rest of this run
 			$ask_default = "y"; # assume yes on EOF since user hasn't explicitly asked for confirmation
-			print "    The Cc list above has been expanded by additional\n";
-			print "    addresses found in the patch commit message. By default\n";
-			print "    send-email prompts before sending whenever this occurs.\n";
-			print "    This behavior is controlled by the sendemail.confirm\n";
-			print "    configuration setting.\n";
-			print "\n";
-			print "    For additional information, run 'git send-email --help'.\n";
-			print "    To retain the current behavior, but squelch this message,\n";
-			print "    run 'git config --global sendemail.confirm auto'.\n\n";
+			print __(
+"    The Cc list above has been expanded by additional
+    addresses found in the patch commit message. By default
+    send-email prompts before sending whenever this occurs.
+    This behavior is controlled by the sendemail.confirm
+    configuration setting.
+
+    For additional information, run 'git send-email --help'.
+    To retain the current behavior, but squelch this message,
+    run 'git config --global sendemail.confirm auto'."),
+"\n\n";
 		}
-		$_ = ask("Send this email? ([y]es|[n]o|[q]uit|[a]ll): ",
+		# TRANSLATORS: Make sure to include [y] [n] [q] [a] in your
+		# translation. The program will only accept English input
+		# at this point.
+		$_ = ask(__("Send this email? ([y]es|[n]o|[q]uit|[a]ll): "),
 		         valid_re => qr/^(?:yes|y|no|n|quit|q|all|a)/i,
 		         default => $ask_default);
 		die "Send this email reply required" unless defined $_;
@@ -1403,7 +1412,7 @@ Message-Id: $message_id
 	if ($quiet) {
 		printf (($dry_run ? "Dry-" : "")."Sent %s\n", $subject);
 	} else {
-		print (($dry_run ? "Dry-" : "")."OK. Log says:\n");
+		print (($dry_run ? "Dry-" : ""). __("OK. Log says:\n"));
 		if (!file_name_is_absolute($smtp_server)) {
 			print "Server: $smtp_server\n";
 			print "MAIL FROM:<$raw_from>\n";
@@ -1478,13 +1487,13 @@ foreach my $t (@files) {
 				$sauthor = sanitize_address($author);
 				next if $suppress_cc{'author'};
 				next if $suppress_cc{'self'} and $sauthor eq $sender;
-				printf("(mbox) Adding cc: %s from line '%s'\n",
+				printf(__("(mbox) Adding cc: %s from line '%s'\n"),
 					$1, $_) unless $quiet;
 				push @cc, $1;
 			}
 			elsif (/^To:\s+(.*)$/i) {
 				foreach my $addr (parse_address_line($1)) {
-					printf("(mbox) Adding to: %s from line '%s'\n",
+					printf(__("(mbox) Adding to: %s from line '%s'\n"),
 						$addr, $_) unless $quiet;
 					push @to, $addr;
 				}
@@ -1498,7 +1507,7 @@ foreach my $t (@files) {
 					} else {
 						next if ($suppress_cc{'cc'});
 					}
-					printf("(mbox) Adding cc: %s from line '%s'\n",
+					printf(__("(mbox) Adding cc: %s from line '%s'\n"),
 						$addr, $_) unless $quiet;
 					push @cc, $addr;
 				}
@@ -1532,7 +1541,7 @@ foreach my $t (@files) {
 			# So let's support that, too.
 			$input_format = 'lots';
 			if (@cc == 0 && !$suppress_cc{'cc'}) {
-				printf("(non-mbox) Adding cc: %s from line '%s'\n",
+				printf(__("(non-mbox) Adding cc: %s from line '%s'\n"),
 					$_, $_) unless $quiet;
 				push @cc, $_;
 			} elsif (!defined $subject) {
@@ -1555,7 +1564,7 @@ foreach my $t (@files) {
 				next if $suppress_cc{'bodycc'} and $what =~ /Cc/i;
 			}
 			push @cc, $c;
-			printf("(body) Adding cc: %s from line '%s'\n",
+			printf(__("(body) Adding cc: %s from line '%s'\n"),
 				$c, $_) unless $quiet;
 		}
 	}
-- 
2.7.4
Previous: Jakub NarębskiNext: Junio C Hamano
Message 34 of 45 in “Mark strings in perl script for translation”
  1. 00/11 Mark strings in perl script for translationVasco Almeida, Aug 31, 2016
  2. 01/11 i18n: add--interactive: mark strings for translationVasco Almeida, Aug 31, 2016
  3. Junio C HamanoSep 25, 2016
  4. Vasco AlmeidaSep 28, 2016
  5. Duy NguyenSep 28, 2016
  6. Junio C HamanoSep 28, 2016
  7. Jakub NarębskiSep 29, 2016
  8. 02/11 i18n: add--interactive: mark simple here documents for translationVasco Almeida, Aug 31, 2016
  9. Junio C HamanoSep 25, 2016
  10. Vasco AlmeidaSep 29, 2016
  11. Junio C HamanoSep 29, 2016
  12. Jakub NarębskiSep 29, 2016
  13. Junio C HamanoSep 29, 2016
  14. Vasco AlmeidaOct 3, 2016
  15. Jakub NarębskiSep 30, 2016
  16. Vasco AlmeidaOct 3, 2016
  17. 03/11 i18n: add--interactive: mark strings with interpolation for translationVasco Almeida, Aug 31, 2016
  18. Junio C HamanoSep 25, 2016
  19. Jakub NarębskiSep 30, 2016
  20. Vasco AlmeidaOct 3, 2016
  21. 04/11 i18n: add--interactive: mark plural stringsVasco Almeida, Aug 31, 2016
  22. Vasco AlmeidaSep 26, 2016
  23. Junio C HamanoSep 26, 2016
  24. Jakub NarębskiOct 1, 2016
  25. Vasco AlmeidaOct 3, 2016
  26. 05/11 i18n: add--interactive: mark message for translationVasco Almeida, Aug 31, 2016
  27. Junio C HamanoSep 25, 2016
  28. Jakub NarębskiOct 1, 2016
  29. Vasco AlmeidaOct 3, 2016
  30. 06/11 i18n: add--interactive: i18n of help_patch_cmdVasco Almeida, Aug 31, 2016
  31. Junio C HamanoSep 25, 2016
  32. 07/11 i18n: add--interactive: mark edit_hunk_manually message for translationVasco Almeida, Aug 31, 2016
  33. Jakub NarębskiOct 1, 2016
  34. 08/11 i18n: send-email: mark strings for translationVasco Almeida, Aug 31, 2016
  35. Junio C HamanoSep 25, 2016
  36. Junio C HamanoSep 25, 2016
  37. Jakub NarębskiOct 1, 2016
  38. 11/11 i18n: difftool: mark warnings for translationVasco Almeida, Aug 31, 2016
  39. Junio C HamanoSep 25, 2016
  40. Jakub NarębskiOct 1, 2016
  41. 09/11 i18n: send-email: mark warnings and errors for translationVasco Almeida, Aug 31, 2016
  42. Jakub NarębskiOct 1, 2016
  43. 10/11 i18n: send-email: mark string with interpolation for translationVasco Almeida, Aug 31, 2016
  44. Junio C HamanoAug 31, 2016
  45. Junio C HamanoSep 25, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.