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

[PATCH v2 2/2] blame: use different blame_date_width for different locale

From
Jiang Xin <worldhello.net@gmail.com>
Date
Apr 20, 2014, 16:13 UTC
Message-ID
<07e4dcdc98b5eb9c78b9ed53bf2adc3b33139b67.1398010052.git.worldhello.net@gmail.com>
In-Reply-To
<cover.1398010052.git.worldhello.net@gmail.com>

When show date in relative date format for `git blame`, the max display width of datetime is set as the length of the string "Thu Oct 19 16:00:04 2006 -0700" (30 characters long). But actually the max width for C locale is only 22 (the length of string "x years, xx months ago"). And for other locale, it maybe smaller. E.g. For Chinese locale, only needs 16-character width.

Set blame_date_width as the display width of _("4 years, 11 months ago"), so that translators can make the choice.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
---
 builtin/blame.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/builtin/blame.c b/builtin/blame.c
index 0a0a858..9350ea3 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -2340,7 +2340,15 @@ parse_done:
 		blame_date_width = sizeof("2006-10-19");
 		break;
 	case DATE_RELATIVE:
-		/* "normal" is used as the fallback for "relative" */
+		/* TRANSLATORS: what we care about is not the content itself,
+		   but the display width of this string.  We use the width of
+		   the string as the max width of the datetime in relative
+		   format.  For English and many other languages, "4 years,
+		   11 months ago" is the longest one among "89 seconds ago",
+		   "89 minites ago", "35 hours ago", "13 days ago", "10 weeks
+		   ago", "in the future" and many others. */
+		blame_date_width = utf8_strwidth(_("4 years, 11 months ago")) + 1; /* add the null */
+		break;
 	case DATE_LOCAL:
 	case DATE_NORMAL:
 		blame_date_width = sizeof("Thu Oct 19 16:00:04 2006 -0700");
-- 
2.0.0.rc0.3.g444188f.dirty
Previous: Eric SunshineNext: Junio C Hamano
Message 8 of 20 in “blame: add correct paddings in time_buf for align”
  1. blame: add correct paddings in time_buf for alignJiang Xin, Apr 18, 2014
  2. Duy NguyenApr 18, 2014
  3. Junio C HamanoApr 18, 2014
  4. Duy NguyenApr 19, 2014
  5. 0/2 peroper align of datetime filed of git-blameJiang Xin, Apr 20, 2014
  6. 1/2 bugfix: fix broken time_buf paddings for git-blameJiang Xin, Apr 20, 2014
  7. Eric SunshineApr 20, 2014
  8. 2/2 blame: use different blame_date_width for different localeJiang Xin, Apr 20, 2014
  9. Junio C HamanoApr 20, 2014
  10. 0/2 peroper align of datetime filed of git-blameJiang Xin, Apr 21, 2014
  11. 1/2 bugfix: fix broken time_buf paddings for git-blameJiang Xin, Apr 21, 2014
  12. 2/2 blame: use a helper to get suitable blame_date_widthJiang Xin, Apr 21, 2014
  13. Junio C HamanoApr 21, 2014
  14. Junio C HamanoApr 21, 2014
  15. Jiang XinApr 22, 2014
  16. 0/2 peroper align of datetime filed of git-blameJiang Xin, Apr 22, 2014
  17. 1/2 bugfix: fix broken time_buf paddings for git-blameJiang Xin, Apr 22, 2014
  18. 2/2 blame: dynamic blame_date_width for different localesJiang Xin, Apr 22, 2014
  19. David KastrupApr 22, 2014
  20. Jiang XinApr 22, 2014

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.