Home Home > Localization
Sign up | Login

Archive for the ‘Localization’ Category

Highlights of YaST development sprint 35

May 25th, 2017 by

openSUSE Conference 2017 is coming! And as we flight there (literally, one third of the YaST team is in a plane right now typing this), we wanted to inform our beloved readers on what we did in the previous three weeks.

So here is our report, brought to you by airmail!

Bugfixes, bugfixes everywhere

Leaving openSUSE Tumbleweed aside, The YaST team is currently working to deliver SLE12-SP3, openSUSE Leap 42.3, SLE15, openSUSE Leap 15, SUSE CaaSP 1.0 and Kubic (more about Kubic later). Three of them are already in beta phase, which means they are being extensively tested by several parties and in many scenarios, hardware platforms and possible configurations. That amount of manual testing always result in several bug being discovered, no matter how much we try to have some automated tests for the most common cases.

Many of the bugs our testers are finding are related to internationalization and localization, mainly texts in the UI that are always displayed in English, despite the system been configured (or being installed) in a different language.

But, of course, other kind of bugs are also being found. For example, our hardware detection component (hwinfo) was not able to deal with some new machines, making the installation experience everything but pleasant.

As a result, a significant amount of the YaST team manpower during this sprint was targeted to squash those annoying bugs. Which doesn’t mean we didn’t have time for some interesting new features and improvements.

Storage reimplementation: unlock encrypted devices

Once again, our new storage system comes with news. Now it’s able to detect and unlock preexisting encrypted devices during the hard disks probing step, raising you a new pop-pup dialog to ask for the corresponding device password. After unlocking the devices, all your installed systems will be accessible for upgrade and, moreover, the LVM volumes allocated over encrypted devices will be activated.

The new storage stack is expected to debut in SLE15 (and, thus, openSUSE Leap 15), but the functionality can already be tested, for both the installation and upgrade processes, with the StorageNG test ISOs.

Luks activation in StorageNG

The storage reimplementation & AutoYaST – a love story

But the happiest news coming from the new storage stack during this sprint is it’s marriage with AutoYaST. The new automatic partitioning proposal (that is, the “Guided Setup”) is now integrated with AutoYaST.

Thanks to the new software architecture, AutoYaST users will be able to override every single partitioning setting from the control file.

<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
  <general>
    <storage>
      <!-- Override settings from control file  -->
      <try_separate_home config:type="boolean">false</try_separate_home>
      <proposal_lvm config:type="boolean">true</proposal_lvm>
    </storage>
  </general>
</profile>

So you can easily switch on/off LVM, use a separate partition for /home, enable/disable snapshots, enable/disable Windows resizing, etc. All that, still relying on the automated storage proposal to iron the details up. Something that is not possible with the current version of AutoYaST without being forced to define explicitly every partition and LVM volume.

But the simplest way to use the new libstorage proposal is to not define any setting at all in the AutoYaST configuration file. In that case, the partitioning proposal code will do the complete job, installing a new system with the default options.

Of course, before integrating the new storage stack into the upcoming SLE15, the AutoYaST support have to go one step further. Apart from using and configuring the proposal, it must be possible to define a completely custom setup including partitions, LVM volumes, software RAID devices and so on through the corresponding <partitioning> section of the AutoYaST profile. So we used this sprint to sketch a plan to make that possible in the following months, analyzing all the scenarios and configurations supported by AutoYaST and looking for the best way to support them using the existing yast2-storage-ng infrastructure. The outcome of that effort is this detailed document and a list of tasks (PBIs in Scrum jargon) for the upcoming sprints. So be prepared for more news in this regard.

Automatic Cleanup of Snapshots created by Rollback

So far the user had to ensure that snapshots created by rollbacks got deleted to avoid filling up the storage. This process has now been automated. During a rollback, Snapper now sets the cleanup algorithm to “number” for the snapshot corresponding to the previous default subvolume and for the backup snapshot of the previous default subvolume. This enhanced behavior will be available in SLE12-SP3 and openSUSE Leap 42.3. For more information take a look at the more detailed post in the Snapper blog.

