Re: git-gui: diff/console part does not show UTF-8 Japanese

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano <gitster@xxxxxxxxx> wrote:
> Nanako Shiraishi <nanako3@xxxxxxxxxxxxxx> writes:
> 
> > 	I was testing git-gui (i18n branch).  I can see the translated 
> > message in the UI buttons and menus, and also commit message part shows 
> > Japanese strings, but I cannot get the diff part at the bottom to show 
> > Japanese.  Because I did set the two fonts to the same font from the 
> > Edit/Option menu, I do not think it is the problem with the font 
> > settings.
> >
> > Can anybody help?
> 
> I can see the same breakage in regular git-gui without i18n.
> Curious.  The commit message shows Japanese but diff part is
> bogus.
> 
> And the breakage is not just Japanese.  I can see this with
> Kristian's name by resetting a branch to 12ace0b2 and then
> attempting to amend it.  Interestingly enough, gitk shows the
> patch as expected.  I do not quite know how it is arranged
> there, though.
> 
> Now, I freely admit I do not quite know what I am doing, but
> this patch that tries to mimick the handling of commit log
> message seems to help it for git-gui.
> 
> I do think using i18n.commitencoding for payload is wrong,
> though.

Yea, it is wrong.  The patch is logically fine as-is, there's nothing
wrong with it except this part.  I think the reason that gitk shows
the patch as expected is because it is using i18n.commitencoding
for the payload, and that's only happening as a side-effect of how
it used it for the commit message itself.  Call it dumb luck the
thing even displays right.

To really Do The Right Thing(tm) here I think we need to store an
encoding for each file path so we know what we are looking at when
we see the file content.  E.g. a gitattributes enc attribute?

For some files we might be able to guess.  But I have to admit,
I'm not up on my encoding guessing algorithms.  ;-)

For XML files we can probably guess its XML ("starts with <?xml")
and we can guess the encoding from that header line.  But not
everything that contains Japanese characters is an XML file.
Like .po files for instance.


Where it gets even more interesting is how do I show a patch
where the encoding changed?  E.g. reencode a file from ISO-8859-1
into UTF-8?  A number of lines would probably be identical, except
for their encoding.  So the user would want to see that they are
the same.  So we really should be able to show the old line using
its old encoding, and the new line using its new encoding.  Hmmph.

As a stop-gap I guess I could include a "Change Encoding" option
for the diff pane and let you set the encoding to a specific name.
But I really think git-gui should be able to do better than that.

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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux