diff --git a/src/common/i18n.py b/src/common/i18n.py index e6e7d3f9b1e19ede00f0334e4dff695e239b44a1..94c8fc2ef853f237bee69822985f327af22e85c5 100644 --- a/src/common/i18n.py +++ b/src/common/i18n.py @@ -5,6 +5,7 @@ ## Copyright (C) 2004 Vincent Hanquez <tab AT snarc.org> ## Copyright (C) 2004-2007 Yann Leboulanger <asterix AT lagaule.org> ## Copyright (C) 2005-2006 Nikos Kouremenos <kourem AT gmail.com> +## Copyright (C) 2009 Benjamin Richter <br AT waldteufel-online.net> ## ## This file is part of Gajim. ## @@ -25,6 +26,19 @@ import locale import gettext import os import defs +import unicodedata + +def paragraph_direction_mark(text): + """Determine paragraph writing direction according to + http://www.unicode.org/reports/tr9/#The_Paragraph_Level + + Returns either Unicode LTR mark or RTL mark.""" + for c in text: + bidi = unicodedata.bidirectional(c) + if bidi == 'L': return u'\u200E' + elif bidi == 'AL' or bidi == 'R': return u'\u200F' + + return u'\u200E' APP = 'gajim' DIR = defs.localedir diff --git a/src/roster_window.py b/src/roster_window.py index 69e35c2509bac91f1948ef95049b9f7fbd56dda6..7bc4c1cf1c215dabd19766ca754b12ca4ab4b1d1 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -1113,7 +1113,9 @@ class RosterWindow: if c.show not in ('error', 'offline'): nb_connected_contact += 1 if nb_connected_contact > 1: - name += ' (' + unicode(nb_connected_contact) + ')' + # switch back to default writing direction + name += i18n.paragraph_direction_mark(unicode(name)) + name += u' (%d)' % nb_connected_contact # show (account_name) if there are 2 contact with same jid # in merged mode