Helping to bring the CaaSP fun to openSUSE

For several sprints already we have been presenting features targeted to SUSE CaaSP, the Kubernets-powered solution for managing containers. Many of those features and custom configurations live in a package called yast2-caasp, originally targeted to this great upcoming product built on top of the SLE12-SP2 codebase.

But now the package is also available for Tumbleweed-based systems by request of the Kubic project. Kubic will be the openSUSE alter ego of SUSE CaaSP, that is, a Container as a Service Platform based on openSUSE and Kubernetes. As with any other YaST component, the exact same source code will shared by the SUSE product and its openSUSE brother.

Improved UX when an invalid registration URL is provided

Humans make mistakes, but when the mistakes are made entering some option in
the installation command line, it usually means that a reboot of the machine is be needed to fix them.

That was the case for the registration URL (regurl) option. In the provided address was malformed the installation just stopped. During this sprint we have added an early check of that URL which allows the user to reenter it and continue with the installation. Something that obviously improves the user experience.

Invalid regurl handling in normal installation

In case of an autoinstallation (AutoYaST), the error is reported and the steps to get installer updates and to register the system are skipped.

Invalid regurl handling in autoinstallation

There is still room for more improvements, allowing the user to also modify the URL in other scenarios. For example, for an URL with a valid format but that points to an unreachable server. But in those cases is not so straightforward to identify the culprit of the problem. It would make no sense to annoy the user with a recurring pop-up to change the registration URL if the root of the issue is not the URL but a incorrect network configuration.

Translations and Interpolations

As mentioned at the begining of this post, we recently got quite some bug reports about missing translations. Although some of them were really caused by bugs in the YaST code, others were a consequence of a buggy Ruby rxgettext script which collects the translatable strings from the Ruby source code. The bug is known by the Ruby-GetText developers, but it’s unclear when (or whether) it will be fixed.

The problem is that the tool cannot collect the translatable strings from interpolations. For example it cannot find the “foo” string from this string literal: "#{_("foo")}". As a result, that string is missing in the resulting POT file and cannot be translated by the SUSE or openSUSE localization teams.

As a workaround, we fixed the YaST code to not use the translations inside interpolations. We also documented the possible problems when mixing translations a interpolations and their solution.

And talking about new developer oriented documentation…

Security Tips for YaST Developers

YaST runs with the administrator privileges (root) and therefore we have to be aware of the possible security issues in the code. During this sprint we published a document with a short summary of security tips for YaST developers.

If you are programming an YaST module you should definitely read it, but it might be interesting also for other programmers as many mentioned issues are generic, not tight only to YaST.

The document is available online here.

See you at the conference

That’s all for this sprint report. We have many more things in the oven, be we didn’t manage to finish them during the sprint, so they will have to wait for the next report. Meanwhile we hope to see many of you at the openSUSE Conference 2017. There will be a whole workshop about modern YaST development, a summary with the more relevant news in the last year of YaST development, talks about the new superb yast2-configuration-management module, about our continuous delivery infrastructure and about how we use Docker to deliver YaST… And, of course, also many other interesting content like the awesome presentation from Thorsten Kukuk about the brand new openSUSE Kubic we mentioned earlier. And even more important, a lot of fun!

openSUSE Conference 2017

For those of you that cannot attend to the conference, see you again in this little corner of the internet in three weeks!

Highlights of YaST development sprint 26

October 20th, 2016 by

We did our best to keep you entertained during this development sprint with a couple of blog posts ([1] and [2]). But now the sprint is over and it’s time for a new report.

Squashing low priority bugs

