Hi there.

I am a long centerim/icq user who have been looking at cim5 development for a while. I saw the updated cim5 screenshot and thought I would give it a try.

I can happily report that it compiles and works out of the box for me on Debian sid. :)

Also; I started looking into the code (I know gtk/glib quite well but have only played around with libncurses and ever looked at libpidgin) and thought I would try to implement a header (the thing with status indicators and so on).

Also added a start of sv.po (but I could not test it for some or other reason)... Apply if you guys want to....

//Jonas Zetterberg
>From 6e70c84cd978e041d9ae6df050c51d9da15f963d Mon Sep 17 00:00:00 2001
From: Jonas Zetterberg <j...@jozz.se>
Date: Wed, 11 Aug 2010 16:45:39 +0200
Subject: [PATCH 1/5] Add LineStyle without borders.

No empty border will be drawn, widgets will draw from 0,0

Signed-off-by: Jonas Zetterberg <j...@jozz.se>
---
 cppconsui/LineStyle.h |    3 ++-
 cppconsui/Panel.cpp   |    3 +++
 cppconsui/Window.cpp  |   34 +++++++++++++++++++++++-----------
 3 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/cppconsui/LineStyle.h b/cppconsui/LineStyle.h
index 9b3af27..fa4ef00 100644
--- a/cppconsui/LineStyle.h
+++ b/cppconsui/LineStyle.h
@@ -42,7 +42,8 @@ class LineStyle
 			ASCII_ROUNDED,
 			LIGHT,
 			LIGHT_ROUNDED,
-			HEAVY
+			HEAVY,
+			NONE
 		};
 
 		LineStyle(Type t = DEFAULT);
diff --git a/cppconsui/Panel.cpp b/cppconsui/Panel.cpp
index 13a9e93..b4393c0 100644
--- a/cppconsui/Panel.cpp
+++ b/cppconsui/Panel.cpp
@@ -52,6 +52,9 @@ void Panel::Draw()
 	if (!area || (realw = area->getmaxx()) == 0 || (realh = area->getmaxy()) == 0)
 		return;
 
+	if (linestyle.GetStyle() == LineStyle::NONE)
+		/* We do not want any lines */
+		return;
 	int attrs = COLORSCHEME->GetColorPair(GetColorScheme(), "panel", "line");
 	area->attron(attrs);
 
diff --git a/cppconsui/Window.cpp b/cppconsui/Window.cpp
index 3965cef..7d6c9d3 100644
--- a/cppconsui/Window.cpp
+++ b/cppconsui/Window.cpp
@@ -48,9 +48,12 @@ void Window::MoveResize(int newx, int newy, int neww, int newh)
 	UpdateArea();
 
 	panel->MoveResize(0, 0, win_w, win_h);
