Many bug fixed. Added desktop file. Temporary disabled license page.

new_gui
Ivan Loskutov 14 years ago
parent acb14d7bb0
commit d3440cbdac

@ -64,6 +64,14 @@ set( RESOURCES
resources/systeminstaller.qrc
)
set( DESKTOP
resources/cl-install-gui.desktop
)
set( ICONS
resources/cl-install-gui.png
)
add_definitions(-DNO_INSTALL -DQT_GUI_LIB -DQT_CORE_LIB -Wall)
include_directories(
./
@ -131,6 +139,30 @@ install( FILES ${TRANSLATIONS_BINARY}
WORLD_READ
)
install( FILES ${TRANSLATIONS_BINARY}
DESTINATION share/${PROJECT}
PERMISSIONS
OWNER_WRITE OWNER_READ
GROUP_READ
WORLD_READ
)
install( FILES ${DESKTOP}
DESTINATION share/applications
PERMISSIONS
OWNER_WRITE OWNER_READ
GROUP_READ
WORLD_READ
)
install( FILES ${ICONS}
DESTINATION share/pixmaps
PERMISSIONS
OWNER_WRITE OWNER_READ
GROUP_READ
WORLD_READ
)
#install( FILES resources/${PROJECT}.desktop
# DESTINATION share/applications
# PERMISSIONS

@ -0,0 +1,9 @@
[Desktop Entry]
Categories=System;
Exec=sudo cl-install-gui
Icon=cl-install-gui
Name=calculate-install-gui
Comment=GUI-Frontend for Calculate Linux installer
Terminal=true
Type=Application
Version=0.1

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

@ -30,8 +30,11 @@ bool CalculateConfig::getDefaultConfig()
// start cl-install -v and parse out
QProcess cl_install;
qDebug() << "Start cl-install -v --xml";
cl_install.start("cl-install", QStringList() << "-v" << "--xml");
qDebug() << "Start cl-install -v --xml --filter (os_install*|os_locale_lang|os_disk*|os_device*)";
cl_install.start(
"cl-install -v --xml --filter \"os_install*|os_locale_lang|*os_disk*|*os_device*\""
);
if ( !cl_install.waitForStarted() )
return false;
@ -62,18 +65,11 @@ bool CalculateConfig::getDefaultConfig()
m_Config["gui_install_language"] = m_Config["os_locale_lang"];
QStringList devs = m_Config["os_device_dev"].toStringList();
QStringList::iterator dev = devs.begin();
while ( dev != devs.end() )
{
*dev = "/dev/"+*dev;
++dev;
}
m_Config.remove("os_device_dev");
m_Config["os_device_dev"] = devs;
m_Config["os_device_dev"] = preparePartitions(devs);
m_Config["gui_os_device_dev"] = m_Config["os_device_dev"].toStringList().at(0);
if ( !m_Config["os_device_dev"].toStringList().isEmpty() )
m_Config["gui_os_device_dev"] = m_Config["os_device_dev"].toStringList().at(0);
m_Config["gui_os_device_dev_def"] = m_Config["gui_os_device_dev"];
// copy default values
@ -91,6 +87,62 @@ bool CalculateConfig::getDefaultConfig()
return true;
}
bool CalculateConfig::getNewPartitioning()
{
// start cl-install -v and parse out
MapConfig confDisk;
QProcess cl_install;
qDebug() << "Start cl-install -v --xml --filter (os_disk*|os_device*)";
cl_install.start(
"cl-install -v --xml --filter \"(os_disk*|os_device*)\" "
);
if ( !cl_install.waitForStarted() )
return false;
if ( !cl_install.waitForFinished() )
return false;
QString outVars = cl_install.readAll();
QDomDocument xmlVars;
QString errMsg;
int errLine;
int errColumn;
if ( xmlVars.setContent(outVars, true, &errMsg, &errLine, &errColumn) )
{
QDomElement domRoot = xmlVars.documentElement();
if (domRoot.tagName() == "variables") {
parseVariables(domRoot, confDisk);
} else {
qDebug() << "Section \"variables\" not found";
return false;
}
}
QStringList devs = confDisk["os_device_dev"].toStringList();
m_Config.remove("os_device_dev");
m_Config["os_device_dev"] = preparePartitions(devs);
return true;
}
QStringList CalculateConfig::preparePartitions(const QStringList& parts)
{
QStringList devs(parts);
QStringList::iterator dev = devs.begin();
while ( dev != devs.end() )
{
*dev = "/dev/"+*dev;
++dev;
}
return devs;
}
QStringList CalculateConfig::getPasswordUsers()
{
QStringList result;

@ -19,6 +19,7 @@ public:
static CalculateConfig* instance();
bool getDefaultConfig();
bool getNewPartitioning();
QVariant getValue(const QString& key) const { return m_Config[key]; }
void setValue(const QString& key, const QVariant& value);
@ -37,6 +38,8 @@ private:
CalculateConfig(const CalculateConfig&);
CalculateConfig& operator=(const CalculateConfig&);
QStringList preparePartitions(const QStringList& parts);
void parseVariables(const QDomNode& node, MapConfig& cfg);
void parseVar(const QDomNode& node, MapConfig& cfg);
void parseVarList(const QDomNode& node, MapConfig& cfg);

@ -26,7 +26,7 @@ int main(int argc, char** argv)
QApplication app(argc, argv);
//qInstallMsgHandler( MsgHandler );
qInstallMsgHandler( MsgHandler );
debugLog.setFileName("/var/log/calculate/cl-install-gui-debug.log");
if ( debugLog.open(QIODevice::Append | QIODevice::WriteOnly | QIODevice::Text | QIODevice::Unbuffered) )

@ -6,11 +6,14 @@
#include <QLineEdit>
#include <QBoxLayout>
#include <QPushButton>
#include <QRegExp>
#include <QRegExpValidator>
#include <QMessageBox>
#include <QDebug>
MountPointDialog::MountPointDialog ( QWidget* parent, MountPoint* mountPoint )
: QDialog(parent), m_MountPoint(mountPoint)
{
@ -32,7 +35,11 @@ MountPointDialog::MountPointDialog ( QWidget* parent, MountPoint* mountPoint )
m_cmbboxFS->setCurrentIndex( fsIndx );
if (m_cmbboxFS->currentText() == "swap" )
{
m_edMountPoint->setText("swap");
m_chkboxFormat->setChecked( true );
m_chkboxFormat->setEnabled( false );
}
if (m_edMountPoint->text() == "swap")
m_edMountPoint->setEnabled(false);
@ -49,12 +56,15 @@ MountPointDialog::~MountPointDialog()
void MountPointDialog::setupUi()
{
QRegExp rxDir("/[0-9a-zA-Z_\\-/]{0,64}");
m_labDevice = new QLabel( tr("Device: ") );
m_edDevice = new QLineEdit;
m_edDevice->setReadOnly(true);
m_labMountPoint = new QLabel( tr("Mount point: ") );
m_edMountPoint = new QLineEdit;
m_edMountPoint->setValidator( new QRegExpValidator(rxDir, this) );
QGridLayout* gbox_0 = new QGridLayout;
gbox_0->setContentsMargins(0, 0, 0, 0);
@ -122,6 +132,8 @@ void MountPointDialog::preAccept()
m_MountPoint->format = m_chkboxFormat->isChecked();
if (m_MountPoint->format)
m_MountPoint->fs_new = m_cmbboxFS->currentText();
else
m_MountPoint->fs_new = "";
}
accept();
@ -136,6 +148,7 @@ void MountPointDialog::changeFS( QString fs )
m_edMountPoint->setText("swap");
m_edMountPoint->setEnabled(false);
} else {
m_chkboxFormat->setEnabled(true);
m_edMountPoint->setEnabled(true);
if ( m_edMountPoint->text() == "swap" )
{

@ -35,6 +35,7 @@ void PageCfdisk::setupUi()
m_Term->setTerminalFont(font);
m_Term->setParent(m_widgetTerm);
m_Term->setColorScheme(COLOR_SCHEME_BLACK_ON_LIGHT_YELLOW);
QVBoxLayout* vbox_1 = new QVBoxLayout;

@ -8,6 +8,8 @@
#include <QApplication>
#include <QMessageBox>
#include <QScrollArea>
#include <QRegExp>
#include <QRegExpValidator>
#include <QDebug>
@ -46,6 +48,9 @@ PageConfiguration::PageConfiguration() :
void PageConfiguration::setupUi()
{
QRegExp rxName("[a-zA-Z][0-9a-zA-Z_\\-.]{0,63}");
QRegExp rxNameIP("[0-9a-zA-Z_\\-/:\\\\.]{0,128}");
//
m_labelSelectParams = new QLabel;
@ -53,6 +58,7 @@ void PageConfiguration::setupUi()
QHBoxLayout* hbox_hostname = new QHBoxLayout;
m_labelHostName = new QLabel;
m_editHostName = new QLineEdit;
m_editHostName->setValidator( new QRegExpValidator(rxName, this) );
m_editHostName->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
hbox_hostname->addWidget(m_labelHostName);
hbox_hostname->addWidget(m_editHostName);
@ -61,6 +67,7 @@ void PageConfiguration::setupUi()
QHBoxLayout* hbox_domain = new QHBoxLayout;
m_labelDomainName = new QLabel;
m_editDomainName = new QLineEdit;
m_editDomainName->setValidator( new QRegExpValidator(rxName, this) );
m_editDomainName->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
hbox_domain->addWidget(m_labelDomainName);
hbox_domain->addWidget(m_editDomainName);
@ -120,6 +127,7 @@ void PageConfiguration::setupUi()
QHBoxLayout* hbox_proxy = new QHBoxLayout;
m_labelProxy = new QLabel;
m_editProxy = new QLineEdit;
m_editProxy->setValidator( new QRegExpValidator(rxNameIP, this) );
m_editProxy->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
hbox_proxy->addWidget(m_labelProxy);
hbox_proxy->addWidget(m_editProxy);
@ -128,6 +136,7 @@ void PageConfiguration::setupUi()
QHBoxLayout* hbox_ntp = new QHBoxLayout;
m_labelNtp = new QLabel;
m_editNtp = new QLineEdit;
m_editNtp->setValidator( new QRegExpValidator(rxNameIP, this) );
m_editNtp->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
hbox_ntp->addWidget(m_labelNtp);
hbox_ntp->addWidget(m_editNtp);
@ -170,6 +179,7 @@ void PageConfiguration::setupUi()
QScrollArea* scrArea = new QScrollArea;
scrArea->setWidgetResizable(true);
scrArea->setAutoFillBackground(false);
QWidget* scrWidg = new QWidget;
QVBoxLayout* scrWidgLayout = new QVBoxLayout(scrWidg);

@ -56,6 +56,8 @@ void PageInstall::retranslateUi()
void PageInstall::show()
{
qDebug() << "install show()";
m_Progress->setMaximum(100);
m_Output->clear();
CalculateConfig* clConf = CalculateConfig::instance();
@ -168,6 +170,7 @@ void PageInstall::onFinish(int exitCode, QProcess::ExitStatus exitStatus)
m_Progress->setValue(100);
// m_LabelEta->setText( tr("Eta: 0:00:00") );
disconnect(m_clProc);
delete m_clProc;
m_clProc = 0;
}

@ -2,7 +2,7 @@
#include <QLabel>
#include <QTreeWidget>
#include <QLayout>
#include <QBoxLayout>
#include <QMessageBox>
#include <QDebug>
@ -19,17 +19,19 @@ PageMountPoints::PageMountPoints()
void PageMountPoints::setupUi()
{
m_labMountPoints = new QLabel;
m_trwMountPoints = new QTreeWidget;
m_labMountPointHelp = new QLabel;
QVBoxLayout* vbox_0 = new QVBoxLayout;
vbox_0->addWidget(m_labMountPoints);
vbox_0->addWidget( m_trwMountPoints);
vbox_0->addWidget(m_trwMountPoints);
vbox_0->addWidget(m_labMountPointHelp);
setLayout(vbox_0);
connect( m_trwMountPoints, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),
this, SLOT(partitionDoubleClicked(QTreeWidgetItem*,int))
this, SLOT(partitionDoubleClicked(QTreeWidgetItem*,int))
);
retranslateUi();
@ -48,6 +50,8 @@ void PageMountPoints::retranslateUi()
trwHeader->setText(5, tr("Format") );
m_labMountPoints->setText( tr("Select mount points:") );
m_labMountPointHelp->setText( tr("Set the desired mount points. For continue must be set mount point for /") );
}
void PageMountPoints::show()
@ -81,6 +85,22 @@ bool PageMountPoints::validate()
if ( CalculateConfig::instance()->getValue("gui_partitioning") != "auto" )
{
// check parameters
MountPointsTree::ConstIterator it = m_treeMountPoints.constBegin();
while( it != m_treeMountPoints.constEnd() )
{
foreach(const MountPoint& mp, it.value())
{
if ( !mp.mountpoint.isEmpty() && (mp.fs_new != "swap") )
{
if (mp.mountpoint == "/")
return true;
}
}
++it;
}
QMessageBox::warning(this, tr("Warning"), tr("Select mount point for /") );
return false;
}
return true;
@ -98,7 +118,7 @@ void PageMountPoints::partitionDoubleClicked ( QTreeWidgetItem* item, int index
QString dev = item->parent()->text(0);
QString part = item->text(0);
qDebug() << "selected :" << dev << " " << part;
//qDebug() << "selected :" << dev << " " << part;
// find data
MountPointsList mpList = m_treeMountPoints[dev];
@ -111,7 +131,7 @@ void PageMountPoints::partitionDoubleClicked ( QTreeWidgetItem* item, int index
break;
}
qDebug() << "index: " << mpIndex;
//qDebug() << "index: " << mpIndex;
if (mpIndex >= 0)
{
@ -133,6 +153,8 @@ void PageMountPoints::partitionDoubleClicked ( QTreeWidgetItem* item, int index
void PageMountPoints::getTree()
{
MountPointsTree copyTree(m_treeMountPoints);
m_treeMountPoints.clear();
QStringList os_disk_dev = CalculateConfig::instance()->getValue("os_disk_dev").toStringList();
@ -161,6 +183,19 @@ void PageMountPoints::getTree()
if ( m_treeMountPoints.contains(dev) )
{
if (copyTree.contains(dev))
{
foreach(MountPoint mp, copyTree[dev])
{
if (mp.dev == mountpoint.dev)
{
mountpoint.mountpoint = mp.mountpoint;
mountpoint.format = mp.format;
mountpoint.fs_new = mp.fs_new;
break;
}
}
}
m_treeMountPoints[dev] << mountpoint;
}
else
@ -207,8 +242,8 @@ void PageMountPoints::showBranch(const QString& dev, const MountPointsList& list
trwItem_0_0->setText(1, mp.label ); // Label
trwItem_0_0->setText(2, mp.size ); // Size
trwItem_0_0->setText(3, mp.mountpoint ); // Mount point
trwItem_0_0->setText(4, mp.fs_new.isEmpty() ? mp.fs : mp.fs_new ); // File system
trwItem_0_0->setText(5, mp.fs_new.isEmpty() ? "" : (mp.format ? tr("YES") : tr("no")) ); // Format
trwItem_0_0->setText(4, mp.fs_new.isEmpty() ? mp.fs : mp.fs_new ); // File system
trwItem_0_0->setText(5, mp.fs_new.isEmpty() ? tr("no") : tr("YES") ); // Format
}
m_trwMountPoints->insertTopLevelItem(m_trwMountPoints->topLevelItemCount(), trwItem_0);

@ -44,6 +44,7 @@ private:
private:
QLabel* m_labMountPoints;
QTreeWidget* m_trwMountPoints;
QLabel* m_labMountPointHelp;
MountPointsTree m_treeMountPoints;
};

@ -31,6 +31,7 @@ void PagePartitioning::setupUi()
m_butExistPartitions = new QRadioButton;
m_butAllDisk = new QRadioButton;
m_butAllDisk->setEnabled(false);
m_butManualPartitioning = new QPushButton;
m_cmbxDisks = new QComboBox;

@ -154,6 +154,7 @@ void PageUsers::addUser()
{
m_lstUserInfo << userInfo;
m_lstUsers->addItem( userInfo.name );
updateConfig();
}
else
{
@ -185,6 +186,7 @@ void PageUsers::delUser()
m_lstUsers->addItem("guest");
}
}
updateConfig();
}
}
@ -213,6 +215,8 @@ void PageUsers::modifyUser()
delete m_lstUsers->takeItem(index);
m_lstUsers->insertItem(index, userInfo.name);
m_lstUserInfo.replace(index, userInfo);
updateConfig();
}
else
{
@ -261,9 +265,14 @@ int PageUsers::findUserName( const UserInfo& userInfo )
bool PageUsers::validate()
{
CalculateConfig* clConf = CalculateConfig::instance();
CalculateConfig::instance()->setValue("gui_root_psw", m_edRootPsw->text());
return true;
}
clConf->setValue("gui_root_psw", m_edRootPsw->text());
void PageUsers::updateConfig()
{
CalculateConfig* clConf = CalculateConfig::instance();
QStringList users;
QStringList passwords;
@ -276,6 +285,6 @@ bool PageUsers::validate()
clConf->setValue("gui_users", users);
clConf->setValue("gui_passwds", passwords);
return true;
clConf->showInstallParameters();
}

@ -31,7 +31,8 @@ private slots:
void checkPasswords();
private:
int findUserName(const UserInfo& userInfo);
int findUserName(const UserInfo& userInfo);
void updateConfig();
private:
QLabel* m_labRoot;

@ -56,7 +56,7 @@ void PageWelcome::retranslateUi()
"<html>" +
tr(
"<p>Welcome to Calculate Linux.</p>"
"<p><a href='http://calculate-linux.org'>http://calculate-linux.org</a></p>"
"<p><a href='http://www.calculate-linux.org'>http://www.calculate-linux.org</a></p>"
)
+ "</html>"
);

@ -164,10 +164,10 @@ void SystemInstaller::setupInstallerPages()
PageWelcome* pageLanguage( new PageWelcome );
connect( pageLanguage, SIGNAL(changeLanguage(QString)), this, SLOT(changeLanguage(QString)) );
m_PageManager->addPage(pageLanguage);
/*
PageLicense* pageLicense( new PageLicense );
m_PageManager->addPage(pageLicense);
*/
PagePartitioning* pagePartitoning( new PagePartitioning );
connect( pagePartitoning, SIGNAL(manualyPartitioning(QString)), this, SLOT(doPartitioning(QString)) );
m_PageManager->addPage(pagePartitoning);
@ -282,6 +282,7 @@ void SystemInstaller::doPartitioning(QString disk)
void SystemInstaller::completePartitioning()
{
delete m_PageCfdisk;
CalculateConfig::instance()->getNewPartitioning();
m_PageManager->showPrevious();
}

@ -76,6 +76,5 @@ private:
QScopedPointer<PageManager> m_PageManager;
QString m_CurrentLanguage;
InstallerSettings m_InstallSettings;
};

@ -1,17 +1 @@
#include "tools.h"
#include <QFile>
#include <QTextStream>
QString LoadTextFile(const QString& name)
{
QString result;
QFile inputFile(name);
if ( inputFile.open(QIODevice::ReadOnly | QIODevice::Text) )
{
result = QTextStream(&inputFile).readAll();
inputFile.close();
}
return result;
}

@ -1,25 +1,2 @@
#pragma once
#include <QString>
struct InstallerSettings
{
QString disk;
QString host;
QString language;
QString timezone;
bool erase;
QString fs;
bool composite;
bool expert;
bool builder;
bool mbr;
bool uuid;
QString disktype;
QString videodrv;
QString videores;
};
QString LoadTextFile(const QString& name);

@ -3,7 +3,10 @@
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QLayout>
#include <QBoxLayout>
#include <QRegExp>
#include <QRegExpValidator>
#include <QMessageBox>
@ -40,8 +43,11 @@ UserInfoDialog::~UserInfoDialog()
void UserInfoDialog::setupUi()
{
QRegExp rxName("[a-z][0-9a-z_\\-]{0,63}");
m_labUserName = new QLabel( tr("User name:") );
m_edUserName = new QLineEdit;
m_edUserName->setValidator( new QRegExpValidator(rxName, this) );
QHBoxLayout* hbox_0 = new QHBoxLayout;
hbox_0->addWidget(m_labUserName);
@ -107,14 +113,21 @@ void UserInfoDialog::checkPasswords()
void UserInfoDialog::preAccept()
{
if ( m_edUserName->text().isEmpty() )
QString name = m_edUserName->text();
if ( name.isEmpty() )
{
QMessageBox::critical(this, tr("Error"), tr("User name is empty") );
m_edUserName->setFocus();
return;
}
if ( name == "root" )
{
QMessageBox::critical(this, tr("Error"), tr("User root can't added") );
m_edUserName->setFocus();
return;
}
m_UserInfo.name = m_edUserName->text();
m_UserInfo.name = name;
m_UserInfo.psw = m_edPsw->text();
accept();

@ -237,7 +237,7 @@
</message>
<message>
<source>Eta: unknown</source>
<translation>Eta: неизвестно</translation>
<translation type="obsolete">Eta: неизвестно</translation>
</message>
<message>
<source>Eta: %1</source>
@ -245,7 +245,11 @@
</message>
<message>
<source>Eta: 0:00:00</source>
<translation>Eta: 0:00:00</translation>
<translation type="obsolete">Eta: 0:00:00</translation>
</message>
<message>
<source>Error. Additional information in /var/log/calculate/cl-install-gui-err.log</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -330,6 +334,18 @@ Java 2 (SUN) Runtime Environment, Standard Edition&lt;br&gt;
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the desired mount points. For continue must be set mount point for /</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select mount point for /</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PagePartitioning</name>
@ -436,6 +452,19 @@ Java 2 (SUN) Runtime Environment, Standard Edition&lt;br&gt;
<source>Passwords do not match</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add user</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove selected user</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Added users.
For modifying user - double click it.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageWelcome</name>
@ -449,12 +478,16 @@ Java 2 (SUN) Runtime Environment, Standard Edition&lt;br&gt;
</message>
<message>
<source>&lt;p&gt;Welcome to Calculate Linux.&lt;/p&gt;&lt;p&gt;&lt;a href=&apos;http://calculate-linux.org&apos;&gt;http://calculate-linux.org&lt;/a&gt;&lt;/p&gt;</source>
<translation type="unfinished">&lt;p&gt;Добре дошли в Calculate Linux.&lt;/p&gt;&lt;p&gt;&lt;a href=&apos;http://calculate-linux.ru&apos;&gt;http://calculate-linux.ru&lt;/a&gt;&lt;/p&gt;</translation>
<translation type="obsolete">&lt;p&gt;Добре дошли в Calculate Linux.&lt;/p&gt;&lt;p&gt;&lt;a href=&apos;http://calculate-linux.ru&apos;&gt;http://calculate-linux.ru&lt;/a&gt;&lt;/p&gt;</translation>
</message>
<message>
<source>Please choose the language which should be used for this application.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;p&gt;Welcome to Calculate Linux.&lt;/p&gt;&lt;p&gt;&lt;a href=&apos;http://www.calculate-linux.org&apos;&gt;http://www.calculate-linux.org&lt;/a&gt;&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
@ -599,5 +632,9 @@ Java 2 (SUN) Runtime Environment, Standard Edition&lt;br&gt;
<source>User name is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>User root can&apos;t added</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -24,27 +24,27 @@
<name>MountPointDialog</name>
<message>
<source>Device: </source>
<translation type="unfinished">Устройство: </translation>
<translation>Устройство: </translation>
</message>
<message>
<source>Mount point: </source>
<translation type="unfinished">Точка монтирования: </translation>
<translation>Точка монтирования: </translation>
</message>
<message>
<source>Format partition</source>
<translation type="unfinished">Форматировать раздел</translation>
<translation>Форматировать раздел</translation>
</message>
<message>
<source>File system: </source>
<translation type="unfinished">Файловая система:</translation>
<translation>Файловая система:</translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">ОК</translation>
<translation>ОК</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Отмена</translation>
<translation>Отмена</translation>
</message>
</context>
<context>
@ -178,43 +178,43 @@
</message>
<message>
<source>Domain: </source>
<translation type="unfinished">Домен: </translation>
<translation>Домен: </translation>
</message>
<message>
<source>Device for install Grub:</source>
<translation type="unfinished">Устройства для установки Grub: </translation>
<translation>Устройства для установки Grub: </translation>
</message>
<message>
<source>Make options (MAKEOPTS):</source>
<translation type="unfinished">Опции сборки (MAKEOPTS):</translation>
<translation>Опции сборки (MAKEOPTS):</translation>
</message>
<message>
<source>Proxy server:</source>
<translation type="unfinished">Proxy сервер:</translation>
<translation>Proxy сервер:</translation>
</message>
<message>
<source>NTP server:</source>
<translation type="unfinished">NTP сервер:</translation>
<translation>NTP сервер:</translation>
</message>
<message>
<source>Clock type:</source>
<translation type="unfinished">Тип часов:</translation>
<translation>Тип часов:</translation>
</message>
<message>
<source>Local</source>
<translation type="unfinished">Локальное время</translation>
<translation>Локальное время</translation>
</message>
<message>
<source>UTC</source>
<translation type="unfinished">UTC</translation>
<translation>UTC</translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished">Предупреждение</translation>
<translation>Предупреждение</translation>
</message>
<message>
<source>Hostname is empty.</source>
<translation type="unfinished">Имя компьютера пустое</translation>
<translation>Имя компьютера пустое</translation>
</message>
</context>
<context>
@ -225,7 +225,7 @@
</message>
<message>
<source>&lt;h4&gt;Congratulation!&lt;/h4&gt;&lt;p&gt;Installation complete.Press Finish for exit.&lt;/p&gt;</source>
<translation type="unfinished">&lt;h4&gt;Поздравляем!&lt;/h4&gt;&lt;p&gt;Установка успешно завершена. Нажмите &quot;Закончить&quot; для выхода.&lt;/p&gt;</translation>
<translation>&lt;h4&gt;Поздравляем!&lt;/h4&gt;&lt;p&gt;Установка успешно завершена. Нажмите &quot;Закончить&quot; для выхода.&lt;/p&gt;</translation>
</message>
</context>
<context>
@ -236,7 +236,7 @@
</message>
<message>
<source>Eta: unknown</source>
<translation>Eta: неизвестно</translation>
<translation type="obsolete">Eta: неизвестно</translation>
</message>
<message>
<source>Eta: %1</source>
@ -244,7 +244,11 @@
</message>
<message>
<source>Eta: 0:00:00</source>
<translation>Eta: 0:00:00</translation>
<translation type="obsolete">Eta: 0:00:00</translation>
</message>
<message>
<source>Error. Additional information in /var/log/calculate/cl-install-gui-err.log</source>
<translation></translation>
</message>
</context>
<context>
@ -313,58 +317,70 @@ Java 2 (SUN) Runtime Environment, Standard Edition&lt;br&gt;
<name>PageMountPoints</name>
<message>
<source>Mount points</source>
<translation type="unfinished">Точки монтирования</translation>
<translation>Точки монтирования</translation>
</message>
<message>
<source>Partition</source>
<translation type="unfinished">Раздел</translation>
<translation>Раздел</translation>
</message>
<message>
<source>Label</source>
<translation type="unfinished">Метка</translation>
<translation>Метка</translation>
</message>
<message>
<source>Size</source>
<translation type="unfinished">Размер</translation>
<translation>Размер</translation>
</message>
<message>
<source>Mount point</source>
<translation type="unfinished">Точка монтирования:</translation>
<translation>Точка монтирования:</translation>
</message>
<message>
<source>File system</source>
<translation type="unfinished">Файловая система</translation>
<translation>Файловая система</translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
<translation>Форматирование</translation>
</message>
<message>
<source>Select mount points:</source>
<translation type="unfinished">Выберите точку монтирования:</translation>
<translation>Выберите точку монтирования:</translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished">Информация</translation>
<translation>Информация</translation>
</message>
<message>
<source>You select auto partitioning. Press &quot;Next&quot; to continue.</source>
<translation type="unfinished">Вы выбрали автоматическую разметку диска. Нажмите &quot;Вперед&quot; для продолжения.</translation>
<translation>Вы выбрали автоматическую разметку диска. Нажмите &quot;Вперед&quot; для продолжения.</translation>
</message>
<message>
<source>YES</source>
<translation type="unfinished">ДА</translation>
<translation>ДА</translation>
</message>
<message>
<source>no</source>
<translation type="unfinished">нет</translation>
<translation>нет</translation>
</message>
<message>
<source>Set the desired mount points. For continue must be set mount point for /</source>
<translation>Установите желаемые точки монтирования. Для продолжения должны быть установленна точка монтирования корневого раздела / .</translation>
</message>
<message>
<source>Warning</source>
<translation>Предупреждение</translation>
</message>
<message>
<source>Select mount point for /</source>
<translation>Выберите раздел для точки монтирования /</translation>
</message>
</context>
<context>
<name>PagePartitioning</name>
<message>
<source>Partitioning</source>
<translation type="unfinished">Разметка</translation>
<translation>Разметка</translation>
</message>
<message>
<source>Disk for install: </source>
@ -408,62 +424,76 @@ Java 2 (SUN) Runtime Environment, Standard Edition&lt;br&gt;
</message>
<message>
<source>Use existing partitions</source>
<translation type="unfinished">Использовать существующие разделы</translation>
<translation>Использовать существующие разделы</translation>
</message>
<message>
<source>Use automatically partitioning</source>
<translation type="unfinished">Использовать автоматическую разметку диска</translation>
<translation>Использовать автоматическую разметку диска</translation>
</message>
<message>
<source>Manually partitioning</source>
<translation type="unfinished">Ручная разметка диска</translation>
<translation>Ручная разметка диска</translation>
</message>
</context>
<context>
<name>PageUsers</name>
<message>
<source>Users</source>
<translation type="unfinished">Пользователи</translation>
<translation>Пользователи</translation>
</message>
<message>
<source>Root password:</source>
<translation type="unfinished">Пароль суперпользователя</translation>
<translation>Пароль суперпользователя</translation>
</message>
<message>
<source>Password</source>
<translation type="unfinished">Пароль</translation>
<translation>Пароль</translation>
</message>
<message>
<source>Confirm Password</source>
<translation type="unfinished">Подтверждение пароля</translation>
<translation>Подтверждение пароля</translation>
</message>
<message>
<source>Create users:</source>
<translation type="unfinished">Создать пользователей:</translation>
<translation>Создать пользователей:</translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished">Ошибка</translation>
<translation>Ошибка</translation>
</message>
<message>
<source>User %1 already exists.</source>
<translation type="unfinished">Пользователь %1 уже существует.</translation>
<translation>Пользователь %1 уже существует.</translation>
</message>
<message>
<source>User guest can&apos;t be deleted.</source>
<translation type="unfinished">Пользователь guest не может быть удален.</translation>
<translation>Пользователь guest не может быть удален.</translation>
</message>
<message>
<source>User guest can&apos;t be modified.</source>
<translation type="unfinished">Пользователь guest не может быть изменен.</translation>
<translation>Пользователь guest не может быть изменен.</translation>
</message>
<message>
<source>Passwords match</source>
<translation type="unfinished">Пароли совпадают</translation>
<translation>Пароли совпадают</translation>
</message>
<message>
<source>Passwords do not match</source>
<translation type="unfinished">Пароли не совпадают</translation>
<translation>Пароли не совпадают</translation>
</message>
<message>
<source>Add user</source>
<translation>Добавить пользователя</translation>
</message>
<message>
<source>Remove selected user</source>
<translation>Удалить выбраного пользователя</translation>
</message>
<message>
<source>Added users.
For modifying user - double click it.</source>
<translation>Добавление пользователей.
Для редактирования существующего пользователя используйте двойной клик на нем.</translation>
</message>
</context>
<context>
@ -478,11 +508,15 @@ Java 2 (SUN) Runtime Environment, Standard Edition&lt;br&gt;
</message>
<message>
<source>&lt;p&gt;Welcome to Calculate Linux.&lt;/p&gt;&lt;p&gt;&lt;a href=&apos;http://calculate-linux.org&apos;&gt;http://calculate-linux.org&lt;/a&gt;&lt;/p&gt;</source>
<translation>&lt;p&gt;Добро пожаловать в Calculate Linux.&lt;/p&gt;&lt;p&gt;&lt;a href=&apos;http://calculate-linux.ru&apos;&gt;http://calculate-linux.ru&lt;/a&gt;&lt;/p&gt;</translation>
<translation type="obsolete">&lt;p&gt;Добро пожаловать в Calculate Linux.&lt;/p&gt;&lt;p&gt;&lt;a href=&apos;http://calculate-linux.ru&apos;&gt;http://calculate-linux.ru&lt;/a&gt;&lt;/p&gt;</translation>
</message>
<message>
<source>Please choose the language which should be used for this application.</source>
<translation type="unfinished">Пожалуйста, выберите язык, который будет использоваться этим приложением.</translation>
<translation>Пожалуйста, выберите язык, который будет использоваться этим приложением.</translation>
</message>
<message>
<source>&lt;p&gt;Welcome to Calculate Linux.&lt;/p&gt;&lt;p&gt;&lt;a href=&apos;http://www.calculate-linux.org&apos;&gt;http://www.calculate-linux.org&lt;/a&gt;&lt;/p&gt;</source>
<translation></translation>
</message>
</context>
<context>
@ -575,58 +609,62 @@ Java 2 (SUN) Runtime Environment, Standard Edition&lt;br&gt;
</message>
<message>
<source>Critical error</source>
<translation type="unfinished">Критическая ошибка</translation>
<translation>Критическая ошибка</translation>
</message>
<message>
<source>Failed to launch &apos;cl-install&apos;.</source>
<translation type="unfinished">Не могу запустить &apos;cl-install&apos;</translation>
<translation>Не могу запустить &apos;cl-install&apos;</translation>
</message>
</context>
<context>
<name>UserInfoDialog</name>
<message>
<source>Add user</source>
<translation type="unfinished">Добавить пользователя</translation>
<translation>Добавить пользователя</translation>
</message>
<message>
<source>Modify user</source>
<translation type="unfinished">Изменить пользователя</translation>
<translation>Изменить пользователя</translation>
</message>
<message>
<source>User name:</source>
<translation type="unfinished">Имя пользователя:</translation>
<translation>Имя пользователя:</translation>
</message>
<message>
<source>Password</source>
<translation type="unfinished">Пароль</translation>
<translation>Пароль</translation>
</message>
<message>
<source>Confirm Password</source>
<translation type="unfinished">Подтверждение пароля</translation>
<translation>Подтверждение пароля</translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">ОК</translation>
<translation>ОК</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Отмена</translation>
<translation>Отмена</translation>
</message>
<message>
<source>Passwords match</source>
<translation type="unfinished">Пароли совпадают</translation>
<translation>Пароли совпадают</translation>
</message>
<message>
<source>Passwords do not match</source>
<translation type="unfinished">Пароли не совпадают</translation>
<translation>Пароли не совпадают</translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished">Ошибка</translation>
<translation>Ошибка</translation>
</message>
<message>
<source>User name is empty</source>
<translation type="unfinished">Имя пользователя не задано</translation>
<translation>Имя пользователя не задано</translation>
</message>
<message>
<source>User root can&apos;t added</source>
<translation>Пользователь root не может быть добавлен.</translation>
</message>
</context>
</TS>

Loading…
Cancel
Save