One of the main reasons to adopt Scrum was to ensure we make a good use of our development resources (i.e. developers’ time and brains) focusing on things that bring more value to our users. In the past we had the feeling that many important things were always postponed because the developers were flooded by other not so important stuff. Now that feeling is gone (to a great extent) and we have a more clear and shared view of the direction of our development efforts.

But there is always a drawback. We have accumulated quite some unsolved low-priority bugs. That was an expected consequence, but still it was starting to feel wrong. On one hand, it makes us feel uncomfortable – replying “this will have to wait” so often is not nice, even if it’s for the shake a bigger goal. On the other hand, the amount of low-priority stuff was affecting the signal/noise ratio on Bugzilla, making harder to distinguish the important stuff.

So far, dealing with those low-priority bug was something that each developer did on his own, as permitted by the time dedicated to Scrum. In sprint 26 we decided to make that effort an explicit part of the process and to devote a significant portion of the sprint to it. As a result we closed or reassigned a total of 135 bugs that were just sitting in our list.

Yes, you did read it right. One hundred and thirty five bugs.

Storage reimplementation: our testing ISO can already destroy your data

On the previous sprint we already showed a screenshot of the installer using the new storage stack to calculate a partitioning proposal. Now the installer can go one step further. As you can see on this animation, the changes are now committed to the disk, meaning the system is actually partitioned, formatted and installed.

Installation with the new storage stack

The process is interrupted after installing the software, when trying to configure and install the bootloader. That was expected because yast2-bootloader has still not been adapted to use the new stack. First of all, because we wanted to leave some fun for sprint 27. But also because we used this sprint (26) to document all the requirements of yast2-bootloader in relation to the new storage stack. Now we have in place all the ingredients to cook an installable ISO.

Automatic update of translation files

Recently openSUSE has adopted Weblate to perform and coordinate the translation of the software and the project’s web pages. The openSUSE’s Weblate instance enables everybody (from dedicated translators to casual contributors) to take part in the process and makes possible to coordinate the translations of openSUSE with the ones for SUSE Enterprise Linux, boosting collaboration between the translators of both projects.

As YaST developers, is of course our responsibility to ensure that openSUSE’s Weblate contains always the latest English strings to be translated. Making our developer’s life easier sometimes not only brings advantages for us but also for our users. Until now, after each code change we had to keep in mind to trigger the translation process for every added or changed English text. Sometimes we were not quick enough so that some English leftovers remained in our awesome YaST when being used in one of the 20 languages where the translation is normally 100% complete.

Now we finally set up a Jenkins job to automate the process of triggering the translation update after code changes. This saves the developers some work and makes the update of translations even faster.

Looking at Weblate numbers, you can see we have 20 languages that are about 100% translated, another 20 that are translated more than 75% and 37 languages which are translated less than 75%. So we still need some help to bring all languages to 100% coverage. If you are willing to contribute, why not join our team of translators? Check out the localization guide to get in contact with the coordinators of your preferred language to learn about how to contribute with translations, reviews or by any other mean.

Ensure installation of packages needed for booting

We got some reports of systems not being able to work after the installation in scenarios in which the user had customized the list of packages to install. That happened because, although the bootloader component of YaST pre-selects for installation all the needed packages, the user can override that selection and manually disable the installation of those packages.

To prevent this situation, or at least to increase awareness of it, the installer now alerts in the summary screen (the last step before proceeding to installation) if some of the required packages is missing, as you can see in the screenshot below. We still allow the users to shoot their own feet if they insist, but now we warn them very clearly.

Warning about de-selected Grub2 package

Progress in the low-vision accessibility of the installer

During this sprint, we have been working to make the (open)SUSE installer accessible to people with low-vision impairment. We already blogged about it looking for feedback.

One of the new color modes available in the installer

In a few days, some changes will land in Tumbleweed:

  • Alternative style selection (color and font-sizes). Currently, we offer four options: default (no changes), high contrast (cyan/green/white/black), white on black and cyan on black. Those styles are just a proof of concept in order to test the code changes and, most important, to get feedback from you.
  • A long-standing issue, which prevented to switch to high-contrast mode during installation (shift+F4), has been fixed.

