JonathanThomas

Jonathan Thomas

Contact information

Project

  • Project Name: KDE Language Selector Overhaul

  • Project Description: Bring the KDE frontend for Language Selector to feature parity with the GTK+ frontend, plus implement some additional nifty features.

  • If you would be willing and able to do other projects instead, which ones?

    • Kubuntu Software Center frontend
    • Ubuntu One KDE client
  • Why did you like this idea?

I would like to undertake this project because for a long time localization support has been ignored in Kubuntu. While the Qt Language Selector GUI has been around for a long time, it's never been too terribly solid, and has fallen behind the GNOME GUI in terms of functionality over the years. Ubuntu is Linux for human beings, including the majority of the world that doesn't speak English, so this is a very important project for Kubuntu.

  • Please describe a tentative project architecture or an approach to it:

I have a whole list of features that the KDE frontend lacks, in comparison to the GNOME frontend. In addition to these, I would also port the KDE frontend from a normal KApplication to a KControl Module, allowing it to be embedded in System Settings, instead of being a separate dialog launched by a button in KDE's Language/Locale System Settings module. This rewrite of the GUI would offer superior KDE integration. The other big feature is the ability to run language-selector as a normal user, using PolicyKit for running privileged tasks. This would also be necessary for a System Settings port.

If I finish early I could work on adding language selection to KDM, and integrating that with the current locale module in System Settings.

Here is my whole Todo list:

Major todo:

* Run as normal user:

  • Port writeLanguageSettings() from LanguageSelectorBase to a small C++helperapp. It should copy the KDE language settings to /etc/default/locale. Add to kdebase-runtime via a patch, to prevent the lang-selector packaging from getting weird

  • Patch the locale KCM with a button that runs this helper app as root via KAuth (PolicyKit)

  • Remove the "select" --mode from and the "Set as system default" button from qt-language-selector. Obsoleted by the above.

* Port to KCM:

  • Port qt-language-selector from a KApplication to a KCModule
  • Merge add/remove dialogs (for a later feature)
  • Remove the existing patch from the Ubuntu packages for kdebase-runtime for launching qt-language-selector as it will be outdated by the above. We will still keep KDE's KCM around to set KDE's language and locale settings.

Todo:

* Control non-KDE, non-system lang/locale settings:

  • Currently, qt-language-selector's "select" mode will only set the entire system's default lang/locale. KDE currently only applies its lang settings to itself. Write something to the user's .bashrc to export his current KDE locale/lang settings to the rest of his session for non-KDE apps.

* Fine-grained language support installation options:

  • In the langpack installer/remover, add checkboxes for whether or not writing aids, fonts, and input methods are installed for various languages

* Improved IM-support:

  • Get qt-language-selector to add the KIMPanel applet, if it works with IBus. Perhaps just implement it, but wait until IBus works with KIMPanel to enable it by default.

* Missing package notification enhancements:

  • Possibly use KNotify, as passivePopups were used in the past
  • Implement list of missing packages for the "missing language support" dialog
  • Add the ability to ignore missing support packages, for example if you don't care about a certain program or a certain language variation.

* Get language-selector to install kde-l10n-* packages when language-pack-* packages are installed

Minor todo:

* Rename to kde-language-selector

* Give the install/remove QListView a nice little filter bar, to save our poor scrollwheels

* Fix bugs as encountered

  • Give us details about the milestones for this project

    • Week 1: Language Selector can now be run without admin privileges
    • Week 3: KControl Module port is completed, language selector is now a System Settings module
    • Week 4: Language Selector can now set non-KDE, non-system language/locale settings.
    • Week 5: Fine-grained language support installation/removal controls
    • Week 6: Improved IM support
    • Week 7: Get Language Selector to install kde-l10n-* packages when language-pack-* packages are installed
    • Week 8: Write improved IM support
    • Week 9: Enhance missing language support notifications
    • Week 10: Complete "Minor todo" list
    • Week 12: Remaining time has been spent bug squashing and regression hunting. Project complete.
  • Why will your proposal benefit Ubuntu?

This will benefit Ubuntu because it will greatly enhance multilingual user's Kubuntu experience, helping Kubuntu put its best foot forward in regards to showcasing the "Linux for Human Beings" tenant of Ubuntu.

Open Source

  • Please describe any previous Open Source development experience

I have been heavily involved in Kubuntu development for the past two years. I was a contributor and sponsor in the KDE MOTU team, and have contributed to the packaging an maintenance of KDE packages, as well as the development and maintenance of Kubuntu utilities.

  • Why are you interested in Open Source?

I was a 13 year old who was frustrated with Windows. I recalled that my dad used something called Linux, and decided to give Fedora a spin. I used it on and off, and eventually found Kubuntu when I was 14 or so. I used Kubuntu more often than I did Windows (Windows still had games, so it was not abolished...) and eventually encountered all the hype over KDE4. The potential that KDE4 offered fueled my passion for Open Source software, and I have been contributing since the release of Kubuntu 8.04 LTS.

Availability

  • How long will the project take? When can you begin?

This project will take close to around the full three months of the Google summer of code. I can begin as soon as the coding period of the GSoC begins. (UDS is the previous week)

  • How much time do you expect to dedicate to this project? (weekly)

35 hours a week or more.

  • Where will you based during the summer?

Northfield, NH

  • Do you have any commitments for the summer? (holidays/work/summer courses)

I'll most likely be taking a singular Summer Course at the Tech.

  • Please designate a back up student (in case you need to withdraw your application)

Might be a bit hard to find somebody who wants to do the exact same thing as me... It won't be the end of the world if I have to withdraw my application, though. Smile :)

Other

  • Have you ever participated in a previous GSoC? (describe your project)

No.

  • Have you applied for any other 2010 Summer of Code projects? If yes, which ones?

No.

  • Why did you apply for the Google Summer of Code ?

I need a job to support my college education, and I'd much rather be doing something I love for money rather than flipping burgers or retail.

  • Why did you choose Ubuntu as a mentoring organization?

I chose Ubuntu because I use Kubuntu. I would very much like to be able to dedicate my entire summer to contributing to Kubuntu, because otherwise I'd either have to get a job or do GSoC with another project, which would take away time I could contribute to Ubuntu with.

  • Why do you want to participate and why should Ubuntu choose you?

My motives for participation are why I applied. I feel that Ubuntu should choose you because I have been shown to be a reliable contributor over the past two years, and I have a well-planned-out project that would bring great benefits to the K/Ubuntu project as a whole.

GSoC/2010/JonathanThomas (last edited 2010-03-31 19:43:44 by echidnaman)