Sisyphus
: 1 2023 | : 18631 | : 37549192
en ru br
:: /
: imagewriter

             Sources      Gear   Bugs and FR  Repocop 

: imagewriter-add-russian-localization.patch



diff --git a/imagewriter/imagewriter.desktop b/imagewriter/imagewriter.desktop
index 6c2b091..bdcbe03 100644
--- a/imagewriter/imagewriter.desktop
+++ b/imagewriter/imagewriter.desktop
@@ -5,6 +5,9 @@ Exec=imagewriter -f %f
 Icon=imagewriter
 Name=SUSE Studio Imagewriter
 GenericName=USB key writer
+GenericName[ru]=Запись образа на USB
+Comment=Write disk image to USB key
+Comment[ru]=Запись образа диска на USB-накопитель
 Version=1.0
 Keywords=iso;disk;usb;dvd;
 MimeType=application/x-cd-image;application/x-raw-disk-image;
diff --git a/imagewriter/imagewriter.pro b/imagewriter/imagewriter.pro
index c3b98cc..99339b2 100644
--- a/imagewriter/imagewriter.pro
+++ b/imagewriter/imagewriter.pro
@@ -86,12 +86,17 @@ distfile.commands = mkdir \
     cd \
     ..
 
+TRANSLATIONS = ru_RU.ts
+translations.path = $$PREFIX/share/imagewriter
+translations.files = *.qm
+
 INSTALLS += target \
     icon32 \
     icon64 \
     icon128 \
     desktop \
-    manpage
+    manpage \
+    translations
 target.path = $$PREFIX/bin
 desktop.path = $$PREFIX/share/applications/
 desktop.files += imagewriter.desktop
diff --git a/imagewriter/main.cpp b/imagewriter/main.cpp
index 24062af..083f473 100644
--- a/imagewriter/main.cpp
+++ b/imagewriter/main.cpp
@@ -22,6 +22,8 @@
  */
 
 #include <QApplication>
+#include <QLocale>
+#include <QTranslator>
 
 #ifndef Q_OS_LINUX
 #error "Only linux is supported at the moment"
@@ -97,6 +99,17 @@ main (int argc, char *argv[])
     }
 
     QApplication app(argc, argv);
+
+    // Load common Qt translation
+    QTranslator qtTranslator;
+    qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
+    app.installTranslator(&qtTranslator);
+
+    // Add application translation
+    QTranslator appTranslator;
+    appTranslator.load(QLocale::system().name(), "/usr/share/imagewriter");
+    app.installTranslator(&appTranslator);
+
 #ifdef USEHAL
     PlatformHal *platform = new PlatformHal(kioskMode, unsafe);
 #elif USEUDISKS2