Style selection at the beginning of installation
Although we have made some progress, it is still an ongoing effort and we hope to release more improvements during the upcoming weeks.

Recover from broken bootloader configuration

There are situations in which YaST Bootloader is not able to read the system configuration. For example, when the udev device originally used by Grub2 is no longer available. In the past that leaded to YaST crashes, requiring a manual fix of the bootloader configuration files. Now YaST correctly detects the situation and offers the option to propose a new configuration with correct devices.

YaST bootloader fixing a broken configuration

Disable autorefresh by default in local media

We have changed the default autorefresh flag for the new repositories added by YaST. In the past the autorefresh was enabled for all repositories except CD/DVD media and ISO files.

With the new defaults the autorefresh is enabled only for remote repositories (like http, ftp, nfs,…). The reason is that some local repositories might not be always available (e.g. external hard disk, USB flash drive,…) and the automatic refresh might cause ugly errors when starting the package manager.

Of course, you can still manually change the autorefresh flag after adding a repository if you need a different value.

Note: The default has been changed in Tumbleweed distribution only, Leap 42.2 or SLE-12-SP2 keep the old defaults. The zypper behavior is unchanged as well, it by default disables autorefresh for all repositories. Only repositories imported from a .repo file have autorefresh enabled. See man zypper for more details.

Tons of improvements in network bridge handling

YaST Network is Swiss Army knife for network configuration which comprehends the management of routing, bonding, bridging and many other things. But, to be honest, the management of bridges was not in the best possible shape. It had quite some usability problems and it was not 100% consistent with the way in which bridges are managed nowadays by Wicked in (open)SUSE. Until now!

This pull request with several screenshots and animations tries to summarize all the changes that have been done during this sprint. Like adapting old configuration files to the new conventions or unifying the UI to make it consistent with the one for managing bonding.

Revamped YaST interface for handling bridges

This revamp includes also quite some usability improvements:

  • “NONE” is shown instead of 0.0.0.0 for old bridge configuration.
  • The bridge master is shown in the enslaved interface.
  • The interfaces overview is updated after a bridge is modified.

Optimizing read of hosts file

It was reported that yast2-network was slow in system with a lot of entries in the /etc/hosts file. We took that as an opportunity to test the new profiler support in YaST. The profiler revealed the problem was in some slow calls to SCR, the layer traditionally used by YaST to interact with the underlying system… which sounded like another opportunity. This time an opportunity to expand the use of CFA (the component we are developing to steady replace SCR) and its Augeas parser. Since Augeas already supports parsing of /etc/hosts files, it was quite straightforward to implement that into YaST… and the result is quite impressive.

The time needed to execute the next command in a system containing a huge /etc/hosts with around 10,000 entries (quite an extreme case, we know) was reduced from 75 seconds to just 20.

yast2 lan list

As you can see in this pull request, we also improved CFA itself, greatly reducing the time needed for reading configuration files with Augeas.

That’s all… until next report

Once again, we must conclude the report telling that this was just a small summary of all the work done during the sprint and that we will be back in three weeks with the next report. Or maybe before, now that we are starting to get used to blog more often.

In any case, see you soon and don’t forget to have a lot of fun!

Fosscomm 2011 in Patras – Greece

April 25th, 2011 by

Fosscomm 2011

The event will take place in Patras this year. For those of you who don’t know, fosscomm is one of the major foss event in Greece.

I’ll go there and will make a presentation :
Amazing openSUSE : we, you, together a promizing future!

I hope to see all of you there! Come and meet the growing openSUSE Greek community, and most of the Greek ambassadors.

Follow them on Twitter. The official hashtag of FOSSCOMM 2011 is: #fosscomm2011

Official Patras city website

PS: The websites is also available in english 🙂