-
-	Container::MoveResize(1, 1, win_w < 2 ? 0 : win_w - 2,
-			win_h < 2 ? 0 : win_h - 2);
+	if (GetBorderStyle() != LineStyle::NONE) {
+		Container::MoveResize(1, 1, win_w < 2 ? 0 : win_w - 2,
+				win_h < 2 ? 0 : win_h - 2);
+	} else {
+		Container::MoveResize(0, 0, win_w, win_h );
+	}
 }
 
 Curses::Window *Window::GetSubPad(const Widget &child, int begin_x,
@@ -63,19 +66,28 @@ Curses::Window *Window::GetSubPad(const Widget &child, int begin_x,
 	if (&child == panel)
 		return area->subpad(begin_x, begin_y, ncols, nlines);
 
-	int realw = area->getmaxx() - 2;
-	int realh = area->getmaxy() - 2;
+	int realw = area->getmaxx();
+	int realh = area->getmaxy();
+	
+	if (GetBorderStyle() != LineStyle::NONE) {
+		// add `+1' offset to normal childs so they can not overwrite the panel
+		begin_x += 1;
+		begin_y += 1;
+		// remove `-2' offset to normal childs so they can not
+		// overwrite the panel
+		realw -= 2;
+		realh -= 2;
+	}
 
 	/* Extend requested subpad to whole panel area or shrink requested area if
 	 * necessary. */
-	if (nlines < 0 || nlines > realh - begin_y)
-		nlines = realh - begin_y;
+	if (nlines < 0 || nlines > realh - begin_y + 1)
+		nlines = realh - begin_y + 1;
 
-	if (ncols < 0 || ncols > realw - begin_x)
-		ncols = realw - begin_x;
+	if (ncols < 0 || ncols > realw - begin_x + 1)
+		ncols = realw - begin_x + 1;
 
-	// add `+1' offset to normal childs so they can not overwrite the panel
-	return area->subpad(begin_x + 1, begin_y + 1, ncols, nlines);
+	return area->subpad(begin_x, begin_y, ncols, nlines);
 }
 
 void Window::SetBorderStyle(LineStyle::Type ltype)
-- 
1.7.1

>From ed8557d5ecc220259ae9e81f69be3762aafd7dc0 Mon Sep 17 00:00:00 2001
From: Jonas Zetterberg <j...@jozz.se>
Date: Wed, 11 Aug 2010 19:50:08 +0200
Subject: [PATCH 2/5] Add signal on status changes.

When a account changes this signal get's sent thrue.

Signed-off-by: Jonas Zetterberg <j...@jozz.se>
---
 src/Accounts.cpp |    1 +
 src/Accounts.h   |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/Accounts.cpp b/src/Accounts.cpp
index 7d61025..7182096 100644
--- a/src/Accounts.cpp
+++ b/src/Accounts.cpp
@@ -58,4 +58,5 @@ void Accounts::status_changed(PurpleAccount *account, PurpleStatus *status)
 			purple_account_get_protocol_name(account),
 			purple_account_get_username(account),
 			purple_status_get_name(status));
+	Instance()->signal_status_changed(account, status);
 }
diff --git a/src/Accounts.h b/src/Accounts.h
index 7b36672..864bf84 100644
--- a/src/Accounts.h
+++ b/src/Accounts.h
@@ -23,6 +23,7 @@
 #define __ACCOUNTS_H__
 
 #include <libpurple/account.h>
+#include <sigc++/sigc++.h>
 
 #define ACCOUNTS (Accounts::Instance())
 
