diff -Nru ukui-media-3.25.0.0/debian/changelog ukui-media-3.25.0.0/debian/changelog
--- ukui-media-3.25.0.0/debian/changelog	2024-10-14 17:16:19.000000000 +0800
+++ ukui-media-3.25.0.0/debian/changelog	2024-10-28 11:26:40.000000000 +0800
@@ -1,3 +1,30 @@
+ukui-media (3.25.0.0-0ok24) nile; urgency=medium
+
+  * Bug号: 无
+  * 需求号: 无
+  * 其他改动说明: 增加德西法阿越翻译
+  * 其他改动影响域: 无
+
+ -- ctf <fengzhaoxiang@kylinos.cn>  Mon, 28 Oct 2024 11:26:40 +0800
+
+ukui-media (3.25.0.0-0ok23) nile; urgency=medium
+
+  * Bug号: 277481 【优麒麟+AI版】【声音】控制面板缺少声音模块
+  * 需求号: 无
+  * 其他改动说明: 无
+  * 其他改动影响域: 无
+
+ -- ctf <fengzhaoxiang@kylinos.cn>  Mon, 28 Oct 2024 11:26:40 +0800
+
+ukui-media (3.25.0.0-0ok22) nile; urgency=medium
+
+  * Bug号: 277481 【优麒麟+AI版】【声音】控制面板缺少声音模块
+  * 需求号: 无
+  * 其他改动说明: 无
+  * 其他改动影响域: 无
+
+ -- ctf <fengzhaoxiang@kylinos.cn>  Fri, 25 Oct 2024 18:47:15 +0800
+
 ukui-media (3.25.0.0-0ok21) nile; urgency=medium
 
   * Bug号: 269743 【优麒麟+AI版】【声音】【任务栏设置】任务栏右下角无声音音量图标