Talk

Title :

Amazing openSUSE
We, you, together a promising future !

Talk Audience

general public, which would like to contribute in FOSS

No special IT knowledge is required.

Abstract

openSUSE project is open: there’s a place for everybody!

Come and (re)discover one of the oldest Linux distribution and one of the most youngest community.

This talk is about the community powering the whole actual openSUSE Project :

We will overfly openSUSE’s history, and the actual projects like open-build-service, susestudio, tumbleweed, evergreen, connect, openqa, and the near future a word about the openSUSE Foundation.

Follow us deeper inside with examples how collaboration works between contributors, users, across the borders with others distributions and upstream projects.

Want to be part of? Let’s talk about the “right” place for you!

 

Outcome of the Christmas dinner…

December 12th, 2010 by

Yesterday we’ve finally met to discuss what we can do together to solidify the Portuguese Community locally. The dinner took place at the selected place a bit later than the established hour.

What we’ve decided:

* ENOS: the ‘Encontro Nacional openSUSE’ (openSUSE Community National Encounter) event is going to remain in our workflow. We’ve decided to fully support a proposal for this years ENOS edition, this time in Lisbon Metropolitan area.

* openSUSE IBERIA: Unanimous convergence to move forward the ‘openSUSE IBERIA’ initiative and make it a priority in our work flow. We also discussed a proposal for a bi-yearly event to be hold in the Iberian Peninsula (taking place in Portugal or Spain, but addressed to everyone). We have also established that this events are to be hold in Universities Campus.

* Battlefield: For us, in Portugal there is only one battlefield, Universities Campus. This is where we are going to be place all efforts.

* openSUSE Event: A generic event was also discussed to take place in Universidade Fernando Pessoa (Porto), to be organized by João Martins (which is applying for Portuguese Ambassador alongside with me within the next weeks). We hope to involve more Universities and local corporate tissue on this event to take place in 2011 on an unknown date (May/June).

* Portuguese Forums (forums.opensuse.org): Two moderators appointed to join the Forums team with whom they will represent our community segment and develop efforts for a sustained growth of the Portuguese Community. We’ve also discussed possible interfaces with the Brazilian and Spanish Communities and how we can benefit from their expertise and aquired know-how on past experiences.

* Ambassadors: Myself and João Martins are submitting a proposal for Ambassadors in Portugal soon. Before we do such, I’m expecting to contact Javier Llorente and the representatives of the Spanish openSUSE Community to discuss some joint action ventures and establish a more formal protocol of cooperation extending the traditional Ambassador workflow.

* Communication: We’ve known the obvious for a long time… we have no communication channels in Portugal. We have no peer points with the national LUG’s, we have pretty much nothing besides a strong will and commitment to make things happen. Our biggest goal is to support directly the existing LUG’s and represent ourselves and create at least a community interface that allows us to deploy communication with other communities in Portugal and promote ourselves. Since there is nothing, we’ll need to take the lead and set the first stone.

All of this and some more was discussed during our Christmas Dinner, while being served the best Calzone Pizza in Portugal, accompanied by the traditional Super Bock beer in a cozy and warm Christmas environment.

Status Hungarian openSUSE Documentation

November 17th, 2010 by

As I wrote last time, I’ve migrated our documentation to a public SVN server on BerliOS. There you can get the English sources of the official openSUSE documentation and some business products too.

