aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan LeSage <allan.lesage@canonical.com>2013-11-21 10:37:31 -0600
committerAllan LeSage <allan.lesage@canonical.com>2013-11-21 10:37:31 -0600
commitbf2aab363e93263b1615f1811524fb22b14bf34b (patch)
tree406500af69bd6555eb4e4dc63e3711bd341bb6b4
parentf10353bc4208a48339cdc1e0656361b16636a3e2 (diff)
parentf90c7c21d0e82779356eaa8ae471703cda45d7cc (diff)
downloadayatana-indicator-keyboard-bf2aab363e93263b1615f1811524fb22b14bf34b.tar.gz
ayatana-indicator-keyboard-bf2aab363e93263b1615f1811524fb22b14bf34b.tar.bz2
ayatana-indicator-keyboard-bf2aab363e93263b1615f1811524fb22b14bf34b.zip
Merge trunk, resolving Makefile conflict.
-rw-r--r--configure.ac10
-rw-r--r--data/Makefile.am7
-rw-r--r--debian/README.source58
-rw-r--r--debian/changelog168
-rw-r--r--debian/compat2
-rw-r--r--debian/control30
-rwxr-xr-xdebian/rules16
-rw-r--r--debian/source/format2
-rw-r--r--deps/accountsservice.vapi151
-rw-r--r--lib/Makefile.am72
-rw-r--r--lib/greeter.vala26
-rw-r--r--lib/main.vala483
-rw-r--r--po/POTFILES.in2
-rw-r--r--po/POTFILES.skip1
-rw-r--r--po/ar.po35
-rw-r--r--po/ast.po35
-rw-r--r--po/az.po35
-rw-r--r--po/be.po35
-rw-r--r--po/bg.po35
-rw-r--r--po/br.po35
-rw-r--r--po/bs.po35
-rw-r--r--po/ca.po35
-rw-r--r--po/cs.po35
-rw-r--r--po/cy.po35
-rw-r--r--po/da.po35
-rw-r--r--po/de.po35
-rw-r--r--po/el.po35
-rw-r--r--po/en_AU.po35
-rw-r--r--po/en_CA.po35
-rw-r--r--po/en_GB.po35
-rw-r--r--po/es.po35
-rw-r--r--po/et.po35
-rw-r--r--po/eu.po35
-rw-r--r--po/fa.po35
-rw-r--r--po/fi.po35
-rw-r--r--po/fr.po35
-rw-r--r--po/gd.po35
-rw-r--r--po/gl.po35
-rw-r--r--po/he.po35
-rw-r--r--po/hi.po35
-rw-r--r--po/hu.po35
-rw-r--r--po/id.po35
-rw-r--r--po/indicator-keyboard.pot13
-rw-r--r--po/it.po35
-rw-r--r--po/ja.po35
-rw-r--r--po/km.po35
-rw-r--r--po/kn.po35
-rw-r--r--po/ko.po35
-rw-r--r--po/lt.po35
-rw-r--r--po/lv.po35
-rw-r--r--po/ms.po35
-rw-r--r--po/nb.po35
-rw-r--r--po/nl.po35
-rw-r--r--po/oc.po35
-rw-r--r--po/pl.po35
-rw-r--r--po/pt.po35
-rw-r--r--po/pt_BR.po35
-rw-r--r--po/ro.po35
-rw-r--r--po/ru.po35
-rw-r--r--po/si.po35
-rw-r--r--po/sk.po35
-rw-r--r--po/sl.po35
-rw-r--r--po/sq.po35
-rw-r--r--po/sr.po35
-rw-r--r--po/sv.po35
-rw-r--r--po/ta.po35
-rw-r--r--po/tg.po35
-rw-r--r--po/tr.po35
-rw-r--r--po/ug.po35
-rw-r--r--po/uk.po35
-rw-r--r--po/vi.po35
-rw-r--r--po/zh_CN.po35
-rw-r--r--po/zh_TW.po35
-rw-r--r--tests/indicator-keyboard-test.in8
-rw-r--r--tests/main.vala39
75 files changed, 2852 insertions, 266 deletions
diff --git a/configure.ac b/configure.ac
index d0816254..5a333009 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,7 +7,7 @@ AC_CONFIG_SRCDIR([configure.ac])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
-AM_INIT_AUTOMAKE([1.11 foreign -Wall -Woverride -Wno-portability])
+AM_INIT_AUTOMAKE([1.11 foreign serial-tests -Wall -Woverride -Wno-portability])
AM_SILENT_RULES([yes])
LT_INIT
@@ -70,6 +70,14 @@ PKG_CHECK_MODULES([IBUS], [ibus-1.0])
AC_SUBST([IBUS_CFLAGS])
AC_SUBST([IBUS_LIBS])
+PKG_CHECK_MODULES([ACCOUNTSSERVICE], [accountsservice])
+AC_SUBST([ACCOUNTSSERVICE_CFLAGS])
+AC_SUBST([ACCOUNTSSERVICE_LIBS])
+
+PKG_CHECK_MODULES([LIGHTDM], [liblightdm-gobject-1])
+AC_SUBST([LIGHTDM_CFLAGS])
+AC_SUBST([LIGHTDM_LIBS])
+
PKG_CHECK_MODULES([BAMF], [libbamf3])
AC_SUBST([BAMF_CFLAGS])
AC_SUBST([BAMF_LIBS])
diff --git a/data/Makefile.am b/data/Makefile.am
index 9f9b46ff..29ad3e7a 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -48,8 +48,15 @@ com.canonical.indicator.keyboard:
$(AM_V_GEN) (echo '[Indicator Service]'; \
echo 'Name=indicator-keyboard'; \
echo 'ObjectPath=/com/canonical/indicator/keyboard'; \
+ echo 'Position=80'; \
echo ''; \
echo '[desktop]'; \
+ echo 'ObjectPath=/com/canonical/indicator/keyboard/desktop'; \
+ echo ''; \
+ echo '[desktop_greeter]'; \
+ echo 'ObjectPath=/com/canonical/indicator/keyboard/desktop'; \
+ echo ''; \
+ echo '[ubiquity]'; \
echo 'ObjectPath=/com/canonical/indicator/keyboard/desktop') > $@.tmp && \
mv $@.tmp $@
diff --git a/debian/README.source b/debian/README.source
deleted file mode 100644
index 5dde0bf8..00000000
--- a/debian/README.source
+++ /dev/null
@@ -1,58 +0,0 @@
-This package uses quilt to manage all modifications to the upstream
-source. Changes are stored in the source package as diffs in
-debian/patches and applied during the build.
-
-To configure quilt to use debian/patches instead of patches, you want
-either to export QUILT_PATCHES=debian/patches in your environment
-or use this snippet in your ~/.quiltrc:
-
- for where in ./ ../ ../../ ../../../ ../../../../ ../../../../../; do
- if [ -e ${where}debian/rules -a -d ${where}debian/patches ]; then
- export QUILT_PATCHES=debian/patches
- break
- fi
- done
-
-To get the fully patched source after unpacking the source package, cd to
-the root level of the source package and run:
-
- quilt push -a
-
-The last patch listed in debian/patches/series will become the current
-patch.
-
-To add a new set of changes, first run quilt push -a, and then run:
-
- quilt new <patch>
-
-where <patch> is a descriptive name for the patch, used as the filename in
-debian/patches. Then, for every file that will be modified by this patch,
-run:
-
- quilt add <file>
-
-before editing those files. You must tell quilt with quilt add what files
-will be part of the patch before making changes or quilt will not work
-properly. After editing the files, run:
-
- quilt refresh
-
-to save the results as a patch.
-
-Alternately, if you already have an external patch and you just want to
-add it to the build system, run quilt push -a and then:
-
- quilt import -P <patch> /path/to/patch
- quilt push -a
-
-(add -p 0 to quilt import if needed). <patch> as above is the filename to
-use in debian/patches. The last quilt push -a will apply the patch to
-make sure it works properly.
-
-To remove an existing patch from the list of patches that will be applied,
-run:
-
- quilt delete <patch>
-
-You may need to run quilt pop -a to unapply patches first before running
-this command.
diff --git a/debian/changelog b/debian/changelog
index 1b7581f8..6bc47925 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,117 +1,129 @@
-indicator-keyboard (0.0.0-0ubuntu19) saucy; urgency=low
+indicator-keyboard (0.0.0+14.04.20131029.1-0ubuntu1) trusty; urgency=low
- * debian/control:
- - Don't build-depend on vala-0.20-vapi
- - Build-depend on dbus for tests
-
- -- Jeremy Bicha <jbicha@ubuntu.com> Mon, 15 Jul 2013 21:00:06 -0400
-
-indicator-keyboard (0.0.0-0ubuntu18) saucy; urgency=low
-
- * Add indicator schema.
- * Repair test fixtures.
-
- -- William Hua <william.hua@canonical.com> Mon, 15 Jul 2013 20:37:40 -0400
-
-indicator-keyboard (0.0.0-0ubuntu17) saucy; urgency=low
-
- * Minor fixes.
-
- -- William Hua <william.hua@canonical.com> Thu, 27 Jun 2013 11:38:17 -0400
-
-indicator-keyboard (0.0.0-0ubuntu16) saucy; urgency=low
-
- * Remove autopilot support.
-
- -- William Hua <william.hua@canonical.com> Mon, 24 Jun 2013 17:13:03 -0400
+ [ Dmitrijs Ledkovs ]
+ * Define "ubiquity" indicator profile, reusing the greeter object. (LP:
+ #1241539)
-indicator-keyboard (0.0.0-0ubuntu15) saucy; urgency=low
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 155
- * Experimental non-null support.
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 29 Oct 2013 10:30:36 +0000
- -- William Hua <william.hua@canonical.com> Sat, 22 Jun 2013 16:25:44 -0400
+indicator-keyboard (0.0.0+13.10.20131010.1-0ubuntu1) saucy; urgency=low
-indicator-keyboard (0.0.0-0ubuntu14) saucy; urgency=low
+ [ William Hua ]
+ * Don't set LightDM's layout if we're in a session. (LP: 1226962).
+ (LP: #1226962)
- * Update indicator service manifest.
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 134
- -- William Hua <william.hua@canonical.com> Thu, 20 Jun 2013 15:20:09 -0400
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 10 Oct 2013 12:36:09 +0000
-indicator-keyboard (0.0.0-0ubuntu13) saucy; urgency=low
+indicator-keyboard (0.0.0+13.10.20131004-0ubuntu1) saucy; urgency=low
- * Migrate old keyboard layouts.
+ [ William Hua ]
+ * Set the selected user's first keyboard layout whenever it changes
+ under unity-greeter. (LP #1233945). (LP: #1233945)
- -- William Hua <william.hua@canonical.com> Thu, 20 Jun 2013 13:50:00 -0400
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 125
-indicator-keyboard (0.0.0-0ubuntu12) saucy; urgency=low
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 04 Oct 2013 02:28:12 +0000
- * Remove indicator-keyboard-schema.
+indicator-keyboard (0.0.0+13.10.20130924.2-0ubuntu3) saucy; urgency=low
- -- William Hua <william.hua@canonical.com> Wed, 19 Jun 2013 10:15:00 -0400
+ * Updated POTFILES.skip, seems to be required as well.
-indicator-keyboard (0.0.0-0ubuntu11) saucy; urgency=low
+ -- Sebastien Bacher <seb128@ubuntu.com> Fri, 27 Sep 2013 17:09:25 +0200
- * Per-window fixes.
+indicator-keyboard (0.0.0+13.10.20130924.2-0ubuntu2) saucy; urgency=low
- -- William Hua <william.hua@canonical.com> Wed, 19 Jun 2013 08:52:36 -0400
+ * Update translations template (workaround launchpad bug) (lp: #1223488)
-indicator-keyboard (0.0.0-0ubuntu10) saucy; urgency=low
+ -- Sebastien Bacher <seb128@ubuntu.com> Fri, 27 Sep 2013 16:10:01 +0200
- * Build depend on dh-translations.
+indicator-keyboard (0.0.0+13.10.20130924.2-0ubuntu1) saucy; urgency=low
- -- William Hua <william.hua@canonical.com> Fri, 14 Jun 2013 09:34:50 -0400
+ [ William Hua ]
+ * Fall-back on old unity-greeter keyboard layouts in case migration
+ hasn't occurred. (LP: #1228489)
-indicator-keyboard (0.0.0-0ubuntu9) saucy; urgency=low
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 116
- * dh --with translations.
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 24 Sep 2013 08:58:16 +0000
- -- William Hua <william.hua@canonical.com> Thu, 13 Jun 2013 17:07:42 -0400
+indicator-keyboard (0.0.0+13.10.20130829.1-0ubuntu1) saucy; urgency=low
-indicator-keyboard (0.0.0-0ubuntu8) saucy; urgency=low
+ [ William Hua ]
+ * Append input source suffix to accessible-desc as described in design
+ spec.
- * Build depend on libgee-dev.
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 112
- -- William Hua <william.hua@canonical.com> Mon, 10 Jun 2013 15:23:33 -0400
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 29 Aug 2013 06:06:42 +0000
-indicator-keyboard (0.0.0-0ubuntu7) saucy; urgency=low
+indicator-keyboard (0.0.0+13.10.20130829-0ubuntu1) saucy; urgency=low
- * Translations.
- * Use icons from theme.
+ [ Matthieu Baerts ]
+ * Added an 'accessible description' This description is used by other
+ applications (like Cairo-Dock) as label for this icon. (LP:
+ #1217855)
- -- William Hua <william.hua@canonical.com> Mon, 10 Jun 2013 12:11:14 -0400
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 110
-indicator-keyboard (0.0.0-0ubuntu6) saucy; urgency=low
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 29 Aug 2013 02:07:27 +0000
- * Require vala 0.20.
+indicator-keyboard (0.0.0+13.10.20130822.4-0ubuntu1) saucy; urgency=low
- -- William Hua <william.hua@canonical.com> Wed, 15 May 2013 16:57:51 -0400
+ [ William Hua ]
+ * Kill running gvfs instance after tests finish. Because the
+ XDG_RUNTIME_DIR was changed to be in the build-tree, a running gvfs
+ instance held a lock on a file in the directory, preventing it from
+ being cleaned properly, and preventing the build from finishing. So
+ we send a SIGTERM to the running gvfs-fused instance, allowing the
+ build to finish.
+ * Use accountsservice and make work under unity-greeter.
+ * Proper shutdown on SIGTERM.
-indicator-keyboard (0.0.0-0ubuntu5) saucy; urgency=low
+ [ Jeremy Bicha ]
+ * Don't build-depend on quilt and drop debian/README.source, thanks
+ Michael Terry!.
- * Fix icon rendering.
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 108
- -- William Hua <william.hua@canonical.com> Wed, 08 May 2013 17:01:09 -0400
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 22 Aug 2013 20:29:00 +0000
-indicator-keyboard (0.0.0-0ubuntu4) raring; urgency=low
+indicator-keyboard (0.0.0+13.10.20130821-0ubuntu1) saucy; urgency=low
- * Add indicator visibility schema.
-
- -- William Hua <william.hua@canonical.com> Wed, 01 May 2013 14:53:34 -0700
-
-indicator-keyboard (0.0.0-0ubuntu3) raring; urgency=low
-
- * Use dictionary action state.
-
- -- William Hua <william.hua@canonical.com> Fri, 26 Apr 2013 15:03:12 -0400
-
-indicator-keyboard (0.0.0-0ubuntu2) raring; urgency=low
-
- * GBytesIcon support.
-
- -- William Hua <william.hua@canonical.com> Tue, 16 Apr 2013 10:45:34 -0400
-
-indicator-keyboard (0.0.0-0ubuntu1) raring; urgency=low
+ [ Jeremy Bicha ]
+ * debian/control:
+ - Don't build-depend on vala-0.20-vapi
+ - Build-depend on dbus for tests
+ [ William Hua ]
* Initial Release.
- -- William Hua <william.hua@canonical.com> Wed, 03 Apr 2013 12:37:54 -0400
+ [ Mathieu Trudel-Lapierre ]
+ * Automatic snapshot from revision 102 (bootstrap)
+ * debian/control:
+ - Packaging review, add comment to developers.
+ - Fix Vcs-Bzr, Vcs-Browser.
+ - Sort Build-Depends, use trailing commas.
+ - Improve long description.
+ * debian/rules:
+ - Add DPKG_GENSYMBOLS_CHECK_LEVEL = 4.
+ - Override dh_autoreconf to run ./autogen.sh.
+ - Override dh_install to remove .la and .a files.
+ - Run dh_install with --fail-missing.
+ * debian/compat: bump to compat level 9.
+ * debian/source/format: make sure we're using format 1.0.
+
+ [ Ubuntu daily release ]
+ * Automatic snapshot from revision 103
+
+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 21 Aug 2013 14:07:27 +0000
diff --git a/debian/compat b/debian/compat
index 45a4fb75..ec635144 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-8
+9
diff --git a/debian/control b/debian/control
index 90eb2451..63e20ab6 100644
--- a/debian/control
+++ b/debian/control
@@ -3,32 +3,36 @@ Section: gnome
Priority: optional
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
XSBC-Original-Maintainer: William Hua <william.hua@canonical.com>
-Build-Depends: quilt,
- debhelper (>= 9.0.0),
+Build-Depends: debhelper (>= 9.0.0),
dh-autoreconf,
dh-translations,
- libgirepository1.0-dev,
- valac,
+ dbus,
+ libaccountsservice-dev,
+ libbamf3-dev,
libgee-dev,
- libgtk-3-dev,
+ libgirepository1.0-dev,
libgnome-desktop-3-dev,
libgnomekbd-dev,
+ libgtk-3-dev,
libibus-1.0-dev (>= 1.5.0),
- libbamf3-dev,
- dbus,
+ liblightdm-gobject-1-dev,
+ valac,
+ xauth,
xvfb,
- xauth
Standards-Version: 3.9.4
Homepage: https://code.launchpad.net/indicator-keyboard
# If you aren't a member of ~indicator-applet-developers but need to upload
# packaging changes, just go ahead. ~indicator-applet-developers will notice
# and sync up the code again.
-Vcs-Bzr: https://code.launchpad.net/~attente/indicator-keyboard/trunk
-Vcs-Browser: https://bazaar.launchpad.net/~attente/indicator-keyboard/trunk/files
+Vcs-Bzr: https://code.launchpad.net/~indicator-applet-developers/indicator-keyboard/trunk
+Vcs-Browser: https://bazaar.launchpad.net/~indicator-applet-develpers/indicator-keyboard/trunk/files
Package: indicator-keyboard
Architecture: any
-Depends: ${shlibs:Depends},
- ${misc:Depends}
+Depends: ${misc:Depends},
+ ${shlibs:Depends},
Description: Keyboard indicator
- This package contains the keyboard indicator.
+ This package contains the keyboard indicator, which should show as an icon in
+ the top panel when using the Unity environment. It can be used to switch
+ key layouts or languages, and helps the user identifying which layouts are
+ currently in use.
diff --git a/debian/rules b/debian/rules
index c816d1da..d2bfba7b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,13 +1,19 @@
#!/usr/bin/make -f
# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
+export DPKG_GENSYMBOLS_CHECK_LEVEL=4
+
%:
dh $@ --with autoreconf,translations
+
+override_dh_autoreconf:
+ NOCONFIGURE=1 dh_autoreconf ./autogen.sh
+
+override_dh_install:
+ find debian/indicator-keyboard/usr/lib -name *.la -delete
+ find debian/indicator-keyboard/usr/lib -name *.a -delete
+ dh_install --fail-missing
+
diff --git a/debian/source/format b/debian/source/format
index 89ae9db8..d3827e75 100644
--- a/debian/source/format
+++ b/debian/source/format
@@ -1 +1 @@
-3.0 (native)
+1.0
diff --git a/deps/accountsservice.vapi b/deps/accountsservice.vapi
new file mode 100644
index 00000000..809726d0
--- /dev/null
+++ b/deps/accountsservice.vapi
@@ -0,0 +1,151 @@
+/* accountsservice.vapi generated by vapigen, do not modify. */
+
+[CCode (cprefix = "Act", gir_namespace = "AccountsService", gir_version = "1.0", lower_case_cprefix = "act_")]
+namespace Act {
+ [CCode (cheader_filename = "act/act.h", type_id = "act_user_get_type ()")]
+ public class User : GLib.Object {
+ [CCode (has_construct_function = false)]
+ protected User ();
+ public int collate (Act.User user2);
+ public Act.UserAccountType get_account_type ();
+ public bool get_automatic_login ();
+ public unowned string get_email ();
+ public unowned string get_formats_locale ();
+ public unowned string get_home_dir ();
+ public unowned string get_icon_file ();
+ public unowned GLib.Variant get_input_sources ();
+ public unowned string get_language ();
+ public unowned string get_location ();
+ public bool get_locked ();
+ public int get_login_frequency ();
+ public unowned GLib.Variant get_login_history ();
+ public int64 get_login_time ();
+ public uint get_num_sessions ();
+ public uint get_num_sessions_anywhere ();
+ public unowned string get_object_path ();
+ public unowned string get_password_hint ();
+ public Act.UserPasswordMode get_password_mode ();
+ public unowned string get_primary_session_id ();
+ public unowned string get_real_name ();
+ public unowned string get_shell ();
+ public uint get_uid ();
+ public unowned string get_user_name ();
+ public unowned string get_x_session ();
+ public bool is_local_account ();
+ public bool is_logged_in ();
+ public bool is_logged_in_anywhere ();
+ public bool is_nonexistent ();
+ public bool is_system_account ();
+ public void set_account_type (Act.UserAccountType account_type);
+ public void set_automatic_login (bool enabled);
+ public void set_email (string email);
+ public void set_formats_locale (string formats_locale);
+ public void set_icon_file (string icon_file);
+ public void set_input_sources (GLib.Variant sources);
+ public void set_language (string language);
+ public void set_location (string location);
+ public void set_locked (bool locked);
+ public void set_multiple_passwords (GLib.HashTable<uint,string> password_map);
+ public void set_password (string password, string hint);
+ public void set_password_mode (Act.UserPasswordMode password_mode);
+ public void set_real_name (string real_name);
+ public void set_user_name (string user_name);
+ public void set_x_session (string x_session);
+ public int account_type { get; }
+ public bool automatic_login { get; }
+ [NoAccessorMethod]
+ public string background_file { owned get; }
+ public string email { get; }
+ public string formats_locale { get; }
+ [NoAccessorMethod]
+ public string home_directory { owned get; }
+ public string icon_file { get; }
+ public GLib.Variant input_sources { get; }
+ [NoAccessorMethod]
+ public bool is_loaded { get; }
+ public string language { get; }
+ [NoAccessorMethod]
+ public bool local_account { get; }
+ public string location { get; }
+ public bool locked { get; }
+ public int login_frequency { get; }
+ public GLib.Variant login_history { get; }
+ public int64 login_time { get; }
+ [NoAccessorMethod]
+ public bool nonexistent { get; }
+ public string password_hint { get; }
+ public int password_mode { get; }
+ public string real_name { get; }
+ public string shell { get; }
+ [NoAccessorMethod]
+ public bool system_account { get; }
+ public int uid { get; }
+ public string user_name { get; }
+ public string x_session { get; }
+ [NoAccessorMethod]
+ public bool xhas_messages { get; }
+ [CCode (array_length = false, array_null_terminated = true)]
+ [NoAccessorMethod]
+ public string[] xkeyboard_layouts { owned get; }
+ public signal void changed ();
+ public signal void sessions_changed ();
+ }
+ [CCode (cheader_filename = "act/act.h", type_id = "act_user_manager_get_type ()")]
+ public class UserManager : GLib.Object {
+ [CCode (has_construct_function = false)]
+ protected UserManager ();
+ public bool activate_user_session (Act.User user);
+ public Act.User cache_user (string username) throws GLib.Error;
+ public async Act.User cache_user_async (string username, GLib.Cancellable? cancellable) throws GLib.Error;
+ public bool can_switch ();
+ public Act.User create_user (string username, string fullname, Act.UserAccountType accounttype) throws GLib.Error;
+ public async Act.User create_user_async (string username, string fullname, Act.UserAccountType accounttype, GLib.Cancellable? cancellable) throws GLib.Error;
+ public bool delete_user (Act.User user, bool remove_files) throws GLib.Error;
+ public async bool delete_user_async (Act.User user, bool remove_files, GLib.Cancellable? cancellable) throws GLib.Error;
+ public static unowned Act.UserManager get_default ();
+ public unowned Act.User get_user (string username);
+ public unowned Act.User get_user_by_id (uint id);
+ public bool goto_login_session ();
+ public GLib.SList<weak Act.User> list_users ();
+ public bool no_service ();
+ public bool uncache_user (string username) throws GLib.Error;
+ [NoAccessorMethod]
+ public void* exclude_usernames_list { get; set; }
+ [NoAccessorMethod]
+ public bool has_multiple_users { get; }
+ [NoAccessorMethod]
+ public void* include_usernames_list { get; set; }
+ [NoAccessorMethod]
+ public bool is_loaded { get; }
+ public virtual signal void user_added (Act.User user);
+ public virtual signal void user_changed (Act.User user);
+ public virtual signal void user_is_logged_in_changed (Act.User user);
+ public virtual signal void user_removed (Act.User user);
+ }
+ [CCode (cheader_filename = "act/act.h", cprefix = "ACT_USER_ACCOUNT_TYPE_", type_id = "act_user_account_type_get_type ()")]
+ public enum UserAccountType {
+ STANDARD,
+ ADMINISTRATOR
+ }
+ [CCode (cheader_filename = "act/act.h", cprefix = "ACT_USER_PASSWORD_MODE_", type_id = "act_user_password_mode_get_type ()")]
+ public enum UserPasswordMode {
+ REGULAR,
+ SET_AT_LOGIN,
+ NONE
+ }
+ [CCode (cheader_filename = "act/act.h", cprefix = "ACT_USER_PASSWORD_", type_id = "act_user_password_type_get_type ()")]
+ public enum UserPasswordType {
+ REGULAR,
+ HINT,
+ PIN
+ }
+ [CCode (cheader_filename = "act/act.h", cprefix = "ACT_USER_MANAGER_ERROR_")]
+ public errordomain UserManagerError {
+ FAILED,
+ USER_EXISTS,
+ USER_DOES_NOT_EXIST,
+ PERMISSION_DENIED,
+ NOT_SUPPORTED;
+ public static GLib.Quark quark ();
+ }
+}
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 2e257df0..72f5f949 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -2,41 +2,47 @@ libexec_PROGRAMS = indicator-keyboard-service
AM_CFLAGS = -w -DGNOME_DESKTOP_USE_UNSTABLE_API
AM_LDFLAGS = -lm
-AM_VALAFLAGS = --enable-experimental-non-null \
- --metadatadir $(top_srcdir)/deps \
+AM_VALAFLAGS = --metadatadir $(top_srcdir)/deps \
--vapidir $(top_srcdir)/deps
-indicator_keyboard_service_SOURCES = main.vala \
- source.vala \
- common.vala
-indicator_keyboard_service_VALAFLAGS = $(AM_VALAFLAGS) \
- --pkg gee-1.0 \
- --pkg posix \
- --pkg pangocairo \
- --pkg gtk+-3.0 \
- --pkg GDesktopEnums-3.0 \
- --pkg gnome-desktop-3.0 \
- --pkg Xkl-1.0 \
- --pkg Gkbd-3.0 \
- --pkg ibus-1.0 \
+indicator_keyboard_service_SOURCES = main.vala \
+ source.vala \
+ common.vala \
+ greeter.vala
+indicator_keyboard_service_VALAFLAGS = $(AM_VALAFLAGS) \
+ --pkg gee-1.0 \
+ --pkg posix \
+ --pkg pangocairo \
+ --pkg gtk+-3.0 \
+ --pkg GDesktopEnums-3.0 \
+ --pkg gnome-desktop-3.0 \
+ --pkg Xkl-1.0 \
+ --pkg Gkbd-3.0 \
+ --pkg ibus-1.0 \
+ --pkg accountsservice \
+ --pkg liblightdm-gobject-1 \
--pkg libbamf3
-indicator_keyboard_service_CFLAGS = $(AM_CFLAGS) \
- $(GEE_CFLAGS) \
- $(PANGOCAIRO_CFLAGS) \
- $(GTK_CFLAGS) \
- $(GNOME_DESKTOP_CFLAGS) \
- $(LIBXKLAVIER_CFLAGS) \
- $(LIBGNOMEKBD_CFLAGS) \
- $(IBUS_CFLAGS) \
- $(BAMF_CFLAGS) \
+indicator_keyboard_service_CFLAGS = $(AM_CFLAGS) \
+ $(GEE_CFLAGS) \
+ $(PANGOCAIRO_CFLAGS) \
+ $(GTK_CFLAGS) \
+ $(GNOME_DESKTOP_CFLAGS) \
+ $(LIBXKLAVIER_CFLAGS) \
+ $(LIBGNOMEKBD_CFLAGS) \
+ $(IBUS_CFLAGS) \
+ $(ACCOUNTSSERVICE_CFLAGS) \
+ $(LIGHTDM_CFLAGS) \
+ $(BAMF_CFLAGS) \
$(COVERAGE_CFLAGS)
-indicator_keyboard_service_LDFLAGS = $(AM_LDFLAGS) \
- $(GEE_LIBS) \
- $(PANGOCAIRO_LIBS) \
- $(GTK_LIBS) \
- $(GNOME_DESKTOP_LIBS) \
- $(LIBXKLAVIER_LIBS) \
- $(LIBGNOMEKBD_LIBS) \
- $(IBUS_LIBS) \
- $(BAMF_LIBS) \
+indicator_keyboard_service_LDFLAGS = $(AM_LDFLAGS) \
+ $(GEE_LIBS) \
+ $(PANGOCAIRO_LIBS) \
+ $(GTK_LIBS) \
+ $(GNOME_DESKTOP_LIBS) \
+ $(LIBXKLAVIER_LIBS) \
+ $(LIBGNOMEKBD_LIBS) \
+ $(IBUS_LIBS) \
+ $(ACCOUNTSSERVICE_LIBS) \
+ $(LIGHTDM_LIBS) \
+ $(BAMF_LIBS) \
$(COVERAGE_LDFLAGS)
diff --git a/lib/greeter.vala b/lib/greeter.vala
new file mode 100644
index 00000000..c378bbd5
--- /dev/null
+++ b/lib/greeter.vala
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2013 Canonical Ltd.
+ *
+ * This program 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, version 3 of the License.
+ *
+ * This program 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/>.
+ *
+ * Authors: William Hua <william.hua@canonical.com>
+ */
+
+[DBus (name="com.canonical.UnityGreeter.List")]
+public interface Greeter : Object {
+
+ public abstract string get_active_entry () throws IOError;
+ public abstract void set_active_entry (string entry_name) throws IOError;
+
+ public signal void entry_selected (string entry_name);
+}
diff --git a/lib/main.vala b/lib/main.vala
index 91466f8c..66147b18 100644
--- a/lib/main.vala
+++ b/lib/main.vala
@@ -19,6 +19,7 @@
[DBus (name = "com.canonical.indicator.keyboard")]
public class Indicator.Keyboard.Service : Object {
+ private static Service service;
private static IBus.Bus? ibus;
private bool force;
@@ -29,6 +30,7 @@ public class Indicator.Keyboard.Service : Object {
private Settings indicator_settings;
private Settings source_settings;
private Settings per_window_settings;
+ private SList<Act.User> users;
private Bamf.Matcher? matcher;
private Gee.HashMap<string, uint>? window_sources;
@@ -39,6 +41,10 @@ public class Indicator.Keyboard.Service : Object {
private MenuModel? menu_model;
private Menu? sources_menu;
+ private Greeter? greeter;
+ private string? greeter_user;
+ private uint lightdm_current;
+
[DBus (visible = false)]
public Service (ref unowned string[] args) {
force = "--force" in args;
@@ -51,6 +57,18 @@ public class Indicator.Keyboard.Service : Object {
Gdk.init (ref args);
}
+ if (is_login_user ()) {
+ var name = Environment.get_variable ("UNITY_GREETER_DBUS_NAME");
+
+ if (name != null) {
+ Bus.watch_name (BusType.SESSION,
+ (!) name,
+ BusNameWatcherFlags.NONE,
+ handle_name_appeared,
+ handle_name_vanished);
+ }
+ }
+
indicator_settings = new Settings ("com.canonical.indicator.keyboard");
indicator_settings.changed["visible"].connect (handle_changed_visible);
@@ -67,6 +85,11 @@ public class Indicator.Keyboard.Service : Object {
}
[DBus (visible = false)]
+ private static bool is_login_user () {
+ return Environment.get_user_name () == "lightdm";
+ }
+
+ [DBus (visible = false)]
private static IBus.Bus get_ibus () {
if (ibus == null) {
IBus.init ();
@@ -77,6 +100,22 @@ public class Indicator.Keyboard.Service : Object {
}
[DBus (visible = false)]
+ public void up () {
+ if (loop == null) {
+ loop = new MainLoop ();
+ ((!) loop).run ();
+ }
+ }
+
+ [DBus (visible = false)]
+ public void down () {
+ if (loop != null) {
+ ((!) loop).quit ();
+ loop = null;
+ }
+ }
+
+ [DBus (visible = false)]
private void acquire_bus_name () {
Bus.own_name (BusType.SESSION,
"com.canonical.indicator.keyboard",
@@ -84,71 +123,348 @@ public class Indicator.Keyboard.Service : Object {
handle_bus_acquired,
null,
handle_name_lost);
-
- loop = new MainLoop ();
- ((!) loop).run ();
}
[DBus (visible = false)]
- private void migrate_keyboard_layouts () {
- if (!indicator_settings.get_boolean ("migrated")) {
- var builder = new VariantBuilder (new VariantType ("a(ss)"));
- var length = 0;
+ private void update_greeter_user () {
+ if (greeter_user == null && greeter != null) {
+ try {
+ greeter_user = ((!) greeter).get_active_entry ();
+ } catch (IOError error) {
+ warning ("error: %s", error.message);
+ }
+ }
- var layout_settings = new Settings ("org.gnome.libgnomekbd.keyboard");
- var layouts = layout_settings.get_strv ("layouts");
+ string? source = null;
- foreach (var layout in layouts) {
- var source = layout;
+ if (greeter_user != null) {
+ var manager = Act.UserManager.get_default ();
- source = source.replace (" ", "+");
- source = source.replace ("\t", "+");
+ if (manager.is_loaded) {
+ Act.User? user = manager.get_user ((!) greeter_user);
- builder.add ("(ss)", "xkb", source);
- length++;
- }
+ if (user != null && ((!) user).is_loaded) {
+ VariantIter outer;
+ VariantIter inner;
+
+ var sources = ((!) user).input_sources;
+ sources.get ("aa{ss}", out outer);
- var engines = get_ibus ().list_active_engines ();
+ while (outer.next ("a{ss}", out inner)) {
+ unowned string key;
+ unowned string value;
- foreach (var engine in engines) {
- if (length == 0 || engine.name.has_prefix ("xkb")) {
- var source = "us";
- string? layout = engine.get_layout ();
- string? variant = engine.get_layout_variant ();
+ while (inner.next ("{&s&s}", out key, out value)) {
+ if (key == "xkb") {
+ source = value;
+ break;
+ }
+ }
- if (layout != null && ((!) layout).length == 0) {
- layout = null;
+ if (source != null) {
+ break;
+ }
}
- if (variant != null && ((!) variant).length == 0) {
- variant = null;
+ if (source == null) {
+ var layouts = ((!) user).xkeyboard_layouts;
+
+ if (layouts.length <= 0) {
+ var user_list = LightDM.UserList.get_instance ();
+ LightDM.User? light_user = user_list.get_user_by_name ((!) greeter_user);
+
+ if (light_user != null) {
+ layouts = ((!) light_user).get_layouts ();
+ }
+ }
+
+ if (layouts.length > 0) {
+ source = layouts[0];
+ source = ((!) source).replace (" ", "+");
+ source = ((!) source).replace ("\t", "+");
+ }
}
+ }
+ }
+ }
+
+ if (source == null) {
+ LightDM.Layout? layout = LightDM.get_layout ();
+
+ if (layout != null) {
+ source = ((!) layout).name;
+
+ if (source != null) {
+ source = ((!) source).replace (" ", "+");
+ source = ((!) source).replace ("\t", "+");
+ }
+ }
+ }
+
+ if (source != null) {
+ var array = source_settings.get_value ("sources");
+
+ for (int i = 0; i < array.n_children (); i++) {
+ unowned string type;
+ unowned string name;
- if (layout != null && variant != null) {
- source = @"$((!) layout)+$((!) variant)";
- } else if (layout != null) {
- source = (!) layout;
+ array.get_child (i, "(&s&s)", out type, out name);
+
+ if (type == "xkb" && name == (!) source) {
+ source_settings.set_uint ("current", i);
+ break;
+ }
+ }
+ }
+ }
+
+ [DBus (visible = false)]
+ private void handle_entry_selected (string entry_name) {
+ if (greeter_user == null || entry_name != (!) greeter_user) {
+ greeter_user = entry_name;
+
+ update_greeter_user ();
+ }
+ }
+
+ [DBus (visible = false)]
+ private void migrate_keyboard_layouts () {
+ if (is_login_user ()) {
+ lightdm_current = source_settings.get_uint ("current");
+
+ var manager = Act.UserManager.get_default ();
+
+ if (manager.is_loaded) {
+ users = manager.list_users ();
+
+ foreach (var user in users) {
+ if (user.is_loaded) {
+ migrate_input_sources ();
+ } else {
+ user.notify["is-loaded"].connect ((pspec) => {
+ if (user.is_loaded) {
+ migrate_input_sources ();
+ }
+ });
}
+ }
+ } else {
+ manager.notify["is-loaded"].connect ((pspec) => {
+ if (manager.is_loaded) {
+ users = manager.list_users ();
+
+ foreach (var user in users) {
+ if (user.is_loaded) {
+ migrate_input_sources ();
+ } else {
+ user.notify["is-loaded"].connect ((pspec) => {
+ if (user.is_loaded) {
+ migrate_input_sources ();
+ }
+ });
+ }
+ }
+ }
+ });
+ }
+
+ var user_list = LightDM.UserList.get_instance ();
+
+ user_list.user_added.connect ((user) => { migrate_input_sources (); });
+ user_list.user_changed.connect ((user) => { migrate_input_sources (); });
+ user_list.user_removed.connect ((user) => { migrate_input_sources (); });
+
+ /* Force the loading of the user list. */
+ user_list.get_user_by_name ("");
+ } else {
+ if (!indicator_settings.get_boolean ("migrated")) {
+ var builder = new VariantBuilder (new VariantType ("a(ss)"));
+ var length = 0;
+
+ var layout_settings = new Settings ("org.gnome.libgnomekbd.keyboard");
+ var layouts = layout_settings.get_strv ("layouts");
+
+ foreach (var layout in layouts) {
+ var source = layout;
+ source = source.replace (" ", "+");
+ source = source.replace ("\t", "+");
builder.add ("(ss)", "xkb", source);
length++;
}
- if (!engine.name.has_prefix ("xkb")) {
- builder.add ("(ss)", "ibus", engine.name);
- length++;
+ var engines = get_ibus ().list_active_engines ();
+
+ foreach (var engine in engines) {
+ if (length == 0 || engine.name.has_prefix ("xkb")) {
+ var source = "us";
+ string? layout = engine.get_layout ();
+ string? variant = engine.get_layout_variant ();
+
+ if (layout != null && ((!) layout).length == 0) {
+ layout = null;
+ }
+
+ if (variant != null && ((!) variant).length == 0) {
+ variant = null;
+ }
+
+ if (layout != null && variant != null) {
+ source = @"$((!) layout)+$((!) variant)";
+ } else if (layout != null) {
+ source = (!) layout;
+ }
+
+ builder.add ("(ss)", "xkb", source);
+ length++;
+ }
+
+ if (!engine.name.has_prefix ("xkb")) {
+ builder.add ("(ss)", "ibus", engine.name);
+ length++;
+ }
+ }
+
+ source_settings.set_value ("sources", builder.end ());
+ indicator_settings.set_boolean ("migrated", true);
+ }
+ }
+ }
+
+ [DBus (visible = false)]
+ private void migrate_input_sources () {
+ var list = new Gee.LinkedList<string> ();
+ var added = new Gee.HashSet<string> ();
+
+ foreach (var user in users) {
+ if (user.is_loaded) {
+ var done = false;
+
+ VariantIter outer;
+ VariantIter inner;
+
+ var sources = user.input_sources;
+ sources.get ("aa{ss}", out outer);
+
+ while (outer.next ("a{ss}", out inner)) {
+ unowned string key;
+ unowned string source;
+
+ while (inner.next ("{&s&s}", out key, out source)) {
+ if (key == "xkb") {
+ done = true;
+
+ if (!added.contains (source)) {
+ list.add (source);
+ added.add (source);
+ }
+ }
+ }
+ }
+
+ if (!done) {
+ var layouts = user.xkeyboard_layouts;
+ foreach (var layout in layouts) {
+ done = true;
+
+ var source = layout;
+ source = source.replace (" ", "+");
+ source = source.replace ("\t", "+");
+
+ if (!added.contains (source)) {
+ list.add (source);
+ added.add (source);
+ }
+ }
+ }
+
+ if (!done) {
+ var user_list = LightDM.UserList.get_instance ();
+ LightDM.User? light_user = user_list.get_user_by_name (user.user_name);
+
+ if (light_user != null) {
+ var layouts = ((!) light_user).get_layouts ();
+ foreach (var layout in layouts) {
+ done = true;
+
+ var source = layout;
+ source = source.replace (" ", "+");
+ source = source.replace ("\t", "+");
+
+ if (!added.contains (source)) {
+ list.add (source);
+ added.add (source);
+ }
+ }
+ }
}
}
+ }
+
+ LightDM.Layout? layout = LightDM.get_layout ();
+
+ if (layout != null) {
+ string? source = ((!) layout).name;
+
+ if (source != null) {
+ source = ((!) source).replace (" ", "+");
+ source = ((!) source).replace ("\t", "+");
+
+ if (!added.contains ((!) source)) {
+ list.add ((!) source);
+ added.add ((!) source);
+ }
+ }
+ }
+
+ var builder = new VariantBuilder (new VariantType ("a(ss)"));
+
+ foreach (var name in list) {
+ builder.add ("(ss)", "xkb", name);
+ }
+
+ if (lightdm_current < list.size) {
+ source_settings.set_uint ("current", lightdm_current);
+ } else {
+ source_settings.set_uint ("current", list.size - 1);
+ }
+
+ source_settings.set_value ("sources", builder.end ());
+
+ update_greeter_user ();
+ }
- source_settings.set_value ("sources", builder.end ());
+ [DBus (visible = false)]
+ private void update_login_layout () {
+ if (is_login_user ()) {
+ unowned List<LightDM.Layout> layouts = LightDM.get_layouts ();
+ var current = source_settings.get_uint ("current");
+
+ if (current < get_sources ().length) {
+ var source = get_sources ()[current];
+ string? name = null;
+
+ if (source.layout != null && source.variant != null) {
+ name = @"$((!) source.layout)\t$((!) source.variant)";
+ } else if (source.layout != null) {
+ name = source.layout;
+ }
- indicator_settings.set_boolean ("migrated", true);
+ if (name != null) {
+ foreach (var layout in layouts) {
+ if (layout.name == (!) name) {
+ LightDM.set_layout (layout);
+ break;
+ }
+ }
+ }
+ }
}
}
[DBus (visible = false)]
private void update_window_sources () {
- if (use_bamf) {
+ if (use_bamf && !is_login_user ()) {
var group_per_window = per_window_settings.get_boolean ("group-per-window");
if (group_per_window != (window_sources != null)) {
@@ -220,16 +536,27 @@ public class Indicator.Keyboard.Service : Object {
private void update_indicator_action () {
var visible = indicator_settings.get_boolean ("visible");
var current = source_settings.get_uint ("current");
- var icon = get_sources ()[current].icon;
- Variant state;
+ var sources = get_sources ();
+
+ Icon? icon = null;
+ string? name = null;
+
+ if (current < sources.length) {
+ icon = sources[current].icon;
+ name = sources[current].name;
+ }
+ var builder = new VariantBuilder (new VariantType ("a{sv}"));
+ builder.add ("{sv}", "visible", new Variant.boolean (visible));
+ if (name != null) {
+ var description = _ ("%s input source").printf ((!) name);
+ builder.add ("{sv}", "accessible-desc", new Variant.string (description));
+ }
if (icon != null) {
- state = new Variant.parsed ("{ 'visible' : <%b>, 'icon' : %v }", visible, ((!) icon).serialize ());
- } else {
- state = new Variant.parsed ("{ 'visible' : <%b> }", visible);
+ builder.add ("{sv}", "icon", ((!) icon).serialize ());
}
- get_indicator_action ().set_state (state);
+ get_indicator_action ().set_state (builder.end ());
}
[DBus (visible = false)]
@@ -244,13 +571,40 @@ public class Indicator.Keyboard.Service : Object {
}
[DBus (visible = false)]
+ private void handle_middle_click (Variant? parameter) {
+ handle_scroll_wheel (new Variant.int32 (-1));
+ }
+
+ [DBus (visible = false)]
+ private void handle_scroll_wheel (Variant? parameter) {
+ if (parameter != null) {
+ var sources = source_settings.get_value ("sources");
+ var current = source_settings.get_uint ("current");
+ var length = (int) sources.n_children ();
+
+ if (length > 0) {
+ var offset = parameter.get_int32 () % length;
+ source_settings.set_uint ("current", (current + (length - offset)) % length);
+ }
+ }
+ }
+
+ [DBus (visible = false)]
protected virtual SimpleActionGroup create_action_group (Action root_action) {
var group = new SimpleActionGroup ();
group.insert (root_action);
group.insert (source_settings.create_action ("current"));
- var action = new SimpleAction ("map", null);
+ var action = new SimpleAction ("next", null);
+ action.activate.connect (handle_middle_click);
+ group.insert (action);
+
+ action = new SimpleAction ("scroll", VariantType.INT32);
+ action.activate.connect (handle_scroll_wheel);
+ group.insert (action);
+
+ action = new SimpleAction ("map", null);
action.activate.connect (handle_activate_map);
group.insert (action);
@@ -318,14 +672,18 @@ public class Indicator.Keyboard.Service : Object {
submenu.append_section (null, section_menu);
- var section = new Menu ();
- section.append (_ ("Character Map"), "indicator.map");
- section.append (_ ("Keyboard Layout Chart"), "indicator.chart");
- section.append (_ ("Text Entry Settings..."), "indicator.settings");
- submenu.append_section (null, section);
+ if (!is_login_user ()) {
+ var section = new Menu ();
+ section.append (_ ("Character Map"), "indicator.map");
+ section.append (_ ("Keyboard Layout Chart"), "indicator.chart");
+ section.append (_ ("Text Entry Settings..."), "indicator.settings");
+ submenu.append_section (null, section);
+ }
var indicator = new MenuItem.submenu ("x", submenu);
indicator.set_attribute ("x-canonical-type", "s", "com.canonical.indicator.root");
+ indicator.set_attribute ("x-canonical-secondary-action", "s", "indicator.next");
+ indicator.set_attribute ("x-canonical-scroll-action", "s", "indicator.scroll");
indicator.set_detailed_action ("indicator.indicator");
menu.append_item (indicator);
@@ -349,6 +707,7 @@ public class Indicator.Keyboard.Service : Object {
[DBus (visible = false)]
private void handle_changed_current (string key) {
update_indicator_action ();
+ update_login_layout ();
}
[DBus (visible = false)]
@@ -357,6 +716,7 @@ public class Indicator.Keyboard.Service : Object {
update_sources_menu ();
update_indicator_action ();
+ update_login_layout ();
}
[DBus (visible = false)]
@@ -411,6 +771,21 @@ public class Indicator.Keyboard.Service : Object {
}
[DBus (visible = false)]
+ private void handle_name_appeared (DBusConnection connection, string name, string name_owner) {
+ try {
+ greeter = Bus.get_proxy_sync (BusType.SESSION, name, "/list");
+ ((!) greeter).entry_selected.connect (handle_entry_selected);
+ } catch (IOError error) {
+ warning ("error: %s", error.message);
+ }
+ }
+
+ [DBus (visible = false)]
+ private void handle_name_vanished (DBusConnection connection, string name) {
+ greeter = null;
+ }
+
+ [DBus (visible = false)]
private void handle_bus_acquired (DBusConnection connection, string name) {
try {
connection.export_action_group ("/com/canonical/indicator/keyboard", get_action_group ());
@@ -422,13 +797,19 @@ public class Indicator.Keyboard.Service : Object {
[DBus (visible = false)]
private void handle_name_lost (DBusConnection? connection, string name) {
- ((!) loop).quit ();
- loop = null;
+ down ();
}
[DBus (visible = false)]
public static int main (string[] args) {
- new Service (ref args);
+ Service.service = new Service (ref args);
+
+ Posix.signal (Posix.SIGTERM, (code) => {
+ Service.service.down ();
+ });
+
+ Service.service.up ();
+
return 0;
}
}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 30b50dc2..14cf57e3 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,4 +1,2 @@
# List of source files which contain translatable strings.
-
-lib/main.c
lib/main.vala
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
new file mode 100644
index 00000000..57cc1d5d
--- /dev/null
+++ b/po/POTFILES.skip
@@ -0,0 +1 @@
+lib/main.c
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 00000000..68b242e6
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,35 @@
+# Arabic translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-10 03:47+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Arabic <ar@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "مصدر الإدخال %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "خريطة المحارف"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "رسمة تخطيط لوحة المفاتيح"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "إعدادات إدخال النص..."
diff --git a/po/ast.po b/po/ast.po
new file mode 100644
index 00000000..6bbf5251
--- /dev/null
+++ b/po/ast.po
@@ -0,0 +1,35 @@
+# Asturian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-03 15:38+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Asturian <ast@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Orixe d'entrada %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa de caráuteres"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Distribución del tecláu"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Configuración d'entrada de testu…"
diff --git a/po/az.po b/po/az.po
new file mode 100644
index 00000000..f06002de
--- /dev/null
+++ b/po/az.po
@@ -0,0 +1,35 @@
+# Azerbaijani translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-12 21:01+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Azerbaijani <az@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s giriş mənbəyi"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Simvol Xəritəsi"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Klaviatura Düzümü Qrafiki"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Mətn Daxiletmə Seçənəkləri..."
diff --git a/po/be.po b/po/be.po
new file mode 100644
index 00000000..6e4d0c10
--- /dev/null
+++ b/po/be.po
@@ -0,0 +1,35 @@
+# Belarusian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-14 10:04+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Belarusian <be@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr ""
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr ""
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr ""
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 00000000..095b771b
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,35 @@
+# Bulgarian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-11-13 14:40+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bulgarian <bg@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Входен източник %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Таблица със знаци"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Схема на клавиатурната подредба"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Параметри за въвеждане на текста..."
diff --git a/po/br.po b/po/br.po
new file mode 100644
index 00000000..c85e8ad9
--- /dev/null
+++ b/po/br.po
@@ -0,0 +1,35 @@
+# Breton translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-11-07 15:08+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Breton <br@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s orin ar gasadenn"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Kartenn al letrennoù"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr ""
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr ""
diff --git a/po/bs.po b/po/bs.po
new file mode 100644
index 00000000..06aa022f
--- /dev/null
+++ b/po/bs.po
@@ -0,0 +1,35 @@
+# Bosnian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 15:43+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s ulazni izvor"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa znakova"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Crtež rasporeda tastature"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Postavke unosa teksta..."
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 00000000..891c075e
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,35 @@
+# Catalan translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-19 10:24+0000\n"
+"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Font d'entrada %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa de caràcters"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Disposició del teclat"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Paràmetres d'entrada de text…"
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 00000000..7ee91497
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,35 @@
+# Czech translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-08 06:34+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa znaků"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Mapa rozložení klávesnice"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Nastavení zadávání textu..."
diff --git a/po/cy.po b/po/cy.po
new file mode 100644
index 00000000..1b7b6645
--- /dev/null
+++ b/po/cy.po
@@ -0,0 +1,35 @@
+# Welsh translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-08 00:05+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Welsh <cy@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:40+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr ""
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr ""
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr ""
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 00000000..e23af8be
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,35 @@
+# Danish translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 10:32+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Danish <da@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s-inputkilde"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Tegnoversigt"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Oversigt over tastaturlayout"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Indstillinger for tekstfelt..."
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 00000000..b54256ea
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,35 @@
+# German translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 11:11+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s-Eingabequelle"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Zeichentabelle"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Abbild der Tastaturbelegung"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Texteingabe-Einstellungen …"
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 00000000..c0f1502e
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,35 @@
+# Greek translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 11:42+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Greek <el@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s πηγή εισόδου"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Καθορισμός χαρακτήρων"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Διάγραμμα διάταξης πληκτρολογίου"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Ρυθμίσεις εισαγωγής κειμένου..."
diff --git a/po/en_AU.po b/po/en_AU.po
new file mode 100644
index 00000000..670f9a2d
--- /dev/null
+++ b/po/en_AU.po
@@ -0,0 +1,35 @@
+# English (Australia) translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-07 23:11+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: English (Australia) <en_AU@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:40+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s input source"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Character Map"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Keyboard Layout Chart"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Text Entry Settings..."
diff --git a/po/en_CA.po b/po/en_CA.po
new file mode 100644
index 00000000..2addbb2f
--- /dev/null
+++ b/po/en_CA.po
@@ -0,0 +1,35 @@
+# English (Canada) translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-12 10:07+0000\n"
+"Last-Translator: William Hua <Unknown>\n"
+"Language-Team: English (Canada) <en_CA@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:40+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s input source"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Character Map"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Keyboard Layout Chart"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Text Entry Settings..."
diff --git a/po/en_GB.po b/po/en_GB.po
new file mode 100644
index 00000000..f7cd508d
--- /dev/null
+++ b/po/en_GB.po
@@ -0,0 +1,35 @@
+# English (United Kingdom) translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-29 15:56+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:40+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s input source"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Character Map"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Keyboard Layout Chart"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Text Entry Settings..."
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 00000000..ed4fdfab
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,35 @@
+# Spanish translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-23 09:25+0000\n"
+"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Origen de entrada %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa de caracteres"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Distribución del teclado"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Configuración de entrada de texto…"
diff --git a/po/et.po b/po/et.po
new file mode 100644
index 00000000..3fe220ab
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,35 @@
+# Estonian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 15:17+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Estonian <et@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s sisendallikas"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Märgikaart"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Klaviatuuripaigutuse skeem"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Tekstisisestamise seaded..."
diff --git a/po/eu.po b/po/eu.po
new file mode 100644
index 00000000..b42610ed
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,35 @@
+# Basque translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-01 20:51+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Basque <eu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Karaktere-mapa"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr ""
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr ""
diff --git a/po/fa.po b/po/fa.po
new file mode 100644
index 00000000..ca1b3f47
--- /dev/null
+++ b/po/fa.po
@@ -0,0 +1,35 @@
+# Persian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-11-01 05:30+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Persian <fa@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr ""
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr ""
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr ""
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 00000000..a95fd67e
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,35 @@
+# Finnish translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-03 09:43+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Finnish <fi@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Syötelähde %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Merkkikartta"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Näppäimistön asettelu"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Tekstisyötteen asetukset..."
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 00000000..97b6b673
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,35 @@
+# French translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-08-29 08:33+0000\n"
+"Last-Translator: Matthieu Baerts <matttbe@gmail.com>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Agencement : %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Table de caractères"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Représentation de l'agencement"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Paramètres d'agencement"
diff --git a/po/gd.po b/po/gd.po
new file mode 100644
index 00000000..159ccd33
--- /dev/null
+++ b/po/gd.po
@@ -0,0 +1,35 @@
+# Gaelic; Scottish translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-30 10:02+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Gaelic; Scottish <gd@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Tùs ion-chur %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa nan caractaran"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Cairt co-dhealbhachd a' mheur-chlàir"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Roghainnean ion-chur teacsa..."
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 00000000..e7dfc34d
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,35 @@
+# Galician translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-29 17:49+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Galician <gl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Orixe da entrada: %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa de caracteres"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Gráfica da disposición do teclado"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Configuración da entrada de texto..."
diff --git a/po/he.po b/po/he.po
new file mode 100644
index 00000000..d0b75feb
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,35 @@
+# Hebrew translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-01 12:03+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Hebrew <he@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "מקור קלט %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "מפת תווים"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "תרשים פריסת המקלדת"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "הגדרות הזנת טקסט…"
diff --git a/po/hi.po b/po/hi.po
new file mode 100644
index 00000000..7671ddb4
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,35 @@
+# Hindi translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 21:49+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Hindi <hi@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "अक्षर तालिका"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr ""
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr ""
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 00000000..c8cb8f85
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,35 @@
+# Hungarian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-04 18:45+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Hungarian <hu@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s beviteli forrás"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Karaktertábla"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Billentyűzetkiosztás"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Szövegbeviteli beállítások…"
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 00000000..9124d5fa
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,35 @@
+# Indonesian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-11-12 16:23+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Indonesian <id@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr ""
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr ""
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr ""
diff --git a/po/indicator-keyboard.pot b/po/indicator-keyboard.pot
index 171c3021..34931572 100644
--- a/po/indicator-keyboard.pot
+++ b/po/indicator-keyboard.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-07 15:03-0400\n"
+"POT-Creation-Date: 2013-09-27 16:28+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,14 +17,19 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../lib/main.c:1405 ../lib/main.vala:322
+#: ../lib/main.vala:427
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:525
msgid "Character Map"
msgstr ""
-#: ../lib/main.c:1407 ../lib/main.vala:323
+#: ../lib/main.vala:526
msgid "Keyboard Layout Chart"
msgstr ""
-#: ../lib/main.c:1409 ../lib/main.vala:324
+#: ../lib/main.vala:527
msgid "Text Entry Settings..."
msgstr ""
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 00000000..ec0b5ce0
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,35 @@
+# Italian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-12 11:02+0000\n"
+"Last-Translator: Milo Casagrande <milo.casagrande@gmail.com>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Sorgente di input %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Tabella caratteri"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Disposizione tastiera"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Impostazioni inserimento testo..."
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 00000000..11dafc82
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,35 @@
+# Japanese translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-29 07:25+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Japanese <ja@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s 入力ソース"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "文字マップ"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "キーボードレイアウト表"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "テキスト入力設定..."
diff --git a/po/km.po b/po/km.po
new file mode 100644
index 00000000..76aeadd0
--- /dev/null
+++ b/po/km.po
@@ -0,0 +1,35 @@
+# Khmer translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-17 01:42+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Khmer <km@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "ប្រភព​បញ្ចូល %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "ផែនទី​តួអក្សរ"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "តារាង​ប្លង់​ក្ដារចុច"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "ការ​កំណត់​ធាតុ​អត្ថបទ..."
diff --git a/po/kn.po b/po/kn.po
new file mode 100644
index 00000000..e81f9dbf
--- /dev/null
+++ b/po/kn.po
@@ -0,0 +1,35 @@
+# Kannada translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-16 11:18+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Kannada <kn@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "ಅಕ್ಷರ ನಕ್ಷೆ"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "ಕೀಲಿಮಣೆ ವಿನ್ಯಾಸ ಪಟ್ಟಿ"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "ಪಠ್ಯ ನಮೂದಿಸುವ ಸಂಯೋಜನೆಗಳು ..."
diff --git a/po/ko.po b/po/ko.po
new file mode 100644
index 00000000..b9700fae
--- /dev/null
+++ b/po/ko.po
@@ -0,0 +1,35 @@
+# Korean translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-01 10:55+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Korean <ko@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "입력 소스 %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "문자 표"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "키보드 배치 표"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "텍스트 입력창 설정..."
diff --git a/po/lt.po b/po/lt.po
new file mode 100644
index 00000000..b9dc5719
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,35 @@
+# Lithuanian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-08-30 14:47+0000\n"
+"Last-Translator: Aurimas Fišeras <Unknown>\n"
+"Language-Team: Lithuanian <lt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s įvesties šaltinis"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Simbolių lentelė"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Klaviatūros klavišų išdėstymas"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Teksto įvedimo nustatymai..."
diff --git a/po/lv.po b/po/lv.po
new file mode 100644
index 00000000..4c36070b
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,35 @@
+# Latvian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-03 15:03+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Latvian <lv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s ievades avots"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Rakstzīmju tabula"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Klaviatūras Izkārtojuma Tabula"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Teksta Ievades Iestatījumi..."
diff --git a/po/ms.po b/po/ms.po
new file mode 100644
index 00000000..8175b054
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,35 @@
+# Malay translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 17:17+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Malay <ms@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "% sumber input"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Peta Aksara"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Carta Bentanga Papan Kekunci"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Tetapan Masukan Teks..."
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 00000000..f58c49af
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,35 @@
+# Norwegian Bokmal translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-07 09:55+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Norwegian Bokmal <nb@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s inndatakilde"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Tegnkart"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Kart over tastaturoppsett"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Innstillinger for tekstskriving …"
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 00000000..60e352bc
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,35 @@
+# Dutch translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-30 07:20+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Dutch <nl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s invoerbron"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Tekens en symbolen"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Toetsenbordindelingoverzicht"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Tekstinvoerinstellingen…"
diff --git a/po/oc.po b/po/oc.po
new file mode 100644
index 00000000..9506fb82
--- /dev/null
+++ b/po/oc.po
@@ -0,0 +1,35 @@
+# Occitan (post 1500) translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-02 06:07+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Occitan (post 1500) <oc@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Agençament : %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Taula de caractèrs"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Representacion de l'agençament"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Paramètres d'agençament"
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 00000000..f639dd79
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,35 @@
+# Polish translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-13 13:52+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s metoda wprowadzania"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa znaków"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Tabela układów klawiatury"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Ustawienia wprowadzanie tekstu..."
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 00000000..dfe90588
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,35 @@
+# Portuguese translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-10 21:34+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "fonte de entrada %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa de Caracteres"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Disposição do teclado"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Definições de entrada de texto..."
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 00000000..c9309262
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,35 @@
+# Brazilian Portuguese translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-08-28 01:25+0000\n"
+"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:40+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "fonte de entrada %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa de caracteres"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Disposição do teclado"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Configurações de entrada de texto…"
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 00000000..2ec20b48
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,35 @@
+# Romanian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-30 07:42+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Romanian <ro@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr ""
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr ""
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr ""
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 00000000..db35d77e
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,35 @@
+# Russian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-12 22:02+0000\n"
+"Last-Translator: Igor Zubarev <igor.zubarev@gmail.com>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Источник ввода %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Таблица символов"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Схема раскладки клавиатуры"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Параметры ввода текста..."
diff --git a/po/si.po b/po/si.po
new file mode 100644
index 00000000..99d40413
--- /dev/null
+++ b/po/si.po
@@ -0,0 +1,35 @@
+# Sinhalese translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-31 17:57+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Sinhalese <si@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s ආදාන මූලාශ්‍රය"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr ""
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr ""
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr ""
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 00000000..23bc394f
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,35 @@
+# Slovak translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-02 13:04+0000\n"
+"Last-Translator: Pavol Klačanský <pavol@klacansky.com>\n"
+"Language-Team: Slovak <sk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "zdroj vstupu %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Mapa znakov"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Rozloženie klávesnice"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Nastavenia vstupu…"
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 00000000..3d5f6fcb
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,35 @@
+# Slovenian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-27 18:24+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Slovenian <sl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s vir vnosa"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Preglednica znakov"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Prikaz razporeditve tipk"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Nastavitve vnosa besedila ..."
diff --git a/po/sq.po b/po/sq.po
new file mode 100644
index 00000000..3c3f8cde
--- /dev/null
+++ b/po/sq.po
@@ -0,0 +1,35 @@
+# Albanian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 13:40+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Albanian <sq@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s burim hyrjeje"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Harta e Simboleve"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Harta e Daljes së Tastierës"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Parametrat e Hyrjes së Tekstit..."
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 00000000..68801897
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,35 @@
+# Serbian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-06-21 11:10+0000\n"
+"Last-Translator: Иван Благојевић <ivan_blagojevic@mail.com>\n"
+"Language-Team: Serbian <sr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr ""
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Мапа карактера"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Шаблон распореда тастатуре"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Подешавања уноса текста"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 00000000..e1765671
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,35 @@
+# Swedish translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-30 08:08+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Swedish <sv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s inmatningskälla"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Teckentabell"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Teckentabell"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Inställningar för textinmatning..."
diff --git a/po/ta.po b/po/ta.po
new file mode 100644
index 00000000..b6bf40eb
--- /dev/null
+++ b/po/ta.po
@@ -0,0 +1,35 @@
+# Tamil translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-25 01:48+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Tamil <ta@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s உள்ளீடு மூலம்"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "எழுத்து வரைபடம்"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "விசைப்பலகை வரைபடம்"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "உரை நுழைவு அமைப்புகள்..."
diff --git a/po/tg.po b/po/tg.po
new file mode 100644
index 00000000..a4f34125
--- /dev/null
+++ b/po/tg.po
@@ -0,0 +1,35 @@
+# Tajik translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 14:41+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Tajik <tg@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Манбаи вуруди %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Тарҳбандии аломатҳо"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Аломатҳои тарҳбандии клавиатура"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Танзимоти вуруди матн..."
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 00000000..2ffd4dce
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,35 @@
+# Turkish translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-28 21:34+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Turkish <tr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s girdi kaynağı"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Karakter Haritası"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Klavye Düzeni Şeması"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Metin Girdisi Ayarları..."
diff --git a/po/ug.po b/po/ug.po
new file mode 100644
index 00000000..93c72754
--- /dev/null
+++ b/po/ug.po
@@ -0,0 +1,35 @@
+# Uyghur translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-30 06:50+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Uyghur <ug@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:39+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s كىرگۈزۈش مەنبەسى"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "ھەرپ-بەلگە جەدۋىلى"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "ھەرپتاختا ئورۇنلاشتۇرۇش كۆرۈنۈشى"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "تېكىست كىرگۈزۈش تەڭشەكلىرى…"
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 00000000..f560d9c0
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,35 @@
+# Ukrainian translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-09-27 17:20+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Ukrainian <uk@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:40+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "Джерело введення %s"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Таблиця символів"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Таблиця розкладки клавіатури"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Параметри введення тексту…"
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 00000000..f1f40f52
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,35 @@
+# Vietnamese translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-16 11:12+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Vietnamese <vi@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:40+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s nguồn đầu vào"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "Sơ đồ kí tự"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "Biểu đồ Bố cục Bàn phím"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "Thiết đặt nhập văn bản..."
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 00000000..a3f345fa
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,35 @@
+# Chinese (Simplified) translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-03 12:50+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:40+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s 输入源"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "字符映射表"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "键盘布局图"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "文本输入设置..."
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 00000000..d6bf7060
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,35 @@
+# Chinese (Traditional) translation for indicator-keyboard
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the indicator-keyboard package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: indicator-keyboard\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-11-20 05:48+0000\n"
+"PO-Revision-Date: 2013-10-14 14:50+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-11-21 06:40+0000\n"
+"X-Generator: Launchpad (build 16831)\n"
+
+#: ../lib/main.vala:552
+#, c-format
+msgid "%s input source"
+msgstr "%s 輸入來源"
+
+#: ../lib/main.vala:677
+msgid "Character Map"
+msgstr "字元對應表"
+
+#: ../lib/main.vala:678
+msgid "Keyboard Layout Chart"
+msgstr "鍵盤配置圖"
+
+#: ../lib/main.vala:679
+msgid "Text Entry Settings..."
+msgstr "文字輸入設定..."
diff --git a/tests/indicator-keyboard-test.in b/tests/indicator-keyboard-test.in
index 7ae24423..621133dd 100644
--- a/tests/indicator-keyboard-test.in
+++ b/tests/indicator-keyboard-test.in
@@ -3,5 +3,11 @@
export PATH="@abs_top_builddir@/tests/execute:$PATH"
export DCONF_PROFILE="@abs_top_builddir@/tests/profiles/indicator-keyboard-test"
export GSETTINGS_SCHEMA_DIR="@abs_top_builddir@/data"
+export XDG_RUNTIME_DIR="@abs_top_builddir@/tests"
-xvfb-run -a ./indicator-keyboard-tests
+if xvfb-run -a ./indicator-keyboard-tests
+then
+ pkill -f tests/gvfs || exit 0
+else
+ pkill -f tests/gvfs && exit 1
+fi
diff --git a/tests/main.vala b/tests/main.vala
index d9d52733..1a7833a2 100644
--- a/tests/main.vala
+++ b/tests/main.vala
@@ -18,6 +18,7 @@
const int TIMEOUT_S = 1;
const int TIMEOUT_MS = 1000;
+const int LONG_TIMEOUT_S = 10;
[DBus (name = "com.canonical.indicator.keyboard.test")]
public class Service : Object {
@@ -150,18 +151,12 @@ static void test_activate_input_source (void *data) {
var action_group = DBusActionGroup.get ((!) fixture.connection,
"com.canonical.indicator.keyboard",
"/com/canonical/indicator/keyboard");
- var loop = new MainLoop (null, false);
- var signal_name = action_group.action_state_changed["current"].connect ((action, state) => {
- loop.quit ();
- });
-
action_group.list_actions ();
action_group.activate_action ("current", new Variant.uint32 (2));
- var source = Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ var loop = new MainLoop (null, false);
+ Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
loop.run ();
- Source.remove (source);
- action_group.disconnect (signal_name);
var state = action_group.get_action_state ("current");
var current = state.get_uint32 ();
@@ -199,7 +194,7 @@ static void test_activate_character_map (void *data) {
action_group.activate_action ("map", null);
- var source = Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ var source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { loop.quit (); return false; });
loop.run ();
Source.remove (source);
((!) fixture.service).disconnect (signal_name);
@@ -238,7 +233,7 @@ static void test_activate_keyboard_layout_chart (void *data) {
action_group.activate_action ("chart", null);
- var source = Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ var source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { loop.quit (); return false; });
loop.run ();
Source.remove (source);
((!) fixture.service).disconnect (signal_name);
@@ -266,7 +261,7 @@ static void test_activate_text_entry_settings (void *data) {
action_group.activate_action ("settings", null);
- var source = Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ var source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { loop.quit (); return false; });
loop.run ();
Source.remove (source);
((!) fixture.service).disconnect (signal_name);
@@ -300,7 +295,7 @@ static void test_migration (void *data) {
try {
var cancellable = new Cancellable ();
- var source = Timeout.add_seconds (TIMEOUT_S, () => { cancellable.cancel (); return false; });
+ var source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { cancellable.cancel (); return false; });
var dbus_proxy = new DBusProxy.sync ((!) fixture.connection,
DBusProxyFlags.NONE,
@@ -325,6 +320,10 @@ static void test_migration (void *data) {
return;
}
+ var loop = new MainLoop (null, false);
+ Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ loop.run ();
+
try {
string sources;
Process.spawn_command_line_sync ("gsettings get org.gnome.desktop.input-sources sources", out sources);
@@ -362,7 +361,7 @@ static void test_no_migration (void *data) {
try {
var cancellable = new Cancellable ();
- var source = Timeout.add_seconds (TIMEOUT_S, () => { cancellable.cancel (); return false; });
+ var source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { cancellable.cancel (); return false; });
var dbus_proxy = new DBusProxy.sync ((!) fixture.connection,
DBusProxyFlags.NONE,
@@ -387,6 +386,10 @@ static void test_no_migration (void *data) {
return;
}
+ var loop = new MainLoop (null, false);
+ Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ loop.run ();
+
try {
string sources;
Process.spawn_command_line_sync ("gsettings get org.gnome.desktop.input-sources sources", out sources);
@@ -429,7 +432,7 @@ static void test_update_visible (void *data) {
action_group.list_actions ();
- var source = Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ var source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { loop.quit (); return false; });
loop.run ();
Source.remove (source);
action_group.disconnect (signal_name);
@@ -453,7 +456,7 @@ static void test_update_visible (void *data) {
return;
}
- source = Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { loop.quit (); return false; });
loop.run ();
Source.remove (source);
action_group.disconnect (signal_name);
@@ -477,7 +480,7 @@ static void test_update_visible (void *data) {
return;
}
- source = Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { loop.quit (); return false; });
loop.run ();
Source.remove (source);
action_group.disconnect (signal_name);
@@ -562,7 +565,7 @@ static void test_update_input_source (void *data) {
return;
}
- source = Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { loop.quit (); return false; });
loop.run ();
Source.remove (source);
action_group.disconnect (signal_name);
@@ -669,7 +672,7 @@ static void test_update_input_sources (void *data) {
return;
}
- source = Timeout.add_seconds (TIMEOUT_S, () => { loop.quit (); return false; });
+ source = Timeout.add_seconds (LONG_TIMEOUT_S, () => { loop.quit (); return false; });
loop.run ();
Source.remove (source);
section.disconnect (signal_name);