diff -Nru ukui-media-3.25.0.0/debian/patches/0059-58.patch ukui-media-3.25.0.0/debian/patches/0059-58.patch
--- ukui-media-3.25.0.0/debian/patches/0059-58.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0059-58.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,22 @@
+From: ctfcc <2361134695@qq.com>
+Date: Thu, 17 Oct 2024 05:59:12 +0000
+Subject: =?utf-8?b?ITU4IOS/ruiuouWNjuS4uuW5s+WPsOWIpOaWreWHveaVsCBNZXJnZSBw?=
+ =?utf-8?b?dWxsIHJlcXVlc3QgITU4IGZyb20g5bem5b+X5aiBL29wZW5reWxpbi9uaWxl?=
+
+---
+ common/ukmedia_common.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/common/ukmedia_common.cpp b/common/ukmedia_common.cpp
+index 99f8bcc..a77d24a 100644
+--- a/common/ukmedia_common.cpp
++++ b/common/ukmedia_common.cpp
+@@ -59,7 +59,7 @@ bool UkmediaCommon::isHuaweiPlatform()
+ 
+     if (cpuStr.contains("HUAWEI", Qt::CaseInsensitive) && cpuStr.contains("Kirin", Qt::CaseInsensitive))
+     {
+-        if (cpuStr.contains("990") || cpuStr.contains("9006C") || cpuStr.contains("90000C"))
++        if (cpuStr.contains("990") || cpuStr.contains("9006C") || cpuStr.contains("9000C"))
+             isHuaweiPlatform = true;
+     }
+     else if (cpuStr.contains("PANGU", Qt::CaseInsensitive) && cpuStr.contains("M900", Qt::CaseInsensitive)) {
diff -Nru ukui-media-3.25.0.0/debian/patches/0060-61-Fix-Check-HUAWEI-machine-error.patch ukui-media-3.25.0.0/debian/patches/0060-61-Fix-Check-HUAWEI-machine-error.patch
--- ukui-media-3.25.0.0/debian/patches/0060-61-Fix-Check-HUAWEI-machine-error.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0060-61-Fix-Check-HUAWEI-machine-error.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,22 @@
+From: pengziping <pengziping@kylinos.cn>
+Date: Tue, 22 Oct 2024 02:52:33 +0000
+Subject: !61 Fix: Check HUAWEI machine error Merge pull request !61 from
+ pengziping/openkylin/nile
+
+---
+ common/ukmedia_common.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/common/ukmedia_common.cpp b/common/ukmedia_common.cpp
+index a77d24a..00f5ddc 100644
+--- a/common/ukmedia_common.cpp
++++ b/common/ukmedia_common.cpp
+@@ -57,7 +57,7 @@ bool UkmediaCommon::isHuaweiPlatform()
+     const char *cpuInfo = kdk_cpu_get_model();
+     QString cpuStr = QString::fromLocal8Bit(cpuInfo);
+ 
+-    if (cpuStr.contains("HUAWEI", Qt::CaseInsensitive) && cpuStr.contains("Kirin", Qt::CaseInsensitive))
++    if (cpuStr.contains("HUAWEI", Qt::CaseInsensitive) || cpuStr.contains("Kirin", Qt::CaseInsensitive))
+     {
+         if (cpuStr.contains("990") || cpuStr.contains("9006C") || cpuStr.contains("9000C"))
+             isHuaweiPlatform = true;
diff -Nru ukui-media-3.25.0.0/debian/patches/0061-62-updateSource-sourceportName.patch ukui-media-3.25.0.0/debian/patches/0061-62-updateSource-sourceportName.patch
--- ukui-media-3.25.0.0/debian/patches/0061-62-updateSource-sourceportName.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0061-62-updateSource-sourceportName.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,721 @@
+From: =?utf-8?b?5bem5b+X5aiB?= <zuozhiwei@kylinos.cn>
+Date: Wed, 23 Oct 2024 08:50:09 +0000
+Subject: =?utf-8?b?ITYyIOS8mOWMlnVwZGF0ZVNvdXJjZemAu+i+ke+8jOWkhOeQhuW8gA==?=
+ =?utf-8?b?5ZCv6ZmN5Zmq5pe25YiH5o2i6L6T5YWl5ZCOc291cmNlcG9ydE5hbWXplJnor68=?=
+ =?utf-8?b?55qE6Zeu6aKYIE1lcmdlIHB1bGwgcmVxdWVzdCAhNjIgZnJvbSDlt6blv5flqIEv?=
+ =?utf-8?b?bmlsZQ==?=
+
+---
+ .../app-device-control/ukmedia_app_item_widget.cpp |   4 +-
+ audio/app-device-control/ukmedia_app_item_widget.h |   1 +
+ .../ukmedia_device_control_widget.cpp              |   4 +-
+ audio/ukmedia_main_widget.cpp                      |  15 +-
+ audio/ukmedia_main_widget.h                        |  40 -----
+ audio/ukui_custom_style.h                          |   4 -
+ common/ukmedia_common.h                            |  53 ++++++
+ .../ukmedia_main_widget.cpp                        |  27 +--
+ .../ukmedia_main_widget.h                          |  33 +---
+ .../ukmedia_volume_control.cpp                     | 189 +++++++++++++--------
+ .../ukmedia_volume_control.h                       |  34 ++--
+ 11 files changed, 198 insertions(+), 206 deletions(-)
+
+diff --git a/audio/app-device-control/ukmedia_app_item_widget.cpp b/audio/app-device-control/ukmedia_app_item_widget.cpp
+index fe7cc59..0ca2969 100644
+--- a/audio/app-device-control/ukmedia_app_item_widget.cpp
++++ b/audio/app-device-control/ukmedia_app_item_widget.cpp
+@@ -280,7 +280,7 @@ void UkmediaAppItemWidget::onPaletteChanged()
+         m_pOutputWidget->setStyleSheet("#OutputWidget{border-radius: 6px; background-color: #F5F5F5;}");
+         m_pVolumeWidget->setStyleSheet("#VolumeWidget{border-radius: 6px; background-color: #F5F5F5;}");
+     }
+-    else if (mThemeName == UKUI_THEME_BLACK) {
++    else if (mThemeName == UKUI_THEME_DARK) {
+         m_pInputWidget->setStyleSheet("#InputWidget{border-radius: 6px; background-color: #333333;}");
+         m_pOutputWidget->setStyleSheet("#OutputWidget{border-radius: 6px; background-color: #333333;}");
+         m_pVolumeWidget->setStyleSheet("#VolumeWidget{border-radius: 6px; background-color: #333333;}");
+@@ -295,7 +295,7 @@ void UkmediaAppItemWidget::outputVolumeDarkThemeImage(int value, bool status)
+     QColor color = QColor(0,0,0,216);
+     if (mThemeName == UKUI_THEME_LIGHT || mThemeName == UKUI_THEME_DEFAULT)
+         color = QColor(0,0,0,216);
+-    else if (mThemeName == UKUI_THEME_BLACK)
++    else if (mThemeName == UKUI_THEME_DARK)
+         color = QColor(255,255,255,216);
+ 
+     if (status) {
+diff --git a/audio/app-device-control/ukmedia_app_item_widget.h b/audio/app-device-control/ukmedia_app_item_widget.h
+index e5de61c..defd618 100644
+--- a/audio/app-device-control/ukmedia_app_item_widget.h
++++ b/audio/app-device-control/ukmedia_app_item_widget.h
+@@ -34,6 +34,7 @@
+ #include <QDBusPendingCallWatcher>
+ #include "kslider.h"
+ #include "../ukui_custom_style.h"
++#include "../common/ukmedia_common.h"
+ 
+ using namespace kdk;
+ 
+diff --git a/audio/audio-device-control/ukmedia_device_control_widget.cpp b/audio/audio-device-control/ukmedia_device_control_widget.cpp
+index a3831a0..ccacdee 100644
+--- a/audio/audio-device-control/ukmedia_device_control_widget.cpp
++++ b/audio/audio-device-control/ukmedia_device_control_widget.cpp
+@@ -308,7 +308,7 @@ void OutputDevWidget::addSubOutputDevWidget(int card, QString portName, QString
+ 
+     if (themeName == UKUI_THEME_DEFAULT || themeName == UKUI_THEME_LIGHT)
+         subDevItemwidget->setStyleSheet("#subDevItemwidget{border-radius: 6px; background-color: #F5F5F5;}");
+-    else if (themeName == UKUI_THEME_BLACK)
++    else if (themeName == UKUI_THEME_DARK)
+         subDevItemwidget->setStyleSheet("#subDevItemwidget{border-radius: 6px; background-color: #333333;}");
+ 
+     m_pSubDevVlayout->addWidget(subDevItemwidget);
+@@ -615,7 +615,7 @@ void InputDevWidget::addSubInputDevWidget(int card, QString portName, QString De
+     }
+     if (themeName == UKUI_THEME_DEFAULT || themeName == UKUI_THEME_LIGHT)
+         subDevItemwidget->setStyleSheet("#subDevItemwidget{border-radius: 6px; background-color: #F5F5F5;}");
+-    else if (themeName == UKUI_THEME_BLACK)
++    else if (themeName == UKUI_THEME_DARK)
+         subDevItemwidget->setStyleSheet("#subDevItemwidget{border-radius: 6px; background-color: #333333;}");
+ 
+     //设置窗体圆角
+diff --git a/audio/ukmedia_main_widget.cpp b/audio/ukmedia_main_widget.cpp
+index 30b5ebe..66290e5 100644
+--- a/audio/ukmedia_main_widget.cpp
++++ b/audio/ukmedia_main_widget.cpp
+@@ -30,14 +30,9 @@
+ #include <QPixmap>
+ #include <qmath.h>
+ 
+-#define MATE_DESKTOP_USE_UNSTABLE_API
+-#define VERSION "1.12.1"
+-#define GVC_DIALOG_DBUS_NAME "org.mate.VolumeControl"
+-#define KEY_SOUNDS_SCHEMA   "org.ukui.sound"
+ #define GVC_SOUND_SOUND    (xmlChar *) "sound"
+ #define GVC_SOUND_NAME     (xmlChar *) "name"
+ #define GVC_SOUND_FILENAME (xmlChar *) "filename"
+-#define SOUND_SET_DIR "/usr/share/ukui-media/sounds"
+ 
+ #define KEYBINDINGS_CUSTOM_SCHEMA "org.ukui.media.sound"
+ #define KEYBINDINGS_CUSTOM_DIR "/org/ukui/sound/keybindings/"
+@@ -104,7 +99,7 @@ void UkmediaMainWidget::initWidget()
+     m_pSoundWidget = new UkmediaSoundEffectsWidget();
+     m_pSettingsWidget = new UkmediaSettingsWidget();
+     cboxfirstEntry = true;
+-    mThemeName = UKUI_THEME_WHITE;
++    mThemeName = UKUI_THEME_LIGHT;
+     QVBoxLayout *m_pvLayout = new QVBoxLayout();
+     m_pvLayout->addWidget(m_pOutputWidget);
+     m_pvLayout->addWidget(m_pInputWidget);
+@@ -1074,10 +1069,10 @@ void UkmediaMainWidget::outputVolumeDarkThemeImage(int value,bool status)
+ {
+     QImage image;
+     QColor color = QColor(0,0,0,216);
+-    if (mThemeName == UKUI_THEME_WHITE || mThemeName == "ukui-default") {
++    if (mThemeName == UKUI_THEME_LIGHT || mThemeName == UKUI_THEME_DEFAULT) {
+         color = QColor(0,0,0,216);
+     }
+-    else if (mThemeName == UKUI_THEME_BLACK || mThemeName == "ukui-dark") {
++    else if (mThemeName == UKUI_THEME_DARK) {
+         color = QColor(255,255,255,216);
+     }
+ 
+@@ -1107,10 +1102,10 @@ void UkmediaMainWidget::inputVolumeDarkThemeImage(int value,bool status)
+ {
+     QImage image;
+     QColor color = QColor(0,0,0,190);
+-    if (mThemeName == UKUI_THEME_WHITE || mThemeName == "ukui-default") {
++    if (mThemeName == UKUI_THEME_LIGHT || mThemeName == UKUI_THEME_DEFAULT) {
+         color = QColor(0,0,0,190);
+     }
+-    else if (mThemeName == UKUI_THEME_BLACK || mThemeName == "ukui-dark") {
++    else if (mThemeName == UKUI_THEME_DARK) {
+         color = QColor(255,255,255,190);
+     }
+ 
+diff --git a/audio/ukmedia_main_widget.h b/audio/ukmedia_main_widget.h
+index d206b5e..0fa6593 100644
+--- a/audio/ukmedia_main_widget.h
++++ b/audio/ukmedia_main_widget.h
+@@ -63,50 +63,10 @@ extern "C" {
+ #include "ukmedia_settings_widget.h"
+ #include "ukmedia_app_device_ctrl.h"
+ 
+-#define UKUI_THEME_SETTING "org.ukui.style"
+-#define UKUI_THEME_NAME "style-name"
+-#define UKUI_THEME_WHITE "ukui-white"
+-#define UKUI_THEME_BLACK "ukui-black"
+-
+-#define UKUI_INPUT_REAR_MIC "analog-input-rear-mic"  //后置麦克风
+-#define UKUI_INPUT_FRONT_MIC "analog-input-front-mic" //前置麦克风
+-#define UKUI_OUTPUT_HEADPH "analog-output-headphones" //模拟耳机
+-
+-#define KEYBINDINGS_CUSTOM_SCHEMA "org.ukui.media.sound"
+-#define KEYBINDINGS_CUSTOM_DIR "/org/ukui/sound/keybindings/"
+-#define MAX_CUSTOM_SHORTCUTS 1000
+-#define FILENAME_KEY "filename"
+-#define NAME_KEY "name"
+-
+-#define KEY_SOUNDS_SCHEMA "org.ukui.sound"
+-#define UKUI_SWITCH_SETTING "org.ukui.session"
+-#define UKUI_STARTUP_MUSIC_KEY "startup-music"
+-#define UKUI_POWEROFF_MUSIC_KEY "poweroff-music"
+-#define UKUI_LOGOUT_MUSIC_KEY "logout-music"
+-#define UKUI_WAKEUP_MUSIC_KEY "weakup-music"
+-
+-#define STARTUP_MUSIC "startup-music"
+-#define VOLUME_INCREASE "volume-increase"
+-#define MONO_AUDIO "mono-audio"
+-#define DNS_NOISE_REDUCTION "dns-noise-reduction"
+-#define LOOP_BACK "loopback"
+-#define EVENT_SOUNDS_KEY "event-sounds"
+-#define SOUND_THEME_KEY "theme-name"
+-#define SOUND_CUSTOM_THEME_KEY "custom-theme"
+-#define AUDIO_VOLUME_CHANGE "audio-volume-change"
+-#define NOTIFICATION_GENGERAL "notification-general"
+-#define SOUND_FILE_PATH "/usr/share/sounds/xxxTheme/stereo/xxxFile.ogg"
+-
+-#define UKUI_GLOBALTHEME_SETTINGS "org.ukui.globaltheme.settings"
+-#define GLOBAL_THEME_NAME "global-theme-name"
+-
+ #define DEFAULT_ALERT_ID "__default"
+ #define CUSTOM_THEME_NAME "__custom"
+ #define NO_SOUNDS_THEME_NAME "__no_sounds"
+ 
+-#define PA_VOLUME_NORMAL 65536.0
+-#define UKMEDIA_VOLUME_NORMAL 100.0
+-
+ #ifdef __GNUC__
+ #define CA_CLAMP(x, low, high)                                          \
+         __extension__ ({ typeof(x) _x = (x);                            \
+diff --git a/audio/ukui_custom_style.h b/audio/ukui_custom_style.h
+index a3ef4e7..c1bafc1 100644
+--- a/audio/ukui_custom_style.h
++++ b/audio/ukui_custom_style.h
+@@ -32,10 +32,6 @@
+ #include <QFile>
+ #include <QDebug>
+ 
+-#define UKUI_THEME_LIGHT "ukui-light"
+-#define UKUI_THEME_BLACK "ukui-dark"
+-#define UKUI_THEME_DEFAULT "ukui-default"
+-
+ using namespace kdk;
+ 
+ static QColor symbolic_color = Qt::gray;
+diff --git a/common/ukmedia_common.h b/common/ukmedia_common.h
+index 05d99a4..c479997 100644
+--- a/common/ukmedia_common.h
++++ b/common/ukmedia_common.h
+@@ -32,6 +32,59 @@
+ #define PA_VOLUME_NORMAL      65536.0
+ #define UKMEDIA_VOLUME_NORMAL 100.0
+ 
++//  Init Port Volume
++#define MIC_VOLUME       100
++#define HDMI_VOLUME      100
++#define OUTPUT_VOLUME    67
++#define HEADPHONE_VOLUME 17
++
++#define HDMI      "hdmi"
++#define BLUEZ     "bluez"
++#define SPEAKER   "speaker"
++#define HEADPHONE "headphone"
++
++#define HUAWEI_BTO_SINK   "bt_sco_sink"
++#define HUAWEI_BTO_SOURCE "bt_sco_source"
++#define HEADSET_HEAD_UNIT "headset_head_unit"
++
++#define PA_ID_INVALID  ((uint32_t)0xffffffff)
++#define PANGUW_SINK "alsa_output.platform-raoliang-sndcard.analog-stereo"
++#define HISTEN_SINK "histen_sink"
++#define NOISE_REDUCE_SOURCE "noiseReduceSource"
++
++//  UKUI Audio
++#define KEY_SOUNDS_SCHEMA      "org.ukui.sound"
++#define ALERT_VOLUME           "alert-volume"
++#define AUDIO_VOLUME_CHANGE    "audio-volume-change"
++#define SOUND_CUSTOM_THEME_KEY "custom-theme"
++#define DNS_NOISE_REDUCTION    "dns-noise-reduction"
++#define EVENT_SOUNDS_KEY       "event-sounds"
++#define LOOP_BACK              "loopback"
++#define MONO_AUDIO             "mono-audio"
++#define NOTIFICATION_GENGERAL  "notification-general"
++#define SOUND_THEME_KEY        "theme-name"
++#define VOLUME_INCREASE        "volume-increase"
++#define VOLUME_INCREASE_VALUE  "volume-increase-value"
++#define SOUND_FILE_PATH        "/usr/share/sounds/xxxTheme/stereo/xxxFile.ogg"
++
++//  UKUI Session
++#define UKUI_SWITCH_SETTING     "org.ukui.session"
++#define UKUI_STARTUP_MUSIC_KEY  "startup-music"
++#define UKUI_POWEROFF_MUSIC_KEY "poweroff-music"
++#define UKUI_LOGOUT_MUSIC_KEY   "logout-music"
++#define UKUI_WAKEUP_MUSIC_KEY   "weakup-music"
++
++//  UKUI Theme
++#define UKUI_THEME_SETTING "org.ukui.style"
++#define UKUI_THEME_NAME    "style-name"
++#define UKUI_THEME_LIGHT   "ukui-light"
++#define UKUI_THEME_DARK    "ukui-dark"
++#define UKUI_THEME_DEFAULT "ukui-default"
++
++//  UKUI Global Theme
++#define UKUI_GLOBALTHEME_SETTINGS "org.ukui.globaltheme.settings"
++#define GLOBAL_THEME_NAME         "global-theme-name"
++
+ #define SYSTEM_VOLUME_CTRL                 "kylin-settings-system"
+ #define UKUI_MEDIA_PATH                    "/org/ukui/media"
+ #define UKUI_MEDIA_CONTROL_PATH            "/org/ukui/media/control"
+diff --git a/ukui-volume-control-applet-qt/ukmedia_main_widget.cpp b/ukui-volume-control-applet-qt/ukmedia_main_widget.cpp
+index 474b6c6..49f5365 100644
+--- a/ukui-volume-control-applet-qt/ukmedia_main_widget.cpp
++++ b/ukui-volume-control-applet-qt/ukmedia_main_widget.cpp
+@@ -46,10 +46,7 @@
+ #define SETTINGLINE_POS 0,424
+ #define KEYBINDINGS_CUSTOM_SCHEMA "org.ukui.media.sound"
+ #define KEYBINDINGS_CUSTOM_DIR "/org/ukui/sound/keybindings/"
+-#define KEY_SOUNDS_SCHEMA   "org.ukui.sound"
+-#define UKUI_SWITCH_SETTING "org.ukui.session"
+ 
+-#define UKUI_STARTUP_MUSIC_KEY "startup-music"
+ #define EVENT_SOUNDS_KEY "event-sounds"
+ #define MAX_CUSTOM_SHORTCUTS 1000
+ 
+@@ -1041,14 +1038,11 @@ void UkmediaMainWidget::jumpControlPanelSlot()
+ void UkmediaMainWidget::drawImagColorFromTheme(UkuiButtonDrawSvg *button, QString iconStr)
+ {
+     button->themeIcon.image = QIcon::fromTheme(iconStr).pixmap(24,24).toImage();
+-    button->themeIcon.color = QColor(0,0,0,216);
+ 
+-    if (mThemeName == UKUI_THEME_WHITE) {
+-        button->themeIcon.color = QColor(255,255,255,216);
+-    }
+-    else if (mThemeName == UKUI_THEME_BLACK) {
++    if (mThemeName == UKUI_THEME_LIGHT)
++        button->themeIcon.color = QColor(0,0,0,216);
++    else
+         button->themeIcon.color = QColor(255,255,255,216);
+-    }
+ }
+ 
+ /*
+@@ -1094,15 +1088,6 @@ void UkmediaMainWidget::inputVolumeDarkThemeImage(int value,bool status)
+     else {
+         inputIconStr = iconNameInputs[3];
+     }
+-
+-    if (mThemeName == "ukui-white" || mThemeName == "ukui-light") {
+-//        devWidget->inputMuteButton->themeIcon.color = QColor(0,0,0,216);
+-//        devWidget->inputMuteButton->themeIcon.image = QIcon::fromTheme(inputIconStr).pixmap(24,24).toImage();
+-    }
+-    else if (mThemeName == UKUI_THEME_BLACK || mThemeName == "ukui-black" || mThemeName == "ukui-default") {
+-//        devWidget->inputMuteButton->themeIcon.color = QColor(255,255,255,216);
+-//        devWidget->inputMuteButton->themeIcon.image = QIcon::fromTheme(inputIconStr).pixmap(24,24).toImage();
+-    }
+ }
+ 
+ /*
+@@ -1362,10 +1347,10 @@ void UkmediaMainWidget::addAppToAppwidget(QString appName, QString appIconName,
+             return;
+         QString audioIconStr = outputVolumeToIconStr(isMute,value);
+         QSize iconSize(24,24);
+-        if ( mThemeName == "ukui-white" || mThemeName == "ukui-light") {
++        if (mThemeName == UKUI_THEME_DEFAULT) {
+             btn->setIcon(QIcon(drawDarkColoredPixmap((QIcon::fromTheme(audioIconStr).pixmap(iconSize)))));
+         }
+-        else if (mThemeName == UKUI_THEME_BLACK || mThemeName == "ukui-black" || mThemeName == "ukui-default") {
++        else if (mThemeName == UKUI_THEME_DARK || mThemeName == UKUI_THEME_DEFAULT) {
+             btn->setIcon(QIcon(drawLightColoredPixmap((QIcon::fromTheme(audioIconStr).pixmap(iconSize)))));
+         }
+     });
+@@ -1421,7 +1406,7 @@ void UkmediaMainWidget::sinkInputVolumeChangedSlot(QString appName, QString appI
+ void UkmediaMainWidget::switchStartupPlayMusic()
+ {
+     if (m_pStartUpSetting->keys().contains("startupMusic")) {
+-       bool state = m_pStartUpSetting->get(STARTUP_MUSIC).toBool();
++       bool state = m_pStartUpSetting->get(UKUI_STARTUP_MUSIC_KEY).toBool();
+        m_pVolumeControl->insertJson(JsonType::JSON_TYPE_USERINFO, AUDIO_STRATUP_SOUNDEFFECT_KEY, state);
+        qDebug() << "the switch of startup sound effect is changed to " << state;
+     }
+diff --git a/ukui-volume-control-applet-qt/ukmedia_main_widget.h b/ukui-volume-control-applet-qt/ukmedia_main_widget.h
+index f8054b2..15c3f50 100644
+--- a/ukui-volume-control-applet-qt/ukmedia_main_widget.h
++++ b/ukui-volume-control-applet-qt/ukmedia_main_widget.h
+@@ -66,48 +66,17 @@ extern "C" {
+ #include <alsa/asoundlib.h>
+ #include <set>
+ 
+-#define UKUI_THEME_SETTING "org.ukui.style"
+-#define UKUI_THEME_NAME    "style-name"         //主题名称
+-#define UKUI_THEME_WHITE   "ukui-default"       //默认主题
+-#define UKUI_THEME_BLACK   "ukui-dark"          //深色主题
+-#define GLOBAL_THEME_NAME  "global-theme-name"  //全局主题
+-#define UKUI_GLOBALTHEME_SETTINGS "org.ukui.globaltheme.settings"
+-
+ //  为平板模式提供设置音量值
+ #define UKUI_VOLUME_KEY   "volumesize" //音量大小
+ #define UKUI_VOLUME_STATE "soundstate" //音量状态
+ #define UKUI_VOLUME_BRIGHTNESS_GSETTING_ID "org.ukui.quick-operation.panel"
+ 
+-#define KEY_SOUNDS_SCHEMA   "org.ukui.sound"
+-#define UKUI_AUDIO_SCHEMA   "org.ukui.audio"
+-#define SOUND_THEME_KEY     "theme-name"
+-
+-#define PA_VOLUME_NORMAL 65536.0
+-#define UKMEDIA_VOLUME_NORMAL 100.0
+-
+ // 初始化音量
+ #define HEADPHONE_VOLUME 11141
+ #define HDMI_VOLUME 65536
+ #define OUTPUT_VOLUME 43909
+ #define MIC_VOLUME 65536
+ 
+-//  声音功能
+-#define LOOP_BACK             "loopback"
+-#define MONO_AUDIO            "mono-audio"
+-#define STARTUP_MUSIC         "startup-music"
+-#define VOLUME_INCREASE       "volume-increase"
+-#define DNS_NOISE_REDUCTION   "dns-noise-reduction"
+-#define VOLUME_INCREASE_VALUE "volume-increase-value"
+-
+-#define HDMI      "hdmi"
+-#define BLUEZ     "bluez"
+-#define SPEAKER   "speaker"
+-#define HEADPHONE "headphone"
+-
+-#define HUAWEI_BTO_SINK   "bt_sco_sink"
+-#define HUAWEI_BTO_SOURCE "bt_sco_source"
+-#define HEADSET_HEAD_UNIT "headset_head_unit"
+-
+ //  任务栏多屏显示声音应用获取屏幕可用区域接口
+ #define PANEL_SETTINGS      "org.ukui.panel.settings"
+ #define PANEL_SIZE_KEY      "panelsize"
+@@ -397,7 +366,7 @@ private:
+     bool firstEntry = true;
+ 
+     QProcess *m_process;
+-    QString mThemeName = UKUI_THEME_WHITE;
++    QString mThemeName = UKUI_THEME_DEFAULT;
+     bool firstEnterSystem = true;
+     ca_context *caContext;
+     bool firstLoad = true;
+diff --git a/ukui-volume-control-applet-qt/ukmedia_volume_control.cpp b/ukui-volume-control-applet-qt/ukmedia_volume_control.cpp
+index e8b43fc..57201e6 100644
+--- a/ukui-volume-control-applet-qt/ukmedia_volume_control.cpp
++++ b/ukui-volume-control-applet-qt/ukmedia_volume_control.cpp
+@@ -35,9 +35,6 @@
+ #include <alsa/asoundlib.h>
+ #include <QGSettings>
+ 
+-#define KEY_SOUNDS_SCHEMA   "org.ukui.sound"
+-#define MONO_AUDIO          "mono-audio"
+-
+ //pa_sink_info *m_pDefaultSink;
+ /* Used for profile sorting */
+ struct profile_prio_compare {
+@@ -1155,72 +1152,77 @@ void UkmediaVolumeControl::updateSource(const pa_source_info &info) {
+     initDefaultSourceVolume(info);
+ 
+     //  Update some variables for the default input
+-    if (UKMedia_Equal(defaultSourceName.data(), info.name) ||
+-            //开启降噪状态下,如果这个source存在多个端口,且不同端口音量相同时,不会触发 noiseReduceSource 回调,导致无法更新 portName
+-            (UKMedia_Equal(masterDevice.toLatin1().data(), info.name) && UKMedia_Equal(defaultSourceName.data(), ("noiseReduceSource")))) {
++    if (UKMedia_Equal(defaultSourceName.data(), info.name))
++    {
+         sourceIndex = info.index;
+         inputChannel = info.volume.channels;
+-        QString portName = (info.active_port) ? info.active_port->name : "";
++        QString portName = "";
++        int inputCard = -1;
+ 
++
++        // Status: this is a filter soource
+         if (pa_proplist_gets(info.proplist, PA_PROP_DEVICE_MASTER_DEVICE)) {
+-            portName = findMasterDeviceInfo(info.proplist, info.name);
++            masterDevice = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_MASTER_DEVICE);
++            sourceInfo s = getSourceInfoByName(masterDevice);
++            inputCard = s.card;
++            portName = s.active_port_name;
++            qInfo() << "This is a filter source:" << info.name << "master device:" << masterDevice;
+         }
+-
+-        if (sourcePortName != portName) {
+-            qDebug() << "Send SIGNAL: sourcePortChanged. Case: different port" << sourcePortName << portName;
+-            sourcePortName = portName;
+-            sendSourcePortChangedSignal();
+-        } else {
+-            int index = -1;
+-            if (pa_proplist_gets(info.proplist, PA_PROP_DEVICE_MASTER_DEVICE)) {
+-                index = findPortSourceIndex(masterDevice);
+-            }
+-
+-            if (defaultInputCard != info.card && defaultInputCard != index) {
+-                sendSourcePortChangedSignal();
+-                qDebug() << "Send SIGNAL: sourcePortChanged. Case: same port, different card" << defaultInputCard << info.card;
+-            }
++        // Status: generally
++        else {
++            inputCard = info.card;
++            portName = (info.active_port) ? info.active_port->name : "";
+         }
+ 
+-        if (pa_proplist_gets(info.proplist, PA_PROP_DEVICE_MASTER_DEVICE)) {
+-            defaultInputCard = findPortSourceIndex(masterDevice);
+-        } else {
+-            defaultInputCard = info.card;
++        //  判断是否发送端口改变信号
++        if (sourcePortName != portName || defaultInputCard != inputCard) {
++            sendSourcePortChangedSignal();
++            qInfo() << "Send SIGNAL: sourcePortChanged." << sourcePortName << portName << defaultInputCard << inputCard;
+         }
+ 
+-        //bug#254769/256035 输入设备为内置mic或为空时,需要隐藏侦听功能(控制面板代码实现)并卸载侦听模块
+-        if(strstr(sourcePortName.toUtf8().constData(), "internal") \
+-           || strstr(sourcePortName.toUtf8().constData(), "[In] Mic1") \
+-           || (sourcePortName.toUtf8() == ""))
+-        {
+-            if (QGSettings::isSchemaInstalled(KEY_SOUNDS_SCHEMA))
+-            {
+-                QGSettings *m_pSoundSettings = new QGSettings(KEY_SOUNDS_SCHEMA);
++        // 如果当前端口为无 or 内置Mic,需要关闭侦听GSettings
++        if (portName.isEmpty() || portName.contains("internal") || portName.contains("Mic1")) {
++            if (QGSettings::isSchemaInstalled(KEY_SOUNDS_SCHEMA)) {
++                QGSettings soundSettings(KEY_SOUNDS_SCHEMA);
+ 
+-                if(m_pSoundSettings->get("loopback").toBool())
+-                    m_pSoundSettings->set("loopback", "false");
++                if(soundSettings.get(LOOP_BACK).toBool()) {
++                    soundSettings.set(LOOP_BACK, "false");
++                    qInfo() << "Disable GSettings of the Loopback module";
++                }
+             }
+-
+-            qDebug() << " updateSource -> m_pSoundSettings->set(loopback, false)";
+         }
+ 
+-
++        //  当信号发送完,更新defaultInputCard和sourcePortName
++        sourcePortName = portName;
++        defaultInputCard = inputCard;
+         refreshVolume(SoundType::SOURCE, volume, info.mute);
+-        qDebug() << __func__ << info.name << sourcePortName;
++        qInfo() << __func__ << "Status1 defaultSource:" << sourceIndex << defaultSourceName << "sourcePort" << sourcePortName;
++    }
++    /* 开启降噪状态下,如果这个source存在多个端口,且不同端口音量相同时,不会触发 noiseReduceSource 回调,导致无法更新 portName */
++    else if (UKMedia_Equal(masterDevice.toLatin1().data(), info.name) && UKMedia_Equal(defaultSourceName, "noiseReduceSource"))
++    {
++        if (!UKMedia_Equal(info.active_port->name, sourcePortName.toLatin1().data()) || info.card != defaultInputCard) {
++            sendSourcePortChangedSignal();
++            qInfo() << "Send SIGNAL: sourcePortChanged. Status 2";
++        }
++
++        defaultInputCard = info.card;
++        sourcePortName = (info.active_port) ? info.active_port->name : "";
++        qInfo() << __func__ << "Status2 defaultSource:" << sourceIndex << defaultSourceName << "sourcePort" << sourcePortName;
+     }
+ 
+     if (info.ports) {
+-        QMap<QString,QString>temp;
+-        for (pa_source_port_info ** sourcePort = info.ports; *sourcePort != nullptr; ++sourcePort) {
+-            temp.insertMulti(info.name,(*sourcePort)->name);
++        QMap<QString,QString> temp;
++        for (pa_source_port_info **sourcePort = info.ports; *sourcePort != nullptr; ++sourcePort) {
++            temp.insertMulti(info.name, (*sourcePort)->name);
+         }
+ 
+         if (sourcePortMap.isEmpty()) {
+-            sourcePortMap.insertMulti(info.card,temp);
++            sourcePortMap.insertMulti(info.card, temp);
+         }
+ 
+         if (!sourcePortMap.values().contains(temp)) {
+-            sourcePortMap.insertMulti(info.card,temp);
++            sourcePortMap.insertMulti(info.card, temp);
+         }
+     }
+ }
+@@ -1708,40 +1710,31 @@ void UkmediaVolumeControl::sourceIndexCb(pa_context *c, const pa_source_info *i,
+     w->sourceIndex = i->index;
+ 
+     QString portName = "";
+-    if (i->active_port) {
+-        portName = i->active_port->name;
+-    } else {
+-        portName = "";
+-    }
++    int inputCard = -1;
+ 
+-    if (pa_proplist_gets(i->proplist,PA_PROP_DEVICE_MASTER_DEVICE)) {
+-        portName = w->findMasterDeviceInfo(i->proplist, i->name);
++    if (pa_proplist_gets(i->proplist, PA_PROP_DEVICE_MASTER_DEVICE)) {
++        w->masterDevice = pa_proplist_gets(i->proplist, PA_PROP_DEVICE_MASTER_DEVICE);
++        sourceInfo s = w->getSourceInfoByName(w->masterDevice);
++        inputCard = s.card;
++        portName = s.active_port_name;
++    }
++    else {
++        inputCard = i->card;
++        portName = (i->active_port) ? i->active_port->name : "";
+     }
+ 
+-    if (w->sourcePortName != portName) {
+-        qDebug() << "Send SIGNAL: sourcePortChanged. Case: different port" << w->sourcePortName << portName;
+-        w->sourcePortName = portName;
++    // 判断是否发送端口改变信号
++    if (w->sourcePortName != portName || w->defaultInputCard != inputCard) {
+         w->sendSourcePortChangedSignal();
+-    } else {
+-        int index = -1;
+-        if (pa_proplist_gets(i->proplist,PA_PROP_DEVICE_MASTER_DEVICE)) {
+-            index = w->findPortSourceIndex(w->masterDevice);
+-        }
+-        if (w->defaultInputCard != i->card && w->defaultInputCard != index) {
+-            w->sendSourcePortChangedSignal();
+-            qDebug() << "Send SIGNAL: sourcePortChanged. Case: same port, different card" << w->defaultInputCard << i->card;
+-        }
++        qInfo() << "Send SIGNAL: sourcePortChanged." << w->sourcePortName << portName << w->defaultInputCard << inputCard;
+     }
+ 
+-    if (pa_proplist_gets(i->proplist,PA_PROP_DEVICE_MASTER_DEVICE)) {
+-        w->defaultInputCard = w->findPortSourceIndex(w->masterDevice);
+-    } else {
+-        w->defaultInputCard = i->card;
+-    }
++    //  当信号发送完,更新defaultInputCard和sourcePortName
++    w->sourcePortName = portName;
++    w->defaultInputCard = inputCard;
+ 
+     w->refreshVolume(SoundType::SOURCE, volume, i->mute);
+-
+-    qDebug() << "sourceIndexCb---" << w->sourcePortName;
++    qDebug() << __func__ << "defaultInputCard" << w->defaultInputCard << "sourcePort" << w->sourcePortName;
+ }
+ 
+ void UkmediaVolumeControl::sinkCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata)
+@@ -1786,9 +1779,9 @@ void UkmediaVolumeControl::sourceCb(pa_context *c, const pa_source_info *i, int
+     }
+ 
+     w->m_pDefaultSource = i;
+-    w->sourceMap.insert(i->index, w->addSourceInfo(*i));
++    qInfo() << "sourceCb" << i->index << i->name;
+ 
+-    qDebug() << __func__ << "Volume:" << i->volume.values[0] << "isMute:" << i->mute << i->name;
++    w->sourceMap.insert(i->index, w->addSourceInfo(*i));
+     w->updateSource(*i);
+ }
+ 
+@@ -3061,3 +3054,51 @@ void UkmediaVolumeControl::sendOSDDeviceChangedSignal(QString icon)
+     m_osdDeviceChangedTimer.start();
+     //end
+ }
++
++sinkInfo UkmediaVolumeControl::getSinkInfoByIndex(int index)
++{
++    QMap<int, sinkInfo>::iterator it;
++
++    for (it = sinkMap.begin(); it != sinkMap.end(); ++it)
++    {
++        if (index == it.key())
++            return it.value();
++    }
++    qInfo() << "Can't find sink info by index" << index;
++}
++
++sinkInfo UkmediaVolumeControl::getSinkInfoByName(QString name)
++{
++    QMap<int, sinkInfo>::iterator it;
++
++    for (it = sinkMap.begin(); it != sinkMap.end(); ++it)
++    {
++        if (name == it.value().name)
++            return it.value();
++    }
++    qInfo() << "Can't find sink info by name" << name;
++}
++
++sourceInfo UkmediaVolumeControl::getSourceInfoByIndex(int index)
++{
++    QMap<int, sourceInfo>::iterator it;
++
++    for (it = sourceMap.begin(); it != sourceMap.end(); ++it)
++    {
++        if (index == it.key())
++            return it.value();
++    }
++    qInfo() << "Can't find source info by index" << index;
++}
++
++sourceInfo UkmediaVolumeControl::getSourceInfoByName(QString name)
++{
++    QMap<int, sourceInfo>::iterator it;
++
++    for (it = sourceMap.begin(); it != sourceMap.end(); ++it)
++    {
++        if (name == it.value().name)
++            return it.value();
++    }
++    qInfo() << "Can't find source info by name" << name;
++}
+diff --git a/ukui-volume-control-applet-qt/ukmedia_volume_control.h b/ukui-volume-control-applet-qt/ukmedia_volume_control.h
+index b895350..8430554 100644
+--- a/ukui-volume-control-applet-qt/ukmedia_volume_control.h
++++ b/ukui-volume-control-applet-qt/ukmedia_volume_control.h
+@@ -47,23 +47,6 @@
+ #include "../common/ukmedia_common.h"
+ #include "ukui_volume_control_user_config.h"
+ 
+-#define PA_ID_INVALID  ((uint32_t)0xffffffff)
+-#define PANGUW_SINK "alsa_output.platform-raoliang-sndcard.analog-stereo"
+-#define NOISE_REDUCE_SOURCE "noiseReduceSource"
+-#define HISTEN_SINK "histen_sink"
+-
+-#define SPEAKER "analog-output-speaker"
+-#define HUAWEI_SPEAKER "analog-output-speaker-huawei"
+-
+-#define HEADPHONE_VOLUME 17
+-#define HDMI_VOLUME 100
+-#define OUTPUT_VOLUME 67
+-#define MIC_VOLUME 100
+-#define PA_VOLUME_NORMAL 65536.0
+-#define PA_VOLUME_MIN 0
+-#define UKMEDIA_VOLUME_NORMAL 100.0
+-#define UKMEDIA_VOLUME_MIN 0
+-
+ class PortInfo {
+ public:
+       QByteArray name;
+@@ -87,7 +70,6 @@ public:
+     void UkmediaDbusRegister();
+     void insertJson(const JsonType& type, const QString& key, const QJsonValue& value);
+     int boolToInt(bool b);
+-    void refreshVolume(int soundType, int info_Vol, bool info_Mute);
+     void updateCard(UkmediaVolumeControl *c, const pa_card_info &info);
+ 
+     QString findCardName(int index, QMap<int, QString> cardMap);
+@@ -132,7 +114,19 @@ public:
+     bool setSourceOutputMuted(QString appName, bool status);
+     void setSourceOutputVolume(int index, int value, int channel);
+ 
+-    void getModuleIndexByName(QString name);
++    // sinkInfo
++    sinkInfo addSinkInfo(const pa_sink_info& i);
++    sinkInfo getSinkInfoByIndex(int index);
++    sinkInfo getSinkInfoByName(QString name);
++
++    // sourceInfo
++    sourceInfo addSourceInfo(const pa_source_info& i);
++    sourceInfo getSourceInfoByIndex(int index);
++    sourceInfo getSourceInfoByName(QString name);
++
++    void refreshVolume(int soundType, int info_Vol, bool info_Mute);
++
++    int getModuleIndexByName(QString name);
+     int getDefaultSinkIndex();
+     bool setCardProfile(int index,const gchar *name); //设置声卡的配置文件
+     bool setDefaultSink(const gchar *name); //设置默认的输出设备
+@@ -210,8 +204,6 @@ public:
+ 
+     void sendOsdWidgetSignal(QString portName, QString description);
+ 
+-    sinkInfo addSinkInfo(const pa_sink_info& i);
+-    sourceInfo addSourceInfo(const pa_source_info& i);
+     appInfo addSinkInputInfo(const pa_sink_input_info & info);
+     appInfo addSourceOutputInfo(const pa_source_output_info& info);
+     void moveSinkInput(QString appName, const char* sinkName);
diff -Nru ukui-media-3.25.0.0/debian/patches/0062-63-AI.patch ukui-media-3.25.0.0/debian/patches/0062-63-AI.patch
--- ukui-media-3.25.0.0/debian/patches/0062-63-AI.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0062-63-AI.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,45 @@
+From: ctfcc <2361134695@qq.com>
+Date: Fri, 25 Oct 2024 10:50:10 +0000
+Subject: =?utf-8?b?ITYzIOOAkOS8mOm6kum6nytBSeeJiOOAkeOAkOWjsOmfs+OAkeaOpw==?=
+ =?utf-8?b?5Yi26Z2i5p2/57y65bCR5aOw6Z+z5qih5Z2XIE1lcmdlIHB1bGwgcmVxdWVzdCAh?=
+ =?utf-8?b?NjMgZnJvbSBjdGZjYy9vcGVua3lsaW4vbmlsZQ==?=
+
+---
+ audio/audio.pro               | 1 +
+ audio/ukmedia_main_widget.cpp | 4 ++--
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/audio/audio.pro b/audio/audio.pro
+index 889bb98..c59d195 100644
+--- a/audio/audio.pro
++++ b/audio/audio.pro
+@@ -34,6 +34,7 @@ PKGCONFIG += gio-2.0 \
+              libpulse \
+              libpulse-mainloop-glib \
+              kysdk-qtwidgets \
++             kysdk-sysinfo \
+              kysdk-hardware
+ #DEFINES += QT_DEPRECATED_WARNINGS
+ 
+diff --git a/audio/ukmedia_main_widget.cpp b/audio/ukmedia_main_widget.cpp
+index 66290e5..db5ae99 100644
+--- a/audio/ukmedia_main_widget.cpp
++++ b/audio/ukmedia_main_widget.cpp
+@@ -1372,7 +1372,7 @@ void UkmediaMainWidget::updateAlert (UkmediaMainWidget *pWidget,const char *aler
+     int index = -1;
+     /* Get the current theme's name, and set the parent */
+     index = pWidget->m_pSoundWidget->m_pSoundThemeCombobox->currentIndex();
+-    if (index != -1) {
++    if (index != -1 && pWidget->m_pThemeNameList.count() > 0) {
+         themeStr = pWidget->m_pThemeNameList.at(index);
+         nameStr = pWidget->m_pThemeNameList.at(index);
+     }
+@@ -1954,7 +1954,7 @@ void UkmediaMainWidget::outputMuteButtonSlot()
+ */
+ void UkmediaMainWidget::themeComboxIndexChangedSlot(int index)
+ {
+-    if (-1 == index)
++    if (-1 == index || nullptr == m_pGlobalThemeSetting)
+         return;
+ 
+     QString theme = m_pSoundWidget->m_pSoundThemeCombobox->currentData().toString();
diff -Nru ukui-media-3.25.0.0/debian/patches/0063-64.patch ukui-media-3.25.0.0/debian/patches/0063-64.patch
--- ukui-media-3.25.0.0/debian/patches/0063-64.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0063-64.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,37 @@
+From: ctfcc <2361134695@qq.com>
+Date: Mon, 28 Oct 2024 03:25:49 +0000
+Subject: =?utf-8?b?ITY0IOino+WGs+e8luivkemUmeivryBNZXJnZSBwdWxsIHJlcXVlc3Qg?=
+ =?utf-8?b?ITY0IGZyb20gY3RmY2Mvb3Blbmt5bGluL25pbGU=?=
+
+---
+ common/ukmedia_common.h                                | 2 ++
+ ukui-volume-control-applet-qt/ukmedia_volume_control.h | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/common/ukmedia_common.h b/common/ukmedia_common.h
+index c479997..5efceb4 100644
+--- a/common/ukmedia_common.h
++++ b/common/ukmedia_common.h
+@@ -30,7 +30,9 @@
+ #define SETTINGSWIDGET_WIDTH  760
+ #define SETTINGSWIDGET_HEIGHT 520
+ #define PA_VOLUME_NORMAL      65536.0
++#define PA_VOLUME_MIN         0.0
+ #define UKMEDIA_VOLUME_NORMAL 100.0
++#define UKMEDIA_VOLUME_MIN    0.0
+ 
+ //  Init Port Volume
+ #define MIC_VOLUME       100
+diff --git a/ukui-volume-control-applet-qt/ukmedia_volume_control.h b/ukui-volume-control-applet-qt/ukmedia_volume_control.h
+index 8430554..77efdc2 100644
+--- a/ukui-volume-control-applet-qt/ukmedia_volume_control.h
++++ b/ukui-volume-control-applet-qt/ukmedia_volume_control.h
+@@ -126,7 +126,7 @@ public:
+ 
+     void refreshVolume(int soundType, int info_Vol, bool info_Mute);
+ 
+-    int getModuleIndexByName(QString name);
++    void getModuleIndexByName(QString name);
+     int getDefaultSinkIndex();
+     bool setCardProfile(int index,const gchar *name); //设置声卡的配置文件
+     bool setDefaultSink(const gchar *name); //设置默认的输出设备
diff -Nru ukui-media-3.25.0.0/debian/patches/0064-Added-translation-using-Weblate-Vietnamese.patch ukui-media-3.25.0.0/debian/patches/0064-Added-translation-using-Weblate-Vietnamese.patch
--- ukui-media-3.25.0.0/debian/patches/0064-Added-translation-using-Weblate-Vietnamese.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0064-Added-translation-using-Weblate-Vietnamese.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,1245 @@
+From: KevinDuan <duankaiwen@kylinos.cn>
+Date: Thu, 13 Feb 2025 10:57:20 +0800
+Subject: Added translation using Weblate (Vietnamese)
+
+---
+ audio/translations/ar.ts | 611 +++++++++++++++++++++++++++++++++++++++++++++++
+ audio/translations/vi.ts | 611 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 1222 insertions(+)
+ create mode 100644 audio/translations/ar.ts
+ create mode 100644 audio/translations/vi.ts
+
+diff --git a/audio/translations/ar.ts b/audio/translations/ar.ts
+new file mode 100644
+index 0000000..facaa88
+--- /dev/null
++++ b/audio/translations/ar.ts
+@@ -0,0 +1,611 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="ar">
++<context>
++    <name>Audio</name>
++    <message>
++        <location filename="../audio.ui" line="26"/>
++        <location filename="../audio.cpp" line="38"/>
++        <source>Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="93"/>
++        <source>UkccPlugin</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="95"/>
++        <source>ukccplugin test</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>InputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="426"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="463"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>OutputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="112"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="149"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="230"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1835"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1914"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1414"/>
++        <source>Card callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1432"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1504"/>
++        <source>Sink callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1465"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1533"/>
++        <source>Source callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1562"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2068"/>
++        <source>Sink input callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1581"/>
++        <source>Source output callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1626"/>
++        <source>Client callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1642"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1656"/>
++        <source>Server info callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1703"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1720"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1737"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1773"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1786"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1812"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1825"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1865"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1905"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1921"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1928"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1935"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1942"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1949"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1956"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1992"/>
++        <source>Ukui Media Volume Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppCtrlWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="37"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="342"/>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="363"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="899"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppItemWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="21"/>
++        <source>Application</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="47"/>
++        <source>Output Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="77"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="84"/>
++        <source>This case does not support setting the input device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="104"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="111"/>
++        <source>This case does not support setting the output device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="131"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDevControlWidget</name>
++    <message>
++        <source>audio device control</source>
++        <translation type="vanished">声音设备管理</translation>
++    </message>
++    <message>
++        <source>output device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>input device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="14"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="26"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="27"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaInputWidget</name>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="57"/>
++        <source>Input</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="64"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="68"/>
++        <source>Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="74"/>
++        <source>Input Level</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Level</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="84"/>
++        <source>Noise Reduction</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Noise Reduction</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="89"/>
++        <source>Voice Monitor</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/audio/Voice Monitor</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="91"/>
++        <source>(None Device)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="93"/>
++        <source>You can hear your voice in the output device of your choice</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <source>Light-Seeking</source>
++        <translation type="obsolete">寻光</translation>
++    </message>
++    <message>
++        <source>HeYin</source>
++        <translation type="obsolete">和印</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="276"/>
++        <location filename="../ukmedia_main_widget.cpp" line="375"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1179"/>
++        <source>Custom</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="1611"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1613"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1616"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2901"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2906"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2912"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2917"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2933"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2941"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2990"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3095"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3232"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3473"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaOutputWidget</name>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="74"/>
++        <source>Output</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="80"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="84"/>
++        <source>Master Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Master Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="90"/>
++        <source>Balance</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Balance</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="92"/>
++        <source>Left</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="95"/>
++        <source>Right</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="100"/>
++        <source>Volume Increase</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="102"/>
++        <source>Volume above 100% can cause sound distortion and damage your speakers.</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="125"/>
++        <source>Mono Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="127"/>
++        <source>It merges the left and right channels into one channel.</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSettingsWidget</name>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="17"/>
++        <source>Advanced Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="24"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Equipment Control</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="27"/>
++        <location filename="../ukmedia_settings_widget.cpp" line="34"/>
++        <source>Details</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="31"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/App Sound Control</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaSoundEffectsWidget</name>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="59"/>
++        <source>System Sound</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="64"/>
++        <source>Sound Theme</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Theme</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="68"/>
++        <source>Beep Switch</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Beep Switch</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
++        <source>Poweroff Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="74"/>
++        <source>Startup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Startup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="77"/>
++        <source>Wakeup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="83"/>
++        <source>Notification Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Notification Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="88"/>
++        <source>Volume Control Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume Control Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="80"/>
++        <source>Logout Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Logout Music</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="101"/>
++        <location filename="../ukmedia_volume_control.cpp" line="174"/>
++        <location filename="../ukmedia_volume_control.cpp" line="252"/>
++        <location filename="../ukmedia_volume_control.cpp" line="256"/>
++        <location filename="../ukmedia_volume_control.cpp" line="268"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="68"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="117"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="141"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="285"/>
++        <location filename="../ukmedia_volume_control.cpp" line="289"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="301"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="313"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="327"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="340"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="356"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="370"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source> (plugged in)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="403"/>
++        <location filename="../ukmedia_volume_control.cpp" line="586"/>
++        <source> (unavailable)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="405"/>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <source> (unplugged)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="761"/>
++        <source>Failed to read data from stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="804"/>
++        <source>Peak detect</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="805"/>
++        <source>Failed to create monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="819"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="959"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1049"/>
++        <source>pa_context_kill_source_output() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1381"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++</TS>
+diff --git a/audio/translations/vi.ts b/audio/translations/vi.ts
+new file mode 100644
+index 0000000..c0f88e1
+--- /dev/null
++++ b/audio/translations/vi.ts
+@@ -0,0 +1,611 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="vi">
++<context>
++    <name>Audio</name>
++    <message>
++        <location filename="../audio.ui" line="26"/>
++        <location filename="../audio.cpp" line="38"/>
++        <source>Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="93"/>
++        <source>UkccPlugin</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="95"/>
++        <source>ukccplugin test</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>InputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="426"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="463"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>OutputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="112"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="149"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="230"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1835"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1914"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1414"/>
++        <source>Card callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1432"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1504"/>
++        <source>Sink callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1465"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1533"/>
++        <source>Source callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1562"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2068"/>
++        <source>Sink input callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1581"/>
++        <source>Source output callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1626"/>
++        <source>Client callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1642"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1656"/>
++        <source>Server info callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1703"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1720"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1737"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1773"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1786"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1812"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1825"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1865"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1905"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1921"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1928"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1935"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1942"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1949"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1956"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1992"/>
++        <source>Ukui Media Volume Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppCtrlWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="37"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="342"/>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="363"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="899"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppItemWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="21"/>
++        <source>Application</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="47"/>
++        <source>Output Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="77"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="84"/>
++        <source>This case does not support setting the input device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="104"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="111"/>
++        <source>This case does not support setting the output device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="131"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDevControlWidget</name>
++    <message>
++        <source>audio device control</source>
++        <translation type="vanished">声音设备管理</translation>
++    </message>
++    <message>
++        <source>output device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>input device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="14"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="26"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="27"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaInputWidget</name>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="57"/>
++        <source>Input</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="64"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="68"/>
++        <source>Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="74"/>
++        <source>Input Level</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Level</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="84"/>
++        <source>Noise Reduction</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Noise Reduction</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="89"/>
++        <source>Voice Monitor</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/audio/Voice Monitor</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="91"/>
++        <source>(None Device)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="93"/>
++        <source>You can hear your voice in the output device of your choice</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <source>Light-Seeking</source>
++        <translation type="obsolete">寻光</translation>
++    </message>
++    <message>
++        <source>HeYin</source>
++        <translation type="obsolete">和印</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="276"/>
++        <location filename="../ukmedia_main_widget.cpp" line="375"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1179"/>
++        <source>Custom</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="1611"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1613"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1616"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2901"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2906"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2912"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2917"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2933"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2941"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2990"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3095"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3232"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3473"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaOutputWidget</name>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="74"/>
++        <source>Output</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="80"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="84"/>
++        <source>Master Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Master Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="90"/>
++        <source>Balance</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Balance</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="92"/>
++        <source>Left</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="95"/>
++        <source>Right</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="100"/>
++        <source>Volume Increase</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="102"/>
++        <source>Volume above 100% can cause sound distortion and damage your speakers.</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="125"/>
++        <source>Mono Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="127"/>
++        <source>It merges the left and right channels into one channel.</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSettingsWidget</name>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="17"/>
++        <source>Advanced Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="24"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Equipment Control</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="27"/>
++        <location filename="../ukmedia_settings_widget.cpp" line="34"/>
++        <source>Details</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="31"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/App Sound Control</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaSoundEffectsWidget</name>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="59"/>
++        <source>System Sound</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="64"/>
++        <source>Sound Theme</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Theme</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="68"/>
++        <source>Beep Switch</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Beep Switch</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
++        <source>Poweroff Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="74"/>
++        <source>Startup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Startup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="77"/>
++        <source>Wakeup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="83"/>
++        <source>Notification Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Notification Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="88"/>
++        <source>Volume Control Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume Control Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="80"/>
++        <source>Logout Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Logout Music</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="101"/>
++        <location filename="../ukmedia_volume_control.cpp" line="174"/>
++        <location filename="../ukmedia_volume_control.cpp" line="252"/>
++        <location filename="../ukmedia_volume_control.cpp" line="256"/>
++        <location filename="../ukmedia_volume_control.cpp" line="268"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="68"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="117"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="141"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="285"/>
++        <location filename="../ukmedia_volume_control.cpp" line="289"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="301"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="313"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="327"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="340"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="356"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="370"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source> (plugged in)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="403"/>
++        <location filename="../ukmedia_volume_control.cpp" line="586"/>
++        <source> (unavailable)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="405"/>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <source> (unplugged)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="761"/>
++        <source>Failed to read data from stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="804"/>
++        <source>Peak detect</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="805"/>
++        <source>Failed to create monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="819"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="959"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1049"/>
++        <source>pa_context_kill_source_output() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1381"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++</TS>
diff -Nru ukui-media-3.25.0.0/debian/patches/0065-Translated-using-Weblate-Vietnamese.patch ukui-media-3.25.0.0/debian/patches/0065-Translated-using-Weblate-Vietnamese.patch
--- ukui-media-3.25.0.0/debian/patches/0065-Translated-using-Weblate-Vietnamese.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0065-Translated-using-Weblate-Vietnamese.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,1351 @@
+From: KevinDuan <duankaiwen@kylinos.cn>
+Date: Thu, 13 Feb 2025 02:59:31 +0000
+Subject: Translated using Weblate (Vietnamese)
+
+Currently translated at 100.0% (99 of 99 strings)
+
+Translation: openkylin-nile-new/audio
+Translate-URL: http://weblate.openkylin.top/projects/openkylin-nile-new/audio/vi/
+---
+ audio/translations/ar.ts | 198 +++++++++++++++++++++++------------------------
+ audio/translations/vi.ts | 198 +++++++++++++++++++++++------------------------
+ 2 files changed, 198 insertions(+), 198 deletions(-)
+
+diff --git a/audio/translations/ar.ts b/audio/translations/ar.ts
+index facaa88..f899125 100644
+--- a/audio/translations/ar.ts
++++ b/audio/translations/ar.ts
+@@ -7,18 +7,18 @@
+         <location filename="../audio.ui" line="26"/>
+         <location filename="../audio.cpp" line="38"/>
+         <source>Audio</source>
+-        <translation type="unfinished"></translation>
++        <translation>صوتي</translation>
+     </message>
+     <message>
+         <location filename="../audio.cpp" line="93"/>
+         <source>UkccPlugin</source>
+-        <translation type="unfinished"></translation>
++        <translation>UkccPlugin</translation>
+         <extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../audio.cpp" line="95"/>
+         <source>ukccplugin test</source>
+-        <translation type="unfinished"></translation>
++        <translation>اختبار ukccplugin</translation>
+         <extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
+     </message>
+ </context>
+@@ -27,12 +27,12 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="426"/>
+         <source>Input Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>أجهزة الإدخال</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="463"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>أكد</translation>
+     </message>
+ </context>
+ <context>
+@@ -40,12 +40,12 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="112"/>
+         <source>Output Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>أجهزة الإخراج</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="149"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>أكد</translation>
+     </message>
+ </context>
+ <context>
+@@ -55,132 +55,132 @@
+         <location filename="../ukmedia_volume_control.cpp" line="1835"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1914"/>
+         <source>pa_context_get_server_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_server_info()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1414"/>
+         <source>Card callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بالبطاقة</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1432"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1504"/>
+         <source>Sink callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بالحوض</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1465"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1533"/>
+         <source>Source callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بالمصدر</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1562"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2068"/>
+         <source>Sink input callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بإدخال المتلقي</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1581"/>
+         <source>Source output callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بإخراج المصدر</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1626"/>
+         <source>Client callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بالعميل</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1642"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1656"/>
+         <source>Server info callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بمعلومات الخادم</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1703"/>
+         <source>Failed to initialize stream_restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل تهيئة stream_restore الملحق: ٪s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1720"/>
+         <source>pa_ext_stream_restore_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_ext_stream_restore_read()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1737"/>
+         <source>Failed to initialize device manager extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل تهيئة ملحق إدارة الأجهزة: ٪s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1756"/>
+         <source>pa_ext_device_manager_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_ext_device_manager_read()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1773"/>
+         <source>pa_context_get_sink_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_sink_info_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1786"/>
+         <source>pa_context_get_source_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_source_info_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1799"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1812"/>
+         <source>pa_context_get_sink_input_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_sink_input_info()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1825"/>
+         <source>pa_context_get_client_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_client_info()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1865"/>
+         <source>pa_context_get_card_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_card_info_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1905"/>
+         <source>pa_context_subscribe() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_subscribe()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1921"/>
+         <source>pa_context_client_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_client_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1928"/>
+         <source>pa_context_get_card_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_card_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1935"/>
+         <source>pa_context_get_sink_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_sink_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1942"/>
+         <source>pa_context_get_source_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_source_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1949"/>
+         <source>pa_context_get_sink_input_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_sink_input_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1956"/>
+         <source>pa_context_get_source_output_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_source_output_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1992"/>
+         <source>Ukui Media Volume Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>التحكم في مستوى صوت وسائط Ukui</translation>
+     </message>
+ </context>
+ <context>
+@@ -188,18 +188,18 @@
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="37"/>
+         <source>App Sound Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>التحكم في الصوت في التطبيق</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="342"/>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="363"/>
+         <source>None</source>
+-        <translation type="unfinished"></translation>
++        <translation>اي</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="899"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>حجم النظام</translation>
+     </message>
+ </context>
+ <context>
+@@ -207,37 +207,37 @@
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="21"/>
+         <source>Application</source>
+-        <translation type="unfinished"></translation>
++        <translation>تطبيق</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="47"/>
+         <source>Output Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>حجم الإخراج</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="77"/>
+         <source>Input Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>جهاز الإدخال</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="84"/>
+         <source>This case does not support setting the input device</source>
+-        <translation type="unfinished"></translation>
++        <translation>هذه الحالة لا تدعم إعداد جهاز الإدخال</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="104"/>
+         <source>Output Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>جهاز الإخراج</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="111"/>
+         <source>This case does not support setting the output device</source>
+-        <translation type="unfinished"></translation>
++        <translation>لا تدعم هذه الحالة إعداد جهاز الإخراج</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="131"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>أكد</translation>
+     </message>
+ </context>
+ <context>
+@@ -257,17 +257,17 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="14"/>
+         <source>Sound Equipment Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>التحكم في معدات الصوت</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="26"/>
+         <source>Output Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>أجهزة الإخراج</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="27"/>
+         <source>Input Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>أجهزة الإدخال</translation>
+     </message>
+ </context>
+ <context>
+@@ -275,48 +275,48 @@
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="57"/>
+         <source>Input</source>
+-        <translation type="unfinished"></translation>
++        <translation>الادخال</translation>
+         <extra-contents_path>/Audio/Input</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="64"/>
+         <source>Input Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>جهاز الإدخال</translation>
+         <extra-contents_path>/Audio/Input Device</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="68"/>
+         <source>Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>حجم</translation>
+         <extra-contents_path>/Audio/Volume</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="74"/>
+         <source>Input Level</source>
+-        <translation type="unfinished"></translation>
++        <translation>مستوى الإدخال</translation>
+         <extra-contents_path>/Audio/Input Level</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="84"/>
+         <source>Noise Reduction</source>
+-        <translation type="unfinished"></translation>
++        <translation>تقليل الضوضاء</translation>
+         <extra-contents_path>/Audio/Noise Reduction</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="89"/>
+         <source>Voice Monitor</source>
+-        <translation type="unfinished"></translation>
++        <translation>مراقب الصوت</translation>
+         <extra-contents_path>/audio/Voice Monitor</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="91"/>
+         <source>(None Device)</source>
+-        <translation type="unfinished"></translation>
++        <translation>(لا يوجد جهاز)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="93"/>
+         <source>You can hear your voice in the output device of your choice</source>
+-        <translation type="unfinished"></translation>
++        <translation>يمكنك سماع صوتك في جهاز الإخراج الذي تختاره</translation>
+     </message>
+ </context>
+ <context>
+@@ -334,7 +334,7 @@
+         <location filename="../ukmedia_main_widget.cpp" line="375"/>
+         <location filename="../ukmedia_main_widget.cpp" line="1179"/>
+         <source>Custom</source>
+-        <translation type="unfinished"></translation>
++        <translation>تقليد</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="1611"/>
+@@ -351,7 +351,7 @@
+         <location filename="../ukmedia_main_widget.cpp" line="3232"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3473"/>
+         <source>None</source>
+-        <translation type="unfinished"></translation>
++        <translation>اي</translation>
+     </message>
+ </context>
+ <context>
+@@ -359,56 +359,56 @@
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="74"/>
+         <source>Output</source>
+-        <translation type="unfinished"></translation>
++        <translation>الناتج</translation>
+         <extra-contents_path>/Audio/Output</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="80"/>
+         <source>Output Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>جهاز الإخراج</translation>
+         <extra-contents_path>/Audio/Output Device</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="84"/>
+         <source>Master Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>حجم رئيسي</translation>
+         <extra-contents_path>/Audio/Master Volume</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="90"/>
+         <source>Balance</source>
+-        <translation type="unfinished"></translation>
++        <translation>توازن</translation>
+         <extra-contents_path>/Audio/Balance</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="92"/>
+         <source>Left</source>
+-        <translation type="unfinished"></translation>
++        <translation>يسار</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="95"/>
+         <source>Right</source>
+-        <translation type="unfinished"></translation>
++        <translation>يمين</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="100"/>
+         <source>Volume Increase</source>
+-        <translation type="unfinished"></translation>
++        <translation>زيادة الحجم</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="102"/>
+         <source>Volume above 100% can cause sound distortion and damage your speakers.</source>
+-        <translation type="unfinished"></translation>
++        <translation>يمكن أن يتسبب مستوى الصوت الذي يزيد عن 100٪ في تشويه الصوت وإتلاف مكبرات الصوت الخاصة بك.</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="125"/>
+         <source>Mono Audio</source>
+-        <translation type="unfinished"></translation>
++        <translation>صوت أحادي</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="127"/>
+         <source>It merges the left and right channels into one channel.</source>
+-        <translation type="unfinished"></translation>
++        <translation>يدمج القناتين اليمنى واليسرى في قناة واحدة.</translation>
+     </message>
+ </context>
+ <context>
+@@ -416,24 +416,24 @@
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="17"/>
+         <source>Advanced Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>الإعدادات المتقدمة</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="24"/>
+         <source>Sound Equipment Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>التحكم في معدات الصوت</translation>
+         <extra-contents_path>/Audio/Sound Equipment Control</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="27"/>
+         <location filename="../ukmedia_settings_widget.cpp" line="34"/>
+         <source>Details</source>
+-        <translation type="unfinished"></translation>
++        <translation>التفاصيل</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="31"/>
+         <source>App Sound Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>التحكم في الصوت في التطبيق</translation>
+         <extra-contents_path>/Audio/App Sound Control</extra-contents_path>
+     </message>
+ </context>
+@@ -442,54 +442,54 @@
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="59"/>
+         <source>System Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>صوت النظام</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="64"/>
+         <source>Sound Theme</source>
+-        <translation type="unfinished"></translation>
++        <translation>موضوع الصوت</translation>
+         <extra-contents_path>/Audio/Sound Theme</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="68"/>
+         <source>Beep Switch</source>
+-        <translation type="unfinished"></translation>
++        <translation>مفتاح الصفير</translation>
+         <extra-contents_path>/Audio/Beep Switch</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
+         <source>Poweroff Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>موسيقى Poweroff</translation>
+         <extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="74"/>
+         <source>Startup Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>موسيقى بدء التشغيل</translation>
+         <extra-contents_path>/Audio/Startup Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="77"/>
+         <source>Wakeup Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>موسيقى الاستيقاظ</translation>
+         <extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="83"/>
+         <source>Notification Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>صوت الإخطار</translation>
+         <extra-contents_path>/Audio/Notification Sound</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="88"/>
+         <source>Volume Control Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>صوت التحكم في مستوى الصوت</translation>
+         <extra-contents_path>/Audio/Volume Control Sound</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="80"/>
+         <source>Logout Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>تسجيل الخروج الموسيقى</translation>
+         <extra-contents_path>/Audio/Logout Music</extra-contents_path>
+     </message>
+ </context>
+@@ -502,110 +502,110 @@
+         <location filename="../ukmedia_volume_control.cpp" line="256"/>
+         <location filename="../ukmedia_volume_control.cpp" line="268"/>
+         <source>pa_context_set_sink_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_sink_volume_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="68"/>
+         <source>pa_context_set_sink_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_sink_mute_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="117"/>
+         <source>pa_context_set_source_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_mute_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="141"/>
+         <source>pa_context_set_source_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_volume_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="285"/>
+         <location filename="../ukmedia_volume_control.cpp" line="289"/>
+         <source>pa_context_set_source_output_volume() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_output_volume()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="301"/>
+         <source>pa_context_set_source_output_mute() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_output_mute()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="313"/>
+         <source>pa_context_set_card_profile_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_card_profile_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="327"/>
+         <source>pa_context_set_default_sink() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_default_sink()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="340"/>
+         <source>pa_context_set_default_source() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_default_source()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="356"/>
+         <source>pa_context_set_sink_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_sink_port_by_name()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="370"/>
+         <source>pa_context_set_source_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_port_by_name()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="399"/>
+         <source> (plugged in)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (موصول)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="403"/>
+         <location filename="../ukmedia_volume_control.cpp" line="586"/>
+         <source> (unavailable)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (غير متوفر)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="405"/>
+         <location filename="../ukmedia_volume_control.cpp" line="583"/>
+         <source> (unplugged)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (غير متصل)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="761"/>
+         <source>Failed to read data from stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل قراءة البيانات من الدفق</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="804"/>
+         <source>Peak detect</source>
+-        <translation type="unfinished"></translation>
++        <translation>اكتشاف الذروة</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="805"/>
+         <source>Failed to create monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل في إنشاء دفق المراقبة</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="819"/>
+         <source>Failed to connect monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل في توصيل دفق المراقبة</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="959"/>
+         <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
+-        <translation type="unfinished"></translation>
++        <translation>تجاهل إدخال المتلقي بسبب تعيينه كحدث وبالتالي التعامل معه بواسطة عنصر واجهة مستخدم الحدث</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1049"/>
+         <source>pa_context_kill_source_output() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_kill_source_output()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1381"/>
+         <source>Establishing connection to PulseAudio. Please wait...</source>
+-        <translation type="unfinished"></translation>
++        <translation>إنشاء اتصال ب PulseAudio. الرجاء الانتظار...</translation>
+     </message>
+ </context>
+ </TS>
+diff --git a/audio/translations/vi.ts b/audio/translations/vi.ts
+index c0f88e1..0031f4c 100644
+--- a/audio/translations/vi.ts
++++ b/audio/translations/vi.ts
+@@ -7,18 +7,18 @@
+         <location filename="../audio.ui" line="26"/>
+         <location filename="../audio.cpp" line="38"/>
+         <source>Audio</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm thanh</translation>
+     </message>
+     <message>
+         <location filename="../audio.cpp" line="93"/>
+         <source>UkccPlugin</source>
+-        <translation type="unfinished"></translation>
++        <translation>Plugin Ukcc</translation>
+         <extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../audio.cpp" line="95"/>
+         <source>ukccplugin test</source>
+-        <translation type="unfinished"></translation>
++        <translation>kiểm tra ukccplugin</translation>
+         <extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
+     </message>
+ </context>
+@@ -27,12 +27,12 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="426"/>
+         <source>Input Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết bị đầu vào</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="463"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>Xác nhận</translation>
+     </message>
+ </context>
+ <context>
+@@ -40,12 +40,12 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="112"/>
+         <source>Output Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết bị đầu ra</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="149"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>Xác nhận</translation>
+     </message>
+ </context>
+ <context>
+@@ -55,132 +55,132 @@
+         <location filename="../ukmedia_volume_control.cpp" line="1835"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1914"/>
+         <source>pa_context_get_server_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_server_info() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1414"/>
+         <source>Card callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Gọi lại thẻ không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1432"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1504"/>
+         <source>Sink callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại chìm</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1465"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1533"/>
+         <source>Source callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại nguồn</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1562"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2068"/>
+         <source>Sink input callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại đầu vào chìm</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1581"/>
+         <source>Source output callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại đầu ra nguồn</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1626"/>
+         <source>Client callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại máy khách</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1642"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1656"/>
+         <source>Server info callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại thông tin máy chủ</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1703"/>
+         <source>Failed to initialize stream_restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không thể khởi tạo stream_restore phần mở rộng: %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1720"/>
+         <source>pa_ext_stream_restore_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_stream_restore_read() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1737"/>
+         <source>Failed to initialize device manager extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không khởi tạo được phần mở rộng trình quản lý thiết bị: %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1756"/>
+         <source>pa_ext_device_manager_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_device_manager_read() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1773"/>
+         <source>pa_context_get_sink_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1786"/>
+         <source>pa_context_get_source_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1799"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1812"/>
+         <source>pa_context_get_sink_input_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1825"/>
+         <source>pa_context_get_client_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_client_info() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1865"/>
+         <source>pa_context_get_card_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1905"/>
+         <source>pa_context_subscribe() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_subscribe() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1921"/>
+         <source>pa_context_client_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_client_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1928"/>
+         <source>pa_context_get_card_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1935"/>
+         <source>pa_context_get_sink_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1942"/>
+         <source>pa_context_get_source_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1949"/>
+         <source>pa_context_get_sink_input_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1956"/>
+         <source>pa_context_get_source_output_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_output_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1992"/>
+         <source>Ukui Media Volume Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Điều khiển âm lượng phương tiện Ukui</translation>
+     </message>
+ </context>
+ <context>
+@@ -188,18 +188,18 @@
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="37"/>
+         <source>App Sound Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Kiểm soát âm thanh ứng dụng</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="342"/>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="363"/>
+         <source>None</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không ai</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="899"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Khối lượng hệ thống</translation>
+     </message>
+ </context>
+ <context>
+@@ -207,37 +207,37 @@
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="21"/>
+         <source>Application</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ứng dụng</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="47"/>
+         <source>Output Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Khối lượng đầu ra</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="77"/>
+         <source>Input Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết bị đầu vào</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="84"/>
+         <source>This case does not support setting the input device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Trường hợp này không hỗ trợ cài đặt thiết bị đầu vào</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="104"/>
+         <source>Output Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết bị đầu ra</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="111"/>
+         <source>This case does not support setting the output device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Trường hợp này không hỗ trợ cài đặt thiết bị đầu ra</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="131"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>Xác nhận</translation>
+     </message>
+ </context>
+ <context>
+@@ -257,17 +257,17 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="14"/>
+         <source>Sound Equipment Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Điều khiển thiết bị âm thanh</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="26"/>
+         <source>Output Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết bị đầu ra</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="27"/>
+         <source>Input Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết bị đầu vào</translation>
+     </message>
+ </context>
+ <context>
+@@ -275,48 +275,48 @@
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="57"/>
+         <source>Input</source>
+-        <translation type="unfinished"></translation>
++        <translation>Nhập</translation>
+         <extra-contents_path>/Audio/Input</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="64"/>
+         <source>Input Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết bị đầu vào</translation>
+         <extra-contents_path>/Audio/Input Device</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="68"/>
+         <source>Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm lượng</translation>
+         <extra-contents_path>/Audio/Volume</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="74"/>
+         <source>Input Level</source>
+-        <translation type="unfinished"></translation>
++        <translation>Mức đầu vào</translation>
+         <extra-contents_path>/Audio/Input Level</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="84"/>
+         <source>Noise Reduction</source>
+-        <translation type="unfinished"></translation>
++        <translation>Giảm tiếng ồn</translation>
+         <extra-contents_path>/Audio/Noise Reduction</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="89"/>
+         <source>Voice Monitor</source>
+-        <translation type="unfinished"></translation>
++        <translation>Màn hình giọng nói</translation>
+         <extra-contents_path>/audio/Voice Monitor</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="91"/>
+         <source>(None Device)</source>
+-        <translation type="unfinished"></translation>
++        <translation>(Không có thiết bị)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="93"/>
+         <source>You can hear your voice in the output device of your choice</source>
+-        <translation type="unfinished"></translation>
++        <translation>Bạn có thể nghe thấy giọng nói của mình trong thiết bị đầu ra mà bạn chọn</translation>
+     </message>
+ </context>
+ <context>
+@@ -334,7 +334,7 @@
+         <location filename="../ukmedia_main_widget.cpp" line="375"/>
+         <location filename="../ukmedia_main_widget.cpp" line="1179"/>
+         <source>Custom</source>
+-        <translation type="unfinished"></translation>
++        <translation>Phong tục</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="1611"/>
+@@ -351,7 +351,7 @@
+         <location filename="../ukmedia_main_widget.cpp" line="3232"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3473"/>
+         <source>None</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không ai</translation>
+     </message>
+ </context>
+ <context>
+@@ -359,56 +359,56 @@
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="74"/>
+         <source>Output</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ra</translation>
+         <extra-contents_path>/Audio/Output</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="80"/>
+         <source>Output Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết bị đầu ra</translation>
+         <extra-contents_path>/Audio/Output Device</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="84"/>
+         <source>Master Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Khối lượng chính</translation>
+         <extra-contents_path>/Audio/Master Volume</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="90"/>
+         <source>Balance</source>
+-        <translation type="unfinished"></translation>
++        <translation>Cân</translation>
+         <extra-contents_path>/Audio/Balance</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="92"/>
+         <source>Left</source>
+-        <translation type="unfinished"></translation>
++        <translation>Bên trái</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="95"/>
+         <source>Right</source>
+-        <translation type="unfinished"></translation>
++        <translation>Bên phải</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="100"/>
+         <source>Volume Increase</source>
+-        <translation type="unfinished"></translation>
++        <translation>Tăng âm lượng</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="102"/>
+         <source>Volume above 100% can cause sound distortion and damage your speakers.</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm lượng trên 100% có thể gây méo âm thanh và làm hỏng loa của bạn.</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="125"/>
+         <source>Mono Audio</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm thanh đơn âm</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="127"/>
+         <source>It merges the left and right channels into one channel.</source>
+-        <translation type="unfinished"></translation>
++        <translation>Nó hợp nhất các kênh trái và phải thành một kênh.</translation>
+     </message>
+ </context>
+ <context>
+@@ -416,24 +416,24 @@
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="17"/>
+         <source>Advanced Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>Cài đặt nâng cao</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="24"/>
+         <source>Sound Equipment Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Điều khiển thiết bị âm thanh</translation>
+         <extra-contents_path>/Audio/Sound Equipment Control</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="27"/>
+         <location filename="../ukmedia_settings_widget.cpp" line="34"/>
+         <source>Details</source>
+-        <translation type="unfinished"></translation>
++        <translation>Chi tiết</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="31"/>
+         <source>App Sound Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Kiểm soát âm thanh ứng dụng</translation>
+         <extra-contents_path>/Audio/App Sound Control</extra-contents_path>
+     </message>
+ </context>
+@@ -442,54 +442,54 @@
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="59"/>
+         <source>System Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm thanh hệ thống</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="64"/>
+         <source>Sound Theme</source>
+-        <translation type="unfinished"></translation>
++        <translation>Chủ đề âm thanh</translation>
+         <extra-contents_path>/Audio/Sound Theme</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="68"/>
+         <source>Beep Switch</source>
+-        <translation type="unfinished"></translation>
++        <translation>Công tắc bíp</translation>
+         <extra-contents_path>/Audio/Beep Switch</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
+         <source>Poweroff Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Tắt nguồn âm nhạc</translation>
+         <extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="74"/>
+         <source>Startup Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm nhạc khởi động</translation>
+         <extra-contents_path>/Audio/Startup Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="77"/>
+         <source>Wakeup Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Nhạc đánh thức</translation>
+         <extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="83"/>
+         <source>Notification Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm thanh thông báo</translation>
+         <extra-contents_path>/Audio/Notification Sound</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="88"/>
+         <source>Volume Control Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm thanh điều chỉnh âm lượng</translation>
+         <extra-contents_path>/Audio/Volume Control Sound</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="80"/>
+         <source>Logout Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Đăng xuất nhạc</translation>
+         <extra-contents_path>/Audio/Logout Music</extra-contents_path>
+     </message>
+ </context>
+@@ -502,110 +502,110 @@
+         <location filename="../ukmedia_volume_control.cpp" line="256"/>
+         <location filename="../ukmedia_volume_control.cpp" line="268"/>
+         <source>pa_context_set_sink_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_volume_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="68"/>
+         <source>pa_context_set_sink_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_mute_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="117"/>
+         <source>pa_context_set_source_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_mute_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="141"/>
+         <source>pa_context_set_source_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_volume_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="285"/>
+         <location filename="../ukmedia_volume_control.cpp" line="289"/>
+         <source>pa_context_set_source_output_volume() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_volume() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="301"/>
+         <source>pa_context_set_source_output_mute() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_mute() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="313"/>
+         <source>pa_context_set_card_profile_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_card_profile_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="327"/>
+         <source>pa_context_set_default_sink() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_sink() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="340"/>
+         <source>pa_context_set_default_source() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_source() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="356"/>
+         <source>pa_context_set_sink_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_port_by_name() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="370"/>
+         <source>pa_context_set_source_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_port_by_name() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="399"/>
+         <source> (plugged in)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (cắm vào)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="403"/>
+         <location filename="../ukmedia_volume_control.cpp" line="586"/>
+         <source> (unavailable)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (không có sẵn)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="405"/>
+         <location filename="../ukmedia_volume_control.cpp" line="583"/>
+         <source> (unplugged)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (rút phích cắm)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="761"/>
+         <source>Failed to read data from stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không đọc được dữ liệu từ luồng</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="804"/>
+         <source>Peak detect</source>
+-        <translation type="unfinished"></translation>
++        <translation>Phát hiện đỉnh</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="805"/>
+         <source>Failed to create monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không thể tạo luồng giám sát</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="819"/>
+         <source>Failed to connect monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không kết nối được luồng giám sát</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="959"/>
+         <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
+-        <translation type="unfinished"></translation>
++        <translation>Bỏ qua sink-input do nó được chỉ định là một sự kiện và do đó được xử lý bởi tiện ích Event</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1049"/>
+         <source>pa_context_kill_source_output() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_kill_source_output() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1381"/>
+         <source>Establishing connection to PulseAudio. Please wait...</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết lập kết nối với PulseAudio. Hãy chờ...</translation>
+     </message>
+ </context>
+ </TS>
diff -Nru ukui-media-3.25.0.0/debian/patches/0066-Added-translation-using-Weblate-Vietnamese.patch ukui-media-3.25.0.0/debian/patches/0066-Added-translation-using-Weblate-Vietnamese.patch
--- ukui-media-3.25.0.0/debian/patches/0066-Added-translation-using-Weblate-Vietnamese.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0066-Added-translation-using-Weblate-Vietnamese.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,1033 @@
+From: KevinDuan <duankaiwen@kylinos.cn>
+Date: Thu, 13 Feb 2025 11:04:14 +0800
+Subject: Added translation using Weblate (Vietnamese)
+
+---
+ ukui-volume-control-applet-qt/translations/ar.ts | 505 +++++++++++++++++++++++
+ ukui-volume-control-applet-qt/translations/vi.ts | 505 +++++++++++++++++++++++
+ 2 files changed, 1010 insertions(+)
+ create mode 100644 ukui-volume-control-applet-qt/translations/ar.ts
+ create mode 100644 ukui-volume-control-applet-qt/translations/vi.ts
+
+diff --git a/ukui-volume-control-applet-qt/translations/ar.ts b/ukui-volume-control-applet-qt/translations/ar.ts
+new file mode 100644
+index 0000000..3fd529b
+--- /dev/null
++++ b/ukui-volume-control-applet-qt/translations/ar.ts
+@@ -0,0 +1,505 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="ar">
++<context>
++    <name>ApplicationVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="43"/>
++        <source>Application Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="32"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="96"/>
++        <source>Sound Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>DeviceSwitchWidget</name>
++    <message>
++        <source>Go Into Mini Mode</source>
++        <translation type="vanished">进入Mini模式</translation>
++    </message>
++    <message>
++        <source>Output volume control</source>
++        <translation type="vanished">输出音量控制</translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <source>Sound preference(S)</source>
++        <translation type="vanished">声音首选项</translation>
++    </message>
++    <message>
++        <source>Device Volume</source>
++        <translation type="vanished">设备音量</translation>
++    </message>
++    <message>
++        <source>Application Volume</source>
++        <translation type="vanished">应用音量</translation>
++    </message>
++    <message>
++        <source>is using</source>
++        <translation type="vanished">正在使用</translation>
++    </message>
++    <message>
++        <source>Bluetooth</source>
++        <translation type="vanished">蓝牙</translation>
++    </message>
++    <message>
++        <source>Error</source>
++        <translation type="vanished">错误</translation>
++    </message>
++    <message>
++        <source>Unable to connect to the sound system, please check whether the pulseaudio service is running!</source>
++        <translation type="vanished">无法连接到系统声音,请检查pulseaudio服务是否正在运行!</translation>
++    </message>
++    <message>
++        <source>Dummy output</source>
++        <translation type="vanished">伪输出</translation>
++    </message>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Headphone</source>
++        <translation type="vanished">模拟耳机</translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2182"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2205"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2212"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2219"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1936"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1951"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2044"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2057"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1920"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2118"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2144"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1557"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1576"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1606"/>
++        <source>Card callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1640"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>Sink callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1698"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1778"/>
++        <source>Source callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="97"/>
++        <source>Fatal Error: Unable to connect to PulseAudio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="287"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2106"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2191"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2336"/>
++        <source>Sink input callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1818"/>
++        <source>Source output callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1846"/>
++        <source>Client callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1862"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1906"/>
++        <source>Server info callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1969"/>
++        <source>Failed to initialize device restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1990"/>
++        <source>pa_ext_device_restore_read_sink_formats() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2008"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2027"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2070"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2083"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2096"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2198"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2226"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2233"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2267"/>
++        <source>moduleInfoCb callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2284"/>
++        <source>Ukui Media Volume Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="3044"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3071"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3126"/>
++        <source>pa_context_load_module() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../main.cpp" line="72"/>
++        <source>ukui-volume-control-applet-qt is already running!</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDeviceWidget</name>
++    <message>
++        <source>Input Device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <source>Microphone</source>
++        <translation type="vanished">麦克风</translation>
++    </message>
++    <message>
++        <source>Output Device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>Speaker Realtek Audio</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Input device can not be detected</source>
++        <translation type="vanished">无法检测到输入设备</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="110"/>
++        <source>Output volume control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="112"/>
++        <location filename="../ukmedia_main_widget.cpp" line="114"/>
++        <source>Sound preference(S)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="180"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="182"/>
++        <source>App Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="788"/>
++        <source>Current volume:</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMiniMasterVolumeWidget</name>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Go Into Full Mode</source>
++        <translation type="vanished">进入完整模式</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSystemVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="74"/>
++        <source>Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="86"/>
++        <source>Output</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="103"/>
++        <source>Sound Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="108"/>
++        <location filename="../ukmedia_volume_control.cpp" line="129"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="134"/>
++        <location filename="../ukmedia_volume_control.cpp" line="195"/>
++        <location filename="../ukmedia_volume_control.cpp" line="339"/>
++        <location filename="../ukmedia_volume_control.cpp" line="343"/>
++        <location filename="../ukmedia_volume_control.cpp" line="360"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="154"/>
++        <location filename="../ukmedia_volume_control.cpp" line="211"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="159"/>
++        <location filename="../ukmedia_volume_control.cpp" line="242"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="380"/>
++        <source>pa_context_move_sink_input_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source>pa_context_move_source_output_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="420"/>
++        <location filename="../ukmedia_volume_control.cpp" line="424"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="442"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="460"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="479"/>
++        <location filename="../ukmedia_volume_control.cpp" line="486"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="504"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="520"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="535"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="548"/>
++        <source>pa_context_kill_sink_input() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="577"/>
++        <source> (plugged in)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="581"/>
++        <location filename="../ukmedia_volume_control.cpp" line="739"/>
++        <source> (unavailable)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <location filename="../ukmedia_volume_control.cpp" line="736"/>
++        <source> (unplugged)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1072"/>
++        <source>Failed to read data from stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1113"/>
++        <source>Peak detect</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1114"/>
++        <source>Failed to create monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1129"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1290"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1527"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1871"/>
++        <source>pa_context_get_sink_info_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1875"/>
++        <source>pa_context_get_source_info_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkuiMediaSetHeadsetWidget</name>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="36"/>
++        <source>Sound Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="37"/>
++        <source>Cancel</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="38"/>
++        <source>Select Sound Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="67"/>
++        <source>Headphone</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="68"/>
++        <source>Headset</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="69"/>
++        <source>Microphone</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++</TS>
+diff --git a/ukui-volume-control-applet-qt/translations/vi.ts b/ukui-volume-control-applet-qt/translations/vi.ts
+new file mode 100644
+index 0000000..9eac816
+--- /dev/null
++++ b/ukui-volume-control-applet-qt/translations/vi.ts
+@@ -0,0 +1,505 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="vi">
++<context>
++    <name>ApplicationVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="43"/>
++        <source>Application Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="32"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="96"/>
++        <source>Sound Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>DeviceSwitchWidget</name>
++    <message>
++        <source>Go Into Mini Mode</source>
++        <translation type="vanished">进入Mini模式</translation>
++    </message>
++    <message>
++        <source>Output volume control</source>
++        <translation type="vanished">输出音量控制</translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <source>Sound preference(S)</source>
++        <translation type="vanished">声音首选项</translation>
++    </message>
++    <message>
++        <source>Device Volume</source>
++        <translation type="vanished">设备音量</translation>
++    </message>
++    <message>
++        <source>Application Volume</source>
++        <translation type="vanished">应用音量</translation>
++    </message>
++    <message>
++        <source>is using</source>
++        <translation type="vanished">正在使用</translation>
++    </message>
++    <message>
++        <source>Bluetooth</source>
++        <translation type="vanished">蓝牙</translation>
++    </message>
++    <message>
++        <source>Error</source>
++        <translation type="vanished">错误</translation>
++    </message>
++    <message>
++        <source>Unable to connect to the sound system, please check whether the pulseaudio service is running!</source>
++        <translation type="vanished">无法连接到系统声音,请检查pulseaudio服务是否正在运行!</translation>
++    </message>
++    <message>
++        <source>Dummy output</source>
++        <translation type="vanished">伪输出</translation>
++    </message>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Headphone</source>
++        <translation type="vanished">模拟耳机</translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2182"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2205"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2212"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2219"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1936"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1951"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2044"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2057"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1920"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2118"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2144"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1557"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1576"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1606"/>
++        <source>Card callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1640"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>Sink callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1698"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1778"/>
++        <source>Source callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="97"/>
++        <source>Fatal Error: Unable to connect to PulseAudio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="287"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2106"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2191"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2336"/>
++        <source>Sink input callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1818"/>
++        <source>Source output callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1846"/>
++        <source>Client callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1862"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1906"/>
++        <source>Server info callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1969"/>
++        <source>Failed to initialize device restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1990"/>
++        <source>pa_ext_device_restore_read_sink_formats() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2008"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2027"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2070"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2083"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2096"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2198"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2226"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2233"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2267"/>
++        <source>moduleInfoCb callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2284"/>
++        <source>Ukui Media Volume Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="3044"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3071"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3126"/>
++        <source>pa_context_load_module() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../main.cpp" line="72"/>
++        <source>ukui-volume-control-applet-qt is already running!</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDeviceWidget</name>
++    <message>
++        <source>Input Device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <source>Microphone</source>
++        <translation type="vanished">麦克风</translation>
++    </message>
++    <message>
++        <source>Output Device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>Speaker Realtek Audio</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Input device can not be detected</source>
++        <translation type="vanished">无法检测到输入设备</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="110"/>
++        <source>Output volume control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="112"/>
++        <location filename="../ukmedia_main_widget.cpp" line="114"/>
++        <source>Sound preference(S)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="180"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="182"/>
++        <source>App Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="788"/>
++        <source>Current volume:</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMiniMasterVolumeWidget</name>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Go Into Full Mode</source>
++        <translation type="vanished">进入完整模式</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSystemVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="74"/>
++        <source>Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="86"/>
++        <source>Output</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="103"/>
++        <source>Sound Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="108"/>
++        <location filename="../ukmedia_volume_control.cpp" line="129"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="134"/>
++        <location filename="../ukmedia_volume_control.cpp" line="195"/>
++        <location filename="../ukmedia_volume_control.cpp" line="339"/>
++        <location filename="../ukmedia_volume_control.cpp" line="343"/>
++        <location filename="../ukmedia_volume_control.cpp" line="360"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="154"/>
++        <location filename="../ukmedia_volume_control.cpp" line="211"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="159"/>
++        <location filename="../ukmedia_volume_control.cpp" line="242"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="380"/>
++        <source>pa_context_move_sink_input_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source>pa_context_move_source_output_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="420"/>
++        <location filename="../ukmedia_volume_control.cpp" line="424"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="442"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="460"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="479"/>
++        <location filename="../ukmedia_volume_control.cpp" line="486"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="504"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="520"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="535"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="548"/>
++        <source>pa_context_kill_sink_input() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="577"/>
++        <source> (plugged in)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="581"/>
++        <location filename="../ukmedia_volume_control.cpp" line="739"/>
++        <source> (unavailable)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <location filename="../ukmedia_volume_control.cpp" line="736"/>
++        <source> (unplugged)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1072"/>
++        <source>Failed to read data from stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1113"/>
++        <source>Peak detect</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1114"/>
++        <source>Failed to create monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1129"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1290"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1527"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1871"/>
++        <source>pa_context_get_sink_info_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1875"/>
++        <source>pa_context_get_source_info_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkuiMediaSetHeadsetWidget</name>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="36"/>
++        <source>Sound Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="37"/>
++        <source>Cancel</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="38"/>
++        <source>Select Sound Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="67"/>
++        <source>Headphone</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="68"/>
++        <source>Headset</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="69"/>
++        <source>Microphone</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++</TS>
diff -Nru ukui-media-3.25.0.0/debian/patches/0067-Added-translation-using-Weblate-French.patch ukui-media-3.25.0.0/debian/patches/0067-Added-translation-using-Weblate-French.patch
--- ukui-media-3.25.0.0/debian/patches/0067-Added-translation-using-Weblate-French.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0067-Added-translation-using-Weblate-French.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,1864 @@
+From: KevinDuan <duankaiwen@kylinos.cn>
+Date: Thu, 13 Feb 2025 11:09:02 +0800
+Subject: Added translation using Weblate (French)
+
+---
+ audio/translations/de.ts | 611 +++++++++++++++++++++++++++++++++++++++++++++++
+ audio/translations/es.ts | 611 +++++++++++++++++++++++++++++++++++++++++++++++
+ audio/translations/fr.ts | 611 +++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 1833 insertions(+)
+ create mode 100644 audio/translations/de.ts
+ create mode 100644 audio/translations/es.ts
+ create mode 100644 audio/translations/fr.ts
+
+diff --git a/audio/translations/de.ts b/audio/translations/de.ts
+new file mode 100644
+index 0000000..2a9bf74
+--- /dev/null
++++ b/audio/translations/de.ts
+@@ -0,0 +1,611 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="de">
++<context>
++    <name>Audio</name>
++    <message>
++        <location filename="../audio.ui" line="26"/>
++        <location filename="../audio.cpp" line="38"/>
++        <source>Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="93"/>
++        <source>UkccPlugin</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="95"/>
++        <source>ukccplugin test</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>InputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="426"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="463"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>OutputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="112"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="149"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="230"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1835"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1914"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1414"/>
++        <source>Card callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1432"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1504"/>
++        <source>Sink callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1465"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1533"/>
++        <source>Source callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1562"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2068"/>
++        <source>Sink input callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1581"/>
++        <source>Source output callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1626"/>
++        <source>Client callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1642"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1656"/>
++        <source>Server info callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1703"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1720"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1737"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1773"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1786"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1812"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1825"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1865"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1905"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1921"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1928"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1935"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1942"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1949"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1956"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1992"/>
++        <source>Ukui Media Volume Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppCtrlWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="37"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="342"/>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="363"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="899"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppItemWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="21"/>
++        <source>Application</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="47"/>
++        <source>Output Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="77"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="84"/>
++        <source>This case does not support setting the input device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="104"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="111"/>
++        <source>This case does not support setting the output device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="131"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDevControlWidget</name>
++    <message>
++        <source>audio device control</source>
++        <translation type="vanished">声音设备管理</translation>
++    </message>
++    <message>
++        <source>output device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>input device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="14"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="26"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="27"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaInputWidget</name>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="57"/>
++        <source>Input</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="64"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="68"/>
++        <source>Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="74"/>
++        <source>Input Level</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Level</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="84"/>
++        <source>Noise Reduction</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Noise Reduction</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="89"/>
++        <source>Voice Monitor</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/audio/Voice Monitor</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="91"/>
++        <source>(None Device)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="93"/>
++        <source>You can hear your voice in the output device of your choice</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <source>Light-Seeking</source>
++        <translation type="obsolete">寻光</translation>
++    </message>
++    <message>
++        <source>HeYin</source>
++        <translation type="obsolete">和印</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="276"/>
++        <location filename="../ukmedia_main_widget.cpp" line="375"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1179"/>
++        <source>Custom</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="1611"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1613"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1616"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2901"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2906"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2912"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2917"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2933"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2941"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2990"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3095"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3232"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3473"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaOutputWidget</name>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="74"/>
++        <source>Output</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="80"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="84"/>
++        <source>Master Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Master Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="90"/>
++        <source>Balance</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Balance</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="92"/>
++        <source>Left</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="95"/>
++        <source>Right</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="100"/>
++        <source>Volume Increase</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="102"/>
++        <source>Volume above 100% can cause sound distortion and damage your speakers.</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="125"/>
++        <source>Mono Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="127"/>
++        <source>It merges the left and right channels into one channel.</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSettingsWidget</name>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="17"/>
++        <source>Advanced Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="24"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Equipment Control</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="27"/>
++        <location filename="../ukmedia_settings_widget.cpp" line="34"/>
++        <source>Details</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="31"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/App Sound Control</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaSoundEffectsWidget</name>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="59"/>
++        <source>System Sound</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="64"/>
++        <source>Sound Theme</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Theme</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="68"/>
++        <source>Beep Switch</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Beep Switch</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
++        <source>Poweroff Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="74"/>
++        <source>Startup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Startup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="77"/>
++        <source>Wakeup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="83"/>
++        <source>Notification Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Notification Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="88"/>
++        <source>Volume Control Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume Control Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="80"/>
++        <source>Logout Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Logout Music</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="101"/>
++        <location filename="../ukmedia_volume_control.cpp" line="174"/>
++        <location filename="../ukmedia_volume_control.cpp" line="252"/>
++        <location filename="../ukmedia_volume_control.cpp" line="256"/>
++        <location filename="../ukmedia_volume_control.cpp" line="268"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="68"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="117"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="141"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="285"/>
++        <location filename="../ukmedia_volume_control.cpp" line="289"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="301"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="313"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="327"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="340"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="356"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="370"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source> (plugged in)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="403"/>
++        <location filename="../ukmedia_volume_control.cpp" line="586"/>
++        <source> (unavailable)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="405"/>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <source> (unplugged)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="761"/>
++        <source>Failed to read data from stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="804"/>
++        <source>Peak detect</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="805"/>
++        <source>Failed to create monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="819"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="959"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1049"/>
++        <source>pa_context_kill_source_output() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1381"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++</TS>
+diff --git a/audio/translations/es.ts b/audio/translations/es.ts
+new file mode 100644
+index 0000000..eb4cdb6
+--- /dev/null
++++ b/audio/translations/es.ts
+@@ -0,0 +1,611 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="es">
++<context>
++    <name>Audio</name>
++    <message>
++        <location filename="../audio.ui" line="26"/>
++        <location filename="../audio.cpp" line="38"/>
++        <source>Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="93"/>
++        <source>UkccPlugin</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="95"/>
++        <source>ukccplugin test</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>InputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="426"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="463"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>OutputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="112"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="149"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="230"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1835"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1914"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1414"/>
++        <source>Card callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1432"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1504"/>
++        <source>Sink callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1465"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1533"/>
++        <source>Source callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1562"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2068"/>
++        <source>Sink input callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1581"/>
++        <source>Source output callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1626"/>
++        <source>Client callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1642"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1656"/>
++        <source>Server info callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1703"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1720"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1737"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1773"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1786"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1812"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1825"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1865"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1905"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1921"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1928"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1935"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1942"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1949"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1956"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1992"/>
++        <source>Ukui Media Volume Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppCtrlWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="37"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="342"/>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="363"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="899"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppItemWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="21"/>
++        <source>Application</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="47"/>
++        <source>Output Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="77"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="84"/>
++        <source>This case does not support setting the input device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="104"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="111"/>
++        <source>This case does not support setting the output device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="131"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDevControlWidget</name>
++    <message>
++        <source>audio device control</source>
++        <translation type="vanished">声音设备管理</translation>
++    </message>
++    <message>
++        <source>output device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>input device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="14"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="26"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="27"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaInputWidget</name>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="57"/>
++        <source>Input</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="64"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="68"/>
++        <source>Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="74"/>
++        <source>Input Level</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Level</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="84"/>
++        <source>Noise Reduction</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Noise Reduction</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="89"/>
++        <source>Voice Monitor</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/audio/Voice Monitor</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="91"/>
++        <source>(None Device)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="93"/>
++        <source>You can hear your voice in the output device of your choice</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <source>Light-Seeking</source>
++        <translation type="obsolete">寻光</translation>
++    </message>
++    <message>
++        <source>HeYin</source>
++        <translation type="obsolete">和印</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="276"/>
++        <location filename="../ukmedia_main_widget.cpp" line="375"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1179"/>
++        <source>Custom</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="1611"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1613"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1616"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2901"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2906"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2912"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2917"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2933"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2941"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2990"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3095"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3232"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3473"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaOutputWidget</name>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="74"/>
++        <source>Output</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="80"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="84"/>
++        <source>Master Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Master Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="90"/>
++        <source>Balance</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Balance</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="92"/>
++        <source>Left</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="95"/>
++        <source>Right</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="100"/>
++        <source>Volume Increase</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="102"/>
++        <source>Volume above 100% can cause sound distortion and damage your speakers.</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="125"/>
++        <source>Mono Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="127"/>
++        <source>It merges the left and right channels into one channel.</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSettingsWidget</name>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="17"/>
++        <source>Advanced Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="24"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Equipment Control</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="27"/>
++        <location filename="../ukmedia_settings_widget.cpp" line="34"/>
++        <source>Details</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="31"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/App Sound Control</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaSoundEffectsWidget</name>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="59"/>
++        <source>System Sound</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="64"/>
++        <source>Sound Theme</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Theme</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="68"/>
++        <source>Beep Switch</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Beep Switch</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
++        <source>Poweroff Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="74"/>
++        <source>Startup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Startup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="77"/>
++        <source>Wakeup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="83"/>
++        <source>Notification Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Notification Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="88"/>
++        <source>Volume Control Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume Control Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="80"/>
++        <source>Logout Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Logout Music</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="101"/>
++        <location filename="../ukmedia_volume_control.cpp" line="174"/>
++        <location filename="../ukmedia_volume_control.cpp" line="252"/>
++        <location filename="../ukmedia_volume_control.cpp" line="256"/>
++        <location filename="../ukmedia_volume_control.cpp" line="268"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="68"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="117"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="141"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="285"/>
++        <location filename="../ukmedia_volume_control.cpp" line="289"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="301"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="313"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="327"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="340"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="356"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="370"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source> (plugged in)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="403"/>
++        <location filename="../ukmedia_volume_control.cpp" line="586"/>
++        <source> (unavailable)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="405"/>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <source> (unplugged)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="761"/>
++        <source>Failed to read data from stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="804"/>
++        <source>Peak detect</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="805"/>
++        <source>Failed to create monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="819"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="959"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1049"/>
++        <source>pa_context_kill_source_output() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1381"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++</TS>
+diff --git a/audio/translations/fr.ts b/audio/translations/fr.ts
+new file mode 100644
+index 0000000..7f24455
+--- /dev/null
++++ b/audio/translations/fr.ts
+@@ -0,0 +1,611 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="fr">
++<context>
++    <name>Audio</name>
++    <message>
++        <location filename="../audio.ui" line="26"/>
++        <location filename="../audio.cpp" line="38"/>
++        <source>Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="93"/>
++        <source>UkccPlugin</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../audio.cpp" line="95"/>
++        <source>ukccplugin test</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>InputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="426"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="463"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>OutputDevWidget</name>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="112"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="149"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="230"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1835"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1914"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1414"/>
++        <source>Card callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1432"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1504"/>
++        <source>Sink callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1465"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1533"/>
++        <source>Source callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1562"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2068"/>
++        <source>Sink input callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1581"/>
++        <source>Source output callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1626"/>
++        <source>Client callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1642"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1656"/>
++        <source>Server info callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1703"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1720"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1737"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1773"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1786"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1812"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1825"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1865"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1905"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1921"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1928"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1935"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1942"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1949"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1956"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1992"/>
++        <source>Ukui Media Volume Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppCtrlWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="37"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="342"/>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="363"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="899"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaAppItemWidget</name>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="21"/>
++        <source>Application</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="47"/>
++        <source>Output Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="77"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="84"/>
++        <source>This case does not support setting the input device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="104"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="111"/>
++        <source>This case does not support setting the output device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="131"/>
++        <source>Confirm</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDevControlWidget</name>
++    <message>
++        <source>audio device control</source>
++        <translation type="vanished">声音设备管理</translation>
++    </message>
++    <message>
++        <source>output device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>input device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="14"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="26"/>
++        <source>Output Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="27"/>
++        <source>Input Devices</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaInputWidget</name>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="57"/>
++        <source>Input</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="64"/>
++        <source>Input Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="68"/>
++        <source>Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="74"/>
++        <source>Input Level</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Input Level</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="84"/>
++        <source>Noise Reduction</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Noise Reduction</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="89"/>
++        <source>Voice Monitor</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/audio/Voice Monitor</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="91"/>
++        <source>(None Device)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_input_widget.cpp" line="93"/>
++        <source>You can hear your voice in the output device of your choice</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <source>Light-Seeking</source>
++        <translation type="obsolete">寻光</translation>
++    </message>
++    <message>
++        <source>HeYin</source>
++        <translation type="obsolete">和印</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="276"/>
++        <location filename="../ukmedia_main_widget.cpp" line="375"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1179"/>
++        <source>Custom</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="1611"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1613"/>
++        <location filename="../ukmedia_main_widget.cpp" line="1616"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2901"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2906"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2912"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2917"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2933"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2941"/>
++        <location filename="../ukmedia_main_widget.cpp" line="2990"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3095"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3232"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3473"/>
++        <source>None</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaOutputWidget</name>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="74"/>
++        <source>Output</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="80"/>
++        <source>Output Device</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Output Device</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="84"/>
++        <source>Master Volume</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Master Volume</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="90"/>
++        <source>Balance</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Balance</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="92"/>
++        <source>Left</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="95"/>
++        <source>Right</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="100"/>
++        <source>Volume Increase</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="102"/>
++        <source>Volume above 100% can cause sound distortion and damage your speakers.</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="125"/>
++        <source>Mono Audio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_output_widget.cpp" line="127"/>
++        <source>It merges the left and right channels into one channel.</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSettingsWidget</name>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="17"/>
++        <source>Advanced Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="24"/>
++        <source>Sound Equipment Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Equipment Control</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="27"/>
++        <location filename="../ukmedia_settings_widget.cpp" line="34"/>
++        <source>Details</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_settings_widget.cpp" line="31"/>
++        <source>App Sound Control</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/App Sound Control</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaSoundEffectsWidget</name>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="59"/>
++        <source>System Sound</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="64"/>
++        <source>Sound Theme</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Sound Theme</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="68"/>
++        <source>Beep Switch</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Beep Switch</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
++        <source>Poweroff Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="74"/>
++        <source>Startup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Startup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="77"/>
++        <source>Wakeup Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="83"/>
++        <source>Notification Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Notification Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="88"/>
++        <source>Volume Control Sound</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Volume Control Sound</extra-contents_path>
++    </message>
++    <message>
++        <location filename="../ukmedia_sound_effects_widget.cpp" line="80"/>
++        <source>Logout Music</source>
++        <translation type="unfinished"></translation>
++        <extra-contents_path>/Audio/Logout Music</extra-contents_path>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="101"/>
++        <location filename="../ukmedia_volume_control.cpp" line="174"/>
++        <location filename="../ukmedia_volume_control.cpp" line="252"/>
++        <location filename="../ukmedia_volume_control.cpp" line="256"/>
++        <location filename="../ukmedia_volume_control.cpp" line="268"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="68"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="117"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="141"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="285"/>
++        <location filename="../ukmedia_volume_control.cpp" line="289"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="301"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="313"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="327"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="340"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="356"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="370"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source> (plugged in)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="403"/>
++        <location filename="../ukmedia_volume_control.cpp" line="586"/>
++        <source> (unavailable)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="405"/>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <source> (unplugged)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="761"/>
++        <source>Failed to read data from stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="804"/>
++        <source>Peak detect</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="805"/>
++        <source>Failed to create monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="819"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="959"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1049"/>
++        <source>pa_context_kill_source_output() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1381"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++</TS>
diff -Nru ukui-media-3.25.0.0/debian/patches/0068-Translated-using-Weblate-Vietnamese.patch ukui-media-3.25.0.0/debian/patches/0068-Translated-using-Weblate-Vietnamese.patch
--- ukui-media-3.25.0.0/debian/patches/0068-Translated-using-Weblate-Vietnamese.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0068-Translated-using-Weblate-Vietnamese.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,2522 @@
+From: KevinDuan <duankaiwen@kylinos.cn>
+Date: Thu, 13 Feb 2025 03:12:37 +0000
+Subject: Translated using Weblate (Vietnamese)
+
+Currently translated at 100.0% (73 of 73 strings)
+
+Translation: openkylin-nile-new/ukui-volume-control-apply-qt
+Translate-URL: http://weblate.openkylin.top/projects/openkylin-nile-new/ukui-volume-control-apply-qt/vi/
+---
+ ukui-volume-control-applet-qt/translations/ar.ts | 146 +++----
+ ukui-volume-control-applet-qt/translations/de.ts | 505 +++++++++++++++++++++++
+ ukui-volume-control-applet-qt/translations/es.ts | 505 +++++++++++++++++++++++
+ ukui-volume-control-applet-qt/translations/fr.ts | 505 +++++++++++++++++++++++
+ ukui-volume-control-applet-qt/translations/vi.ts | 146 +++----
+ 5 files changed, 1661 insertions(+), 146 deletions(-)
+ create mode 100644 ukui-volume-control-applet-qt/translations/de.ts
+ create mode 100644 ukui-volume-control-applet-qt/translations/es.ts
+ create mode 100644 ukui-volume-control-applet-qt/translations/fr.ts
+
+diff --git a/ukui-volume-control-applet-qt/translations/ar.ts b/ukui-volume-control-applet-qt/translations/ar.ts
+index 3fd529b..522c9d2 100644
+--- a/ukui-volume-control-applet-qt/translations/ar.ts
++++ b/ukui-volume-control-applet-qt/translations/ar.ts
+@@ -6,17 +6,17 @@
+     <message>
+         <location filename="../ukmedia_application_volume_widget.cpp" line="43"/>
+         <source>Application Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>حجم التطبيق</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_application_volume_widget.cpp" line="32"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>حجم النظام</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_application_volume_widget.cpp" line="96"/>
+         <source>Sound Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>إعدادات الصوت</translation>
+     </message>
+ </context>
+ <context>
+@@ -79,170 +79,170 @@
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2182"/>
+         <source>pa_context_subscribe() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_subscribe()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2205"/>
+         <source>pa_context_get_card_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_card_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2212"/>
+         <source>pa_context_get_sink_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_sink_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2219"/>
+         <source>pa_context_get_source_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_source_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1936"/>
+         <source>Failed to initialize stream_restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل تهيئة stream_restore الملحق: ٪s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1951"/>
+         <source>pa_ext_stream_restore_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_ext_stream_restore_read()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2044"/>
+         <source>pa_context_get_sink_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_sink_info_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2057"/>
+         <source>pa_context_get_source_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_source_info_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1920"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2118"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2144"/>
+         <source>pa_context_get_card_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_card_info_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1557"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1576"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1606"/>
+         <source>Card callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بالبطاقة</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1640"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1756"/>
+         <source>Sink callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بالحوض</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1698"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1778"/>
+         <source>Source callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بالمصدر</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="97"/>
+         <source>Fatal Error: Unable to connect to PulseAudio</source>
+-        <translation type="unfinished"></translation>
++        <translation>خطأ فادح: تعذر الاتصال ب PulseAudio</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="287"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2106"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2191"/>
+         <source>pa_context_get_server_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_server_info()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1799"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2336"/>
+         <source>Sink input callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بإدخال المتلقي</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1818"/>
+         <source>Source output callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بإخراج المصدر</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1846"/>
+         <source>Client callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بالعميل</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1862"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1906"/>
+         <source>Server info callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال بمعلومات الخادم</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1969"/>
+         <source>Failed to initialize device restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل تهيئة ملحق استعادة الجهاز: ٪s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1990"/>
+         <source>pa_ext_device_restore_read_sink_formats() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_ext_device_restore_read_sink_formats()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2008"/>
+         <source>Failed to initialize device manager extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل تهيئة ملحق إدارة الأجهزة: ٪s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2027"/>
+         <source>pa_ext_device_manager_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_ext_device_manager_read()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2070"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2083"/>
+         <source>pa_context_get_sink_input_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_sink_input_info()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2096"/>
+         <source>pa_context_get_client_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_client_info()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2198"/>
+         <source>pa_context_client_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_client_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2226"/>
+         <source>pa_context_get_sink_input_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_sink_input_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2233"/>
+         <source>pa_context_get_source_output_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_source_output_info_list()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2267"/>
+         <source>moduleInfoCb callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل معاودة الاتصال moduleInfoCb</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2284"/>
+         <source>Ukui Media Volume Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>التحكم في مستوى صوت وسائط Ukui</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="3044"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3071"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3126"/>
+         <source>pa_context_load_module() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_load_module()</translation>
+     </message>
+     <message>
+         <location filename="../main.cpp" line="72"/>
+         <source>ukui-volume-control-applet-qt is already running!</source>
+-        <translation type="unfinished"></translation>
++        <translation>UKUI-Volume-Control-Applet-QT قيد التشغيل بالفعل!</translation>
+     </message>
+ </context>
+ <context>
+@@ -273,7 +273,7 @@
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="110"/>
+         <source>Output volume control</source>
+-        <translation type="unfinished"></translation>
++        <translation>التحكم في مستوى صوت الإخراج</translation>
+     </message>
+     <message>
+         <source>Mute</source>
+@@ -283,22 +283,22 @@
+         <location filename="../ukmedia_main_widget.cpp" line="112"/>
+         <location filename="../ukmedia_main_widget.cpp" line="114"/>
+         <source>Sound preference(S)</source>
+-        <translation type="unfinished"></translation>
++        <translation>تفضيلات الصوت</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="180"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>حجم النظام</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="182"/>
+         <source>App Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>حجم التطبيق</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="788"/>
+         <source>Current volume:</source>
+-        <translation type="unfinished"></translation>
++        <translation>الحجم الحالي:</translation>
+     </message>
+ </context>
+ <context>
+@@ -317,17 +317,17 @@
+     <message>
+         <location filename="../ukmedia_system_volume_widget.cpp" line="74"/>
+         <source>Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>حجم</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_system_volume_widget.cpp" line="86"/>
+         <source>Output</source>
+-        <translation type="unfinished"></translation>
++        <translation>الناتج</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_system_volume_widget.cpp" line="103"/>
+         <source>Sound Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>إعدادات الصوت</translation>
+     </message>
+ </context>
+ <context>
+@@ -336,7 +336,7 @@
+         <location filename="../ukmedia_volume_control.cpp" line="108"/>
+         <location filename="../ukmedia_volume_control.cpp" line="129"/>
+         <source>pa_context_set_sink_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_sink_mute_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="134"/>
+@@ -345,128 +345,128 @@
+         <location filename="../ukmedia_volume_control.cpp" line="343"/>
+         <location filename="../ukmedia_volume_control.cpp" line="360"/>
+         <source>pa_context_set_sink_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_sink_volume_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="154"/>
+         <location filename="../ukmedia_volume_control.cpp" line="211"/>
+         <source>pa_context_set_source_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_mute_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="159"/>
+         <location filename="../ukmedia_volume_control.cpp" line="242"/>
+         <source>pa_context_set_source_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_volume_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="380"/>
+         <source>pa_context_move_sink_input_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_move_sink_input_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="399"/>
+         <source>pa_context_move_source_output_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_move_source_output_by_name()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="420"/>
+         <location filename="../ukmedia_volume_control.cpp" line="424"/>
+         <source>pa_context_set_source_output_volume() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_output_volume()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="442"/>
+         <source>pa_context_set_source_output_mute() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_output_mute()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="460"/>
+         <source>pa_context_set_card_profile_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_card_profile_by_index()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="479"/>
+         <location filename="../ukmedia_volume_control.cpp" line="486"/>
+         <source>pa_context_set_default_sink() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_default_sink()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="504"/>
+         <source>pa_context_set_default_source() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_default_source()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="520"/>
+         <source>pa_context_set_sink_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_sink_port_by_name()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="535"/>
+         <source>pa_context_set_source_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_set_source_port_by_name()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="548"/>
+         <source>pa_context_kill_sink_input() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_kill_sink_input()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="577"/>
+         <source> (plugged in)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (موصول)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="581"/>
+         <location filename="../ukmedia_volume_control.cpp" line="739"/>
+         <source> (unavailable)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (غير متوفر)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="583"/>
+         <location filename="../ukmedia_volume_control.cpp" line="736"/>
+         <source> (unplugged)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (غير متصل)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1072"/>
+         <source>Failed to read data from stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل قراءة البيانات من الدفق</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1113"/>
+         <source>Peak detect</source>
+-        <translation type="unfinished"></translation>
++        <translation>اكتشاف الذروة</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1114"/>
+         <source>Failed to create monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل في إنشاء دفق المراقبة</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1129"/>
+         <source>Failed to connect monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل في توصيل دفق المراقبة</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1290"/>
+         <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
+-        <translation type="unfinished"></translation>
++        <translation>تجاهل إدخال المتلقي بسبب تعيينه كحدث وبالتالي التعامل معه بواسطة عنصر واجهة مستخدم الحدث</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1527"/>
+         <source>Establishing connection to PulseAudio. Please wait...</source>
+-        <translation type="unfinished"></translation>
++        <translation>إنشاء اتصال ب PulseAudio. الرجاء الانتظار...</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1871"/>
+         <source>pa_context_get_sink_info_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_sink_info_by_name()</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1875"/>
+         <source>pa_context_get_source_info_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>فشل pa_context_get_source_info_by_name()</translation>
+     </message>
+ </context>
+ <context>
+@@ -474,32 +474,32 @@
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="36"/>
+         <source>Sound Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>إعدادات الصوت</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="37"/>
+         <source>Cancel</source>
+-        <translation type="unfinished"></translation>
++        <translation>إلغاء الأمر</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="38"/>
+         <source>Select Sound Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>حدد جهاز الصوت</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="67"/>
+         <source>Headphone</source>
+-        <translation type="unfinished"></translation>
++        <translation>سماعه الراس</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="68"/>
+         <source>Headset</source>
+-        <translation type="unfinished"></translation>
++        <translation>سماعه الراس</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="69"/>
+         <source>Microphone</source>
+-        <translation type="unfinished"></translation>
++        <translation>ميكروفون</translation>
+     </message>
+ </context>
+ </TS>
+diff --git a/ukui-volume-control-applet-qt/translations/de.ts b/ukui-volume-control-applet-qt/translations/de.ts
+new file mode 100644
+index 0000000..f3507cd
+--- /dev/null
++++ b/ukui-volume-control-applet-qt/translations/de.ts
+@@ -0,0 +1,505 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="de">
++<context>
++    <name>ApplicationVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="43"/>
++        <source>Application Volume</source>
++        <translation>Anwendungsvolumen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="32"/>
++        <source>System Volume</source>
++        <translation>System-Lautstärke</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="96"/>
++        <source>Sound Settings</source>
++        <translation>Sound-Einstellungen</translation>
++    </message>
++</context>
++<context>
++    <name>DeviceSwitchWidget</name>
++    <message>
++        <source>Go Into Mini Mode</source>
++        <translation type="vanished">进入Mini模式</translation>
++    </message>
++    <message>
++        <source>Output volume control</source>
++        <translation type="vanished">输出音量控制</translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <source>Sound preference</source>
++        <translation type="vanished">声音首选项</translation>
++    </message>
++    <message>
++        <source>Device Volume</source>
++        <translation type="vanished">设备音量</translation>
++    </message>
++    <message>
++        <source>Application Volume</source>
++        <translation type="vanished">应用音量</translation>
++    </message>
++    <message>
++        <source>is using</source>
++        <translation type="vanished">正在使用</translation>
++    </message>
++    <message>
++        <source>Bluetooth</source>
++        <translation type="vanished">蓝牙</translation>
++    </message>
++    <message>
++        <source>Error</source>
++        <translation type="vanished">错误</translation>
++    </message>
++    <message>
++        <source>Unable to connect to the sound system, please check whether the pulseaudio service is running!</source>
++        <translation type="vanished">无法连接到系统声音,请检查pulseaudio服务是否正在运行!</translation>
++    </message>
++    <message>
++        <source>Dummy output</source>
++        <translation type="vanished">伪输出</translation>
++    </message>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Headphone</source>
++        <translation type="vanished">模拟耳机</translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2182"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation>pa_context_subscribe() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2205"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation>pa_context_get_card_info_list() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2212"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation>pa_context_get_sink_info_list() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2219"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation>pa_context_get_source_info_list() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1936"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation>Fehler beim Initialisieren stream_restore Erweiterung: %s</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1951"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation>pa_ext_stream_restore_read() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2044"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation>pa_context_get_sink_info_by_index() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2057"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation>pa_context_get_source_info_by_index() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1920"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2118"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2144"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation>pa_context_get_card_info_by_index() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1557"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1576"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1606"/>
++        <source>Card callback failure</source>
++        <translation>Fehler beim Kartenrückruf</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1640"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>Sink callback failure</source>
++        <translation>Fehler beim Senkenrückruf</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1698"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1778"/>
++        <source>Source callback failure</source>
++        <translation>Fehler beim Quell-Callback</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="97"/>
++        <source>Fatal Error: Unable to connect to PulseAudio</source>
++        <translation>Schwerwiegender Fehler: Es kann keine Verbindung zu PulseAudio hergestellt werden.</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="287"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2106"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2191"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation>pa_context_get_server_info() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2336"/>
++        <source>Sink input callback failure</source>
++        <translation>Fehler beim Rückruf der Senkeeingabe</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1818"/>
++        <source>Source output callback failure</source>
++        <translation>Fehler beim Rückruf der Quellausgabe</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1846"/>
++        <source>Client callback failure</source>
++        <translation>Fehler beim Client-Callback</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1862"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1906"/>
++        <source>Server info callback failure</source>
++        <translation>Fehler beim Rückruf von Serverinformationen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1969"/>
++        <source>Failed to initialize device restore extension: %s</source>
++        <translation>Fehler beim Initialisieren der Gerätewiederherstellungserweiterung: %s</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1990"/>
++        <source>pa_ext_device_restore_read_sink_formats() failed</source>
++        <translation>pa_ext_device_restore_read_sink_formats() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2008"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation>Fehler beim Initialisieren der Geräte-Manager-Erweiterung: %s</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2027"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation>pa_ext_device_manager_read() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2070"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2083"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation>pa_context_get_sink_input_info() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2096"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation>pa_context_get_client_info() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2198"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation>pa_context_client_info_list() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2226"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation>pa_context_get_sink_input_info_list() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2233"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation>pa_context_get_source_output_info_list() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2267"/>
++        <source>moduleInfoCb callback failure</source>
++        <translation>Fehler beim ModulInfoCb-Callback</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2284"/>
++        <source>Ukui Media Volume Control</source>
++        <translation>Ukui Media Lautstärkeregelung</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="3044"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3071"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3126"/>
++        <source>pa_context_load_module() failed</source>
++        <translation>pa_context_load_module() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../main.cpp" line="72"/>
++        <source>ukui-volume-control-applet-qt is already running!</source>
++        <translation>ukui-volume-control-applet-qt läuft bereits!</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDeviceWidget</name>
++    <message>
++        <source>Input Device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <source>Microphone</source>
++        <translation type="vanished">麦克风</translation>
++    </message>
++    <message>
++        <source>Output Device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>Speaker Realtek Audio</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Input device can not be detected</source>
++        <translation type="vanished">无法检测到输入设备</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="110"/>
++        <source>Output volume control</source>
++        <translation>Steuerung der Ausgangslautstärke</translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="112"/>
++        <location filename="../ukmedia_main_widget.cpp" line="114"/>
++        <source>Sound preference</source>
++        <translation>Präferenz für den Klang</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="180"/>
++        <source>System Volume</source>
++        <translation>System-Lautstärke</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="182"/>
++        <source>App Volume</source>
++        <translation>App-Lautstärke</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="788"/>
++        <source>Current volume:</source>
++        <translation>Aktuelles Volumen:</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMiniMasterVolumeWidget</name>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Go Into Full Mode</source>
++        <translation type="vanished">进入完整模式</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSystemVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="74"/>
++        <source>Volume</source>
++        <translation>Volumen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="86"/>
++        <source>Output</source>
++        <translation>Ausgabe</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="103"/>
++        <source>Sound Settings</source>
++        <translation>Sound-Einstellungen</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="108"/>
++        <location filename="../ukmedia_volume_control.cpp" line="129"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation>pa_context_set_sink_mute_by_index() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="134"/>
++        <location filename="../ukmedia_volume_control.cpp" line="195"/>
++        <location filename="../ukmedia_volume_control.cpp" line="339"/>
++        <location filename="../ukmedia_volume_control.cpp" line="343"/>
++        <location filename="../ukmedia_volume_control.cpp" line="360"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation>pa_context_set_sink_volume_by_index() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="154"/>
++        <location filename="../ukmedia_volume_control.cpp" line="211"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation>pa_context_set_source_mute_by_index() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="159"/>
++        <location filename="../ukmedia_volume_control.cpp" line="242"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation>pa_context_set_source_volume_by_index() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="380"/>
++        <source>pa_context_move_sink_input_by_index() failed</source>
++        <translation>pa_context_move_sink_input_by_index() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source>pa_context_move_source_output_by_name() failed</source>
++        <translation>pa_context_move_source_output_by_name() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="420"/>
++        <location filename="../ukmedia_volume_control.cpp" line="424"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation>pa_context_set_source_output_volume() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="442"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation>pa_context_set_source_output_mute() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="460"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation>pa_context_set_card_profile_by_index() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="479"/>
++        <location filename="../ukmedia_volume_control.cpp" line="486"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation>pa_context_set_default_sink() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="504"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation>pa_context_set_default_source() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="520"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation>pa_context_set_sink_port_by_name() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="535"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation>pa_context_set_source_port_by_name() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="548"/>
++        <source>pa_context_kill_sink_input() failed</source>
++        <translation>pa_context_kill_sink_input() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="577"/>
++        <source> (plugged in)</source>
++        <translation> (eingesteckt)</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="581"/>
++        <location filename="../ukmedia_volume_control.cpp" line="739"/>
++        <source> (unavailable)</source>
++        <translation> (nicht verfügbar)</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <location filename="../ukmedia_volume_control.cpp" line="736"/>
++        <source> (unplugged)</source>
++        <translation> (ausgesteckt)</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1072"/>
++        <source>Failed to read data from stream</source>
++        <translation>Fehler beim Lesen von Daten aus dem Stream</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1113"/>
++        <source>Peak detect</source>
++        <translation>Peak-Erkennung</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1114"/>
++        <source>Failed to create monitoring stream</source>
++        <translation>Fehler beim Erstellen des Überwachungsdatenstroms</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1129"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation>Fehler beim Verbinden des Überwachungsstreams</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1290"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation>Ignorieren von Sink-Input, da sie als Ereignis gekennzeichnet ist und daher vom Ereignis-Widget behandelt wird</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1527"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation>Herstellung einer Verbindung zu PulseAudio. Bitte warten...</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1871"/>
++        <source>pa_context_get_sink_info_by_name() failed</source>
++        <translation>pa_context_get_sink_info_by_name() fehlgeschlagen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1875"/>
++        <source>pa_context_get_source_info_by_name() failed</source>
++        <translation>pa_context_get_source_info_by_name() fehlgeschlagen</translation>
++    </message>
++</context>
++<context>
++    <name>UkuiMediaSetHeadsetWidget</name>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="36"/>
++        <source>Sound Settings</source>
++        <translation>Sound-Einstellungen</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="37"/>
++        <source>Cancel</source>
++        <translation>Abbrechen</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="38"/>
++        <source>Select Sound Device</source>
++        <translation>Wählen Sie das Audiogerät</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="67"/>
++        <source>Headphone</source>
++        <translation>Kopfhörer</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="68"/>
++        <source>Headset</source>
++        <translation>Kopfhörer</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="69"/>
++        <source>Microphone</source>
++        <translation>Mikrofon</translation>
++    </message>
++</context>
++</TS>
+diff --git a/ukui-volume-control-applet-qt/translations/es.ts b/ukui-volume-control-applet-qt/translations/es.ts
+new file mode 100644
+index 0000000..7ce1916
+--- /dev/null
++++ b/ukui-volume-control-applet-qt/translations/es.ts
+@@ -0,0 +1,505 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="es">
++<context>
++    <name>ApplicationVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="43"/>
++        <source>Application Volume</source>
++        <translation>Volumen de la aplicación</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="32"/>
++        <source>System Volume</source>
++        <translation>Volumen del sistema</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="96"/>
++        <source>Sound Settings</source>
++        <translation>Ajustes de sonido</translation>
++    </message>
++</context>
++<context>
++    <name>DeviceSwitchWidget</name>
++    <message>
++        <source>Go Into Mini Mode</source>
++        <translation type="vanished">进入Mini模式</translation>
++    </message>
++    <message>
++        <source>Output volume control</source>
++        <translation type="vanished">输出音量控制</translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <source>Sound preference</source>
++        <translation type="vanished">声音首选项</translation>
++    </message>
++    <message>
++        <source>Device Volume</source>
++        <translation type="vanished">设备音量</translation>
++    </message>
++    <message>
++        <source>Application Volume</source>
++        <translation type="vanished">应用音量</translation>
++    </message>
++    <message>
++        <source>is using</source>
++        <translation type="vanished">正在使用</translation>
++    </message>
++    <message>
++        <source>Bluetooth</source>
++        <translation type="vanished">蓝牙</translation>
++    </message>
++    <message>
++        <source>Error</source>
++        <translation type="vanished">错误</translation>
++    </message>
++    <message>
++        <source>Unable to connect to the sound system, please check whether the pulseaudio service is running!</source>
++        <translation type="vanished">无法连接到系统声音,请检查pulseaudio服务是否正在运行!</translation>
++    </message>
++    <message>
++        <source>Dummy output</source>
++        <translation type="vanished">伪输出</translation>
++    </message>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Headphone</source>
++        <translation type="vanished">模拟耳机</translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2182"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation>pa_context_subscribe() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2205"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation>pa_context_get_card_info_list() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2212"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation>pa_context_get_sink_info_list() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2219"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation>pa_context_get_source_info_list() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1936"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation>No se pudo inicializar stream_restore extensión: %s</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1951"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation>pa_ext_stream_restore_read() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2044"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation>pa_context_get_sink_info_by_index() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2057"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation>pa_context_get_source_info_by_index() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1920"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2118"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2144"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation>pa_context_get_card_info_by_index() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1557"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1576"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1606"/>
++        <source>Card callback failure</source>
++        <translation>Error de devolución de llamada de la tarjeta</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1640"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>Sink callback failure</source>
++        <translation>Error de devolución de llamada del receptor</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1698"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1778"/>
++        <source>Source callback failure</source>
++        <translation>Error de devolución de llamada de origen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="97"/>
++        <source>Fatal Error: Unable to connect to PulseAudio</source>
++        <translation>Error fatal: No se puede conectar a PulseAudio</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="287"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2106"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2191"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation>pa_context_get_server_info() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2336"/>
++        <source>Sink input callback failure</source>
++        <translation>Error de devolución de llamada de entrada del receptor</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1818"/>
++        <source>Source output callback failure</source>
++        <translation>Error de devolución de llamada de salida de origen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1846"/>
++        <source>Client callback failure</source>
++        <translation>Error de devolución de llamada del cliente</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1862"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1906"/>
++        <source>Server info callback failure</source>
++        <translation>Error de devolución de llamada de información del servidor</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1969"/>
++        <source>Failed to initialize device restore extension: %s</source>
++        <translation>No se pudo inicializar la extensión de restauración del dispositivo: %s</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1990"/>
++        <source>pa_ext_device_restore_read_sink_formats() failed</source>
++        <translation>pa_ext_device_restore_read_sink_formats() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2008"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation>No se pudo inicializar la extensión del administrador de dispositivos: %s</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2027"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation>pa_ext_device_manager_read() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2070"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2083"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation>pa_context_get_sink_input_info() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2096"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation>pa_context_get_client_info() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2198"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation>pa_context_client_info_list() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2226"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation>pa_context_get_sink_input_info_list() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2233"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation>pa_context_get_source_output_info_list() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2267"/>
++        <source>moduleInfoCb callback failure</source>
++        <translation>Error de devolución de llamada moduleInfoCb</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2284"/>
++        <source>Ukui Media Volume Control</source>
++        <translation>Control de volumen de medios Ukui</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="3044"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3071"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3126"/>
++        <source>pa_context_load_module() failed</source>
++        <translation>pa_context_load_module() falló</translation>
++    </message>
++    <message>
++        <location filename="../main.cpp" line="72"/>
++        <source>ukui-volume-control-applet-qt is already running!</source>
++        <translation>¡ukui-volume-control-applet-qt ya se está ejecutando!</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDeviceWidget</name>
++    <message>
++        <source>Input Device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <source>Microphone</source>
++        <translation type="vanished">麦克风</translation>
++    </message>
++    <message>
++        <source>Output Device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>Speaker Realtek Audio</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Input device can not be detected</source>
++        <translation type="vanished">无法检测到输入设备</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="110"/>
++        <source>Output volume control</source>
++        <translation>Control de volumen de salida</translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="112"/>
++        <location filename="../ukmedia_main_widget.cpp" line="114"/>
++        <source>Sound preference</source>
++        <translation>Preferencia de sonido</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="180"/>
++        <source>System Volume</source>
++        <translation>Volumen del sistema</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="182"/>
++        <source>App Volume</source>
++        <translation>Volumen de la aplicación</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="788"/>
++        <source>Current volume:</source>
++        <translation>Volumen actual:</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMiniMasterVolumeWidget</name>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Go Into Full Mode</source>
++        <translation type="vanished">进入完整模式</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSystemVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="74"/>
++        <source>Volume</source>
++        <translation>Volumen</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="86"/>
++        <source>Output</source>
++        <translation>Salida</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="103"/>
++        <source>Sound Settings</source>
++        <translation>Ajustes de sonido</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="108"/>
++        <location filename="../ukmedia_volume_control.cpp" line="129"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation>pa_context_set_sink_mute_by_index() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="134"/>
++        <location filename="../ukmedia_volume_control.cpp" line="195"/>
++        <location filename="../ukmedia_volume_control.cpp" line="339"/>
++        <location filename="../ukmedia_volume_control.cpp" line="343"/>
++        <location filename="../ukmedia_volume_control.cpp" line="360"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation>pa_context_set_sink_volume_by_index() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="154"/>
++        <location filename="../ukmedia_volume_control.cpp" line="211"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation>pa_context_set_source_mute_by_index() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="159"/>
++        <location filename="../ukmedia_volume_control.cpp" line="242"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation>pa_context_set_source_volume_by_index() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="380"/>
++        <source>pa_context_move_sink_input_by_index() failed</source>
++        <translation>pa_context_move_sink_input_by_index() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source>pa_context_move_source_output_by_name() failed</source>
++        <translation>pa_context_move_source_output_by_name() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="420"/>
++        <location filename="../ukmedia_volume_control.cpp" line="424"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation>pa_context_set_source_output_volume() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="442"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation>pa_context_set_source_output_mute() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="460"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation>pa_context_set_card_profile_by_index() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="479"/>
++        <location filename="../ukmedia_volume_control.cpp" line="486"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation>pa_context_set_default_sink() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="504"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation>pa_context_set_default_source() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="520"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation>pa_context_set_sink_port_by_name() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="535"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation>pa_context_set_source_port_by_name() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="548"/>
++        <source>pa_context_kill_sink_input() failed</source>
++        <translation>pa_context_kill_sink_input() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="577"/>
++        <source> (plugged in)</source>
++        <translation> (enchufado)</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="581"/>
++        <location filename="../ukmedia_volume_control.cpp" line="739"/>
++        <source> (unavailable)</source>
++        <translation> (no disponible)</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <location filename="../ukmedia_volume_control.cpp" line="736"/>
++        <source> (unplugged)</source>
++        <translation> (desenchufado)</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1072"/>
++        <source>Failed to read data from stream</source>
++        <translation>No se pudieron leer los datos de la secuencia</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1113"/>
++        <source>Peak detect</source>
++        <translation>Detección de picos</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1114"/>
++        <source>Failed to create monitoring stream</source>
++        <translation>No se pudo crear la secuencia de supervisión</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1129"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation>No se pudo conectar la secuencia de supervisión</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1290"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation>Ignorar la entrada del receptor debido a que se designa como un evento y, por lo tanto, es manejada por el widget de eventos</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1527"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation>Establecer la conexión con PulseAudio. Espera...</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1871"/>
++        <source>pa_context_get_sink_info_by_name() failed</source>
++        <translation>pa_context_get_sink_info_by_name() falló</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1875"/>
++        <source>pa_context_get_source_info_by_name() failed</source>
++        <translation>pa_context_get_source_info_by_name() falló</translation>
++    </message>
++</context>
++<context>
++    <name>UkuiMediaSetHeadsetWidget</name>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="36"/>
++        <source>Sound Settings</source>
++        <translation>Ajustes de sonido</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="37"/>
++        <source>Cancel</source>
++        <translation>Cancelar</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="38"/>
++        <source>Select Sound Device</source>
++        <translation>Seleccione el dispositivo de sonido</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="67"/>
++        <source>Headphone</source>
++        <translation>Auricular</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="68"/>
++        <source>Headset</source>
++        <translation>Auriculares de casco</translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="69"/>
++        <source>Microphone</source>
++        <translation>Micrófono</translation>
++    </message>
++</context>
++</TS>
+diff --git a/ukui-volume-control-applet-qt/translations/fr.ts b/ukui-volume-control-applet-qt/translations/fr.ts
+new file mode 100644
+index 0000000..b496090
+--- /dev/null
++++ b/ukui-volume-control-applet-qt/translations/fr.ts
+@@ -0,0 +1,505 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE TS>
++<TS version="2.1" language="fr">
++<context>
++    <name>ApplicationVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="43"/>
++        <source>Application Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="32"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_application_volume_widget.cpp" line="96"/>
++        <source>Sound Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>DeviceSwitchWidget</name>
++    <message>
++        <source>Go Into Mini Mode</source>
++        <translation type="vanished">进入Mini模式</translation>
++    </message>
++    <message>
++        <source>Output volume control</source>
++        <translation type="vanished">输出音量控制</translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <source>Sound preference</source>
++        <translation type="vanished">声音首选项</translation>
++    </message>
++    <message>
++        <source>Device Volume</source>
++        <translation type="vanished">设备音量</translation>
++    </message>
++    <message>
++        <source>Application Volume</source>
++        <translation type="vanished">应用音量</translation>
++    </message>
++    <message>
++        <source>is using</source>
++        <translation type="vanished">正在使用</translation>
++    </message>
++    <message>
++        <source>Bluetooth</source>
++        <translation type="vanished">蓝牙</translation>
++    </message>
++    <message>
++        <source>Error</source>
++        <translation type="vanished">错误</translation>
++    </message>
++    <message>
++        <source>Unable to connect to the sound system, please check whether the pulseaudio service is running!</source>
++        <translation type="vanished">无法连接到系统声音,请检查pulseaudio服务是否正在运行!</translation>
++    </message>
++    <message>
++        <source>Dummy output</source>
++        <translation type="vanished">伪输出</translation>
++    </message>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Headphone</source>
++        <translation type="vanished">模拟耳机</translation>
++    </message>
++</context>
++<context>
++    <name>QObject</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2182"/>
++        <source>pa_context_subscribe() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2205"/>
++        <source>pa_context_get_card_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2212"/>
++        <source>pa_context_get_sink_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2219"/>
++        <source>pa_context_get_source_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1936"/>
++        <source>Failed to initialize stream_restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1951"/>
++        <source>pa_ext_stream_restore_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2044"/>
++        <source>pa_context_get_sink_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2057"/>
++        <source>pa_context_get_source_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1920"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2118"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2144"/>
++        <source>pa_context_get_card_info_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1557"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1576"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1606"/>
++        <source>Card callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1640"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1756"/>
++        <source>Sink callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1698"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1778"/>
++        <source>Source callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="97"/>
++        <source>Fatal Error: Unable to connect to PulseAudio</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="287"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2106"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2191"/>
++        <source>pa_context_get_server_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1799"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2336"/>
++        <source>Sink input callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1818"/>
++        <source>Source output callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1846"/>
++        <source>Client callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1862"/>
++        <location filename="../ukmedia_volume_control.cpp" line="1906"/>
++        <source>Server info callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1969"/>
++        <source>Failed to initialize device restore extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1990"/>
++        <source>pa_ext_device_restore_read_sink_formats() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2008"/>
++        <source>Failed to initialize device manager extension: %s</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2027"/>
++        <source>pa_ext_device_manager_read() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2070"/>
++        <location filename="../ukmedia_volume_control.cpp" line="2083"/>
++        <source>pa_context_get_sink_input_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2096"/>
++        <source>pa_context_get_client_info() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2198"/>
++        <source>pa_context_client_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2226"/>
++        <source>pa_context_get_sink_input_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2233"/>
++        <source>pa_context_get_source_output_info_list() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2267"/>
++        <source>moduleInfoCb callback failure</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="2284"/>
++        <source>Ukui Media Volume Control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="3044"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3071"/>
++        <location filename="../ukmedia_main_widget.cpp" line="3126"/>
++        <source>pa_context_load_module() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../main.cpp" line="72"/>
++        <source>ukui-volume-control-applet-qt is already running!</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaDeviceWidget</name>
++    <message>
++        <source>Input Device</source>
++        <translation type="vanished">输入设备</translation>
++    </message>
++    <message>
++        <source>Microphone</source>
++        <translation type="vanished">麦克风</translation>
++    </message>
++    <message>
++        <source>Output Device</source>
++        <translation type="vanished">输出设备</translation>
++    </message>
++    <message>
++        <source>Speaker Realtek Audio</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Input device can not be detected</source>
++        <translation type="vanished">无法检测到输入设备</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMainWidget</name>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="110"/>
++        <source>Output volume control</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <source>Mute</source>
++        <translation type="vanished">静音</translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="112"/>
++        <location filename="../ukmedia_main_widget.cpp" line="114"/>
++        <source>Sound preference</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="180"/>
++        <source>System Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="182"/>
++        <source>App Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_main_widget.cpp" line="788"/>
++        <source>Current volume:</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaMiniMasterVolumeWidget</name>
++    <message>
++        <source>Speaker (Realtek Audio)</source>
++        <translation type="vanished">扬声器(Realtek Audio)</translation>
++    </message>
++    <message>
++        <source>Go Into Full Mode</source>
++        <translation type="vanished">进入完整模式</translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaSystemVolumeWidget</name>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="74"/>
++        <source>Volume</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="86"/>
++        <source>Output</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_system_volume_widget.cpp" line="103"/>
++        <source>Sound Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkmediaVolumeControl</name>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="108"/>
++        <location filename="../ukmedia_volume_control.cpp" line="129"/>
++        <source>pa_context_set_sink_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="134"/>
++        <location filename="../ukmedia_volume_control.cpp" line="195"/>
++        <location filename="../ukmedia_volume_control.cpp" line="339"/>
++        <location filename="../ukmedia_volume_control.cpp" line="343"/>
++        <location filename="../ukmedia_volume_control.cpp" line="360"/>
++        <source>pa_context_set_sink_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="154"/>
++        <location filename="../ukmedia_volume_control.cpp" line="211"/>
++        <source>pa_context_set_source_mute_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="159"/>
++        <location filename="../ukmedia_volume_control.cpp" line="242"/>
++        <source>pa_context_set_source_volume_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="380"/>
++        <source>pa_context_move_sink_input_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="399"/>
++        <source>pa_context_move_source_output_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="420"/>
++        <location filename="../ukmedia_volume_control.cpp" line="424"/>
++        <source>pa_context_set_source_output_volume() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="442"/>
++        <source>pa_context_set_source_output_mute() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="460"/>
++        <source>pa_context_set_card_profile_by_index() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="479"/>
++        <location filename="../ukmedia_volume_control.cpp" line="486"/>
++        <source>pa_context_set_default_sink() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="504"/>
++        <source>pa_context_set_default_source() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="520"/>
++        <source>pa_context_set_sink_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="535"/>
++        <source>pa_context_set_source_port_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="548"/>
++        <source>pa_context_kill_sink_input() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="577"/>
++        <source> (plugged in)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="581"/>
++        <location filename="../ukmedia_volume_control.cpp" line="739"/>
++        <source> (unavailable)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="583"/>
++        <location filename="../ukmedia_volume_control.cpp" line="736"/>
++        <source> (unplugged)</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1072"/>
++        <source>Failed to read data from stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1113"/>
++        <source>Peak detect</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1114"/>
++        <source>Failed to create monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1129"/>
++        <source>Failed to connect monitoring stream</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1290"/>
++        <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1527"/>
++        <source>Establishing connection to PulseAudio. Please wait...</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1871"/>
++        <source>pa_context_get_sink_info_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukmedia_volume_control.cpp" line="1875"/>
++        <source>pa_context_get_source_info_by_name() failed</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++<context>
++    <name>UkuiMediaSetHeadsetWidget</name>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="36"/>
++        <source>Sound Settings</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="37"/>
++        <source>Cancel</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="38"/>
++        <source>Select Sound Device</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="67"/>
++        <source>Headphone</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="68"/>
++        <source>Headset</source>
++        <translation type="unfinished"></translation>
++    </message>
++    <message>
++        <location filename="../ukui_media_set_headset_widget.cpp" line="69"/>
++        <source>Microphone</source>
++        <translation type="unfinished"></translation>
++    </message>
++</context>
++</TS>
+diff --git a/ukui-volume-control-applet-qt/translations/vi.ts b/ukui-volume-control-applet-qt/translations/vi.ts
+index 9eac816..55d1dd7 100644
+--- a/ukui-volume-control-applet-qt/translations/vi.ts
++++ b/ukui-volume-control-applet-qt/translations/vi.ts
+@@ -6,17 +6,17 @@
+     <message>
+         <location filename="../ukmedia_application_volume_widget.cpp" line="43"/>
+         <source>Application Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Khối lượng ứng dụng</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_application_volume_widget.cpp" line="32"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Khối lượng hệ thống</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_application_volume_widget.cpp" line="96"/>
+         <source>Sound Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>Cài đặt âm thanh</translation>
+     </message>
+ </context>
+ <context>
+@@ -79,170 +79,170 @@
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2182"/>
+         <source>pa_context_subscribe() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_subscribe() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2205"/>
+         <source>pa_context_get_card_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2212"/>
+         <source>pa_context_get_sink_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2219"/>
+         <source>pa_context_get_source_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1936"/>
+         <source>Failed to initialize stream_restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không thể khởi tạo stream_restore phần mở rộng: %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1951"/>
+         <source>pa_ext_stream_restore_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_stream_restore_read() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2044"/>
+         <source>pa_context_get_sink_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2057"/>
+         <source>pa_context_get_source_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1920"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2118"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2144"/>
+         <source>pa_context_get_card_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1557"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1576"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1606"/>
+         <source>Card callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Gọi lại thẻ không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1640"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1756"/>
+         <source>Sink callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại chìm</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1698"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1778"/>
+         <source>Source callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại nguồn</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="97"/>
+         <source>Fatal Error: Unable to connect to PulseAudio</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi nghiêm trọng: Không thể kết nối với PulseAudio</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="287"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2106"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2191"/>
+         <source>pa_context_get_server_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_server_info() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1799"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2336"/>
+         <source>Sink input callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại đầu vào chìm</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1818"/>
+         <source>Source output callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại đầu ra nguồn</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1846"/>
+         <source>Client callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại máy khách</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1862"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1906"/>
+         <source>Server info callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Lỗi gọi lại thông tin máy chủ</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1969"/>
+         <source>Failed to initialize device restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không khởi tạo được tiện ích mở rộng khôi phục thiết bị: %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1990"/>
+         <source>pa_ext_device_restore_read_sink_formats() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_device_restore_read_sink_formats() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2008"/>
+         <source>Failed to initialize device manager extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không khởi tạo được phần mở rộng trình quản lý thiết bị: %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2027"/>
+         <source>pa_ext_device_manager_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_device_manager_read() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2070"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2083"/>
+         <source>pa_context_get_sink_input_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2096"/>
+         <source>pa_context_get_client_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_client_info() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2198"/>
+         <source>pa_context_client_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_client_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2226"/>
+         <source>pa_context_get_sink_input_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2233"/>
+         <source>pa_context_get_source_output_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_output_info_list() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2267"/>
+         <source>moduleInfoCb callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>moduleInfoCb gọi lại không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2284"/>
+         <source>Ukui Media Volume Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Điều khiển âm lượng phương tiện Ukui</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="3044"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3071"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3126"/>
+         <source>pa_context_load_module() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_load_module() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../main.cpp" line="72"/>
+         <source>ukui-volume-control-applet-qt is already running!</source>
+-        <translation type="unfinished"></translation>
++        <translation>ukui-volume-control-applet-qt đã chạy!</translation>
+     </message>
+ </context>
+ <context>
+@@ -273,7 +273,7 @@
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="110"/>
+         <source>Output volume control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Kiểm soát âm lượng đầu ra</translation>
+     </message>
+     <message>
+         <source>Mute</source>
+@@ -283,22 +283,22 @@
+         <location filename="../ukmedia_main_widget.cpp" line="112"/>
+         <location filename="../ukmedia_main_widget.cpp" line="114"/>
+         <source>Sound preference(S)</source>
+-        <translation type="unfinished"></translation>
++        <translation>Sở thích âm thanh (S)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="180"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Khối lượng hệ thống</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="182"/>
+         <source>App Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm lượng ứng dụng</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="788"/>
+         <source>Current volume:</source>
+-        <translation type="unfinished"></translation>
++        <translation>Khối lượng hiện tại:</translation>
+     </message>
+ </context>
+ <context>
+@@ -317,17 +317,17 @@
+     <message>
+         <location filename="../ukmedia_system_volume_widget.cpp" line="74"/>
+         <source>Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Âm lượng</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_system_volume_widget.cpp" line="86"/>
+         <source>Output</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ra</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_system_volume_widget.cpp" line="103"/>
+         <source>Sound Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>Cài đặt âm thanh</translation>
+     </message>
+ </context>
+ <context>
+@@ -336,7 +336,7 @@
+         <location filename="../ukmedia_volume_control.cpp" line="108"/>
+         <location filename="../ukmedia_volume_control.cpp" line="129"/>
+         <source>pa_context_set_sink_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_mute_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="134"/>
+@@ -345,128 +345,128 @@
+         <location filename="../ukmedia_volume_control.cpp" line="343"/>
+         <location filename="../ukmedia_volume_control.cpp" line="360"/>
+         <source>pa_context_set_sink_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_volume_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="154"/>
+         <location filename="../ukmedia_volume_control.cpp" line="211"/>
+         <source>pa_context_set_source_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_mute_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="159"/>
+         <location filename="../ukmedia_volume_control.cpp" line="242"/>
+         <source>pa_context_set_source_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_volume_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="380"/>
+         <source>pa_context_move_sink_input_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_move_sink_input_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="399"/>
+         <source>pa_context_move_source_output_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_move_source_output_by_name() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="420"/>
+         <location filename="../ukmedia_volume_control.cpp" line="424"/>
+         <source>pa_context_set_source_output_volume() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_volume() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="442"/>
+         <source>pa_context_set_source_output_mute() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_mute() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="460"/>
+         <source>pa_context_set_card_profile_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_card_profile_by_index() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="479"/>
+         <location filename="../ukmedia_volume_control.cpp" line="486"/>
+         <source>pa_context_set_default_sink() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_sink() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="504"/>
+         <source>pa_context_set_default_source() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_source() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="520"/>
+         <source>pa_context_set_sink_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_port_by_name() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="535"/>
+         <source>pa_context_set_source_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_port_by_name() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="548"/>
+         <source>pa_context_kill_sink_input() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_kill_sink_input() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="577"/>
+         <source> (plugged in)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (cắm vào)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="581"/>
+         <location filename="../ukmedia_volume_control.cpp" line="739"/>
+         <source> (unavailable)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (không có sẵn)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="583"/>
+         <location filename="../ukmedia_volume_control.cpp" line="736"/>
+         <source> (unplugged)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (rút phích cắm)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1072"/>
+         <source>Failed to read data from stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không đọc được dữ liệu từ luồng</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1113"/>
+         <source>Peak detect</source>
+-        <translation type="unfinished"></translation>
++        <translation>Phát hiện đỉnh</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1114"/>
+         <source>Failed to create monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không thể tạo luồng giám sát</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1129"/>
+         <source>Failed to connect monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Không kết nối được luồng giám sát</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1290"/>
+         <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
+-        <translation type="unfinished"></translation>
++        <translation>Bỏ qua sink-input do nó được chỉ định là một sự kiện và do đó được xử lý bởi tiện ích Event</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1527"/>
+         <source>Establishing connection to PulseAudio. Please wait...</source>
+-        <translation type="unfinished"></translation>
++        <translation>Thiết lập kết nối với PulseAudio. Hãy chờ...</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1871"/>
+         <source>pa_context_get_sink_info_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_by_name() không thành công</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1875"/>
+         <source>pa_context_get_source_info_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_by_name() không thành công</translation>
+     </message>
+ </context>
+ <context>
+@@ -474,32 +474,32 @@
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="36"/>
+         <source>Sound Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>Cài đặt âm thanh</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="37"/>
+         <source>Cancel</source>
+-        <translation type="unfinished"></translation>
++        <translation>Hủy</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="38"/>
+         <source>Select Sound Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Chọn thiết bị âm thanh</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="67"/>
+         <source>Headphone</source>
+-        <translation type="unfinished"></translation>
++        <translation>Tai nghe</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="68"/>
+         <source>Headset</source>
+-        <translation type="unfinished"></translation>
++        <translation>Tai nghe</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="69"/>
+         <source>Microphone</source>
+-        <translation type="unfinished"></translation>
++        <translation>Micrô</translation>
+     </message>
+ </context>
+ </TS>
diff -Nru ukui-media-3.25.0.0/debian/patches/0069-Translated-using-Weblate-French.patch ukui-media-3.25.0.0/debian/patches/0069-Translated-using-Weblate-French.patch
--- ukui-media-3.25.0.0/debian/patches/0069-Translated-using-Weblate-French.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0069-Translated-using-Weblate-French.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,497 @@
+From: KevinDuan <duankaiwen@kylinos.cn>
+Date: Thu, 13 Feb 2025 03:13:17 +0000
+Subject: Translated using Weblate (French)
+
+Currently translated at 100.0% (73 of 73 strings)
+
+Translation: openkylin-nile-new/ukui-volume-control-apply-qt
+Translate-URL: http://weblate.openkylin.top/projects/openkylin-nile-new/ukui-volume-control-apply-qt/fr/
+---
+ ukui-volume-control-applet-qt/translations/fr.ts | 146 +++++++++++------------
+ 1 file changed, 73 insertions(+), 73 deletions(-)
+
+diff --git a/ukui-volume-control-applet-qt/translations/fr.ts b/ukui-volume-control-applet-qt/translations/fr.ts
+index b496090..efd72f3 100644
+--- a/ukui-volume-control-applet-qt/translations/fr.ts
++++ b/ukui-volume-control-applet-qt/translations/fr.ts
+@@ -6,17 +6,17 @@
+     <message>
+         <location filename="../ukmedia_application_volume_widget.cpp" line="43"/>
+         <source>Application Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volume d’applications</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_application_volume_widget.cpp" line="32"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volume du système</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_application_volume_widget.cpp" line="96"/>
+         <source>Sound Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>Paramètres sonores</translation>
+     </message>
+ </context>
+ <context>
+@@ -79,170 +79,170 @@
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2182"/>
+         <source>pa_context_subscribe() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_subscribe() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2205"/>
+         <source>pa_context_get_card_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_list() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2212"/>
+         <source>pa_context_get_sink_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_list() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2219"/>
+         <source>pa_context_get_source_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_list() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1936"/>
+         <source>Failed to initialize stream_restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Echec de l’initialisation de stream_restore extension : %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1951"/>
+         <source>pa_ext_stream_restore_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_stream_restore_read() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2044"/>
+         <source>pa_context_get_sink_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_by_index() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2057"/>
+         <source>pa_context_get_source_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_by_index() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1920"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2118"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2144"/>
+         <source>pa_context_get_card_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_by_index() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1557"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1576"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1606"/>
+         <source>Card callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec du rappel de la carte</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1640"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1756"/>
+         <source>Sink callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec du rappel du récepteur</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1698"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1778"/>
+         <source>Source callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec du rappel de la source</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="97"/>
+         <source>Fatal Error: Unable to connect to PulseAudio</source>
+-        <translation type="unfinished"></translation>
++        <translation>Erreur fatale : Impossible de se connecter à PulseAudio</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="287"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2106"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2191"/>
+         <source>pa_context_get_server_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_server_info() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1799"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2336"/>
+         <source>Sink input callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec du rappel d’entrée du récepteur</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1818"/>
+         <source>Source output callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec du rappel de sortie source</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1846"/>
+         <source>Client callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec du rappel du client</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1862"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1906"/>
+         <source>Server info callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec de la fonction de rappel des informations sur le serveur</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1969"/>
+         <source>Failed to initialize device restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Echec de l’initialisation de l’extension de restauration de périphérique : %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1990"/>
+         <source>pa_ext_device_restore_read_sink_formats() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_device_restore_read_sink_formats() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2008"/>
+         <source>Failed to initialize device manager extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Echec de l’initialisation de l’extension du gestionnaire de périphériques : %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2027"/>
+         <source>pa_ext_device_manager_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_device_manager_read() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2070"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2083"/>
+         <source>pa_context_get_sink_input_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2096"/>
+         <source>pa_context_get_client_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_client_info() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2198"/>
+         <source>pa_context_client_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_client_info_list() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2226"/>
+         <source>pa_context_get_sink_input_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info_list() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2233"/>
+         <source>pa_context_get_source_output_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_output_info_list() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2267"/>
+         <source>moduleInfoCb callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Echec du callback moduleInfoCb</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="2284"/>
+         <source>Ukui Media Volume Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Contrôle du volume multimédia Ukui</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="3044"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3071"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3126"/>
+         <source>pa_context_load_module() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_load_module() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../main.cpp" line="72"/>
+         <source>ukui-volume-control-applet-qt is already running!</source>
+-        <translation type="unfinished"></translation>
++        <translation>ukui-volume-control-applet-qt est déjà en cours d’exécution !</translation>
+     </message>
+ </context>
+ <context>
+@@ -273,7 +273,7 @@
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="110"/>
+         <source>Output volume control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Contrôle du volume de sortie</translation>
+     </message>
+     <message>
+         <source>Mute</source>
+@@ -283,22 +283,22 @@
+         <location filename="../ukmedia_main_widget.cpp" line="112"/>
+         <location filename="../ukmedia_main_widget.cpp" line="114"/>
+         <source>Sound preference</source>
+-        <translation type="unfinished"></translation>
++        <translation>Préférence sonore</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="180"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volume du système</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="182"/>
+         <source>App Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volume de l’application</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="788"/>
+         <source>Current volume:</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volume actuel :</translation>
+     </message>
+ </context>
+ <context>
+@@ -317,17 +317,17 @@
+     <message>
+         <location filename="../ukmedia_system_volume_widget.cpp" line="74"/>
+         <source>Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volume</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_system_volume_widget.cpp" line="86"/>
+         <source>Output</source>
+-        <translation type="unfinished"></translation>
++        <translation>Sortie</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_system_volume_widget.cpp" line="103"/>
+         <source>Sound Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>Paramètres sonores</translation>
+     </message>
+ </context>
+ <context>
+@@ -336,7 +336,7 @@
+         <location filename="../ukmedia_volume_control.cpp" line="108"/>
+         <location filename="../ukmedia_volume_control.cpp" line="129"/>
+         <source>pa_context_set_sink_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_mute_by_index() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="134"/>
+@@ -345,128 +345,128 @@
+         <location filename="../ukmedia_volume_control.cpp" line="343"/>
+         <location filename="../ukmedia_volume_control.cpp" line="360"/>
+         <source>pa_context_set_sink_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_volume_by_index() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="154"/>
+         <location filename="../ukmedia_volume_control.cpp" line="211"/>
+         <source>pa_context_set_source_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_mute_by_index() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="159"/>
+         <location filename="../ukmedia_volume_control.cpp" line="242"/>
+         <source>pa_context_set_source_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_volume_by_index() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="380"/>
+         <source>pa_context_move_sink_input_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_move_sink_input_by_index() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="399"/>
+         <source>pa_context_move_source_output_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_move_source_output_by_name() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="420"/>
+         <location filename="../ukmedia_volume_control.cpp" line="424"/>
+         <source>pa_context_set_source_output_volume() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_volume() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="442"/>
+         <source>pa_context_set_source_output_mute() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_mute() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="460"/>
+         <source>pa_context_set_card_profile_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_card_profile_by_index() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="479"/>
+         <location filename="../ukmedia_volume_control.cpp" line="486"/>
+         <source>pa_context_set_default_sink() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_sink() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="504"/>
+         <source>pa_context_set_default_source() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_source() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="520"/>
+         <source>pa_context_set_sink_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_port_by_name() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="535"/>
+         <source>pa_context_set_source_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_port_by_name() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="548"/>
+         <source>pa_context_kill_sink_input() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_kill_sink_input() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="577"/>
+         <source> (plugged in)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (branché)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="581"/>
+         <location filename="../ukmedia_volume_control.cpp" line="739"/>
+         <source> (unavailable)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (non disponible)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="583"/>
+         <location filename="../ukmedia_volume_control.cpp" line="736"/>
+         <source> (unplugged)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (débranché)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1072"/>
+         <source>Failed to read data from stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec de la lecture des données du flux</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1113"/>
+         <source>Peak detect</source>
+-        <translation type="unfinished"></translation>
++        <translation>Détection de pic</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1114"/>
+         <source>Failed to create monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec de la création du flux de surveillance</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1129"/>
+         <source>Failed to connect monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Échec de la connexion au flux de surveillance</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1290"/>
+         <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ignorer sink-input car il est désigné comme un événement et donc géré par le widget Event</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1527"/>
+         <source>Establishing connection to PulseAudio. Please wait...</source>
+-        <translation type="unfinished"></translation>
++        <translation>Établissement de la connexion à PulseAudio. Veuillez patienter...</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1871"/>
+         <source>pa_context_get_sink_info_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_by_name() a échoué</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1875"/>
+         <source>pa_context_get_source_info_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_by_name() a échoué</translation>
+     </message>
+ </context>
+ <context>
+@@ -474,32 +474,32 @@
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="36"/>
+         <source>Sound Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>Paramètres sonores</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="37"/>
+         <source>Cancel</source>
+-        <translation type="unfinished"></translation>
++        <translation>Annuler</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="38"/>
+         <source>Select Sound Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Sélectionnez Périphérique audio</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="67"/>
+         <source>Headphone</source>
+-        <translation type="unfinished"></translation>
++        <translation>Écouteur</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="68"/>
+         <source>Headset</source>
+-        <translation type="unfinished"></translation>
++        <translation>Casque</translation>
+     </message>
+     <message>
+         <location filename="../ukui_media_set_headset_widget.cpp" line="69"/>
+         <source>Microphone</source>
+-        <translation type="unfinished"></translation>
++        <translation>Microphone</translation>
+     </message>
+ </context>
+ </TS>
diff -Nru ukui-media-3.25.0.0/debian/patches/0070-Translated-using-Weblate-Spanish.patch ukui-media-3.25.0.0/debian/patches/0070-Translated-using-Weblate-Spanish.patch
--- ukui-media-3.25.0.0/debian/patches/0070-Translated-using-Weblate-Spanish.patch	1970-01-01 08:00:00.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/0070-Translated-using-Weblate-Spanish.patch	2024-10-28 11:26:40.000000000 +0800
@@ -0,0 +1,1351 @@
+From: KevinDuan <duankaiwen@kylinos.cn>
+Date: Thu, 13 Feb 2025 03:14:06 +0000
+Subject: Translated using Weblate (Spanish)
+
+Currently translated at 100.0% (99 of 99 strings)
+
+Translation: openkylin-nile-new/audio
+Translate-URL: http://weblate.openkylin.top/projects/openkylin-nile-new/audio/es/
+---
+ audio/translations/de.ts | 198 +++++++++++++++++++++++------------------------
+ audio/translations/es.ts | 198 +++++++++++++++++++++++------------------------
+ 2 files changed, 198 insertions(+), 198 deletions(-)
+
+diff --git a/audio/translations/de.ts b/audio/translations/de.ts
+index 2a9bf74..1b73794 100644
+--- a/audio/translations/de.ts
++++ b/audio/translations/de.ts
+@@ -7,18 +7,18 @@
+         <location filename="../audio.ui" line="26"/>
+         <location filename="../audio.cpp" line="38"/>
+         <source>Audio</source>
+-        <translation type="unfinished"></translation>
++        <translation>Audio</translation>
+     </message>
+     <message>
+         <location filename="../audio.cpp" line="93"/>
+         <source>UkccPlugin</source>
+-        <translation type="unfinished"></translation>
++        <translation>UkccPlugin (Englisch)</translation>
+         <extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../audio.cpp" line="95"/>
+         <source>ukccplugin test</source>
+-        <translation type="unfinished"></translation>
++        <translation>ukccplugin-Test</translation>
+         <extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
+     </message>
+ </context>
+@@ -27,12 +27,12 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="426"/>
+         <source>Input Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Eingabegeräte</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="463"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>Bestätigen</translation>
+     </message>
+ </context>
+ <context>
+@@ -40,12 +40,12 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="112"/>
+         <source>Output Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ausgabegeräte</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="149"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>Bestätigen</translation>
+     </message>
+ </context>
+ <context>
+@@ -55,132 +55,132 @@
+         <location filename="../ukmedia_volume_control.cpp" line="1835"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1914"/>
+         <source>pa_context_get_server_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_server_info() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1414"/>
+         <source>Card callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Kartenrückruf</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1432"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1504"/>
+         <source>Sink callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Senkenrückruf</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1465"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1533"/>
+         <source>Source callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Quell-Callback</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1562"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2068"/>
+         <source>Sink input callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Rückruf der Senkeeingabe</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1581"/>
+         <source>Source output callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Rückruf der Quellausgabe</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1626"/>
+         <source>Client callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Client-Callback</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1642"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1656"/>
+         <source>Server info callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Rückruf von Serverinformationen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1703"/>
+         <source>Failed to initialize stream_restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Initialisieren stream_restore Erweiterung: %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1720"/>
+         <source>pa_ext_stream_restore_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_stream_restore_read() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1737"/>
+         <source>Failed to initialize device manager extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Initialisieren der Geräte-Manager-Erweiterung: %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1756"/>
+         <source>pa_ext_device_manager_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_device_manager_read() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1773"/>
+         <source>pa_context_get_sink_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_by_index() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1786"/>
+         <source>pa_context_get_source_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_by_index() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1799"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1812"/>
+         <source>pa_context_get_sink_input_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1825"/>
+         <source>pa_context_get_client_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_client_info() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1865"/>
+         <source>pa_context_get_card_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_by_index() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1905"/>
+         <source>pa_context_subscribe() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_subscribe() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1921"/>
+         <source>pa_context_client_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_client_info_list() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1928"/>
+         <source>pa_context_get_card_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_list() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1935"/>
+         <source>pa_context_get_sink_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_list() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1942"/>
+         <source>pa_context_get_source_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_list() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1949"/>
+         <source>pa_context_get_sink_input_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info_list() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1956"/>
+         <source>pa_context_get_source_output_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_output_info_list() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1992"/>
+         <source>Ukui Media Volume Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ukui Media Lautstärkeregelung</translation>
+     </message>
+ </context>
+ <context>
+@@ -188,18 +188,18 @@
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="37"/>
+         <source>App Sound Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>App-Klangsteuerung</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="342"/>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="363"/>
+         <source>None</source>
+-        <translation type="unfinished"></translation>
++        <translation>Nichts</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="899"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>System-Lautstärke</translation>
+     </message>
+ </context>
+ <context>
+@@ -207,37 +207,37 @@
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="21"/>
+         <source>Application</source>
+-        <translation type="unfinished"></translation>
++        <translation>Anwendung</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="47"/>
+         <source>Output Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ausgangsvolumen</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="77"/>
+         <source>Input Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Eingabegerät</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="84"/>
+         <source>This case does not support setting the input device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Dieses Gehäuse unterstützt das Einstellen des Eingabegeräts nicht</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="104"/>
+         <source>Output Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ausgabegerät</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="111"/>
+         <source>This case does not support setting the output device</source>
+-        <translation type="unfinished"></translation>
++        <translation>In diesem Fall wird das Einstellen des Ausgabegeräts nicht unterstützt</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="131"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>Bestätigen</translation>
+     </message>
+ </context>
+ <context>
+@@ -257,17 +257,17 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="14"/>
+         <source>Sound Equipment Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Steuerung der Tontechnik</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="26"/>
+         <source>Output Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ausgabegeräte</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="27"/>
+         <source>Input Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Eingabegeräte</translation>
+     </message>
+ </context>
+ <context>
+@@ -275,48 +275,48 @@
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="57"/>
+         <source>Input</source>
+-        <translation type="unfinished"></translation>
++        <translation>Eingabe</translation>
+         <extra-contents_path>/Audio/Input</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="64"/>
+         <source>Input Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Eingabegerät</translation>
+         <extra-contents_path>/Audio/Input Device</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="68"/>
+         <source>Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volumen</translation>
+         <extra-contents_path>/Audio/Volume</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="74"/>
+         <source>Input Level</source>
+-        <translation type="unfinished"></translation>
++        <translation>Eingangspegel</translation>
+         <extra-contents_path>/Audio/Input Level</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="84"/>
+         <source>Noise Reduction</source>
+-        <translation type="unfinished"></translation>
++        <translation>Geräuschreduzierung</translation>
+         <extra-contents_path>/Audio/Noise Reduction</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="89"/>
+         <source>Voice Monitor</source>
+-        <translation type="unfinished"></translation>
++        <translation>Sprachmonitor</translation>
+         <extra-contents_path>/audio/Voice Monitor</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="91"/>
+         <source>(None Device)</source>
+-        <translation type="unfinished"></translation>
++        <translation>(Kein Gerät)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="93"/>
+         <source>You can hear your voice in the output device of your choice</source>
+-        <translation type="unfinished"></translation>
++        <translation>Sie können Ihre Stimme im Ausgabegerät Ihrer Wahl hören</translation>
+     </message>
+ </context>
+ <context>
+@@ -334,7 +334,7 @@
+         <location filename="../ukmedia_main_widget.cpp" line="375"/>
+         <location filename="../ukmedia_main_widget.cpp" line="1179"/>
+         <source>Custom</source>
+-        <translation type="unfinished"></translation>
++        <translation>Gewohnheit</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="1611"/>
+@@ -351,7 +351,7 @@
+         <location filename="../ukmedia_main_widget.cpp" line="3232"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3473"/>
+         <source>None</source>
+-        <translation type="unfinished"></translation>
++        <translation>Nichts</translation>
+     </message>
+ </context>
+ <context>
+@@ -359,56 +359,56 @@
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="74"/>
+         <source>Output</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ausgabe</translation>
+         <extra-contents_path>/Audio/Output</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="80"/>
+         <source>Output Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ausgabegerät</translation>
+         <extra-contents_path>/Audio/Output Device</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="84"/>
+         <source>Master Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Master-Lautstärke</translation>
+         <extra-contents_path>/Audio/Master Volume</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="90"/>
+         <source>Balance</source>
+-        <translation type="unfinished"></translation>
++        <translation>Gleichgewicht</translation>
+         <extra-contents_path>/Audio/Balance</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="92"/>
+         <source>Left</source>
+-        <translation type="unfinished"></translation>
++        <translation>Links</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="95"/>
+         <source>Right</source>
+-        <translation type="unfinished"></translation>
++        <translation>Rechts</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="100"/>
+         <source>Volume Increase</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volumenerhöhung</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="102"/>
+         <source>Volume above 100% can cause sound distortion and damage your speakers.</source>
+-        <translation type="unfinished"></translation>
++        <translation>Eine Lautstärke über 100 % kann zu Klangverzerrungen führen und Ihre Lautsprecher beschädigen.</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="125"/>
+         <source>Mono Audio</source>
+-        <translation type="unfinished"></translation>
++        <translation>Mono-Audio</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="127"/>
+         <source>It merges the left and right channels into one channel.</source>
+-        <translation type="unfinished"></translation>
++        <translation>Er führt den linken und rechten Kanal zu einem Kanal zusammen.</translation>
+     </message>
+ </context>
+ <context>
+@@ -416,24 +416,24 @@
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="17"/>
+         <source>Advanced Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>Erweiterte Einstellungen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="24"/>
+         <source>Sound Equipment Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Steuerung der Tontechnik</translation>
+         <extra-contents_path>/Audio/Sound Equipment Control</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="27"/>
+         <location filename="../ukmedia_settings_widget.cpp" line="34"/>
+         <source>Details</source>
+-        <translation type="unfinished"></translation>
++        <translation>Details</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="31"/>
+         <source>App Sound Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>App-Klangsteuerung</translation>
+         <extra-contents_path>/Audio/App Sound Control</extra-contents_path>
+     </message>
+ </context>
+@@ -442,54 +442,54 @@
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="59"/>
+         <source>System Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>Klang des Systems</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="64"/>
+         <source>Sound Theme</source>
+-        <translation type="unfinished"></translation>
++        <translation>Klangthema</translation>
+         <extra-contents_path>/Audio/Sound Theme</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="68"/>
+         <source>Beep Switch</source>
+-        <translation type="unfinished"></translation>
++        <translation>Signalton-Schalter</translation>
+         <extra-contents_path>/Audio/Beep Switch</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
+         <source>Poweroff Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Poweroff-Musik</translation>
+         <extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="74"/>
+         <source>Startup Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Startup-Musik</translation>
+         <extra-contents_path>/Audio/Startup Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="77"/>
+         <source>Wakeup Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Musik zum Aufwecken</translation>
+         <extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="83"/>
+         <source>Notification Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>Benachrichtigungston</translation>
+         <extra-contents_path>/Audio/Notification Sound</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="88"/>
+         <source>Volume Control Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>Klang der Lautstärkeregelung</translation>
+         <extra-contents_path>/Audio/Volume Control Sound</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="80"/>
+         <source>Logout Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Logout Musik</translation>
+         <extra-contents_path>/Audio/Logout Music</extra-contents_path>
+     </message>
+ </context>
+@@ -502,110 +502,110 @@
+         <location filename="../ukmedia_volume_control.cpp" line="256"/>
+         <location filename="../ukmedia_volume_control.cpp" line="268"/>
+         <source>pa_context_set_sink_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_volume_by_index() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="68"/>
+         <source>pa_context_set_sink_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_mute_by_index() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="117"/>
+         <source>pa_context_set_source_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_mute_by_index() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="141"/>
+         <source>pa_context_set_source_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_volume_by_index() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="285"/>
+         <location filename="../ukmedia_volume_control.cpp" line="289"/>
+         <source>pa_context_set_source_output_volume() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_volume() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="301"/>
+         <source>pa_context_set_source_output_mute() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_mute() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="313"/>
+         <source>pa_context_set_card_profile_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_card_profile_by_index() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="327"/>
+         <source>pa_context_set_default_sink() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_sink() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="340"/>
+         <source>pa_context_set_default_source() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_source() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="356"/>
+         <source>pa_context_set_sink_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_port_by_name() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="370"/>
+         <source>pa_context_set_source_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_port_by_name() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="399"/>
+         <source> (plugged in)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (eingesteckt)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="403"/>
+         <location filename="../ukmedia_volume_control.cpp" line="586"/>
+         <source> (unavailable)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (nicht verfügbar)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="405"/>
+         <location filename="../ukmedia_volume_control.cpp" line="583"/>
+         <source> (unplugged)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (ausgesteckt)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="761"/>
+         <source>Failed to read data from stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Lesen von Daten aus dem Stream</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="804"/>
+         <source>Peak detect</source>
+-        <translation type="unfinished"></translation>
++        <translation>Peak-Erkennung</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="805"/>
+         <source>Failed to create monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Erstellen des Überwachungsdatenstroms</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="819"/>
+         <source>Failed to connect monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fehler beim Verbinden des Überwachungsstreams</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="959"/>
+         <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ignorieren von Sink-Input, da sie als Ereignis gekennzeichnet ist und daher vom Ereignis-Widget behandelt wird</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1049"/>
+         <source>pa_context_kill_source_output() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_kill_source_output() fehlgeschlagen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1381"/>
+         <source>Establishing connection to PulseAudio. Please wait...</source>
+-        <translation type="unfinished"></translation>
++        <translation>Herstellung einer Verbindung zu PulseAudio. Bitte warten...</translation>
+     </message>
+ </context>
+ </TS>
+diff --git a/audio/translations/es.ts b/audio/translations/es.ts
+index eb4cdb6..b8de741 100644
+--- a/audio/translations/es.ts
++++ b/audio/translations/es.ts
+@@ -7,18 +7,18 @@
+         <location filename="../audio.ui" line="26"/>
+         <location filename="../audio.cpp" line="38"/>
+         <source>Audio</source>
+-        <translation type="unfinished"></translation>
++        <translation>Audio</translation>
+     </message>
+     <message>
+         <location filename="../audio.cpp" line="93"/>
+         <source>UkccPlugin</source>
+-        <translation type="unfinished"></translation>
++        <translation>UkccPlugin</translation>
+         <extra-contents_path>/UkccPlugin/UkccPlugin</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../audio.cpp" line="95"/>
+         <source>ukccplugin test</source>
+-        <translation type="unfinished"></translation>
++        <translation>Prueba de ukccplugin</translation>
+         <extra-contents_path>/UkccPlugin/ukccplugin test</extra-contents_path>
+     </message>
+ </context>
+@@ -27,12 +27,12 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="426"/>
+         <source>Input Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Dispositivos de entrada</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="463"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>Confirmar</translation>
+     </message>
+ </context>
+ <context>
+@@ -40,12 +40,12 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="112"/>
+         <source>Output Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Dispositivos de salida</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="149"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>Confirmar</translation>
+     </message>
+ </context>
+ <context>
+@@ -55,132 +55,132 @@
+         <location filename="../ukmedia_volume_control.cpp" line="1835"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1914"/>
+         <source>pa_context_get_server_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_server_info() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1414"/>
+         <source>Card callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Error de devolución de llamada de la tarjeta</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1432"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1504"/>
+         <source>Sink callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Error de devolución de llamada del receptor</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1465"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1533"/>
+         <source>Source callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Error de devolución de llamada de origen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1562"/>
+         <location filename="../ukmedia_volume_control.cpp" line="2068"/>
+         <source>Sink input callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Error de devolución de llamada de entrada del receptor</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1581"/>
+         <source>Source output callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Error de devolución de llamada de salida de origen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1626"/>
+         <source>Client callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Error de devolución de llamada del cliente</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1642"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1656"/>
+         <source>Server info callback failure</source>
+-        <translation type="unfinished"></translation>
++        <translation>Error de devolución de llamada de información del servidor</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1703"/>
+         <source>Failed to initialize stream_restore extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>No se pudo inicializar stream_restore extensión: %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1720"/>
+         <source>pa_ext_stream_restore_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_stream_restore_read() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1737"/>
+         <source>Failed to initialize device manager extension: %s</source>
+-        <translation type="unfinished"></translation>
++        <translation>No se pudo inicializar la extensión del administrador de dispositivos: %s</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1756"/>
+         <source>pa_ext_device_manager_read() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_ext_device_manager_read() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1773"/>
+         <source>pa_context_get_sink_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_by_index() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1786"/>
+         <source>pa_context_get_source_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_by_index() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1799"/>
+         <location filename="../ukmedia_volume_control.cpp" line="1812"/>
+         <source>pa_context_get_sink_input_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1825"/>
+         <source>pa_context_get_client_info() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_client_info() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1865"/>
+         <source>pa_context_get_card_info_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_by_index() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1905"/>
+         <source>pa_context_subscribe() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_subscribe() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1921"/>
+         <source>pa_context_client_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_client_info_list() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1928"/>
+         <source>pa_context_get_card_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_card_info_list() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1935"/>
+         <source>pa_context_get_sink_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_info_list() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1942"/>
+         <source>pa_context_get_source_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_info_list() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1949"/>
+         <source>pa_context_get_sink_input_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_sink_input_info_list() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1956"/>
+         <source>pa_context_get_source_output_info_list() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_get_source_output_info_list() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1992"/>
+         <source>Ukui Media Volume Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Control de volumen de medios Ukui</translation>
+     </message>
+ </context>
+ <context>
+@@ -188,18 +188,18 @@
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="37"/>
+         <source>App Sound Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Control de sonido de la aplicación</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="342"/>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="363"/>
+         <source>None</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ninguno</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_device_ctrl.cpp" line="899"/>
+         <source>System Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volumen del sistema</translation>
+     </message>
+ </context>
+ <context>
+@@ -207,37 +207,37 @@
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="21"/>
+         <source>Application</source>
+-        <translation type="unfinished"></translation>
++        <translation>Aplicación</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="47"/>
+         <source>Output Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volumen de salida</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="77"/>
+         <source>Input Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Dispositivo de entrada</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="84"/>
+         <source>This case does not support setting the input device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Este caso no admite la configuración del dispositivo de entrada</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="104"/>
+         <source>Output Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Dispositivo de salida</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="111"/>
+         <source>This case does not support setting the output device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Este caso no admite la configuración del dispositivo de salida</translation>
+     </message>
+     <message>
+         <location filename="../app-device-control/ukmedia_app_item_widget.cpp" line="131"/>
+         <source>Confirm</source>
+-        <translation type="unfinished"></translation>
++        <translation>Confirmar</translation>
+     </message>
+ </context>
+ <context>
+@@ -257,17 +257,17 @@
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="14"/>
+         <source>Sound Equipment Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Control de equipos de sonido</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="26"/>
+         <source>Output Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Dispositivos de salida</translation>
+     </message>
+     <message>
+         <location filename="../audio-device-control/ukmedia_device_control_widget.cpp" line="27"/>
+         <source>Input Devices</source>
+-        <translation type="unfinished"></translation>
++        <translation>Dispositivos de entrada</translation>
+     </message>
+ </context>
+ <context>
+@@ -275,48 +275,48 @@
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="57"/>
+         <source>Input</source>
+-        <translation type="unfinished"></translation>
++        <translation>Entrada</translation>
+         <extra-contents_path>/Audio/Input</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="64"/>
+         <source>Input Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Dispositivo de entrada</translation>
+         <extra-contents_path>/Audio/Input Device</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="68"/>
+         <source>Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volumen</translation>
+         <extra-contents_path>/Audio/Volume</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="74"/>
+         <source>Input Level</source>
+-        <translation type="unfinished"></translation>
++        <translation>Nivel de entrada</translation>
+         <extra-contents_path>/Audio/Input Level</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="84"/>
+         <source>Noise Reduction</source>
+-        <translation type="unfinished"></translation>
++        <translation>Reducción de ruido</translation>
+         <extra-contents_path>/Audio/Noise Reduction</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="89"/>
+         <source>Voice Monitor</source>
+-        <translation type="unfinished"></translation>
++        <translation>Monitor de voz</translation>
+         <extra-contents_path>/audio/Voice Monitor</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="91"/>
+         <source>(None Device)</source>
+-        <translation type="unfinished"></translation>
++        <translation>(Ningún dispositivo)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_input_widget.cpp" line="93"/>
+         <source>You can hear your voice in the output device of your choice</source>
+-        <translation type="unfinished"></translation>
++        <translation>Puede escuchar su voz en el dispositivo de salida de su elección</translation>
+     </message>
+ </context>
+ <context>
+@@ -334,7 +334,7 @@
+         <location filename="../ukmedia_main_widget.cpp" line="375"/>
+         <location filename="../ukmedia_main_widget.cpp" line="1179"/>
+         <source>Custom</source>
+-        <translation type="unfinished"></translation>
++        <translation>Costumbre</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_main_widget.cpp" line="1611"/>
+@@ -351,7 +351,7 @@
+         <location filename="../ukmedia_main_widget.cpp" line="3232"/>
+         <location filename="../ukmedia_main_widget.cpp" line="3473"/>
+         <source>None</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ninguno</translation>
+     </message>
+ </context>
+ <context>
+@@ -359,56 +359,56 @@
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="74"/>
+         <source>Output</source>
+-        <translation type="unfinished"></translation>
++        <translation>Salida</translation>
+         <extra-contents_path>/Audio/Output</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="80"/>
+         <source>Output Device</source>
+-        <translation type="unfinished"></translation>
++        <translation>Dispositivo de salida</translation>
+         <extra-contents_path>/Audio/Output Device</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="84"/>
+         <source>Master Volume</source>
+-        <translation type="unfinished"></translation>
++        <translation>Volumen Maestro</translation>
+         <extra-contents_path>/Audio/Master Volume</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="90"/>
+         <source>Balance</source>
+-        <translation type="unfinished"></translation>
++        <translation>Equilibrar</translation>
+         <extra-contents_path>/Audio/Balance</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="92"/>
+         <source>Left</source>
+-        <translation type="unfinished"></translation>
++        <translation>Izquierda</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="95"/>
+         <source>Right</source>
+-        <translation type="unfinished"></translation>
++        <translation>Derecha</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="100"/>
+         <source>Volume Increase</source>
+-        <translation type="unfinished"></translation>
++        <translation>Aumento de volumen</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="102"/>
+         <source>Volume above 100% can cause sound distortion and damage your speakers.</source>
+-        <translation type="unfinished"></translation>
++        <translation>Un volumen superior al 100% puede causar distorsión del sonido y dañar los altavoces.</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="125"/>
+         <source>Mono Audio</source>
+-        <translation type="unfinished"></translation>
++        <translation>Mono Audio</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_output_widget.cpp" line="127"/>
+         <source>It merges the left and right channels into one channel.</source>
+-        <translation type="unfinished"></translation>
++        <translation>Fusiona los canales izquierdo y derecho en un solo canal.</translation>
+     </message>
+ </context>
+ <context>
+@@ -416,24 +416,24 @@
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="17"/>
+         <source>Advanced Settings</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ajustes avanzados</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="24"/>
+         <source>Sound Equipment Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Control de equipos de sonido</translation>
+         <extra-contents_path>/Audio/Sound Equipment Control</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="27"/>
+         <location filename="../ukmedia_settings_widget.cpp" line="34"/>
+         <source>Details</source>
+-        <translation type="unfinished"></translation>
++        <translation>Detalles</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_settings_widget.cpp" line="31"/>
+         <source>App Sound Control</source>
+-        <translation type="unfinished"></translation>
++        <translation>Control de sonido de la aplicación</translation>
+         <extra-contents_path>/Audio/App Sound Control</extra-contents_path>
+     </message>
+ </context>
+@@ -442,54 +442,54 @@
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="59"/>
+         <source>System Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>Sonido del sistema</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="64"/>
+         <source>Sound Theme</source>
+-        <translation type="unfinished"></translation>
++        <translation>Tema sonoro</translation>
+         <extra-contents_path>/Audio/Sound Theme</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="68"/>
+         <source>Beep Switch</source>
+-        <translation type="unfinished"></translation>
++        <translation>Interruptor de pitido</translation>
+         <extra-contents_path>/Audio/Beep Switch</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="71"/>
+         <source>Poweroff Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Música apagada</translation>
+         <extra-contents_path>/Audio/Poweroff Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="74"/>
+         <source>Startup Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Música de inicio</translation>
+         <extra-contents_path>/Audio/Startup Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="77"/>
+         <source>Wakeup Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Música para despertar</translation>
+         <extra-contents_path>/Audio/Wakeup Music</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="83"/>
+         <source>Notification Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>Sonido de notificación</translation>
+         <extra-contents_path>/Audio/Notification Sound</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="88"/>
+         <source>Volume Control Sound</source>
+-        <translation type="unfinished"></translation>
++        <translation>Control de volumen Sonido</translation>
+         <extra-contents_path>/Audio/Volume Control Sound</extra-contents_path>
+     </message>
+     <message>
+         <location filename="../ukmedia_sound_effects_widget.cpp" line="80"/>
+         <source>Logout Music</source>
+-        <translation type="unfinished"></translation>
++        <translation>Cerrar sesión de música</translation>
+         <extra-contents_path>/Audio/Logout Music</extra-contents_path>
+     </message>
+ </context>
+@@ -502,110 +502,110 @@
+         <location filename="../ukmedia_volume_control.cpp" line="256"/>
+         <location filename="../ukmedia_volume_control.cpp" line="268"/>
+         <source>pa_context_set_sink_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_volume_by_index() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="68"/>
+         <source>pa_context_set_sink_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_mute_by_index() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="117"/>
+         <source>pa_context_set_source_mute_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_mute_by_index() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="141"/>
+         <source>pa_context_set_source_volume_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_volume_by_index() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="285"/>
+         <location filename="../ukmedia_volume_control.cpp" line="289"/>
+         <source>pa_context_set_source_output_volume() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_volume() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="301"/>
+         <source>pa_context_set_source_output_mute() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_output_mute() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="313"/>
+         <source>pa_context_set_card_profile_by_index() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_card_profile_by_index() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="327"/>
+         <source>pa_context_set_default_sink() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_sink() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="340"/>
+         <source>pa_context_set_default_source() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_default_source() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="356"/>
+         <source>pa_context_set_sink_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_sink_port_by_name() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="370"/>
+         <source>pa_context_set_source_port_by_name() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_set_source_port_by_name() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="399"/>
+         <source> (plugged in)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (enchufado)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="403"/>
+         <location filename="../ukmedia_volume_control.cpp" line="586"/>
+         <source> (unavailable)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (no disponible)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="405"/>
+         <location filename="../ukmedia_volume_control.cpp" line="583"/>
+         <source> (unplugged)</source>
+-        <translation type="unfinished"></translation>
++        <translation> (desenchufado)</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="761"/>
+         <source>Failed to read data from stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>No se pudieron leer los datos de la secuencia</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="804"/>
+         <source>Peak detect</source>
+-        <translation type="unfinished"></translation>
++        <translation>Detección de picos</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="805"/>
+         <source>Failed to create monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>No se pudo crear la secuencia de supervisión</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="819"/>
+         <source>Failed to connect monitoring stream</source>
+-        <translation type="unfinished"></translation>
++        <translation>No se pudo conectar la secuencia de supervisión</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="959"/>
+         <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source>
+-        <translation type="unfinished"></translation>
++        <translation>Ignorar la entrada del receptor debido a que se designa como un evento y, por lo tanto, es manejada por el widget de eventos</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1049"/>
+         <source>pa_context_kill_source_output() failed</source>
+-        <translation type="unfinished"></translation>
++        <translation>pa_context_kill_source_output() falló</translation>
+     </message>
+     <message>
+         <location filename="../ukmedia_volume_control.cpp" line="1381"/>
+         <source>Establishing connection to PulseAudio. Please wait...</source>
+-        <translation type="unfinished"></translation>
++        <translation>Establecer la conexión con PulseAudio. Espera...</translation>
+     </message>
+ </context>
+ </TS>
diff -Nru ukui-media-3.25.0.0/debian/patches/series ukui-media-3.25.0.0/debian/patches/series
--- ukui-media-3.25.0.0/debian/patches/series	2024-10-14 17:16:19.000000000 +0800
+++ ukui-media-3.25.0.0/debian/patches/series	2024-10-28 11:26:40.000000000 +0800
@@ -56,3 +56,15 @@
 0056-56-fix-issue-I9IYVF.patch
 0057-57.patch
 0058-59-fix.patch
+0059-58.patch
+0060-61-Fix-Check-HUAWEI-machine-error.patch
+0061-62-updateSource-sourceportName.patch
+0062-63-AI.patch
+0063-64.patch
+0064-Added-translation-using-Weblate-Vietnamese.patch
+0065-Translated-using-Weblate-Vietnamese.patch
+0066-Added-translation-using-Weblate-Vietnamese.patch
+0067-Added-translation-using-Weblate-French.patch
+0068-Translated-using-Weblate-Vietnamese.patch
+0069-Translated-using-Weblate-French.patch
+0070-Translated-using-Weblate-Spanish.patch