From d3440cbdac0a0c18eefcf389d418ac634887557f Mon Sep 17 00:00:00 2001 From: Ivan Loskutov Date: Thu, 26 Aug 2010 00:51:25 +0400 Subject: [PATCH] Many bug fixed. Added desktop file. Temporary disabled license page. --- CMakeLists.txt | 32 ++++++ resources/cl-install-gui.desktop | 9 ++ resources/cl-install-gui.png | Bin 0 -> 5485 bytes src/calculateconfig.cpp | 76 +++++++++++--- src/calculateconfig.h | 3 + src/main.cpp | 2 +- src/mountpointdialog.cpp | 13 +++ src/pagecfdisk.cpp | 1 + src/pageconfiguration.cpp | 10 ++ src/pageinstall.cpp | 3 + src/pagemountpoints.cpp | 51 ++++++++-- src/pagemountpoints.h | 1 + src/pagepartitioning.cpp | 1 + src/pageusers.cpp | 15 ++- src/pageusers.h | 3 +- src/pagewelcome.cpp | 2 +- src/systeminstaller.cpp | 5 +- src/systeminstaller.h | 1 - src/tools.cpp | 16 --- src/tools.h | 23 ----- src/userinfodialog.cpp | 19 +++- translations/cl-install-gui_bg.ts | 43 +++++++- translations/cl-install-gui_ru.ts | 160 ++++++++++++++++++------------ 23 files changed, 354 insertions(+), 135 deletions(-) create mode 100644 resources/cl-install-gui.desktop create mode 100644 resources/cl-install-gui.png diff --git a/CMakeLists.txt b/CMakeLists.txt index f006794..825c3c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 diff --git a/resources/cl-install-gui.desktop b/resources/cl-install-gui.desktop new file mode 100644 index 0000000..841d228 --- /dev/null +++ b/resources/cl-install-gui.desktop @@ -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 \ No newline at end of file diff --git a/resources/cl-install-gui.png b/resources/cl-install-gui.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca80e67d1ac198009224155c0edac38862944f3 GIT binary patch literal 5485 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 lasD?0eDVJz@Q)X#zh0dF #include #include +#include +#include #include #include + 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" ) { diff --git a/src/pagecfdisk.cpp b/src/pagecfdisk.cpp index 63cbaea..7400d78 100644 --- a/src/pagecfdisk.cpp +++ b/src/pagecfdisk.cpp @@ -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; diff --git a/src/pageconfiguration.cpp b/src/pageconfiguration.cpp index d1a2c9d..20f338b 100644 --- a/src/pageconfiguration.cpp +++ b/src/pageconfiguration.cpp @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include @@ -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); diff --git a/src/pageinstall.cpp b/src/pageinstall.cpp index 696260a..c25f5e2 100644 --- a/src/pageinstall.cpp +++ b/src/pageinstall.cpp @@ -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; } diff --git a/src/pagemountpoints.cpp b/src/pagemountpoints.cpp index 2252d81..56dd71c 100644 --- a/src/pagemountpoints.cpp +++ b/src/pagemountpoints.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include @@ -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); diff --git a/src/pagemountpoints.h b/src/pagemountpoints.h index 982f25f..0f2350a 100644 --- a/src/pagemountpoints.h +++ b/src/pagemountpoints.h @@ -44,6 +44,7 @@ private: private: QLabel* m_labMountPoints; QTreeWidget* m_trwMountPoints; + QLabel* m_labMountPointHelp; MountPointsTree m_treeMountPoints; }; \ No newline at end of file diff --git a/src/pagepartitioning.cpp b/src/pagepartitioning.cpp index 4c622ae..603ec32 100644 --- a/src/pagepartitioning.cpp +++ b/src/pagepartitioning.cpp @@ -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; diff --git a/src/pageusers.cpp b/src/pageusers.cpp index cd53b61..b5d40fb 100644 --- a/src/pageusers.cpp +++ b/src/pageusers.cpp @@ -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(); } diff --git a/src/pageusers.h b/src/pageusers.h index a82f1e1..f7e1e8d 100644 --- a/src/pageusers.h +++ b/src/pageusers.h @@ -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; diff --git a/src/pagewelcome.cpp b/src/pagewelcome.cpp index 2e33f84..4716c67 100644 --- a/src/pagewelcome.cpp +++ b/src/pagewelcome.cpp @@ -56,7 +56,7 @@ void PageWelcome::retranslateUi() "" + tr( "