diff --git a/imagewriter/ru_RU.ts b/imagewriter/ru_RU.ts
new file mode 100644
index 0000000..fbafaef
--- /dev/null
+++ b/imagewriter/ru_RU.ts
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru_RU">
+<context>
+    <name>AboutLabel</name>
+    <message>
+        <source>About SUSE Studio Imagewriter</source>
+        <translation type="obsolete">О программе</translation>
+    </message>
+    <message>
+        <source>The &lt;b&gt;SUSE Studio Imagewriter&lt;/b&gt; is (C) 2012, SUSE Linux Products GmbH&lt;br&gt;&lt;br&gt;                   It is cheerfully released under the GPL v2 license.  You can find the source code on github: https://github.com/mbarringer/imagewriter&lt;br&gt;&lt;br&gt;                   It was written by Matt Barringer &amp;lt;matt@incoherent.de&amp;gt;.  Please send complaints directly to him.</source>
+        <translation type="obsolete">Авторские права на &lt;b&gt;SUSE Studio Imagewriter&lt;/b&gt; принадлежат SUSE Linux Products GmbH, 2012&lt;br&gt;&lt;br&gt;                   С радостью выпущено под условиями лицензии GPL v2.  Исходный код доступен на github: https://github.com/mbarringer/imagewriter&lt;br&gt;&lt;br&gt;                   Написана Matt Barringer &amp;lt;matt@incoherent.de&amp;gt;.  Отправляйте жалобы непосредственно ему (на английском языке).</translation>
+    </message>
+</context>
+<context>
+    <name>ImageWriter</name>
+    <message>
+        <source>Failed to allocate memory for buffer:</source>
+        <translation type="obsolete">Не удалось выделить память для буфера:</translation>
+    </message>
+    <message>
+        <source>Failed to allocate memory for buffer.</source>
+        <translation type="obsolete">Не удалось выделить память для буфера.</translation>
+    </message>
+    <message>
+        <source>Failed to open the image file:</source>
+        <translation type="obsolete">Не удалось открыть файл образа:</translation>
+    </message>
+    <message>
+        <source>Failed to open the drive</source>
+        <translation type="obsolete">Не удалось открыть диск</translation>
+    </message>
+    <message>
+        <source>Failed to unmount the drive</source>
+        <translation type="obsolete">Не удалось отмонтировать диск</translation>
+    </message>
+    <message>
+        <source>Failed to unmount the volume</source>
+        <translation type="obsolete">Не удалось отмонтировать том</translation>
+    </message>
+    <message>
+        <source>Failed to open the target device:</source>
+        <translation type="obsolete">Не удалось открыть целевое устройство:</translation>
+    </message>
+    <message>
+        <source>Failed to write to the device:</source>
+        <translation type="obsolete">Ошибка записи на целевое устройство:</translation>
+    </message>
+    <message>
+        <source>The last block was not fully written (%1 of %2 bytes)!
+Aborting.</source>
+        <translation type="obsolete">Последний блок был записан не полностью (%1 из %2 байтов)!
+Операция прервана.</translation>
+    </message>
+    <message>
+        <source>Failed to read the image file:</source>
+        <translation type="obsolete">Ошибка чтения из файла образа:</translation>
+    </message>
+</context>
+<context>
+    <name>MainDialog</name>
+    <message>
+        <source>&amp;USB Device:</source>
+        <translation type="obsolete">&amp;USB-диск:</translation>
+    </message>
+    <message>
+        <source>Image:</source>
+        <translation type="obsolete">Образ:</translation>
+    </message>
+    <message>
+        <source>Open image file</source>
+        <translation type="obsolete">Открыть файл образа</translation>
+    </message>
+    <message>
+        <source>Refresh the list</source>
+        <translation type="obsolete">Перечитать список</translation>
+    </message>
+    <message>
+        <source>%v / %m MB</source>
+        <translation type="obsolete">%v / %m МБ</translation>
+    </message>
+    <message>
+        <source>&amp;Write</source>
+        <translation type="obsolete">&amp;Записать</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation type="obsolete">&amp;Отменить</translation>
+    </message>
+    <message>
+        <source>Failed to open the image file:</source>
+        <translation type="obsolete">Не удалось открыть файл образа:</translation>
+    </message>
+    <message>
+        <source>MB</source>
+        <translation type="obsolete">МБ</translation>
+    </message>
+    <message>
+        <source>Writing is in progress, abort it?</source>
+        <translation type="obsolete">Запись образа не завершена, прервать её?</translation>
+    </message>
+    <message>
+        <source>Disk Images</source>
+        <translation type="obsolete">Образы дисков</translation>
+    </message>
+    <message>
+        <source>All Files</source>
+        <translation type="obsolete">Все файлы</translation>
+    </message>
+    <message>
+        <source>The image is larger than your selected device!</source>
+        <translation type="obsolete">Файл образа больше по размеру, чем выбранный диск!</translation>
+    </message>
+    <message>
+        <source>Image size:</source>
+        <translation type="obsolete">Размер образа:</translation>
+    </message>
+    <message>
+        <source>b</source>
+        <translation type="obsolete">б</translation>
+    </message>
+    <message>
+        <source>Disk size:</source>
+        <translation type="obsolete">Размер диска:</translation>
+    </message>
+    <message>
+        <source>Writing an image will erase all existing data on the selected device.
+Are you sure you wish to proceed?</source>
+        <translation type="obsolete">Запись образа уничтожит все имеющиеся данные на выбранном диске.
+Вы уверены, что хотите продолжить?</translation>
+    </message>
+    <message>
+        <source>The operation completed successfully.</source>
+        <translation type="obsolete">Операция успешно завершена.</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <location filename="MainWindow.cpp" line="+167"/>
+        <location line="+152"/>
+        <source>Drag disk image here
+ or click to select.</source>
+        <translation>Перетащите файл образа 
+сюда или щёлкните
+для выбора файла.</translation>
+    </message>
+    <message>
+        <location line="-148"/>
+        <location line="+58"/>
+        <source>Write</source>
+        <translation>Записать</translation>
+    </message>
+    <message>
+        <location line="-40"/>
+        <source>&lt;u&gt;About&lt;/u&gt;</source>
+        <translation>&lt;u&gt;О программе&lt;/u&gt;</translation>
+    </message>
+    <message>
+        <location line="+34"/>
+        <source>Select</source>
+        <translation>Выбор</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Exit</source>
+        <translation>Выход</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>File</source>
+        <translation>Файл</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Device</source>
+        <translation>Устройство</translation>
+    </message>
+    <message>
+        <location line="+55"/>
+        <source>Open Image</source>
+        <translation>Открыть образ</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Image Files (*.raw *.iso)</source>
+        <translation>Файлы образов (*.raw *.iso)</translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Sorry, I can&apos;t write this ISO.  You need to use another program to write it to a DVD.</source>
+        <translation>Невозможно записать этот файл образа. Вам нужна другая программа для записи его на DVD.</translation>
+    </message>
+    <message>
+        <location line="+143"/>
+        <source> MB</source>
+        <translation> МБ</translation>
+    </message>
+    <message>
+        <location line="+45"/>
+        <source>&lt;b&gt;Selected:&lt;/b&gt; </source>
+        <translation>&lt;b&gt;Образ:&lt;/b&gt; </translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>Please select an image to use.</source>
+        <translation>Выберите файл образа для записи.</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>This device is already mounted, and I will not write to a mounted device.  Would you like me to attempt to unmount it?</source>
+        <translation>Невозможно записать на смонтированное устройство. Отмонтировать это устройство?</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Yes</source>
+        <translation>Да</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>No</source>
+        <translation>Нет</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Unmount failed.  I will not write to this device.</source>
+        <translation>Ошибка отмонтирования. Запись на это устройство невозможна.</translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>This will overwrite the contents of </source>
+        <translation>Будет перезаписано всё содержимое </translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>.  Are you sure you want to continue?</source>
+        <translation>. Продолжить?</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source> is a non-removable hard drive, and this will overwrite the contents.  Are you &lt;b&gt;sure&lt;/b&gt; you want to continue?</source>
+        <translation> не является подключаемым диском. Всё содержимое будет перезаписано. Вы &lt;b&gt;точно&lt;/b&gt; хотите продолжить?</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>Cancel</source>
+        <translation>Отмена</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Ok</source>
+        <translation>Ok</translation>
+    </message>
+    <message>
+        <location filename="MainWindow.h" line="+35"/>
+        <source>Insert a USB device</source>
+        <translation>Вставьте USB-диск</translation>
+    </message>
+</context>
+<context>
+    <name>PhysicalDevice</name>
+    <message>
+        <source>Could not acquire lock:</source>
+        <translation type="obsolete">Не удалось заблокировать целевое устройство:</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>Error code:</source>
+        <translation type="obsolete">Код ошибки:</translation>
+    </message>
+    <message>
+        <source>Unknown Device</source>
+        <translation type="obsolete">Неизвестное устройство</translation>
+    </message>
+    <message>
+        <source>&lt;unmounted&gt;</source>
+        <translation type="obsolete">&lt;не примонтировано&gt;</translation>
+    </message>
+    <message>
+        <source>MB</source>
+        <translation type="obsolete">МБ</translation>
+    </message>
+    <message>
+        <source>Memory allocation for %1 failed.</source>
+        <translation type="obsolete">Не удалось выделить память для %1.</translation>
+    </message>
+    <message>
+        <source>CoCreateInstance(WbemAdministrativeLocator) failed.</source>
+        <translation type="obsolete">Ошибка при вызове CoCreateInstance(WbemAdministrativeLocator).</translation>
+    </message>
+    <message>
+        <source>ConnectServer failed.</source>
+        <translation type="obsolete">Ошибка при вызове ConnectServer.</translation>
+    </message>
+    <message>
+        <source>Failed to query USB flash devices.</source>
+        <translation type="obsolete">Ошибка при запросе списка USB флэш-дисков.</translation>
+    </message>
+    <message>
+        <source>Failed to query list of partitions.</source>
+        <translation type="obsolete">Ошибка при запросе списка разделов.</translation>
+    </message>
+    <message>
+        <source>Failed to query list of logical disks.</source>
+        <translation type="obsolete">Ошибка при запросе списка логических дисков.</translation>
+    </message>
+    <message>
+        <location filename="Platform.cpp" line="+67"/>
+        <source>The image you are trying to write is larger than your USB stick.</source>
+        <translation>Файл образа больше по размеру, чем выбранный USB диск.</translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <location line="+8"/>
+        <source>Couldn&apos;t open </source>
+        <translation>Невозможно открыть</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Cancel</source>
+        <translation>Отмена</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Writing</source>
+        <translation>Запись</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>Read failure</source>
+        <translation>Ошибка чтения</translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Write failure</source>
+        <translation>Ошибка записи</translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Written %1MB out of %2MB</source>
+        <translation>Записано %1 МБ из %2 МБ</translation>
+    </message>
+    <message>
+        <location filename="PlatformHal.cpp" line="+52"/>
+        <location line="+53"/>
+        <location line="+154"/>
+        <location line="+38"/>
+        <source>Could not initialize HAL.</source>
+        <translation>Невозможно инициализировать HAL.</translation>
+    </message>
+    <message>
+        <location line="-138"/>
+        <location filename="PlatformUdisks.cpp" line="+175"/>
+        <location filename="PlatformUdisks2.cpp" line="+165"/>
+        <source>%1 %2 - %3 (%4 MB)</source>
+        <translation>%1 %2 - %3 (%4 МБ)</translation>
+    </message>
+    <message>
+        <location filename="PlatformUdisks.cpp" line="-101"/>
+        <source>You don&apos;t have UDisks support.</source>
+        <translation>Отсутствует поддержка UDisks.</translation>
+    </message>
+    <message>
+        <location filename="PlatformUdisks2.cpp" line="-109"/>
+        <source>You don&apos;t have UDisks2 support.</source>
+        <translation>Отсутствует поддержка UDisks2.</translation>
+    </message>
+    <message>
+        <location filename="MainWindow.cpp" line="+41"/>
+        <source>About SUSE Studio Imagewriter</source>
+        <translation>О программе</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>The &lt;b&gt;SUSE Studio Imagewriter&lt;/b&gt; is (C) 2012, SUSE Linux Products GmbH&lt;br&gt;&lt;br&gt;                   It is cheerfully released under the GPL v2 license.  You can find the source code on github: https://github.com/mbarringer/imagewriter&lt;br&gt;&lt;br&gt;                   It was written by Matt Barringer &amp;lt;matt@incoherent.de&amp;gt;.  Please send complaints directly to him.</source>
+        <translation>Авторские права на &lt;b&gt;SUSE Studio Imagewriter&lt;/b&gt; принадлежат SUSE Linux Products GmbH, 2012&lt;br&gt;&lt;br&gt;                   С радостью выпущено под условиями лицензии GPL v2.  Исходный код доступен на github: https://github.com/mbarringer/imagewriter&lt;br&gt;&lt;br&gt;                   Написана Matt Barringer &amp;lt;matt@incoherent.de&amp;gt;.  Отправляйте жалобы непосредственно ему (на английском языке).</translation>
+    </message>
+</context>
+</TS>
 
: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
: Michael Shigorin