Re: [PATCH][GSOC2014] changed logical chain in branch.c to lookup tables

2014-03-11 Thread Tamer TAS
Eric Sunshine wrote
> On Mon, Mar 10, 2014 at 5:47 PM, Tamer TAS <

> tamertas@

> > wrote:
> 
> Section 4.3 of the GNU gettext manual [1] explains the issues in more
> detail. I urge you to read it. The upshot is that translators fare
> best when handed full sentences.
> 
> Note also that your change effectively reverts d53a35032a67 [2], which
> did away with the sort of string composition used in your patch.

Eric thank you for your constructive feedbacks.
I read the section 4.3 of GNU gettext manual and also checked the commit you
mentioned.
It seems like that my previous changes were not internationalization
compatible.
In order for a table-driven change to be compatible, the sentences has to be
meaningful and not tokenized.
I made the following change to the branch.c in order for the function to be
both table-driven and
internationalization compatible. Let me know if there are any oversights on
my part.

Signed-off-by: TamerTas 
---
 branch.c |   39 ---
 1 file changed, 16 insertions(+), 23 deletions(-)

diff --git a/branch.c b/branch.c
index 723a36b..4c04638 100644
--- a/branch.c
+++ b/branch.c
@@ -50,10 +50,25 @@ static int should_setup_rebase(const char *origin)
 void install_branch_config(int flag, const char *local, const char *origin,
const char *remote)
 {
const char *shortname = remote + 11;
+const char *setup_messages[] = {
+   _("Branch %s set up to track remote branch %s from %s."),
+   _("Branch %s set up to track local branch %s."),
+   _("Branch %s set up to track remote ref %s."),
+   _("Branch %s set up to track local ref %s."),
+   _("Branch %s set up to track remote branch %s from %s by 
rebasing."),
+   _("Branch %s set up to track local branch %s by rebasing."),
+   _("Branch %s set up to track remote ref %s by rebasing."),
+   _("Branch %s set up to track local ref %s by rebasing.")
+   }; 
+
int remote_is_branch = starts_with(remote, "refs/heads/");
struct strbuf key = STRBUF_INIT;
int rebasing = should_setup_rebase(origin);
 
+int msg_index = (!!origin   >> 0) +
+   (!!remote_is_branch >> 1) +
+   (!!rebasing >> 2);
+   
if (remote_is_branch
&& !strcmp(local, shortname)
&& !origin) {
@@ -77,29 +92,7 @@ void install_branch_config(int flag, const char *local,
const char *origin, cons
strbuf_release(&key);
 
if (flag & BRANCH_CONFIG_VERBOSE) {
-   if (remote_is_branch && origin)
-   printf_ln(rebasing ?
- _("Branch %s set up to track remote branch %s 
from %s by rebasing.")
:
- _("Branch %s set up to track remote branch %s 
from %s."),
- local, shortname, origin);
-   else if (remote_is_branch && !origin)
-   printf_ln(rebasing ?
- _("Branch %s set up to track local branch %s 
by rebasing.") :
- _("Branch %s set up to track local branch 
%s."),
- local, shortname);
-   else if (!remote_is_branch && origin)
-   printf_ln(rebasing ?
- _("Branch %s set up to track remote ref %s by 
rebasing.") :
- _("Branch %s set up to track remote ref %s."),
- local, remote);
-   else if (!remote_is_branch && !origin)
-   printf_ln(rebasing ?
- _("Branch %s set up to track local ref %s by 
rebasing.") :
- _("Branch %s set up to track local ref %s."),
- local, remote);
-   else
-   die("BUG: impossible combination of %d and %p",
-   remote_is_branch, origin);
+   printf_ln(setup_messages[msg_index], local, remote);
}
 }
 
-- 
1.7.9.5



--
View this message in context: 
http://git.661346.n2.nabble.com/PATCH-GSOC2014-changed-logical-chain-in-branch-c-to-lookup-tables-tp7605343p7605407.html
Sent from the git mailing list archive at Nabble.com.
--
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


Re: [PATCH][GSOC2014] changed logical chain in branch.c to lookup tables

2014-03-10 Thread Tamer TAS
Eric Sunshine wrote
> Even allowing internationalization of them (via N_() in the location[]
> and type[] tables) might not be sufficient since grammatical rules
> differ from language to language.

I didn't fully understand what you meant by that. Since they were being
internationalized before using _() in the if-else bodies, wouldn't it
produce
the same output if I were to use the same method for location[] and type[]
tables?




--
View this message in context: 
http://git.661346.n2.nabble.com/PATCH-GSOC2014-changed-logical-chain-in-branch-c-to-lookup-tables-tp7605343p7605372.html
Sent from the git mailing list archive at Nabble.com.
--
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