@@ -30,7 +31,9 @@ class Accounts
 {
 	public:
 		static Accounts *Instance();
-
+		
+		sigc::signal<void, PurpleAccount*, PurpleStatus*> signal_status_changed;
+		
 	protected:
 
 	private:
-- 
1.7.1

>From 7fa5fa3b6649bb23c228de6df269d22e2aece52c Mon Sep 17 00:00:00 2001
From: Jonas Zetterberg <j...@jozz.se>
Date: Wed, 11 Aug 2010 19:51:30 +0200
Subject: [PATCH 3/5] Make Status to string indicator its own function.

All classes can now get PidginStatus to [x] indicator from same class.
TODO: This should probably be moved to own class.

Signed-off-by: Jonas Zetterberg <j...@jozz.se>
---
 src/BuddyListNode.cpp |    7 ++++++-
 src/BuddyListNode.h   |    1 +
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/BuddyListNode.cpp b/src/BuddyListNode.cpp
index c001c32..a886751 100644
--- a/src/BuddyListNode.cpp
+++ b/src/BuddyListNode.cpp
@@ -112,9 +112,14 @@ const gchar *BuddyListNode::GetBuddyStatus(PurpleBuddy *buddy) const
 
 	PurplePresence *presence = purple_buddy_get_presence(buddy);
 	PurpleStatus *status = purple_presence_get_active_status(presence);
+	return GetStatusIndicator(status);
+}
+
+/* TODO: This should be moved to a better location */
+const gchar *BuddyListNode::GetStatusIndicator(PurpleStatus *status)
+{
 	PurpleStatusType *status_type = purple_status_get_type(status);
 	PurpleStatusPrimitive prim = purple_status_type_get_primitive(status_type);
-
 	switch (prim) {
 		case PURPLE_STATUS_UNSET:
 			return "[x] ";
diff --git a/src/BuddyListNode.h b/src/BuddyListNode.h
index 3397885..ea92ce0 100644
--- a/src/BuddyListNode.h
+++ b/src/BuddyListNode.h
@@ -45,6 +45,7 @@ class BuddyListNode
 
 		void SetRefNode(TreeView::NodeReference n) { ref = n; }
 		TreeView::NodeReference GetRefNode() const { return ref; }
+		static const gchar *GetStatusIndicator(PurpleStatus *status);
 
 	protected:
 		TreeView::NodeReference ref;
-- 
1.7.1

>From 35c64455af76e53327b1aa7499f3d7142036817d Mon Sep 17 00:00:00 2001
From: Jonas Zetterberg <j...@jozz.se>
Date: Wed, 11 Aug 2010 20:16:41 +0200
Subject: [PATCH 4/5] Add header window with generic information.

This includes CenterIM name and status indicators for all accounts with
changed staus.

Signed-off-by: Jonas Zetterberg <j...@jozz.se>
---
 po/POTFILES.in   |    1 +
 src/CenterIM.cpp |   16 ++++++-
 src/CenterIM.h   |    2 +-
 src/Conf.cpp     |   18 ++++++-
 src/Conf.h       |    1 +
 src/Header.cpp   |  127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/Header.h     |   63 +++++++++++++++++++++++++++
 src/Makefile.am  |    2 +
 8 files changed, 223 insertions(+), 7 deletions(-)
 create mode 100644 src/Header.cpp
 create mode 100644 src/Header.h

diff --git a/po/POTFILES.in b/po/POTFILES.in
index f593bfe..ec3075e 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -14,6 +14,7 @@ src/Conversation.cpp
 src/Conversations.cpp
 src/GeneralMenu.cpp
 src/Log.cpp
+src/Header.cpp
 src/Notify.cpp
 src/Transfers.cpp
 
diff --git a/src/CenterIM.cpp b/src/CenterIM.cpp
index a3902aa..42e8022 100644
--- a/src/CenterIM.cpp
+++ b/src/CenterIM.cpp
@@ -26,6 +26,7 @@
 #include "Conf.h"
 #include "Connections.h"
 #include "Conversations.h"
+#include "Header.h"
 #include "Log.h"
 #include "Notify.h"
 #include "Transfers.h"
@@ -84,12 +85,14 @@ void CenterIM::Run()
 		logbuf = NULL;
 	}
 
+	Header::Instance();
 	Accounts::Instance();
 	Connections::Instance();
 	Notify::Instance();
 
 	// initialize UI
 	Conversations::Instance()->Show();
+	Header::Instance()->Show();
 	// init BuddyList last so it takes the focus
 	BuddyList::Instance()->Show();
 
@@ -342,7 +345,7 @@ void CenterIM::ScreenResized()
 {
 	Rect size = CONF->GetBuddyListDimensions();
 	size.width = (int) (size.width * (mngr->GetScreenWidth() / (double) originalW));
-	size.height = mngr->GetScreenHeight();
+	size.height = mngr->GetScreenHeight() - size.y;
 	areaSizes[BuddyListArea] = size;
 	
 	size = CONF->GetLogDimensions();
@@ -353,14 +356,21 @@ void CenterIM::ScreenResized()
 	areaSizes[LogArea] = size;
 
 	areaSizes[ChatArea].x = areaSizes[BuddyListArea].width;
-	areaSizes[ChatArea].y = 0;
+	areaSizes[ChatArea].y = 1;
 	areaSizes[ChatArea].width = mngr->GetScreenWidth() - areaSizes[ChatArea].x;
-	areaSizes[ChatArea].height = mngr->GetScreenHeight() - areaSizes[LogArea].height;
+	areaSizes[ChatArea].height = 
+		mngr->GetScreenHeight() - (areaSizes[ChatArea].y + areaSizes[LogArea].height);
+
+	areaSizes[HeaderArea].x = 0;
+	areaSizes[HeaderArea].y = 0;
+	areaSizes[HeaderArea].width = mngr->GetScreenWidth();
+	areaSizes[HeaderArea].height = 3;
 
 	areaSizes[WholeArea].x = 0;
 	areaSizes[WholeArea].y = 0;
 	areaSizes[WholeArea].width = mngr->GetScreenWidth();
 	areaSizes[WholeArea].height = mngr->GetScreenHeight();
+
 }
 
 void CenterIM::ActionFocusBuddyList()
diff --git a/src/CenterIM.h b/src/CenterIM.h
index f45f920..25226da 100644
--- a/src/CenterIM.h
+++ b/src/CenterIM.h
@@ -37,7 +37,7 @@ class CenterIM
 : public InputProcessor
 {
 	public:
-		enum ScreenArea {BuddyListArea, LogArea, ChatArea, WholeArea, AreaMax};
+		enum ScreenArea {HeaderArea, BuddyListArea, LogArea, ChatArea, WholeArea, AreaMax};
 
 		static CenterIM *Instance();
 
diff --git a/src/Conf.cpp b/src/Conf.cpp
index 9cf4378..24c47f2 100644
--- a/src/Conf.cpp
+++ b/src/Conf.cpp
@@ -30,6 +30,11 @@
 #define CONF_PERCENTAGE_MIN		0
 #define CONF_PERCENTAGE_MAX		100
 
+#define CONF_HEADER_DIMENSIONS_X	0
+#define CONF_HEADER_DIMENSIONS_Y	0
+#define CONF_HEADER_DIMENSIONS_WIDTH	100
+#define CONF_HEADER_DIMENSIONS_HEIGHT	1
+
 #define CONF_LOG_MAX_LINES_MIN		10
 #define CONF_LOG_MAX_LINES_MAX		100000
 #define CONF_LOG_MAX_LINES_DEFAULT	1000
@@ -40,11 +45,11 @@
 #define CONF_LOG_DIMENSIONS_HEIGHT	16
 
 #define CONF_BUDDYLIST_DIMENSIONS_X		0
-#define CONF_BUDDYLIST_DIMENSIONS_Y		0
+#define CONF_BUDDYLIST_DIMENSIONS_Y		1
 #define CONF_BUDDYLIST_DIMENSIONS_WIDTH		40
-#define CONF_BUDDYLIST_DIMENSIONS_HEIGHT	50
+#define CONF_BUDDYLIST_DIMENSIONS_HEIGHT	40
 
-#define CONF_CHAT_DIMENSIONS_Y		00
+#define CONF_CHAT_DIMENSIONS_Y		10
 #define CONF_CHAT_DIMENSIONS_WIDTH	100
 #define CONF_CHAT_DIMENSIONS_HEIGHT	40
 #define CONF_CHAT_PARTITIONING_DEFAULT 80 /* 20% for the input window */
@@ -182,6 +187,13 @@ void Conf::SetString(const gchar *pref, const gchar *value)
 	Save();
 }
 
+Rect Conf::GetHeaderDimensions(void)
+{
+	return GetDimensions("header/",
+		CONF_HEADER_DIMENSIONS_X, CONF_HEADER_DIMENSIONS_Y,
+		CONF_HEADER_DIMENSIONS_WIDTH, CONF_HEADER_DIMENSIONS_HEIGHT);
+}
+
 Rect Conf::GetLogDimensions(void)
 {
 	return GetDimensions("log/",
diff --git a/src/Conf.h b/src/Conf.h
index b7ec2ef..2d74190 100644
--- a/src/Conf.h
+++ b/src/Conf.h
@@ -67,6 +67,7 @@ class Conf
 		unsigned int GetLogMaxLines(void);
 		unsigned int GetChatPartitioning(void);
 
+		Rect GetHeaderDimensions(void);
 		Rect GetLogDimensions(void);
 		Rect GetBuddyListDimensions(void);
 		Rect GetChatDimensions(void);
diff --git a/src/Header.cpp b/src/Header.cpp
new file mode 100644
index 0000000..5fb65a6
--- /dev/null
+++ b/src/Header.cpp
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2007 by Mark Pustjens <pustj...@dds.nl>
+ * Copyright (C) 2010 by CenterIM developers
+ *
+ * This file is part of CenterIM.
+ *
+ * CenterIM is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CenterIM is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * */
+
+#include "Header.h"
+#include "Accounts.h"
+#include "Log.h"
+#include "BuddyListNode.h" // To get status indicator
+
+#include "Conf.h"
+#include "CenterIM.h"
+#include "Defines.h"
+
+#include <cstring>
+#include "gettext.h"
+
+/* Internal statusitems for list */
+struct HeaderStatusItem {
+	const char *name;
+	Label *label;
+};
+
+Header *Header::Instance()
+{
+	static Header instance;
+	return &instance;
+}
+
+//TODO sensible defaults
+Header::Header()
+: Window(0, 0, 80, 24, TYPE_NON_FOCUSABLE, LineStyle::NONE)
+, statuses(NULL)
+{ 
+	SetColorScheme("panel");
+	container = new Container(30, 2);
+	AddWidget(*container, 0, 0);
+	
+	/* CenterIM name will always be top-left so we can "forget about"
+	 * it... 
+	 */
+	Label *cimname = new Label(_("CenterIm 5"));
+	container->AddWidget(*cimname, 0, 0);
+	
+	Accounts::Instance()->signal_status_changed.connect(sigc::mem_fun(this, &Header::StatusChanged));
+}
+
+Header::~Header()
+{
+	// Delete all HeaderStatusItems
+	for (GList *item = g_list_first(statuses); item; 
+			item = g_list_next(item)) 
+		delete (HeaderStatusItem *)item->data; 
+	// Delete list
+	g_list_free(statuses);
+}
+
+void Header::StatusChanged(PurpleAccount *account, PurpleStatus *status)
+{
+	
+	/* Find already allocated status indicator */
+        const char *pname = purple_account_get_protocol_name(account);
+	HeaderStatusItem *statusitem = NULL;
+	int lpos = width;
+	for (GList *item = g_list_first(statuses); item; 
+			item = g_list_next(item)) {
+		HeaderStatusItem *sitem = (HeaderStatusItem *)item->data;
+		if (strcmp(sitem->name, pname) == 0) {
+			statusitem = sitem;
+			break;
+		}
+		lpos -= (strlen(sitem->label->GetText()) + 1);
+	}
+	/* If not found create a new and add to list */
+	if (!statusitem) {
+		statusitem = new HeaderStatusItem();
+		statusitem->name = pname;
+		statusitem->label = new Label(pname);
+		container->AddWidget(*(statusitem->label), lpos, 0);
+		statuses = g_list_append(statuses, statusitem);
+	}
+	/* Update label */
+	const char *ind = BuddyListNode::GetStatusIndicator(status);
+	char *showname = g_strconcat(pname, ind, NULL);
+	statusitem->label->SetText(showname);
+	/* Free any resources */
+	g_free(showname);
+}
+
+
+void Header::MoveResize(int newx, int newy, int neww, int newh)
+{
+	Window::MoveResize(newx, newy, neww, newh);
+	container->MoveResize(0, 0, width, height);
+	
+	int lblx = width;
+	/* Place all items after one another */
+	for (GList *item = g_list_first(statuses); item; 
+			item = g_list_next(item)) {
+		HeaderStatusItem *sitem = (HeaderStatusItem *)item->data;
+		int lwidth = strlen(sitem->label->GetText());
+		lblx -= lwidth + 1; /* +1 to get spacing */
+		sitem->label->MoveResize(lblx, 0, lwidth, height);
+	}
+}
+
+void Header::ScreenResized()
+{
+	MoveResizeRect(CENTERIM->ScreenAreaSize(CenterIM::HeaderArea));
+}
+
diff --git a/src/Header.h b/src/Header.h
new file mode 100644
index 0000000..1f832df
--- /dev/null
+++ b/src/Header.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2007 by Mark Pustjens <pustj...@dds.nl>
+ * Copyright (C) 2010 by CenterIM developers
+ *
+ * This file is part of CenterIM.
+ *
+ * CenterIM is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CenterIM is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * */
+
+#ifndef __HEADER_H__
+#define __HEADER_H__
+
+#include <cppconsui/TextView.h>
+#include <cppconsui/Label.h>
+#include <cppconsui/Container.h>
+#include <cppconsui/Window.h>
+#include <libpurple/account.h>
+#include <libpurple/prefs.h>
+#include <vector>
+
+#define HEADER (Header::Instance())
+
+/** 
+ * The top most "head"-area of the screen. 
+ */
+class Header
+: public Window
+{
+	public:
+		static Header *Instance();
+
+		// Window
+		virtual void MoveResize(int newx, int newy, int neww, int newh);
+		virtual void ScreenResized();
+
+	protected:
+		void StatusChanged(PurpleAccount *account, PurpleStatus	*status);
+
+	private:
+		Container *container;
+		GList *statuses;
+
+		Header();
+		Header(const Header&);
+		Header &operator=(const Header&);
+		virtual ~Header();
+
+
+};
+
+#endif /* __LOG_H__ */
diff --git a/src/Makefile.am b/src/Makefile.am
index 4ea28b3..de2d1c1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,6 +30,8 @@ centerim_SOURCES = \
 	GeneralMenu.h \
 	Log.cpp \
 	Log.h \
+	Header.cpp \
+	Header.h \
 	Notify.cpp \
 	Notify.h \
 	Transfers.cpp \
-- 
1.7.1

>From c09738d103b2ffb8b7a63d3d8d134fa88f36b0c9 Mon Sep 17 00:00:00 2001
From: Jonas Zetterberg <j...@jozz.se>
Date: Wed, 11 Aug 2010 19:55:16 +0200
Subject: [PATCH 5/5] Add Swedish Language.

This is a first commit. I could not test it though, there might be manny
errors...

Signed-off-by: Jonas Zetterberg <j...@jozz.se>
---
 po/LINGUAS |    2 +-
 po/sv.po   |  322 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 323 insertions(+), 1 deletions(-)
 create mode 100644 po/sv.po

diff --git a/po/LINGUAS b/po/LINGUAS
index 841618a..30c91e4 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1 +1 @@
-cs
+cs sv
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..df4a4d8
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,322 @@
+# Swedish translations for centerim package.
+# Copyright (C) 2010 Mark Pustjens <pustj...@dds.nl>
+# This file is distributed under the same license as the centerim package.
+# Petr Pavlu <se...@dagobah.cz>, 2010.
+# Jonas Zetterberg <j...@jozz.se>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: centerim 5.0-alpha1\n"
+"Report-Msgid-Bugs-To: CenterIM developers List http://sourceforge.net/";
+"projects/centerim\n"
+"POT-Creation-Date: 2010-03-15 18:45+0100\n"
+"PO-Revision-Date: 2010-03-15 18:57+0100\n"
+"Last-Translator: Jonas Zetterberg <j...@jozz.se>\n"
+"Language-Team: Svenska\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: src/AccountStatusMenu.cpp:41
+msgid "All accounts"
+msgstr "Alla konton"
+
+#: src/AccountStatusMenu.cpp:42
+msgid "Already logged in only"
+msgstr "Redan inloggad"
+
+#: src/AccountWindow.cpp:55
+msgid "Add"
+msgstr "Lägg till"
+
+#: src/AccountWindow.cpp:57
+msgid "Done"
+msgstr "Klar"
+
+#: src/AccountWindow.cpp:104 src/AccountWindow.cpp:594
+msgid "Username"
+msgstr "Användarnamn"
+
+#: src/AccountWindow.cpp:121
+msgid "Are you sure you want to delete this account?"
+msgstr "Är du säker på att du vill ta bort detta konto?"
+
+#: src/AccountWindow.cpp:273
+msgid "Invalid account or protocol plugin not loaded"
+msgstr "Ogiltigt konto eller så är insticksmodulen för detta protokol inte laddat"
+
+#: src/AccountWindow.cpp:376
+msgid "Drop account"
+msgstr "Ta bort konto"
+
+#: src/AccountWindow.cpp:418
+msgid "Remember password"
+msgstr "Spara lösenord"
+
+#: src/AccountWindow.cpp:420
+msgid "Account enabled"
+msgstr "Konto aktiverat"
+
+#: src/AccountWindow.cpp:436
+msgid "yes"
+msgstr "ja"
+
+#: src/AccountWindow.cpp:436
+msgid "no"
+msgstr "nej"
+
+#: src/AccountWindow.cpp:472
+msgid "Password"
+msgstr "Lösenord"
+
+#: src/AccountWindow.cpp:474
+msgid "Alias"
+msgstr "Alias"
+
+#: src/AccountWindow.cpp:569
+msgid "Value out of range.\n"
+msgstr "Ej giltigt värde.\n"
+
+#: src/Accounts.cpp:109
+#, c-format
+msgid "+ [%s] Logged in: %s\n"
+msgstr "+ [%s] Inloggad: %s\n"
+
+#: src/Accounts.cpp:115
+#, c-format
+msgid "+ [%s] Status changed to: %s\n"
+msgstr "+ [%s] Status ändrad till: %s\n"
+
+#: src/BuddyListNode.cpp:193
+msgid "New Contact"
+msgstr "Ny Kontakt"
+
+#: src/CenterIM.cpp:301
+msgid "Quit CenterIM."
+msgstr "Avsluta CenterIM."
+
+#: src/CenterIM.cpp:304
+msgid "Open the account status menu."
+msgstr "Öppna meny för konto-status."
+
+#: src/CenterIM.cpp:307
+msgid "Open the general menu."
+msgstr "Öppna generell meny."
+
+#: src/CenterMain.cpp:49
+#, c-format
+msgid "could not initialize iconv\n"
+msgstr "kunde inte initialisera iconv\n"
+
+#: src/CenterMain.cpp:52
+#, c-format
+msgid "could not initialize libpurple core\n"
+msgstr "kunde inte initialisera libpurple\n"
+
+#: src/CenterMain.cpp:55
+#, c-format
+msgid "unknown error `%d'\n"
+msgstr "okänt fel `%d'\n"
+
+#: src/Conversation.cpp:75
+msgid "Send the message."
+msgstr "Skicka meddelande."
+
+#: src/GeneralMenu.cpp:40
+msgid "Testing"
+msgstr "Testar"
+
+#: src/GeneralMenu.cpp:41
+msgid "Change status"
+msgstr "Ändra status"
+
+#: src/GeneralMenu.cpp:42
+msgid "Go to contact..."
+msgstr "GÃ¥ till kontakt..."
+
+#: src/GeneralMenu.cpp:43
+msgid "Accounts..."
+msgstr "Konton..."
+
+#: src/GeneralMenu.cpp:44
+msgid "CenterIM config options..."
+msgstr "CenterIM konfigurations alternativ..."
+
+#: src/GeneralMenu.cpp:46
+msgid "Find/add users"
+msgstr "Hitta/Adders användare"
+
+#: src/GeneralMenu.cpp:47
+msgid "Join channel/conference"
+msgstr "Öppna kanal/konferens"
+
+#: src/GeneralMenu.cpp:48
+msgid "Link an RSS feed"
+msgstr "Länka en RSS källa"
+
+#: src/GeneralMenu.cpp:50
+msgid "View/edit ignore list"
+msgstr "Visa/Editera ignorerings lista"
+
+#: src/GeneralMenu.cpp:51
+msgid "View/edit invisible list"
+msgstr "Visa/Editera osynlighets lista"
+
+#: src/GeneralMenu.cpp:52
+msgid "View/edit visible list"
+msgstr "Visa/Editera synlighets lista"
+
+#: src/GeneralMenu.cpp:54
+msgid "Show offline users"
+msgstr "Visa utloggade användare"
+
+#: src/GeneralMenu.cpp:55
+msgid "Organize contact groups"
+msgstr "Organisera kontakt-grupper"
+
+#: src/GeneralMenu.cpp:56
+msgid "Mass group move..."
+msgstr "Mass grupp flytt..."
+
+#: src/GeneralMenu.cpp:58
+msgid "Quit"
+msgstr "Avsluta"
+
+#: src/Log.cpp:239
+#, c-format
+msgid "centerim/log: Error opening logfile `%s' (%s).\n"
+msgstr ""
+
+#: src/Log.cpp:244
+#, c-format
+msgid "centerim/log: Error opening logfile `%s'.\n"
+msgstr ""
+
+#: src/Log.cpp:253
+#, c-format
+msgid "centerim/log: Error writing to logfile (%s).\n"
+msgstr ""
+
+#: src/Log.cpp:258
+msgid "centerim/log: Error writing to logfile.\n"
+msgstr ""
+
+#: src/Log.cpp:262
+#, c-format
+msgid "centerim/log: Error flushing logfile (%s).\n"
+msgstr ""
+
+#: src/Log.cpp:267
+msgid "centerim/log: Error flushing logfile.\n"
+msgstr ""
+
+#: cppconsui/Application.cpp:97
+#, c-format
+msgid "Error converting input to UTF-8 (%s).\n"
+msgstr ""
+
+#: cppconsui/Application.cpp:102
+msgid "Error converting input to UTF-8.\n"
+msgstr ""
+
+#: cppconsui/Application.cpp:123
+msgid "Libtermkey initialization failed.\n"
+msgstr ""
+
+#: cppconsui/Button.cpp:79
+msgid "Activate the button"
+msgstr ""
+
+#: cppconsui/ComboBox.cpp:119
+msgid "Show the dropdown menu."
+msgstr ""
+
+#: cppconsui/Container.cpp:84
+msgid "Focusses the previous widget"
+msgstr ""
+
+#: cppconsui/Container.cpp:87
+msgid "Focusses the next widget"
+msgstr ""
+
+#: cppconsui/Container.cpp:90
+msgid "Focus the next widget to the left."
+msgstr ""
+
+#: cppconsui/Container.cpp:93
+msgid "Focus the next widget to the right."
+msgstr ""
+
+#: cppconsui/Container.cpp:96
+msgid "Focus the next widget above."
+msgstr ""
+
+#: cppconsui/Container.cpp:99
+msgid "Focus the next widget below."
+msgstr ""
+
+#: cppconsui/InputDialog.cpp:35 cppconsui/MessageDialog.cpp:30
+msgid "Ok"
+msgstr ""
+
+#: cppconsui/MenuWindow.cpp:53
+msgid "Close the window"
+msgstr ""
+
+#: cppconsui/TextEdit.cpp:117 cppconsui/TextEntry.cpp:139
+msgid "Move the cursor to the right."
+msgstr ""
+
+#: cppconsui/TextEdit.cpp:120 cppconsui/TextEntry.cpp:142
+msgid "Move the cursor to the left."
+msgstr ""
+
+#: cppconsui/TextEdit.cpp:123
+msgid "Move the cursor one line down."
+msgstr ""
+
+#: cppconsui/TextEdit.cpp:126 cppconsui/TextEdit.cpp:129
+#: cppconsui/TextEntry.cpp:145
+msgid "Move the cursor to the right by one word."
+msgstr ""
+
+#: cppconsui/TextEdit.cpp:132 cppconsui/TextEntry.cpp:148
+msgid "Move the cursor to the left by one word."
+msgstr ""
+
+#: cppconsui/TextEdit.cpp:135 cppconsui/TextEntry.cpp:151
+msgid "Move the cursor to the end of the text."
+msgstr ""
+
+#: cppconsui/TextEdit.cpp:138 cppconsui/TextEntry.cpp:154
+msgid "Move the cursor to the beginning of the text."
+msgstr ""
+
+#: cppconsui/TextEdit.cpp:141 cppconsui/TextEntry.cpp:157
+msgid "Delete character under cursor."
+msgstr ""
+
+#: cppconsui/TextEdit.cpp:144 cppconsui/TextEntry.cpp:160
+msgid "Delete character before cursor."
+msgstr ""
+
+#: cppconsui/TextEntry.cpp:177
+msgid "Accept input and move focus."
+msgstr ""
+
+#: cppconsui/TreeView.cpp:85
+msgid "Collapse the selected subtree"
+msgstr ""
+
+#: cppconsui/TreeView.cpp:88
+msgid "Expand the selected subtree"
+msgstr ""
+
+#: cppconsui/Window.cpp:77
+msgid "Close the window."
+msgstr ""
+
+#: cppconsui/WindowManager.cpp:92
+msgid "Redraw the complete screen immediately"
+msgstr ""
-- 
1.7.1

-- 
_______________________________________________
Centerim-devel mailing list
Centerim-devel@centerim.org
http://centerim.org/mailman/listinfo/centerim-devel
http://www.centerim.org/

Reply via email to