mirror of
https://github.com/neovim/neovim.git
synced 2025-09-16 00:08:19 +00:00
vim-patch:8.1.0306: plural messages are not translated properly
Problem: Plural messages are not translated properly.
Solution: Add more usage of NGETTEXT(). (Sergey Alyoshin)
da6e8919e7
This commit is contained in:
@@ -1016,23 +1016,14 @@ char_u *do_bufdel(int command, char_u *arg, int addr_count, int start_bnr, int e
|
||||
errormsg = IObuff;
|
||||
} else if (deleted >= p_report) {
|
||||
if (command == DOBUF_UNLOAD) {
|
||||
if (deleted == 1) {
|
||||
MSG(_("1 buffer unloaded"));
|
||||
} else {
|
||||
smsg(_("%d buffers unloaded"), deleted);
|
||||
}
|
||||
smsg(NGETTEXT("%d buffer unloaded", "%d buffers unloaded", (unsigned long)deleted),
|
||||
deleted);
|
||||
} else if (command == DOBUF_DEL) {
|
||||
if (deleted == 1) {
|
||||
MSG(_("1 buffer deleted"));
|
||||
} else {
|
||||
smsg(_("%d buffers deleted"), deleted);
|
||||
}
|
||||
smsg(NGETTEXT("%d buffer deleted", "%d buffers deleted", (unsigned long)deleted),
|
||||
deleted);
|
||||
} else {
|
||||
if (deleted == 1) {
|
||||
MSG(_("1 buffer wiped out"));
|
||||
} else {
|
||||
smsg(_("%d buffers wiped out"), deleted);
|
||||
}
|
||||
smsg(NGETTEXT("%d buffer wiped out", "%d buffers wiped out", (unsigned long)deleted),
|
||||
deleted);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3103,12 +3094,11 @@ void fileinfo(int fullname, int shorthelp, int dont_truncate)
|
||||
vim_snprintf_add((char *)buffer, IOSIZE, "%s", _(no_lines_msg));
|
||||
} else if (p_ru) {
|
||||
// Current line and column are already on the screen -- webb
|
||||
if (curbuf->b_ml.ml_line_count == 1) {
|
||||
vim_snprintf_add((char *)buffer, IOSIZE, _("1 line --%d%%--"), n);
|
||||
} else {
|
||||
vim_snprintf_add((char *)buffer, IOSIZE, _("%" PRId64 " lines --%d%%--"),
|
||||
(int64_t)curbuf->b_ml.ml_line_count, n);
|
||||
}
|
||||
vim_snprintf_add((char *)buffer, IOSIZE,
|
||||
NGETTEXT("%" PRId64 " line --%d%%--",
|
||||
"%" PRId64 " lines --%d%%--",
|
||||
(unsigned long)curbuf->b_ml.ml_line_count),
|
||||
(int64_t)curbuf->b_ml.ml_line_count, n);
|
||||
} else {
|
||||
vim_snprintf_add((char *)buffer, IOSIZE,
|
||||
_("line %" PRId64 " of %" PRId64 " --%d%%-- col "),
|
||||
|
@@ -1015,11 +1015,7 @@ int do_move(linenr_T line1, linenr_T line2, linenr_T dest)
|
||||
ml_delete(line1 + extra, true);
|
||||
}
|
||||
if (!global_busy && num_lines > p_report) {
|
||||
if (num_lines == 1) {
|
||||
MSG(_("1 line moved"));
|
||||
} else {
|
||||
smsg(_("%" PRId64 " lines moved"), (int64_t)num_lines);
|
||||
}
|
||||
smsg(NGETTEXT("1 line moved", "%" PRId64 " lines moved", num_lines), (int64_t)num_lines);
|
||||
}
|
||||
|
||||
extmark_move_region(curbuf, line1-1, 0, start_byte,
|
||||
@@ -4456,22 +4452,20 @@ bool do_sub_msg(bool count_only)
|
||||
} else {
|
||||
*msg_buf = NUL;
|
||||
}
|
||||
if (sub_nsubs == 1) {
|
||||
vim_snprintf_add(msg_buf, sizeof(msg_buf),
|
||||
"%s", count_only ? _("1 match") : _("1 substitution"));
|
||||
} else {
|
||||
vim_snprintf_add(msg_buf, sizeof(msg_buf),
|
||||
count_only ? _("%" PRId64 " matches")
|
||||
: _("%" PRId64 " substitutions"),
|
||||
(int64_t)sub_nsubs);
|
||||
}
|
||||
if (sub_nlines == 1) {
|
||||
vim_snprintf_add(msg_buf, sizeof(msg_buf),
|
||||
"%s", _(" on 1 line"));
|
||||
} else {
|
||||
vim_snprintf_add(msg_buf, sizeof(msg_buf),
|
||||
_(" on %" PRId64 " lines"), (int64_t)sub_nlines);
|
||||
}
|
||||
|
||||
char *msg_single = count_only
|
||||
? NGETTEXT("%" PRId64 " match on %" PRId64 " line",
|
||||
"%" PRId64 " matches on %" PRId64 " line", sub_nsubs)
|
||||
: NGETTEXT("%" PRId64 " substitution on %" PRId64 " line",
|
||||
"%" PRId64 " substitutions on %" PRId64 " line", sub_nsubs);
|
||||
char *msg_plural = count_only
|
||||
? NGETTEXT("%" PRId64 " match on %" PRId64 " lines",
|
||||
"%" PRId64 " matches on %" PRId64 " lines", sub_nsubs)
|
||||
: NGETTEXT("%" PRId64 " substitution on %" PRId64 " lines",
|
||||
"%" PRId64 " substitutions on %" PRId64 " lines", sub_nsubs);
|
||||
vim_snprintf_add((char *)msg_buf, sizeof(msg_buf),
|
||||
NGETTEXT(msg_single, msg_plural, sub_nlines),
|
||||
(int64_t)sub_nsubs, (int64_t)sub_nlines);
|
||||
if (msg((char_u *)msg_buf)) {
|
||||
// save message to display it after redraw
|
||||
set_keep_msg((char_u *)msg_buf, 0);
|
||||
|
@@ -5116,23 +5116,16 @@ static int check_more(int message, bool forceit)
|
||||
if ((p_confirm || cmdmod.confirm) && curbuf->b_fname != NULL) {
|
||||
char_u buff[DIALOG_MSG_SIZE];
|
||||
|
||||
if (n == 1) {
|
||||
STRLCPY(buff, _("1 more file to edit. Quit anyway?"),
|
||||
DIALOG_MSG_SIZE);
|
||||
} else {
|
||||
vim_snprintf((char *)buff, DIALOG_MSG_SIZE,
|
||||
_("%d more files to edit. Quit anyway?"), n);
|
||||
}
|
||||
vim_snprintf((char *)buff, DIALOG_MSG_SIZE,
|
||||
NGETTEXT("%d more file to edit. Quit anyway?",
|
||||
"%d more files to edit. Quit anyway?", (unsigned long)n), n);
|
||||
if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 1) == VIM_YES) {
|
||||
return OK;
|
||||
}
|
||||
return FAIL;
|
||||
}
|
||||
if (n == 1) {
|
||||
EMSG(_("E173: 1 more file to edit"));
|
||||
} else {
|
||||
EMSGN(_("E173: %" PRId64 " more files to edit"), n);
|
||||
}
|
||||
EMSGN(NGETTEXT("E173: %d more file to edit",
|
||||
"E173: %d more files to edit", (unsigned long)n), n);
|
||||
quitmore = 2; // next try to quit is allowed
|
||||
}
|
||||
return FAIL;
|
||||
|
@@ -3849,20 +3849,16 @@ void msg_add_lines(int insert_space, long lnum, off_T nchars)
|
||||
*p++ = ' ';
|
||||
}
|
||||
if (shortmess(SHM_LINES)) {
|
||||
sprintf((char *)p, "%" PRId64 "L, %" PRId64 "C",
|
||||
(int64_t)lnum, (int64_t)nchars);
|
||||
vim_snprintf((char *)p, IOSIZE - (p - IObuff), "%" PRId64 "L, %" PRId64 "C",
|
||||
(int64_t)lnum, (int64_t)nchars);
|
||||
} else {
|
||||
if (lnum == 1) {
|
||||
STRCPY(p, _("1 line, "));
|
||||
} else {
|
||||
sprintf((char *)p, _("%" PRId64 " lines, "), (int64_t)lnum);
|
||||
}
|
||||
vim_snprintf((char *)p, IOSIZE - (p - IObuff),
|
||||
NGETTEXT("%" PRId64 " line, ", "%" PRId64 " lines, ", lnum),
|
||||
(int64_t)lnum);
|
||||
p += STRLEN(p);
|
||||
if (nchars == 1) {
|
||||
STRCPY(p, _("1 character"));
|
||||
} else {
|
||||
sprintf((char *)p, _("%" PRId64 " characters"), (int64_t)nchars);
|
||||
}
|
||||
vim_snprintf((char *)p, IOSIZE - (p - IObuff),
|
||||
NGETTEXT("%" PRId64 " character", "%" PRId64 " characters", nchars),
|
||||
(int64_t)nchars);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -10,7 +10,7 @@
|
||||
# else
|
||||
# define N_(x) x
|
||||
# endif
|
||||
# define NGETTEXT(x, xs, n) ngettext(x, xs, n)
|
||||
# define NGETTEXT(x, xs, n) ngettext(x, xs, (unsigned long)n)
|
||||
// On a Mac, gettext's libintl.h defines "setlocale" to be replaced by
|
||||
// "libintl_setlocal" which leads to wrong return values. #9789
|
||||
# if defined(__APPLE__) && defined(setlocale)
|
||||
|
@@ -686,20 +686,14 @@ void msgmore(long n)
|
||||
}
|
||||
|
||||
if (pn > p_report) {
|
||||
if (pn == 1) {
|
||||
if (n > 0) {
|
||||
STRLCPY(msg_buf, _("1 more line"), MSG_BUF_LEN);
|
||||
} else {
|
||||
STRLCPY(msg_buf, _("1 line less"), MSG_BUF_LEN);
|
||||
}
|
||||
if (n > 0) {
|
||||
vim_snprintf(msg_buf, MSG_BUF_LEN,
|
||||
NGETTEXT("%ld more line", "%ld more lines", pn),
|
||||
pn);
|
||||
} else {
|
||||
if (n > 0) {
|
||||
vim_snprintf(msg_buf, MSG_BUF_LEN,
|
||||
_("%" PRId64 " more lines"), (int64_t)pn);
|
||||
} else {
|
||||
vim_snprintf(msg_buf, MSG_BUF_LEN,
|
||||
_("%" PRId64 " fewer lines"), (int64_t)pn);
|
||||
}
|
||||
vim_snprintf(msg_buf, MSG_BUF_LEN,
|
||||
NGETTEXT("%ld line less", "%ld fewer lines", pn),
|
||||
pn);
|
||||
}
|
||||
if (got_int) {
|
||||
xstrlcat(msg_buf, _(" (Interrupted)"), MSG_BUF_LEN);
|
||||
|
@@ -210,7 +210,6 @@ void op_shift(oparg_T *oap, int curs_top, int amount)
|
||||
{
|
||||
long i;
|
||||
int first_char;
|
||||
char_u *s;
|
||||
int block_col = 0;
|
||||
|
||||
if (u_save((linenr_T)(oap->start.lnum - 1),
|
||||
@@ -249,26 +248,20 @@ void op_shift(oparg_T *oap, int curs_top, int amount)
|
||||
foldOpenCursor();
|
||||
|
||||
if (oap->line_count > p_report) {
|
||||
char *op;
|
||||
if (oap->op_type == OP_RSHIFT) {
|
||||
s = (char_u *)">";
|
||||
op = ">";
|
||||
} else {
|
||||
s = (char_u *)"<";
|
||||
}
|
||||
if (oap->line_count == 1) {
|
||||
if (amount == 1) {
|
||||
sprintf((char *)IObuff, _("1 line %sed 1 time"), s);
|
||||
} else {
|
||||
sprintf((char *)IObuff, _("1 line %sed %d times"), s, amount);
|
||||
}
|
||||
} else {
|
||||
if (amount == 1) {
|
||||
sprintf((char *)IObuff, _("%" PRId64 " lines %sed 1 time"),
|
||||
(int64_t)oap->line_count, s);
|
||||
} else {
|
||||
sprintf((char *)IObuff, _("%" PRId64 " lines %sed %d times"),
|
||||
(int64_t)oap->line_count, s, amount);
|
||||
}
|
||||
op = "<";
|
||||
}
|
||||
|
||||
char *msg_line_single = NGETTEXT("%" PRId64 " line %sed %d time",
|
||||
"%" PRId64 " line %sed %d times", amount);
|
||||
char *msg_line_plural = NGETTEXT("%" PRId64 " lines %sed %d time",
|
||||
"%" PRId64 " lines %sed %d times", amount);
|
||||
vim_snprintf((char *)IObuff, IOSIZE,
|
||||
NGETTEXT(msg_line_single, msg_line_plural, oap->line_count),
|
||||
(int64_t)oap->line_count, op, amount);
|
||||
msg_attr_keep(IObuff, 0, true, false);
|
||||
}
|
||||
|
||||
@@ -695,11 +688,9 @@ void op_reindent(oparg_T *oap, Indenter how)
|
||||
|
||||
if (oap->line_count > p_report) {
|
||||
i = oap->line_count - (i + 1);
|
||||
if (i == 1) {
|
||||
MSG(_("1 line indented "));
|
||||
} else {
|
||||
smsg(_("%" PRId64 " lines indented "), (int64_t)i);
|
||||
}
|
||||
smsg(NGETTEXT("%" PRId64 " line indented ",
|
||||
"%" PRId64 " lines indented ", i),
|
||||
(int64_t)i);
|
||||
}
|
||||
// set '[ and '] marks
|
||||
curbuf->b_op_start = oap->start;
|
||||
@@ -2073,11 +2064,9 @@ void op_tilde(oparg_T *oap)
|
||||
curbuf->b_op_end = oap->end;
|
||||
|
||||
if (oap->line_count > p_report) {
|
||||
if (oap->line_count == 1) {
|
||||
MSG(_("1 line changed"));
|
||||
} else {
|
||||
smsg(_("%" PRId64 " lines changed"), (int64_t)oap->line_count);
|
||||
}
|
||||
smsg(NGETTEXT("%" PRId64 " line changed",
|
||||
"%" PRId64 " lines changed", oap->line_count),
|
||||
(int64_t)oap->line_count);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2732,17 +2721,14 @@ static void op_yank_reg(oparg_T *oap, bool message, yankreg_T *reg, bool append)
|
||||
|
||||
// redisplay now, so message is not deleted
|
||||
update_topline_redraw();
|
||||
if (yanklines == 1) {
|
||||
if (yank_type == kMTBlockWise) {
|
||||
smsg(_("block of 1 line yanked%s"), namebuf);
|
||||
} else {
|
||||
smsg(_("1 line yanked%s"), namebuf);
|
||||
}
|
||||
} else if (yank_type == kMTBlockWise) {
|
||||
smsg(_("block of %" PRId64 " lines yanked%s"),
|
||||
if (yank_type == kMTBlockWise) {
|
||||
smsg(NGETTEXT("block of %" PRId64 " line yanked%s",
|
||||
"block of %" PRId64 " lines yanked%s", yanklines),
|
||||
(int64_t)yanklines, namebuf);
|
||||
} else {
|
||||
smsg(_("%" PRId64 " lines yanked%s"), (int64_t)yanklines, namebuf);
|
||||
smsg(NGETTEXT("%" PRId64 " line yanked%s",
|
||||
"%" PRId64 " lines yanked%s", yanklines),
|
||||
(int64_t)yanklines, namebuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4808,11 +4794,9 @@ void op_addsub(oparg_T *oap, linenr_T Prenum1, bool g_cmd)
|
||||
}
|
||||
|
||||
if (change_cnt > p_report) {
|
||||
if (change_cnt == 1) {
|
||||
MSG(_("1 line changed"));
|
||||
} else {
|
||||
smsg(_("%" PRId64 " lines changed"), (int64_t)change_cnt);
|
||||
}
|
||||
smsg(NGETTEXT("%" PRId64 " lines changed",
|
||||
"%" PRId64 " lines changed", change_cnt),
|
||||
(int64_t)change_cnt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user