Apart from Russian, I’m very happy that the Hungarian translation of the openSUSE documentation is underway! Thanks to Kálmán Kéménczy, he will publish the Hungarian documentation soon. Currently, some translatation, proofreading, and polishing have to be done, so stay tuned (see https://svn.berlios.de/svnroot/repos/opensuse-doc/trunk/documents/distribution/hu.)
By the way, the Hungarian books from the 11.1 and 11.2 release can be downloaded in the Hungarian portal.

If someone from the Hungarian community wants to help, please support Kálmán and contact him for futher details.

Thanks Kálmán, for your ongoing work! I’m sure, everybody appreciates your work, be it in the past, present, or future.

Call for testing: unzip feature

April 7th, 2010 by

Hello Planet!

Have you ever faced a bug like this bnc#540598 ?

When you create  zip archive with non-English filenames and try to unpack it on openSUSE, filenames within archive become unreadable. It can irritate, isn’t it?

It seems as if we found a solution for Russian language. We tested it and it works for us.

It would be helpful if some of you could test your local language. And check whether core functionality still works 😉

Here is a list of  languages that are potentially affected by this bug: Ukrainian,Belorussian, Bulgarian, Croatian, Czech, Estonian, French, German,Hungarian, Italian, Lithuanian, Latvian, Polish, Slovak, Spanish,Slovenian, Swedish.

So it is worth to test them in the first place.

The reproducer is pretty simple:

  • create zip archive on windows with file named in you local language
  • transfer archive to openSUSE system
  • unpack it
  • see if filenames are readable

What needs to be tested:

  • if this bug applicable to you language
  • if core functionality of unzip still works

Please share your experience by commenting on bug.

Package to test located in Lazy_Kent home project

Thanks in advance

Russian openSUSE community

March 30th, 2010 by

Hello everybody,

I want to share some ideas about the success of the Russian openSUSE community, and try to answer the question about its popularity. As you can see it is one of the top places:

The reason for the high popularity of this distribution in Germany is of course the fact that the German SuSE distribution and the main branch of development is located in Nuremberg. Popularity in the U.S. is due Novell – an American company, and of course the language is English. But why are so many people in Russia choosing openSUSE?

Good question. One of the main things that influence the choice of distribution – the quality and localization. The global community plays a top role for quality of distribution and local make it appropriate for Russian language users (of course a local community can be as part of a global community).

Perhaps most important is the documentation. And of course, not everyone wants (or can) read the documentation in English. Everyone wants to read the documentation in their native language. The distribution may be in a good shape and stable, nice and convenient, but without documentation it will use very few. Translated documentation is very important to the community. The translation must have a high quality, understandable, and as it must be kept up to date.

For the community its also profitable that 2 guys from the community working for Novell (in Nuremberg and in Prague). This provides better communication between “developers – community”. It helps to be closer to the project. This allows you to always be aware of all the major news of the project. And of course the translation is much better if they are engaged not just as a translator, but the employee who works on the distribution.

Of course this also applys for software. Although it is not as important as documentation, it still makes an impression on the quality of distribution. Everyone wants to work with the software in their native language %)

A successful community is a group of people who love openSUSE, who understands why the software should be free, who wants to make openSUSE better and better… every day.

Russian openSUSE forum

January 8th, 2010 by

Hello community!

As agreed at the meeting – Russian commutiny needs a forum.

Also… Fixed… I would like to introduce a new Russian openSUSE forum %)

Right now we have a small problem with encoding and want to add Russian buttons, but it’s trifle and we will fix it in next days.

In the past Russian community meet on another linux_universal forums like linuxforum.ru or linux.org.ru, but these forums are not related to openSUSE project. And now I hope our community gradually will start to join the global.

In this forum we are closer to the draft openSUSE: in the same domain is located and Wiki, and the openSUSE Build Service, and much more.

So… you are welcome %)

First Steps with QT/KDE Programming

June 9th, 2009 by

Since Saturday i’m lerarning prtogramming QT/KDE. It is very interesting. My first “Hello World”-Program has now an localisation in DE und EN, and an Online-Help. The next Step is an Chapter about Basics and Structure from the KDE-Programs.

Join us translating the special edition !

May 14th, 2009 by

Today, the openSUSE Weekly Newsletter team will have the translation sessions for the special edition created yesterday.

Join us from 12:00 UTC to 15:00 UTC in #opensuse-newsletter on freenode. (Schedule)