Welcome to Calculate Linux.

" - "

http://calculate-linux.org

" + "

http://www.calculate-linux.org

" ) + "" ); diff --git a/src/systeminstaller.cpp b/src/systeminstaller.cpp index da1f3d4..a231b43 100644 --- a/src/systeminstaller.cpp +++ b/src/systeminstaller.cpp @@ -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(); } diff --git a/src/systeminstaller.h b/src/systeminstaller.h index b3806d0..b0365fd 100644 --- a/src/systeminstaller.h +++ b/src/systeminstaller.h @@ -76,6 +76,5 @@ private: QScopedPointer m_PageManager; QString m_CurrentLanguage; - InstallerSettings m_InstallSettings; }; diff --git a/src/tools.cpp b/src/tools.cpp index 6966bdd..2fa7e97 100644 --- a/src/tools.cpp +++ b/src/tools.cpp @@ -1,17 +1 @@ #include "tools.h" - -#include -#include - -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; -} diff --git a/src/tools.h b/src/tools.h index 1265b4f..3f59c93 100644 --- a/src/tools.h +++ b/src/tools.h @@ -1,25 +1,2 @@ #pragma once -#include - -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); diff --git a/src/userinfodialog.cpp b/src/userinfodialog.cpp index b9864f6..be7775f 100644 --- a/src/userinfodialog.cpp +++ b/src/userinfodialog.cpp @@ -3,7 +3,10 @@ #include #include #include -#include +#include + +#include +#include #include @@ -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(); diff --git a/translations/cl-install-gui_bg.ts b/translations/cl-install-gui_bg.ts index ed723ec..cb10a34 100644 --- a/translations/cl-install-gui_bg.ts +++ b/translations/cl-install-gui_bg.ts @@ -237,7 +237,7 @@ Eta: unknown - Eta: неизвестно + Eta: неизвестно Eta: %1 @@ -245,7 +245,11 @@ Eta: 0:00:00 - Eta: 0:00:00 + Eta: 0:00:00 + + + Error. Additional information in /var/log/calculate/cl-install-gui-err.log + @@ -330,6 +334,18 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> no + + Set the desired mount points. For continue must be set mount point for / + + + + Warning + + + + Select mount point for / + + PagePartitioning @@ -436,6 +452,19 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> Passwords do not match + + Add user + + + + Remove selected user + + + + Added users. +For modifying user - double click it. + + PageWelcome @@ -449,12 +478,16 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> <p>Welcome to Calculate Linux.</p><p><a href='http://calculate-linux.org'>http://calculate-linux.org</a></p> - <p>Добре дошли в Calculate Linux.</p><p><a href='http://calculate-linux.ru'>http://calculate-linux.ru</a></p> + <p>Добре дошли в Calculate Linux.</p><p><a href='http://calculate-linux.ru'>http://calculate-linux.ru</a></p> Please choose the language which should be used for this application. + + <p>Welcome to Calculate Linux.</p><p><a href='http://www.calculate-linux.org'>http://www.calculate-linux.org</a></p> + + QObject @@ -599,5 +632,9 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> User name is empty + + User root can't added + + diff --git a/translations/cl-install-gui_ru.ts b/translations/cl-install-gui_ru.ts index f42786e..4524210 100644 --- a/translations/cl-install-gui_ru.ts +++ b/translations/cl-install-gui_ru.ts @@ -24,27 +24,27 @@ MountPointDialog Device: - Устройство: + Устройство: Mount point: - Точка монтирования: + Точка монтирования: Format partition - Форматировать раздел + Форматировать раздел File system: - Файловая система: + Файловая система: OK - ОК + ОК Cancel - Отмена + Отмена @@ -178,43 +178,43 @@ Domain: - Домен: + Домен: Device for install Grub: - Устройства для установки Grub: + Устройства для установки Grub: Make options (MAKEOPTS): - Опции сборки (MAKEOPTS): + Опции сборки (MAKEOPTS): Proxy server: - Proxy сервер: + Proxy сервер: NTP server: - NTP сервер: + NTP сервер: Clock type: - Тип часов: + Тип часов: Local - Локальное время + Локальное время UTC - UTC + UTC Warning - Предупреждение + Предупреждение Hostname is empty. - Имя компьютера пустое + Имя компьютера пустое @@ -225,7 +225,7 @@ <h4>Congratulation!</h4><p>Installation complete.Press Finish for exit.</p> - <h4>Поздравляем!</h4><p>Установка успешно завершена. Нажмите "Закончить" для выхода.</p> + <h4>Поздравляем!</h4><p>Установка успешно завершена. Нажмите "Закончить" для выхода.</p> @@ -236,7 +236,7 @@ Eta: unknown - Eta: неизвестно + Eta: неизвестно Eta: %1 @@ -244,7 +244,11 @@ Eta: 0:00:00 - Eta: 0:00:00 + Eta: 0:00:00 + + + Error. Additional information in /var/log/calculate/cl-install-gui-err.log + @@ -313,58 +317,70 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> PageMountPoints Mount points - Точки монтирования + Точки монтирования Partition - Раздел + Раздел Label - Метка + Метка Size - Размер + Размер Mount point - Точка монтирования: + Точка монтирования: File system - Файловая система + Файловая система Format - + Форматирование Select mount points: - Выберите точку монтирования: + Выберите точку монтирования: Information - Информация + Информация You select auto partitioning. Press "Next" to continue. - Вы выбрали автоматическую разметку диска. Нажмите "Вперед" для продолжения. + Вы выбрали автоматическую разметку диска. Нажмите "Вперед" для продолжения. YES - ДА + ДА no - нет + нет + + + Set the desired mount points. For continue must be set mount point for / + Установите желаемые точки монтирования. Для продолжения должны быть установленна точка монтирования корневого раздела / . + + + Warning + Предупреждение + + + Select mount point for / + Выберите раздел для точки монтирования / PagePartitioning Partitioning - Разметка + Разметка Disk for install: @@ -408,62 +424,76 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> Use existing partitions - Использовать существующие разделы + Использовать существующие разделы Use automatically partitioning - Использовать автоматическую разметку диска + Использовать автоматическую разметку диска Manually partitioning - Ручная разметка диска + Ручная разметка диска PageUsers Users - Пользователи + Пользователи Root password: - Пароль суперпользователя + Пароль суперпользователя Password - Пароль + Пароль Confirm Password - Подтверждение пароля + Подтверждение пароля Create users: - Создать пользователей: + Создать пользователей: Error - Ошибка + Ошибка User %1 already exists. - Пользователь %1 уже существует. + Пользователь %1 уже существует. User guest can't be deleted. - Пользователь guest не может быть удален. + Пользователь guest не может быть удален. User guest can't be modified. - Пользователь guest не может быть изменен. + Пользователь guest не может быть изменен. Passwords match - Пароли совпадают + Пароли совпадают Passwords do not match - Пароли не совпадают + Пароли не совпадают + + + Add user + Добавить пользователя + + + Remove selected user + Удалить выбраного пользователя + + + Added users. +For modifying user - double click it. + Добавление пользователей. +Для редактирования существующего пользователя используйте двойной клик на нем. @@ -478,11 +508,15 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> <p>Welcome to Calculate Linux.</p><p><a href='http://calculate-linux.org'>http://calculate-linux.org</a></p> - <p>Добро пожаловать в Calculate Linux.</p><p><a href='http://calculate-linux.ru'>http://calculate-linux.ru</a></p> + <p>Добро пожаловать в Calculate Linux.</p><p><a href='http://calculate-linux.ru'>http://calculate-linux.ru</a></p> Please choose the language which should be used for this application. - Пожалуйста, выберите язык, который будет использоваться этим приложением. + Пожалуйста, выберите язык, который будет использоваться этим приложением. + + + <p>Welcome to Calculate Linux.</p><p><a href='http://www.calculate-linux.org'>http://www.calculate-linux.org</a></p> + @@ -575,58 +609,62 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> Critical error - Критическая ошибка + Критическая ошибка Failed to launch 'cl-install'. - Не могу запустить 'cl-install' + Не могу запустить 'cl-install' UserInfoDialog Add user - Добавить пользователя + Добавить пользователя Modify user - Изменить пользователя + Изменить пользователя User name: - Имя пользователя: + Имя пользователя: Password - Пароль + Пароль Confirm Password - Подтверждение пароля + Подтверждение пароля OK - ОК + ОК Cancel - Отмена + Отмена Passwords match - Пароли совпадают + Пароли совпадают Passwords do not match - Пароли не совпадают + Пароли не совпадают Error - Ошибка + Ошибка User name is empty - Имя пользователя не задано + Имя пользователя не задано + + + User root can't added + Пользователь root не может быть добавлен.