* Synced debian foo with experimental * Bumped compat to 10 * Removed --parallel from rules, standard compat 10 * Bumped minimum version debhelper (>= 10) * Bumped minimum version liblxqt0-dev (>= 0.11.0) * Bumped minimum version libqt5xdg-dev (>= 2.0.0) * Added build dependency libqt5xdgiconloader-dev (>= 2.0.0) * Added build dependency libqt5svg5-dev * Removed build dependency liboobs-1-dev * Added recommends lxqt-admin-l10n * Added a lintian-override for lxqt-admin-user-helper * Exported LC_ALL=C.UTF-8 - define language settings for reproducible builds * Fixed VCS-Fields, use https * Bumped copyright years * Added hardening to rules * Added translation control to rules * Set CMAKE_BUILD_TYPE=RelWithDebInfo * Added README.md to docsubuntu/cosmic debian/0.11.0-2
parent
0f3c4fbd41
commit
f71380240d
@ -1 +1,3 @@
|
|||||||
build
|
build
|
||||||
|
lxqt-admin.kdev4
|
||||||
|
*/translations/lxqt-admin
|
||||||
|
@ -0,0 +1,99 @@
|
|||||||
|
|
||||||
|
lxqt-admin-0.11.0 / 2016-09-24
|
||||||
|
==============================
|
||||||
|
|
||||||
|
* user: Add failure message box
|
||||||
|
* user: Provide icon name in polkit policy
|
||||||
|
* Update README.md
|
||||||
|
* Add Catalan translations
|
||||||
|
* Add copyright headers
|
||||||
|
* Add Arabic Translations for Desktop Files
|
||||||
|
* lxqt-admin-user: Fix a change password crash
|
||||||
|
* lxqt-admin-user: Makes the Refresh toolbar button visible
|
||||||
|
* lxqt-admin-time: Adjust dialog size on startup
|
||||||
|
* Update openSUSE section in README
|
||||||
|
* Update README.md
|
||||||
|
* Support NTP and Local RTC settings with timedated provided by systemd. Code cleanup.
|
||||||
|
* Replace calling timedatectl command with calling its dbus interface instead and provide proper error messages.
|
||||||
|
* Use dbus interface of timedate systemd daemon instead of timedatectl command.
|
||||||
|
* Add the ability to update group members.
|
||||||
|
* Support changing of user password.
|
||||||
|
* Show group members.
|
||||||
|
* Try to use a helper script and polkit policy configurations to do user admin.
|
||||||
|
* Remove liboobs dependency from lxqt-admin-time and use timedatectl to handle all time configurations.
|
||||||
|
* Try to handle timezones with timedatectl provided by systemd instead of liboobs.
|
||||||
|
* Add groupmod
|
||||||
|
* Try to remove liboobs dependency.
|
||||||
|
* Add README.md
|
||||||
|
* build: Use external translations
|
||||||
|
* ts-files removal (#32)
|
||||||
|
* Bump years to 2016
|
||||||
|
* Don't track IDE settings
|
||||||
|
* Italian translation update
|
||||||
|
* Russian translations update Remove duplicated ru_RU translations
|
||||||
|
* updated: *_hu.ts
|
||||||
|
|
||||||
|
0.10.0 / 2015-10-31
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix license file
|
||||||
|
* Add Greek (el) translation
|
||||||
|
* Rename LxQt to LXQt everywhere
|
||||||
|
* Removed invisible dialog titles. Updated template. Added german translation.
|
||||||
|
* Handles CMake policy CMP0063
|
||||||
|
* Initialize in the same order of declaration in the class definition
|
||||||
|
* Use the LXQtCompilerSettings CMake module
|
||||||
|
* Updates the build system to use the Targets infrastructure
|
||||||
|
* Remove trailing whitespaces
|
||||||
|
* Create lxqt-admin-time_hr.ts
|
||||||
|
* Create lxqt-admin-user_hr.ts
|
||||||
|
* Hungarian translations added
|
||||||
|
* Create lxqt-admin-time_it.desktop
|
||||||
|
* Create lxqt-admin-user_it.desktop
|
||||||
|
* Initial Polish translation
|
||||||
|
* Create lxqt-admin-user_it.desktop
|
||||||
|
* lxqt-admin-user: set minimum default GID value for new group to 1000
|
||||||
|
* Initial Polish translation
|
||||||
|
|
||||||
|
0.9.0 / 2015-01-25
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Create lxqt-admin-user_it.desktop
|
||||||
|
* Create lxqt-admin-user_it.ts
|
||||||
|
* Create lxqt-admin-time_it.ts
|
||||||
|
* Add Portuguese language
|
||||||
|
* Added Japanese translation
|
||||||
|
* Unify naming for a unique lxqt. No more suffixes
|
||||||
|
* Update Russian translation
|
||||||
|
* Updates translations sources
|
||||||
|
* Whole GUI of time/date setup has been rewritten from scratch the app has now style of LXQT config dialogs based on LxQt::ConfigDialog the time and date setting is divided into one configuration widget and timezone selection is divided into second config widget
|
||||||
|
* Add icon to config window
|
||||||
|
* Add .gitignore
|
||||||
|
* Make use of QApplication::exec()
|
||||||
|
* Use the new LxQt::SingleApplication
|
||||||
|
* CMakeLists.txt maintenance.
|
||||||
|
* Update translation a little more
|
||||||
|
* Add Russian translation
|
||||||
|
* updates Translations
|
||||||
|
* Updates the translations infrastructure
|
||||||
|
* Drop Qt4 support in CMakeLists.txt in subfolders
|
||||||
|
* Drop Qt4 support in code
|
||||||
|
* Clean up CMakeLists.txt and drop Qt 4
|
||||||
|
|
||||||
|
0.8.0 / 2014-06-21
|
||||||
|
==================
|
||||||
|
|
||||||
|
* simplify Qt version switching
|
||||||
|
* Support build with Qt5.
|
||||||
|
* Use new LXQt header files.
|
||||||
|
* Update copyright notice.
|
||||||
|
* Support changing group members.
|
||||||
|
* Support adding/removing/editing users and groups.
|
||||||
|
* Redesign the UI.
|
||||||
|
* Add a group configuration dialog.
|
||||||
|
* Improve user dialog.
|
||||||
|
* Add a user config dialog.
|
||||||
|
* Update time every seconds unless it's changed manually by the user.
|
||||||
|
* Add basic skeleton for lxqt-admin-user tool.
|
||||||
|
* Add a very basic time config tool, lxqt-admin-time.
|
||||||
|
* Initial commit.
|
@ -0,0 +1,67 @@
|
|||||||
|
# lxqt-admin
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This repository is providing two GUI tools to adjust settings of the operating system LXQt is running on.
|
||||||
|
|
||||||
|
Both are using [polkit](https://www.freedesktop.org/wiki/Software/polkit/) to handle permissions.
|
||||||
|
In contrast to the specific backends described below earlier versions of lxqt-admin were relying on [system-tools-backends](http://system-tools-backends.freedesktop.org) and their wrapper [liboobs](https://github.com/GNOME/liboobs). These were replaced as both go unmaintained for years and were hence dropped from many distributions heavily restricting the usage of lxqt-admin. As long as they can be built it should still be possible to compile lxqt-admin release ≤ 0.10 against them in order to make use of it on platforms lacking systemd like BSD.
|
||||||
|
|
||||||
|
### Time and date configuration
|
||||||
|
|
||||||
|
Adjusts time and date. Binary is `lxqt-admin-time`.
|
||||||
|
|
||||||
|
![lxqt-admin-time](lxqt-admin-time.png)
|
||||||
|
|
||||||
|
It is using `systemd-timedated` as backend which is accessed by its D-Bus interface. Among other this means the option
|
||||||
|
to sync the system time by NTP is relying on `systemd-timesyncd` as backend.
|
||||||
|
|
||||||
|
### User and Group Settings
|
||||||
|
|
||||||
|
Management of users and groups. Binary is `lxqt-admin-user`.
|
||||||
|
|
||||||
|
![lxqt-admin-user](lxqt-admin-user.png)
|
||||||
|
|
||||||
|
The backend is a script `lxqt-admin-user-helper`. By default it is in turn using the shadow tools to do the actual work.
|
||||||
|
The script can be modified to use different tools, though.
|
||||||
|
|
||||||
|
## Installing
|
||||||
|
|
||||||
|
### Compiling sources
|
||||||
|
|
||||||
|
Runtime dependencies are polkit and [liblxqt](https://github.com/lxde/liblxqt). A polkit agent should be available with [lxqt-policykit](https://github.com/lxde/lxqt-policykit/) representing the first choice in LXQt.
|
||||||
|
Additional build dependencies are CMake and optionally Git to pull latest VCS checkouts. The localization files were outsourced to repository [lxqt-l10n](https://github.com/lxde/lxqt-l10n) so the corresponding dependencies are needed, too. Please refer to this repository's `README.md` for further information.
|
||||||
|
|
||||||
|
Code configuration is handled by CMake. CMake variable `CMAKE_INSTALL_PREFIX` will normally have to be set to `/usr`.
|
||||||
|
|
||||||
|
To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual.
|
||||||
|
|
||||||
|
### Binary packages
|
||||||
|
|
||||||
|
#### Arch Linux
|
||||||
|
|
||||||
|
[AUR](https://aur.archlinux.org) packages `lxqt-admin` and `lxqt-admin-git` are providing the current stable release and the
|
||||||
|
actual master checkout at compile time as usual.
|
||||||
|
Note that package `lxqt-admin` had to be kept in the AUR due to lack of the dependency liboobs as depicted [above](#overview).
|
||||||
|
So it will be transferred to community as of release 0.11.
|
||||||
|
|
||||||
|
#### Debian
|
||||||
|
|
||||||
|
Package `lxqt-admin` is available in the official repositories as of Debian stretch.
|
||||||
|
|
||||||
|
#### Fedora
|
||||||
|
|
||||||
|
Fedora doesn't provide lxqt-admin so far due to lack of the dependency liboobs as depicted [above](#overview). This will hopefully change
|
||||||
|
once release LXQt release 0.11 makes it into the Fedora repositories.
|
||||||
|
|
||||||
|
#### openSUSE
|
||||||
|
|
||||||
|
openSUSE does not ship with lxqt-admin in it's standard repositories since the functionality is covered by openSUSE's [YaST](http://yast.github.io/).
|
||||||
|
However it is still possible to install it on openSUSE. The package and its dependencies, like the [above](#overview) mentioned, outdated liboobs are available through the [X11:LXQt](https://build.opensuse.org/project/show/X11:LXQt) repository.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Much like similar tools provided by [lxqt-config](https://github.com/lxde/lxqt-config) the tools of lxqt-admin can be launched from the [Configuration Center](https://github.com/lxde/lxqt-config#configuration-center) as well as from the panel's main menu - Preferences - LXQt settings.
|
||||||
|
|
||||||
|
The actual usage should be self-explanatory. To apply settings the GUI of the polkit authentication agent that's in use is
|
||||||
|
launched to acquire the root password.
|
@ -1 +1 @@
|
|||||||
9
|
10
|
||||||
|
@ -1 +1,2 @@
|
|||||||
AUTHORS
|
AUTHORS
|
||||||
|
README.md
|
@ -1,9 +1,15 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
# export DH_VERBOSE=1
|
# export DH_VERBOSE=1
|
||||||
|
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||||
|
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||||
|
|
||||||
%:
|
%:
|
||||||
dh ${@} --buildsystem cmake \
|
dh ${@} --buildsystem cmake
|
||||||
--parallel
|
|
||||||
|
|
||||||
|
override_dh_auto_configure:
|
||||||
|
dh_auto_configure -- \
|
||||||
|
-DPULL_TRANSLATIONS=OFF\
|
||||||
|
-DUPDATE_TRANSLATIONS=OFF\
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||||
|
@ -1,63 +1,50 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
Version: GnuPG v2.0.22 (GNU/Linux)
|
|
||||||
|
|
||||||
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
|
=h7ww
|
||||||
lCKEZ6ahAUuNWslsHnNWaHFHNawEO3NIEtQZGVFk2BYISupizvjZF6MnymO/9UFM
|
|
||||||
pzV6fp3xNdqaKWQBjScOgMgCASRixW2tMAKbJGHZKp3dBixpHgXxy2oOGMS+mQ5m
|
|
||||||
gWy07usq2YesoMD0K/SG6EnoRPHBvrJihArzMFVUY9hD3hk8bhiy8w9bCYFe+gkm
|
|
||||||
zpQl3/KN01kyt5LjzEBcIOw8qIBQe9Pk8PyOK75lPoNME714LatgOsyw2kaSQ9Sv
|
|
||||||
hziRGC5z/fV3PmH7XhSjENPKnCJU51GUMMLaL28t9o7Afh6Q8UV31/JO36vmQXQV
|
|
||||||
+b+0BoGqEmf3AKBASb2Cr2q4pZFjywwSUXHZ9hQyu1tpbE1dS6aI01kM0y270pk7
|
|
||||||
W/ajuzuOxAVL1bJAanL/5+DWM03esZPVdEWhxpWEM40Z6Rhq+Xb2a5xfwCN9PmaQ
|
|
||||||
o9fez0I+yh53s7Ypv0tBj05FPe5L48+pDi6pz5nddN1B0FzF58jVfsBZUjBlY24+
|
|
||||||
VwQeAaWkRXZrSEdtBS5ufsi80x/cNCSTJBWqtborKL1iGgf5MDPYRMSvmZXAeIld
|
|
||||||
pyL/0pbW7iokewyKzpFfo7KEbwLxB+flWaBZ867JpF4yyRj3b4qcvcyV8QnsoB7Z
|
|
||||||
KhxTl3gGwD/t0HUcu85zcfs4GkealYhIWfGaAso2
|
|
||||||
=fF8P
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version=3
|
version=4
|
||||||
opts="pgpsigurlmangle=s/$/.asc/" \
|
opts="pgpsigurlmangle=s/$/.asc/" \
|
||||||
https://github.com/lxde/lxqt-admin/releases .*/([\d\.]+).tar.gz
|
https://github.com/lxde/lxqt-admin/releases .*/lxqt-admin-([\d\.]+).tar.xz
|
||||||
|
After Width: | Height: | Size: 47 KiB |
@ -0,0 +1,112 @@
|
|||||||
|
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||||
|
* (c)LGPL2+
|
||||||
|
*
|
||||||
|
* LXQt - a lightweight, Qt based, desktop toolset
|
||||||
|
* http://lxqt.org
|
||||||
|
*
|
||||||
|
* Copyright: 2016 LXQt team
|
||||||
|
* Authors:
|
||||||
|
* Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
|
||||||
|
*
|
||||||
|
* This program or library is free software; you can redistribute it
|
||||||
|
* and/or modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
* Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* END_COMMON_COPYRIGHT_HEADER */
|
||||||
|
|
||||||
|
#include "timedatectl.h"
|
||||||
|
#include <QProcess>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QDBusInterface>
|
||||||
|
#include <QDBusConnection>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
|
|
||||||
|
TimeDateCtl::TimeDateCtl()
|
||||||
|
{
|
||||||
|
mIface = new QDBusInterface(QStringLiteral("org.freedesktop.timedate1"),
|
||||||
|
QStringLiteral("/org/freedesktop/timedate1"),
|
||||||
|
QStringLiteral("org.freedesktop.timedate1"),
|
||||||
|
QDBusConnection::systemBus());
|
||||||
|
}
|
||||||
|
|
||||||
|
TimeDateCtl::~TimeDateCtl()
|
||||||
|
{
|
||||||
|
delete mIface;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString TimeDateCtl::timeZone() const
|
||||||
|
{
|
||||||
|
return mIface->property("Timezone").toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TimeDateCtl::setTimeZone(QString timeZone, QString& errorMessage)
|
||||||
|
{
|
||||||
|
mIface->call("SetTimezone", timeZone, true);
|
||||||
|
QDBusError err = mIface->lastError();
|
||||||
|
if(err.isValid())
|
||||||
|
{
|
||||||
|
errorMessage = err.message();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TimeDateCtl::setDateTime(QDateTime dateTime, QString& errorMessage)
|
||||||
|
{
|
||||||
|
// the timedatectl dbus service accepts "usec" input.
|
||||||
|
// Qt can only get "msec" => convert to usec here.
|
||||||
|
mIface->call("SetTime", dateTime.toMSecsSinceEpoch() * 1000, false, true);
|
||||||
|
QDBusError err = mIface->lastError();
|
||||||
|
if(err.isValid())
|
||||||
|
{
|
||||||
|
errorMessage = err.message();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TimeDateCtl::useNtp() const
|
||||||
|
{
|
||||||
|
return mIface->property("NTP").toBool();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TimeDateCtl::setUseNtp(bool value, QString& errorMessage)
|
||||||
|
{
|
||||||
|
mIface->call("SetNTP", value, true);
|
||||||
|
QDBusError err = mIface->lastError();
|
||||||
|
if(err.isValid())
|
||||||
|
{
|
||||||
|
errorMessage = err.message();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TimeDateCtl::localRtc() const
|
||||||
|
{
|
||||||
|
return mIface->property("LocalRTC").toBool();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TimeDateCtl::setLocalRtc(bool value, QString& errorMessage)
|
||||||
|
{
|
||||||
|
mIface->call("SetLocalRTC", value, false, true);
|
||||||
|
QDBusError err = mIface->lastError();
|
||||||
|
if(err.isValid())
|
||||||
|
{
|
||||||
|
errorMessage = err.message();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||||
|
* (c)LGPL2+
|
||||||
|
*
|
||||||
|
* LXQt - a lightweight, Qt based, desktop toolset
|
||||||
|
* http://lxqt.org
|
||||||
|
*
|
||||||
|
* Copyright: 2016 LXQt team
|
||||||
|
* Authors:
|
||||||
|
* Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
|
||||||
|
*
|
||||||
|
* This program or library is free software; you can redistribute it
|
||||||
|
* and/or modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
* Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* END_COMMON_COPYRIGHT_HEADER */
|
||||||
|
|
||||||
|
#ifndef TIMEDATECTL_H
|
||||||
|
#define TIMEDATECTL_H
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
#include <QDateTime>
|
||||||
|
|
||||||
|
class QDBusInterface;
|
||||||
|
|
||||||
|
class TimeDateCtl
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit TimeDateCtl();
|
||||||
|
~TimeDateCtl();
|
||||||
|
|
||||||
|
bool useNtp() const;
|
||||||
|
bool setUseNtp(bool value, QString& errorMessage);
|
||||||
|
|
||||||
|
bool localRtc() const;
|
||||||
|
bool setLocalRtc(bool value, QString& errorMessage);
|
||||||
|
|
||||||
|
QString timeZone() const;
|
||||||
|
bool setTimeZone(QString timeZone, QString& errorMessage);
|
||||||
|
|
||||||
|
bool setDateTime(QDateTime dateTime, QString& errorMessage);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QDBusInterface* mIface;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // TIMEDATECTL_H
|
@ -1,78 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1">
|
|
||||||
<context>
|
|
||||||
<name>DateTime</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="23"/>
|
|
||||||
<source>Time:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="39"/>
|
|
||||||
<source>HH:mm:ss</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="53"/>
|
|
||||||
<source>Date:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="89"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>TimeAdminDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="42"/>
|
|
||||||
<source>Time and date configuration</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="53"/>
|
|
||||||
<source>Date and time</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="62"/>
|
|
||||||
<source>Timezone</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="162"/>
|
|
||||||
<source>Authentication Error</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>Timezone</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="19"/>
|
|
||||||
<source>Your current timezone:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="26"/>
|
|
||||||
<source>TextLabel</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="35"/>
|
|
||||||
<source>Filter</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="54"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.cpp" line="42"/>
|
|
||||||
<source>None</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -0,0 +1,4 @@
|
|||||||
|
#TRANSLATIONS
|
||||||
|
Name[ar]=التّاريخ والوقت
|
||||||
|
GenericName[ar]=إعدادات التّاريخ والوقت
|
||||||
|
Comment[ar]=اضبط تاريخ النّظام ووقته
|
@ -0,0 +1,3 @@
|
|||||||
|
Name[ca]=Data i hora
|
||||||
|
GenericName[ca]=Ajusts de la data i l'hora
|
||||||
|
Comment[ca]=Configureu la data i l'hora del vostre sistema
|
@ -1,79 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="de">
|
|
||||||
<context>
|
|
||||||
<name>DateTime</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="23"/>
|
|
||||||
<source>Time:</source>
|
|
||||||
<translation>Zeit:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="39"/>
|
|
||||||
<source>HH:mm:ss</source>
|
|
||||||
<translatorcomment>No need to translate.</translatorcomment>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="53"/>
|
|
||||||
<source>Date:</source>
|
|
||||||
<translation>Datum:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="89"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation><html><head/><body><p>Das Sichern der Einstellungen benötigt Administrator-Rechte.<br>Nach dem Betätigen der Schließen-Schaltfläche wird die Berechtigung eingeholt.</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>TimeAdminDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="42"/>
|
|
||||||
<source>Time and date configuration</source>
|
|
||||||
<translation>Zeit und Datum einstellen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="53"/>
|
|
||||||
<source>Date and time</source>
|
|
||||||
<translation>Datum und Zeit</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="62"/>
|
|
||||||
<source>Timezone</source>
|
|
||||||
<translation>Zeitzone</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="162"/>
|
|
||||||
<source>Authentication Error</source>
|
|
||||||
<translation>Authentifizierungsfehler</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>Timezone</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="19"/>
|
|
||||||
<source>Your current timezone:</source>
|
|
||||||
<translation>Derzeitige Zeitzone:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="26"/>
|
|
||||||
<source>TextLabel</source>
|
|
||||||
<translation>Textfeld</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="35"/>
|
|
||||||
<source>Filter</source>
|
|
||||||
<translation>Filter</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="54"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation><html><head/><body><p>Das Sichern der Einstellungen benötigt Administrator-Rechte.<br>Nach dem Betätigen der Schließen-Schaltfläche wird die Berechtigung eingeholt.</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.cpp" line="42"/>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>Keine</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,98 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="hr_HR">
|
|
||||||
<context>
|
|
||||||
<name>DateTime</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="20"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="32"/>
|
|
||||||
<source>Time and date setup</source>
|
|
||||||
<translation type="unfinished">Postavke datuma i vremena</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="39"/>
|
|
||||||
<source>Time:</source>
|
|
||||||
<translation type="unfinished">Vrijeme:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="55"/>
|
|
||||||
<source>HH:mm:ss</source>
|
|
||||||
<translation type="unfinished">HH:mm:ss</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="69"/>
|
|
||||||
<source>Date:</source>
|
|
||||||
<translation type="unfinished">Nadnevak</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="105"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation type="unfinished"><html><head/><body><p>Spremanje pronjena zahtjeva adminstracijske dozvole.<br>Biti će zatražene nakon što kliknete na dugme zatvori</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>TimeAdminDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="42"/>
|
|
||||||
<source>Time and date configuration</source>
|
|
||||||
<translation type="unfinished">Konfiguracija vremena i nadnevka</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="53"/>
|
|
||||||
<source>Date and time</source>
|
|
||||||
<translation type="unfinished">Nadnevak i vrijeme</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="62"/>
|
|
||||||
<source>Timezone</source>
|
|
||||||
<translation type="unfinished">Vremenska zona</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="162"/>
|
|
||||||
<source>Authentication Error</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>Timezone</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="14"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="26"/>
|
|
||||||
<source>Timezone setup</source>
|
|
||||||
<translation type="unfinished">Postavljanje vremenske zone</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="35"/>
|
|
||||||
<source>Your current timezone:</source>
|
|
||||||
<translation type="unfinished">Vaša trenutna vremenska zona</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="42"/>
|
|
||||||
<source>TextLabel</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="51"/>
|
|
||||||
<source>Filter</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="70"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation type="unfinished"><html><head/><body><p>Spremanje pronjena zahtjeva adminstracijske dozvole.<br>Biti će zatražene nakon što kliknete na dugme zatvori</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.cpp" line="42"/>
|
|
||||||
<source>None</source>
|
|
||||||
<translation type="unfinished">Nijedan</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,98 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="hu_HU">
|
|
||||||
<context>
|
|
||||||
<name>DateTime</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="20"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation>Űrlap</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="32"/>
|
|
||||||
<source>Time and date setup</source>
|
|
||||||
<translation>Dátum és időbeállítás</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="39"/>
|
|
||||||
<source>Time:</source>
|
|
||||||
<translation>Idő:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="55"/>
|
|
||||||
<source>HH:mm:ss</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="69"/>
|
|
||||||
<source>Date:</source>
|
|
||||||
<translation>Dátum:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="105"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation><html><head/><body><p>Változtatások csak rendszergazdaként menthetők,<br>jelszóbekérés a kilépés után.</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>TimeAdminDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="42"/>
|
|
||||||
<source>Time and date configuration</source>
|
|
||||||
<translation>Dátum és időbeállítások</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="53"/>
|
|
||||||
<source>Date and time</source>
|
|
||||||
<translation>Dátum és idő</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="62"/>
|
|
||||||
<source>Timezone</source>
|
|
||||||
<translation>Időzóna</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="162"/>
|
|
||||||
<source>Authentication Error</source>
|
|
||||||
<translation>Hitelesítési hiba</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>Timezone</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="14"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation>Űrlap</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="26"/>
|
|
||||||
<source>Timezone setup</source>
|
|
||||||
<translation>Időzóna beállítás</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="35"/>
|
|
||||||
<source>Your current timezone:</source>
|
|
||||||
<translation>Mostani időzóna:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="42"/>
|
|
||||||
<source>TextLabel</source>
|
|
||||||
<translation>Szövegcím</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="51"/>
|
|
||||||
<source>Filter</source>
|
|
||||||
<translation>Szűrő</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="70"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation><html><head/><body><p>Változtatások csak rendszergazdaként menthetők,<br>jelszóbekérés a kilépés után.</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.cpp" line="42"/>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>Nincs</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,100 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="it_IT" sourcelanguage="it_IT">
|
|
||||||
<context>
|
|
||||||
<name>DateTime</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="20"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="32"/>
|
|
||||||
<source>Time and date setup</source>
|
|
||||||
<translation>Imposta data e ora</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="39"/>
|
|
||||||
<source>Time:</source>
|
|
||||||
<translation>Ora:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="55"/>
|
|
||||||
<source>HH:mm:ss</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="69"/>
|
|
||||||
<source>Date:</source>
|
|
||||||
<translation>Data:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="105"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation>Il salvataggio richiede privilegi di amministratore,
|
|
||||||
saranno chiesti dopo la chiusura di questa finestra.</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>TimeAdminDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="42"/>
|
|
||||||
<source>Time and date configuration</source>
|
|
||||||
<translation>Configura data e ora</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="53"/>
|
|
||||||
<source>Date and time</source>
|
|
||||||
<translation>Data e ora</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="62"/>
|
|
||||||
<source>Timezone</source>
|
|
||||||
<translation>Fuso orario</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="162"/>
|
|
||||||
<source>Authentication Error</source>
|
|
||||||
<translation>Errore di autenticazione</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>Timezone</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="14"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="26"/>
|
|
||||||
<source>Timezone setup</source>
|
|
||||||
<translation>Configura fuso orario</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="35"/>
|
|
||||||
<source>Your current timezone:</source>
|
|
||||||
<translation>Fuso orario attuale:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="42"/>
|
|
||||||
<source>TextLabel</source>
|
|
||||||
<translation>nessuno</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="51"/>
|
|
||||||
<source>Filter</source>
|
|
||||||
<translation>Filtro</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="70"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation type="unfinished">Il salvataggio richiede privilegi di amministratore,
|
|
||||||
saranno chiesti dopo la chiusura di questa finestra.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.cpp" line="42"/>
|
|
||||||
<source>None</source>
|
|
||||||
<translation></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,98 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="ja">
|
|
||||||
<context>
|
|
||||||
<name>DateTime</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="20"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation>フォーム</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="32"/>
|
|
||||||
<source>Time and date setup</source>
|
|
||||||
<translation>日時設定</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="39"/>
|
|
||||||
<source>Time:</source>
|
|
||||||
<translation>時刻:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="55"/>
|
|
||||||
<source>HH:mm:ss</source>
|
|
||||||
<translation>HH:mm:ss</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="69"/>
|
|
||||||
<source>Date:</source>
|
|
||||||
<translation>日付</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="105"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation><html><head/><body><p>変更の保存には管理権限が必要です。<br>閉じるボタンを押した直後に要求されるでしょう。</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>TimeAdminDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="42"/>
|
|
||||||
<source>Time and date configuration</source>
|
|
||||||
<translation>日時設定</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="53"/>
|
|
||||||
<source>Date and time</source>
|
|
||||||
<translation>日時</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="62"/>
|
|
||||||
<source>Timezone</source>
|
|
||||||
<translation>タイムゾーン</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="162"/>
|
|
||||||
<source>Authentication Error</source>
|
|
||||||
<translation>認証エラー</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>Timezone</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="14"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation>フォーム</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="26"/>
|
|
||||||
<source>Timezone setup</source>
|
|
||||||
<translation>タイムゾーン設定</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="35"/>
|
|
||||||
<source>Your current timezone:</source>
|
|
||||||
<translation>現在のタイムゾーン</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="42"/>
|
|
||||||
<source>TextLabel</source>
|
|
||||||
<translation>テキストラベル</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="51"/>
|
|
||||||
<source>Filter</source>
|
|
||||||
<translation>フィルター</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="70"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation><html><head/><body><p>変更の保存には管理権限が必要です。<br>閉じるボタンを押した直後に要求されるでしょう。</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.cpp" line="42"/>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>なし</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,98 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="pl_PL">
|
|
||||||
<context>
|
|
||||||
<name>DateTime</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="20"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="32"/>
|
|
||||||
<source>Time and date setup</source>
|
|
||||||
<translation>Konfiguracja daty i czasu</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="39"/>
|
|
||||||
<source>Time:</source>
|
|
||||||
<translation>Czas:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="55"/>
|
|
||||||
<source>HH:mm:ss</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="69"/>
|
|
||||||
<source>Date:</source>
|
|
||||||
<translation>Data:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="105"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation type="unfinished"><html><head/><body><p>Zapisywanie zmian wymaga uprawnień administratora.<br>Zostaniesz poproszony o hasło.</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>TimeAdminDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="42"/>
|
|
||||||
<source>Time and date configuration</source>
|
|
||||||
<translation>Konfiguracja daty i czasu</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="53"/>
|
|
||||||
<source>Date and time</source>
|
|
||||||
<translation>Data i czas</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="62"/>
|
|
||||||
<source>Timezone</source>
|
|
||||||
<translation>Strefa czasowa</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="162"/>
|
|
||||||
<source>Authentication Error</source>
|
|
||||||
<translation>Błąd autoryzacji</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>Timezone</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="14"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="26"/>
|
|
||||||
<source>Timezone setup</source>
|
|
||||||
<translation>Ustawienia strefy czasowej</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="35"/>
|
|
||||||
<source>Your current timezone:</source>
|
|
||||||
<translation>Twoja aktualna strefa czasowa:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="42"/>
|
|
||||||
<source>TextLabel</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="51"/>
|
|
||||||
<source>Filter</source>
|
|
||||||
<translation>Filtr</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="70"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation type="unfinished"><html><head/><body><p>Zapisywanie zmian wymaga uprawnień administratora.<br>Zostaniesz poproszony o hasło.</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.cpp" line="42"/>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>Żadna</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,98 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.0" language="pt">
|
|
||||||
<context>
|
|
||||||
<name>DateTime</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="20"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation>Formulário</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="32"/>
|
|
||||||
<source>Time and date setup</source>
|
|
||||||
<translation>Configuração de data e hora</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="39"/>
|
|
||||||
<source>Time:</source>
|
|
||||||
<translation>Hora:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="55"/>
|
|
||||||
<source>HH:mm:ss</source>
|
|
||||||
<translation>H:mm:ss</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="69"/>
|
|
||||||
<source>Date:</source>
|
|
||||||
<translation>Data:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../datetime.ui" line="105"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation><html><head/><body><p>A gravação de alterações requer permissões de administrador.<br>A senha será solicitada ao clicar em Fechar.</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>TimeAdminDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="42"/>
|
|
||||||
<source>Time and date configuration</source>
|
|
||||||
<translation>Configuração de data e hora</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="53"/>
|
|
||||||
<source>Date and time</source>
|
|
||||||
<translation>Data e hora</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="62"/>
|
|
||||||
<source>Timezone</source>
|
|
||||||
<translation>Fuso horário</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timeadmindialog.cpp" line="162"/>
|
|
||||||
<source>Authentication Error</source>
|
|
||||||
<translation>Erro de autenticação</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>Timezone</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="14"/>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation>Formulário</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="26"/>
|
|
||||||
<source>Timezone setup</source>
|
|
||||||
<translation>Configuração de fuso horário</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="35"/>
|
|
||||||
<source>Your current timezone:</source>
|
|
||||||
<translation>O seu fuso horário:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="42"/>
|
|
||||||
<source>TextLabel</source>
|
|
||||||
<translation>Texto</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="51"/>
|
|
||||||
<source>Filter</source>
|
|
||||||
<translation>Filtrar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.ui" line="70"/>
|
|
||||||
<source><html><head/><body><p>Saving changes requires admin permissions.<br>You will be requested after clicking close button</p></body></html></source>
|
|
||||||
<translation><html><head/><body><p>A gravação de alterações requer permissões de administrador.<br>A senha será solicitada ao clicar em Fechar.</p></body></html></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../timezone.cpp" line="42"/>
|
|
||||||
<source>None</source>
|
|
||||||
<translation>Nenhum</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,6 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name[ru_RU]=Дата и время
|
|
||||||
GenericName[ru_RU]=Настройки даты и времени
|
|
||||||
Comment[ru_RU]=Настроить дату и время вашей системы
|
|
||||||
|
|
||||||
#TRANSLATIONS_DIR=translations
|
|
After Width: | Height: | Size: 44 KiB |
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
case "$1" in
|
||||||
|
# we only allow executing these commands
|
||||||
|
useradd|usermod|userdel|groupadd|groupmod|groupdel|passwd|gpasswd)
|
||||||
|
# TODO: platforms using different commands can add wrapper scripts here.
|
||||||
|
export LC_ALL=C
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Command '$1' is not allowed!"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE policyconfig PUBLIC
|
||||||
|
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
|
||||||
|
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
|
||||||
|
<policyconfig>
|
||||||
|
|
||||||
|
<action id="org.lxqt.lxqt-admin-user">
|
||||||
|
<message>Authentication is required for user administration</message>
|
||||||
|
<icon_name>preferences-system</icon_name>
|
||||||
|
<defaults>
|
||||||
|
<allow_any>auth_admin</allow_any>
|
||||||
|
<allow_inactive>auth_admin</allow_inactive>
|
||||||
|
<allow_active>auth_admin_keep</allow_active>
|
||||||
|
</defaults>
|
||||||
|
<annotate key="org.freedesktop.policykit.exec.path">@CMAKE_INSTALL_PREFIX@/bin/lxqt-admin-user-helper</annotate>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
</policyconfig>
|
@ -1,263 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1">
|
|
||||||
<context>
|
|
||||||
<name>GroupDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="14"/>
|
|
||||||
<source>Group Settings</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="20"/>
|
|
||||||
<source>Group name:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="37"/>
|
|
||||||
<source>Group ID:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="44"/>
|
|
||||||
<source>Users belong to this group:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<source>The group ID is in use.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<source>The group name cannot be empty.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>The group name is in use.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>MainWindow</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="14"/>
|
|
||||||
<source>User and Group Settings</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="31"/>
|
|
||||||
<source>&Users</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="50"/>
|
|
||||||
<source>Login Name</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="55"/>
|
|
||||||
<source>User ID</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="60"/>
|
|
||||||
<source>Full Name</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="65"/>
|
|
||||||
<source>Group</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="70"/>
|
|
||||||
<source>Home Directory</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="81"/>
|
|
||||||
<source>Show system users (for advanced users only)</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="89"/>
|
|
||||||
<source>&Groups</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="102"/>
|
|
||||||
<source>Name</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="107"/>
|
|
||||||
<source>Group ID</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="120"/>
|
|
||||||
<source>toolBar</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="147"/>
|
|
||||||
<source>Add</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="150"/>
|
|
||||||
<source>Add new users or groups</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="160"/>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="163"/>
|
|
||||||
<source>Delete selected item</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="173"/>
|
|
||||||
<source>Properties</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="176"/>
|
|
||||||
<source>edit properties of the selected item</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="186"/>
|
|
||||||
<source>Refresh</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="189"/>
|
|
||||||
<source>Refresh the lists</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="145"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<source>Are you sure you want to delete the selected user?</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Are you sure you want to delete the selected group?</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>UserDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="14"/>
|
|
||||||
<source>User Settings</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="24"/>
|
|
||||||
<source>General</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="33"/>
|
|
||||||
<source>Full name:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="43"/>
|
|
||||||
<source>Login name:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="53"/>
|
|
||||||
<source>Set password:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="77"/>
|
|
||||||
<source>User ID:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="84"/>
|
|
||||||
<source>Main group:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="99"/>
|
|
||||||
<source>Advanced</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="105"/>
|
|
||||||
<source>Login shell:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="122"/>
|
|
||||||
<source>Home directory:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="64"/>
|
|
||||||
<source>Change password:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<source>The user ID is in use.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<source>The user name cannot be empty.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>The user name is in use.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Are you sure you want to use an "empty password" for the user?</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -0,0 +1,4 @@
|
|||||||
|
#TRANSLATIONS
|
||||||
|
Name[ar]=المستخدمون والمجموعات
|
||||||
|
GenericName[ar]=إعدادات المستخدمون والمجموعات
|
||||||
|
Comment[ar]=اضبط مستخدمو النّظام ومجموعاته
|
@ -0,0 +1,3 @@
|
|||||||
|
Name[ca]=Usuaris i grups
|
||||||
|
GenericName[ca]=Ajusts dels usuaris i dels grups
|
||||||
|
Comment[ca]=Configureu els usuaris i els grups del vostre sistema
|
@ -1,263 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="de">
|
|
||||||
<context>
|
|
||||||
<name>GroupDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="14"/>
|
|
||||||
<source>Group Settings</source>
|
|
||||||
<translation>Gruppeneinstellungen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="20"/>
|
|
||||||
<source>Group name:</source>
|
|
||||||
<translation>Gruppen-Name:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="37"/>
|
|
||||||
<source>Group ID:</source>
|
|
||||||
<translation>Gruppen-ID:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="44"/>
|
|
||||||
<source>Users belong to this group:</source>
|
|
||||||
<translation>Benutzer in dieser Gruppe:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="86"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="95"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="100"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Fehler</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="86"/>
|
|
||||||
<source>The group ID is in use.</source>
|
|
||||||
<translation>Die Gruppen-ID existiert bereits.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="95"/>
|
|
||||||
<source>The group name cannot be empty.</source>
|
|
||||||
<translation>Der Gruppen-Name kann nicht leer sein.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="100"/>
|
|
||||||
<source>The group name is in use.</source>
|
|
||||||
<translation>Der Gruppen-Name existiert bereits.</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>MainWindow</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="14"/>
|
|
||||||
<source>User and Group Settings</source>
|
|
||||||
<translation>Nutzer- und Gruppeneinstellungen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="31"/>
|
|
||||||
<source>&Users</source>
|
|
||||||
<translation>&Nutzer</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="50"/>
|
|
||||||
<source>Login Name</source>
|
|
||||||
<translation>Anmeldename</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="55"/>
|
|
||||||
<source>User ID</source>
|
|
||||||
<translation>Nutzer-ID</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="60"/>
|
|
||||||
<source>Full Name</source>
|
|
||||||
<translation>Vollständiger Name</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="65"/>
|
|
||||||
<source>Group</source>
|
|
||||||
<translation>Gruppe</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="70"/>
|
|
||||||
<source>Home Directory</source>
|
|
||||||
<translation>Nutzerverzeichnis</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="81"/>
|
|
||||||
<source>Show system users (for advanced users only)</source>
|
|
||||||
<translation>Systemnutzer anzeigen (nur für erfahrene Nutzer)</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="89"/>
|
|
||||||
<source>&Groups</source>
|
|
||||||
<translation>&Gruppen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="102"/>
|
|
||||||
<source>Name</source>
|
|
||||||
<translation>Name</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="107"/>
|
|
||||||
<source>Group ID</source>
|
|
||||||
<translation>Gruppen-ID</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="120"/>
|
|
||||||
<source>toolBar</source>
|
|
||||||
<translation>Werkzeugleiste</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="147"/>
|
|
||||||
<source>Add</source>
|
|
||||||
<translation>Hinzufügen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="150"/>
|
|
||||||
<source>Add new users or groups</source>
|
|
||||||
<translation>Neue Nutzer oder Gruppen hinzufügen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="160"/>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Entfernen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="163"/>
|
|
||||||
<source>Delete selected item</source>
|
|
||||||
<translation>Ausgewähltes Element löschen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="173"/>
|
|
||||||
<source>Properties</source>
|
|
||||||
<translation>Eigenschaften</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="176"/>
|
|
||||||
<source>edit properties of the selected item</source>
|
|
||||||
<translation>Eigenschaften des ausgewählten Elements editieren</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="186"/>
|
|
||||||
<source>Refresh</source>
|
|
||||||
<translation>Erneuern</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="189"/>
|
|
||||||
<source>Refresh the lists</source>
|
|
||||||
<translation>Listen erneuern</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="145"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Fehler</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Bestätigen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<source>Are you sure you want to delete the selected user?</source>
|
|
||||||
<translation>Wollen Sie den ausgewählten Nutzer wirklich löschen?</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Are you sure you want to delete the selected group?</source>
|
|
||||||
<translation>Wollen Sie die ausgewählte Gruppe wirklich löschen?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>UserDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="14"/>
|
|
||||||
<source>User Settings</source>
|
|
||||||
<translation>Nutzereinstellungen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="24"/>
|
|
||||||
<source>General</source>
|
|
||||||
<translation>Allgemein</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="33"/>
|
|
||||||
<source>Full name:</source>
|
|
||||||
<translation>Vollständiger Name:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="43"/>
|
|
||||||
<source>Login name:</source>
|
|
||||||
<translation>Anmeldename:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="53"/>
|
|
||||||
<source>Set password:</source>
|
|
||||||
<translation>Kennwort setzen:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="77"/>
|
|
||||||
<source>User ID:</source>
|
|
||||||
<translation>Nutzer-ID:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="84"/>
|
|
||||||
<source>Main group:</source>
|
|
||||||
<translation>Hauptgruppe:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="99"/>
|
|
||||||
<source>Advanced</source>
|
|
||||||
<translation>Erweitert</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="105"/>
|
|
||||||
<source>Login shell:</source>
|
|
||||||
<translation>Befehlsinterpreter (shell):</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="122"/>
|
|
||||||
<source>Home directory:</source>
|
|
||||||
<translation>Nutzerverzeichnis:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="67"/>
|
|
||||||
<source>Change password:</source>
|
|
||||||
<translation>Kennwort ändern:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="128"/>
|
|
||||||
<location filename="../userdialog.cpp" line="141"/>
|
|
||||||
<location filename="../userdialog.cpp" line="146"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Fehler</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="128"/>
|
|
||||||
<source>The user ID is in use.</source>
|
|
||||||
<translation>Die Nutzer-ID existiert bereits.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="141"/>
|
|
||||||
<source>The user name cannot be empty.</source>
|
|
||||||
<translation>Der Nutzername kann nicht leer sein.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="146"/>
|
|
||||||
<source>The user name is in use.</source>
|
|
||||||
<translation>Der Nutzername existiert bereits.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="162"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Bestätigen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="162"/>
|
|
||||||
<source>Are you sure you want to use an "empty password" for the user?</source>
|
|
||||||
<translation>Wollen Sie wirklich ein "leeres Kennwort" für den Nutzer vergeben?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,263 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="hr_HR">
|
|
||||||
<context>
|
|
||||||
<name>GroupDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="14"/>
|
|
||||||
<source>Group Settings</source>
|
|
||||||
<translation type="unfinished">Postavke grupe</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="20"/>
|
|
||||||
<source>Group name:</source>
|
|
||||||
<translation type="unfinished">Ime grupe:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="37"/>
|
|
||||||
<source>Group ID:</source>
|
|
||||||
<translation type="unfinished">ID grupe</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="44"/>
|
|
||||||
<source>Users belong to this group:</source>
|
|
||||||
<translation type="unfinished">Korisnici koji pripadaju ovoj grupi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation type="unfinished">Greška</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<source>The group ID is in use.</source>
|
|
||||||
<translation type="unfinished">ID grupe je u uporabi.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<source>The group name cannot be empty.</source>
|
|
||||||
<translation type="unfinished">Ime grupe ne može biti prazno.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>The group name is in use.</source>
|
|
||||||
<translation type="unfinished">Ime grupe je u uporabi.</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>MainWindow</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="14"/>
|
|
||||||
<source>User and Group Settings</source>
|
|
||||||
<translation type="unfinished">Postavke korisnika i grupe</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="31"/>
|
|
||||||
<source>&Users</source>
|
|
||||||
<translation type="unfinished">&Korisnici</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="50"/>
|
|
||||||
<source>Login Name</source>
|
|
||||||
<translation type="unfinished">Ime prijave</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="55"/>
|
|
||||||
<source>User ID</source>
|
|
||||||
<translation type="unfinished">ID korisnika</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="60"/>
|
|
||||||
<source>Full Name</source>
|
|
||||||
<translation type="unfinished">Puno ime</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="65"/>
|
|
||||||
<source>Group</source>
|
|
||||||
<translation type="unfinished">Grupa</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="70"/>
|
|
||||||
<source>Home Directory</source>
|
|
||||||
<translation type="unfinished">Osobna mapa</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="81"/>
|
|
||||||
<source>Show system users (for advanced users only)</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="89"/>
|
|
||||||
<source>&Groups</source>
|
|
||||||
<translation type="unfinished">&Grupe</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="102"/>
|
|
||||||
<source>Name</source>
|
|
||||||
<translation type="unfinished">Ime</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="107"/>
|
|
||||||
<source>Group ID</source>
|
|
||||||
<translation type="unfinished">ID grupe</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="120"/>
|
|
||||||
<source>toolBar</source>
|
|
||||||
<translation type="unfinished">alatna traka</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="147"/>
|
|
||||||
<source>Add</source>
|
|
||||||
<translation type="unfinished">Dodaj</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="150"/>
|
|
||||||
<source>Add new users or groups</source>
|
|
||||||
<translation type="unfinished">Dodaj nove korisnike ili grupe</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="160"/>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation type="unfinished">Izbriši</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="163"/>
|
|
||||||
<source>Delete selected item</source>
|
|
||||||
<translation type="unfinished">Izbriši odabranu stavku</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="173"/>
|
|
||||||
<source>Properties</source>
|
|
||||||
<translation type="unfinished">Svojstva</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="176"/>
|
|
||||||
<source>edit properties of the selected item</source>
|
|
||||||
<translation type="unfinished">uredi svojstva odabrane stavke</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="186"/>
|
|
||||||
<source>Refresh</source>
|
|
||||||
<translation type="unfinished">Osvježi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="189"/>
|
|
||||||
<source>Refresh the lists</source>
|
|
||||||
<translation type="unfinished">Osvježi liste</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="145"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation type="unfinished">Greška</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation type="unfinished">Potvrdi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<source>Are you sure you want to delete the selected user?</source>
|
|
||||||
<translation type="unfinished">Jeste li sigurni da želite izbrisati odabranoga korisnika?</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Are you sure you want to delete the selected group?</source>
|
|
||||||
<translation type="unfinished">Jeste li sigurni da želite izbrisati odabranu grupu?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>UserDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="14"/>
|
|
||||||
<source>User Settings</source>
|
|
||||||
<translation type="unfinished">Postavke korisnika</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="24"/>
|
|
||||||
<source>General</source>
|
|
||||||
<translation type="unfinished">Općenito</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="33"/>
|
|
||||||
<source>Full name:</source>
|
|
||||||
<translation type="unfinished">Puno ime:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="43"/>
|
|
||||||
<source>Login name:</source>
|
|
||||||
<translation type="unfinished">Ime prijave:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="53"/>
|
|
||||||
<source>Set password:</source>
|
|
||||||
<translation type="unfinished">Postavi lozinku:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="77"/>
|
|
||||||
<source>User ID:</source>
|
|
||||||
<translation type="unfinished">ID korisnika:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="84"/>
|
|
||||||
<source>Main group:</source>
|
|
||||||
<translation type="unfinished">Glavna grupa:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="99"/>
|
|
||||||
<source>Advanced</source>
|
|
||||||
<translation type="unfinished">Napredno</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="105"/>
|
|
||||||
<source>Login shell:</source>
|
|
||||||
<translation type="unfinished">Ljuska prijave:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="122"/>
|
|
||||||
<source>Home directory:</source>
|
|
||||||
<translation type="unfinished">Osobna mapa:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="64"/>
|
|
||||||
<source>Change password:</source>
|
|
||||||
<translation type="unfinished">Promjeni lozinku:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation type="unfinished">Greška</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<source>The user ID is in use.</source>
|
|
||||||
<translation type="unfinished">ID korisnika je u uporabi.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<source>The user name cannot be empty.</source>
|
|
||||||
<translation type="unfinished">Korisničko ime ne može biti prazno.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>The user name is in use.</source>
|
|
||||||
<translation type="unfinished">Korisničko ime je u uoprabi.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation type="unfinished">Potvrdi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Are you sure you want to use an "empty password" for the user?</source>
|
|
||||||
<translation type="unfinished">Jeste li sigurni da želite koristiti "praznu lozinku" za korisnika?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,263 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="hu_HU">
|
|
||||||
<context>
|
|
||||||
<name>GroupDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="14"/>
|
|
||||||
<source>Group Settings</source>
|
|
||||||
<translation>Csoportbeállítás</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="20"/>
|
|
||||||
<source>Group name:</source>
|
|
||||||
<translation>Csoportnév:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="37"/>
|
|
||||||
<source>Group ID:</source>
|
|
||||||
<translation>Csoport ID</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="44"/>
|
|
||||||
<source>Users belong to this group:</source>
|
|
||||||
<translation>A csoport tagjai:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Hiba</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<source>The group ID is in use.</source>
|
|
||||||
<translation>Csoport ID foglalt.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<source>The group name cannot be empty.</source>
|
|
||||||
<translation>Csoportnév nem lehet üres.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>The group name is in use.</source>
|
|
||||||
<translation>Csoportnév foglalt.</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>MainWindow</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="14"/>
|
|
||||||
<source>User and Group Settings</source>
|
|
||||||
<translation>Felhasználók és csoportok</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="31"/>
|
|
||||||
<source>&Users</source>
|
|
||||||
<translation>&Felhasználók</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="50"/>
|
|
||||||
<source>Login Name</source>
|
|
||||||
<translation>Bejelenkezési név</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="55"/>
|
|
||||||
<source>User ID</source>
|
|
||||||
<translation>Felhasználó ID</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="60"/>
|
|
||||||
<source>Full Name</source>
|
|
||||||
<translation>Teljes név</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="65"/>
|
|
||||||
<source>Group</source>
|
|
||||||
<translation>Csoport</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="70"/>
|
|
||||||
<source>Home Directory</source>
|
|
||||||
<translation>Saját könyvtár</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="81"/>
|
|
||||||
<source>Show system users (for advanced users only)</source>
|
|
||||||
<translation>Rendszer felhasználók is látszanak (csak haladóknak)</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="89"/>
|
|
||||||
<source>&Groups</source>
|
|
||||||
<translation>&Csoportok</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="102"/>
|
|
||||||
<source>Name</source>
|
|
||||||
<translation>Név</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="107"/>
|
|
||||||
<source>Group ID</source>
|
|
||||||
<translation>Csoport ID</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="120"/>
|
|
||||||
<source>toolBar</source>
|
|
||||||
<translation>eszközsáv</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="147"/>
|
|
||||||
<source>Add</source>
|
|
||||||
<translation>Hozzáad</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="150"/>
|
|
||||||
<source>Add new users or groups</source>
|
|
||||||
<translation>Új felhasználó, vagy csoport hozzáadása</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="160"/>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Törlés</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="163"/>
|
|
||||||
<source>Delete selected item</source>
|
|
||||||
<translation>Kiválasztott törlése</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="173"/>
|
|
||||||
<source>Properties</source>
|
|
||||||
<translation>Tulajdonságok</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="176"/>
|
|
||||||
<source>edit properties of the selected item</source>
|
|
||||||
<translation>A választott elem módosítása</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="186"/>
|
|
||||||
<source>Refresh</source>
|
|
||||||
<translation>Frisítés</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="189"/>
|
|
||||||
<source>Refresh the lists</source>
|
|
||||||
<translation>Lista frissítése</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="145"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Hiba</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Megerősítés</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<source>Are you sure you want to delete the selected user?</source>
|
|
||||||
<translation>Tényleg töröljük az illető felhasználót?</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Are you sure you want to delete the selected group?</source>
|
|
||||||
<translation>Tényleg töröljük az illető csoportot?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>UserDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="14"/>
|
|
||||||
<source>User Settings</source>
|
|
||||||
<translation>Felhasználó beállítása</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="24"/>
|
|
||||||
<source>General</source>
|
|
||||||
<translation>Alap</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="33"/>
|
|
||||||
<source>Full name:</source>
|
|
||||||
<translation>Teljes név:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="43"/>
|
|
||||||
<source>Login name:</source>
|
|
||||||
<translation>Bejelenkezési név:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="53"/>
|
|
||||||
<source>Set password:</source>
|
|
||||||
<translation>Jelszóbeállítás:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="77"/>
|
|
||||||
<source>User ID:</source>
|
|
||||||
<translation>Felhasználó ID:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="84"/>
|
|
||||||
<source>Main group:</source>
|
|
||||||
<translation>Főcsoport</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="99"/>
|
|
||||||
<source>Advanced</source>
|
|
||||||
<translation>Bővített</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="105"/>
|
|
||||||
<source>Login shell:</source>
|
|
||||||
<translation>Parancsértelmező:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="122"/>
|
|
||||||
<source>Home directory:</source>
|
|
||||||
<translation>Saját könyvtár:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="64"/>
|
|
||||||
<source>Change password:</source>
|
|
||||||
<translation>Jelszóváltoztatás:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Hiba</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<source>The user ID is in use.</source>
|
|
||||||
<translation>Felhasználó ID foglalt.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<source>The user name cannot be empty.</source>
|
|
||||||
<translation>Felhasználónév nem lehet üres.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>The user name is in use.</source>
|
|
||||||
<translation>Felhasználónév foglalt.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Megerősítés</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Are you sure you want to use an "empty password" for the user?</source>
|
|
||||||
<translation>Üres legyen a jelszava a felhasználónak?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,264 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="it_IT" sourcelanguage="it_IT">
|
|
||||||
<context>
|
|
||||||
<name>GroupDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="14"/>
|
|
||||||
<source>Group Settings</source>
|
|
||||||
<translation>Gestione gruppi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="20"/>
|
|
||||||
<source>Group name:</source>
|
|
||||||
<translation>Nome del gruppo:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="37"/>
|
|
||||||
<source>Group ID:</source>
|
|
||||||
<translation>ID gruppo:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="44"/>
|
|
||||||
<source>Users belong to this group:</source>
|
|
||||||
<translation>Utenti appartenenti:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Errore</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<source>The group ID is in use.</source>
|
|
||||||
<translation>ID già in uso</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<source>The group name cannot be empty.</source>
|
|
||||||
<translation>Il nome non può essere vuoto.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>The group name is in use.</source>
|
|
||||||
<translation>Il nome è già in uso.</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>MainWindow</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="14"/>
|
|
||||||
<source>User and Group Settings</source>
|
|
||||||
<translation>Impostazioni utenti e gruppi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="31"/>
|
|
||||||
<source>&Users</source>
|
|
||||||
<translatorcomment>remove &_ in source</translatorcomment>
|
|
||||||
<translation type="unfinished">Utenti</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="50"/>
|
|
||||||
<source>Login Name</source>
|
|
||||||
<translation>Nome Login</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="55"/>
|
|
||||||
<source>User ID</source>
|
|
||||||
<translation>ID utente</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="60"/>
|
|
||||||
<source>Full Name</source>
|
|
||||||
<translation>Nome completo</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="65"/>
|
|
||||||
<source>Group</source>
|
|
||||||
<translation>Gruppo</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="70"/>
|
|
||||||
<source>Home Directory</source>
|
|
||||||
<translation>Cartella Home</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="81"/>
|
|
||||||
<source>Show system users (for advanced users only)</source>
|
|
||||||
<translation>Mostra utenti di sistema (avanzato)</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="89"/>
|
|
||||||
<source>&Groups</source>
|
|
||||||
<translation>Gruppi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="102"/>
|
|
||||||
<source>Name</source>
|
|
||||||
<translation>Nome</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="107"/>
|
|
||||||
<source>Group ID</source>
|
|
||||||
<translation>ID gruppo</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="120"/>
|
|
||||||
<source>toolBar</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="147"/>
|
|
||||||
<source>Add</source>
|
|
||||||
<translation>Aggiungi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="150"/>
|
|
||||||
<source>Add new users or groups</source>
|
|
||||||
<translation>Aggiungi utenti o gruppi nuovi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="160"/>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Cancella</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="163"/>
|
|
||||||
<source>Delete selected item</source>
|
|
||||||
<translation>Cancella selezionato</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="173"/>
|
|
||||||
<source>Properties</source>
|
|
||||||
<translation>Proprietà</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="176"/>
|
|
||||||
<source>edit properties of the selected item</source>
|
|
||||||
<translation>Modifica proprietà</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="186"/>
|
|
||||||
<source>Refresh</source>
|
|
||||||
<translation>Aggiorna</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="189"/>
|
|
||||||
<source>Refresh the lists</source>
|
|
||||||
<translation>Aggiorna lista</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="145"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Errore</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Conferma</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<source>Are you sure you want to delete the selected user?</source>
|
|
||||||
<translation>Si è sicuro di voler cancellare l'utente selezionato?</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Are you sure you want to delete the selected group?</source>
|
|
||||||
<translation>Si è sicuro di voler cancellare il gruppo selezionato?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>UserDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="14"/>
|
|
||||||
<source>User Settings</source>
|
|
||||||
<translation>Impostazioni utente</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="24"/>
|
|
||||||
<source>General</source>
|
|
||||||
<translation>Generali</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="33"/>
|
|
||||||
<source>Full name:</source>
|
|
||||||
<translation>Nome completo:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="43"/>
|
|
||||||
<source>Login name:</source>
|
|
||||||
<translation>Nome al Login:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="53"/>
|
|
||||||
<source>Set password:</source>
|
|
||||||
<translation>Scegli il password:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="77"/>
|
|
||||||
<source>User ID:</source>
|
|
||||||
<translation>ID utente</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="84"/>
|
|
||||||
<source>Main group:</source>
|
|
||||||
<translation>Gruppo principale:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="99"/>
|
|
||||||
<source>Advanced</source>
|
|
||||||
<translation>Avanzate:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="105"/>
|
|
||||||
<source>Login shell:</source>
|
|
||||||
<translation>Shell del login:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="122"/>
|
|
||||||
<source>Home directory:</source>
|
|
||||||
<translation>Cartella home:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="64"/>
|
|
||||||
<source>Change password:</source>
|
|
||||||
<translation>Cambia password:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Errore</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<source>The user ID is in use.</source>
|
|
||||||
<translation>ID già in uso.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<source>The user name cannot be empty.</source>
|
|
||||||
<translation>Il nome non può essere vuoto.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>The user name is in use.</source>
|
|
||||||
<translation>Il nome è già in uso.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Conferma</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Are you sure you want to use an "empty password" for the user?</source>
|
|
||||||
<translation>Si è sicuro di volere un password vuoto per l'utente?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,263 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.1" language="pl_PL">
|
|
||||||
<context>
|
|
||||||
<name>GroupDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="14"/>
|
|
||||||
<source>Group Settings</source>
|
|
||||||
<translation>Ustawienia Grup</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="20"/>
|
|
||||||
<source>Group name:</source>
|
|
||||||
<translation>Nazwa grupy:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="37"/>
|
|
||||||
<source>Group ID:</source>
|
|
||||||
<translation>ID grupy:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="44"/>
|
|
||||||
<source>Users belong to this group:</source>
|
|
||||||
<translation>Użytkownicy należący do tej grupy:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Błąd</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<source>The group ID is in use.</source>
|
|
||||||
<translation>ID grupy jest już w użyciu.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<source>The group name cannot be empty.</source>
|
|
||||||
<translation>Nazwa grupy nie może być pusta.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>The group name is in use.</source>
|
|
||||||
<translation>Ta nazwa grupy jest już w użyciu.</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>MainWindow</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="14"/>
|
|
||||||
<source>User and Group Settings</source>
|
|
||||||
<translation>Ustawienia użytkowników i grup</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="31"/>
|
|
||||||
<source>&Users</source>
|
|
||||||
<translation>&Użytkownicy</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="50"/>
|
|
||||||
<source>Login Name</source>
|
|
||||||
<translation>Login</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="55"/>
|
|
||||||
<source>User ID</source>
|
|
||||||
<translation>ID użytkownika</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="60"/>
|
|
||||||
<source>Full Name</source>
|
|
||||||
<translation>Pełna nazwa</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="65"/>
|
|
||||||
<source>Group</source>
|
|
||||||
<translation>Grupa</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="70"/>
|
|
||||||
<source>Home Directory</source>
|
|
||||||
<translation>Katalog domowy</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="81"/>
|
|
||||||
<source>Show system users (for advanced users only)</source>
|
|
||||||
<translation>Pokaż użytkowników systemowych (dla zaawansowanych)</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="89"/>
|
|
||||||
<source>&Groups</source>
|
|
||||||
<translation>&Grupy</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="102"/>
|
|
||||||
<source>Name</source>
|
|
||||||
<translation>Nazwa</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="107"/>
|
|
||||||
<source>Group ID</source>
|
|
||||||
<translation>ID grupy</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="120"/>
|
|
||||||
<source>toolBar</source>
|
|
||||||
<translation>Pasek narzędzi</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="147"/>
|
|
||||||
<source>Add</source>
|
|
||||||
<translation>Dodaj</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="150"/>
|
|
||||||
<source>Add new users or groups</source>
|
|
||||||
<translation>Dodaj nowych użytkowników lub grupy</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="160"/>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Usuń</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="163"/>
|
|
||||||
<source>Delete selected item</source>
|
|
||||||
<translation>Usuń zaznaczoną pozycję</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="173"/>
|
|
||||||
<source>Properties</source>
|
|
||||||
<translation>Właściwości</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="176"/>
|
|
||||||
<source>edit properties of the selected item</source>
|
|
||||||
<translation>edytuj właściwości dla wybranej pozycji</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="186"/>
|
|
||||||
<source>Refresh</source>
|
|
||||||
<translation>Odśwież</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="189"/>
|
|
||||||
<source>Refresh the lists</source>
|
|
||||||
<translation>Odśwież listę</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="145"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Błąd</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Potwierdzenie</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<source>Are you sure you want to delete the selected user?</source>
|
|
||||||
<translation>Czy na pewno chcesz usunąć wybranego użytkownika?</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Are you sure you want to delete the selected group?</source>
|
|
||||||
<translation>Czy na pewno chcesz usunąć wybraną grupę?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>UserDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="14"/>
|
|
||||||
<source>User Settings</source>
|
|
||||||
<translation>Ustawienia użytkownika</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="24"/>
|
|
||||||
<source>General</source>
|
|
||||||
<translation>Ogólne</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="33"/>
|
|
||||||
<source>Full name:</source>
|
|
||||||
<translation>Pełna nazwa:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="43"/>
|
|
||||||
<source>Login name:</source>
|
|
||||||
<translation>Login:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="53"/>
|
|
||||||
<source>Set password:</source>
|
|
||||||
<translation>Ustaw hasło:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="77"/>
|
|
||||||
<source>User ID:</source>
|
|
||||||
<translation>ID użytkownika:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="84"/>
|
|
||||||
<source>Main group:</source>
|
|
||||||
<translation>Grupa główna:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="99"/>
|
|
||||||
<source>Advanced</source>
|
|
||||||
<translation>Zaawansowane</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="105"/>
|
|
||||||
<source>Login shell:</source>
|
|
||||||
<translation>Powłoka:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="122"/>
|
|
||||||
<source>Home directory:</source>
|
|
||||||
<translation>Katalog domowy:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="64"/>
|
|
||||||
<source>Change password:</source>
|
|
||||||
<translation>Zmień hasło:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Błąd</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<source>The user ID is in use.</source>
|
|
||||||
<translation>To ID użytkownika jest już w użyciu.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<source>The user name cannot be empty.</source>
|
|
||||||
<translation>Nazwa użytkownika nie może być pusta.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>The user name is in use.</source>
|
|
||||||
<translation>Ta nazwa użytkownika jest już w użyciu.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Potwierdzenie</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Are you sure you want to use an "empty password" for the user?</source>
|
|
||||||
<translation>Czy na pewno chcesz użyć "pustego hasła" dla tego użytkownika?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,263 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE TS>
|
|
||||||
<TS version="2.0" language="pt">
|
|
||||||
<context>
|
|
||||||
<name>GroupDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="14"/>
|
|
||||||
<source>Group Settings</source>
|
|
||||||
<translation>Definições de grupo</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="20"/>
|
|
||||||
<source>Group name:</source>
|
|
||||||
<translation>Nome do grupo:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="37"/>
|
|
||||||
<source>Group ID:</source>
|
|
||||||
<translation>ID do grupo:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.ui" line="44"/>
|
|
||||||
<source>Users belong to this group:</source>
|
|
||||||
<translation>Utilizadores pertencentes a este grupo:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Erro</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="83"/>
|
|
||||||
<source>The group ID is in use.</source>
|
|
||||||
<translation>O ID do grupo já está em utilização.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="92"/>
|
|
||||||
<source>The group name cannot be empty.</source>
|
|
||||||
<translation>O nome do grupo não pode estar vazio.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../groupdialog.cpp" line="97"/>
|
|
||||||
<source>The group name is in use.</source>
|
|
||||||
<translation>O nome do grupo já está em utilização.</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>MainWindow</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="14"/>
|
|
||||||
<source>User and Group Settings</source>
|
|
||||||
<translation>Definições de grupo e utilizador</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="31"/>
|
|
||||||
<source>&Users</source>
|
|
||||||
<translation>&Utilizadores</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="50"/>
|
|
||||||
<source>Login Name</source>
|
|
||||||
<translation>Nome de acesso</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="55"/>
|
|
||||||
<source>User ID</source>
|
|
||||||
<translation>ID de utilizador</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="60"/>
|
|
||||||
<source>Full Name</source>
|
|
||||||
<translation>Nome completo</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="65"/>
|
|
||||||
<source>Group</source>
|
|
||||||
<translation>Grupo</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="70"/>
|
|
||||||
<source>Home Directory</source>
|
|
||||||
<translation>Pasta pessoal</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="81"/>
|
|
||||||
<source>Show system users (for advanced users only)</source>
|
|
||||||
<translation>Mostrar utilizadores de sistema</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="89"/>
|
|
||||||
<source>&Groups</source>
|
|
||||||
<translation>&Grupos</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="102"/>
|
|
||||||
<source>Name</source>
|
|
||||||
<translation>Nome</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="107"/>
|
|
||||||
<source>Group ID</source>
|
|
||||||
<translation>ID do grupo</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="120"/>
|
|
||||||
<source>toolBar</source>
|
|
||||||
<translation>Barra de ferramentas</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="147"/>
|
|
||||||
<source>Add</source>
|
|
||||||
<translation>Adicionar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="150"/>
|
|
||||||
<source>Add new users or groups</source>
|
|
||||||
<translation>Adicionar utilizadores ou grupos</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="160"/>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Eliminar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="163"/>
|
|
||||||
<source>Delete selected item</source>
|
|
||||||
<translation>Eliminar item selecionado</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="173"/>
|
|
||||||
<source>Properties</source>
|
|
||||||
<translation>Propriedades</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="176"/>
|
|
||||||
<source>edit properties of the selected item</source>
|
|
||||||
<translation>Editar propriedades do item selecionado</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="186"/>
|
|
||||||
<source>Refresh</source>
|
|
||||||
<translation>Atualizar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.ui" line="189"/>
|
|
||||||
<source>Refresh the lists</source>
|
|
||||||
<translation>Atualizar as listas</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="145"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Erro</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Confirmação</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="191"/>
|
|
||||||
<source>Are you sure you want to delete the selected user?</source>
|
|
||||||
<translation>Tem a certeza que quer eliminar o utilizador selecionado?</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../mainwindow.cpp" line="204"/>
|
|
||||||
<source>Are you sure you want to delete the selected group?</source>
|
|
||||||
<translation>Tem a certeza que quer eliminar o grupo selecionado?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>UserDialog</name>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="14"/>
|
|
||||||
<source>User Settings</source>
|
|
||||||
<translation>Definições de utilizador</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="24"/>
|
|
||||||
<source>General</source>
|
|
||||||
<translation>Geral</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="33"/>
|
|
||||||
<source>Full name:</source>
|
|
||||||
<translation>Nome completo:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="43"/>
|
|
||||||
<source>Login name:</source>
|
|
||||||
<translation>Nome de acesso:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="53"/>
|
|
||||||
<source>Set password:</source>
|
|
||||||
<translation>Definir senha:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="77"/>
|
|
||||||
<source>User ID:</source>
|
|
||||||
<translation>ID de utilizador:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="84"/>
|
|
||||||
<source>Main group:</source>
|
|
||||||
<translation>Grupo principal:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="99"/>
|
|
||||||
<source>Advanced</source>
|
|
||||||
<translation>Avançado</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="105"/>
|
|
||||||
<source>Login shell:</source>
|
|
||||||
<translation>Consola de acesso:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.ui" line="122"/>
|
|
||||||
<source>Home directory:</source>
|
|
||||||
<translation>Pasta pessoal:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="64"/>
|
|
||||||
<source>Change password:</source>
|
|
||||||
<translation>Mudar senha:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>Error</source>
|
|
||||||
<translation>Erro</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="125"/>
|
|
||||||
<source>The user ID is in use.</source>
|
|
||||||
<translation>O ID do utilizador já está em utilização.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="138"/>
|
|
||||||
<source>The user name cannot be empty.</source>
|
|
||||||
<translation>O nome de utilizador não pode estar vazio.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="143"/>
|
|
||||||
<source>The user name is in use.</source>
|
|
||||||
<translation>O nome de utilizador já está em utilização.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation>Confirmação</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../userdialog.cpp" line="159"/>
|
|
||||||
<source>Are you sure you want to use an "empty password" for the user?</source>
|
|
||||||
<translation>Tem a certeza que quer definir uma senha vazia para o utilizador?</translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
|
||||||
</TS>
|
|
@ -1,6 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name[ru_RU]=Пользователи и группы
|
|
||||||
GenericName[ru_RU]=Настройки пользователей и групп
|
|
||||||
Comment[ru_RU]=Настроить пользователей и группы вашей системы
|
|
||||||
|
|
||||||
#TRANSLATIONS_DIR=translations
|
|
@ -0,0 +1,393 @@
|
|||||||
|
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||||
|
* (c)LGPL2+
|
||||||
|
*
|
||||||
|
* LXQt - a lightweight, Qt based, desktop toolset
|
||||||
|
* http://lxqt.org
|
||||||
|
*
|
||||||
|
* Copyright: 2016 LXQt team
|
||||||
|
* Authors:
|
||||||
|
* Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
|
||||||
|
*
|
||||||
|
* This program or library is free software; you can redistribute it
|
||||||
|
* and/or modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
* Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* END_COMMON_COPYRIGHT_HEADER */
|
||||||
|
|
||||||
|
#include "usermanager.h"
|
||||||
|
#include <QDebug>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <QFileSystemWatcher>
|
||||||
|
#include <QTimer>
|
||||||
|
#include <QProcess>
|
||||||
|
#include <QFile>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
static const QString PASSWD_FILE = QStringLiteral("/etc/passwd");
|
||||||
|
static const QString GROUP_FILE = QStringLiteral("/etc/group");
|
||||||
|
static const QString LOGIN_DEFS_FILE = QStringLiteral("/etc/login.defs");
|
||||||
|
|
||||||
|
UserManager::UserManager(QObject *parent):
|
||||||
|
QObject(parent),
|
||||||
|
mWatcher(new QFileSystemWatcher(QStringList() << PASSWD_FILE << GROUP_FILE, this))
|
||||||
|
{
|
||||||
|
loadUsersAndGroups();
|
||||||
|
connect(mWatcher, &QFileSystemWatcher::fileChanged, this, &UserManager::onFileChanged);
|
||||||
|
}
|
||||||
|
|
||||||
|
UserManager::~UserManager() {
|
||||||
|
qDeleteAll(mUsers);
|
||||||
|
qDeleteAll(mGroups);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserManager::loadUsersAndGroups()
|
||||||
|
{
|
||||||
|
// load groups
|
||||||
|
setgrent();
|
||||||
|
struct group * grp;
|
||||||
|
while((grp = getgrent())) {
|
||||||
|
GroupInfo* group = new GroupInfo(grp);
|
||||||
|
mGroups.append(group);
|
||||||
|
// add members of this group
|
||||||
|
for(char** member_name = grp->gr_mem; *member_name; ++member_name) {
|
||||||
|
group->addMember(QString::fromLatin1(*member_name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
endgrent();
|
||||||
|
std::sort(mGroups.begin(), mGroups.end(), [](GroupInfo* g1, GroupInfo* g2) {
|
||||||
|
return g1->name() < g2->name();
|
||||||
|
});
|
||||||
|
|
||||||
|
// load users
|
||||||
|
setpwent();
|
||||||
|
struct passwd * pw;
|
||||||
|
while((pw = getpwent())) {
|
||||||
|
UserInfo* user = new UserInfo(pw);
|
||||||
|
mUsers.append(user);
|
||||||
|
// add groups to this user
|
||||||
|
for(const GroupInfo* group: mGroups) {
|
||||||
|
if(group->hasMember(user->name())) {
|
||||||
|
user->addGroup(group->name());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
endpwent();
|
||||||
|
std::sort(mUsers.begin(), mUsers.end(), [](UserInfo*& u1, UserInfo*& u2) {
|
||||||
|
return u1->name() < u2->name();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// load settings from /etc/login.defs
|
||||||
|
void UserManager::loadLoginDefs() {
|
||||||
|
// FIXME: parse /etc/login.defs to get max UID, max system UID...etc.
|
||||||
|
QFile file(LOGIN_DEFS_FILE);
|
||||||
|
if(file.open(QIODevice::ReadOnly)) {
|
||||||
|
while(!file.atEnd()) {
|
||||||
|
QByteArray line = file.readLine().trimmed();
|
||||||
|
if(line.isEmpty() || line.startsWith('#'))
|
||||||
|
continue;
|
||||||
|
QStringList parts = QString::fromUtf8(line).split(QRegExp("\\s"), QString::SkipEmptyParts);
|
||||||
|
if(parts.length() >= 2) {
|
||||||
|
QString& key = parts[0];
|
||||||
|
QString& val = parts[1];
|
||||||
|
if(key == QLatin1Literal("SYS_UID_MIN")) {
|
||||||
|
}
|
||||||
|
else if(key == QLatin1Literal("SYS_UID_MAX")) {
|
||||||
|
}
|
||||||
|
else if(key == QLatin1Literal("UID_MIN")) {
|
||||||
|
}
|
||||||
|
else if(key == QLatin1Literal("UID_MAX")) {
|
||||||
|
}
|
||||||
|
else if(key == QLatin1Literal("SYS_GID_MIN")) {
|
||||||
|
}
|
||||||
|
else if(key == QLatin1Literal("SYS_GID_MAX")) {
|
||||||
|
}
|
||||||
|
else if(key == QLatin1Literal("GID_MIN")) {
|
||||||
|
}
|
||||||
|
else if(key == QLatin1Literal("GID_MAX")) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UserInfo* UserManager::findUserInfo(const char* name) {
|
||||||
|
auto it = std::find_if(mUsers.begin(), mUsers.end(), [name](const UserInfo* user) {
|
||||||
|
return user->name() == name;
|
||||||
|
});
|
||||||
|
return it != mUsers.end() ? *it : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
UserInfo* UserManager::findUserInfo(QString name) {
|
||||||
|
auto it = std::find_if(mUsers.begin(), mUsers.end(), [name](const UserInfo* user) {
|
||||||
|
return user->name() == name;
|
||||||
|
});
|
||||||
|
return it != mUsers.end() ? *it : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
UserInfo* UserManager::findUserInfo(uid_t uid) {
|
||||||
|
auto it = std::find_if(mUsers.begin(), mUsers.end(), [uid](const UserInfo* user) {
|
||||||
|
return user->uid() == uid;
|
||||||
|
});
|
||||||
|
return it != mUsers.end() ? *it : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
GroupInfo* UserManager::findGroupInfo(const char* name) {
|
||||||
|
auto it = std::find_if(mGroups.begin(), mGroups.end(), [name](const GroupInfo* group) {
|
||||||
|
return group->name() == name;
|
||||||
|
});
|
||||||
|
return it != mGroups.end() ? *it : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
GroupInfo* UserManager::findGroupInfo(QString name) {
|
||||||
|
auto it = std::find_if(mGroups.begin(), mGroups.end(), [name](const GroupInfo* group) {
|
||||||
|
return group->name() == name;
|
||||||
|
});
|
||||||
|
return it != mGroups.end() ? *it : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
GroupInfo* UserManager::findGroupInfo(gid_t gid) {
|
||||||
|
auto it = std::find_if(mGroups.begin(), mGroups.end(), [gid](const GroupInfo* group) {
|
||||||
|
return group->gid() == gid;
|
||||||
|
});
|
||||||
|
return it != mGroups.end() ? *it : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserManager::reload() {
|
||||||
|
mWatcher->addPath(PASSWD_FILE);
|
||||||
|
mWatcher->addPath(GROUP_FILE);
|
||||||
|
|
||||||
|
qDeleteAll(mUsers); // free the old UserInfo objects
|
||||||
|
mUsers.clear();
|
||||||
|
|
||||||
|
qDeleteAll(mGroups); // free the old GroupInfo objects
|
||||||
|
mGroups.clear();
|
||||||
|
|
||||||
|
loadUsersAndGroups();
|
||||||
|
Q_EMIT changed();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserManager::onFileChanged(const QString &path) {
|
||||||
|
// QFileSystemWatcher is very broken and has a ridiculous design.
|
||||||
|
// we get "fileChanged()" when the file is deleted or modified,
|
||||||
|
// but there is no way to distinguish them. If the file is deleted,
|
||||||
|
// the QFileSystemWatcher stop working silently. Hence we workaround
|
||||||
|
// this by remove the paths from the watcher and add them back again
|
||||||
|
// to force the creation of new notifiers.
|
||||||
|
mWatcher->removePath(PASSWD_FILE);
|
||||||
|
mWatcher->removePath(GROUP_FILE);
|
||||||
|
QTimer::singleShot(500, this, &UserManager::reload);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UserManager::pkexec(const QStringList& command, const QByteArray& stdinData) {
|
||||||
|
Q_ASSERT(!command.isEmpty());
|
||||||
|
QProcess process;
|
||||||
|
qDebug() << command;
|
||||||
|
QStringList args;
|
||||||
|
args << QStringLiteral("--disable-internal-agent")
|
||||||
|
<< QStringLiteral("lxqt-admin-user-helper")
|
||||||
|
<< command;
|
||||||
|
process.start(QStringLiteral("pkexec"), args);
|
||||||
|
if(!stdinData.isEmpty()) {
|
||||||
|
process.waitForStarted();
|
||||||
|
process.write(stdinData);
|
||||||
|
process.waitForBytesWritten();
|
||||||
|
process.closeWriteChannel();
|
||||||
|
}
|
||||||
|
process.waitForFinished(-1);
|
||||||
|
QByteArray pkexec_error = process.readAllStandardError();
|
||||||
|
qDebug() << pkexec_error;
|
||||||
|
const bool succeeded = process.exitCode() == 0;
|
||||||
|
if (!succeeded)
|
||||||
|
{
|
||||||
|
QMessageBox * msg = new QMessageBox{QMessageBox::Critical, tr("lxqt-admin-user")
|
||||||
|
, tr("<strong>Action (%1) failed:</strong><br/><pre>%2</pre>").arg(command[0]).arg(pkexec_error.constData())};
|
||||||
|
msg->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||||
|
msg->show();
|
||||||
|
}
|
||||||
|
return succeeded;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UserManager::addUser(UserInfo* user) {
|
||||||
|
if(!user || user->name().isEmpty())
|
||||||
|
return false;
|
||||||
|
QStringList command;
|
||||||
|
command << QStringLiteral("useradd");
|
||||||
|
if(user->uid() != 0) {
|
||||||
|
command << QStringLiteral("-u") << QString::number(user->uid());
|
||||||
|
}
|
||||||
|
if(!user->homeDir().isEmpty()) {
|
||||||
|
command << QStringLiteral("-d") << user->homeDir();
|
||||||
|
command << QStringLiteral("-m"); // create the user's home directory if it does not exist.
|
||||||
|
}
|
||||||
|
if(!user->shell().isEmpty()) {
|
||||||
|
command << QStringLiteral("-s") << user->shell();
|
||||||
|
}
|
||||||
|
if(!user->fullName().isEmpty()) {
|
||||||
|
command << QStringLiteral("-c") << user->fullName();
|
||||||
|
}
|
||||||
|
if(user->gid() != 0) {
|
||||||
|
command << QStringLiteral("-g") << QString::number(user->gid());
|
||||||
|
}
|
||||||
|
if(!user->groups().isEmpty()) { // set group membership
|
||||||
|
command << QStringLiteral("-G") << user->groups().join(',');
|
||||||
|
}
|
||||||
|
command << user->name();
|
||||||
|
return pkexec(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UserManager::modifyUser(UserInfo* user, UserInfo* newSettings) {
|
||||||
|
if(!user || user->name().isEmpty() || !newSettings)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
QStringList command;
|
||||||
|
command << QStringLiteral("usermod");
|
||||||
|
if(newSettings->uid() != user->uid())
|
||||||
|
command << QStringLiteral("-u") << QString::number(newSettings->uid());
|
||||||
|
|
||||||
|
if(newSettings->homeDir() != user->homeDir()) {
|
||||||
|
command << QStringLiteral("-d") << newSettings->homeDir();
|
||||||
|
// command << QStringLiteral("-m"); // create the user's home directory if it does not exist.
|
||||||
|
}
|
||||||
|
if(newSettings->shell() != user->shell()) {
|
||||||
|
command << QStringLiteral("-s") << newSettings->shell();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(newSettings->fullName() != user->fullName())
|
||||||
|
command << QStringLiteral("-c") << newSettings->fullName();
|
||||||
|
if(newSettings->gid() != user->gid())
|
||||||
|
command << QStringLiteral("-g") << QString::number(newSettings->gid());
|
||||||
|
|
||||||
|
if(newSettings->name() != user->name()) // change login name
|
||||||
|
command << QStringLiteral("-l") << newSettings->name();
|
||||||
|
|
||||||
|
if(newSettings->groups() != user->groups()) { // change group membership
|
||||||
|
command << QStringLiteral("-G") << newSettings->groups().join(',');
|
||||||
|
}
|
||||||
|
|
||||||
|
command << user->name();
|
||||||
|
return pkexec(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UserManager::deleteUser(UserInfo* user) {
|
||||||
|
if(!user || user->name().isEmpty())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
QStringList command;
|
||||||
|
command << QStringLiteral("userdel");
|
||||||
|
command << user->name();
|
||||||
|
return pkexec(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UserManager::changePassword(UserInfo* user, QByteArray newPasswd) {
|
||||||
|
// In theory, the current user should be able to use "passwd" to
|
||||||
|
// reset his/her own password without root permission, but...
|
||||||
|
// /usr/bin/passwd is a setuid program running as root and QProcess
|
||||||
|
// does not seem to capture its stdout... So... requires root for now.
|
||||||
|
if(geteuid() == user->uid()) {
|
||||||
|
// FIXME: there needs to be a way to let a user change his/her own password.
|
||||||
|
// Maybe we can use our pkexec helper script to achieve this.
|
||||||
|
}
|
||||||
|
QStringList command;
|
||||||
|
command << QStringLiteral("passwd");
|
||||||
|
command << user->name();
|
||||||
|
|
||||||
|
// we need to type the new password for two times.
|
||||||
|
QByteArray stdinData;
|
||||||
|
stdinData += newPasswd;
|
||||||
|
stdinData += "\n";
|
||||||
|
stdinData += newPasswd;
|
||||||
|
stdinData += "\n";
|
||||||
|
return pkexec(command, stdinData);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UserManager::addGroup(GroupInfo* group) {
|
||||||
|
if(!group || group->name().isEmpty())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
QStringList command;
|
||||||
|
command << QStringLiteral("groupadd");
|
||||||
|
if(group->gid() != 0) {
|
||||||
|
command << QStringLiteral("-g") << QString::number(group->gid());
|
||||||
|
}
|
||||||
|
command << group->name();
|
||||||
|
return pkexec(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UserManager::modifyGroup(GroupInfo* group, GroupInfo* newSettings) {
|
||||||
|
if(!group || group->name().isEmpty() || !newSettings)
|
||||||
|
return false;
|
||||||
|
QStringList command;
|
||||||
|
command << QStringLiteral("groupmod");
|
||||||
|
if(newSettings->gid() != group->gid())
|
||||||
|
command << QStringLiteral("-g") << QString::number(newSettings->gid());
|
||||||
|
if(newSettings->name() != group->name())
|
||||||
|
command << QStringLiteral("-n") << newSettings->name();
|
||||||
|
command << group->name();
|
||||||
|
if(!pkexec(command))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// if group members are changed, use gpasswd to reset members
|
||||||
|
if(newSettings->members() != group->members()) {
|
||||||
|
command.clear();
|
||||||
|
command << QStringLiteral("gpasswd");
|
||||||
|
command << QStringLiteral("-M"); // Set the list of group members.
|
||||||
|
command << newSettings->members().join(',');
|
||||||
|
command << group->name();
|
||||||
|
return pkexec(command);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UserManager::deleteGroup(GroupInfo* group) {
|
||||||
|
if(!group || group->name().isEmpty())
|
||||||
|
return false;
|
||||||
|
QStringList command;
|
||||||
|
command << QStringLiteral("groupdel");
|
||||||
|
command << group->name();
|
||||||
|
return pkexec(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UserManager::changePassword(GroupInfo* group, QByteArray newPasswd) {
|
||||||
|
QStringList command;
|
||||||
|
command << QStringLiteral("gpasswd");
|
||||||
|
command << group->name();
|
||||||
|
|
||||||
|
// we need to type the new password for two times.
|
||||||
|
QByteArray stdinData = newPasswd;
|
||||||
|
stdinData += "\n";
|
||||||
|
stdinData += newPasswd;
|
||||||
|
stdinData += "\n";
|
||||||
|
return pkexec(command, stdinData);
|
||||||
|
}
|
||||||
|
|
||||||
|
const QStringList& UserManager::availableShells() {
|
||||||
|
if(mAvailableShells.isEmpty()) {
|
||||||
|
QFile file("/etc/shells");
|
||||||
|
if(file.open(QIODevice::ReadOnly)) {
|
||||||
|
while(!file.atEnd()) {
|
||||||
|
QByteArray line = file.readLine().trimmed();
|
||||||
|
if(line.isEmpty() || line.startsWith('#'))
|
||||||
|
continue;
|
||||||
|
mAvailableShells.append(QString::fromLocal8Bit(line));
|
||||||
|
}
|
||||||
|
file.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mAvailableShells;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,239 @@
|
|||||||
|
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||||
|
* (c)LGPL2+
|
||||||
|
*
|
||||||
|
* LXQt - a lightweight, Qt based, desktop toolset
|
||||||
|
* http://lxqt.org
|
||||||
|
*
|
||||||
|
* Copyright: 2016 LXQt team
|
||||||
|
* Authors:
|
||||||
|
* Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
|
||||||
|
*
|
||||||
|
* This program or library is free software; you can redistribute it
|
||||||
|
* and/or modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
* Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* END_COMMON_COPYRIGHT_HEADER */
|
||||||
|
|
||||||
|
#ifndef USERMANAGER_H
|
||||||
|
#define USERMANAGER_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QStringList>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <pwd.h>
|
||||||
|
#include <grp.h>
|
||||||
|
|
||||||
|
class QFileSystemWatcher;
|
||||||
|
|
||||||
|
class UserInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit UserInfo():mUid(0), mGid(0) {
|
||||||
|
}
|
||||||
|
explicit UserInfo(struct passwd* pw):
|
||||||
|
mUid(pw->pw_uid),
|
||||||
|
mGid(pw->pw_gid),
|
||||||
|
mName(QString::fromLatin1(pw->pw_name)),
|
||||||
|
mFullName(QString::fromUtf8(pw->pw_gecos)),
|
||||||
|
mShell(QString::fromLocal8Bit(pw->pw_shell)),
|
||||||
|
mHomeDir(QString::fromLocal8Bit(pw->pw_dir))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
uid_t uid()const {
|
||||||
|
return mUid;
|
||||||
|
}
|
||||||
|
void setUid(uid_t uid) {
|
||||||
|
mUid = uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
gid_t gid() const {
|
||||||
|
return mGid;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setGid(gid_t gid) {
|
||||||
|
mGid = gid;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString name() const {
|
||||||
|
return mName;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setName(const QString& name) {
|
||||||
|
mName = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString fullName() const {
|
||||||
|
return mFullName;
|
||||||
|
}
|
||||||
|
void setFullName(const QString& fullName) {
|
||||||
|
mFullName = fullName;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString shell() const {
|
||||||
|
return mShell;
|
||||||
|
}
|
||||||
|
void setShell(const QString& shell) {
|
||||||
|
mShell = shell;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString homeDir() const {
|
||||||
|
return mHomeDir;
|
||||||
|
}
|
||||||
|
void setHomeDir(const QString& homeDir) {
|
||||||
|
mHomeDir = homeDir;
|
||||||
|
}
|
||||||
|
|
||||||
|
const QStringList& groups() const {
|
||||||
|
return mGroups;
|
||||||
|
}
|
||||||
|
|
||||||
|
void addGroup(const QString& group) {
|
||||||
|
mGroups.append(group);
|
||||||
|
}
|
||||||
|
|
||||||
|
void removeGroup(const QString& group) {
|
||||||
|
mGroups.removeOne(group);
|
||||||
|
}
|
||||||
|
|
||||||
|
void removeAllGroups() {
|
||||||
|
mGroups.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool hasGroup(const QString& group) {
|
||||||
|
return mGroups.contains(group);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
uid_t mUid;
|
||||||
|
gid_t mGid;
|
||||||
|
QString mName;
|
||||||
|
QString mFullName;
|
||||||
|
QString mShell;
|
||||||
|
QString mHomeDir;
|
||||||
|
QStringList mGroups;
|
||||||
|
};
|
||||||
|
|
||||||
|
class GroupInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit GroupInfo(): mGid(0) {
|
||||||
|
}
|
||||||
|
explicit GroupInfo(struct group* grp):
|
||||||
|
mGid(grp->gr_gid),
|
||||||
|
mName(grp->gr_name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
gid_t gid() const {
|
||||||
|
return mGid;
|
||||||
|
}
|
||||||
|
void setGid(gid_t gid) {
|
||||||
|
mGid = gid;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString name() const {
|
||||||
|
return mName;
|
||||||
|
}
|
||||||
|
void setName(const QString& name) {
|
||||||
|
mName = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
const QStringList& members() const {
|
||||||
|
return mMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setMembers(const QStringList& members) {
|
||||||
|
mMembers = members;
|
||||||
|
}
|
||||||
|
|
||||||
|
void addMember(const QString& userName) {
|
||||||
|
mMembers.append(userName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void removeMember(const QString& userName) {
|
||||||
|
mMembers.removeOne(userName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void removeAllMemberss() {
|
||||||
|
mMembers.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool hasMember(const QString& userName) const {
|
||||||
|
return mMembers.contains(userName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
gid_t mGid;
|
||||||
|
QString mName;
|
||||||
|
QStringList mMembers;
|
||||||
|
};
|
||||||
|
|
||||||
|
class UserManager : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit UserManager(QObject *parent = 0);
|
||||||
|
~UserManager();
|
||||||
|
|
||||||
|
const QList<UserInfo*>& users() const {
|
||||||
|
return mUsers;
|
||||||
|
}
|
||||||
|
|
||||||
|
const QList<GroupInfo*>& groups() const {
|
||||||
|
return mGroups;
|
||||||
|
}
|
||||||
|
|
||||||
|
const QStringList& availableShells();
|
||||||
|
|
||||||
|
bool addUser(UserInfo* user);
|
||||||
|
bool modifyUser(UserInfo* user, UserInfo* newSettings);
|
||||||
|
bool deleteUser(UserInfo* user);
|
||||||
|
bool changePassword(UserInfo* user, QByteArray newPasswd);
|
||||||
|
|
||||||
|
bool addGroup(GroupInfo* group);
|
||||||
|
bool modifyGroup(GroupInfo* group, GroupInfo* newSettings);
|
||||||
|
bool deleteGroup(GroupInfo* group);
|
||||||
|
bool changePassword(GroupInfo* group, QByteArray newPasswd);
|
||||||
|
|
||||||
|
// FIXME: add APIs to change group membership with "gpasswd"
|
||||||
|
|
||||||
|
UserInfo* findUserInfo(const char* name);
|
||||||
|
UserInfo* findUserInfo(QString name);
|
||||||
|
UserInfo* findUserInfo(uid_t uid);
|
||||||
|
|
||||||
|
GroupInfo* findGroupInfo(const char* name);
|
||||||
|
GroupInfo* findGroupInfo(QString name);
|
||||||
|
GroupInfo* findGroupInfo(gid_t gid);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void loadUsersAndGroups();
|
||||||
|
void loadLoginDefs();
|
||||||
|
bool pkexec(const QStringList &command, const QByteArray &stdinData = QByteArray());
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void changed();
|
||||||
|
|
||||||
|
protected Q_SLOTS:
|
||||||
|
void onFileChanged(const QString &path);
|
||||||
|
void reload();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QList<UserInfo*> mUsers;
|
||||||
|
QList<GroupInfo*> mGroups;
|
||||||
|
QFileSystemWatcher* mWatcher;
|
||||||
|
QStringList mAvailableShells;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // USERMANAGER_H
|
@ -1,3 +0,0 @@
|
|||||||
[Project]
|
|
||||||
Manager=KDevCMakeManager
|
|
||||||
Name=lxqt-admin
|
|
Loading…
Reference in new issue