monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] 0.26 status update


From: Nathaniel Smith
Subject: Re: [Monotone-devel] 0.26 status update
Date: Wed, 5 Apr 2006 02:08:53 -0700
User-agent: Mutt/1.5.11

On Tue, Apr 04, 2006 at 01:50:18PM +0200, Richard Levitte - VMS Whacker wrote:
> For those having a problem seeing what the characters are, the
> translation of "in" is a down arrow and the translation of "out" is an
> up arrow.  I debugged this as far as I could, and what happens is that
> somewhere internally, those arrows get replaced with a question mark
> ("?").  Now, when several tickers are in action at once, there's a
> requirement that each ticker has a unique title.  Unfortunately, with
> all those arrows becoming question marks, what happens is that you get
> "octets ?" and "octets ?", which is far from unique :-).
> 
> The ticker code itself is not responsible for the question marks, they
> are already there in the strings received by the constructors, and I
> haven't been able to figure much further.

Ah, found it -- the arrows are indeed cute, and are fine in unicode.
But the people seeing problems are using ISO-8859-1 (the default for
fr_FR):
$ grep fr_FR /etc/locale.gen 
fr_FR ISO-8859-1
fr_FR.UTF-8 UTF-8

Thus:

$ LANG=fr_FR mtn pull 
monotone: récupération anonyme; utilisez -kNOMCLEF si
vous avez besoin d'une authentification
monotone: connexion à venge.net
monotone: recherche d'éléments à
synchroniser :
monotone: certificats | clefs | révisions
monotone:       16907 |    22 |      5595
monotone: néfaste: std::logic_error: ui.cc:38: invariant
'I(ui.tickers.find(tickname) == ui.tickers.end())' violated

$ LANG=fr_FR.UTF-8 mtn pull       
monotone: récupération anonyme; utilisez -kNOMCLEF si
vous avez besoin d'une authentification
monotone: connexion à venge.net
monotone: recherche d'éléments à
synchroniser :
monotone: certificats | clefs | révisions
monotone:       16907 |    22 |      5595
monotone: certs ⇩ | octets ⇧ | octets
⇩ | révs ⇩
monotone:     0/0 |   2,7 Ki |   2,5 Ki |    0/0
monotone: échange réussi avec venge.net


The problem is that the arrows have no representation in ISO-8859-1,
and so when gettext transcodes the UTF-8 strings from the message
catalog to match the current locale, it collapses some strings to be
the same.

So, this isn't really even a bug in monotone -- the very best it could
do would be to display two "bytes ?" tickers, which is not very
useful.

The only solution I see is to either remove the use of the arrows
entirely, or else make sure that those translated strings are only
used when the locale actually is UTF-8, and have some other
translation otherwise.

-- Nathaniel

-- 
Eternity is very long, especially towards the end.
  -- Woody Allen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]