Category Archives: Development

Translate *.po files with Poedit

Many of you wanted to help translating LXDE but only a few know how to do this, until now. Here is a description on how to help translating the components of LXDE. You can also view this article in the Wiki:

Translate *.po files with Poedit

This is a description how to translate LXDE components with Poedit. It is not complete and may be wrong at some places edit when I missed something important or even said something wrong (hope not ;)).

Get the code

First of all you should get the latest code from svn. To do so type in the following

 svn co https://lxde.svn.sourceforge.net/svnroot/lxde/trunk/ ./lxde

into a Terminal. You also can use a script for this.

 #!/bin/bash
# svn_co_lxde.sh
# autor maces

if [ -z $1 ]
then
	xterm -e $0 copy
else
        echo "starting"
        echo "------------------"
        svn co https://lxde.svn.sourceforge.net/svnroot/lxde/trunk/ ./lxde

        echo "------------------"
        echo "(program exited with code: $?)"
        echo "Press return to continue"
        #to be more compatible with shells like dash
        dummy_var=""
        read dummy_var
fi
exit

The script opens xterm and execute the same command as above. Make sure to make it executable (chmod 755 ./svn_co_lxde.sh). You now should have the latest code in ./lxde.

Install Poedit

Of course we need Poedit, so just install it (as root).

Archlinux:

 pacman -Sy poedit

Debian/Ubuntu:

 aptitude install poedit

Please add the command for your Distro

Translating

In this example we are going to translate LXMusic (Just change the path for another Program).

Open a *.pot file

This way when there is no yourlanguage.po file. Click on File->New catalog from POT file, navigate to ./lxde/lxmusic/po and open lxmusic.pot with Poedit and open the file. Now insert the wanted informations (if you want) and click OK. Now you have to choose the *.po file which will be generated. Please name it like de_DE.po/es_ES.po/zh_TW.po/… .

Open a *.po file

This way when you want to edit an existing yourlanguage.po file. Click on File->Open navigate to ./lxde/lxmusic/po and open lxmusic.po with Poedit and open the file.

Start translating

You should see something like this (If it doesn’t check Menu->View).

Here is a explanation of what you see.

Now we start translating. Simply select the strings you want to translate by click on them and insert the translation in the empty box under the original text (look at the Image). Go on like this until you are ready.

(hint: ctrl+up/down arrow moves between the strings)

Fuzzy translations

A translation can be marked as fuzzy, a fuzzy translation can originate from more or less to sources. The first one being yourself – or one of your peers. If a string is roughly translated and needs more attention it’s wise to mark it fuzzy to make it easy to find and review. The second source for fuzzy strings are msgmerge or something similar, when mergin an old translation with an updated template (.pot) msgmerge will note updated english strings with fuzzy to notify the translator to review the translations.

Do not leave fuzzy strings in translations considered done!

Image:Fuzzy-button.png

Edit Comment

For editing/making a comment simply click on the edit button (next to fuzzy button) and insert a comment in the Window which will appear.

Image:Edit-comment.png

You easily can see if a translation contains a comment by the comment icon in front of the original text in the mainview.

Image:Comment-symbol.png

What have I changed

To check what you have changed look for lines with a star in front of the original text.

Image:Changed-symbol.png

Save the translation

To save the .*po file just Click on File->Save.

Upload translation

There are (at the moment)two ways to upload the translations.

Way1 – The tracker

For this way you need an SF.net account. Go to https://sourceforge.net/tracker2/?group_id=180858&atid=894871 and click on add new artifact. As subject use something like “German translation for lxmusic” and choose “Translations” as Category. Type in a nice text and don’t forget to attach your *.po file. After this click on Add Artifact and you are ready.

Way2 – The Mailinglist

For this way you need to subscribe to translation@mailinglist.lxde.org. If you are subscribed write a email to translation@mailinglist.lxde.org with Something like “German translation for lxmusi” as subject. Type in a nice text and don’t forget to attach your *.po file. After this send the email and you are ready.

Links

Wiki:

Translation project:

Mailinglist:

Launchpad or Transifex? What is the best system for LXDE?

With the increase of LXDE components and the ongoing development of LXDE the need for a better translation system has increased. We discussed different option in this forum here: viewtopic.php?f=12&t=35

We have set up a vote for you to cast which system and solution you prefer. Please vote in this forum: http://forum.lxde.org/viewtopic.php?f=12&t=163

There are three options:

1. Launchpad

2. Transifex at fedorahosted.org

3. Transifex hosted at lxde.org

Some quotes from the forum:

