From 940b88652a39b775c94749fcbe7b3a0069b122f0 Mon Sep 17 00:00:00 2001 From: Francois Andriot Date: Sun, 19 May 2013 16:12:30 +0200 Subject: [PATCH] Fix media name translations in halbackend (cherry picked from commit 9a491179e30feb8beb9ceca8b1fde985d42465e7) --- kioslave/media/mediamanager/halbackend.cpp | 12 +++++++++++- kioslave/media/mediamanager/halbackend.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/kioslave/media/mediamanager/halbackend.cpp b/kioslave/media/mediamanager/halbackend.cpp index 623a3d4ed..44a5d6113 100644 --- a/kioslave/media/mediamanager/halbackend.cpp +++ b/kioslave/media/mediamanager/halbackend.cpp @@ -545,7 +545,17 @@ void HALBackend::setVolumeProperties(Medium* medium) char* name = libhal_volume_policy_compute_display_name(halDrive, halVolume, m_halStoragePolicy); TQString volume_name = TQString::fromUtf8(name); TQString media_name = volume_name; - medium->setLabel(media_name); + /* media_name contains something like "501M Removable Media" or "Blank CD-R" + The former needs special handling for correct translation + */ + if (media_name.find(TQRegExp("^[0-9]+\\.?[0-9]*[KMGT] (Removable )?Media$")) > -1) { + TQString pattern = media_name.section(" ", 1); + media_name.replace(pattern, i18n(pattern.ascii())); + medium->setLabel(media_name); + } else { + medium->setLabel(i18n(media_name.ascii())); + } + free(name); TQString mimeType; diff --git a/kioslave/media/mediamanager/halbackend.h b/kioslave/media/mediamanager/halbackend.h index 18de7ea3c..9bd840a6e 100644 --- a/kioslave/media/mediamanager/halbackend.h +++ b/kioslave/media/mediamanager/halbackend.h @@ -34,6 +34,7 @@ #include #include #include +#include #include