Compare commits

...

6 Commits

Author SHA1 Message Date
Alf Gaida
68e7af3f55 Adding upstream version 0.11.0. 2016-09-24 12:37:24 +02:00
Alf Gaida
b590848671 Adding upstream version 0.10.96~7-g29e3b89. 2016-07-18 00:27:09 +02:00
Alf Gaida
51dddc2edd Adding upstream version 0.10.0. 2015-11-03 00:39:43 +01:00
Alf Gaida
0547729af2 Adding upstream version 0.9.0+20151024. 2015-10-30 22:07:09 +01:00
Alf Gaida
5e3eb96167 Adding upstream version 0.9.0+20150830. 2015-09-03 00:22:41 +02:00
Yukiharu YABUKI
79a5b525d3
Adding upstream version 0.9.0+20150807.
Signed-off-by: Yukiharu YABUKI <yyabuki@debian.org>
2015-08-19 06:37:05 +09:00
17 changed files with 275 additions and 237 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
build
translations/lxqt-policykit

View File

@ -4,7 +4,7 @@ Upstream Authors:
Copyright:
Copyright (c) 2010-2012 Razor team
Copyright (c) 2012-2014 LXQt team
Copyright (c) 2012-2016 LXQt team
License: GPL-2 and LGPL-2.1+
License: LGPL-2.1+
The full text of the licenses can be found in the 'COPYING' file.

80
CHANGELOG Normal file
View File

