[PATCH] i18n: fix dangling dot in die() messages

2018-09-04 Thread Jean-Noel Avila
Signed-off-by: Jean-Noël Avila 
---

It is not clear what the style guide for messages is.

 builtin/submodule--helper.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index b56028ba9d..a011abfd7c 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -521,7 +521,7 @@ static void runcommand_in_submodule_cb(const struct 
cache_entry *list_item,
printf(_("Entering '%s'\n"), displaypath);
 
if (info->argv[0] && run_command())
-   die(_("run_command returned non-zero status for %s\n."),
+   die(_("run_command returned non-zero status for %s"),
displaypath);
 
if (info->recursive) {
@@ -543,7 +543,7 @@ static void runcommand_in_submodule_cb(const struct 
cache_entry *list_item,
 
if (run_command())
die(_("run_command returned non-zero status while "
-   "recursing in the nested submodules of %s\n."),
+   "recursing in the nested submodules of %s"),
displaypath);
}
 
-- 
2.18.0



[PATCH] submodule--helper.c: i18n: add a missing space in message

2017-11-25 Thread Jean-Noel Avila
The message spans over 2 lines but the C conconcatenation does not add
the needed space between the two lines.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 builtin/submodule--helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index 2086f0eb0..a5c4a8a69 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -623,7 +623,7 @@ static void status_submodule(const char *path, const struct 
object_id *ce_oid,
 
if (refs_head_ref(get_submodule_ref_store(path),
  handle_submodule_head_ref, ))
-   die(_("could not resolve HEAD ref inside the"
+   die(_("could not resolve HEAD ref inside the "
  "submodule '%s'"), path);
 
print_status(flags, '+', path, , displaypath);
-- 
2.15.0



[PATCH] submodule--helper.c: i18n: add a missing space in message

2017-11-25 Thread Jean-Noel Avila
The message spans over 2 lines but the C conconcatenation does not add
the needed space between the two lines.
---
 builtin/submodule--helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index 2086f0eb0..a5c4a8a69 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -623,7 +623,7 @@ static void status_submodule(const char *path, const struct 
object_id *ce_oid,
 
if (refs_head_ref(get_submodule_ref_store(path),
  handle_submodule_head_ref, ))
-   die(_("could not resolve HEAD ref inside the"
+   die(_("could not resolve HEAD ref inside the "
  "submodule '%s'"), path);
 
print_status(flags, '+', path, , displaypath);
-- 
2.15.0



[PATCH] i18n: add a missing space in message

2017-10-08 Thread Jean-Noel Avila
The message spans over 2 lines but the C conconcatenation does not add
the needed space between the two lines.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 sequencer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

This is a single change discovered while doing the localization task.

Moreover, what's the status of the options in '--' in the
messages?  Must they be single-quoted or not? This may sound a bit
picky, but there has been some shifts from one form to the other in
the latest batch of strings, leading to fuzzy matchings. Settling on a
given "standard" would probably reduce translators'work.

diff --git a/sequencer.c b/sequencer.c
index 7886e2269..e258bb646 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -2558,7 +2558,7 @@ static enum check_level 
get_missing_commit_check_level(void)
return CHECK_WARN;
if (!strcasecmp("error", value))
return CHECK_ERROR;
-   warning(_("unrecognized setting %s for option"
+   warning(_("unrecognized setting %s for option "
  "rebase.missingCommitsCheck. Ignoring."), value);
return CHECK_IGNORE;
 }
-- 
2.14.0



[PATCH v4 3/3] git-filter-branch: be more direct in an error message

2017-05-12 Thread Jean-Noel Avila
git-filter-branch requires the specification of a branch by one way or
another. If no branch appears to have been specified, we know the user
got the usage wrong but we don't know what they were trying to do ---
e.g. maybe they specified the ref to rewrite but in the wrong place.

In this case, just state that the branch specification is missing.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 git-filter-branch.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 2b8cdba15..aafaf708d 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -239,7 +239,7 @@ git rev-parse --no-flags --revs-only --symbolic-full-name \
 sed -e '/^^/d' "$tempdir"/raw-heads >"$tempdir"/heads
 
 test -s "$tempdir"/heads ||
-   die "Which ref do you want to rewrite?"
+   die "You must specify a ref to rewrite."
 
 GIT_INDEX_FILE="$(pwd)/../index"
 export GIT_INDEX_FILE
-- 
2.13.0



[PATCH v4 2/3] read-tree -m: make error message for merging 0 trees less smart aleck

2017-05-12 Thread Jean-Noel Avila
"git read-tree -m" requires a tree argument to name the tree to be
merged in.  Git uses a cutesy error message to say so and why:

$ git read-tree -m
warning: read-tree: emptying the index with no arguments is
deprecated; use --empty
fatal: just how do you expect me to merge 0 trees?
$ git read-tree -m --empty
fatal: just how do you expect me to merge 0 trees?

When lucky, that could produce an ah-hah moment for the user, but it's
more likely to irritate and distract them.

Instead, tell the user plainly that the tree argument is
required. Also document that more than 3 trees can be merged.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 Documentation/git-read-tree.txt | 7 +++
 builtin/read-tree.c | 5 +++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/Documentation/git-read-tree.txt b/Documentation/git-read-tree.txt
index ed9d63ef4..7e20b0c21 100644
--- a/Documentation/git-read-tree.txt
+++ b/Documentation/git-read-tree.txt
@@ -135,10 +135,9 @@ OPTIONS
 
 Merging
 ---
-If `-m` is specified, 'git read-tree' can perform 3 kinds of
-merge, a single tree merge if only 1 tree is given, a
-fast-forward merge with 2 trees, or a 3-way merge if 3 trees are
-provided.
+If `-m` is specified, 'git read-tree' can perform 3 kinds of merge, a
+single tree merge if only 1 tree is given, a fast-forward merge with 2
+trees, or a 3-way merge if 3 or more trees are provided.
 
 
 Single Tree Merge
diff --git a/builtin/read-tree.c b/builtin/read-tree.c
index 23e212ee8..383442567 100644
--- a/builtin/read-tree.c
+++ b/builtin/read-tree.c
@@ -226,9 +226,10 @@ int cmd_read_tree(int argc, const char **argv, const char 
*unused_prefix)
setup_work_tree();
 
if (opts.merge) {
-   if (stage < 2)
-   die("just how do you expect me to merge %d trees?", 
stage-1);
switch (stage - 1) {
+   case 0:
+   die("you must specify at least one tree to merge");
+   break;
case 1:
opts.fn = opts.prefix ? bind_merge : oneway_merge;
break;
-- 
2.13.0



[PATCH v4 1/3] usability: don't ask questions if no reply is required

2017-05-12 Thread Jean-Noel Avila
There has been a bug report by a corporate user that stated that
"spelling mistake of stash followed by a yes prints character 'y'
infinite times."

This analysis was false. When the spelling of a command contains
errors, the git program tries to help the user by providing candidates
which are close to the unexisting command. E.g Git prints the
following:

git: 'stahs' is not a git command. See 'git --help'.
Did you mean this?

stash

and then exits.

The problem with this hint is that it is not formally indicated as an
hint and the user is in fact encouraged to reply to the question,
whereas the Git command is already finished.

The user was unlucky enough that it was the command he was looking
for, and replied "yes" on the command line, effectively launching the
`yes` program.

The initial error is that the Git programs, when launched in
command-line mode (without interaction) must not ask questions,
because these questions would normally require a user input as a reply
that they won't handle indeed. That's a source of confusion on UX
level.

To improve the general usability of the Git suite, the following rule
was applied:

if the sentence
 * appears in a non-interactive session
 * is printed last before exit
 * is a question addressing the user ("you")

the sentence is turned into affirmative and proposes the option.

The basic rewording of the question sentences has been extended to
other spots found in the source.

Requested at https://github.com/git/git-scm.com/issues/999 by rpai1

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 builtin/am.c   | 5 +++--
 builtin/checkout.c | 5 ++---
 help.c | 4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/builtin/am.c b/builtin/am.c
index a95dd8b4e..dd60fad1e 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1312,7 +1312,7 @@ static int parse_mail(struct am_state *state, const char 
*mail)
}
 
if (is_empty_file(am_path(state, "patch"))) {
-   printf_ln(_("Patch is empty. Was it split wrong?"));
+   printf_ln(_("Patch is empty."));
die_user_resolve(state);
}
 
@@ -1940,7 +1940,8 @@ static void am_resolve(struct am_state *state)
 
if (unmerged_cache()) {
printf_ln(_("You still have unmerged paths in your index.\n"
-   "Did you forget to use 'git add'?"));
+   "You should 'git add' each file with resolved conflicts 
to mark them as such.\n"
+   "You might run `git rm` on a file to accept \"deleted 
by them\" for it."));
die_user_resolve(state);
}
 
diff --git a/builtin/checkout.c b/builtin/checkout.c
index bfa5419f3..85c04d252 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -1286,9 +1286,8 @@ int cmd_checkout(int argc, const char **argv, const char 
*prefix)
 * new_branch && argc > 1 will be caught later.
 */
if (opts.new_branch && argc == 1)
-   die(_("Cannot update paths and switch to branch '%s' at 
the same time.\n"
- "Did you intend to checkout '%s' which can not be 
resolved as commit?"),
-   opts.new_branch, argv[0]);
+   die(_("'%s' is not a commit and a branch '%s' cannot be 
created from it"),
+   argv[0], opts.new_branch);
 
if (opts.force_detach)
die(_("git checkout: --detach does not take a path 
argument '%s'"),
diff --git a/help.c b/help.c
index bc6cd19cf..a07f01e6f 100644
--- a/help.c
+++ b/help.c
@@ -411,8 +411,8 @@ const char *help_unknown_cmd(const char *cmd)
 
if (SIMILAR_ENOUGH(best_similarity)) {
fprintf_ln(stderr,
-  Q_("\nDid you mean this?",
- "\nDid you mean one of these?",
+  Q_("\nThe most similar command is",
+ "\nThe most similar commands are",
   n));
 
for (i = 0; i < n; i++)
-- 
2.13.0



[PATCH v3 1/3] usability: don't ask questions if no reply is required

2017-05-11 Thread Jean-Noel Avila
There has been a bug report by a corporate user that stated that
"spelling mistake of stash followed by a yes prints character 'y'
infinite times."

This analysis was false. When the spelling of a command contains
errors, the git program tries to help the user by providing candidates
which are close to the unexisting command. E.g Git prints the
following:

git: 'stahs' is not a git command. See 'git --help'.
Did you mean this?

stash

and then exits.

The problem with this hint is that it is not formally indicated as an
hint and the user is in fact encouraged to reply to the question,
whereas the Git command is already finished.

The user was unlucky enough that it was the command he was looking
for, and replied "yes" on the command line, effectively launching the
`yes` program.

The initial error is that the Git programs, when launched in
command-line mode (without interaction) must not ask questions,
because these questions would normally require a user input as a reply
that they won't handle indeed. That's a source of confusion on UX
level.

To improve the general usability of the Git suite, the following rule
was applied:

if the sentence
 * appears in a non-interactive session
 * is printed last before exit
 * is a question addressing the user ("you")

the sentence is turned into affirmative and proposes the option.

The basic rewording of the question sentences has been extended to
other spots found in the source.

Requested at https://github.com/git/git-scm.com/issues/999 by rpai1

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 builtin/am.c   | 5 +++--
 builtin/checkout.c | 5 ++---
 help.c | 4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/builtin/am.c b/builtin/am.c
index a95dd8b4e..dd60fad1e 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1312,7 +1312,7 @@ static int parse_mail(struct am_state *state, const char 
*mail)
}
 
if (is_empty_file(am_path(state, "patch"))) {
-   printf_ln(_("Patch is empty. Was it split wrong?"));
+   printf_ln(_("Patch is empty."));
die_user_resolve(state);
}
 
@@ -1940,7 +1940,8 @@ static void am_resolve(struct am_state *state)
 
if (unmerged_cache()) {
printf_ln(_("You still have unmerged paths in your index.\n"
-   "Did you forget to use 'git add'?"));
+   "You should 'git add' each file with resolved conflicts 
to mark them as such.\n"
+   "You might run `git rm` on a file to accept \"deleted 
by them\" for it."));
die_user_resolve(state);
}
 
diff --git a/builtin/checkout.c b/builtin/checkout.c
index bfa5419f3..85c04d252 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -1286,9 +1286,8 @@ int cmd_checkout(int argc, const char **argv, const char 
*prefix)
 * new_branch && argc > 1 will be caught later.
 */
if (opts.new_branch && argc == 1)
-   die(_("Cannot update paths and switch to branch '%s' at 
the same time.\n"
- "Did you intend to checkout '%s' which can not be 
resolved as commit?"),
-   opts.new_branch, argv[0]);
+   die(_("'%s' is not a commit and a branch '%s' cannot be 
created from it"),
+   argv[0], opts.new_branch);
 
if (opts.force_detach)
die(_("git checkout: --detach does not take a path 
argument '%s'"),
diff --git a/help.c b/help.c
index bc6cd19cf..a07f01e6f 100644
--- a/help.c
+++ b/help.c
@@ -411,8 +411,8 @@ const char *help_unknown_cmd(const char *cmd)
 
if (SIMILAR_ENOUGH(best_similarity)) {
fprintf_ln(stderr,
-  Q_("\nDid you mean this?",
- "\nDid you mean one of these?",
+  Q_("\nThe most similar command is",
+ "\nThe most similar commands are",
   n));
 
for (i = 0; i < n; i++)
-- 
2.13.0



[PATCH v3 2/3] read-tree -m: make error message for merging 0 trees less smart aleck

2017-05-11 Thread Jean-Noel Avila
"git read-tree -m" requires a tree argument to name the tree to be
merged in.  Git uses a cutesy error message to say so and why:

$ git read-tree -m
warning: read-tree: emptying the index with no arguments is
deprecated; use --empty
fatal: just how do you expect me to merge 0 trees?
$ git read-tree -m --empty
fatal: just how do you expect me to merge 0 trees?

When lucky, that could produce an ah-hah moment for the user, but it's
more likely to irritate and distract them.

Instead, tell the user plainly that the tree argument is
required. Also document this requirement in the git-read-tree(1)
manpage where there is room to explain it in a more straightforward way.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
Signed-off-by: Jonathan Nieder <jrnie...@gmail.com>
---
 Documentation/git-read-tree.txt | 8 
 builtin/read-tree.c | 7 ---
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/Documentation/git-read-tree.txt b/Documentation/git-read-tree.txt
index ed9d63ef4..97df00043 100644
--- a/Documentation/git-read-tree.txt
+++ b/Documentation/git-read-tree.txt
@@ -135,10 +135,10 @@ OPTIONS
 
 Merging
 ---
-If `-m` is specified, 'git read-tree' can perform 3 kinds of
-merge, a single tree merge if only 1 tree is given, a
-fast-forward merge with 2 trees, or a 3-way merge if 3 trees are
-provided.
+If `-m` is specified, at least one tree must be given on the command
+line. 'git read-tree' can perform 3 kinds of merge, a single tree
+merge if only 1 tree is given, a fast-forward merge with 2 trees, or a
+3-way merge if 3 or more trees are provided.
 
 
 Single Tree Merge
diff --git a/builtin/read-tree.c b/builtin/read-tree.c
index 23e212ee8..de1a58d17 100644
--- a/builtin/read-tree.c
+++ b/builtin/read-tree.c
@@ -132,7 +132,7 @@ int cmd_read_tree(int argc, const char **argv, const char 
*unused_prefix)
OPT_BOOL(0, "empty", _empty,
N_("only empty the index")),
OPT__VERBOSE(_update, N_("be verbose")),
-   OPT_GROUP(N_("Merging")),
+   OPT_GROUP(N_("Merging (needs at least one tree-ish")),
OPT_BOOL('m', NULL, ,
 N_("perform a merge in addition to a read")),
OPT_BOOL(0, "trivial", _merges_only,
@@ -226,9 +226,10 @@ int cmd_read_tree(int argc, const char **argv, const char 
*unused_prefix)
setup_work_tree();
 
if (opts.merge) {
-   if (stage < 2)
-   die("just how do you expect me to merge %d trees?", 
stage-1);
switch (stage - 1) {
+   case 0:
+   die(_("you must specify at least one tree to merge"));
+   break;
case 1:
opts.fn = opts.prefix ? bind_merge : oneway_merge;
break;
-- 
2.13.0



[PATCH v3 3/3] git-filter-branch:

2017-05-11 Thread Jean-Noel Avila
git-filter-branch requires the specification of a branch by one way or
another. If no branch appears to have been specified, we know the user
got the usage wrong but we don't know what they were trying to do ---
e.g. maybe they specified the ref to rewrite but in the wrong place.

In this case, just state that the branch specification is missing.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 git-filter-branch.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 2b8cdba15..aafaf708d 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -239,7 +239,7 @@ git rev-parse --no-flags --revs-only --symbolic-full-name \
 sed -e '/^^/d' "$tempdir"/raw-heads >"$tempdir"/heads
 
 test -s "$tempdir"/heads ||
-   die "Which ref do you want to rewrite?"
+   die "You must specify a ref to rewrite."
 
 GIT_INDEX_FILE="$(pwd)/../index"
 export GIT_INDEX_FILE
-- 
2.13.0



[PATCH v2 2/3] read-tree -m: make error message for merging 0 trees less smart aleck

2017-05-03 Thread Jean-Noel Avila
"git read-tree -m" requires a tree argument to name the tree to be
merged in.  Git uses a cutesy error message to say so and why:

$ git read-tree -m
warning: read-tree: emptying the index with no arguments is
deprecated; use --empty
fatal: just how do you expect me to merge 0 trees?
$ git read-tree -m --empty
fatal: just how do you expect me to merge 0 trees?

When lucky, that could produce an ah-hah moment for the user, but it's
more likely to irritate and distract them.

Instead, tell the user plainly that the tree argument is
required. Also document this requirement in the git-read-tree(1)
manpage where there is room to explain it in a more straightforward way.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
Signed-off-by: Jonathan Nieder <jrnie...@gmail.com>
---
 Documentation/git-read-tree.txt | 8 
 builtin/read-tree.c | 7 ---
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/Documentation/git-read-tree.txt b/Documentation/git-read-tree.txt
index ed9d63ef4..7cd9c6306 100644
--- a/Documentation/git-read-tree.txt
+++ b/Documentation/git-read-tree.txt
@@ -135,10 +135,10 @@ OPTIONS
 
 Merging
 ---
-If `-m` is specified, 'git read-tree' can perform 3 kinds of
-merge, a single tree merge if only 1 tree is given, a
-fast-forward merge with 2 trees, or a 3-way merge if 3 trees are
-provided.
+If `-m` is specified, at least one tree must be given on the command
+line. 'git read-tree' can perform 3 kinds of merge, a single tree
+merge if only 1 tree is given, a fast-forward merge with 2 trees, or a
+3-way merge if 3 trees are provided.
 
 
 Single Tree Merge
diff --git a/builtin/read-tree.c b/builtin/read-tree.c
index 23e212ee8..68c5b0ca4 100644
--- a/builtin/read-tree.c
+++ b/builtin/read-tree.c
@@ -132,7 +132,7 @@ int cmd_read_tree(int argc, const char **argv, const char 
*unused_prefix)
OPT_BOOL(0, "empty", _empty,
N_("only empty the index")),
OPT__VERBOSE(_update, N_("be verbose")),
-   OPT_GROUP(N_("Merging")),
+   OPT_GROUP(N_("Merging (needs at least one tree-ish")),
OPT_BOOL('m', NULL, ,
 N_("perform a merge in addition to a read")),
OPT_BOOL(0, "trivial", _merges_only,
@@ -226,9 +226,10 @@ int cmd_read_tree(int argc, const char **argv, const char 
*unused_prefix)
setup_work_tree();
 
if (opts.merge) {
-   if (stage < 2)
-   die("just how do you expect me to merge %d trees?", 
stage-1);
switch (stage - 1) {
+   case 0:
+   die("you must specify at least one tree to merge");
+   break;
case 1:
opts.fn = opts.prefix ? bind_merge : oneway_merge;
break;
-- 
2.12.0



[PATCH v2 3/3] git-filter-branch: make the error msg when missing branch more open

2017-05-03 Thread Jean-Noel Avila
git-filter-branch requires the specification of a branch by one way or
another. If no branch appears to have been specified, we know the user
got the usage wrong but we don't know what they were trying to do ---
e.g. maybe they specified the ref to rewrite but in the wrong place.

The safest solution is to just print the usage in this case.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 git-filter-branch.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 2b8cdba15..bda2bae23 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -239,7 +239,7 @@ git rev-parse --no-flags --revs-only --symbolic-full-name \
 sed -e '/^^/d' "$tempdir"/raw-heads >"$tempdir"/heads
 
 test -s "$tempdir"/heads ||
-   die "Which ref do you want to rewrite?"
+   usage
 
 GIT_INDEX_FILE="$(pwd)/../index"
 export GIT_INDEX_FILE
-- 
2.12.0



[PATCH v2 1/3] usability: don't ask questions if no reply is required

2017-05-03 Thread Jean-Noel Avila
There has been a bug report by a corporate user that stated that
"spelling mistake of stash followed by a yes prints character 'y'
infinite times."

This analysis was false. When the spelling of a command contains
errors, the git program tries to help the user by providing candidates
which are close to the unexisting command. E.g Git prints the
following:

git: 'stahs' is not a git command. See 'git --help'.
Did you mean this?

stash

and then exits.

The problem with this hint is that it is not formally indicated as an
hint and the user is in fact encouraged to reply to the question,
whereas the Git command is already finished.

The user was unlucky enough that it was the command he was looking
for, and replied "yes" on the command line, effectively launching the
`yes` program.

The initial error is that the Git programs, when launched in
command-line mode (without interaction) must not ask questions,
because these questions would normally require a user input as a reply
while they won't handle indeed. That's a source of confusion on UX
level.

To improve the general usability of the Git suite, the following rule
was applied:

if the sentence
 * appears in a non-interactive session
 * is printed last before exit
 * is a question addressing the user ("you")

the sentence is turned into affirmative and proposes the option.

The basic rewording of the question sentences has been extended to
other spots found in the source.

Requested at https://github.com/git/git-scm.com/issues/999 by rpai1

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 builtin/am.c   | 4 ++--
 builtin/checkout.c | 2 +-
 help.c | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/builtin/am.c b/builtin/am.c
index a95dd8b4e..f5afa438d 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1312,7 +1312,7 @@ static int parse_mail(struct am_state *state, const char 
*mail)
}
 
if (is_empty_file(am_path(state, "patch"))) {
-   printf_ln(_("Patch is empty. Was it split wrong?"));
+   printf_ln(_("Patch is empty. It may have been split wrong."));
die_user_resolve(state);
}
 
@@ -1940,7 +1940,7 @@ static void am_resolve(struct am_state *state)
 
if (unmerged_cache()) {
printf_ln(_("You still have unmerged paths in your index.\n"
-   "Did you forget to use 'git add'?"));
+   "You might want to use 'git add' on them."));
die_user_resolve(state);
}
 
diff --git a/builtin/checkout.c b/builtin/checkout.c
index bfa5419f3..05037b9b6 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -1287,7 +1287,7 @@ int cmd_checkout(int argc, const char **argv, const char 
*prefix)
 */
if (opts.new_branch && argc == 1)
die(_("Cannot update paths and switch to branch '%s' at 
the same time.\n"
- "Did you intend to checkout '%s' which can not be 
resolved as commit?"),
+ "'%s' can not be resolved as commit, but it 
should."),
opts.new_branch, argv[0]);
 
if (opts.force_detach)
diff --git a/help.c b/help.c
index bc6cd19cf..4658a55c6 100644
--- a/help.c
+++ b/help.c
@@ -411,8 +411,8 @@ const char *help_unknown_cmd(const char *cmd)
 
if (SIMILAR_ENOUGH(best_similarity)) {
fprintf_ln(stderr,
-  Q_("\nDid you mean this?",
- "\nDid you mean one of these?",
+  Q_("\nThe most approaching command is",
+ "\nThe most approaching commands are",
   n));
 
for (i = 0; i < n; i++)
-- 
2.12.0



[PATCH 4/4] git-filter-branch: be assertative on dying message

2017-05-03 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 git-filter-branch.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 2b8cdba15..dd3a605d0 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -239,7 +239,7 @@ git rev-parse --no-flags --revs-only --symbolic-full-name \
 sed -e '/^^/d' "$tempdir"/raw-heads >"$tempdir"/heads
 
 test -s "$tempdir"/heads ||
-   die "Which ref do you want to rewrite?"
+   die "You must specify a ref to rewrite"
 
 GIT_INDEX_FILE="$(pwd)/../index"
 export GIT_INDEX_FILE
-- 
2.12.0



[PATCH 3/4] read-tree.c: rework UI when merging no trees

2017-05-03 Thread Jean-Noel Avila
The initial test was inherited from a previous commit, but it is no
longer needed, given the following switch case. Moreover, the question
sentence ending the program has been replace by an assertative one.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 builtin/read-tree.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/builtin/read-tree.c b/builtin/read-tree.c
index 23e212ee8..05296997c 100644
--- a/builtin/read-tree.c
+++ b/builtin/read-tree.c
@@ -226,9 +226,10 @@ int cmd_read_tree(int argc, const char **argv, const char 
*unused_prefix)
setup_work_tree();
 
if (opts.merge) {
-   if (stage < 2)
-   die("just how do you expect me to merge %d trees?", 
stage-1);
switch (stage - 1) {
+   case 0:
+   die("there are no trees to merge!");
+   break;
case 1:
opts.fn = opts.prefix ? bind_merge : oneway_merge;
break;
-- 
2.12.0



[PATCH 2/4] usability: fix am and checkout for nevermind questions

2017-05-03 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 builtin/am.c   | 4 ++--
 builtin/checkout.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/builtin/am.c b/builtin/am.c
index a95dd8b4e..f5afa438d 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1312,7 +1312,7 @@ static int parse_mail(struct am_state *state, const char 
*mail)
}
 
if (is_empty_file(am_path(state, "patch"))) {
-   printf_ln(_("Patch is empty. Was it split wrong?"));
+   printf_ln(_("Patch is empty. It may have been split wrong."));
die_user_resolve(state);
}
 
@@ -1940,7 +1940,7 @@ static void am_resolve(struct am_state *state)
 
if (unmerged_cache()) {
printf_ln(_("You still have unmerged paths in your index.\n"
-   "Did you forget to use 'git add'?"));
+   "You might want to use 'git add' on them."));
die_user_resolve(state);
}
 
diff --git a/builtin/checkout.c b/builtin/checkout.c
index bfa5419f3..05037b9b6 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -1287,7 +1287,7 @@ int cmd_checkout(int argc, const char **argv, const char 
*prefix)
 */
if (opts.new_branch && argc == 1)
die(_("Cannot update paths and switch to branch '%s' at 
the same time.\n"
- "Did you intend to checkout '%s' which can not be 
resolved as commit?"),
+ "'%s' can not be resolved as commit, but it 
should."),
opts.new_branch, argv[0]);
 
if (opts.force_detach)
-- 
2.12.0



[PATCH 1/4] usability: don't ask questions if no reply is required

2017-05-03 Thread Jean-Noel Avila
As described in the bug report at

https://github.com/git/git-scm.com/issues/999

the user was disconcerted by the question asked by the program not
requiring a reply from the user. To improve the general usability of
the Git suite, The following rule was applied:

if the sentence
 * appears in a non-interactive session
 * is printed last before exit
 * is a question addressing the user ("you")

the sentence is turned into affirmative and proposes the option.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 help.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/help.c b/help.c
index bc6cd19cf..4658a55c6 100644
--- a/help.c
+++ b/help.c
@@ -411,8 +411,8 @@ const char *help_unknown_cmd(const char *cmd)
 
if (SIMILAR_ENOUGH(best_similarity)) {
fprintf_ln(stderr,
-  Q_("\nDid you mean this?",
- "\nDid you mean one of these?",
+  Q_("\nThe most approaching command is",
+ "\nThe most approaching commands are",
   n));
 
for (i = 0; i < n; i++)
-- 
2.12.0



[PATCH v2 2/2] i18n: read-cache: Fix typo

2017-04-30 Thread Jean-Noel Avila
From: Peter Krefting <pe...@softwolves.pp.se>

Signed-off-by: Peter Krefting <pe...@softwolves.pp.se>
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 read-cache.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/read-cache.c b/read-cache.c
index b3d0f3c30..0d0081a11 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -2372,7 +2372,7 @@ static int should_delete_shared_index(const char 
*shared_index_path)
if (!expiration)
return 0;
if (stat(shared_index_path, ))
-   return error_errno(_("could not stat '%s"), shared_index_path);
+   return error_errno(_("could not stat '%s'"), shared_index_path);
if (st.st_mtime > expiration)
return 0;
 
-- 
2.12.0



[PATCH v2] i18n patches to apply for rc2

2017-04-30 Thread Jean-Noel Avila
Please apply the following patches for rc2 so that the localization
can be applied on a cleaned up pot file.



[PATCH v2 1/2] i18n: remove i18n from tag reflog message

2017-04-30 Thread Jean-Noel Avila
The building of the reflog message is using strbuf, which is not
friendly with internationalization frameworks. No other reflog
messages are translated right now and switching all the messages to
i18n would require a major rework of the way the messages are built.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 builtin/tag.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/builtin/tag.c b/builtin/tag.c
index 222404522..bdf1e88e9 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -309,7 +309,7 @@ static void create_reflog_msg(const unsigned char *sha1, 
struct strbuf *sb)
if (rla) {
strbuf_addstr(sb, rla);
} else {
-   strbuf_addstr(sb, _("tag: tagging "));
+   strbuf_addstr(sb, "tag: tagging ");
strbuf_add_unique_abbrev(sb, sha1, DEFAULT_ABBREV);
}
 
@@ -317,14 +317,14 @@ static void create_reflog_msg(const unsigned char *sha1, 
struct strbuf *sb)
type = sha1_object_info(sha1, NULL);
switch (type) {
default:
-   strbuf_addstr(sb, _("object of unknown type"));
+   strbuf_addstr(sb, "object of unknown type");
break;
case OBJ_COMMIT:
if ((buf = read_sha1_file(sha1, , )) != NULL) {
subject_len = find_commit_subject(buf, _start);
strbuf_insert(sb, sb->len, subject_start, subject_len);
} else {
-   strbuf_addstr(sb, _("commit object"));
+   strbuf_addstr(sb, "commit object");
}
free(buf);
 
@@ -332,13 +332,13 @@ static void create_reflog_msg(const unsigned char *sha1, 
struct strbuf *sb)
strbuf_addf(sb, ", %s", show_date(c->date, 0, 
DATE_MODE(SHORT)));
break;
case OBJ_TREE:
-   strbuf_addstr(sb, _("tree object"));
+   strbuf_addstr(sb, "tree object");
break;
case OBJ_BLOB:
-   strbuf_addstr(sb, _("blob object"));
+   strbuf_addstr(sb, "blob object");
break;
case OBJ_TAG:
-   strbuf_addstr(sb, _("other tag object"));
+   strbuf_addstr(sb, "other tag object");
break;
}
strbuf_addch(sb, ')');
-- 
2.12.0



[PATCH] i18n: remove i18n from tag reflog message

2017-04-29 Thread Jean-Noel Avila
The building of the reflog message is using strbuf, which is not
friendly with internationalization frameworks. No other reflog
messages are translated right now and switching all the messages to
i18n would require a major rework of the way the messages are built.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 builtin/tag.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/builtin/tag.c b/builtin/tag.c
index 222404522..bdf1e88e9 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -309,7 +309,7 @@ static void create_reflog_msg(const unsigned char *sha1, 
struct strbuf *sb)
if (rla) {
strbuf_addstr(sb, rla);
} else {
-   strbuf_addstr(sb, _("tag: tagging "));
+   strbuf_addstr(sb, "tag: tagging ");
strbuf_add_unique_abbrev(sb, sha1, DEFAULT_ABBREV);
}
 
@@ -317,14 +317,14 @@ static void create_reflog_msg(const unsigned char *sha1, 
struct strbuf *sb)
type = sha1_object_info(sha1, NULL);
switch (type) {
default:
-   strbuf_addstr(sb, _("object of unknown type"));
+   strbuf_addstr(sb, "object of unknown type");
break;
case OBJ_COMMIT:
if ((buf = read_sha1_file(sha1, , )) != NULL) {
subject_len = find_commit_subject(buf, _start);
strbuf_insert(sb, sb->len, subject_start, subject_len);
} else {
-   strbuf_addstr(sb, _("commit object"));
+   strbuf_addstr(sb, "commit object");
}
free(buf);
 
@@ -332,13 +332,13 @@ static void create_reflog_msg(const unsigned char *sha1, 
struct strbuf *sb)
strbuf_addf(sb, ", %s", show_date(c->date, 0, 
DATE_MODE(SHORT)));
break;
case OBJ_TREE:
-   strbuf_addstr(sb, _("tree object"));
+   strbuf_addstr(sb, "tree object");
break;
case OBJ_BLOB:
-   strbuf_addstr(sb, _("blob object"));
+   strbuf_addstr(sb, "blob object");
break;
case OBJ_TAG:
-   strbuf_addstr(sb, _("other tag object"));
+   strbuf_addstr(sb, "other tag object");
break;
}
strbuf_addch(sb, ')');
-- 
2.12.0



Rework manpage localisation

2017-03-20 Thread Jean-Noel Avila
The patch series has been reworked to remove the manpage localization
task from the main documentation task. The Travis build should be back
to normal, while still retaining the capability to generate localized
man pages.

Right now, there are some limitations with the version of po4a
provided by most linux distributions, so there is a great chance that
the install-man-l10n won't work on most systems.




[PATCH v3 1/2] l10n: Introduce framework for localizing man pages

2017-03-20 Thread Jean-Noel Avila
Providing git in localized version is a good step for general adoption
of the tool. But as of now, if one needs to refer to the manual pages,
they are still confronted to english. The aim is to provide
documentation to users in their own language.

The translation of the source asciidoc files is managed via po4a
driven by the conf file Documentation/po4a.conf.

Only the manpages are generated and installed by using the
`install-man-l10n` target of the Makefile. The localized manpages for
all the translated languages are installed in the man path in their
own language folder, so that they can be accessed by man.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 Documentation/Makefile  | 21 -
 Documentation/po4a.conf |  5 +
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/po4a.conf

diff --git a/Documentation/Makefile b/Documentation/Makefile
index b5be2e2d3..e721c7149 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -1,4 +1,5 @@
 # Guard against environment variables
+MAN1_L10N_TXT =
 MAN1_TXT =
 MAN5_TXT =
 MAN7_TXT =
@@ -10,6 +11,7 @@ OBSOLETE_HTML =
 MAN1_TXT += $(filter-out \
$(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
$(wildcard git-*.txt))
+MAN1_L10N_TXT += $(wildcard po/*/man1/git-*.txt)
 MAN1_TXT += git.txt
 MAN1_TXT += gitk.txt
 MAN1_TXT += gitremote-helpers.txt
@@ -86,6 +88,7 @@ DOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
 DOC_MAN1 = $(patsubst %.txt,%.1,$(MAN1_TXT))
 DOC_MAN5 = $(patsubst %.txt,%.5,$(MAN5_TXT))
 DOC_MAN7 = $(patsubst %.txt,%.7,$(MAN7_TXT))
+DOC_MAN1_L10N = $(patsubst %.txt,%.1,$(MAN1_L10N_TXT))
 
 prefix ?= $(HOME)
 bindir ?= $(prefix)/bin
@@ -209,6 +212,7 @@ endif
 
 ifneq ($(findstring $(MAKEFLAGS),s),s)
 ifndef V
+   QUIET_PO4A  = @echo '   ' PO4A $@;
QUIET_ASCIIDOC  = @echo '   ' ASCIIDOC $@;
QUIET_XMLTO = @echo '   ' XMLTO $@;
QUIET_DB2TEXI   = @echo '   ' DB2TEXI $@;
@@ -234,6 +238,15 @@ man1: $(DOC_MAN1)
 man5: $(DOC_MAN5)
 man7: $(DOC_MAN7)
 
+man_l10n: po4a man1_p_l10n
+po4a: po4a.conf
+   $(QUIET_PO4A)po4a po4a.conf
+
+man1_p_l10n: po4a
+   $(MAKE) man1_l10n
+
+man1_l10n: $(DOC_MAN1_L10N)
+
 info: git.info gitman.info
 
 pdf: user-manual.pdf
@@ -247,6 +260,11 @@ install-man: man
$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir)
$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir)
$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
+   $(MAKE) install-man-l10n
+
+install-man-l10n: $(DOC_MAN1_L10N)
+   $(INSTALL) -d -m 755 $(DESTDIR)$(mandir)/$(firstword $(subst /man1/, 
,$(subst po/,,$<)))/man1
+   $(INSTALL) -m 644 $< $(DESTDIR)$(mandir)$(subst po,,$<)
 
 install-info: info
$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
@@ -323,6 +341,7 @@ clean:
$(RM) technical/*.html technical/api-index.txt
$(RM) $(cmds_txt) $(mergetools_txt) *.made
$(RM) manpage-base-url.xsl
+   $(RM) po/*/*.1 po/*/*.txt
 
 $(MAN_HTML): %.html : %.txt asciidoc.conf
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
@@ -339,7 +358,7 @@ manpage-base-url.xsl: manpage-base-url.xsl.in
 
 %.1 %.5 %.7 : %.xml manpage-base-url.xsl
$(QUIET_XMLTO)$(RM) $@ && \
-   $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
+   $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) -o $(dir $<) man $<
 
 %.xml : %.txt asciidoc.conf
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
diff --git a/Documentation/po4a.conf b/Documentation/po4a.conf
new file mode 100644
index 0..b6ee8b4a6
--- /dev/null
+++ b/Documentation/po4a.conf
@@ -0,0 +1,5 @@
+[po4a_langs] fr
+[po4a_paths] po/documentation.pot $lang:po/documentation.$lang.po
+[options] opt: " -k 80"
+
+[type: asciidoc] ./git-add.txt $lang:./po/$lang/man1/git-add.txt
-- 
2.12.0



[PATCH v3 2/2] l10n: Add git-add.txt to localized man pages

2017-03-20 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 Documentation/po/documentation.fr.po | 1095 ++
 Documentation/po/documentation.pot   |  787 
 2 files changed, 1882 insertions(+)
 create mode 100644 Documentation/po/documentation.fr.po
 create mode 100644 Documentation/po/documentation.pot

diff --git a/Documentation/po/documentation.fr.po 
b/Documentation/po/documentation.fr.po
new file mode 100644
index 0..3017da0c9
--- /dev/null
+++ b/Documentation/po/documentation.fr.po
@@ -0,0 +1,1095 @@
+# French translations for Git Manual Pages.
+# Copyright (C) 2017 Jean-Noël Avila <jn.av...@free.fr>
+# This file is distributed under the same license as the Git package.
+# Jean-Noël Avila <jn.av...@free.fr>, 2016.
+msgid ""
+msgstr ""
+"Project-Id-Version: git documentation\n"
+"POT-Creation-Date: 2017-03-03 21:18+0100\n"
+"PO-Revision-Date: 2017-03-15 21:42+0100\n"
+"Last-Translator: Jean-Noël Avila <jn.av...@free.fr>\n"
+"Language-Team: Jean-Noël Avila <jn.av...@free.fr>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: Title =
+#: git-add.txt:2
+#, no-wrap
+msgid "git-add(1)"
+msgstr "git-add(1)"
+
+#. type: Title -
+#: git-add.txt:5
+#, no-wrap
+msgid "NAME"
+msgstr "NOM"
+
+#
+#. type: Plain text
+#: git-add.txt:7
+msgid "git-add - Add file contents to the index"
+msgstr "git-add - Ajoute le contenu de fichiers à l'index"
+
+#. type: Title -
+#: git-add.txt:9
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SYNOPSIS"
+
+#. type: Plain text
+#: git-add.txt:15
+#, no-wrap
+msgid ""
+"'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | 
-i] [--patch | -p]\n"
+"\t  [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]\n"
+"\t  [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing]\n"
+"\t  [--chmod=(+|-)x] [--] [...]\n"
+msgstr ""
+"'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | 
-i] [--patch | -p]\n"
+"\t  [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]\n"
+"\t  [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing]\n"
+"\t  [--chmod=(+|-)x] [--] [<spécification de chemin>...]\n"
+
+#. type: Title -
+#: git-add.txt:17
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIPTION"
+
+#
+#. type: Plain text
+#: git-add.txt:24
+msgid ""
+"This command updates the index using the current content found in the "
+"working tree, to prepare the content staged for the next commit.  It "
+"typically adds the current content of existing paths as a whole, but with "
+"some options it can also be used to add content with only part of the "
+"changes made to the working tree files applied, or remove paths that do not "
+"exist in the working tree anymore."
+msgstr ""
+"Cette commande met à jour l'index en utilisant le contenu actuel trouvé dans "
+"la copie de travail, pour préparer le contenu de la prochaine validation. "
+"Typiquement, elle ajoute intégralement le contenu actuel des chemins "
+"existant, mais peut aussi n'ajouter que certaines parties des modifications "
+"au moyen d'options ou soustraire certains chemins qui n'existent plus dans "
+"la copie de travail."
+
+#
+#. type: Plain text
+#: git-add.txt:30
+msgid ""
+"The \"index\" holds a snapshot of the content of the working tree, and it is "
+"this snapshot that is taken as the contents of the next commit.  Thus after "
+"making any changes to the working tree, and before running the commit "
+"command, you must use the `add` command to add any new or modified files to "
+"the index."
+msgstr ""
+"L'« index » contient un instantané du contenu de la copie de travail et "
+"c'est cet instantané qui sera utilisé comme contenu du prochain commit.  "
+"Ainsi, après avoir réalisé des modifications dans la copie de travail, et "
+"avant de lancer la commande commit, vous devez utiliser la commande `add` "
+"pour ajouter tout fichier nouveau ou modifié à l'index."
+
+#
+#. type: Plain text
+#: git-add.txt:35
+msgid ""
+"This command can be performed multiple times before a commit.  It only adds "
+"the content of the specified file(s) at the time the add command is run; if "
+"you want subsequent changes included in the next commit, then you must run "
+"`git

[PATCH v2 2/2] l10n: Add git-add.txt to localized man pages

2017-03-18 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 Documentation/po/documentation.fr.po | 1095 ++
 Documentation/po/documentation.pot   |  787 
 2 files changed, 1882 insertions(+)
 create mode 100644 Documentation/po/documentation.fr.po
 create mode 100644 Documentation/po/documentation.pot

diff --git a/Documentation/po/documentation.fr.po 
b/Documentation/po/documentation.fr.po
new file mode 100644
index 0..3017da0c9
--- /dev/null
+++ b/Documentation/po/documentation.fr.po
@@ -0,0 +1,1095 @@
+# French translations for Git Manual Pages.
+# Copyright (C) 2017 Jean-Noël Avila <jn.av...@free.fr>
+# This file is distributed under the same license as the Git package.
+# Jean-Noël Avila <jn.av...@free.fr>, 2016.
+msgid ""
+msgstr ""
+"Project-Id-Version: git documentation\n"
+"POT-Creation-Date: 2017-03-03 21:18+0100\n"
+"PO-Revision-Date: 2017-03-15 21:42+0100\n"
+"Last-Translator: Jean-Noël Avila <jn.av...@free.fr>\n"
+"Language-Team: Jean-Noël Avila <jn.av...@free.fr>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: Title =
+#: git-add.txt:2
+#, no-wrap
+msgid "git-add(1)"
+msgstr "git-add(1)"
+
+#. type: Title -
+#: git-add.txt:5
+#, no-wrap
+msgid "NAME"
+msgstr "NOM"
+
+#
+#. type: Plain text
+#: git-add.txt:7
+msgid "git-add - Add file contents to the index"
+msgstr "git-add - Ajoute le contenu de fichiers à l'index"
+
+#. type: Title -
+#: git-add.txt:9
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SYNOPSIS"
+
+#. type: Plain text
+#: git-add.txt:15
+#, no-wrap
+msgid ""
+"'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | 
-i] [--patch | -p]\n"
+"\t  [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]\n"
+"\t  [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing]\n"
+"\t  [--chmod=(+|-)x] [--] [...]\n"
+msgstr ""
+"'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | 
-i] [--patch | -p]\n"
+"\t  [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]\n"
+"\t  [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing]\n"
+"\t  [--chmod=(+|-)x] [--] [<spécification de chemin>...]\n"
+
+#. type: Title -
+#: git-add.txt:17
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIPTION"
+
+#
+#. type: Plain text
+#: git-add.txt:24
+msgid ""
+"This command updates the index using the current content found in the "
+"working tree, to prepare the content staged for the next commit.  It "
+"typically adds the current content of existing paths as a whole, but with "
+"some options it can also be used to add content with only part of the "
+"changes made to the working tree files applied, or remove paths that do not "
+"exist in the working tree anymore."
+msgstr ""
+"Cette commande met à jour l'index en utilisant le contenu actuel trouvé dans "
+"la copie de travail, pour préparer le contenu de la prochaine validation. "
+"Typiquement, elle ajoute intégralement le contenu actuel des chemins "
+"existant, mais peut aussi n'ajouter que certaines parties des modifications "
+"au moyen d'options ou soustraire certains chemins qui n'existent plus dans "
+"la copie de travail."
+
+#
+#. type: Plain text
+#: git-add.txt:30
+msgid ""
+"The \"index\" holds a snapshot of the content of the working tree, and it is "
+"this snapshot that is taken as the contents of the next commit.  Thus after "
+"making any changes to the working tree, and before running the commit "
+"command, you must use the `add` command to add any new or modified files to "
+"the index."
+msgstr ""
+"L'« index » contient un instantané du contenu de la copie de travail et "
+"c'est cet instantané qui sera utilisé comme contenu du prochain commit.  "
+"Ainsi, après avoir réalisé des modifications dans la copie de travail, et "
+"avant de lancer la commande commit, vous devez utiliser la commande `add` "
+"pour ajouter tout fichier nouveau ou modifié à l'index."
+
+#
+#. type: Plain text
+#: git-add.txt:35
+msgid ""
+"This command can be performed multiple times before a commit.  It only adds "
+"the content of the specified file(s) at the time the add command is run; if "
+"you want subsequent changes included in the next commit, then you must run "
+"`git

[PATCH v2 1/2] l10n: Introduce framework for localizing man pages

2017-03-18 Thread Jean-Noel Avila
Providing git in localized version is a good step for general adoption
of the tool. But as of now, if one needs to refer to the manual pages,
they are still confronted to english. The aim is to provide
documentation to users in their own language.

signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 Documentation/Makefile  | 23 +--
 Documentation/po4a.conf |  5 +
 2 files changed, 26 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/po4a.conf

diff --git a/Documentation/Makefile b/Documentation/Makefile
index b5be2e2d3..1f71c0b80 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -1,4 +1,5 @@
 # Guard against environment variables
+MAN1_L10N_TXT =
 MAN1_TXT =
 MAN5_TXT =
 MAN7_TXT =
@@ -10,6 +11,7 @@ OBSOLETE_HTML =
 MAN1_TXT += $(filter-out \
$(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
$(wildcard git-*.txt))
+MAN1_L10N_TXT += $(wildcard po/*/man1/git-*.txt)
 MAN1_TXT += git.txt
 MAN1_TXT += gitk.txt
 MAN1_TXT += gitremote-helpers.txt
@@ -86,6 +88,7 @@ DOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
 DOC_MAN1 = $(patsubst %.txt,%.1,$(MAN1_TXT))
 DOC_MAN5 = $(patsubst %.txt,%.5,$(MAN5_TXT))
 DOC_MAN7 = $(patsubst %.txt,%.7,$(MAN7_TXT))
+DOC_MAN1_L10N = $(patsubst %.txt,%.1,$(MAN1_L10N_TXT))
 
 prefix ?= $(HOME)
 bindir ?= $(prefix)/bin
@@ -209,6 +212,7 @@ endif
 
 ifneq ($(findstring $(MAKEFLAGS),s),s)
 ifndef V
+   QUIET_PO4A  = @echo '   ' PO4A $@;
QUIET_ASCIIDOC  = @echo '   ' ASCIIDOC $@;
QUIET_XMLTO = @echo '   ' XMLTO $@;
QUIET_DB2TEXI   = @echo '   ' DB2TEXI $@;
@@ -229,11 +233,20 @@ all: html man
 
 html: $(DOC_HTML)
 
-man: man1 man5 man7
+man: man1 man5 man7 man_l10n
 man1: $(DOC_MAN1)
 man5: $(DOC_MAN5)
 man7: $(DOC_MAN7)
 
+man_l10n: po4a man1_p_l10n
+po4a: po4a.conf
+   $(QUIET_PO4A)po4a po4a.conf
+
+man1_p_l10n: po4a
+   $(MAKE) man1_l10n
+
+man1_l10n: $(DOC_MAN1_L10N)
+
 info: git.info gitman.info
 
 pdf: user-manual.pdf
@@ -247,6 +260,11 @@ install-man: man
$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir)
$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir)
$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
+   $(MAKE) install-man-l10n
+
+install-man-l10n: $(DOC_MAN1_L10N)
+   $(INSTALL) -d -m 755 $(DESTDIR)$(mandir)/$(firstword $(subst /man1/, 
,$(subst po/,,$<)))/man1
+   $(INSTALL) -m 644 $< $(DESTDIR)$(mandir)$(subst po,,$<)
 
 install-info: info
$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
@@ -323,6 +341,7 @@ clean:
$(RM) technical/*.html technical/api-index.txt
$(RM) $(cmds_txt) $(mergetools_txt) *.made
$(RM) manpage-base-url.xsl
+   $(RM) po/*/*.1 po/*/*.txt
 
 $(MAN_HTML): %.html : %.txt asciidoc.conf
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
@@ -339,7 +358,7 @@ manpage-base-url.xsl: manpage-base-url.xsl.in
 
 %.1 %.5 %.7 : %.xml manpage-base-url.xsl
$(QUIET_XMLTO)$(RM) $@ && \
-   $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
+   $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) -o $(dir $<) man $<
 
 %.xml : %.txt asciidoc.conf
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
diff --git a/Documentation/po4a.conf b/Documentation/po4a.conf
new file mode 100644
index 0..b6ee8b4a6
--- /dev/null
+++ b/Documentation/po4a.conf
@@ -0,0 +1,5 @@
+[po4a_langs] fr
+[po4a_paths] po/documentation.pot $lang:po/documentation.$lang.po
+[options] opt: " -k 80"
+
+[type: asciidoc] ./git-add.txt $lang:./po/$lang/man1/git-add.txt
-- 
2.12.0



[PATCH] l10n: add framework for localizing the manpages

2017-03-12 Thread Jean-Noel Avila
Providing git in localized version is a good step for general adoption
of the tool. But as of now, if one needs to refer to the manual pages,
they are still confronted to english. The aim is to provide
documentation to users in their own language.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 Documentation/Makefile   |   23 +-
 Documentation/po/documentation.fr.po | 1095 ++
 Documentation/po/documentation.pot   |  787 
 Documentation/po4a.conf  |5 +
 4 files changed, 1908 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/po/documentation.fr.po
 create mode 100644 Documentation/po/documentation.pot
 create mode 100644 Documentation/po4a.conf

diff --git a/Documentation/Makefile b/Documentation/Makefile
index b5be2e2d3..630384354 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -1,4 +1,5 @@
 # Guard against environment variables
+MAN1_L10N_TXT =
 MAN1_TXT =
 MAN5_TXT =
 MAN7_TXT =
@@ -10,6 +11,7 @@ OBSOLETE_HTML =
 MAN1_TXT += $(filter-out \
$(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
$(wildcard git-*.txt))
+MAN1_L10N_TXT += $(wildcard po/*/man1/git-*.txt)
 MAN1_TXT += git.txt
 MAN1_TXT += gitk.txt
 MAN1_TXT += gitremote-helpers.txt
@@ -86,6 +88,7 @@ DOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
 DOC_MAN1 = $(patsubst %.txt,%.1,$(MAN1_TXT))
 DOC_MAN5 = $(patsubst %.txt,%.5,$(MAN5_TXT))
 DOC_MAN7 = $(patsubst %.txt,%.7,$(MAN7_TXT))
+DOC_MAN1_L10N = $(patsubst %.txt,%.1,$(MAN1_L10N_TXT))
 
 prefix ?= $(HOME)
 bindir ?= $(prefix)/bin
@@ -209,6 +212,7 @@ endif
 
 ifneq ($(findstring $(MAKEFLAGS),s),s)
 ifndef V
+   QUIET_PO4A  = @echo '   ' PO4A $@;
QUIET_ASCIIDOC  = @echo '   ' ASCIIDOC $@;
QUIET_XMLTO = @echo '   ' XMLTO $@;
QUIET_DB2TEXI   = @echo '   ' DB2TEXI $@;
@@ -229,11 +233,20 @@ all: html man
 
 html: $(DOC_HTML)
 
-man: man1 man5 man7
+man: man1 man5 man7 man_l10n
 man1: $(DOC_MAN1)
 man5: $(DOC_MAN5)
 man7: $(DOC_MAN7)
 
+man_l10n: po4a man1_p_l10n
+po4a: po4a.conf
+   $(QUIET_PO4A)po4a po4a.conf
+
+man1_p_l10n: po4a
+   $(MAKE) man1_l10n
+
+man1_l10n: $(DOC_MAN1_L10N)
+
 info: git.info gitman.info
 
 pdf: user-manual.pdf
@@ -247,6 +260,11 @@ install-man: man
$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir)
$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir)
$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
+   $(MAKE) install-man-l10n
+
+install-man-l10n: $(DOC_MAN1_L10N)
+   $(INSTALL) -d -m 755 $(DESTDIR)$(mandir)/$(firstword $(subst /man1/, 
,$(subst po/,,$<)))/man1
+   $(INSTALL) -m 644 $< $(DESTDIR)$(mandir)$(subst po,,$<)
 
 install-info: info
$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
@@ -323,6 +341,7 @@ clean:
$(RM) technical/*.html technical/api-index.txt
$(RM) $(cmds_txt) $(mergetools_txt) *.made
$(RM) manpage-base-url.xsl
+   $(RM) po/*/*.1 po/*/*.txt 
 
 $(MAN_HTML): %.html : %.txt asciidoc.conf
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
@@ -339,7 +358,7 @@ manpage-base-url.xsl: manpage-base-url.xsl.in
 
 %.1 %.5 %.7 : %.xml manpage-base-url.xsl
$(QUIET_XMLTO)$(RM) $@ && \
-   $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
+   $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) -o $(dir $<) man $<
 
 %.xml : %.txt asciidoc.conf
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
diff --git a/Documentation/po/documentation.fr.po 
b/Documentation/po/documentation.fr.po
new file mode 100644
index 0..db23bd796
--- /dev/null
+++ b/Documentation/po/documentation.fr.po
@@ -0,0 +1,1095 @@
+# French translations for Git Manual Pages.
+# Copyright (C) 2017 Jean-Noël Avila <jn.av...@free.fr>
+# This file is distributed under the same license as the Git package.
+# Jean-Noël Avila <jn.av...@free.fr>, 2016.
+msgid ""
+msgstr ""
+"Project-Id-Version: git documentation\n"
+"POT-Creation-Date: 2017-03-03 21:18+0100\n"
+"PO-Revision-Date: 2017-03-11 23:00+0100\n"
+"Last-Translator: Jean-Noël Avila <jn.av...@free.fr>\n"
+"Language-Team: Jean-Noël Avila <jn.av...@free.fr>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: Title =
+#: git-add.txt:2
+#, no-wrap
+msgid "git-add(1)"
+msgstr "git-add(1)"
+
+#. type: Title -
+#: git-add.txt:5
+#, no-wrap
+msgid "NAME"
+msgstr "NOM"
+
+#
+#. type: Plain text
+#: git-add.txt:7
+msgid "git-add - Add file contents to the index"
+msgstr "git-add - Ajoute le contenu de fichiers à l'index"
+
+#. type: Title -
+#: git-add.txt:9
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SYNOPSIS"
+
+#. type: Plain text
+#: git-add.txt:15
+#, no-

[PATCH] l10n: add framework for localizing the manpages

2017-03-12 Thread Jean-Noel Avila

This is first attempt at starting the internationalisation of the git
man pages. For now, only man pages are generated, only for git-add and
only in french. The chosen tool for this is po4a (PO for anything)
which can ingest asciidoc files and spit po files for each structural
entity. Then from the translated po files, the translated asciidoc
files are merged.

The main advantage of po files over plain translated files is the
ability to track changes in the original version and the fact that
maybe the translators of git can more easily pick up the task with
tools they already know. Po4a is ready for the simple addition of new
languages.

The problem with po4a is that we don't know before hand how many files
are created (it depends on the percentage of translated strings). This
leads to invoke make recursively to have the list of available files
after running po4a to actually process the generated asciidoc files.


[PATCH 1/3] i18n: fix typos for translation

2016-08-21 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 bisect.c| 10 +-
 sequencer.c |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/bisect.c b/bisect.c
index 6f512c2..b9a0701 100644
--- a/bisect.c
+++ b/bisect.c
@@ -760,7 +760,7 @@ static void handle_skipped_merge_base(const unsigned char 
*mb)
char *bad_hex = oid_to_hex(current_bad_oid);
char *good_hex = join_sha1_array_hex(_revs, ' ');
 
-   warning(_("the merge base between %s and [%s] "
+   warning(_("The merge base between %s and [%s] "
"must be skipped.\n"
"So we cannot be sure the first %s commit is "
"between %s and %s.\n"
@@ -846,7 +846,7 @@ static void check_good_are_ancestors_of_bad(const char 
*prefix, int no_checkout)
int fd;
 
if (!current_bad_oid)
-   die(_("a %s revision is needed"), term_bad);
+   die(_("A %s revision is needed"), term_bad);
 
/* Check if file BISECT_ANCESTORS_OK exists. */
if (!stat(filename, ) && S_ISREG(st.st_mode))
@@ -863,7 +863,7 @@ static void check_good_are_ancestors_of_bad(const char 
*prefix, int no_checkout)
/* Create file BISECT_ANCESTORS_OK. */
fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY, 0600);
if (fd < 0)
-   warning_errno(_("could not create file '%s'"),
+   warning_errno(_("Could not create file '%s'"),
  filename);
else
close(fd);
@@ -914,7 +914,7 @@ void read_bisect_terms(const char **read_bad, const char 
**read_good)
*read_good = "good";
return;
} else {
-   die_errno(_("could not read file '%s'"), filename);
+   die_errno(_("Could not read file '%s'"), filename);
}
} else {
strbuf_getline_lf(, fp);
@@ -944,7 +944,7 @@ int bisect_next_all(const char *prefix, int no_checkout)
 
read_bisect_terms(_bad, _good);
if (read_bisect_refs())
-   die(_("reading bisect refs failed"));
+   die(_("Reading bisect refs failed"));
 
check_good_are_ancestors_of_bad(prefix, no_checkout);
 
diff --git a/sequencer.c b/sequencer.c
index 2e9c7d0..3804fa9 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -702,7 +702,7 @@ static struct commit *parse_insn_line(char *bol, char *eol, 
struct replay_opts *
if (action != opts->action) {
if (action == REPLAY_REVERT)
  error((opts->action == REPLAY_REVERT)
-   ? _("Cannot revert during a another revert.")
+   ? _("Cannot revert during another revert.")
: _("Cannot revert during a cherry-pick."));
else
  error((opts->action == REPLAY_REVERT)
-- 
2.10.0.rc0.37.gd7d1c14.dirty

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/3] i18n: fix git rebase interactive commit messages

2016-08-21 Thread Jean-Noel Avila
For proper i18n, the logic cannot embed english specific processing.

Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 git-rebase--interactive.sh | 16 
 1 file changed, 16 deletions(-)

diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index e2da524..7baf5f4 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -415,14 +415,6 @@ this_nth_commit_message () {
8) gettext "This is the 8th commit message:";;
9) gettext "This is the 9th commit message:";;
10) gettext "This is the 10th commit message:";;
-   # TRANSLATORS: if the language you are translating into
-   # doesn't allow you to compose a sentence in this fashion,
-   # consider translating as if this and the following few strings
-   # were "This is the commit message ${n}:"
-   *1[0-9]|*[04-9]) eval_gettext "This is the \${n}th commit message:";;
-   *1) eval_gettext "This is the \${n}st commit message:";;
-   *2) eval_gettext "This is the \${n}nd commit message:";;
-   *3) eval_gettext "This is the \${n}rd commit message:";;
*) eval_gettext "This is the commit message \${n}:";;
esac
 }
@@ -439,14 +431,6 @@ skip_nth_commit_message () {
8) gettext "The 8th commit message will be skipped:";;
9) gettext "The 9th commit message will be skipped:";;
10) gettext "The 10th commit message will be skipped:";;
-   # TRANSLATORS: if the language you are translating into
-   # doesn't allow you to compose a sentence in this fashion,
-   # consider translating as if this and the following few strings
-   # were "The commit message ${n} will be skipped:"
-   *1[0-9]|*[04-9]) eval_gettext "The \${n}th commit message will be 
skipped:";;
-   *1) eval_gettext "The \${n}st commit message will be skipped:";;
-   *2) eval_gettext "The \${n}nd commit message will be skipped:";;
-   *3) eval_gettext "The \${n}rd commit message will be skipped:";;
*) eval_gettext "The commit message \${n} will be skipped:";;
esac
 }
-- 
2.10.0.rc0.37.gd7d1c14.dirty

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/3] i18n: simplify numeric error reporting

2016-08-21 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 config.c | 43 +++
 1 file changed, 15 insertions(+), 28 deletions(-)

diff --git a/config.c b/config.c
index 584cacf..e33c703 100644
--- a/config.c
+++ b/config.c
@@ -655,43 +655,30 @@ static void die_bad_number(const char *name, const char 
*value)
if (!value)
value = "";
 
+   const char * error_type = (errno == ERANGE)? _("out of 
range"):_("invalid unit");
if (!(cf && cf->name))
-   die(errno == ERANGE
-   ? _("bad numeric config value '%s' for '%s': out of range")
-   : _("bad numeric config value '%s' for '%s': invalid unit"),
-   value, name);
+   die(_("bad numeric config value '%s' for '%s': %s"),
+   value, name, error_type);
 
switch (cf->origin_type) {
case CONFIG_ORIGIN_BLOB:
-   die(errno == ERANGE
-   ? _("bad numeric config value '%s' for '%s' in blob %s: out 
of range")
-   : _("bad numeric config value '%s' for '%s' in blob %s: 
invalid unit"),
-   value, name, cf->name);
+   die(_("bad numeric config value '%s' for '%s' in blob %s: %s"),
+   value, name, cf->name, error_type);
case CONFIG_ORIGIN_FILE:
-   die(errno == ERANGE
-   ? _("bad numeric config value '%s' for '%s' in file %s: out 
of range")
-   : _("bad numeric config value '%s' for '%s' in file %s: 
invalid unit"),
-   value, name, cf->name);
+   die(_("bad numeric config value '%s' for '%s' in file %s: %s"),
+   value, name, cf->name, error_type);
case CONFIG_ORIGIN_STDIN:
-   die(errno == ERANGE
-   ? _("bad numeric config value '%s' for '%s' in standard 
input: out of range")
-   : _("bad numeric config value '%s' for '%s' in standard 
input: invalid unit"),
-   value, name);
+   die(_("bad numeric config value '%s' for '%s' in standard 
input: %s"),
+   value, name, error_type);
case CONFIG_ORIGIN_SUBMODULE_BLOB:
-   die(errno == ERANGE
-   ? _("bad numeric config value '%s' for '%s' in 
submodule-blob %s: out of range")
-   : _("bad numeric config value '%s' for '%s' in 
submodule-blob %s: invalid unit"),
-   value, name, cf->name);
+   die(_("bad numeric config value '%s' for '%s' in submodule-blob 
%s: %s"),
+   value, name, cf->name, error_type);
case CONFIG_ORIGIN_CMDLINE:
-   die(errno == ERANGE
-   ? _("bad numeric config value '%s' for '%s' in command line 
%s: out of range")
-   : _("bad numeric config value '%s' for '%s' in command line 
%s: invalid unit"),
-   value, name, cf->name);
+   die(_("bad numeric config value '%s' for '%s' in command line 
%s: %s"),
+   value, name, cf->name, error_type);
default:
-   die(errno == ERANGE
-   ? _("bad numeric config value '%s' for '%s' in %s: out of 
range")
-   : _("bad numeric config value '%s' for '%s' in %s: invalid 
unit"),
-   value, name, cf->name);
+   die(_("bad numeric config value '%s' for '%s' in %s: %s"),
+   value, name, cf->name, error_type);
}
 }
 
-- 
2.10.0.rc0.37.gd7d1c14.dirty

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] gitk: fr.po: Update translation (311t)

2016-01-29 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 po/fr.po | 761 +++
 1 file changed, 373 insertions(+), 388 deletions(-)

diff --git a/po/fr.po b/po/fr.po
index 80f72fb..2e55c89 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the gitk package.
 # Translators:
 # Emmanuel Trillaud <etrill...@gmail.com>
-#
+# Jean-Noël Avila <jn.av...@free.fr>
 msgid ""
 msgstr ""
 "Project-Id-Version: gitk\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-05-17 14:32+1000\n"
-"PO-Revision-Date: 2009-11-19 22:13+0100\n"
-"Last-Translator: Emmanuel Trillaud <etrill...@gmail.com>\n"
+"POT-Creation-Date: 2016-01-22 22:04+0100\n"
+"PO-Revision-Date: 2016-01-22 23:05+0100\n"
+"Last-Translator: Jean-Noël Avila <jn.av...@free.fr>\n"
 "Language-Team: git@vger.kernel.org\n"
 "Language: \n"
 "MIME-Version: 1.0\n"
@@ -23,13 +23,13 @@ msgstr ""
 msgid "Couldn't get list of unmerged files:"
 msgstr "Impossible de récupérer la liste des fichiers non fusionnés :"
 
-#: gitk:212 gitk:2381
+#: gitk:212 gitk:2399
 msgid "Color words"
-msgstr ""
+msgstr "Colorier les mots différents"
 
-#: gitk:217 gitk:2381 gitk:8220 gitk:8253
+#: gitk:217 gitk:2399 gitk:8239 gitk:8272
 msgid "Markup words"
-msgstr ""
+msgstr "Marquer les mots différents"
 
 #: gitk:324
 msgid "Error parsing revisions:"
@@ -47,13 +47,10 @@ msgstr ""
 
 # FIXME : améliorer la traduction de 'file limite'
 #: gitk:396
-#, fuzzy
 msgid ""
 "No files selected: --merge specified but no unmerged files are within file "
 "limit."
-msgstr ""
-"Aucun fichier sélectionné : --merge précisé mais aucun fichier non fusionné "
-"n'est dans la limite des fichiers."
+msgstr "Aucun fichier sélectionné : --merge précisé mais aucun fichier non 
fusionné n'est dans la limite des fichiers."
 
 #: gitk:418 gitk:566
 msgid "Error executing git log:"
@@ -63,15 +60,15 @@ msgstr "Erreur à l'exécution de git log :"
 msgid "Reading"
 msgstr "Lecture en cours"
 
-#: gitk:496 gitk:4525
+#: gitk:496 gitk:4544
 msgid "Reading commits..."
 msgstr "Lecture des commits..."
 
-#: gitk:499 gitk:1637 gitk:4528
+#: gitk:499 gitk:1637 gitk:4547
 msgid "No commits selected"
 msgstr "Aucun commit sélectionné"
 
-#: gitk:1445 gitk:4045 gitk:12432
+#: gitk:1445 gitk:4064 gitk:12469
 msgid "Command line"
 msgstr "Ligne de commande"
 
@@ -83,290 +80,294 @@ msgstr "Impossible de lire la sortie de git log :"
 msgid "No commit information available"
 msgstr "Aucune information disponible sur le commit"
 
-#: gitk:1903 gitk:1932 gitk:4315 gitk:9669 gitk:11241 gitk:11521
+#: gitk:1903 gitk:1932 gitk:4334 gitk:9702 gitk:11274 gitk:11554
 msgid "OK"
 msgstr "OK"
 
-#: gitk:1934 gitk:4317 gitk:9196 gitk:9275 gitk:9391 gitk:9440 gitk:9671
-#: gitk:11242 gitk:11522
+#: gitk:1934 gitk:4336 gitk:9215 gitk:9294 gitk:9424 gitk:9473 gitk:9704
+#: gitk:11275 gitk:11555
 msgid "Cancel"
 msgstr "Annuler"
 
-#: gitk:2069
+#: gitk:2083
 msgid ""
 msgstr "Mise à jour"
 
-#: gitk:2070
+#: gitk:2084
 msgid ""
 msgstr "Recharger"
 
-#: gitk:2071
+#: gitk:2085
 msgid "Reread re"
 msgstr "Relire les références"
 
-#: gitk:2072
+#: gitk:2086
 msgid " references"
 msgstr "Lister les références"
 
-#: gitk:2074
+#: gitk:2088
 msgid "Start git "
 msgstr "Démarrer git gui"
 
-#: gitk:2076
+#: gitk:2090
 msgid ""
 msgstr "Quitter"
 
-#: gitk:2068
+#: gitk:2082
 msgid ""
 msgstr "Fichier"
 
-#: gitk:2080
+#: gitk:2094
 msgid ""
 msgstr "Préférences"
 
-#: gitk:2079
+#: gitk:2093
 msgid ""
 msgstr "Éditer"
 
-#: gitk:2084
+#: gitk:2098
 msgid " view..."
 msgstr "Nouvelle vue..."
 
-#: gitk:2085
+#: gitk:2099
 msgid " view..."
 msgstr "Éditer la vue..."
 
-#: gitk:2086
+#: gitk:2100
 msgid " view"
 msgstr "Supprimer la vue"
 
-#: gitk:2088 gitk:4043
+#: gitk:2102
 msgid " files"
 msgstr "Tous les fichiers"
 
-#: gitk:2083 gitk:4067
+#: gitk:2097
 msgid ""
 msgstr "Vue"
 
-#: gitk:2093 gitk:2103 gitk:3012
+#: gitk:2107 gitk:2117
 msgid " gitk"
 msgstr "À propos de gitk"
 
-#: gitk:2094 gitk:2108
+#: gitk:2108 gitk:2122
 msgid " bindings"
 msgstr "Raccourcis clavier"
 
-#: gitk:2092 gitk:2107
+#: gitk:2106 gitk:

[PATCH 2/2] gitk: fr.po: Sync translations with git

2016-01-29 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 po/fr.po | 96 +++-
 1 file changed, 46 insertions(+), 50 deletions(-)

diff --git a/po/fr.po b/po/fr.po
index 2e55c89..c44f994 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: gitk\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-01-22 22:04+0100\n"
-"PO-Revision-Date: 2016-01-22 23:05+0100\n"
+"PO-Revision-Date: 2016-01-22 23:28+0100\n"
 "Last-Translator: Jean-Noël Avila <jn.av...@free.fr>\n"
 "Language-Team: git@vger.kernel.org\n"
 "Language: \n"
@@ -95,27 +95,27 @@ msgstr "Mise à jour"
 
 #: gitk:2084
 msgid ""
-msgstr "Recharger"
+msgstr ""
 
 #: gitk:2085
 msgid "Reread re"
-msgstr "Relire les références"
+msgstr "Relire les réérences"
 
 #: gitk:2086
 msgid " references"
-msgstr "Lister les références"
+msgstr " les références"
 
 #: gitk:2088
 msgid "Start git "
-msgstr "Démarrer git gui"
+msgstr "Démarrer git "
 
 #: gitk:2090
 msgid ""
-msgstr "Quitter"
+msgstr ""
 
 #: gitk:2082
 msgid ""
-msgstr "Fichier"
+msgstr ""
 
 #: gitk:2094
 msgid ""
@@ -123,15 +123,15 @@ msgstr "Préférences"
 
 #: gitk:2093
 msgid ""
-msgstr "Éditer"
+msgstr "&Éditer"
 
 #: gitk:2098
 msgid " view..."
-msgstr "Nouvelle vue..."
+msgstr " vue..."
 
 #: gitk:2099
 msgid " view..."
-msgstr "Éditer la vue..."
+msgstr "&Éditer la vue..."
 
 #: gitk:2100
 msgid " view"
@@ -143,7 +143,7 @@ msgstr "Tous les fichiers"
 
 #: gitk:2097
 msgid ""
-msgstr "Vue"
+msgstr ""
 
 #: gitk:2107 gitk:2117
 msgid " gitk"
@@ -208,7 +208,7 @@ msgstr "Tous les champs"
 
 #: gitk:2332 gitk:4890 gitk:4923 gitk:6805
 msgid "Headline"
-msgstr "Surligner"
+msgstr "Titre"
 
 #: gitk:2333 gitk:4890 gitk:6805 gitk:6935 gitk:7408
 msgid "Comments"
@@ -221,7 +221,7 @@ msgstr "Auteur"
 
 #: gitk:2333 gitk:4890 gitk:6805 gitk:7345
 msgid "Committer"
-msgstr "Auteur du commit"
+msgstr "Validateur"
 
 #: gitk:2367
 msgid "Search"
@@ -261,11 +261,11 @@ msgstr "Arbre"
 
 #: gitk:2635 gitk:2656
 msgid "Diff this -> selected"
-msgstr "Diff entre ceci et la sélection"
+msgstr "Diff ceci -> la sélection"
 
 #: gitk:2636 gitk:2657
 msgid "Diff selected -> this"
-msgstr "Diff entre sélection et ceci"
+msgstr "Diff sélection -> ceci"
 
 #: gitk:2637 gitk:2658
 msgid "Make patch"
@@ -273,7 +273,7 @@ msgstr "Créer patch"
 
 #: gitk:2638 gitk:9273
 msgid "Create tag"
-msgstr "Créer tag"
+msgstr "Créer étiquette"
 
 #: gitk:2639
 msgid "Copy commit summary"
@@ -643,7 +643,7 @@ msgstr "Références (liste d'éléments séparés par des 
espaces) :"
 
 #: gitk:4095
 msgid "Branches & tags:"
-msgstr "Branches & tags :"
+msgstr "Branches & étiquettes :"
 
 #: gitk:4096
 msgid "All refs"
@@ -655,7 +655,7 @@ msgstr "Toutes les branches (locales)"
 
 #: gitk:4098
 msgid "All tags"
-msgstr "Tous les tags"
+msgstr "Toutes les étiquettes"
 
 #: gitk:4099
 msgid "All remote-tracking branches"
@@ -671,7 +671,7 @@ msgstr "Auteur :"
 
 #: gitk:4102
 msgid "Committer:"
-msgstr "Commiteur :"
+msgstr "Validateur :"
 
 #: gitk:4103
 msgid "Commit Message:"
@@ -711,7 +711,7 @@ msgstr ""
 
 #: gitk:4111
 msgid "Since:"
-msgstr "De :"
+msgstr "Depuis :"
 
 #: gitk:4112
 msgid "Until:"
@@ -737,7 +737,6 @@ msgstr "Options diverses :"
 msgid "Strictly sort by date"
 msgstr "Trier par date"
 
-# FIXME : traduction de "branch sides"
 #: gitk:4118
 msgid "Mark branch sides"
 msgstr "Indiquer les côtés des branches"
@@ -804,11 +803,11 @@ msgstr "Pas un ancêtre"
 
 #: gitk:5343
 msgid "Local changes checked in to index but not committed"
-msgstr "Modifications locales enregistrées dans l'index mais non commitées"
+msgstr "Modifications locales enregistrées dans l'index mais non validées"
 
 #: gitk:5379
 msgid "Local uncommitted changes, not checked in to index"
-msgstr "Modifications locales non enregistrées dans l'index et non commitées"
+msgstr "Modifications locales non enregistrées dans l'index et non va

[PATCH 1/2] gitk: fr.po: Update translation (311t)

2016-01-22 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 po/fr.po | 761 +++
 1 file changed, 373 insertions(+), 388 deletions(-)

diff --git a/po/fr.po b/po/fr.po
index 80f72fb..2e55c89 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the gitk package.
 # Translators:
 # Emmanuel Trillaud <etrill...@gmail.com>
-#
+# Jean-Noël Avila <jn.av...@free.fr>
 msgid ""
 msgstr ""
 "Project-Id-Version: gitk\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-05-17 14:32+1000\n"
-"PO-Revision-Date: 2009-11-19 22:13+0100\n"
-"Last-Translator: Emmanuel Trillaud <etrill...@gmail.com>\n"
+"POT-Creation-Date: 2016-01-22 22:04+0100\n"
+"PO-Revision-Date: 2016-01-22 23:05+0100\n"
+"Last-Translator: Jean-Noël Avila <jn.av...@free.fr>\n"
 "Language-Team: git@vger.kernel.org\n"
 "Language: \n"
 "MIME-Version: 1.0\n"
@@ -23,13 +23,13 @@ msgstr ""
 msgid "Couldn't get list of unmerged files:"
 msgstr "Impossible de récupérer la liste des fichiers non fusionnés :"
 
-#: gitk:212 gitk:2381
+#: gitk:212 gitk:2399
 msgid "Color words"
-msgstr ""
+msgstr "Colorier les mots différents"
 
-#: gitk:217 gitk:2381 gitk:8220 gitk:8253
+#: gitk:217 gitk:2399 gitk:8239 gitk:8272
 msgid "Markup words"
-msgstr ""
+msgstr "Marquer les mots différents"
 
 #: gitk:324
 msgid "Error parsing revisions:"
@@ -47,13 +47,10 @@ msgstr ""
 
 # FIXME : améliorer la traduction de 'file limite'
 #: gitk:396
-#, fuzzy
 msgid ""
 "No files selected: --merge specified but no unmerged files are within file "
 "limit."
-msgstr ""
-"Aucun fichier sélectionné : --merge précisé mais aucun fichier non fusionné "
-"n'est dans la limite des fichiers."
+msgstr "Aucun fichier sélectionné : --merge précisé mais aucun fichier non 
fusionné n'est dans la limite des fichiers."
 
 #: gitk:418 gitk:566
 msgid "Error executing git log:"
@@ -63,15 +60,15 @@ msgstr "Erreur à l'exécution de git log :"
 msgid "Reading"
 msgstr "Lecture en cours"
 
-#: gitk:496 gitk:4525
+#: gitk:496 gitk:4544
 msgid "Reading commits..."
 msgstr "Lecture des commits..."
 
-#: gitk:499 gitk:1637 gitk:4528
+#: gitk:499 gitk:1637 gitk:4547
 msgid "No commits selected"
 msgstr "Aucun commit sélectionné"
 
-#: gitk:1445 gitk:4045 gitk:12432
+#: gitk:1445 gitk:4064 gitk:12469
 msgid "Command line"
 msgstr "Ligne de commande"
 
@@ -83,290 +80,294 @@ msgstr "Impossible de lire la sortie de git log :"
 msgid "No commit information available"
 msgstr "Aucune information disponible sur le commit"
 
-#: gitk:1903 gitk:1932 gitk:4315 gitk:9669 gitk:11241 gitk:11521
+#: gitk:1903 gitk:1932 gitk:4334 gitk:9702 gitk:11274 gitk:11554
 msgid "OK"
 msgstr "OK"
 
-#: gitk:1934 gitk:4317 gitk:9196 gitk:9275 gitk:9391 gitk:9440 gitk:9671
-#: gitk:11242 gitk:11522
+#: gitk:1934 gitk:4336 gitk:9215 gitk:9294 gitk:9424 gitk:9473 gitk:9704
+#: gitk:11275 gitk:11555
 msgid "Cancel"
 msgstr "Annuler"
 
-#: gitk:2069
+#: gitk:2083
 msgid ""
 msgstr "Mise à jour"
 
-#: gitk:2070
+#: gitk:2084
 msgid ""
 msgstr "Recharger"
 
-#: gitk:2071
+#: gitk:2085
 msgid "Reread re"
 msgstr "Relire les références"
 
-#: gitk:2072
+#: gitk:2086
 msgid " references"
 msgstr "Lister les références"
 
-#: gitk:2074
+#: gitk:2088
 msgid "Start git "
 msgstr "Démarrer git gui"
 
-#: gitk:2076
+#: gitk:2090
 msgid ""
 msgstr "Quitter"
 
-#: gitk:2068
+#: gitk:2082
 msgid ""
 msgstr "Fichier"
 
-#: gitk:2080
+#: gitk:2094
 msgid ""
 msgstr "Préférences"
 
-#: gitk:2079
+#: gitk:2093
 msgid ""
 msgstr "Éditer"
 
-#: gitk:2084
+#: gitk:2098
 msgid " view..."
 msgstr "Nouvelle vue..."
 
-#: gitk:2085
+#: gitk:2099
 msgid " view..."
 msgstr "Éditer la vue..."
 
-#: gitk:2086
+#: gitk:2100
 msgid " view"
 msgstr "Supprimer la vue"
 
-#: gitk:2088 gitk:4043
+#: gitk:2102
 msgid " files"
 msgstr "Tous les fichiers"
 
-#: gitk:2083 gitk:4067
+#: gitk:2097
 msgid ""
 msgstr "Vue"
 
-#: gitk:2093 gitk:2103 gitk:3012
+#: gitk:2107 gitk:2117
 msgid " gitk"
 msgstr "À propos de gitk"
 
-#: gitk:2094 gitk:2108
+#: gitk:2108 gitk:2122
 msgid " bindings"
 msgstr "Raccourcis clavier"
 
-#: gitk:2092 gitk:2107
+#: gitk:2106 gitk:

[PATCH 2/2] gitk: fr.po: Sync translations with git

2016-01-22 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila <jn.av...@free.fr>
---
 po/fr.po | 96 +++-
 1 file changed, 46 insertions(+), 50 deletions(-)

diff --git a/po/fr.po b/po/fr.po
index 2e55c89..c44f994 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: gitk\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-01-22 22:04+0100\n"
-"PO-Revision-Date: 2016-01-22 23:05+0100\n"
+"PO-Revision-Date: 2016-01-22 23:28+0100\n"
 "Last-Translator: Jean-Noël Avila <jn.av...@free.fr>\n"
 "Language-Team: git@vger.kernel.org\n"
 "Language: \n"
@@ -95,27 +95,27 @@ msgstr "Mise à jour"
 
 #: gitk:2084
 msgid ""
-msgstr "Recharger"
+msgstr ""
 
 #: gitk:2085
 msgid "Reread re"
-msgstr "Relire les références"
+msgstr "Relire les réérences"
 
 #: gitk:2086
 msgid " references"
-msgstr "Lister les références"
+msgstr " les références"
 
 #: gitk:2088
 msgid "Start git "
-msgstr "Démarrer git gui"
+msgstr "Démarrer git "
 
 #: gitk:2090
 msgid ""
-msgstr "Quitter"
+msgstr ""
 
 #: gitk:2082
 msgid ""
-msgstr "Fichier"
+msgstr ""
 
 #: gitk:2094
 msgid ""
@@ -123,15 +123,15 @@ msgstr "Préférences"
 
 #: gitk:2093
 msgid ""
-msgstr "Éditer"
+msgstr "&Éditer"
 
 #: gitk:2098
 msgid " view..."
-msgstr "Nouvelle vue..."
+msgstr " vue..."
 
 #: gitk:2099
 msgid " view..."
-msgstr "Éditer la vue..."
+msgstr "&Éditer la vue..."
 
 #: gitk:2100
 msgid " view"
@@ -143,7 +143,7 @@ msgstr "Tous les fichiers"
 
 #: gitk:2097
 msgid ""
-msgstr "Vue"
+msgstr ""
 
 #: gitk:2107 gitk:2117
 msgid " gitk"
@@ -208,7 +208,7 @@ msgstr "Tous les champs"
 
 #: gitk:2332 gitk:4890 gitk:4923 gitk:6805
 msgid "Headline"
-msgstr "Surligner"
+msgstr "Titre"
 
 #: gitk:2333 gitk:4890 gitk:6805 gitk:6935 gitk:7408
 msgid "Comments"
@@ -221,7 +221,7 @@ msgstr "Auteur"
 
 #: gitk:2333 gitk:4890 gitk:6805 gitk:7345
 msgid "Committer"
-msgstr "Auteur du commit"
+msgstr "Validateur"
 
 #: gitk:2367
 msgid "Search"
@@ -261,11 +261,11 @@ msgstr "Arbre"
 
 #: gitk:2635 gitk:2656
 msgid "Diff this -> selected"
-msgstr "Diff entre ceci et la sélection"
+msgstr "Diff ceci -> la sélection"
 
 #: gitk:2636 gitk:2657
 msgid "Diff selected -> this"
-msgstr "Diff entre sélection et ceci"
+msgstr "Diff sélection -> ceci"
 
 #: gitk:2637 gitk:2658
 msgid "Make patch"
@@ -273,7 +273,7 @@ msgstr "Créer patch"
 
 #: gitk:2638 gitk:9273
 msgid "Create tag"
-msgstr "Créer tag"
+msgstr "Créer étiquette"
 
 #: gitk:2639
 msgid "Copy commit summary"
@@ -643,7 +643,7 @@ msgstr "Références (liste d'éléments séparés par des 
espaces) :"
 
 #: gitk:4095
 msgid "Branches & tags:"
-msgstr "Branches & tags :"
+msgstr "Branches & étiquettes :"
 
 #: gitk:4096
 msgid "All refs"
@@ -655,7 +655,7 @@ msgstr "Toutes les branches (locales)"
 
 #: gitk:4098
 msgid "All tags"
-msgstr "Tous les tags"
+msgstr "Toutes les étiquettes"
 
 #: gitk:4099
 msgid "All remote-tracking branches"
@@ -671,7 +671,7 @@ msgstr "Auteur :"
 
 #: gitk:4102
 msgid "Committer:"
-msgstr "Commiteur :"
+msgstr "Validateur :"
 
 #: gitk:4103
 msgid "Commit Message:"
@@ -711,7 +711,7 @@ msgstr ""
 
 #: gitk:4111
 msgid "Since:"
-msgstr "De :"
+msgstr "Depuis :"
 
 #: gitk:4112
 msgid "Until:"
@@ -737,7 +737,6 @@ msgstr "Options diverses :"
 msgid "Strictly sort by date"
 msgstr "Trier par date"
 
-# FIXME : traduction de "branch sides"
 #: gitk:4118
 msgid "Mark branch sides"
 msgstr "Indiquer les côtés des branches"
@@ -804,11 +803,11 @@ msgstr "Pas un ancêtre"
 
 #: gitk:5343
 msgid "Local changes checked in to index but not committed"
-msgstr "Modifications locales enregistrées dans l'index mais non commitées"
+msgstr "Modifications locales enregistrées dans l'index mais non validées"
 
 #: gitk:5379
 msgid "Local uncommitted changes, not checked in to index"
-msgstr "Modifications locales non enregistrées dans l'index et non commitées"
+msgstr "Modifications locales non enregistrées dans l'index et non va

[PATCHv2] Add hint interactive cleaning

2015-03-01 Thread Jean-Noel Avila
For translators, specify that a  y/N reply is needed.

Signed-off-by: Jean-Noel Avila jn.av...@free.fr
---
 builtin/clean.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/builtin/clean.c b/builtin/clean.c
index 7e7fdcf..98c103f 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -754,7 +754,8 @@ static int ask_each_cmd(void)
/* Ctrl-D should stop removing files */
if (!eof) {
qname = quote_path_relative(item-string, NULL, buf);
-   printf(_(remove %s? ), qname);
+   /* TRANSLATORS: Make sure to keep [y/N] as is */
+   printf(_(Remove %s [y/N]? ), qname);
if (strbuf_getline(confirm, stdin, '\n') != EOF) {
strbuf_trim(confirm);
} else {
-- 
2.3.0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] Add hint for translators for y/n reply.

2015-02-28 Thread Jean-Noel Avila
Signed-off-by: Jean-Noel Avila jn.av...@free.fr
---
 builtin/clean.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/builtin/clean.c b/builtin/clean.c
index 7e7fdcf..2c98661 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -754,6 +754,9 @@ static int ask_each_cmd(void)
/* Ctrl-D should stop removing files */
if (!eof) {
qname = quote_path_relative(item-string, NULL, buf);
+   /*TRANSLATORS: Make sure to include [Y] and [n] in your
+   translation. The program will only accept English input
+   at this point. */
printf(_(remove %s? ), qname);
if (strbuf_getline(confirm, stdin, '\n') != EOF) {
strbuf_trim(confirm);
-- 
2.3.0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html