cwickert:
Launchpad
Pros:
* large user base, this means a lot of potential translators
* beginner-friendly
Cons:
* bad workflow for getting translations upstream
* getting translations into a a new release requires manual intervention: It has to be downloaded from launchpad and added to LXDE’s SVN.
* known to produce bad translations. This is the downside of being beginner-friendly

Transifex
Pros:
* More professional
* works with nearly every VCS: CVS, SVN, git, …
* Translations are automagically pushed back to upstream’s VCS
Cons:
* Requires ether to be set up on a server (which also mean maintainance) or to use fedorahosted.org
* Smaller userbase

Elias: I think Transifex is better for this project, because the development of LXDE is not made in Launchpad. Launchpad is not (afaik) so flexible than Transifex.

cwickert: If we use fedorahosted we are bound to the Fedora accounts system (just like we are bound to Launchpad user management), if we setup our own transifex we can manage users ourselves more easily.

ogmaciel: I’d like to support the idea of using Transifex and host it with Fedora projects (unless someone has the time and hardware/bandwith). All pros/cons already cited are a pretty good list but the one that imho is the most important is the fact that translations should always be done upstream, and then trickle down to distros. Transifex plus a good quality control process before committing files (more about that later) will allow for a quick, efficient, and top quality translation process.

For a better coordination of translations of LXDE we have started the LXDE Translation Project. Please also join the Translations Mailing list.

Transifex: http://transifex.org
Launchpad: https://launchpad.net
Forum for voting: http://forum.lxde.org/viewtopic.php?f=12&t=163
LXDE Translation Project: http://wiki.lxde.org/en/Category:Translations
LXDE Translations Mailing list: http://mailinglist.lxde.org/cgi-bin/mailman/listinfo/translation

LXMusic – Minimalist xmms2-based music player

Everyone loves screenshots!

lxmusic.png

LXMusic – The minimalist music player for LXDE. This is based on xmms2, which is lightweight and has server/client design. The user interface is quite simple, clean, and intuitive. At first glance, it looks similar to my favorite player on Windows – foobar 2000. LXMusic only has very few features, and it can do nothing more than just playing a list of music files. However, this is what’s lacking today, a player which doesn’t try to teach you how to listen your own music files. It just plays! That’s all.

It’s still under development and is still in alpha stage, but it’s enough for everyday use. Please grab the tarball or download the hotest code from LXDE svn repo to get it tested!

LXDE Translation Project

We are starting the LXDE translation project. Please join the LXDE translation team now! Help translating LXDE into different languages. Join us improving the documentation and resources around LXDE.

It is the aim of the LXDE team and community to give access to information to people with less powerful hardware. Many did not have the chance to learn English or another second language. Let us make LXDE available in their language, so everyone can profit from the speed and easy to use features of LXDE!

LXDE is under constant development and recently more new components have been added. More components and updates means more opportunities for people to participate.

More ideas how to join the LXDE Community here: join.lxde.org

Recent Status of LXDE

Actually, the LXDE (Lightweight X11 Desktop Environment) project had rested for some time. Though we’re getting more and more people to join us since Linux World Expo 2008, LXDE have no much improvements since July this year. It’s happened due to our main developers didn’t have time to write new code, PCMan took time to focuses on his physician jobs, Jserv has worked for a new project which is confidential. About me, I was burdened with my family, so I also need to focus on my current jobs and my school to earn more money.

Recently, we’re planning to release a new version and new stuffs of some LXDE components for Merry Christmas. :D It is a great news that LXDE has a new project – “menu-cache”, which is a library creating and utilizing caches to speed up the manipulation for freedesktop.org defined application menus, and also it can be used as a replacement of libgnome-menu of gnome-menus. It means the menu-cache will speed up our LXLauncher and LXPanel menu, they will be getting faster. for supporting the menu-cache, PCMan is working hard on LXPanel right now, you can see logs of SVN everyday.

Besides, we hope to release a lxpanel-dev package for development of lxpanel plugin next version. Currently, it is difficult to write a new plugin for lxpanel, if you wanna write a new one, you have to download the LXPanel sourcecode and inject your code into the LXPanel and then copy the .so file to the system folder after compile it successful. It doesn’t make sense that is too complicated for developing a plugin. So we are tring to export header files and pkgconfig for making easy for development of plugin. Additionally, LXPanel has been reformed, lxpanel-core and lxpanel-plugin be separated. It will be helpful to maintain LXPanel sourcecode for us.

Well, I wanna make an apology for all of patch provider right now, because you guys’ patches which wasn’t applied for a long time. We are reviewing those patches currently, it will be applied as soon as possible, I hope so.

LXDE team members believe that LXDE has a great future, even if we don’t have much time to do that. Hope you guys can join us to help LXDE keeps going. :-)