@ -0,0 +1,80 @@
lxqt-policykit-0.11.0 / 2016-09-24
==================================
* agentGui: Use default icon
* agentGui: Choose current user in identities combo
* agentGui: Handle setting the prompt correctly
* agent: Handle multiple identities correctly
* Update README.md
* Fixed typo prefered -> preferred
* Add README.md
* build: Use external translations
* ts-files removal (#21)
* Bump year in AUTHORS
* Italian translation update
* Updated Russian translation Removed ru_RU file
* update: lxqt-policykit-agent_hu.ts
0.10.0 / 2015-10-31
===================
* Update translations
* Fix license file
* GPL2 not used - removed in AUTHORS Fixed link to Github LXQt issues Fix wording in manpage - 'can be used by others' was nuts for a file under LGPL root license
* Add Greek (el) translation
* Rename LxQt to LXQt everywhere
* Added german translation.
* Added missing tr() call.
* Handles CMake policy CMP0063
* Use the LXQtCompilerSettings CMake module
* Adds Runtime install COMPONENT
* Use GNUInstallDirs
* Removes unneede entries from include_directories()
* Uses CMAKE_AUTOUIC
* Updates the build system to use the Targets infrastructure
* Remove trailing whitespaces
* Fix naming and links
* Hungarian translation
* - Add a choice option for install binary. Some distributions use libexec instead os default usr/bin installs. It defauls to bin
0.9.0 / 2015-01-19
==================
* File name was ok but language name wasn´t. My mistake.
* Makes filename match translation language
* Portuguese update
* - Unify naming for a unique lxqt. No more suffixes
* CMakeLists.txt maintenance.
* Uses the new translations cmake modules
* Add Russian translation
* CMakeLists.txt cleanups
0.8.0 / 2014-06-28
==================
* Use portable Polkit headers
* Deal with a bug in polkit-qt1 cmake file
* Choose Qt5 version of PolkitQt when build with Qt5.
* Add initial Qt5 support.
* Use new LXQt header files.
0.7.0 / 2014-05-01
==================
* Update AUTHORS and COPYING files
* Add CPack rules for creating tarball
* Removed CMAKE_SOURCE_DIR usage from CMakeLists.txt
* Fix renaming bugs, replacing lxqt-qt with lxde-qt
* Finish the crazy razor=>lxqt renaming tasks.
* Rename binary to lxqt-policykit-agent and migrate to the latest liblxqt.
* Add COPYING and AUTHORS
* Fix authentization->authentication misspelling
* Trtanslations
* Translation support for policykit agent
* preliminary manpages primary for razorqt and usefully in venenux
* Add build option to make policykit optional, even if installed.
* RazorApplication class implemented; all modules ported to this class
* Relicense
* initial but finally working policykit integration (agent)
* initial revision of the policykit integration (non-functional)

View File

@ -1,25 +1,27 @@
cmake_minimum_required(VERSION 2.8.11)
cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
project(lxqt-policykit-agent)
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
include(GNUInstallDirs)
find_package(PkgConfig)
pkg_check_modules(POLKIT_AGENT REQUIRED polkit-agent-1)
message(STATUS "polkit agent: ${POLKIT_AGENT_INCLUDE_DIRS} ${POLKIT_AGENT_LIBRARIES}")
set(POLKIT_AGENT_BINARY_DIR "${CMAKE_INSTALL_BINDIR}" CACHE FILEPATH "Directory for install polkit agent")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
find_package(PolkitQt5-1 REQUIRED)
find_package(Qt5Widgets REQUIRED QUIET)
find_package(Qt5LinguistTools REQUIRED QUIET)
find_package(lxqt REQUIRED QUIET)
find_package(qt5xdg REQUIRED QUIET)
include(${LXQT_USE_FILE})
include(${QTXDG_USE_FILE})
include(LXQtCompilerSettings NO_POLICY_SCOPE)
include(LXQtTranslate)
# Deal with a bug in polkit-qt5
@ -37,8 +39,6 @@ message(STATUS " include: ${POLKITQT-1_INCLUDE_DIR}")
# pkg-config --cflags glib-2.0
# pkg-config --cflags polkit-agent-1
include_directories(
"${CMAKE_CURRENT_SOURCE_DIR}/src"
"${CMAKE_CURRENT_BINARY_DIR}"
${POLKIT_AGENT_INCLUDE_DIRS}
"${POLKITQT-1_INCLUDE_DIR}"
)
@ -68,31 +68,41 @@ lxqt_translate_ts(lxqt-policykit-agent_QM_FILES
${lxqt-policykit-agent_UI}
INSTALL_DIR
"${LXQT_TRANSLATIONS_DIR}/${PROJECT_NAME}"
PULL_TRANSLATIONS
${PULL_TRANSLATIONS}
CLEAN_TRANSLATIONS
${CLEAN_TRANSLATIONS}
TRANSLATIONS_REPO
${TRANSLATIONS_REPO}
TRANSLATIONS_REFSPEC
${TRANSLATIONS_REFSPEC}
REPO_SUBDIR
"lxqt-policykit/${PROJECT_NAME}"
)
lxqt_app_translation_loader(QM_LOADER ${PROJECT_NAME})
qt5_wrap_ui(lxqt-policykit-agent_UI_CPP ${lxqt-policykit-agent_UI})
add_executable(lxqt-policykit-agent
${lxqt-policykit-agent_SRCS}
${lxqt-policykit-agent_MOCS}
${lxqt-policykit-agent_UI_CPP}
${lxqt-policykit-agent_QM_FILES}
${QM_LOADER}
)
target_link_libraries(lxqt-policykit-agent
Qt5::Widgets
${QTXDG_LIBRARY}
${LXQT_LIBRARIES}
lxqt
${POLKITQT-1_CORE_LIBRARY}
${POLKITQT-1_AGENT_LIBRARY}
${POLKIT_AGENT_LIBRARIES}
)
# install
install(TARGETS lxqt-policykit-agent DESTINATION bin)
install(TARGETS
lxqt-policykit-agent
DESTINATION "${POLKIT_AGENT_BINARY_DIR}"
COMPONENT Runtime
)
# building tarball with CPack -------------------------------------------------
include(InstallRequiredSystemLibraries)

View File

@ -1,9 +1,8 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -23,8 +22,7 @@ specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations
below.
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
@ -89,9 +87,9 @@ libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it
becomes a de-facto standard. To achieve this, non-free programs must
be allowed to use the library. A more frequent case is that a free
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
@ -138,8 +136,8 @@ included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control
compilation and installation of the library.
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
@ -305,10 +303,10 @@ of these things:
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at least
three years, to give the same user the materials specified in
Subsection 6a, above, for a charge no more than the cost of
performing this distribution.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
@ -386,10 +384,9 @@ all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply, and the section as a whole is intended to apply in other
circumstances.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
@ -407,11 +404,11 @@ be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License
may add an explicit geographical distribution limitation excluding those
countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.

55
README.md Normal file
View File

@ -0,0 +1,55 @@
# lxqt-policykit
## Overview
lxqt-policykit is the polkit authentification agent of LXQt.
[polkit](https://www.freedesktop.org/wiki/Software/polkit/) is a software framework to handle privileges of processes.
In LXQt it is e. g. used to extend the privileges of the GUI tools of [lxqt-admin](https://github.com/lxde/lxqt-admin/). These are launched by a regular user. But in order to apply the settings they deal with root privileges are needed and acquired via polkit.
Among the various components of polkit the authentication agent is the one to query the user for credentials by dialogue windows like this one of lxqt-policykit.
![lxqt-policykit: GUI](lxqt-policykit_gui.png)
While there's only a single implementation of all other polkit components various different authentication agents are provided by the various desktop environments. Basically these can be used interchangeably, that is lxqt-policykit can be used in an LXDE session or lxpolkit, the authentication agent of LXDE, can be used in an Xfce session. Most of the time it's better to use the implementation provided by a distinct desktop environment as it integrates better, though.
Technically, lxqt-policykit is just a single binary `lxqt-policykit-agent` which is running as [LXQt Module](https://github.com/lxde/lxqt-session#lxqt-modules) and launching the GUI on demand.
Note that the naming lxqt-policykit is strictly speaking an anachronism. It refers to Policykit which was the predecessor
of polkit. The name wasn't changed when Policykit was replaced by polkit as both provide roughly the same features albeit
they are technically different.
## Installing
### Compiling sources
Runtime dependencies are polkit-qt5 and [liblxqt](https://github.com/lxde/liblxqt).
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` has to be set to `/usr` on most operating systems.
To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual.
### Binary packages
#### Arch Linux
The latest release is provided by package `lxqt-policykit` in repository community, the actual master checkout can be
compiled by packages `lxqt-policykit-git` from the [AUR](https://aur.archlinux.org).
#### Debian
Package `lxqt-policykit` is available in the official repositories as of Debian stretch. For now it is comprising the
translations as well but these will probably be outsourced in package `lxqt-policykit-l10n` one day.
#### Fedora
Package `lxqt-policykit` is available as of Fedora 22.
#### openSUSE
Package `lxqt-policykit` is providing the binary, `lxqt-policykit-lang` the translations. Both are available as of
openSUSE Leap 42.1.
## Configuration, Usage
Like all LXQt Modules `lxqt-policykit-agent` can be adjusted from section "Basic Settings" in configuration dialogue [LXQt Session Settings](https://github.com/lxde/lxqt-session#lxqt-session-settings) of [lxqt-session](https://github.com/lxde/lxqt-session).
From a user's point of view the usage is limited to interacting with the GUI as seen above.

BIN
lxqt-policykit_gui.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,18 +1,18 @@
.TH lxqt-policykit-agent "1" "September 2012" "LxQt\-qt\ 0.5.0" "LxQt\-Qt\ Module"
.TH lxqt-policykit-agent "1" "September 2012" "LXQt\ 0.5.0" "LXQt\ Module"
.SH NAME
lxqt-policykit-agent \- Polkit agent for \fBLXDE-Qt\fR: the faster and lighter QT Desktop Environment
lxqt-policykit-agent \- Polkit agent for \fBLXQt\fR: the faster and lighter QT Desktop Environment
.SH SYNOPSIS
.B lxqt-policykit-agent
[\fICurrently No command line arguments\fR]
.br
.SH DESCRIPTION
This module handles policykit for \fBLXDE-Qt\fR. The polkit module, will perform
This module handles policykit for \fBLXQt\fR. The polkit module, will perform
security tast over scale action privilegies.
.P
The \fBLXDE-Qt modules\fR are desktop independent tools,
The \fBLXQt modules\fR are desktop independent tools,
and operate as daemons for the local user for desktop specific operations.
.P
\fBLXDE-Qt\fR is an advanced, easy-to-use, and fast desktop environment based on Qt
\fBLXQt\fR is an advanced, easy-to-use, and fast desktop environment based on Qt
technologies, ships several core desktop components, all of which are optional:
.P
* Panel
@ -25,28 +25,28 @@ technologies, ships several core desktop components, all of which are optional:
.P
These components perform similar actions to those available in other desktop
environments, and their name is self-descriptive. They are usually not launched
by hand but automatically, when choosing a LxQt\-Qt session in the Display
by hand but automatically, when choosing a LXQt\-Qt session in the Display
Manager.
.SH BEHAVIOR
The module detected on shares privilege escalation, and maintain a security dialog
that ask for the user's key need for action.
.SH AUTOSTART
The module only are showed on \fBLXDE-Qt\fR desktop, but u can create an autostart action
for u prefered desktop environment.
The module only are showed on \fBLXQt\fR desktop, but u can create an autostart action
for u preferred desktop environment.
.SH "REPORTING BUGS"
Report bugs to https://github.com/LXDE-Qt/LXDE-Qt/issues
Report bugs to https://github.com/lxde/lxqt/issues
.SH "SEE ALSO"
\fBLXDE-Qt\fR it has been tailored for users who value simplicity, speed, and
\fBLXQt\fR it has been tailored for users who value simplicity, speed, and
an intuitive interface, also intended for less powerful machines. See:
.\" any module must refers to session app, for more info on start it
.P
\fBlxqt-session.1\fR LXDE-Qt for manage LXDE-Qt complete environment
\fBlxqt-session.1\fR LXQt for manage LXQt complete environment
.P
\fBstart-lxqt.1\fR LXDE-Qt display management independient starup.
\fBstart-lxqt.1\fR LXQt display management independient starup.
.P
\fBlxqt-config-session.1\fR LXDE-Qt application for performing session autostart applications
\fBlxqt-config-session.1\fR LXQt application for performing session autostart applications
.P
.SH AUTHOR
This manual page was created by \fBPICCORO Lenz McKAY\fR \fI<mckaygerhard@gmail.com>\fR
for \fBLXDE-Qt\fR project and VENENUX GNU/Linux but can be used by others.
for \fBLXQt\fR project and VENENUX GNU/Linux.

View File

@ -40,10 +40,10 @@ int main(int argc, char *argv[])
g_type_init();
#endif
LxQt::Application app(argc, argv);
LXQt::Application app(argc, argv);
app.setQuitOnLastWindowClosed(false);
LxQtPolicykit::PolicykitAgent agent;
LXQtPolicykit::PolicykitAgent agent;
return app.exec();
}

View File

@ -36,7 +36,7 @@
#include "policykitagentgui.h"
namespace LxQtPolicykit
namespace LXQtPolicykit
{
PolicykitAgent::PolicykitAgent(QObject *parent)
@ -68,7 +68,7 @@ void PolicykitAgent::initiateAuthentication(const QString &actionId,
{
if (m_inProgress)
{
QMessageBox::information(0, tr("PolicyKit Information"), "Another authentization in progress. Please try it again later");
QMessageBox::information(0, tr("PolicyKit Information"), tr("Another authentization in progress. Please try it again later."));
return;
}
m_inProgress = true;
@ -116,27 +116,36 @@ void PolicykitAgent::request(const QString &request, bool echo)
PolkitQt1::Identity identity = m_SessionIdentity[session];
m_gui->setPrompt(identity, request, echo);
if (m_gui->exec())
session->setResponse(m_gui->response());
else
session->setResponse("");
connect(m_gui, &QDialog::finished, [this, session] (int result)
{
if (result == QDialog::Accepted && m_gui->identity() == m_SessionIdentity[session].toString())
session->setResponse(m_gui->response());
else
session->cancel();
});
m_gui->show();
}
void PolicykitAgent::completed(bool gainedAuthorization)
{
PolkitQt1::Agent::Session * session = qobject_cast<PolkitQt1::Agent::Session *>(sender());
Q_ASSERT(session);
Q_ASSERT(m_gui);
if (!gainedAuthorization)
if (m_gui->identity() == m_SessionIdentity[session].toString())
{
QMessageBox::information(0, tr("Authorization Failed"), tr("Authorization failed for some reason"));
if (!gainedAuthorization)
{
QMessageBox::information(0, tr("Authorization Failed"), tr("Authorization failed for some reason"));
}
// Note: the setCompleted() must be called exacly once (as the
// AsyncResult is shared by all the sessions)
session->result()->setCompleted();
m_inProgress = false;
}
session->result()->setCompleted();
delete session;
m_inProgress = false;
}
void PolicykitAgent::showError(const QString &text)

View File

@ -38,7 +38,7 @@
#include <QApplication>
#include <QHash>
namespace LxQtPolicykit
namespace LXQtPolicykit
{
class PolicykitAgentGUI;

View File

@ -24,11 +24,12 @@
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#include <XdgIcon>
#include "policykitagentgui.h"
namespace LxQtPolicykit
#include <QIcon>
#include "policykitagentgui.h"
#include <unistd.h>
namespace LXQtPolicykit
{
@ -44,30 +45,47 @@ PolicykitAgentGUI::PolicykitAgentGUI(const QString &actionId,
Q_UNUSED(details); // it seems too confusing for end user (=me)
messageLabel->setText(message);
iconLabel->setPixmap(XdgIcon::fromTheme(iconName).pixmap(64, 64));
QIcon icon = QIcon::fromTheme(iconName);
if (icon.isNull())
icon = QIcon::fromTheme(QLatin1String("dialog-question"));
iconLabel->setPixmap(icon.pixmap(64, 64));
const uid_t current_uid = getuid();
int current_user_index = -1;
foreach (PolkitQt1::Identity identity, identities)
{
m_identityMap[identity.toString()] = identity;
const int i = identityComboBox->count(); // index of the added item
identityComboBox->addItem(identity.toString());
PolkitQt1::UnixUserIdentity const * const u_id = static_cast<PolkitQt1::UnixUserIdentity *>(&identity);
if (u_id != nullptr && u_id->uid() == current_uid)
current_user_index = i;
}
if (current_user_index != -1)
identityComboBox->setCurrentIndex(current_user_index);
connect(identityComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &PolicykitAgentGUI::onIdentityChanged);
passwordEdit->setFocus(Qt::OtherFocusReason);
}
void PolicykitAgentGUI::setPrompt(const PolkitQt1::Identity &identity, const QString &text, bool echo)
{
int ix = identityComboBox->findText(identity.toString());
const int ix = identityComboBox->findText(identity.toString());
if (ix != -1)
{
identityComboBox->setCurrentIndex(ix);
passwordEdit->setFocus(Qt::OtherFocusReason);
identityComboBox->setItemData(ix, text, RolePromptText);
identityComboBox->setItemData(ix, echo, RolePromptEcho);
if (ix == identityComboBox->currentIndex())
{
promptLabel->setText(text);
passwordEdit->setEchoMode(echo ? QLineEdit::Normal : QLineEdit::Password);
}
}
promptLabel->setText(text);
passwordEdit->setEchoMode(echo ? QLineEdit::Normal : QLineEdit::Password);
}
PolkitQt1::Identity PolicykitAgentGUI::identity()
QString PolicykitAgentGUI::identity()
{
return m_identityMap[identityComboBox->currentText()];
Q_ASSERT(identityComboBox->currentIndex() != -1);
return identityComboBox->currentText();
}
QString PolicykitAgentGUI::response()
@ -75,4 +93,14 @@ QString PolicykitAgentGUI::response()
return passwordEdit->text();
}
void PolicykitAgentGUI::onIdentityChanged(int index)
{
QVariant text = identityComboBox->itemData(index, RolePromptText);
QVariant echo = identityComboBox->itemData(index, RolePromptEcho);
if (text != QVariant{})
promptLabel->setText(text.toString());
if (echo != QVariant{})
passwordEdit->setEchoMode(echo.toBool() ? QLineEdit::Normal : QLineEdit::Password);
}
} // namespace

View File

@ -33,13 +33,20 @@
#include "ui_policykitagentgui.h"
namespace LxQtPolicykit
namespace LXQtPolicykit
{
class PolicykitAgentGUI : public QDialog, public Ui::PolicykitAgentGUI
{
Q_OBJECT
private:
enum DataRoles
{
RolePromptText = Qt::UserRole
, RolePromptEcho
};
public:
PolicykitAgentGUI(const QString &actionId,
const QString &message,
@ -48,11 +55,14 @@ public:
const PolkitQt1::Identity::List &identities);
void setPrompt(const PolkitQt1::Identity &identity, const QString &text, bool echo);
PolkitQt1::Identity identity();
/*! \brief Returns currently selected identity (serialized by toString())
*/
QString identity();
QString response();
private:
QHash<QString,PolkitQt1::Identity> m_identityMap;
public slots:
void onIdentityChanged(int index);
};
} // namespace

View File

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="en_US">
<context>
<name>PolicykitAgentGUI</name>
<message>
<source>Authentication Required</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Identity:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LxQtPolicykit::PolicykitAgent</name>
<message>
<source>PolicyKit Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Authorization Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Authorization failed for some reason</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PolicyKit Error</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="pt">
<context>
<name>PolicykitAgentGUI</name>
<message>
<source>Authentication Required</source>
<translation>Requer autenticação</translation>
</message>
<message>
<source>Identity:</source>
<translation>Identidade:</translation>
</message>
<message>
<source>Password:</source>
<translation>Senha:</translation>
</message>
</context>
<context>
<name>LxQtPolicykit::PolicykitAgent</name>
<message>
<source>PolicyKit Information</source>
<translation>Informaçoes PolicyKit</translation>
</message>
<message>
<source>Authorization Failed</source>
<translation>Falha de autenticação</translation>
</message>
<message>
<source>Authorization failed for some reason</source>
<translation>A autenticação falhou por alguma razão</translation>
</message>
<message>
<source>PolicyKit Error</source>
<translation>Erro PolicyKit</translation>
</message>
</context>
</TS>

View File

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru">
<context>
<name>LxQtPolicykit::PolicykitAgent</name>
<message>
<source>PolicyKit Information</source>
<translation>Информация PolicyKit</translation>
</message>
<message>
<source>Authorization Failed</source>
<translation>Авторизация не удалась</translation>
</message>
<message>
<source>Authorization failed for some reason</source>
<translation>Авторизация не удалась по какой-то причине</translation>
</message>
<message>
<source>PolicyKit Error</source>
<translation>Ошибка PolicyKit</translation>
</message>
</context>
<context>
<name>PolicykitAgentGUI</name>
<message>
<source>Authentication Required</source>
<translation>Требуется аутентификация</translation>
</message>
<message>
<source>Identity:</source>
<translation>Идентификация:</translation>
</message>
<message>
<source>Password:</source>
<translation>Пароль:</translation>
</message>
</context>
</TS>

View File

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
<name>LxQtPolicykit::PolicykitAgent</name>
<message>
<source>PolicyKit Information</source>
<translation>Информация PolicyKit</translation>
</message>
<message>
<source>Authorization Failed</source>
<translation>Авторизация не удалась</translation>
</message>
<message>
<source>Authorization failed for some reason</source>
<translation>Авторизация не удалась по какой-то причине</translation>
</message>
<message>
<source>PolicyKit Error</source>
<translation>Ошибка PolicyKit</translation>
</message>
</context>
<context>
<name>PolicykitAgentGUI</name>
<message>
<source>Authentication Required</source>
<translation>Требуется аутентификация</translation>
</message>
<message>
<source>Identity:</source>
<translation>Идентификация:</translation>
</message>
<message>
<source>Password:</source>
<translation>Пароль:</translation>
</message>
</context>
</TS>