LXPanel 0.4.0 beta! Testers are needed!

We haven’t have new releases of LXPanel for quite a long time, but the development is still ongoing.

Major Changes:
* Greatly rewrite application menu with our new menu-cache library. Now it’s complete and more user-friendly
* Improved “Run” dialog
* Improved OSS volume plugin
* Image showed on application menu button can be changed with GUI.
* Add new temperature monitor plugin by Daniel Kesler
* Size of icons now can automatically be automatically adjusted according to the height of the panel.
* Numerous bug fixes and more…

Please get it tested since lxpanel 0.4 will be released very soon.

Note that to make the whole new menu work correctly, now menu-cache and lxmenu-data are needed.
LXPanel source tarball

menu-cache library tarball (lightweight library used to generate standard compliant menus)

lxmenu-data tarball (data files used to build the menu)

LXSession Edit – Configure what’s automatically started in LXDE.

It’s well known and well documented that our session manager LXSession Lite suppport the autostart freedesktop.org specs. However, autostart spec is a term for developers and it’s meaningless for our end users. Basically, it provides a way to automatically start some applications after login.

Now this can (partially) be configured through a simple GUI – LXSession Edit.

You can turn on some disabled gnome applications in LXDE with this handy tool.

Also, window manager used in LXDE can be changed with this tool, too (Only lxsession lite is supported, not the deprecated lxsession).

Currently adding and removing application from this startup list is not yet available, but it will be support in the next release.

The package is available here for testing: https://sourceforge.net/project/showfil…
Testers and packagers are wanted!!

Community First!

The current release of MySQL shows the problems free and open source software projects face that put business first and community second. Michael “Monty” Widenius critizes in his Blog the current developement model of MySQL and recommends not to use the current release 5.1 of the database system.

The reason I am asking you to be very cautious about MySQL 5.1 is that there are still many known and unknown fatal bugs in the new features that are still not addressed.

Monty gives a some reasons why the MySQL development department again got a quality problem with the release. Some of them are:

  • MySQL 5.1 was declared beta and RC way too early. The reason MySQL 5.1 was declared RC was not because we thought it was close to being GA, but because the MySQL manager in charge *wanted to get more people testing MySQL 5.1*. This didn’t however help much, …
  • We have changed the release model so that instead of focusing on quality and features our release is now defined by timeliness and features…
  • The MySQL core developers have been split into too many teams and only a small part of the core developers have been working on MySQL 5.1 to get the bugs fixed. Some of the core developers have also recently left the MySQL organization which is a serious issue as there is not many of of them.
  • Too many new developers without a thorough knowledge of the server have been put on the product trying to fix bugs…
  • Bug fixing and development processes are not systematic and not persistent.
  • We have not been giving the MySQL community enough opportunities to test MySQL 5.1 (too few releases). … the MySQL current development model doesn’t in practice allow the MySQL community to participate in the development of the MySQL server …
  • Internal QA on the MySQL server was started very late in the process. Now when the process have started to show results, the found bugs have largely being ignored as fixing these they would delayed the MySQL 5.1 GA date.
  • The MySQL server team have a bug fixing policy where a bug that has existed a long time has a lower priority ‘because people know about them’. This is supposedly one of the reasons why the Bug#989 mentioned above has not been fixed.

As I said in my talk at the MySQL users conference, I think it’s time to seriously review how the MySQL server is being developed and change the development model to be more like Drizzle and PostgreSQL where the community has a driving role in what gets done! (http://monty-says.blogspot.com/2008/11/oops-we-did-it-again-mysql-51-released.html)

What can we learn for the LXDE project here? The consequences are clear. During recent months we have already worked hard to improve the tools and infrastructure for the growing LXDE community and we will continue to do it. The community must take a leading role in development of software systems in order to keep the system on the bleeding edge.

Companies are always welcome to join development and focus on their business models. Projects like LXDE have a roadmap that is following long term goals instead of short term profitability. We are inviting more people to join the LXDE development, test LXDE and support and contribute – for faster and more energy efficient software. Please check out our contribution page at http://join.lxde.org.

System benchmark tests of LXDE with lmbench suite.

Penk from the LXDE core team in Taiwan has done a lxde system benchmark test using the lmbench suite.

lmbench is a suite of simple, portable ANSI/C microbenchmarks for UNIX/POSIX. In general, it measures two key features: latency and bandwidth. It is intended to give system developers insight into basic costs of key operations. (http://freshmeat.net/projects/lmbench/)

The results can be seen in the test file here: lxde-benchmark

More benchmark tests can be done with tools from the Linux Benchmark Suite: http://lbs.sourceforge.net