Signed-off-by: Andrew Lee (李健秋) <ajqlee@debian.org>ubuntu/cosmic upstream/0.9.0
commit
c9e09e4533
@ -0,0 +1,22 @@
|
||||
moc_*.cxx
|
||||
qrc_*.cxx
|
||||
cmake_install.cmake
|
||||
cmake_uninstall.cmake
|
||||
Makefile
|
||||
CMakeFiles
|
||||
CMakeCache.txt
|
||||
CPackConfig.cmake
|
||||
CPackSourceConfig.cmake
|
||||
lib*.so
|
||||
lib*.so.*
|
||||
ui_*.h
|
||||
*.qm
|
||||
lxqt-appswitcher/lxqt-appswitcher
|
||||
lxqt-desktop/lxqt-desktop
|
||||
lxqt-panel/panel/lxqt-panel
|
||||
*~
|
||||
*.autosave
|
||||
*-swp
|
||||
CMakeLists.txt.user*
|
||||
/build
|
||||
nbproject/
|
@ -0,0 +1,15 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[lxde-qt.liblxqt]
|
||||
file_filter = translations/liblxqt_<lang>.ts
|
||||
source_file = translations/source.ts
|
||||
source_lang = en
|
||||
type = QT
|
||||
|
||||
#[flacon.About_Translators]
|
||||
#source_file = translations/src.translators.info
|
||||
#source_lang = en
|
||||
#file_filter = translations/translators_<lang>.info
|
||||
#type = MOZILLAPROPERTIES
|
||||
|
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
tx pull --all --force
|
@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
LUPDATE_OPTIONS="-noobsolete"
|
||||
LUPDATE_OPTIONS="${LUPDATE_OPTIONS} -locations none "
|
||||
TS_FILE="../translations/source.ts"
|
||||
|
||||
LUPDATE=$(which lupdate-qt4 2>/dev/null)
|
||||
|
||||
[ -z "${LUPDATE}" ] && LUPDATE=$(which lupdate 2>/dev/null)
|
||||
|
||||
if [ -z "${LUPDATE}" ]; then
|
||||
echo "The lupdate program not found."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
${LUPDATE} ${LUPDATE_OPTIONS} .. -ts ${TS_FILE}
|
||||
|
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
./updateSrc.sh && tx push --source
|
||||
|
@ -0,0 +1,10 @@
|
||||
Upstream Authors:
|
||||
LXQt team: http://lxqt.org
|
||||
Razor team: http://razor-qt.org
|
||||
|
||||
Copyright:
|
||||
Copyright (c) 2010-2012 Razor team
|
||||
Copyright (c) 2012-2014 LXQt team
|
||||
|
||||
License: GPL-2 and LGPL-2.1+
|
||||
The full text of the licenses can be found in the 'COPYING' file.
|
@ -0,0 +1,350 @@
|
||||
cmake_minimum_required(VERSION 2.8.11)
|
||||
|
||||
project(liblxqt)
|
||||
|
||||
set(LXQT_MAJOR_VERSION 0)
|
||||
set(LXQT_MINOR_VERSION 9)
|
||||
set(LXQT_PATCH_VERSION 0)
|
||||
|
||||
# Set default installation paths
|
||||
set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "Installation path for libraries")
|
||||
set(LXQT_PKG_CONFIG_DESCRIPTION "Shared library for LXQt applications")
|
||||
|
||||
set(PUB_HDRS
|
||||
aboutdialog/lxqtaboutdialog.h
|
||||
addplugindialog/lxqtaddplugindialog.h
|
||||
lxqthtmldelegate.h
|
||||
lxqtsettings.h
|
||||
lxqtplugininfo.h
|
||||
lxqtpowermanager.h
|
||||
lxqtscreensaver.h
|
||||
lxqtapplication.h
|
||||
lxqtsingleapplication.h
|
||||
lxqttranslator.h
|
||||
lxqtprogramfinder.h
|
||||
|
||||
configdialog/lxqtconfigdialog.h
|
||||
configdialog/lxqtpageselectwidget.h
|
||||
|
||||
lxqtpower/lxqtpower.h
|
||||
lxqtnotification.h
|
||||
lxqtautostartentry.h
|
||||
lxqtgridlayout.h
|
||||
lxqtrotatedwidget.h
|
||||
lxqtglobals.h
|
||||
)
|
||||
|
||||
set(PUBLIC_CLASSES
|
||||
AboutDialog
|
||||
HtmlDelegate
|
||||
Settings
|
||||
PluginInfo
|
||||
PowerManager
|
||||
AddPluginDialog
|
||||
ScreenSaver
|
||||
Application
|
||||
SingleApplication
|
||||
Translator
|
||||
ProgramFinder
|
||||
|
||||
ConfigDialog
|
||||
PageSelectWidget
|
||||
|
||||
Power
|
||||
Notification
|
||||
AutostartEntry
|
||||
GridLayout
|
||||
RotatedWidget
|
||||
)
|
||||
|
||||
set(PRIV_HDRS
|
||||
aboutdialog/lxqtaboutdialog_p.h
|
||||
aboutdialog/technicalinfo.h
|
||||
translatorsinfo/translatorsinfo.h
|
||||
)
|
||||
|
||||
set(SRCS
|
||||
aboutdialog/lxqtaboutdialog.cpp
|
||||
aboutdialog/technicalinfo.cpp
|
||||
lxqthtmldelegate.cpp
|
||||
lxqtplugininfo.cpp
|
||||
lxqtpowermanager.cpp
|
||||
addplugindialog/lxqtaddplugindialog.cpp
|
||||
lxqtsettings.cpp
|
||||
lxqtscreensaver.cpp
|
||||
lxqtapplication.cpp
|
||||
lxqtsingleapplication.cpp
|
||||
lxqttranslator.cpp
|
||||
lxqtprogramfinder.cpp
|
||||
|
||||
configdialog/lxqtconfigdialog.cpp
|
||||
configdialog/lxqtpageselectwidget.cpp
|
||||
|
||||
lxqtpower/lxqtpower.cpp
|
||||
lxqtpower/lxqtpowerproviders.cpp
|
||||
lxqtautostartentry.cpp
|
||||
lxqtnotification.cpp
|
||||
lxqtgridlayout.cpp
|
||||
lxqtrotatedwidget.cpp
|
||||
translatorsinfo/translatorsinfo.cpp
|
||||
)
|
||||
|
||||
set(MOCS
|
||||
aboutdialog/lxqtaboutdialog.h
|
||||
aboutdialog/lxqtaboutdialog_p.h
|
||||
addplugindialog/lxqtaddplugindialog.h
|
||||
lxqthtmldelegate.h
|
||||
lxqtpowermanager.h
|
||||
lxqtsettings.h
|
||||
lxqtscreensaver.h
|
||||
lxqtapplication.h
|
||||
|
||||
configdialog/lxqtconfigdialog.h
|
||||
configdialog/lxqtpageselectwidget.h
|
||||
|
||||
lxqtnotification.h
|
||||
lxqtnotification_p.h
|
||||
lxqtpower/lxqtpower.h
|
||||
lxqtpower/lxqtpowerproviders.h
|
||||
lxqtgridlayout.h
|
||||
lxqtrotatedwidget.h
|
||||
)
|
||||
|
||||
set(FORMS
|
||||
aboutdialog/lxqtaboutdialog.ui
|
||||
configdialog/lxqtconfigdialog.ui
|
||||
addplugindialog/lxqtaddplugindialog.ui
|
||||
)
|
||||
|
||||
# additional cmake files
|
||||
list(APPEND CMAKE_MODULE_PATH
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules
|
||||
)
|
||||
|
||||
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
find_package(Qt5Widgets REQUIRED QUIET)
|
||||
find_package(Qt5DBus REQUIRED QUIET)
|
||||
find_package(Qt5X11Extras REQUIRED QUIET)
|
||||
find_package(Qt5LinguistTools REQUIRED QUIET)
|
||||
find_package(Qt5Xdg REQUIRED QUIET)
|
||||
find_package(KF5WindowSystem REQUIRED QUIET)
|
||||
message(STATUS "Building with Qt ${Qt5Core_VERSION_STRING}")
|
||||
|
||||
QT5_WRAP_UI(UIS ${FORMS})
|
||||
|
||||
QT5_ADD_DBUS_INTERFACE(SRCS
|
||||
dbus/org.freedesktop.Notifications.xml
|
||||
notifications_interface
|
||||
)
|
||||
|
||||
QT5_ADD_DBUS_ADAPTOR(SRCS
|
||||
dbus/org.lxqt.SingleApplication.xml
|
||||
lxqtsingleapplication.h LxQt::SingleApplication
|
||||
)
|
||||
|
||||
set(LXQT_QT_VERSION "5")
|
||||
|
||||
# KF5WindowSystem is missing here. KF5WindowSystem doesn't provide an .pc file.
|
||||
set(LXQT_PKG_CONFIG_REQUIRES "Qt5Widgets Qt5Xml Qt5DBus Qt5X11Extras")
|
||||
|
||||
include(${QTXDG_USE_FILE})
|
||||
|
||||
include_directories(
|
||||
"${QTXDG_INCLUDE_DIRS}"
|
||||
)
|
||||
|
||||
# Standard directories for installation
|
||||
include(GNUInstallDirs)
|
||||
|
||||
set(LXQT_VERSION ${LXQT_MAJOR_VERSION}.${LXQT_MINOR_VERSION}.${LXQT_PATCH_VERSION})
|
||||
set(LXQT_LIBRARY_NAME "lxqt" CACHE STRING "lxqt")
|
||||
set(LXQT_RELATIVE_SHARE_DIR "${LXQT_LIBRARY_NAME}")
|
||||
set(LXQT_SHARE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${LXQT_RELATIVE_SHARE_DIR}")
|
||||
set(LXQT_RELATIVE_TRANSLATIONS_DIR "${LXQT_LIBRARY_NAME}/translations")
|
||||
set(LXQT_TRANSLATIONS_DIR "${LXQT_SHARE_DIR}/translations")
|
||||
|
||||
set(LXQT_INTREE_INCLUDE_DIR "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/include")
|
||||
set(LXQT_INTREE_TARGETS_FILE "${CMAKE_BINARY_DIR}/${LXQT_LIBRARY_NAME}-targets.cmake")
|
||||
|
||||
set(LXQT_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}/${LXQT_LIBRARY_NAME}")
|
||||
set(LXQT_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/share/cmake")
|
||||
|
||||
include(cmake/FindInstallConfigPath.cmake)
|
||||
include(create_portable_headers)
|
||||
|
||||
## Translations
|
||||
include(LXQtTranslateTs)
|
||||
|
||||
lxqt_translate_ts(QM_FILES
|
||||
UPDATE_TRANSLATIONS
|
||||
${UPDATE_TRANSLATIONS}
|
||||
SOURCES
|
||||
${SRCS}
|
||||
${FORMS}
|
||||
INSTALL_DIR
|
||||
${LXQT_TRANSLATIONS_DIR}/${PROJECT_NAME}
|
||||
)
|
||||
|
||||
message(STATUS "")
|
||||
message(STATUS "liblxqt version: ${LXQT_VERSION}")
|
||||
message(STATUS "")
|
||||
|
||||
|
||||
# Copy public headers
|
||||
foreach(h ${PUB_HDRS})
|
||||
get_filename_component(bh ${h} NAME)
|
||||
configure_file(${h} "${LXQT_INTREE_INCLUDE_DIR}/LXQt/${bh}" COPYONLY)
|
||||
endforeach()
|
||||
|
||||
# Create the portable headers
|
||||
create_portable_headers(INTREE_PORTABLE_HEADERS ${LXQT_INTREE_INCLUDE_DIR}/LXQt ${PUBLIC_CLASSES})
|
||||
check_portable_headers(H_FILES ${PUB_HDRS} LINKS ${INTREE_PORTABLE_HEADERS})
|
||||
|
||||
#************************************************
|
||||
# Create in-tree build infrastructure
|
||||
#************************************************
|
||||
set(CFG_LXQT_INCLUDE_DIR ${LXQT_INTREE_INCLUDE_DIR})
|
||||
set(CFG_LXQT_LIBRARY ${LXQT_LIBRARY_NAME})
|
||||
set(CFG_LXQT_USE_FILE ${CMAKE_BINARY_DIR}/${LXQT_LIBRARY_NAME}_use.cmake)
|
||||
set(CFG_LXQT_TARGETS_FILE ${LXQT_INTREE_TARGETS_FILE})
|
||||
set(CFG_LXQT_CMAKE_MODULES_DIR "${PROJECT_SOURCE_DIR}/cmake/modules")
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/lxqtX-config.cmake.in
|
||||
${CMAKE_BINARY_DIR}/${LXQT_LIBRARY_NAME}-config.cmake
|
||||
@ONLY
|
||||
)
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/lxqt_use.cmake.in
|
||||
${CMAKE_BINARY_DIR}/${LXQT_LIBRARY_NAME}_use.cmake
|
||||
@ONLY
|
||||
)
|
||||
|
||||
include(${CFG_LXQT_USE_FILE})
|
||||
|
||||
|
||||
#************************************************
|
||||
# Create installable build infrastructure
|
||||
#************************************************
|
||||
set(CFG_LXQT_INCLUDE_DIR "${LXQT_INSTALL_INCLUDE_DIR}")
|
||||
set(CFG_LXQT_LIBRARY ${LXQT_LIBRARY_NAME})
|
||||
set(CFG_LXQT_USE_FILE "${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}/${LXQT_LIBRARY_NAME}_use.cmake")
|
||||
set(CFG_LXQT_TARGETS_FILE "${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}/${LXQT_LIBRARY_NAME}-targets.cmake")
|
||||
set(CFG_LXQT_CMAKE_MODULES_DIR "${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}/modules")
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/lxqtX-config.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/install/${LXQT_LIBRARY_NAME}-config.cmake"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
# use gcc visibility feature to decrease unnecessary exported symbols
|
||||
if (CMAKE_COMPILER_IS_GNUCXX)
|
||||
# set visibility to hidden to hide symbols, unlesss they're exported
|
||||
# manually in the code
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wl,-no-undefined -Wall")
|
||||
endif()
|
||||
add_definitions(-DCOMPILE_LIBLXQT)
|
||||
|
||||
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/lxqt_use.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/install/${LXQT_LIBRARY_NAME}_use.cmake
|
||||
@ONLY
|
||||
)
|
||||
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/install/${LXQT_LIBRARY_NAME}-config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/install/${LXQT_LIBRARY_NAME}_use.cmake
|
||||
DESTINATION ${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}
|
||||
COMPONENT Devel
|
||||
)
|
||||
|
||||
install(EXPORT
|
||||
${LXQT_LIBRARY_NAME}-targets
|
||||
DESTINATION ${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}
|
||||
COMPONENT Devel
|
||||
)
|
||||
|
||||
file(GLOB toInstallModules
|
||||
"${PROJECT_SOURCE_DIR}/cmake/modules/*.cmake"
|
||||
"${PROJECT_SOURCE_DIR}/cmake/modules/*.in"
|
||||
)
|
||||
|
||||
install(
|
||||
FILES ${toInstallModules}
|
||||
DESTINATION "${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}/modules"
|
||||
COMPONENT Devel
|
||||
)
|
||||
|
||||
|
||||
include(translatorsinfo/CMakeLists.txt)
|
||||
get_translatorsinfo_qrc(translatorsinfo_qrc)
|
||||
qt5_add_resources(QRC_CXX_SOURCES ${translatorsinfo_qrc})
|
||||
|
||||
add_library(${LXQT_LIBRARY_NAME}
|
||||
SHARED ${PUB_HDRS}
|
||||
${PRIV_HDRS}
|
||||
${SRCS}
|
||||
${dbus_generated}
|
||||
${UIS} ${MOCS}
|
||||
${QM_FILES}
|
||||
${QRC_CXX_SOURCES}
|
||||
|
||||
)
|
||||
|
||||
target_link_libraries(${LXQT_LIBRARY_NAME}
|
||||
KF5::WindowSystem
|
||||
Qt5::Widgets
|
||||
Qt5::DBus
|
||||
Qt5::X11Extras
|
||||
${QTXDG_LIBRARIES}
|
||||
)
|
||||
|
||||
set_target_properties(${LXQT_LIBRARY_NAME} PROPERTIES
|
||||
VERSION ${LXQT_VERSION}
|
||||
SOVERSION ${LXQT_MAJOR_VERSION}
|
||||
)
|
||||
|
||||
install(TARGETS
|
||||
${LXQT_LIBRARY_NAME}
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
EXPORT ${LXQT_LIBRARY_NAME}-targets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
|
||||
)
|
||||
|
||||
|
||||
export(TARGETS ${LXQT_LIBRARY_NAME} ${QTXDG_TARGET} FILE ${LXQT_INTREE_TARGETS_FILE})
|
||||
|
||||
install(FILES ${PUB_HDRS} DESTINATION "${LXQT_INSTALL_INCLUDE_DIR}/LXQt")
|
||||
install(FILES ${INTREE_PORTABLE_HEADERS} DESTINATION "${LXQT_INSTALL_INCLUDE_DIR}/LXQt")
|
||||
|
||||
#************************************************
|
||||
# Create pkgconfig file
|
||||
#************************************************
|
||||
lxqt_create_pkgconfig_file(${LXQT_LIBRARY_NAME}
|
||||
${LXQT_PKG_CONFIG_DESCRIPTION}
|
||||
${LXQT_PKG_CONFIG_REQUIRES}
|
||||
${LXQT_LIBRARY_NAME}
|
||||
${LXQT_VERSION}
|
||||
)
|
||||
#************************************************
|
||||
|
||||
|
||||
# building tarball with CPack -------------------------------------------------
|
||||
include(InstallRequiredSystemLibraries)
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${LXQT_MAJOR_VERSION})
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${LXQT_MINOR_VERSION})
|
||||
set(CPACK_PACKAGE_VERSION_PATCH ${LXQT_PATCH_VERSION})
|
||||
set(CPACK_GENERATOR TBZ2)
|
||||
set(CPACK_SOURCE_GENERATOR TBZ2)
|
||||
set(CPACK_SOURCE_IGNORE_FILES /build/;.gitignore;.*~;.git;.kdev4;temp)
|
||||
include(CPack)
|
||||
|
@ -0,0 +1,461 @@
|
||||
|
||||
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
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
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.
|
||||
|
||||
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
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
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
|
||||
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.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
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.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
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.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
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.
|
||||
|
||||
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
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
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.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
@ -0,0 +1,159 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - The Lightweight Desktop Environment
|
||||
* http://lxqt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 "lxqtaboutdialog.h"
|
||||
#include "ui_lxqtaboutdialog.h"
|
||||
#include "lxqtaboutdialog_p.h"
|
||||
#include "lxqttranslator.h"
|
||||
#include "technicalinfo.h"
|
||||
#include "translatorsinfo/translatorsinfo.h"
|
||||
#include <QDebug>
|
||||
#include <QDate>
|
||||
#include <QClipboard>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
AboutDialogPrivate::AboutDialogPrivate()
|
||||
{
|
||||
Translator::translateLibrary("liblxqt");
|
||||
setupUi(this);
|
||||
|
||||
QString css="<style TYPE='text/css'> "
|
||||
"body { font-family: sans-serif;} "
|
||||
".name { font-size: 16pt; } "
|
||||
"a { white-space: nowrap ;} "
|
||||
"h2 { font-size: 10pt;} "
|
||||
"li { line-height: 120%;} "
|
||||
".techInfoKey { white-space: nowrap ; margin: 0 20px 0 16px; } "
|
||||
"</style>"
|
||||
;
|
||||
|
||||
iconLabel->setFixedSize(48, 48);
|
||||
iconLabel->setScaledContents(true);
|
||||
iconLabel->setPixmap(QPixmap(QString(LXQT_SHARE_DIR) + "/graphics/lxqt_logo.png"));
|
||||
|
||||
nameLabel->setText(css + titleText());
|
||||
|
||||
aboutBrowser->setHtml(css + aboutText());
|
||||
aboutBrowser->viewport()->setAutoFillBackground(false);
|
||||
|
||||
autorsBrowser->setHtml(css + authorsText());
|
||||
autorsBrowser->viewport()->setAutoFillBackground(false);
|
||||
|
||||
thanksBrowser->setHtml(css + thanksText());
|
||||
thanksBrowser->viewport()->setAutoFillBackground(false);
|
||||
|
||||
translationsBrowser->setHtml(css + translationsText());
|
||||
translationsBrowser->viewport()->setAutoFillBackground(false);
|
||||
|
||||
TechnicalInfo info;
|
||||
techBrowser->setHtml(info.html());
|
||||
techBrowser->viewport()->setAutoFillBackground(false);
|
||||
|
||||
connect(techCopyToClipboardButton, SIGNAL(clicked()), this, SLOT(copyToCliboardTechInfo()));
|
||||
this->setAttribute(Qt::WA_DeleteOnClose);
|
||||
show();
|
||||
|
||||
}
|
||||
|
||||
QString AboutDialogPrivate::titleText() const
|
||||
{
|
||||
return QString("<div class=name>%1</div><div class=ver>%2</div>").arg("LXQt",
|
||||
tr("Version: %1").arg(LXQT_VERSION));
|
||||
|
||||
}
|
||||
|
||||
QString AboutDialogPrivate::aboutText() const
|
||||
{
|
||||
return QString(
|
||||
"<p>%1</p>"
|
||||
"<p>%2</p>"
|
||||
"<p>%3</p>"
|
||||
"<p>%4</p>"
|
||||
"<p>%5</p>")
|
||||
.arg(
|
||||
tr("Advanced, easy-to-use, and fast desktop environment based on Qt technologies.",
|
||||
"About dialog, 'About' tab text"),
|
||||
tr("LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.",
|
||||
"About dialog, 'About' tab text").arg("href=\"http://razor-qt.org\""),
|
||||
tr("Copyright: %1-%2 %3", "About dialog, 'About' tab text")
|
||||
.arg("2010", QDate::currentDate().toString("yyyy"), "LXQt team"),
|
||||
tr("Homepage: %1", "About dialog, 'About' tab text")
|
||||
.arg("<a href=\"http://lxqt.org\">http://lxqt.org</a>"),
|
||||
tr("License: %1", "About dialog, 'About' tab text")
|
||||
.arg("<a href=\"http://www.gnu.org/licenses/lgpl-2.1.html\">GNU Lesser General Public License version 2.1 or later</a>"
|
||||
" and partly under the "
|
||||
"<a href=\"http://www.gnu.org/licenses/gpl-2.0.html\">GNU General Public License version 2</a>")
|
||||
);
|
||||
}
|
||||
|
||||
QString AboutDialogPrivate::authorsText() const
|
||||
{
|
||||
return QString("<p>%1</p><p>%2</p>").arg(
|
||||
tr("LXQt is developed by the <a %1>LXQt Team and contributors</a>.", "About dialog, 'Authors' tab text")
|
||||
.arg(" href=\"https://github.com/lxde/lxde-qt\""),
|
||||
tr("If you are interested in working with our development team, <a %1>join us</a>.", "About dialog, 'Authors' tab text")
|
||||
.arg("href=\"http://lxqt.org\"")
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
QString AboutDialogPrivate::thanksText() const
|
||||
{
|
||||
return QString(
|
||||
"%1"
|
||||
"<ul>"
|
||||
"<li>Alexey Nosov (for the A-MeGo theme)</li>"
|
||||
"<li>Alexander Zakher (the Razor-qt name)</li>"
|
||||
"<li>Andy Fitzsimon (logo/icon)</li>"
|
||||
"<li>Eugene Pivnev (QtDesktop)</li>"
|
||||
"<li>Paul Gnther (desktop backgrounds)</li>"
|
||||
"<li>Manuel Meier (for ideas)</li>"
|
||||
"<li>KDE <<a href=\"http://kde.org/\">http://kde.org/</a>></li>"
|
||||
).arg(tr("Special thanks to:", "About dialog, 'Thanks' tab text"));
|
||||
}
|
||||
|
||||
QString AboutDialogPrivate::translationsText() const
|
||||
{
|
||||
TranslatorsInfo translatorsInfo;
|
||||
return QString("%1<p><ul>%2</ul>").arg(
|
||||
tr("LXQt is translated into many languages thanks to the work of the translation teams all over the world.", "About dialog, 'Translations' tab text"),
|
||||
translatorsInfo.asHtml()
|
||||
);
|
||||
}
|
||||
|
||||
AboutDialog::AboutDialog()
|
||||
{
|
||||
d_ptr = new AboutDialogPrivate();
|
||||
}
|
||||
|
||||
void AboutDialogPrivate::copyToCliboardTechInfo()
|
||||
{
|
||||
TechnicalInfo info;
|
||||
QClipboard *clipboard = QApplication::clipboard();
|
||||
clipboard->setText(info.text());
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 LXQTRABOUTDIALOG_H
|
||||
#define LXQTRABOUTDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class AboutDialogPrivate;
|
||||
|
||||
/**
|
||||
* @brief displays a simple about dialog
|
||||
*/
|
||||
class LXQT_API AboutDialog: public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AboutDialog();
|
||||
private:
|
||||
AboutDialogPrivate * d_ptr;
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
|
||||
#endif // LXQTRABOUTDIALOG_H
|
@ -0,0 +1,203 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>about</class>
|
||||
<widget class="QDialog" name="about">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>633</width>
|
||||
<height>416</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string> About LXQt</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>21</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>16</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="iconLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="sizeIncrement">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="nameLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>1</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true"><h1>LXQt</h1><p>Version: %1</p></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string comment="About dialog, Tab title ">About</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="aboutBrowser">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_3">
|
||||
<attribute name="title">
|
||||
<string comment="About dialog, Tab title">Authors</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="autorsBrowser">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_4">
|
||||
<attribute name="title">
|
||||
<string comment="About dialog, Tab title">Thanks</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="thanksBrowser">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="translationsTab">
|
||||
<attribute name="title">
|
||||
<string comment="About dialog, Tab title">Translations</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="translationsBrowser">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string comment="About dialog, Tab title">Technical Info</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="techBrowser">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="techCopyToClipboardButton">
|
||||
<property name="text">
|
||||
<string>Copy to clipboard</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>about</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>303</x>
|
||||
<y>273</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>437</x>
|
||||
<y>290</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
@ -0,0 +1,57 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 LXQT_ABOUTDIALOG_P_H
|
||||
#define LXQT_ABOUTDIALOG_P_H
|
||||
|
||||
#include "ui_lxqtaboutdialog.h"
|
||||
#include <QDialog>
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief prepares the data to show and fills the form, then shows.
|
||||
*/
|
||||
class AboutDialogPrivate: public QDialog, public Ui_about
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
AboutDialogPrivate();
|
||||
QString titleText() const;
|
||||
QString aboutText() const;
|
||||
QString authorsText() const;
|
||||
QString thanksText() const;
|
||||
QString translationsText() const;
|
||||
|
||||
public slots:
|
||||
void copyToCliboardTechInfo();
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQT_ABOUTDIALOG_P_H
|
@ -0,0 +1,187 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2012 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 "technicalinfo.h"
|
||||
#include "lxqttranslator.h"
|
||||
|
||||
#include <XdgDirs>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
class LxQt::TechInfoTable
|
||||
{
|
||||
public:
|
||||
TechInfoTable(const QString &title);
|
||||
void add(const QString &name, const QVariant &value);
|
||||
QString html() const;
|
||||
QString text(int nameFieldWidth) const;
|
||||
int maxNameLength() const;
|
||||
private:
|
||||
QString mTitle;
|
||||
QList<QPair<QString,QString> > mRows;
|
||||
};
|
||||
|
||||
|
||||
|
||||
TechInfoTable::TechInfoTable(const QString &title)
|
||||
{
|
||||
mTitle = title;
|
||||
}
|
||||
|
||||
void TechInfoTable::add(const QString &name, const QVariant &value)
|
||||
{
|
||||
QPair<QString,QString> row;
|
||||
row.first = name;
|
||||
row.second = value.toString();
|
||||
mRows.append(row);
|
||||
}
|
||||
|
||||
QString TechInfoTable::html() const
|
||||
{
|
||||
QString res;
|
||||
|
||||
res = "<style TYPE='text/css'> "
|
||||
".techInfoKey { white-space: nowrap ; margin: 0 20px 0 16px; } "
|
||||
"</style>";
|
||||
|
||||
res += QString("<b>%1</b>").arg(mTitle);
|
||||
res += "<table width='100%'>";
|
||||
QPair<QString,QString> row;
|
||||
foreach(row, mRows)
|
||||
{
|
||||
res += QString("<tr>"
|
||||
"<td class=techInfoTd width='1%'>"
|
||||
"<div class=techInfoKey>%1</div>"
|
||||
"</td>"
|
||||
"<td>%2</td>"
|
||||
"</tr>").arg(row.first, row.second);
|
||||
}
|
||||
|
||||
res += "</table>";
|
||||
return res;
|
||||
}
|
||||
|
||||
QString TechInfoTable::text(int nameFieldWidth) const
|
||||
{
|
||||
QString res;
|
||||
res += QString("%1\n").arg(mTitle);
|
||||
|
||||
QPair<QString,QString> row;
|
||||
foreach(row, mRows)
|
||||
{
|
||||
res += QString(" %1 %2\n")
|
||||
.arg(row.first + ":", -nameFieldWidth)
|
||||
.arg(row.second);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
int TechInfoTable::maxNameLength() const
|
||||
{
|
||||
int res = 0;
|
||||
QPair<QString,QString> row;
|
||||
foreach (row, mRows)
|
||||
res = qMax(res, row.first.length());
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
QString TechnicalInfo::html() const
|
||||
{
|
||||
QString res;
|
||||
foreach (TechInfoTable* item, mItems)
|
||||
{
|
||||
res += item->html();
|
||||
res += "<br><br>";
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
QString TechnicalInfo::text() const
|
||||
{
|
||||
int nameWidth = 0;
|
||||
foreach (TechInfoTable* item, mItems)
|
||||
nameWidth = qMax(nameWidth, item->maxNameLength());
|
||||
|
||||
QString res;
|
||||
foreach (TechInfoTable* item, mItems)
|
||||
{
|
||||
res += item->text(nameWidth + 2);
|
||||
res += "\n\n";
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
TechInfoTable *TechnicalInfo::newTable(const QString &title)
|
||||
{
|
||||
TechInfoTable *table = new TechInfoTable(title);
|
||||
mItems.append(table);
|
||||
return table;
|
||||
}
|
||||
|
||||
TechnicalInfo::~TechnicalInfo()
|
||||
{
|
||||
qDeleteAll(mItems);
|
||||
}
|
||||
|
||||
|
||||
TechnicalInfo::TechnicalInfo()
|
||||
{
|
||||
TechInfoTable *table;
|
||||
|
||||
// ******************************************
|
||||
table = newTable("LXQt Desktop Toolbox - Technical Info<p>");
|
||||
#ifdef DEBUG
|
||||
QString buildType("Debug");
|
||||
#else
|
||||
QString buildType("Release");
|
||||
#endif
|
||||
|
||||
table->add("Version", LXQT_VERSION);
|
||||
table->add("Qt", qVersion());
|
||||
table->add("Build type", buildType);
|
||||
table->add("System Configuration", LXQT_ETC_XDG_DIR);
|
||||
table->add("Share Directory", LXQT_SHARE_DIR);
|
||||
table->add("Translations", Translator::translationSearchPaths().join("<br>\n"));
|
||||
|
||||
|
||||
// ******************************************
|
||||
table = newTable("User Directories");
|
||||
XdgDirs xdgDirs;
|
||||
|
||||
table->add("Xdg Data Home", xdgDirs.dataHome(false));
|
||||
table->add("Xdg Config Home", xdgDirs.configHome(false));
|
||||
table->add("Xdg Data Dirs", xdgDirs.dataDirs().join(":"));
|
||||
table->add("Xdg Cache Home", xdgDirs.cacheHome(false));
|
||||
table->add("Xdg Runtime Home", xdgDirs.runtimeDir());
|
||||
table->add("Xdg Autostart Dirs", xdgDirs.autostartDirs().join("<br>\n"));
|
||||
table->add("Xdg Autostart Home", xdgDirs.autostartHome(false));
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,61 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2012 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 TECHNICALINFO_H
|
||||
#define TECHNICALINFO_H
|
||||
|
||||
#include <QList>
|
||||
#include <QPair>
|
||||
#include <QDateTime>
|
||||
#include <QVariant>
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class TechInfoTable;
|
||||
|
||||
class TechnicalInfo
|
||||
{
|
||||
public:
|
||||
TechnicalInfo();
|
||||
~TechnicalInfo();
|
||||
|
||||
QString html() const;
|
||||
QString text() const;
|
||||
|
||||
TechInfoTable *newTable(const QString &title);
|
||||
void add(const TechInfoTable &table);
|
||||
|
||||
private:
|
||||
QList<TechInfoTable*> mItems;
|
||||
};
|
||||
|
||||
|
||||
} // namespace LxQt
|
||||
|
||||
#endif // TECHNICALINFO_H
|
@ -0,0 +1,212 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 "lxqtaddplugindialog.h"
|
||||
#include "ui_lxqtaddplugindialog.h"
|
||||
#include "lxqthtmldelegate.h"
|
||||
#include <QDebug>
|
||||
#include <QLineEdit>
|
||||
#include <XdgIcon>
|
||||
#include <QListWidgetItem>
|
||||
#include <QIcon>
|
||||
|
||||
#include "lxqttranslator.h"
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
#define SEARCH_ROLE Qt::UserRole
|
||||
#define INDEX_ROLE SEARCH_ROLE+1
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
bool pluginDescriptionLessThan(const PluginInfo &p1, const PluginInfo &p2)
|
||||
{
|
||||
int cmp = QString::compare(p1.name(), p2.name());
|
||||
if (cmp != 0)
|
||||
return cmp < 0;
|
||||
|
||||
return p1.comment() < p2.comment();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
AddPluginDialog::AddPluginDialog(const QStringList& desktopFilesDirs,
|
||||
const QString &serviceType,
|
||||
const QString &nameFilter,
|
||||
QWidget *parent):
|
||||
QDialog(parent),
|
||||
ui(new Ui::AddPluginDialog),
|
||||
mTimerId(0)
|
||||
{
|
||||
Translator::translateLibrary("liblxqt");
|
||||
ui->setupUi(this);
|
||||
|
||||
mPlugins = PluginInfo::search(desktopFilesDirs, serviceType, nameFilter);
|
||||
qSort(mPlugins.begin(), mPlugins.end(), pluginDescriptionLessThan);
|
||||
|
||||
ui->pluginList->setItemDelegate(new HtmlDelegate(QSize(32, 32), ui->pluginList));
|
||||
|
||||
init();
|
||||
|
||||
connect(ui->pluginList, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(emitPluginSelected()));
|
||||
connect(ui->pluginList, SIGNAL(itemSelectionChanged()), this, SLOT(toggleAddButtonState()));
|
||||
connect(ui->searchEdit, SIGNAL(textEdited(QString)), this, SLOT(searchEditTexChanged(QString)));
|
||||
connect(ui->addButton, SIGNAL(clicked(bool)), this, SLOT(emitPluginSelected()));
|
||||
}
|
||||
|
||||
void AddPluginDialog::setPluginsInUse(const QStringList pluginsInUseIDs)
|
||||
{
|
||||
Q_FOREACH (QString id, pluginsInUseIDs)
|
||||
{
|
||||
if (!mPluginsInUseAmount.contains(id))
|
||||
mPluginsInUseAmount[id] = 0;
|
||||
mPluginsInUseAmount[id]++;
|
||||
}
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
void AddPluginDialog::init()
|
||||
{
|
||||
QListWidget* pluginList = ui->pluginList;
|
||||
|
||||
pluginList->clear();
|
||||
|
||||
QIcon fallIco = XdgIcon::fromTheme("preferences-plugin");
|
||||
|
||||
int pluginCount = mPlugins.length();
|
||||
for (int i = 0; i < pluginCount; ++i)
|
||||
{
|
||||
const PluginInfo &plugin = mPlugins.at(i);
|
||||
|
||||
QString countStr;
|
||||
int amount = mPluginsInUseAmount[plugin.id()];
|
||||
if (amount)
|
||||
countStr = tr("(%1 active)").arg(amount);
|
||||
|
||||
QListWidgetItem* item = new QListWidgetItem(ui->pluginList);
|
||||
item->setText(QString("<b>%1 %2</b><br>\n%3\n").arg(plugin.name(), countStr, plugin.comment()));
|
||||
item->setIcon(plugin.icon(fallIco));
|
||||
item->setData(INDEX_ROLE, i);
|
||||
item->setData(SEARCH_ROLE, QString("%1 %2 %3 %4").arg(
|
||||
plugin.name(),
|
||||
plugin.comment(),
|
||||
plugin.value("Name").toString(),
|
||||
plugin.value("Comment").toString()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if (pluginCount > 0)
|
||||
ui->pluginList->setCurrentRow(0);
|
||||
}
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void AddPluginDialog::pluginAdded(const QString &id)
|
||||
{
|
||||
if (!mPluginsInUseAmount.contains(id))
|
||||
mPluginsInUseAmount[id] = 0;
|
||||
mPluginsInUseAmount[id]++;
|
||||
init();
|
||||
}
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void AddPluginDialog::pluginRemoved(const QString &id)
|
||||
{
|
||||
mPluginsInUseAmount[id]--;
|
||||
init();
|
||||
}
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
AddPluginDialog::~AddPluginDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void AddPluginDialog::searchEditTexChanged(const QString& text)
|
||||
{
|
||||
if (mTimerId)
|
||||
killTimer(mTimerId);
|
||||
|
||||
mTimerId = startTimer(SEARCH_DELAY);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void AddPluginDialog::timerEvent(QTimerEvent* event)
|
||||
{
|
||||
if (event->timerId() == mTimerId)
|
||||
{
|
||||
killTimer(mTimerId);
|
||||
QListWidget* pluginList = ui->pluginList;
|
||||
QString s = ui->searchEdit->text();
|
||||
|
||||
for (int i=0; i < pluginList->count(); ++i)
|
||||
{
|
||||
QListWidgetItem* item = pluginList->item(i);
|
||||
item->setHidden(! item->data(SEARCH_ROLE).toString().contains(s, Qt::CaseInsensitive));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void AddPluginDialog::emitPluginSelected()
|
||||
{
|
||||
QListWidget* pluginList = ui->pluginList;
|
||||
if (pluginList->currentItem() && pluginList->currentItem()->isSelected())
|
||||
{
|
||||
PluginInfo plugin = mPlugins.at(pluginList->currentItem()->data(INDEX_ROLE).toInt());
|
||||
emit pluginSelected(plugin);
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void AddPluginDialog::toggleAddButtonState()
|
||||
{
|
||||
ui->addButton->setEnabled(ui->pluginList->currentItem() && ui->pluginList->currentItem()->isSelected());
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 LXQTADDPLUGINDIALOG_H
|
||||
#define LXQTADDPLUGINDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <lxqtplugininfo.h>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
#define SEARCH_DELAY 125
|
||||
|
||||
namespace Ui {
|
||||
class AddPluginDialog;
|
||||
}
|
||||
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
/*! The AddPluginDialog class provides a dialog that allow users to add plugins.
|
||||
*/
|
||||
class LXQT_API AddPluginDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
/*! Constructs a dialog with the given parent that initially displays
|
||||
PluginInfo objects for the matched files in the directories
|
||||
@param desktopFilesDirs - list of the scanned directories names.
|
||||
@param serviceType - type of the plugin, for example "LxQtPanel/Plugin".
|
||||
@param nameFilter - wildcard filter that understands * and ? wildcards. */
|
||||
AddPluginDialog(const QStringList& desktopFilesDirs,
|
||||
const QString& serviceType,
|
||||
const QString& nameFilter="*",
|
||||
QWidget *parent = 0);
|
||||
|
||||
~AddPluginDialog();
|
||||
|
||||
void setPluginsInUse(const QStringList pluginsInUseIDs);
|
||||
|
||||
signals:
|
||||
void pluginSelected(const LxQt::PluginInfo &plugin);
|
||||
|
||||
protected:
|
||||
void timerEvent(QTimerEvent* event);
|
||||
|
||||
private:
|
||||
void init();
|
||||
Ui::AddPluginDialog *ui;
|
||||
PluginInfoList mPlugins;
|
||||
int mTimerId;
|
||||
|
||||
// store the amount of instances of the plugins using their ids
|
||||
QHash<QString, int> mPluginsInUseAmount;
|
||||
|
||||
public slots:
|
||||
void pluginAdded(const QString &id);
|
||||
void pluginRemoved(const QString &id);
|
||||
|
||||
private slots:
|
||||
void emitPluginSelected();
|
||||
void searchEditTexChanged(const QString& text);
|
||||
void toggleAddButtonState();
|
||||
};
|
||||
|
||||
} // namecpase LxQt
|
||||
|
||||
#endif // LXQTADDPLUGINDIALOG_H
|
@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>AddPluginDialog</class>
|
||||
<widget class="QDialog" name="AddPluginDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>359</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="searchLabel">
|
||||
<property name="text">
|
||||
<string>Search:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="searchEdit"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QListWidget" name="pluginList">
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QAbstractScrollArea::AdjustToContentsOnFirstShow</enum>
|
||||
</property>
|
||||
<property name="showDropIndicator" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="movement">
|
||||
<enum>QListView::Static</enum>
|
||||
</property>
|
||||
<property name="flow">
|
||||
<enum>QListView::TopToBottom</enum>
|
||||
</property>
|
||||
<property name="resizeMode">
|
||||
<enum>QListView::Adjust</enum>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="modelColumn">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="uniformItemSizes">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="selectionRectVisible">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="currentRow">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="addButton">
|
||||
<property name="text">
|
||||
<string>Add Widget</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="closeButton">
|
||||
<property name="text">
|
||||
<string>Close</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>pluginList</tabstop>
|
||||
<tabstop>addButton</tabstop>
|
||||
<tabstop>closeButton</tabstop>
|
||||
<tabstop>searchEdit</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>closeButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>AddPluginDialog</receiver>
|
||||
<slot>close()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>380</x>
|
||||
<y>279</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>118</x>
|
||||
<y>270</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
@ -0,0 +1,23 @@
|
||||
# XDG standards expects system-wide configuration files in the /etc/xdg/lxqt location.
|
||||
# Unfortunately QSettings we are using internally can be overriden in the Qt compilation
|
||||
# time to use different path for system-wide configs. (for example configure ... -sysconfdir /etc/settings ...)
|
||||
# This path can be found calling Qt4's qmake:
|
||||
# qmake -query QT_INSTALL_CONFIGURATION
|
||||
#
|
||||
if(NOT DEFINED LXQT_ETC_XDG_DIR)
|
||||
get_target_property(QT_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION)
|
||||
message(STATUS "${QT_QMAKE_EXECUTABLE}")
|
||||
|
||||
if(NOT QT_QMAKE_EXECUTABLE)
|
||||
message(FATAL_ERROR "LXQT_ETC_XDG_DIR: qmake executable not found (included before qt was configured?)")
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_CONFIGURATION
|
||||
OUTPUT_VARIABLE LXQT_ETC_XDG_DIR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
message(STATUS "LXQT_ETC_XDG_DIR autodetected as '${LXQT_ETC_XDG_DIR}'")
|
||||
message(STATUS "You can set it manually with -DLXQT_ETC_XDG_DIR=<value>")
|
||||
message(STATUS "")
|
||||
endif ()
|
||||
|
@ -0,0 +1,33 @@
|
||||
#
|
||||
# Write a pkg-config pc file for given "name" with "decription"
|
||||
# Arguments:
|
||||
# name: a library name (withoud "lib" prefix and "so" suffixes
|
||||
# desc: a desription string
|
||||
#
|
||||
macro (create_pkgconfig_file name desc)
|
||||
set(_pkgfname "${CMAKE_CURRENT_BINARY_DIR}/${name}.pc")
|
||||
#message(STATUS "${name}: writing pkgconfig file ${_pkgfname}")
|
||||
|
||||
file(WRITE "${_pkgfname}"
|
||||
"# file generated by lxde-qt cmake build\n"
|
||||
"prefix=${CMAKE_INSTALL_PREFIX}\n"
|
||||
"libdir=\${prefix}/lib${LIB_SUFFIX}\n"
|
||||
"includedir=\${prefix}/include\n"
|
||||
"\n"
|
||||
"Name: ${name}\n"
|
||||
"Description: ${desc}\n"
|
||||
"Version: ${LXQT_VERSION}\n"
|
||||
"Libs: -L\${libdir} -l${name}\n"
|
||||
"Cflags: -I\${includedir}\n"
|
||||
"\n"
|
||||
)
|
||||
|
||||
# FreeBSD loves to install files to different locations
|
||||
# http://www.freebsd.org/doc/handbook/dirstructure.html
|
||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||
install(FILES ${_pkgfname} DESTINATION libdata/pkgconfig)
|
||||
else()
|
||||
install(FILES ${_pkgfname} DESTINATION lib${LIB_SUFFIX}/pkgconfig)
|
||||
endif()
|
||||
|
||||
endmacro()
|
@ -0,0 +1,58 @@
|
||||
# Creates portable headers; e.g.:
|
||||
# Creates XdgAction from xdgaction.h
|
||||
# XdgAction contents:
|
||||
# #include "xdgaction.h"
|
||||
#
|
||||
# Use:
|
||||
# set(PUBLIC_CLASSES MyClass YourClass)
|
||||
# create_portable_headers(PORTABLE_HEADERS ${PUBLIC_CLASSES})
|
||||
# PORTABLE_HEADER is an return value that contains the full name of the
|
||||
# generated headers.
|
||||
|
||||
function(create_portable_headers outfiles outDir)
|
||||
set(options)
|
||||
set(oneValueArgs)
|
||||
set(multiValueArgs)
|
||||
|
||||
cmake_parse_arguments(_CREATE_PORTABLE_HEADERS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
set(class_list ${_CREATE_PORTABLE_HEADERS_UNPARSED_ARGUMENTS})
|
||||
foreach(f ${class_list})
|
||||
string(TOLOWER "${f}.h" _filename)
|
||||
|
||||
file(WRITE ${outDir}/${f}
|
||||
"#include \"lxqt${_filename}\"\n")
|
||||
|
||||
list(APPEND ${outfiles} ${outDir}/${f})
|
||||
endforeach()
|
||||
|
||||
set(${outfiles} ${${outfiles}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
|
||||
|
||||
function(check_portable_headers)
|
||||
cmake_parse_arguments(__ARGS "" "" "H_FILES;LINKS" ${ARGN})
|
||||
|
||||
foreach(f ${__ARGS_LINKS})
|
||||
file(READ ${f} content)
|
||||
|
||||
set(found False)
|
||||
foreach(line ${content})
|
||||
string(REGEX MATCH "#include \"(.*)\"" v ${line})
|
||||
set(hFile ${CMAKE_MATCH_1})
|
||||
|
||||
string(REGEX MATCH "[;/]${hFile};" v ";${__ARGS_H_FILES};")
|
||||
|
||||
if(NOT v)
|
||||
set(found True)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
|
||||
if(found)
|
||||
message(FATAL_ERROR "Incorrect portable header: '${f}'")
|
||||
endif()
|
||||
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
@ -0,0 +1,71 @@
|
||||
# - Find the lxqt include and library dirs and define a some macros
|
||||
#
|
||||
# The module defines the following variables
|
||||
#
|
||||
# LXQT_FOUND - Set to TRUE if all of the above has been found
|
||||
#
|
||||
# LXQT_INCLUDE_DIR - The lxqt include directory
|
||||
#
|
||||
# LXQT_INCLUDE_DIRS - The lxqt and the Qt include directory, for use with INCLUDE_DIRECTORIES()
|
||||
#
|
||||
# LXQT_LIBRARY_DIRS - The lxqt and the Qt library directories
|
||||
#
|
||||
# LXQT_LIBRARIES - The libraries needed to use lxqt
|
||||
#
|
||||
# LXQT_SHARE_DIR - This allows to install and read the configs from non-standard locations
|
||||
#
|
||||
# LXQT_TRANSLATIONS_DIR - The default translations directory
|
||||
#
|
||||
# LXQT_ETC_XDG_DIR - XDG standards expects system-wide configuration files in the
|
||||
# /etc/xdg/lxqt location. Unfortunately QSettings we are using internally
|
||||
# can be overriden in the Qt compilation time to use different path for
|
||||
# system-wide configs. (for example configure ... -sysconfdir /etc/settings ...)
|
||||
# This path can be found calling Qt4's qmake:
|
||||
# qmake -query QT_INSTALL_CONFIGURATION
|
||||
#
|
||||
# LXQT_USE_FILE - The variable LXQT_USE_FILE is set which is the path to a CMake file that
|
||||
# can be included to compile lxqt applications and libraries. It sets up
|
||||
# the compilation environment for include directories and populates a
|
||||
# LXQT_LIBRARIES variable.
|
||||
#
|
||||
# When using the components argument, LXQT_USE_* variables are automatically set
|
||||
# for the LXQT_USE_FILE to pick up. If one wishes to manually set them, the
|
||||
# available ones to set include:
|
||||
# LXQT_USE_MOUNT
|
||||
# LXQT_USE_GLOBAL_KEY_CLIENT
|
||||
#
|
||||
# Typical usage could be something like:
|
||||
# set(LXQT_USE_MOUNT 1)
|
||||
# find_package(LXQT REQUIRED)
|
||||
# include(${LXQT_USE_FILE})
|
||||
#
|
||||
# lxqt_translate_ts(QM_FILES
|
||||
# SOURCES
|
||||
# ${H_FILES}
|
||||
# ${CPP_FILES}
|
||||
# ${UI_FILES}
|
||||
# )
|
||||
# lxqt_translate_desktop(DESKTOP_FILES
|
||||
# SOURCES
|
||||
# ${DESKTOP_FILES_IN}
|
||||
# )
|
||||
#
|
||||
# add_executable(myexe main.cpp)
|
||||
# target_link_libraries(myexe $LXQT_LIBRARIES})
|
||||
|
||||
if(LXQT_FIND_REQUIRED)
|
||||
set(REQUIRED_OPT "REQUIRED")
|
||||
endif()
|
||||
|
||||
set(LXQT_LIBRARY_DIRS @CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@)
|
||||
set(LXQT_LIBRARIES ${LXQT_LIBRARY} )
|
||||
set(LXQT_INCLUDE_DIRS ${LXQT_INCLUDE_DIR} @CMAKE_INSTALL_PREFIX@/include)
|
||||
set(LXQT_USE_FILE ${CMAKE_CURRENT_LIST_DIR}/lxqt_use.cmake)
|
||||
set(LXQT_CMAKE_MODULES_DIR @CFG_LXQT_CMAKE_MODULES_DIR@)
|
||||
set(LXQT_FOUND 1)
|
||||
|
||||
if(LXQT_FIND_QUIETLY)
|
||||
set(QUIET_OPT "QUIET")
|
||||
endif()
|
||||
|
||||
find_package(LxQt5 ${REQUIRED_OPT} ${QUIET_OPT})
|
@ -0,0 +1,82 @@
|
||||
# - Find the lxqt include and library dirs and define a some macros
|
||||
#
|
||||
# The module defines the following variables
|
||||
#
|
||||
# LXQT_FOUND - Set to TRUE if all of the above has been found
|
||||
#
|
||||
# LXQT_INCLUDE_DIR - The lxqt include directory
|
||||
#
|
||||
# LXQT_INCLUDE_DIRS - The lxqt and the Qt include directory, for use with INCLUDE_DIRECTORIES()
|
||||
#
|
||||
# LXQT_LIBRARIES - The libraries needed to use lxqt
|
||||
#
|
||||
# LXQT_SHARE_DIR - This allows to install and read the configs from non-standard locations
|
||||
#
|
||||
# LXQT_TRANSLATIONS_DIR - The default translations directory
|
||||
#
|
||||
# LXQT_ETC_XDG_DIR - XDG standards expects system-wide configuration files in the
|
||||
# /etc/xdg/razor location. Unfortunately QSettings we are using internally
|
||||
# can be overriden in the Qt compilation time to use different path for
|
||||
# system-wide configs. (for example configure ... -sysconfdir /etc/settings ...)
|
||||
# This path can be found calling Qt4's qmake:
|
||||
# qmake -query QT_INSTALL_CONFIGURATION
|
||||
#
|
||||
# LXQT_USE_FILE - The variable LXQT_USE_FILE is set which is the path to a CMake file that
|
||||
# can be included to compile lxqt applications and libraries. It sets up
|
||||
# the compilation environment for include directories and populates a
|
||||
# LXQT_LIBRARIES variable.
|
||||
#
|
||||
# When using the components argument, LXQT_USE_* variables are automatically set
|
||||
# for the LXQT_USE_FILE to pick up. If one wishes to manually set them, the
|
||||
# available ones to set include:
|
||||
# LXQT_USE_MOUNT
|
||||
# LXQT_USE_GLOBAL_KEY_CLIENT
|
||||
#
|
||||
# Typical usage could be something like:
|
||||
# set(LXQT_USE_MOUNT 1)
|
||||
# find_package(LXQT REQUIRED)
|
||||
# include(${LXQT_USE_FILE})
|
||||
#
|
||||
# razor_translate_ts(QM_FILES
|
||||
# SOURCES
|
||||
# ${H_FILES}
|
||||
# ${CPP_FILES}
|
||||
# ${UI_FILES}
|
||||
# )
|
||||
# razor_translate_desktop(DESKTOP_FILES
|
||||
# SOURCES
|
||||
# ${DESKTOP_FILES_IN}
|
||||
# )
|
||||
#
|
||||
# add_executable(myexe main.cpp)
|
||||
# target_link_libraries(myexe $LXQT_LIBRARIES})
|
||||
|
||||
set(LXQT_USEQT@LXQT_QT_VERSION@ ON)
|
||||
set(LXQT_QT_VERSION @LXQT_QT_VERSION@)
|
||||
set(LXQT_MAJOR_VERSION @LXQT_MAJOR_VERSION@)
|
||||
set(LXQT_MINOR_VERSION @LXQT_MINOR_VERSION@)
|
||||
set(LXQT_PATCH_VERSION @LXQT_PATCH_VERSION@)
|
||||
set(LXQT_VERSION @LXQT_VERSION@)
|
||||
|
||||
set(LXQT_RELATIVE_SHARE_DIR @LXQT_RELATIVE_SHARE_DIR@)
|
||||
set(LXQT_SHARE_DIR @LXQT_SHARE_DIR@)
|
||||
set(LXQT_RELATIVE_TRANSLATIONS_DIR @LXQT_RELATIVE_TRANSLATIONS_DIR@)
|
||||
set(LXQT_TRANSLATIONS_DIR @LXQT_TRANSLATIONS_DIR@)
|
||||
set(LXQT_ETC_XDG_DIR @LXQT_ETC_XDG_DIR@)
|
||||
set(LXQT_CMAKE_MODULES_DIR @CFG_LXQT_CMAKE_MODULES_DIR@)
|
||||
|
||||
set(LXQT_INCLUDE_DIR @CFG_LXQT_INCLUDE_DIR@)
|
||||
set(LXQT_INCLUDE_DIRS @CFG_LXQT_INCLUDE_DIR@)
|
||||
|
||||
set(LXQT_LIBRARY @CFG_LXQT_LIBRARY@)
|
||||
set(LXQT_LIBRARIES @CFG_LXQT_LIBRARY@)
|
||||
|
||||
set(LXQT_USE_FILE @CFG_LXQT_USE_FILE@)
|
||||
set(LXQT_FOUND 1)
|
||||
set(LXQT@LXQT_QT_VERSION@_FOUND 1)
|
||||
|
||||
|
||||
include(@CFG_LXQT_TARGETS_FILE@)
|
||||
|
||||
mark_as_advanced(LXQT_LIBRARY LXQT_INCLUDE_DIR)
|
||||
|
@ -0,0 +1,106 @@
|
||||
# - Find the LXQt include and library dirs and define a some macros
|
||||
#
|
||||
# The module defines the following functions
|
||||
#
|
||||
# lxqt_set_default_value(VAR_NAME VAR_VALUE)
|
||||
#
|
||||
#
|
||||
# lxqt_create_pkgconfig_file(name
|
||||
# desc
|
||||
# requires
|
||||
# include_rel_dir
|
||||
# version)
|
||||
# Write a pkg-config pc file for given "name" with "decription"
|
||||
# Arguments:
|
||||
# name: a library name (withoud "lib" prefix and "so" suffixes
|
||||
# desc: a desription string
|
||||
# requires: required libraries
|
||||
# include_rel_dir: include directory, relative to includedir
|
||||
# version: package version
|
||||
#
|
||||
#
|
||||
#
|
||||
# The module defines the following definitions
|
||||
#
|
||||
# -DLXQT_SHARE_DIR - This allows to install and read the configs from non-standard locations
|
||||
#
|
||||
# -DLXQT_ETC_XDG_DIR - XDG standards expects system-wide configuration files in the
|
||||
# /etc/xdg/lxqt location. Unfortunately QSettings we are using internally
|
||||
# can be overriden in the Qt compilation time to use different path for
|
||||
# system-wide configs. (for example configure ... -sysconfdir /etc/settings ...)
|
||||
# This path can be found calling Qt4's qmake:
|
||||
# qmake -query QT_INSTALL_CONFIGURATION
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
include_directories(${LXQT_INCLUDE_DIRS})
|
||||
|
||||
link_directories(${LXQT_LIBRARY_DIRS})
|
||||
|
||||
add_definitions(-DLXQT_RELATIVE_SHARE_DIR=\"${LXQT_RELATIVE_SHARE_DIR}\")
|
||||
add_definitions(-DLXQT_SHARE_DIR=\"${LXQT_SHARE_DIR}\")
|
||||
add_definitions(-DLXQT_RELATIVE_SHARE_TRANSLATIONS_DIR=\"${LXQT_RELATIVE_TRANSLATIONS_DIR}\")
|
||||
add_definitions(-DLXQT_SHARE_TRANSLATIONS_DIR=\"${LXQT_TRANSLATIONS_DIR}\")
|
||||
add_definitions(-DLXQT_ETC_XDG_DIR=\"${LXQT_ETC_XDG_DIR}\")
|
||||
add_definitions(-DLXQT_VERSION=\"${LXQT_VERSION}\")
|
||||
|
||||
SET_SOURCE_FILES_PROPERTIES(LXQT_LIBRARIES PROPERTIES OBJECT_DEPENDS lxqt${LXQT_QT_VERSION})
|
||||
|
||||
|
||||
if (LXQT_QT_VERSION EQUAL "4")
|
||||
find_package(Qt4 REQUIRED QUIET)
|
||||
include(${QT_USE_FILE})
|
||||
|
||||
find_package(QTXDG REQUIRED)
|
||||
elseif(LXQT_QT_VERSION EQUAL "5")
|
||||
find_package(Qt5Widgets REQUIRED QUIET)
|
||||
find_package(Qt5DBus REQUIRED QUIET)
|
||||
find_package(Qt5X11Extras REQUIRED QUIET)
|
||||
find_package(Qt5LinguistTools REQUIRED QUIET)
|
||||
find_package(Qt5Xdg REQUIRED)
|
||||
find_package(KF5WindowSystem REQUIRED QUIET)
|
||||
else()
|
||||
message(FATAL "Qt${LXQT_QT_VERSION} is not supported.")
|
||||
endif()
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH ${LXQT_CMAKE_MODULES_DIR})
|
||||
|
||||
# Works for Qt4 and Qt5
|
||||
include(${QTXDG_USE_FILE})
|
||||
|
||||
|
||||
macro(lxqt_set_default_value VAR_NAME VAR_VALUE)
|
||||
if (NOT DEFINED ${VAR_NAME})
|
||||
set (${VAR_NAME} ${VAR_VALUE})
|
||||
endif ()
|
||||
endmacro()
|
||||
|
||||
|
||||
#
|
||||
# Write a pkg-config pc file for given "name" with "decription"
|
||||
# Arguments:
|
||||
# name: a library name (withoud "lib" prefix and "so" suffixes
|
||||
# desc: a desription string
|
||||
#
|
||||
macro(lxqt_create_pkgconfig_file name desc requires include_rel_dir version)
|
||||
set(_pkgfname "${CMAKE_CURRENT_BINARY_DIR}/${name}.pc")
|
||||
message(STATUS "${name}: writing pkgconfig file ${_pkgfname}")
|
||||
|
||||
file(WRITE "${_pkgfname}"
|
||||
"# file generated by razor-qt cmake build\n"
|
||||
"prefix=${CMAKE_INSTALL_PREFIX}\n"
|
||||
"libdir=\${prefix}/${CMAKE_INSTALL_LIBDIR}\n"
|
||||
"includedir=\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}\n"
|
||||
"\n"
|
||||
"Name: ${name}\n"
|
||||
"Description: ${desc}\n"
|
||||
"Version: ${version}\n"
|
||||
"Requires: ${requires}\n"
|
||||
"Libs: -L\${libdir} -l${name}\n"
|
||||
"Cflags: -I\${includedir} -I\${includedir}/${include_rel_dir}\n"
|
||||
"\n"
|
||||
)
|
||||
|
||||
install(FILES ${_pkgfname} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
endmacro()
|
@ -0,0 +1,15 @@
|
||||
/* This file has been generated by the CMake lxqt_app_translation_loader().
|
||||
* It loads LXQt application translations.
|
||||
*
|
||||
* Attention: All changes will be overwritten!!!
|
||||
*/
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <LXQt/Translator>
|
||||
|
||||
static void loadAppTranslation()
|
||||
{
|
||||
LxQt::Translator::translateApplication(QStringLiteral("@catalog_name@"));
|
||||
}
|
||||
|
||||
Q_COREAPP_STARTUP_FUNCTION(loadAppTranslation)
|
@ -0,0 +1,15 @@
|
||||
/* This file has been generated by the CMake lxqt_app_translation_loader().
|
||||
* It loads LXQt libraries translations.
|
||||
*
|
||||
* Attention: All changes will be overwritten!!!
|
||||
*/
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <LXQt/Translator>
|
||||
|
||||
static void loadLibTranslation()
|
||||
{
|
||||
LxQt::Translator::translateLibrary(QStringLiteral("@catalog_name@"));
|
||||
}
|
||||
|
||||
Q_COREAPP_STARTUP_FUNCTION(loadLibTranslation)
|
@ -0,0 +1,32 @@
|
||||
#=============================================================================
|
||||
# Copyright 2014 Luís Pereira <luis.artur.pereira@gmail.com>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. The name of the author may not be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
#
|
||||
# An convenience module that loads all the LXQt translations modules at once.
|
||||
|
||||
include(LXQtTranslateTs)
|
||||
include(LXQtTranslateDesktop)
|
||||
include(LXQtTranslationLoader)
|
@ -0,0 +1,107 @@
|
||||
#=============================================================================
|
||||
# The lxqt_translate_desktop() function was copied from the the
|
||||
# LXQt LxQtTranste.cmake
|
||||
#
|
||||
# Original Author: Alexander Sokolov <sokoloff.a@gmail.com>
|
||||
#
|
||||
# funtion lxqt_translate_desktop(_RESULT
|
||||
# SOURCES <sources>
|
||||
# [TRANSLATION_DIR] translation_directory
|
||||
# )
|
||||
# Output:
|
||||
# _RESULT The generated .desktop (.desktop) files
|
||||
#
|
||||
# Input:
|
||||
#
|
||||
# SOURCES List of input desktop files (.destktop.in) to be translated
|
||||
# (merged), relative to the CMakeList.txt.
|
||||
#
|
||||
# TRANSLATION_DIR Optional path to the directory with the .ts files,
|
||||
# relative to the CMakeList.txt. Defaults to
|
||||
# "translations".
|
||||
#
|
||||
#=============================================================================
|
||||
|
||||
function(lxqt_translate_desktop _RESULT)
|
||||
# Parse arguments ***************************************
|
||||
set(oneValueArgs TRANSLATION_DIR)
|
||||
set(multiValueArgs SOURCES)
|
||||
|
||||
cmake_parse_arguments(_ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
# check for unknown arguments
|
||||
set(_UNPARSED_ARGS ${_ARGS_UNPARSED_ARGUMENTS})
|
||||
if (NOT ${_UNPARSED_ARGS} STREQUAL "")
|
||||
MESSAGE(FATAL_ERROR
|
||||
"Unknown arguments '${_UNPARSED_ARGS}'.\n"
|
||||
"See lxqt_translate_desktop() documenation for more information.\n"
|
||||
)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED _ARGS_SOURCES)
|
||||
set(${_RESULT} "" PARENT_SCOPE)
|
||||
return()
|
||||
else()
|
||||
set(_sources ${_ARGS_SOURCES})
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED _ARGS_TRANSLATION_DIR)
|
||||
set(_translationDir "translations")
|
||||
else()
|
||||
set(_translationDir ${_ARGS_TRANSLATION_DIR})
|
||||
endif()
|
||||
|
||||
|
||||
get_filename_component (_translationDir ${_translationDir} ABSOLUTE)
|
||||
|
||||
foreach (_inFile ${_sources})
|
||||
get_filename_component(_inFile ${_inFile} ABSOLUTE)
|
||||
get_filename_component(_fileName ${_inFile} NAME_WE)
|
||||
#Extract the real extension ............
|
||||
get_filename_component(_fileExt ${_inFile} EXT)
|
||||
string(REPLACE ".in" "" _fileExt ${_fileExt})
|
||||
#.......................................
|
||||
set(_outFile "${CMAKE_CURRENT_BINARY_DIR}/${_fileName}${_fileExt}")
|
||||
|
||||
file(GLOB _translations
|
||||
${_translationDir}/${_fileName}_*${_fileExt}
|
||||
${_translationDir}/local/${_fileName}_*${_fileExt}
|
||||
)
|
||||
|
||||
set(_pattern "'\\[.*]\\s*='")
|
||||
if (_translations)
|
||||
add_custom_command(OUTPUT ${_outFile}
|
||||
COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > ${_outFile}
|
||||
COMMAND grep -h ${_pattern} ${_translations} >> ${_outFile}
|
||||
COMMENT "Generating ${_fileName}${_fileExt}"
|
||||
)
|
||||
else()
|
||||
add_custom_command(OUTPUT ${_outFile}
|
||||
COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > ${_outFile}
|
||||
COMMENT "Generating ${_fileName}${_fileExt}"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(__result ${__result} ${_outFile})
|
||||
|
||||
|
||||
# TX file ***********************************************
|
||||
set(_txFile "${CMAKE_BINARY_DIR}/tx/${_fileName}${_fileExt}.tx.sh")
|
||||
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" _tx_translationDir ${_translationDir})
|
||||
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" _tx_inFile ${_inFile})
|
||||
string(REPLACE "." "" _fileType ${_fileExt})
|
||||
|
||||
file(WRITE ${_txFile}
|
||||
"[ -f ${_inFile} ] || exit 0\n"
|
||||
"echo '[lxde-qt.${_fileName}_${_fileType}]'\n"
|
||||
"echo 'type = DESKTOP'\n"
|
||||
"echo 'source_lang = en'\n"
|
||||
"echo 'source_file = ${_tx_inFile}'\n"
|
||||
"echo 'file_filter = ${_tx_translationDir}/${_fileName}_<lang>${_fileExt}'\n"
|
||||
"echo ''\n"
|
||||
)
|
||||
|
||||
endforeach()
|
||||
|
||||
set(${_RESULT} ${__result} PARENT_SCOPE)
|
||||
endfunction(lxqt_translate_desktop)
|
@ -0,0 +1,131 @@
|
||||
#=============================================================================
|
||||
# Copyright 2014 Luís Pereira <luis.artur.pereira@gmail.com>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. The name of the author may not be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
#
|
||||
# funtion lxqt_translate_ts(qmFiles
|
||||
# [USE_QT5 [Yes | No]]
|
||||
# [UPDATE_TRANSLATIONS [Yes | No]]
|
||||
# SOURCES <sources>
|
||||
# [TEMPLATE] translation_template
|
||||
# [TRANSLATION_DIR] translation_directory
|
||||
# [INSTALL_DIR] install_directory
|
||||
# )
|
||||
# Output:
|
||||
# qmFiles The generated compiled translations (.qm) files
|
||||
#
|
||||
# Input:
|
||||
# USE_QT5 Optional flag to choose between Qt4 and Qt5. Defaults to Qt5
|
||||
#
|
||||
# UPDATE_TRANSLATIONS Optional flag. Setting it to Yes, extracts and
|
||||
# compiles the translations. Setting it No, only
|
||||
# compiles them.
|
||||
#
|
||||
# TEMPLATE Optional translations files base name. Defaults to
|
||||
# ${PROJECT_NAME}. An .ts extensions is added.
|
||||
#
|
||||
# TRANSLATION_DIR Optional path to the directory with the .ts files,
|
||||
# relative to the CMakeList.txt. Defaults to
|
||||
# "translations".
|
||||
#
|
||||
# INSTALL_DIR Optional destination of the file compiled files (qmFiles).
|
||||
# If not present no installation is performed
|
||||
|
||||
|
||||
|
||||
# CMake v2.8.3 needed to use the CMakeParseArguments module
|
||||
cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR)
|
||||
|
||||
# We use our patched version to round a annoying bug.
|
||||
include(Qt5PatchedLinguistToolsMacros)
|
||||
|
||||
function(lxqt_translate_ts qmFiles)
|
||||
set(oneValueArgs USE_QT5 UPDATE_TRANSLATIONS TEMPLATE TRANSLATION_DIR INSTALL_DIR)
|
||||
set(multiValueArgs SOURCES)
|
||||
cmake_parse_arguments(TR "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
if (NOT DEFINED TR_UPDATE_TRANSLATIONS)
|
||||
set(TR_UPDATE_TRANSLATIONS "No")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED TR_USE_QT5)
|
||||
set(TR_USE_QT5 "Yes")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED TR_TEMPLATE)
|
||||
set(TR_TEMPLATE "${PROJECT_NAME}")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED TR_TRANSLATION_DIR)
|
||||
set(TR_TRANSLATION_DIR "translations")
|
||||
endif()
|
||||
|
||||
file(GLOB tsFiles "${TR_TRANSLATION_DIR}/${TR_TEMPLATE}_*.ts")
|
||||
set(templateFile "${TR_TRANSLATION_DIR}/${TR_TEMPLATE}.ts")
|
||||
|
||||
if(TR_USE_QT5)
|
||||
# Qt5
|
||||
if (TR_UPDATE_TRANSLATIONS)
|
||||
qt5_patched_create_translation(QMS
|
||||
${TR_SOURCES}
|
||||
${templateFile}
|
||||
OPTIONS -locations absolute
|
||||
)
|
||||
qt5_patched_create_translation(QM
|
||||
${TR_SOURCES}
|
||||
${tsFiles}
|
||||
OPTIONS -locations absolute
|
||||
)
|
||||
else()
|
||||
qt5_patched_add_translation(QM ${tsFiles})
|
||||
endif()
|
||||
else()
|
||||
# Qt4
|
||||
if(TR_UPDATE_TRANSLATIONS)
|
||||
qt4_create_translation(QMS
|
||||
${TR_SOURCES}
|
||||
${templateFile}
|
||||
OPTIONS -locations absolute
|
||||
)
|
||||
qt4_create_translation(QM
|
||||
${TR_SOURCES}
|
||||
${tsFiles}
|
||||
OPTIONS -locations absolute
|
||||
)
|
||||
else()
|
||||
qt4_add_translation(QM ${tsFiles})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(TR_UPDATE_TRANSLATIONS)
|
||||
add_custom_target("update_${TR_TEMPLATE}_ts" ALL DEPENDS ${QMS})
|
||||
endif()
|
||||
|
||||
if(DEFINED TR_INSTALL_DIR)
|
||||
install(FILES ${QM} DESTINATION ${TR_INSTALL_DIR})
|
||||
endif()
|
||||
|
||||
set(${qmFiles} ${QM} PARENT_SCOPE)
|
||||
endfunction()
|
@ -0,0 +1,61 @@
|
||||
#=============================================================================
|
||||
# Copyright 2014 Luís Pereira <luis.artur.pereira@gmail.com>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. The name of the author may not be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
#
|
||||
# These functions enables "automatic" translation loading in LXQt Qt5 apps
|
||||
# and libs. They generate a .cpp file that takes care of everything. The
|
||||
# user doesn't have to do anything in the source code.
|
||||
#
|
||||
# Typical use:
|
||||
# include(LXQtTranslationLoader)
|
||||
# lxqt_app_translation_loader(lxqt-app_QM_LOADER ${PROJECT_NAME})
|
||||
# add_executable(${PROJECT_NAME}
|
||||
# ${lxqt-app_QM_LOADER}
|
||||
# ...
|
||||
# )
|
||||
|
||||
|
||||
# lxqt_app_translation_loader(<source_files> <catalog_name>)
|
||||
# <source_files> The generated .cpp file is added to <source_files>
|
||||
# <catalog_name> Translations catalog to be loaded
|
||||
function(lxqt_app_translation_loader source_files catalog_name)
|
||||
configure_file(
|
||||
${LXQT_CMAKE_MODULES_DIR}/LXQtAppTranslationLoader.cpp.in
|
||||
LXQtAppTranslationLoader.cpp @ONLY
|
||||
)
|
||||
set(${source_files} ${${source_files}} ${CMAKE_CURRENT_BINARY_DIR}/LXQtAppTranslationLoader.cpp PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# lxqt_lib_translation_loader(<source_files> <catalog_name>)
|
||||
# <source_files> The generated .cpp file is added to <source_files>
|
||||
# <catalog_name> Translations catalog to be loaded
|
||||
function(lxqt_lib_translation_loader source_files catalog_name)
|
||||
configure_file(
|
||||
${LXQT_CMAKE_MODULES_DIR}/LXQtLibTranslationLoader.cpp.in
|
||||
LXQtLibTranslationLoader.cpp @ONLY
|
||||
)
|
||||
set(${source_files} ${${source_files}} ${CMAKE_CURRENT_BINARY_DIR}/LXQtLibTranslationLoader.cpp PARENT_SCOPE)
|
||||
endfunction()
|
@ -0,0 +1,112 @@
|
||||
#=============================================================================
|
||||
# Copyright 2005-2011 Kitware, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# * Neither the name of Kitware, Inc. nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
include(CMakeParseArguments)
|
||||
|
||||
function(QT5_PATCHED_CREATE_TRANSLATION _qm_files)
|
||||
set(options)
|
||||
set(oneValueArgs)
|
||||
set(multiValueArgs OPTIONS)
|
||||
|
||||
cmake_parse_arguments(_LUPDATE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
set(_lupdate_files ${_LUPDATE_UNPARSED_ARGUMENTS})
|
||||
set(_lupdate_options ${_LUPDATE_OPTIONS})
|
||||
|
||||
set(_my_sources)
|
||||
set(_my_tsfiles)
|
||||
foreach(_file ${_lupdate_files})
|
||||
get_filename_component(_ext ${_file} EXT)
|
||||
get_filename_component(_abs_FILE ${_file} ABSOLUTE)
|
||||
if(_ext MATCHES "ts")
|
||||
list(APPEND _my_tsfiles ${_abs_FILE})
|
||||
else()
|
||||
list(APPEND _my_sources ${_abs_FILE})
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(_ts_file ${_my_tsfiles})
|
||||
if(_my_sources)
|
||||
# make a list file to call lupdate on, so we don't make our commands too
|
||||
# long for some systems
|
||||
# get_filename_component(_ts_name ${_ts_file} NAME_WE)
|
||||
|
||||
get_filename_component(_name ${_ts_file} NAME)
|
||||
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _ts_name ${_name})
|
||||
|
||||
set(_ts_lst_file "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_ts_name}_lst_file")
|
||||
set(_lst_file_srcs)
|
||||
foreach(_lst_file_src ${_my_sources})
|
||||
set(_lst_file_srcs "${_lst_file_src}\n${_lst_file_srcs}")
|
||||
endforeach()
|
||||
|
||||
get_directory_property(_inc_DIRS INCLUDE_DIRECTORIES)
|
||||
foreach(_pro_include ${_inc_DIRS})
|
||||
get_filename_component(_abs_include "${_pro_include}" ABSOLUTE)
|
||||
set(_lst_file_srcs "-I${_pro_include}\n${_lst_file_srcs}")
|
||||
endforeach()
|
||||
|
||||
file(WRITE ${_ts_lst_file} "${_lst_file_srcs}")
|
||||
endif()
|
||||
add_custom_command(OUTPUT ${_ts_file}
|
||||
COMMAND ${Qt5_LUPDATE_EXECUTABLE}
|
||||
ARGS ${_lupdate_options} "@${_ts_lst_file}" -ts ${_ts_file}
|
||||
DEPENDS ${_my_sources} ${_ts_lst_file} VERBATIM)
|
||||
endforeach()
|
||||
qt5_patched_add_translation(${_qm_files} ${_my_tsfiles})
|
||||
set(${_qm_files} ${${_qm_files}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
|
||||
function(QT5_PATCHED_ADD_TRANSLATION _qm_files)
|
||||
foreach(_current_FILE ${ARGN})
|
||||
get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
|
||||
# get_filename_component(qm ${_abs_FILE} NAME_WE)
|
||||
|
||||
get_filename_component(_name ${_abs_FILE} NAME)
|
||||
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" qm ${_name})
|
||||
|
||||
get_source_file_property(output_location ${_abs_FILE} OUTPUT_LOCATION)
|
||||
if(output_location)
|
||||
file(MAKE_DIRECTORY "${output_location}")
|
||||
set(qm "${output_location}/${qm}.qm")
|
||||
else()
|
||||
set(qm "${CMAKE_CURRENT_BINARY_DIR}/${qm}.qm")
|
||||
endif()
|
||||
|
||||
add_custom_command(OUTPUT ${qm}
|
||||
COMMAND ${Qt5_LRELEASE_EXECUTABLE}
|
||||
ARGS ${_abs_FILE} -qm ${qm}
|
||||
DEPENDS ${_abs_FILE} VERBATIM
|
||||
)
|
||||
list(APPEND ${_qm_files} ${qm})
|
||||
endforeach()
|
||||
set(${_qm_files} ${${_qm_files}} PARENT_SCOPE)
|
||||
endfunction()
|
@ -0,0 +1,47 @@
|
||||
#=============================================================================
|
||||
# Copyright 2014 Luís Pereira <luis.artur.pereira@gmail.com>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. The name of the author may not be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
#
|
||||
# These functions enables "automatic" translation loading in Qt5 apps
|
||||
# and libs. They generate a .cpp file that takes care of everything. The
|
||||
# user doesn't have to do anything in the source code.
|
||||
#
|
||||
# qt5_translation_loader(<source_files> <translations_dir> <catalog_name>)
|
||||
#
|
||||
# Output:
|
||||
# <source_files> Appends the generated file to this variable.
|
||||
#
|
||||
# Input:
|
||||
# <translations_dir> Full path name to the translations dir.
|
||||
# <catalog_name> Translation catalog to be loaded.
|
||||
|
||||
function(qt5_translation_loader source_files translations_dir catalog_name)
|
||||
configure_file(
|
||||
${LXQT_CMAKE_MODULES_DIR}/Qt5TranslationLoader.cpp.in
|
||||
Qt5TranslationLoader.cpp @ONLY
|
||||
)
|
||||
set(${source_files} ${${source_files}} ${CMAKE_CURRENT_BINARY_DIR}/Qt5TranslationLoader.cpp PARENT_SCOPE)
|
||||
endfunction()
|
@ -0,0 +1,33 @@
|
||||
/* This file has been generated by the CMake qt_translation_loader().
|
||||
* It loads Qt application translations.
|
||||
*
|
||||
* Attention: All changes will be overwritten!!!
|
||||
*/
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QLocale>
|
||||
#include <QTranslator>
|
||||
#include <QLibraryInfo>
|
||||
|
||||
static void loadQtTranslation()
|
||||
{
|
||||
QString locale = QLocale::system().name();
|
||||
QTranslator *qtTranslator = new QTranslator(qApp);
|
||||
|
||||
if (qtTranslator->load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) {
|
||||
qApp->installTranslator(qtTranslator);
|
||||
} else {
|
||||
delete qtTranslator;
|
||||
}
|
||||
|
||||
QTranslator *appTranslator = new QTranslator(qApp);
|
||||
if (appTranslator->load(QString("@translations_dir@/@catalog_name@_%1.qm").arg(locale))) {
|
||||
QCoreApplication::installTranslator(appTranslator);
|
||||
} else if (locale == QLatin1String("C") ||
|
||||
locale.startsWith(QLatin1String("en"))) {
|
||||
// English is the default. It's translated anyway.
|
||||
delete appTranslator;
|
||||
}
|
||||
}
|
||||
|
||||
Q_COREAPP_STARTUP_FUNCTION(loadQtTranslation)
|
@ -0,0 +1,104 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright (C) 2012 Alec Moskvin <alecm@gmx.com>
|
||||
*
|
||||
* This 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 "lxqtconfigdialog.h"
|
||||
#include "ui_lxqtconfigdialog.h"
|
||||
|
||||
#include <XdgIcon>
|
||||
#include <QPushButton>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
ConfigDialog::ConfigDialog(const QString& title, Settings* settings, QWidget* parent) :
|
||||
QDialog(parent),
|
||||
mSettings(settings),
|
||||
mCache(new SettingsCache(settings)),
|
||||
ui(new Ui::ConfigDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setWindowTitle(title);
|
||||
connect(ui->buttons, SIGNAL(clicked(QAbstractButton*)), SLOT(dialogButtonsAction(QAbstractButton*)));
|
||||
ui->moduleList->setVisible(false);
|
||||
connect(Settings::globalSettings(), SIGNAL(settingsChanged()), this, SLOT(updateIcons()));
|
||||
foreach(QPushButton* button, ui->buttons->findChildren<QPushButton*>())
|
||||
button->setAutoDefault(false);
|
||||
}
|
||||
|
||||
void ConfigDialog::addPage(QWidget* page, const QString& name, const QString& iconName)
|
||||
{
|
||||
addPage(page, name, QStringList() << iconName);
|
||||
}
|
||||
|
||||
void ConfigDialog::addPage(QWidget* page, const QString& name, const QStringList& iconNames)
|
||||
{
|
||||
QStringList icons = QStringList(iconNames) << "application-x-executable";
|
||||
new QListWidgetItem(XdgIcon::fromTheme(icons), name, ui->moduleList);
|
||||
mIcons.append(icons);
|
||||
ui->stackedWidget->addWidget(page);
|
||||
if(ui->stackedWidget->count() > 1)
|
||||
{
|
||||
ui->moduleList->setVisible(true);
|
||||
ui->moduleList->setCurrentRow(0);
|
||||
mMaxSize = QSize(qMax(page->geometry().width() + ui->moduleList->geometry().width(), mMaxSize.width()),
|
||||
qMax(page->geometry().height() + ui->buttons->geometry().height(), mMaxSize.height()));
|
||||
}
|
||||
else
|
||||
{
|
||||
mMaxSize = page->geometry().size();
|
||||
}
|
||||
resize(mMaxSize);
|
||||
}
|
||||
|
||||
void ConfigDialog::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
emit save();
|
||||
mSettings->sync();
|
||||
}
|
||||
|
||||
void ConfigDialog::dialogButtonsAction(QAbstractButton* button)
|
||||
{
|
||||
QDialogButtonBox::ButtonRole role = ui->buttons->buttonRole(button);
|
||||
if (role == QDialogButtonBox::ResetRole)
|
||||
{
|
||||
mCache->loadToSettings();
|
||||
emit reset();
|
||||
}
|
||||
else
|
||||
{
|
||||
close();
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigDialog::updateIcons()
|
||||
{
|
||||
for (int ix = 0; ix < mIcons.size(); ix++)
|
||||
ui->moduleList->item(ix)->setIcon(XdgIcon::fromTheme(mIcons.at(ix)));
|
||||
update();
|
||||
}
|
||||
|
||||
ConfigDialog::~ConfigDialog()
|
||||
{
|
||||
delete ui;
|
||||
delete mCache;
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright (C) 2012 Alec Moskvin <alecm@gmx.com>
|
||||
*
|
||||
* This 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 LXQTCONFIGDIALOG_H
|
||||
#define LXQTCONFIGDIALOG_H
|
||||
|
||||
#include "lxqtsettings.h"
|
||||
#include <QDialog>
|
||||
#include <QAbstractButton>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace Ui {
|
||||
class ConfigDialog;
|
||||
}
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class LXQT_API ConfigDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ConfigDialog(const QString& title, Settings* settings, QWidget* parent = 0);
|
||||
~ConfigDialog();
|
||||
|
||||
/*!
|
||||
* Add a page to the configure dialog
|
||||
*/
|
||||
void addPage(QWidget* page, const QString& name, const QString& iconName="application-x-executable");
|
||||
|
||||
/*!
|
||||
* Add a page to the configure dialog, attempting several alternative icons to find one in the theme
|
||||
*/
|
||||
void addPage(QWidget* page, const QString& name, const QStringList& iconNames);
|
||||
|
||||
signals:
|
||||
/*!
|
||||
* This signal is emitted when the user pressed the "Reset" button.
|
||||
* Settings should be re-read and the widgets should be set accordingly.
|
||||
*/
|
||||
void reset();
|
||||
|
||||
/*!
|
||||
* This is emitted whenever the window is closed and settings need to be saved.
|
||||
* It is only necessary if additional actions need to be performed - Settings are handled automatically.
|
||||
*/
|
||||
void save();
|
||||
|
||||
protected:
|
||||
Settings* mSettings;
|
||||
virtual void closeEvent(QCloseEvent* event);
|
||||
|
||||
private:
|
||||
SettingsCache* mCache;
|
||||
QList<QStringList> mIcons;
|
||||
QSize mMaxSize;
|
||||
Ui::ConfigDialog* ui;
|
||||
|
||||
private slots:
|
||||
void dialogButtonsAction(QAbstractButton* button);
|
||||
void updateIcons();
|
||||
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTCONFIGDIALOG_H
|
@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>ConfigDialog</class>
|
||||
<widget class="QWidget" name="ConfigDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>272</width>
|
||||
<height>231</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="LxQt::PageSelectWidget" name="moduleList">
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QStackedWidget" name="stackedWidget">
|
||||
<property name="currentIndex">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttons">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close|QDialogButtonBox::Reset</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>LxQt::PageSelectWidget</class>
|
||||
<extends>QListWidget</extends>
|
||||
<header location="global">configdialog/lxqtpageselectwidget.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>moduleList</tabstop>
|
||||
<tabstop>buttons</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>moduleList</sender>
|
||||
<signal>currentRowChanged(int)</signal>
|
||||
<receiver>stackedWidget</receiver>
|
||||
<slot>setCurrentIndex(int)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>150</x>
|
||||
<y>123</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>344</x>
|
||||
<y>117</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
@ -0,0 +1,113 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 "lxqtpageselectwidget.h"
|
||||
#include <QDebug>
|
||||
#include <QStyledItemDelegate>
|
||||
#include <QScrollBar>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
class PageSelectWidgetItemDelegate: public QStyledItemDelegate
|
||||
{
|
||||
public:
|
||||
explicit PageSelectWidgetItemDelegate(PageSelectWidget *parent = 0);
|
||||
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||
|
||||
private:
|
||||
PageSelectWidget* mView;
|
||||
};
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
PageSelectWidgetItemDelegate::PageSelectWidgetItemDelegate(PageSelectWidget *parent):
|
||||
QStyledItemDelegate(parent),
|
||||
mView(parent)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QSize PageSelectWidgetItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
|
||||
{
|
||||
QSize size = QStyledItemDelegate::sizeHint(option, index);
|
||||
size.setWidth(mView->viewport()->width() - 2*mView->spacing());
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
PageSelectWidget::PageSelectWidget(QWidget *parent) :
|
||||
QListWidget(parent)
|
||||
{
|
||||
setSelectionRectVisible(false);
|
||||
setViewMode(IconMode);
|
||||
setSpacing(2);
|
||||
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding);
|
||||
setWordWrap(true);
|
||||
setDragEnabled(NoDragDrop);
|
||||
setEditTriggers(NoEditTriggers);
|
||||
setTextElideMode(Qt::ElideNone);
|
||||
|
||||
setItemDelegate(new PageSelectWidgetItemDelegate(this));
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
PageSelectWidget::~PageSelectWidget()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QSize PageSelectWidget::sizeHint() const
|
||||
{
|
||||
QSize size = QListWidget::sizeHint();
|
||||
int w = 0;
|
||||
for(int i=0; i< count(); ++i)
|
||||
{
|
||||
QRect rect = fontMetrics().boundingRect(QRect(), Qt::AlignLeft | Qt::TextWordWrap, item(i)->text());
|
||||
w = qMax(w, rect.width());
|
||||
}
|
||||
|
||||
if (horizontalScrollBar()->isVisible())
|
||||
w += horizontalScrollBar()->width();
|
||||
size.setWidth(w + frameWidth() + spacing()*2 + 10);
|
||||
return size;
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 LXQTPAGESELECTWIDGET_H
|
||||
#define LXQTPAGESELECTWIDGET_H
|
||||
|
||||
#include "lxqtglobals.h"
|
||||
#include <QListWidget>
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class LXQT_API PageSelectWidget : public QListWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit PageSelectWidget(QWidget *parent = 0);
|
||||
virtual ~PageSelectWidget();
|
||||
|
||||
protected:
|
||||
QSize sizeHint() const;
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // PAGESELECTWIDGET_H
|
@ -0,0 +1,69 @@
|
||||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||
<!--
|
||||
Based on the output of command:
|
||||
qdbus org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.DBus.Introspectable.Introspect
|
||||
against xfce4-notifyd
|
||||
-->
|
||||
<node>
|
||||
<!--interface name="org.freedesktop.DBus.Introspectable">
|
||||
<method name="Introspect">
|
||||
<arg name="data" direction="out" type="s"/>
|
||||
</method>
|
||||
</interface>
|
||||
<interface name="org.freedesktop.DBus.Properties">
|
||||
<method name="Get">
|
||||
<arg name="interface" direction="in" type="s"/>
|
||||
<arg name="propname" direction="in" type="s"/>
|
||||
<arg name="value" direction="out" type="v"/>
|
||||
</method>
|
||||
<method name="Set">
|
||||
<arg name="interface" direction="in" type="s"/>
|
||||
<arg name="propname" direction="in" type="s"/>
|
||||
<arg name="value" direction="in" type="v"/>
|
||||
</method>
|
||||
<method name="GetAll">
|
||||
<arg name="interface" direction="in" type="s"/>
|
||||
<arg name="props" direction="out" type="a{sv}"/>
|
||||
</method>
|
||||
</interface>
|
||||
<interface name="org.xfce.Notifyd">
|
||||
<method name="Quit">
|
||||
</method>
|
||||
</interface-->
|
||||
<interface name="org.freedesktop.Notifications">
|
||||
<method name="GetServerInformation">
|
||||
<arg name="name" type="s" direction="out"/>
|
||||
<arg name="vendor" type="s" direction="out"/>
|
||||
<arg name="version" type="s" direction="out"/>
|
||||
<arg name="spec_version" type="s" direction="out"/>
|
||||
</method>
|
||||
<method name="CloseNotification">
|
||||
<arg name="id" type="u" direction="in"/>
|
||||
</method>
|
||||
<method name="Notify">
|
||||
<annotation name="com.trolltech.QtDBus.QtTypeName.In6" value="QVariantMap"/>
|
||||
<arg name="app_name" type="s" direction="in"/>
|
||||
<arg name="replaces_id" type="u" direction="in"/>
|
||||
<arg name="app_icon" type="s" direction="in"/>
|
||||
<arg name="summary" type="s" direction="in"/>
|
||||
<arg name="body" type="s" direction="in"/>
|
||||
<arg name="actions" type="as" direction="in"/>
|
||||
<arg name="hints" type="a{sv}" direction="in"/>
|
||||
<arg name="expire_timeout" type="i" direction="in"/>
|
||||
<arg name="id" type="u" direction="out"/>
|
||||
</method>
|
||||
<method name="GetCapabilities">
|
||||
<arg name="capabilities" type="as" direction="out"/>
|
||||
</method>
|
||||
<signal name="ActionInvoked">
|
||||
<arg type="u"/>
|
||||
<arg type="s"/>
|
||||
</signal>
|
||||
<signal name="NotificationClosed">
|
||||
<arg type="u"/>
|
||||
<arg type="u"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
||||
|
@ -0,0 +1,7 @@
|
||||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||
<node>
|
||||
<interface name="org.lxqt.SingleApplication">
|
||||
<method name="activateWindow">
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
@ -0,0 +1,4 @@
|
||||
/*! \mainpage A minimal shared library for LXQt DE.
|
||||
|
||||
liblxqt containing shared classes for LXQt developed by LXQt team and contributors.
|
||||
*/
|
@ -0,0 +1,117 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2012-2013 Razor team
|
||||
* Authors:
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 <QDir>
|
||||
|
||||
#include "lxqtapplication.h"
|
||||
#include "lxqtsettings.h"
|
||||
|
||||
#include <XdgIcon>
|
||||
#include <XdgDirs>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
#define COLOR_DEBUG "\033[32;2m"
|
||||
#define COLOR_WARN "\033[33;2m"
|
||||
#define COLOR_CRITICAL "\033[31;1m"
|
||||
#define COLOR_FATAL "\033[33;1m"
|
||||
#define COLOR_RESET "\033[0m"
|
||||
|
||||
#define QAPP_NAME qApp ? qApp->objectName().toUtf8().constData() : ""
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <unistd.h>
|
||||
#include <QDateTime>
|
||||
/*! \brief Log qDebug input to file
|
||||
Used only in pure Debug builds or when is the system environment
|
||||
variable LXQT_DEBUG set
|
||||
*/
|
||||
void dbgMessageOutput(QtMsgType type, const QMessageLogContext &ctx, const QString & msgStr)
|
||||
{
|
||||
QByteArray msgBuf = msgStr.toUtf8();
|
||||
const char* msg = msgBuf.constData();
|
||||
QDir dir(XdgDirs::configHome().toUtf8() + "/lxqt");
|
||||
dir.mkpath(".");
|
||||
|
||||
const char* typestr;
|
||||
const char* color;
|
||||
switch (type) {
|
||||
case QtDebugMsg:
|
||||
typestr = "Debug";
|
||||
color = COLOR_DEBUG;
|
||||
break;
|
||||
case QtWarningMsg:
|
||||
typestr = "Warning";
|
||||
color = COLOR_WARN;
|
||||
break;
|
||||
case QtFatalMsg:
|
||||
typestr = "Fatal";
|
||||
color = COLOR_FATAL;
|
||||
break;
|
||||
default: // QtCriticalMsg
|
||||
typestr = "Critical";
|
||||
color = COLOR_CRITICAL;
|
||||
}
|
||||
|
||||
QByteArray dt = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz").toUtf8();
|
||||
if (isatty(STDERR_FILENO))
|
||||
fprintf(stderr, "%s %s(%p) %s: %s%s\n", color, QAPP_NAME, qApp, typestr, msg, COLOR_RESET);
|
||||
else
|
||||
fprintf(stderr, "%s(%p) %s: %s\n", QAPP_NAME, qApp, typestr, msg);
|
||||
|
||||
FILE *f = fopen(dir.absoluteFilePath("debug.log").toUtf8().constData(), "a+");
|
||||
fprintf(f, "%s %s(%p) %s: %s\n", dt.constData(), QAPP_NAME, qApp, typestr, msg);
|
||||
fclose(f);
|
||||
|
||||
if (type == QtFatalMsg)
|
||||
abort();
|
||||
}
|
||||
|
||||
Application::Application(int &argc, char** argv)
|
||||
: QApplication(argc, argv)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
qInstallMessageHandler(dbgMessageOutput);
|
||||
#else
|
||||
if (!qgetenv("LXQT_DEBUG").isNull())
|
||||
qInstallMessageHandler(dbgMessageOutput);
|
||||
#endif
|
||||
|
||||
XdgIcon::setThemeName(Settings::globalSettings()->value("icon_theme").toString());
|
||||
setWindowIcon(QIcon(QString(LXQT_SHARE_DIR) + "/graphics/lxqt_logo.png"));
|
||||
connect(Settings::globalSettings(), SIGNAL(lxqtThemeChanged()), this, SLOT(updateTheme()));
|
||||
updateTheme();
|
||||
}
|
||||
|
||||
|
||||
void Application::updateTheme()
|
||||
{
|
||||
QString styleSheetKey = QFileInfo(applicationFilePath()).fileName();
|
||||
setStyleSheet(lxqtTheme.qss(styleSheetKey));
|
||||
emit themeChanged();
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2012-2013 Razor team
|
||||
* Authors:
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 LXQTAPPLICATION_H
|
||||
#define LXQTAPPLICATION_H
|
||||
|
||||
#include <QApplication>
|
||||
#include <QProxyStyle>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
/*! \brief LXQt wrapper around QApplication.
|
||||
* It loads various LXQt related stuff by default (window icon, icon theme...)
|
||||
*
|
||||
* \note This wrapper is intended to be used only inside LXQt project. Using it
|
||||
* in external application will automatically require linking to various
|
||||
* LXQt libraries.
|
||||
*
|
||||
*/
|
||||
class LXQT_API Application : public QApplication
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
/*! Construct a LXQt application object.
|
||||
* \param argc standard argc as in QApplication
|
||||
* \param argv standard argv as in QApplication
|
||||
*/
|
||||
Application(int &argc, char **argv);
|
||||
virtual ~Application() {}
|
||||
|
||||
private slots:
|
||||
void updateTheme();
|
||||
|
||||
signals:
|
||||
void themeChanged();
|
||||
};
|
||||
|
||||
#if defined(lxqtApp)
|
||||
#undef lxqtApp
|
||||
#endif
|
||||
#define lxqtApp (static_cast<LxQt::Application *>(qApp))
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTAPPLICATION_H
|
@ -0,0 +1,129 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright (C) 2012 Alec Moskvin <alecm@gmx.com>
|
||||
*
|
||||
* This 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 "lxqtautostartentry.h"
|
||||
#include <QFileInfo>
|
||||
|
||||
#include <XdgAutoStart>
|
||||
#include <XdgDirs>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
AutostartEntry::AutostartEntry() :
|
||||
mLocalState(StateNone), mSystem(false)
|
||||
{
|
||||
}
|
||||
|
||||
AutostartEntry::AutostartEntry(const QString& name):
|
||||
mLocalState(StateNone), mSystem(false)
|
||||
{
|
||||
foreach (const QString& dir, XdgDirs::autostartDirs())
|
||||
{
|
||||
QString path = QString("%1/%2").arg(dir, name);
|
||||
if (QFile(path).exists())
|
||||
{
|
||||
mSystemFile.load(path);
|
||||
mSystem = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
QString path = QString("%1/%2").arg(XdgDirs::autostartHome(), name);
|
||||
if (QFile(path).exists())
|
||||
{
|
||||
mLocalFile.load(path);
|
||||
mLocalState = StateExists;
|
||||
}
|
||||
}
|
||||
|
||||
void AutostartEntry::setFile(const XdgDesktopFile& file)
|
||||
{
|
||||
bool local = isLocal();
|
||||
if (mSystem && local && file == mSystemFile)
|
||||
{
|
||||
removeLocal();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (local)
|
||||
mLocalState = StateModified;
|
||||
else
|
||||
mLocalState = StateTransient;
|
||||
mLocalFile = file;
|
||||
}
|
||||
}
|
||||
|
||||
bool AutostartEntry::removeLocal()
|
||||
{
|
||||
if (!isLocal())
|
||||
return false;
|
||||
|
||||
if (mLocalState == StateTransient)
|
||||
mLocalState = StateNone;
|
||||
else
|
||||
mLocalState = StateDeleted;
|
||||
|
||||
return !mSystem;
|
||||
}
|
||||
|
||||
const XdgDesktopFile& AutostartEntry::file() const
|
||||
{
|
||||
return isLocal() ? mLocalFile : mSystemFile;
|
||||
}
|
||||
|
||||
QString AutostartEntry::name() const
|
||||
{
|
||||
return QFileInfo(file().fileName()).fileName();
|
||||
}
|
||||
|
||||
void AutostartEntry::setEnabled(bool enable)
|
||||
{
|
||||
XdgDesktopFile f = file();
|
||||
if (enable)
|
||||
f.removeEntry("Hidden");
|
||||
else
|
||||
f.setValue("Hidden", true);
|
||||
|
||||
setFile(f);
|
||||
}
|
||||
|
||||
bool AutostartEntry::isEnabled() const
|
||||
{
|
||||
return !isEmpty() && !file().value("Hidden", false).toBool();
|
||||
}
|
||||
|
||||
bool AutostartEntry::commit()
|
||||
{
|
||||
if (mLocalState == StateDeleted)
|
||||
{
|
||||
mLocalState = StateNone;
|
||||
return QFile::remove(mLocalFile.fileName());
|
||||
}
|
||||
else if (mLocalState == StateModified || mLocalState == StateTransient)
|
||||
{
|
||||
mLocalState = StateExists;
|
||||
return mLocalFile.save(XdgAutoStart::localPath(mLocalFile));
|
||||
}
|
||||
return true;
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright (C) 2012 Alec Moskvin <alecm@gmx.com>
|
||||
*
|
||||
* This 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 LXQTAUTOSTARTENTRY_H
|
||||
#define LXQTAUTOSTARTENTRY_H
|
||||
|
||||
#include "lxqtglobals.h"
|
||||
#include <XdgDesktopFile>
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
/*! \brief The AutostartEntry class provides an interface for staging configuration of individual
|
||||
autostart items. All changes are made in memory until commit() is called.
|
||||
|
||||
- "system" file refers to a read-only file in /etc/xdg/autostart (or a directory in $XDG_CONFIG_DIRS)
|
||||
- "local" file refers to the file in user's ~/.config/autostart (or in $XDG_CONFIG_HOME/autostart)
|
||||
|
||||
When a "local" file has the same name as the "system" file, the local one overrides it. This class
|
||||
tries to ensure that the "local" file is deleted if it's identical to the "system" file.
|
||||
*/
|
||||
class LXQT_API AutostartEntry
|
||||
{
|
||||
public:
|
||||
/*! Constructs an AutostartEntry object for a specific entry.
|
||||
* \param name The name of the autostart desktop file (e.g. "lxqt-panel.desktop")
|
||||
*/
|
||||
AutostartEntry(const QString& name);
|
||||
|
||||
//! \brief Default constructor
|
||||
AutostartEntry();
|
||||
|
||||
//! Destructor
|
||||
virtual ~AutostartEntry() { }
|
||||
|
||||
//! Returns the "active" desktop file
|
||||
const XdgDesktopFile& file() const;
|
||||
|
||||
//! Returns the name of the autostart entry (e.g. "lxqt-panel.desktop")
|
||||
QString name() const;
|
||||
|
||||
/*! Sets to the specified desktop file. Use this to make modifications.
|
||||
* \param file The desktop file
|
||||
*/
|
||||
void setFile(const XdgDesktopFile& file);
|
||||
|
||||
/*! Sets whether the item auto-starts
|
||||
* \param enable When false, sets the "Hidden" key which will prevent the item from starting
|
||||
*/
|
||||
void setEnabled(bool enable);
|
||||
|
||||
//! Returns true if the item will auto-start
|
||||
bool isEnabled() const;
|
||||
|
||||
/*! Returns true if the entry does not exist, and the object carries no useful information
|
||||
* and can be ignored/deleted.
|
||||
*/
|
||||
bool isEmpty() const { return !mSystem && mLocalState == StateNone; }
|
||||
|
||||
/*! Write any changes to disk
|
||||
* \return true on success
|
||||
*/
|
||||
bool commit();
|
||||
|
||||
protected:
|
||||
//! Returns true if the user's "local" version exists
|
||||
bool isLocal() const { return mLocalState != StateNone && mLocalState != StateDeleted; }
|
||||
|
||||
/*! Removes the user's "local" version of the file, reverting to system defaults
|
||||
* \return true if there is no "system" version left (i.e. the entry was entirely deleted)
|
||||
*/
|
||||
bool removeLocal();
|
||||
|
||||
//! \brief a read-only file in /etc/xdg/autostart (or a directory in $XDG_CONFIG_DIRS)
|
||||
XdgDesktopFile mSystemFile;
|
||||
|
||||
//! \brief the file in user's ~/.config/autostart (or in $XDG_CONFIG_HOME/autostart)
|
||||
XdgDesktopFile mLocalFile;
|
||||
|
||||
//! State of the "local" file
|
||||
enum ItemState
|
||||
{
|
||||
StateNone, //! does not exist at all
|
||||
StateDeleted, //! needs to be deleted from disk
|
||||
StateTransient, //! does not yet exist on disk
|
||||
StateModified, //! exists on disk and is modified
|
||||
StateExists //! exists on disk and unmodified
|
||||
} mLocalState;
|
||||
bool mSystem; //! true if the "system" file exists
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTAUTOSTARTENTRY_H
|
@ -0,0 +1,39 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2013 - 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 _LXQT_GLOBALS_H_
|
||||
#define _LXQT_GLOBALS_H_
|
||||
|
||||
#include <QtGlobal>
|
||||
|
||||
#ifdef COMPILE_LIBLXQT
|
||||
#define LXQT_API Q_DECL_EXPORT
|
||||
#else
|
||||
#define LXQT_API Q_DECL_IMPORT
|
||||
#endif
|
||||
|
||||
#endif // _LXQT_GLOBALS_H_
|
@ -0,0 +1,609 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2012 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 "lxqtgridlayout.h"
|
||||
#include <QDebug>
|
||||
#include <math.h>
|
||||
#include <QWidget>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
class LxQt::GridLayoutPrivate
|
||||
{
|
||||
public:
|
||||
GridLayoutPrivate();
|
||||
|
||||
QList<QLayoutItem*> mItems;
|
||||
int mRowCount;
|
||||
int mColumnCount;
|
||||
GridLayout::Direction mDirection;
|
||||
|
||||
bool mIsValid;
|
||||
QSize mCellSizeHint;
|
||||
QSize mCellMaxSize;
|
||||
int mVisibleCount;
|
||||
GridLayout::Stretch mStretch;
|
||||
|
||||
|
||||
void updateCache();
|
||||
int rows() const;
|
||||
int cols() const;
|
||||
QSize mPrefCellMinSize;
|
||||
QSize mPrefCellMaxSize;
|
||||
};
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
GridLayoutPrivate::GridLayoutPrivate()
|
||||
{
|
||||
mColumnCount = 0;
|
||||
mRowCount = 0;
|
||||
mDirection = GridLayout::LeftToRight;
|
||||
mIsValid = false;
|
||||
mVisibleCount = 0;
|
||||
mStretch = GridLayout::StretchHorizontal | GridLayout::StretchVertical;
|
||||
mPrefCellMinSize = QSize(0,0);
|
||||
mPrefCellMaxSize = QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayoutPrivate::updateCache()
|
||||
{
|
||||
mCellSizeHint = QSize(0, 0);
|
||||
mCellMaxSize = QSize(0, 0);
|
||||
mVisibleCount = 0;
|
||||
|
||||
for (int i=0; i<mItems.count(); ++i)
|
||||
{
|
||||
QLayoutItem *item = mItems.at(i);
|
||||
if (!item->widget() || item->widget()->isHidden())
|
||||
continue;
|
||||
|
||||
int h = qBound(item->minimumSize().height(),
|
||||
item->sizeHint().height(),
|
||||
item->maximumSize().height());
|
||||
|
||||
int w = qBound(item->minimumSize().width(),
|
||||
item->sizeHint().width(),
|
||||
item->maximumSize().width());
|
||||
|
||||
mCellSizeHint.rheight() = qMax(mCellSizeHint.height(), h);
|
||||
mCellSizeHint.rwidth() = qMax(mCellSizeHint.width(), w);
|
||||
|
||||
mCellMaxSize.rheight() = qMax(mCellMaxSize.height(), item->maximumSize().height());
|
||||
mCellMaxSize.rwidth() = qMax(mCellMaxSize.width(), item->maximumSize().width());
|
||||
mVisibleCount++;
|
||||
|
||||
#if 0
|
||||
qDebug() << "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
|
||||
qDebug() << "item.min" << item->minimumSize().width();
|
||||
qDebug() << "item.sz " << item->sizeHint().width();
|
||||
qDebug() << "item.max" << item->maximumSize().width();
|
||||
qDebug() << "w h" << w << h;
|
||||
qDebug() << "wid.sizeHint" << item->widget()->sizeHint();
|
||||
qDebug() << "mCellSizeHint:" << mCellSizeHint;
|
||||
qDebug() << "mCellMaxSize: " << mCellMaxSize;
|
||||
qDebug() << "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
|
||||
#endif
|
||||
|
||||
}
|
||||
mCellSizeHint.rwidth() = qBound(mPrefCellMinSize.width(), mCellSizeHint.width(), mPrefCellMaxSize.width());
|
||||
mCellSizeHint.rheight()= qBound(mPrefCellMinSize.height(), mCellSizeHint.height(), mPrefCellMaxSize.height());
|
||||
mIsValid = !mCellSizeHint.isEmpty();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
int GridLayoutPrivate::rows() const
|
||||
{
|
||||
if (mRowCount)
|
||||
return mRowCount;
|
||||
|
||||
if (!mColumnCount)
|
||||
return 1;
|
||||
|
||||
return ceil(mVisibleCount * 1.0 / mColumnCount);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
int GridLayoutPrivate::cols() const
|
||||
{
|
||||
if (mColumnCount)
|
||||
return mColumnCount;
|
||||
|
||||
int rows = mRowCount;
|
||||
if (!rows)
|
||||
rows = 1;
|
||||
|
||||
return ceil(mVisibleCount * 1.0 / rows);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
GridLayout::GridLayout(QWidget *parent):
|
||||
QLayout(parent),
|
||||
d_ptr(new GridLayoutPrivate())
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
GridLayout::~GridLayout()
|
||||
{
|
||||
delete d_ptr;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::addItem(QLayoutItem *item)
|
||||
{
|
||||
d_ptr->mItems.append(item);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QLayoutItem *GridLayout::itemAt(int index) const
|
||||
{
|
||||
Q_D(const GridLayout);
|
||||
if (index < 0 || index >= d->mItems.count())
|
||||
return 0;
|
||||
|
||||
return d->mItems.at(index);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QLayoutItem *GridLayout::takeAt(int index)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (index < 0 || index >= d->mItems.count())
|
||||
return 0;
|
||||
|
||||
QLayoutItem *item = d->mItems.takeAt(index);
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
int GridLayout::count() const
|
||||
{
|
||||
Q_D(const GridLayout);
|
||||
return d->mItems.count();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::invalidate()
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
d->mIsValid = false;
|
||||
QLayout::invalidate();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
int GridLayout::rowCount() const
|
||||
{
|
||||
Q_D(const GridLayout);
|
||||
return d->mRowCount;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setRowCount(int value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mRowCount != value)
|
||||
{
|
||||
d->mRowCount = value;
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
int GridLayout::columnCount() const
|
||||
{
|
||||
Q_D(const GridLayout);
|
||||
return d->mColumnCount;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setColumnCount(int value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mColumnCount != value)
|
||||
{
|
||||
d->mColumnCount = value;
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
GridLayout::Direction GridLayout::direction() const
|
||||
{
|
||||
Q_D(const GridLayout);
|
||||
return d->mDirection;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setDirection(GridLayout::Direction value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mDirection != value)
|
||||
{
|
||||
d->mDirection = value;
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
GridLayout::Stretch GridLayout::stretch() const
|
||||
{
|
||||
Q_D(const GridLayout);
|
||||
return d->mStretch;
|
||||
}
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setStretch(Stretch value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mStretch != value)
|
||||
{
|
||||
d->mStretch = value;
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::moveItem(int from, int to)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
d->mItems.move(from, to);
|
||||
invalidate();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QSize GridLayout::cellMinimumSize() const
|
||||
{
|
||||
Q_D(const GridLayout);
|
||||
return d->mPrefCellMinSize;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setCellMinimumSize(QSize minSize)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mPrefCellMinSize != minSize)
|
||||
{
|
||||
d->mPrefCellMinSize = minSize;
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setCellMinimumHeight(int value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mPrefCellMinSize.height() != value)
|
||||
{
|
||||
d->mPrefCellMinSize.setHeight(value);
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setCellMinimumWidth(int value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mPrefCellMinSize.width() != value)
|
||||
{
|
||||
d->mPrefCellMinSize.setWidth(value);
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QSize GridLayout::cellMaximumSize() const
|
||||
{
|
||||
Q_D(const GridLayout);
|
||||
return d->mPrefCellMaxSize;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setCellMaximumSize(QSize maxSize)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mPrefCellMaxSize != maxSize)
|
||||
{
|
||||
d->mPrefCellMaxSize = maxSize;
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setCellMaximumHeight(int value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mPrefCellMaxSize.height() != value)
|
||||
{
|
||||
d->mPrefCellMaxSize.setHeight(value);
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setCellMaximumWidth(int value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mPrefCellMaxSize.width() != value)
|
||||
{
|
||||
d->mPrefCellMaxSize.setWidth(value);
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setCellFixedSize(QSize size)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mPrefCellMinSize != size ||
|
||||
d->mPrefCellMaxSize != size)
|
||||
{
|
||||
d->mPrefCellMinSize = size;
|
||||
d->mPrefCellMaxSize = size;
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setCellFixedHeight(int value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mPrefCellMinSize.height() != value ||
|
||||
d->mPrefCellMaxSize.height() != value)
|
||||
{
|
||||
d->mPrefCellMinSize.setHeight(value);
|
||||
d->mPrefCellMaxSize.setHeight(value);
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setCellFixedWidth(int value)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
if (d->mPrefCellMinSize.width() != value ||
|
||||
d->mPrefCellMaxSize.width() != value)
|
||||
{
|
||||
d->mPrefCellMinSize.setWidth(value);
|
||||
d->mPrefCellMaxSize.setWidth(value);
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QSize GridLayout::sizeHint() const
|
||||
{
|
||||
Q_D(const GridLayout);
|
||||
|
||||
if (!d->mIsValid)
|
||||
const_cast<GridLayoutPrivate*>(d)->updateCache();
|
||||
|
||||
return QSize(d->cols() * d->mCellSizeHint.width(),
|
||||
d->rows() * d->mCellSizeHint.height());
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GridLayout::setGeometry(const QRect &geometry)
|
||||
{
|
||||
Q_D(GridLayout);
|
||||
|
||||
if (!d->mIsValid)
|
||||
d->updateCache();
|
||||
|
||||
int y = geometry.top();
|
||||
int x = geometry.left();
|
||||
|
||||
// For historical reasons QRect::right returns left() + width() - 1
|
||||
// and QRect::bottom() returns top() + height() - 1;
|
||||
// So we use left() + height() and top() + height()
|
||||
//
|
||||
// http://qt-project.org/doc/qt-4.8/qrect.html
|
||||
|
||||
int maxX = geometry.left() + geometry.width();
|
||||
int maxY = geometry.top() + geometry.height();
|
||||
|
||||
int itemWidth;
|
||||
if (d->mStretch.testFlag(StretchHorizontal))
|
||||
{
|
||||
itemWidth = geometry.width() * 1.0 / d->cols();
|
||||
itemWidth = qMin(itemWidth, d->mCellMaxSize.width());
|
||||
}
|
||||
else
|
||||
{
|
||||
itemWidth = d->mCellSizeHint.width();
|
||||
}
|
||||
|
||||
itemWidth = qBound(d->mPrefCellMinSize.width(), itemWidth, d->mPrefCellMaxSize.width());
|
||||
|
||||
int itemHeight;
|
||||
if (d->mStretch.testFlag(StretchVertical))
|
||||
{
|
||||
itemHeight = geometry.height() * 1.0 / d->rows();
|
||||
itemHeight = qMin(itemHeight, d->mCellMaxSize.height());
|
||||
}
|
||||
else
|
||||
{
|
||||
itemHeight = d->mCellSizeHint.height();
|
||||
}
|
||||
|
||||
itemHeight = qBound(d->mPrefCellMinSize.height(), itemHeight, d->mPrefCellMaxSize.height());
|
||||
|
||||
|
||||
#if 0
|
||||
qDebug() << "** GridLayout::setGeometry *******************************";
|
||||
qDebug() << "Geometry:" << geometry;
|
||||
qDebug() << "CellSize:" << d->mCellSizeHint;
|
||||
qDebug() << "Constraints:" << "min" << d->mPrefCellMinSize << "max" << d->mPrefCellMaxSize;
|
||||
qDebug() << "Count" << count();
|
||||
qDebug() << "Cols:" << d->cols() << "(" << d->mColumnCount << ")";
|
||||
qDebug() << "Rows:" << d->rows() << "(" << d->mRowCount << ")";
|
||||
qDebug() << "Stretch:" << "h:" << (d->mStretch.testFlag(StretchHorizontal)) << " v:" << (d->mStretch.testFlag(StretchVertical));
|
||||
qDebug() << "Item:" << "h:" << itemHeight << " w:" << itemWidth;
|
||||
#endif
|
||||
|
||||
if (d->mDirection == LeftToRight)
|
||||
{
|
||||
foreach(QLayoutItem *item, d->mItems)
|
||||
{
|
||||
if (!item->widget() || item->widget()->isHidden())
|
||||
continue;
|
||||
|
||||
if (x + itemWidth > maxX)
|
||||
{
|
||||
x = geometry.left();
|
||||
if (d->mStretch.testFlag(StretchVertical))
|
||||
y += geometry.height() / d->rows();
|
||||
else
|
||||
y += itemHeight;
|
||||
|
||||
}
|
||||
|
||||
item->setGeometry(QRect(x, y, itemWidth, itemHeight));
|
||||
x += itemWidth;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach(QLayoutItem *item, d->mItems)
|
||||
{
|
||||
if (!item->widget() || item->widget()->isHidden())
|
||||
continue;
|
||||
|
||||
if (y + itemHeight > maxY)
|
||||
{
|
||||
y = geometry.top();
|
||||
if (d->mStretch.testFlag(StretchHorizontal))
|
||||
x += geometry.width() / d->cols();
|
||||
else
|
||||
x += itemWidth;
|
||||
|
||||
}
|
||||
item->setGeometry(QRect(x, y, itemWidth, itemHeight));
|
||||
y += itemHeight;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,237 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2012 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 LXQTGRIDLAYOUT_H
|
||||
#define LXQTGRIDLAYOUT_H
|
||||
|
||||
#include <QList>
|
||||
#include "lxqtglobals.h"
|
||||
#include <QLayout>
|
||||
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class GridLayoutPrivate;
|
||||
|
||||
/**
|
||||
The GridLayout class lays out widgets in a grid.
|
||||
**/
|
||||
class LXQT_API GridLayout: public QLayout
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
/**
|
||||
This enum type is used to describe direction for this grid.
|
||||
**/
|
||||
enum Direction
|
||||
{
|
||||
LeftToRight, ///< The items are first laid out horizontally and then vertically.
|
||||
TopToBottom ///< The items are first laid out vertically and then horizontally.
|
||||
};
|
||||
|
||||
/**
|
||||
This enum type is used to describe stretch. It contains one horizontal
|
||||
and one vertical flags that can be combined to produce the required effect.
|
||||
*/
|
||||
enum StretchFlag
|
||||
{
|
||||
NoStretch = 0, ///< No justifies items
|
||||
StretchHorizontal = 1, ///< Justifies items in the available horizontal space
|
||||
StretchVertical = 2 ///< Justifies items in the available vertical space
|
||||
};
|
||||
Q_DECLARE_FLAGS(Stretch, StretchFlag)
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Constructs a new GridLayout with parent widget, parent.
|
||||
The layout has one row and zero column initially, and will
|
||||
expand to left when new items are inserted.
|
||||
**/
|
||||
explicit GridLayout(QWidget *parent = 0);
|
||||
|
||||
/**
|
||||
Destroys the grid layout. The layout's widgets aren't destroyed.
|
||||
**/
|
||||
~GridLayout();
|
||||
|
||||
void addItem(QLayoutItem *item);
|
||||
QLayoutItem *itemAt(int index) const;
|
||||
QLayoutItem *takeAt(int index);
|
||||
int count() const;
|
||||
void invalidate();
|
||||
|
||||
QSize sizeHint() const;
|
||||
void setGeometry(const QRect &geometry);
|
||||
|
||||
|
||||
/**
|
||||
Returns the number of rows in this grid.
|
||||
**/
|
||||
int rowCount() const;
|
||||
|
||||
/**
|
||||
Sets the number of rows in this grid. If value is 0, then rows
|
||||
count will calculated automatically when new items are inserted.
|
||||
|
||||
In the most cases you should to set fixed number for one thing,
|
||||
or for rows, or for columns.
|
||||
|
||||
\sa GridLayout::setColumnCount
|
||||
**/
|
||||
void setRowCount(int value);
|
||||
|
||||
|
||||
/**
|
||||
Returns the number of columns in this grid.
|
||||
**/
|
||||
int columnCount() const;
|
||||
|
||||
/**
|
||||
Sets the number of columns in this grid. If value is 0, then columns
|
||||
count will calculated automatically when new items are inserted.
|
||||
|
||||
In the most cases you should to set fixed number for one thing,
|
||||
or for rows, or for columns.
|
||||
|
||||
\sa GridLayout::setRowCount
|
||||
**/
|
||||
void setColumnCount(int value);
|
||||
|
||||
|
||||
/**
|
||||
Returns the alignment of this grid.
|
||||
|
||||
\sa GridLayout::Direction
|
||||
**/
|
||||
Direction direction() const;
|
||||
|
||||
/**
|
||||
Sets the direction for this grid.
|
||||
|
||||
\sa GridLayout::Direction
|
||||
**/
|
||||
void setDirection(Direction value);
|
||||
|
||||
/**
|
||||
Returns the stretch flags of this grid.
|
||||
|
||||
\sa GridLayout::StretchFlag
|
||||
**/
|
||||
Stretch stretch() const;
|
||||
|
||||
/**
|
||||
Sets the stretch flags for this grid.
|
||||
|
||||
\sa GridLayout::StretchFlag
|
||||
**/
|
||||
void setStretch(Stretch value);
|
||||
|
||||
/**
|
||||
Moves the item at index position from to index position to.
|
||||
**/
|
||||
void moveItem(int from, int to);
|
||||
|
||||
/**
|
||||
Returns the cells' minimum size.
|
||||
By default, this property contains a size with zero width and height.
|
||||
**/
|
||||
QSize cellMinimumSize() const;
|
||||
|
||||
/**
|
||||
Sets the minimum size of all cells to minSize pixels.
|
||||
**/
|
||||
void setCellMinimumSize(QSize minSize);
|
||||
|
||||
/**
|
||||
Sets the minimum height of the cells to value without
|
||||
changing the width. Provided for convenience.
|
||||
**/
|
||||
void setCellMinimumHeight(int value);
|
||||
|
||||
/**
|
||||
Sets the minimum width of the cells to value without
|
||||
changing the heights. Provided for convenience.
|
||||
**/
|
||||
void setCellMinimumWidth(int value);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Returns the cells' maximum size.
|
||||
By default, this property contains a size with zero width and height.
|
||||
**/
|
||||
QSize cellMaximumSize() const;
|
||||
|
||||
/**
|
||||
Sets the maximum size of all cells to maxSize pixels.
|
||||
**/
|
||||
void setCellMaximumSize(QSize maxSize);
|
||||
|
||||
/**
|
||||
Sets the maximum height of the cells to value without
|
||||
changing the width. Provided for convenience.
|
||||
**/
|
||||
void setCellMaximumHeight(int value);
|
||||
|
||||
/**
|
||||
Sets the maximum width of the cells to value without
|
||||
changing the heights. Provided for convenience.
|
||||
**/
|
||||
void setCellMaximumWidth(int value);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Sets both the minimum and maximum sizes of the cells to size,
|
||||
thereby preventing it from ever growing or shrinking.
|
||||
**/
|
||||
void setCellFixedSize(QSize size);
|
||||
|
||||
/**
|
||||
Sets both the minimum and maximum height of the cells to value without
|
||||
changing the width. Provided for convenience.
|
||||
**/
|
||||
void setCellFixedHeight(int value);
|
||||
|
||||
/**
|
||||
Sets both the minimum and maximum width of the cells to value without
|
||||
changing the heights. Provided for convenience.
|
||||
**/
|
||||
void setCellFixedWidth(int value);
|
||||
|
||||
private:
|
||||
GridLayoutPrivate* const d_ptr;
|
||||
Q_DECLARE_PRIVATE(GridLayout)
|
||||
};
|
||||
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(GridLayout::Stretch)
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTGRIDLAYOUT_H
|
@ -0,0 +1,114 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://lxqt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@gmail.com>
|
||||
* Paulo Lieuthier <paulolieuthier@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 "lxqthtmldelegate.h"
|
||||
#include <QAbstractTextDocumentLayout>
|
||||
#include <QTextDocument>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
|
||||
HtmlDelegate::HtmlDelegate(const QSize iconSize, QObject* parent) :
|
||||
QStyledItemDelegate(parent),
|
||||
mIconSize(iconSize)
|
||||
{
|
||||
}
|
||||
|
||||
HtmlDelegate::~HtmlDelegate()
|
||||
{
|
||||
}
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void HtmlDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
|
||||
{
|
||||
if (!index.isValid())
|
||||
return;
|
||||
|
||||
QStyleOptionViewItemV4 options = option;
|
||||
initStyleOption(&options, index);
|
||||
|
||||
painter->save();
|
||||
|
||||
QTextDocument doc;
|
||||
doc.setHtml(options.text);
|
||||
QIcon icon = options.icon;
|
||||
|
||||
options.text = "";
|
||||
options.icon = QIcon();
|
||||
|
||||
// icon size
|
||||
QSize iconSize = icon.actualSize(mIconSize);
|
||||
QRect iconRect = QRect(8, 8, iconSize.width(), iconSize.height());
|
||||
|
||||
// set doc size
|
||||
doc.setTextWidth(options.rect.width() - iconRect.right() - 8);
|
||||
|
||||
options.widget->style()->drawControl(QStyle::CE_ItemViewItem, &options, painter);
|
||||
|
||||
// paint icon
|
||||
painter->translate(options.rect.left(), options.rect.top());
|
||||
icon.paint(painter, iconRect);
|
||||
|
||||
// shift text right to make icon visible
|
||||
painter->translate(iconRect.right() + 8, 0);
|
||||
QRect clip(0, 0, options.rect.width() - iconRect.right() - 8, options.rect.height());
|
||||
painter->setClipRect(clip);
|
||||
|
||||
// set text color to red for selected item
|
||||
QAbstractTextDocumentLayout::PaintContext ctx;
|
||||
if (option.state & QStyle::State_Selected)
|
||||
{
|
||||
QPalette::ColorGroup colorGroup = (option.state & QStyle::State_Active) ? QPalette::Active : QPalette::Inactive;
|
||||
ctx.palette.setColor(QPalette::Text, option.palette.color(colorGroup, QPalette::HighlightedText));
|
||||
}
|
||||
|
||||
ctx.clip = clip;
|
||||
doc.documentLayout()->draw(painter, ctx);
|
||||
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QSize HtmlDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const
|
||||
{
|
||||
QStyleOptionViewItemV4 options = option;
|
||||
initStyleOption(&options, index);
|
||||
|
||||
QSize iconSize = options.icon.actualSize(mIconSize);
|
||||
QRect iconRect = QRect(8, 8, iconSize.width(), iconSize.height());
|
||||
|
||||
QTextDocument doc;
|
||||
doc.setHtml(options.text);
|
||||
doc.setTextWidth(options.rect.width() - iconRect.right() - 8);
|
||||
return QSize(options.rect.width(), doc.size().height() + 8);
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://lxqt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@gmail.com>
|
||||
* Paulo Lieuthier <paulolieuthier@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 LXQTHTMLDELEGATE_H
|
||||
#define LXQTHTMLDELEGATE_H
|
||||
|
||||
#include <QStyledItemDelegate>
|
||||
#include <QPainter>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class LXQT_API HtmlDelegate : public QStyledItemDelegate
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit HtmlDelegate(const QSize iconSize, QObject* parent = 0);
|
||||
virtual ~HtmlDelegate();
|
||||
|
||||
virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
||||
|
||||
virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
||||
|
||||
private:
|
||||
QSize mIconSize;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -0,0 +1,210 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright (C) 2012 Alec Moskvin <alecm@gmx.com>
|
||||
*
|
||||
* This 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 "lxqtnotification.h"
|
||||
#include "lxqtnotification_p.h"
|
||||
#include <QMessageBox>
|
||||
#include <QDebug>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
Notification::Notification(const QString& summary, QObject* parent) :
|
||||
QObject(parent),
|
||||
d_ptr(new NotificationPrivate(summary, this))
|
||||
{
|
||||
}
|
||||
|
||||
Notification::~Notification()
|
||||
{
|
||||
Q_D(Notification);
|
||||
delete d;
|
||||
}
|
||||
|
||||
void Notification::update()
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->update();
|
||||
}
|
||||
|
||||
void Notification::close()
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->close();
|
||||
}
|
||||
|
||||
void Notification::setSummary(const QString& summary)
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->mSummary = summary;
|
||||
}
|
||||
|
||||
void Notification::setBody(const QString& body)
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->mBody = body;
|
||||
}
|
||||
|
||||
void Notification::setIcon(const QString& iconName)
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->mIconName = iconName;
|
||||
}
|
||||
|
||||
void Notification::setActions(const QStringList& actions, int defaultAction)
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->setActions(actions, defaultAction);
|
||||
}
|
||||
|
||||
void Notification::setTimeout(int timeout)
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->mTimeout = timeout;
|
||||
}
|
||||
|
||||
void Notification::setHint(const QString& hintName, const QVariant& value)
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->mHints.insert(hintName, value);
|
||||
}
|
||||
|
||||
void Notification::setUrgencyHint(Urgency urgency)
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->mHints.insert("urgency", qvariant_cast<uchar>(urgency));
|
||||
}
|
||||
|
||||
void Notification::clearHints()
|
||||
{
|
||||
Q_D(Notification);
|
||||
d->mHints.clear();
|
||||
}
|
||||
|
||||
QStringList Notification::getCapabilities()
|
||||
{
|
||||
Q_D(Notification);
|
||||
return d->mInterface->GetCapabilities().value();
|
||||
}
|
||||
|
||||
const Notification::ServerInfo Notification::serverInfo()
|
||||
{
|
||||
Q_D(Notification);
|
||||
return d->serverInfo();
|
||||
}
|
||||
|
||||
void Notification::notify(const QString& summary, const QString& body, const QString& iconName)
|
||||
{
|
||||
Notification notification(summary);
|
||||
notification.setBody(body);
|
||||
notification.setIcon(iconName);
|
||||
notification.update();
|
||||
}
|
||||
|
||||
NotificationPrivate::NotificationPrivate(const QString& summary, Notification* parent) :
|
||||
mId(0),
|
||||
mSummary(summary),
|
||||
mTimeout(-1),
|
||||
q_ptr(parent)
|
||||
{
|
||||
mInterface = new OrgFreedesktopNotificationsInterface("org.freedesktop.Notifications",
|
||||
"/org/freedesktop/Notifications",
|
||||
QDBusConnection::sessionBus(), this);
|
||||
connect(mInterface, SIGNAL(NotificationClosed(uint, uint)), this, SLOT(notificationClosed(uint,uint)));
|
||||
connect(mInterface, SIGNAL(ActionInvoked(uint,QString)), this, SLOT(handleAction(uint,QString)));
|
||||
}
|
||||
|
||||
NotificationPrivate::~NotificationPrivate()
|
||||
{
|
||||
}
|
||||
|
||||
void NotificationPrivate::update()
|
||||
{
|
||||
QDBusPendingReply<uint> reply = mInterface->Notify(qAppName(), mId, mIconName, mSummary, mBody, mActions, mHints, mTimeout);
|
||||
reply.waitForFinished();
|
||||
if (!reply.isError())
|
||||
{
|
||||
mId = reply.value();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mHints.contains("urgency") && mHints.value("urgency").toInt() != Notification::UrgencyLow)
|
||||
QMessageBox::information(0, tr("Notifications Fallback"), mSummary + " \n\n " + mBody);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void NotificationPrivate::setActions(QStringList actions, int defaultAction)
|
||||
{
|
||||
mActions.clear();
|
||||
mDefaultAction = defaultAction;
|
||||
for (int ix = 0; ix < actions.size(); ix++)
|
||||
{
|
||||
if (ix == defaultAction)
|
||||
mActions.append("default");
|
||||
else
|
||||
mActions.append(QString::number(ix));
|
||||
mActions.append(actions[ix]);
|
||||
}
|
||||
}
|
||||
|
||||
const Notification::ServerInfo NotificationPrivate::serverInfo()
|
||||
{
|
||||
Notification::ServerInfo info;
|
||||
info.name = mInterface->GetServerInformation(info.vendor, info.version, info.specVersion);
|
||||
return info;
|
||||
}
|
||||
|
||||
void NotificationPrivate::handleAction(uint id, QString key)
|
||||
{
|
||||
if (id != mId)
|
||||
return;
|
||||
|
||||
Q_Q(Notification);
|
||||
qDebug() << "action invoked:" << key;
|
||||
bool ok = true;
|
||||
int keyId;
|
||||
if (key == "default")
|
||||
keyId = mDefaultAction;
|
||||
else
|
||||
keyId = key.toInt(&ok);
|
||||
|
||||
if (ok && key >= 0)
|
||||
emit q->actionActivated(keyId);
|
||||
}
|
||||
|
||||
void NotificationPrivate::close()
|
||||
{
|
||||
mInterface->CloseNotification(mId);
|
||||
mId = 0;
|
||||
}
|
||||
|
||||
void NotificationPrivate::notificationClosed(uint id, uint reason)
|
||||
{
|
||||
Q_Q(Notification);
|
||||
if (id != 0 && id == mId)
|
||||
{
|
||||
mId = 0;
|
||||
}
|
||||
emit q->notificationClosed(Notification::CloseReason(reason));
|
||||
}
|
@ -0,0 +1,192 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright (C) 2012 Alec Moskvin <alecm@gmx.com>
|
||||
*
|
||||
* This 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 LXQTNOTIFICATION_H
|
||||
#define LXQTNOTIFICATION_H
|
||||
|
||||
#include <QStringList>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class NotificationPrivate;
|
||||
|
||||
/**
|
||||
* \brief Libnotify-style desktop notifications
|
||||
*
|
||||
* Spec: http://developer.gnome.org/notification-spec
|
||||
*/
|
||||
class LXQT_API Notification : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
/*!
|
||||
* \brief Notification is an object that represents a single notification.
|
||||
* \param summary Summary text briefly describing the notification (required by the spec)
|
||||
*/
|
||||
Notification(const QString& summary = QString(), QObject* parent = 0);
|
||||
~Notification();
|
||||
|
||||
enum CloseReason
|
||||
{
|
||||
//! The notification expired.
|
||||
Expired = 1,
|
||||
//! The notification was dismissed by the user.
|
||||
Dismissed = 2,
|
||||
//! The notification was closed by a call to close().
|
||||
ForceClosed = 3,
|
||||
//! Undefined/reserved reasons.
|
||||
Unknown = 4
|
||||
};
|
||||
|
||||
enum Urgency
|
||||
{
|
||||
UrgencyLow = 0,
|
||||
UrgencyNormal = 1,
|
||||
UrgencyCritical = 2
|
||||
};
|
||||
|
||||
struct ServerInfo
|
||||
{
|
||||
//! The product name of the server.
|
||||
QString name;
|
||||
//! The vendor name. For example, "lxde-qt.org"
|
||||
QString vendor;
|
||||
//! The server's version number.
|
||||
QString version;
|
||||
//! The specification version the server is compliant with.
|
||||
QString specVersion;
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief Set the summary text briefly describing the notification
|
||||
*/
|
||||
void setSummary(const QString& summary);
|
||||
|
||||
/*!
|
||||
* \brief Set the detailed body text
|
||||
*/
|
||||
void setBody(const QString& body);
|
||||
|
||||
/*!
|
||||
* \brief Set an icon to display
|
||||
* \param iconName Name of the icon
|
||||
*/
|
||||
void setIcon(const QString& iconName);
|
||||
|
||||
/*!
|
||||
* \brief Set action buttons for the notification. Whenever an action is
|
||||
* activated, the actionActivated() signal is emitted with the list
|
||||
* index of the activated action.
|
||||
* \param actions List of action button titles
|
||||
* \param defaultAction Index of the default action which gets activated
|
||||
* when the notification body is clicked
|
||||
* \sa actionActivated()
|
||||
*/
|
||||
void setActions(const QStringList& actions, int defaultAction = -1);
|
||||
|
||||
/*!
|
||||
* \brief Set the timeout for the notification
|
||||
* \param timeout Milliseconds for timeout, or zero to never time out.
|
||||
*/
|
||||
void setTimeout(int timeout);
|
||||
|
||||
/*!
|
||||
* \brief Set notification hint.
|
||||
* \note For description of Hints, see http://developer.gnome.org/notification-spec/#hints
|
||||
* \note For D-Bus-to-Qt mappings, see https://qt-project.org/doc/qdbustypesystem.html
|
||||
* \param hint Hint name
|
||||
* \param value The hint data
|
||||
*/
|
||||
void setHint(const QString& hint, const QVariant& value);
|
||||
|
||||
/*!
|
||||
* \brief Set the "urgency" hint
|
||||
* \param urgency
|
||||
*/
|
||||
void setUrgencyHint(Urgency urgency);
|
||||
|
||||
/*!
|
||||
* \brief Remove all hints that were set
|
||||
* \sa setHint()
|
||||
*/
|
||||
void clearHints();
|
||||
|
||||
/*!
|
||||
* \brief returns a list of optional capabilities supported by the server.
|
||||
* For the list, see http://developer.gnome.org/notification-spec/#commands
|
||||
*/
|
||||
QStringList getCapabilities();
|
||||
|
||||
/*!
|
||||
* \brief Returns information about the notifications server
|
||||
*/
|
||||
const ServerInfo serverInfo();
|
||||
|
||||
/*!
|
||||
* \brief Convenience function to create and display a notification for the most common
|
||||
* cases. For anything more complex, create a Notification object, set the
|
||||
* desired properties and call update(). (That's what this does internally.)
|
||||
* \sa Notification()
|
||||
*/
|
||||
static void notify(const QString& summary,
|
||||
const QString& body = QString(),
|
||||
const QString& iconName = QString()
|
||||
);
|
||||
|
||||
public slots:
|
||||
/*!
|
||||
* \brief Display the notification or update it if it's already visible
|
||||
*/
|
||||
void update();
|
||||
|
||||
/*!
|
||||
* \brief Causes a notification to be forcefully closed and removed from the user's view.
|
||||
* It can be used, for example, in the event that what the notification pertains to
|
||||
* is no longer relevant, or to cancel a notification with no expiration time.
|
||||
*/
|
||||
void close();
|
||||
|
||||
signals:
|
||||
/*!
|
||||
* \brief Emitted when the notification is closed
|
||||
* \param reason How notification was closed
|
||||
*/
|
||||
void notificationClosed(LxQt::Notification::CloseReason reason);
|
||||
|
||||
/*!
|
||||
* \brief Emitted when an action button is activated.
|
||||
* \param actionNumber Index of the actions array for the activated button.
|
||||
* \sa setActions()
|
||||
*/
|
||||
void actionActivated(int actionNumber);
|
||||
|
||||
private:
|
||||
Q_DECLARE_PRIVATE(Notification)
|
||||
NotificationPrivate* const d_ptr;
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTNOTIFICATION_H
|
@ -0,0 +1,67 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright (C) 2012 Alec Moskvin <alecm@gmx.com>
|
||||
*
|
||||
* This 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 LXQTNOTIFICATION_P_H
|
||||
#define LXQTNOTIFICATION_P_H
|
||||
|
||||
#include "lxqtnotification.h"
|
||||
#include "notifications_interface.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class NotificationPrivate : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
NotificationPrivate(const QString& summary, Notification* parent);
|
||||
~NotificationPrivate();
|
||||
|
||||
void update();
|
||||
void close();
|
||||
void setActions(QStringList actions, int defaultAction);
|
||||
const Notification::ServerInfo serverInfo();
|
||||
|
||||
public slots:
|
||||
void handleAction(uint id, QString key);
|
||||
void notificationClosed(uint, uint);
|
||||
|
||||
private:
|
||||
OrgFreedesktopNotificationsInterface* mInterface;
|
||||
uint mId;
|
||||
|
||||
QString mSummary;
|
||||
QString mBody;
|
||||
QString mIconName;
|
||||
QStringList mActions;
|
||||
QVariantMap mHints;
|
||||
int mDefaultAction;
|
||||
int mTimeout;
|
||||
|
||||
Notification* const q_ptr;
|
||||
Q_DECLARE_PUBLIC(Notification)
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTNOTIFICATION_P_H
|
@ -0,0 +1,180 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 "lxqtplugininfo.h"
|
||||
#include <QObject>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
#include <QTranslator>
|
||||
#include <QCoreApplication>
|
||||
#include <QLibrary>
|
||||
#include <QDebug>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
PluginInfo::PluginInfo():
|
||||
XdgDesktopFile()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
bool PluginInfo::load(const QString& fileName)
|
||||
{
|
||||
XdgDesktopFile::load(fileName);
|
||||
mId = QFileInfo(fileName).completeBaseName();
|
||||
return isValid();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
bool PluginInfo::isValid() const
|
||||
{
|
||||
return XdgDesktopFile::isValid();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QLibrary* PluginInfo::loadLibrary(const QString& libDir) const
|
||||
{
|
||||
QString baseName, path;
|
||||
QFileInfo fi = QFileInfo(fileName());
|
||||
path = fi.canonicalPath();
|
||||
baseName = value("X-LxQt-Library", fi.completeBaseName()).toString();
|
||||
|
||||
QString soPath = QDir(libDir).filePath(QString("lib%2.so").arg(baseName));
|
||||
QLibrary* library = new QLibrary(soPath);
|
||||
|
||||
if (!library->load())
|
||||
{
|
||||
qWarning() << QString("Can't load plugin lib \"%1\"").arg(soPath) << library->errorString();
|
||||
delete library;
|
||||
return 0;
|
||||
}
|
||||
|
||||
QString locale = QLocale::system().name();
|
||||
QTranslator* translator = new QTranslator(library);
|
||||
|
||||
translator->load(QString("%1/%2/%2_%3.qm").arg(path, baseName, locale));
|
||||
qApp->installTranslator(translator);
|
||||
|
||||
return library;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
PluginInfoList PluginInfo::search(const QStringList& desktopFilesDirs, const QString& serviceType, const QString& nameFilter)
|
||||
{
|
||||
QList<PluginInfo> res;
|
||||
QSet<QString> processed;
|
||||
|
||||
foreach (QString desktopFilesDir, desktopFilesDirs)
|
||||
{
|
||||
QDir dir(desktopFilesDir);
|
||||
QFileInfoList files = dir.entryInfoList(QStringList(nameFilter), QDir::Files | QDir::Readable);
|
||||
foreach (QFileInfo file, files)
|
||||
{
|
||||
if (processed.contains(file.fileName()))
|
||||
continue;
|
||||
|
||||
processed << file.fileName();
|
||||
|
||||
PluginInfo item;
|
||||
item.load(file.canonicalFilePath());
|
||||
|
||||
if (item.isValid() && item.serviceType() == serviceType)
|
||||
res.append(item);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
PluginInfoList PluginInfo::search(const QString& desktopFilesDir, const QString& serviceType, const QString& nameFilter)
|
||||
{
|
||||
return search(QStringList(desktopFilesDir), serviceType, nameFilter);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QDebug operator<<(QDebug dbg, const LxQt::PluginInfo &pluginInfo)
|
||||
{
|
||||
dbg.nospace() << QString("%1").arg(pluginInfo.id());
|
||||
return dbg.space();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QDebug operator<<(QDebug dbg, const LxQt::PluginInfo * const pluginInfo)
|
||||
{
|
||||
return operator<<(dbg, *pluginInfo);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QDebug operator<<(QDebug dbg, const PluginInfoList& list)
|
||||
{
|
||||
dbg.nospace() << '(';
|
||||
for (int i=0; i<list.size(); ++i)
|
||||
{
|
||||
if (i) dbg.nospace() << ", ";
|
||||
dbg << list.at(i);
|
||||
}
|
||||
dbg << ')';
|
||||
return dbg.space();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QDebug operator<<(QDebug dbg, const PluginInfoList* const pluginInfoList)
|
||||
{
|
||||
return operator<<(dbg, *pluginInfoList);
|
||||
}
|
@ -0,0 +1,116 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 LXQTPLUGININFO_H
|
||||
#define LXQTPLUGININFO_H
|
||||
|
||||
#include <QString>
|
||||
#include <QList>
|
||||
|
||||
#include <QFileInfo>
|
||||
#include <QtAlgorithms>
|
||||
#include <QDebug>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
#include <XdgDesktopFile>
|
||||
|
||||
class QLibrary;
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
/*!
|
||||
Every plugin needs a .desktop file that describes it. The basename of this file must
|
||||
be same as the basename of the plugin library.
|
||||
|
||||
lxqtpanel_clock2.desktop file
|
||||
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
ServiceTypes=LxQtPanel/Plugin
|
||||
Name=Clock
|
||||
Comment=Clock and calendar
|
||||
|
||||
PluginInfo class gives the interface for reading the values from the plugin .desktop file.
|
||||
This is a pure virtual class, you must implement libraryDir(), translationDir(), and instance() methods.
|
||||
*/
|
||||
class LXQT_API PluginInfo: public XdgDesktopFile
|
||||
{
|
||||
public:
|
||||
/// Constructs a PluginInfo object for accessing the info stored in the .desktop file.
|
||||
explicit PluginInfo();
|
||||
|
||||
//! Reimplemented from XdgDesktopFile.
|
||||
virtual bool load(const QString& fileName);
|
||||
|
||||
|
||||
//! Reimplemented from XdgDesktopFile.
|
||||
//PluginInfo& operator=(const PluginInfo& other);
|
||||
|
||||
|
||||
//! Returns identification string of this plugin, identified plugin type. Now id is part of the filename.
|
||||
QString id() const { return mId; }
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling value("ServiceTypes").toString().
|
||||
QString serviceType() const { return value("ServiceTypes").toString(); }
|
||||
|
||||
//! Reimplemented from XdgDesktopFile.
|
||||
virtual bool isValid() const;
|
||||
|
||||
/*! Loads the library and returns QLibrary object if the library was loaded successfully; otherwise returns 0.
|
||||
@parm libDir directory where placed the plugin .so file. */
|
||||
QLibrary* loadLibrary(const QString& libDir) const;
|
||||
|
||||
|
||||
/*! Returns a list of PluginInfo objects for the matched files in the directories.
|
||||
@param desktopFilesDirs - scanned directories names.
|
||||
@param serviceType - type of the plugin, for example "LxQtPanel/Plugin".
|
||||
@param nameFilter - wildcard filter that understands * and ? wildcards.
|
||||
|
||||
If the same filename is located under multiple directories only the first file should be used.
|
||||
*/
|
||||
static QList<PluginInfo> search(const QStringList& desktopFilesDirs, const QString& serviceType, const QString& nameFilter="*");
|
||||
|
||||
/// This function is provided for convenience. It's equivalent to new calling search(QString(desktopFilesDir), serviceType, nameFilter)
|
||||
static QList<PluginInfo> search(const QString& desktopFilesDir, const QString& serviceType, const QString& nameFilter="*");
|
||||
|
||||
private:
|
||||
QString mId;
|
||||
};
|
||||
|
||||
typedef QList<PluginInfo> PluginInfoList;
|
||||
|
||||
} // namespace LxQt
|
||||
|
||||
QDebug operator<<(QDebug dbg, const LxQt::PluginInfo& pi);
|
||||
QDebug operator<<(QDebug dbg, const LxQt::PluginInfo* const pi);
|
||||
|
||||
QDebug operator<<(QDebug dbg, const LxQt::PluginInfoList& list);
|
||||
QDebug operator<<(QDebug dbg, const LxQt::PluginInfoList* const pluginInfoList);
|
||||
|
||||
#endif // LXQTPLUGININFO_H
|
@ -0,0 +1,90 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 "lxqtpower.h"
|
||||
#include "lxqtpowerproviders.h"
|
||||
#include <QtAlgorithms>
|
||||
#include <QDebug>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
Power::Power(QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
mProviders.append(new CustomProvider(this));
|
||||
mProviders.append(new UPowerProvider(this));
|
||||
mProviders.append(new ConsoleKitProvider(this));
|
||||
mProviders.append(new SystemdProvider(this));
|
||||
mProviders.append(new LxSessionProvider(this));
|
||||
mProviders.append(new LxQtProvider(this));
|
||||
}
|
||||
|
||||
|
||||
Power::~Power()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool Power::canAction(Power::Action action) const
|
||||
{
|
||||
foreach(PowerProvider* provider, mProviders)
|
||||
{
|
||||
if (provider->canAction(action))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool Power::doAction(Power::Action action)
|
||||
{
|
||||
foreach(PowerProvider* provider, mProviders)
|
||||
{
|
||||
if (provider->canAction(action) &&
|
||||
provider->doAction(action)
|
||||
)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool Power::canLogout() const { return canAction(PowerLogout); }
|
||||
bool Power::canHibernate() const { return canAction(PowerHibernate); }
|
||||
bool Power::canReboot() const { return canAction(PowerReboot); }
|
||||
bool Power::canShutdown() const { return canAction(PowerShutdown); }
|
||||
bool Power::canSuspend() const { return canAction(PowerSuspend); }
|
||||
|
||||
bool Power::logout() { return doAction(PowerLogout); }
|
||||
bool Power::hibernate() { return doAction(PowerHibernate); }
|
||||
bool Power::reboot() { return doAction(PowerReboot); }
|
||||
bool Power::shutdown() { return doAction(PowerShutdown); }
|
||||
bool Power::suspend() { return doAction(PowerSuspend); }
|
@ -0,0 +1,107 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 LXQTPOWER_H
|
||||
#define LXQTPOWER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QList>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
|
||||
class PowerProvider;
|
||||
|
||||
/*! Power class provides an interface to control system-wide power and session management.
|
||||
It allows logout from the user session, hibernate, reboot, shutdown and suspend computer.
|
||||
This is a wrapper class. All the real work is done in the PowerWorker classes.
|
||||
*/
|
||||
class LXQT_API Power : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
/// Power can perform next actions:
|
||||
enum Action{
|
||||
PowerLogout, /// Close the current user session.
|
||||
PowerHibernate, /// Hibernate the comupter
|
||||
PowerReboot, /// Reboot the computer
|
||||
PowerShutdown, /// Shutdown the computer
|
||||
PowerSuspend /// Suspend the computer
|
||||
};
|
||||
|
||||
/// Constructs a Power with parent.
|
||||
explicit Power(QObject *parent = 0);
|
||||
|
||||
/// Destroys the object.
|
||||
virtual ~Power();
|
||||
|
||||
/// Returns true if the Power can perform action.
|
||||
bool canAction(Action action) const;
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling canAction(PowerLogout).
|
||||
bool canLogout() const;
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling canAction(PowerHibernate).
|
||||
bool canHibernate() const;
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling canAction(PowerReboot).
|
||||
bool canReboot() const;
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling canAction(PowerShutdown).
|
||||
bool canShutdown() const;
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling canAction(PowerSuspend).
|
||||
bool canSuspend() const;
|
||||
|
||||
public slots:
|
||||
/// Performs the requested action.
|
||||
bool doAction(Action action);
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling doAction(PowerLogout).
|
||||
bool logout();
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling doAction(PowerHibernate).
|
||||
bool hibernate();
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling doAction(PowerReboot).
|
||||
bool reboot();
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling doAction(PowerShutdown).
|
||||
bool shutdown();
|
||||
|
||||
//! This function is provided for convenience. It's equivalent to calling doAction(PowerSuspend).
|
||||
bool suspend();
|
||||
|
||||
private:
|
||||
QList<PowerProvider*> mProviders;
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTPOWER_H
|
@ -0,0 +1,662 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@gmail.com>
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 "lxqtpowerproviders.h"
|
||||
#include <QDBusInterface>
|
||||
#include <QProcess>
|
||||
#include <QDebug>
|
||||
#include "lxqtnotification.h"
|
||||
#include <signal.h> // for kill()
|
||||
|
||||
#define UPOWER_SERVICE "org.freedesktop.UPower"
|
||||
#define UPOWER_PATH "/org/freedesktop/UPower"
|
||||
#define UPOWER_INTERFACE UPOWER_SERVICE
|
||||
|
||||
#define CONSOLEKIT_SERVICE "org.freedesktop.ConsoleKit"
|
||||
#define CONSOLEKIT_PATH "/org/freedesktop/ConsoleKit/Manager"
|
||||
#define CONSOLEKIT_INTERFACE "org.freedesktop.ConsoleKit.Manager"
|
||||
|
||||
#define SYSTEMD_SERVICE "org.freedesktop.login1"
|
||||
#define SYSTEMD_PATH "/org/freedesktop/login1"
|
||||
#define SYSTEMD_INTERFACE "org.freedesktop.login1.Manager"
|
||||
|
||||
#define LXQT_SERVICE "org.lxqt.session"
|
||||
#define LXQT_PATH "/LxQtSession"
|
||||
#define LXQT_INTERFACE "org.lxqt.session"
|
||||
|
||||
#define LXSESSION_SERVICE "org.lxde.SessionManager"
|
||||
#define LXSESSION_PATH "/org/lxde/SessionManager"
|
||||
#define LXSESSION_INTERFACE "org.lxde.SessionManager"
|
||||
|
||||
#define PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties"
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
/************************************************
|
||||
Helper func
|
||||
************************************************/
|
||||
void printDBusMsg(const QDBusMessage &msg)
|
||||
{
|
||||
qWarning() << "** Dbus error **************************";
|
||||
qWarning() << "Error name " << msg.errorName();
|
||||
qWarning() << "Error msg " << msg.errorMessage();
|
||||
qWarning() << "****************************************";
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
Helper func
|
||||
************************************************/
|
||||
static bool dbusCall(const QString &service,
|
||||
const QString &path,
|
||||
const QString &interface,
|
||||
const QDBusConnection &connection,
|
||||
const QString & method,
|
||||
PowerProvider::DbusErrorCheck errorCheck = PowerProvider::CheckDBUS
|
||||
)
|
||||
{
|
||||
QDBusInterface dbus(service, path, interface, connection);
|
||||
if (!dbus.isValid())
|
||||
{
|
||||
qWarning() << "dbusCall: QDBusInterface is invalid" << service << path << interface << method;
|
||||
if (errorCheck == PowerProvider::CheckDBUS)
|
||||
{
|
||||
Notification::notify(
|
||||
QObject::tr("Power Manager Error"),
|
||||
QObject::tr("QDBusInterface is invalid")+ "\n\n" + service + " " + path + " " + interface + " " + method,
|
||||
"lxqt-logo.png");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QDBusMessage msg = dbus.call(method);
|
||||
|
||||
if (!msg.errorName().isEmpty())
|
||||
{
|
||||
printDBusMsg(msg);
|
||||
if (errorCheck == PowerProvider::CheckDBUS)
|
||||
{
|
||||
Notification::notify(
|
||||
QObject::tr("Power Manager Error (D-BUS call)"),
|
||||
msg.errorName() + "\n\n" + msg.errorMessage(),
|
||||
"lxqt-logo.png");
|
||||
}
|
||||
}
|
||||
|
||||
// If the method no returns value, we believe that it was successful.
|
||||
return msg.arguments().isEmpty() ||
|
||||
msg.arguments().first().isNull() ||
|
||||
msg.arguments().first().toBool();
|
||||
}
|
||||
|
||||
/************************************************
|
||||
Helper func
|
||||
|
||||
Just like dbusCall(), except that systemd
|
||||
returns a string instead of a bool, and it takes
|
||||
an "interactivity boolean" as an argument.
|
||||
************************************************/
|
||||
static bool dbusCallSystemd(const QString &service,
|
||||
const QString &path,
|
||||
const QString &interface,
|
||||
const QDBusConnection &connection,
|
||||
const QString &method,
|
||||
bool needBoolArg,
|
||||
PowerProvider::DbusErrorCheck errorCheck = PowerProvider::CheckDBUS
|
||||
)
|
||||
{
|
||||
QDBusInterface dbus(service, path, interface, connection);
|
||||
if (!dbus.isValid())
|
||||
{
|
||||
qWarning() << "dbusCall: QDBusInterface is invalid" << service << path << interface << method;
|
||||
if (errorCheck == PowerProvider::CheckDBUS)
|
||||
{
|
||||
Notification::notify(
|
||||
QObject::tr("Power Manager Error"),
|
||||
QObject::tr("QDBusInterface is invalid")+ "\n\n" + service + " " + path + " " + interface + " " + method,
|
||||
"lxqt-logo.png");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QDBusMessage msg = dbus.call(method, needBoolArg ? QVariant(true) : QVariant());
|
||||
|
||||
if (!msg.errorName().isEmpty())
|
||||
{
|
||||
printDBusMsg(msg);
|
||||
if (errorCheck == PowerProvider::CheckDBUS)
|
||||
{
|
||||
Notification::notify(
|
||||
QObject::tr("Power Manager Error (D-BUS call)"),
|
||||
msg.errorName() + "\n\n" + msg.errorMessage(),
|
||||
"lxqt-logo.png");
|
||||
}
|
||||
}
|
||||
|
||||
// If the method no returns value, we believe that it was successful.
|
||||
if (msg.arguments().isEmpty() || msg.arguments().first().isNull())
|
||||
return true;
|
||||
|
||||
QString response = msg.arguments().first().toString();
|
||||
qDebug() << "systemd:" << method << "=" << response;
|
||||
return response == "yes" || response == "challenge";
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
Helper func
|
||||
************************************************/
|
||||
bool dbusGetProperty(const QString &service,
|
||||
const QString &path,
|
||||
const QString &interface,
|
||||
const QDBusConnection &connection,
|
||||
const QString & property
|
||||
)
|
||||
{
|
||||
QDBusInterface dbus(service, path, interface, connection);
|
||||
if (!dbus.isValid())
|
||||
{
|
||||
qWarning() << "dbusGetProperty: QDBusInterface is invalid" << service << path << interface << property;
|
||||
// Notification::notify(QObject::tr("LxQt Power Manager"),
|
||||
// "lxqt-logo.png",
|
||||
// QObject::tr("Power Manager Error"),
|
||||
// QObject::tr("QDBusInterface is invalid")+ "\n\n" + service +" " + path +" " + interface +" " + property);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
QDBusMessage msg = dbus.call("Get", dbus.interface(), property);
|
||||
|
||||
if (!msg.errorName().isEmpty())
|
||||
{
|
||||
printDBusMsg(msg);
|
||||
// Notification::notify(QObject::tr("LxQt Power Manager"),
|
||||
// "lxqt-logo.png",
|
||||
// QObject::tr("Power Manager Error (Get Property)"),
|
||||
// msg.errorName() + "\n\n" + msg.errorMessage());
|
||||
}
|
||||
|
||||
return !msg.arguments().isEmpty() &&
|
||||
msg.arguments().first().value<QDBusVariant>().variant().toBool();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/************************************************
|
||||
PowerProvider
|
||||
************************************************/
|
||||
PowerProvider::PowerProvider(QObject *parent):
|
||||
QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
PowerProvider::~PowerProvider()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/************************************************
|
||||
UPowerProvider
|
||||
************************************************/
|
||||
UPowerProvider::UPowerProvider(QObject *parent):
|
||||
PowerProvider(parent)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
UPowerProvider::~UPowerProvider()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool UPowerProvider::canAction(Power::Action action) const
|
||||
{
|
||||
QString command;
|
||||
QString property;
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerHibernate:
|
||||
property = "CanHibernate";
|
||||
command = "HibernateAllowed";
|
||||
break;
|
||||
|
||||
case Power::PowerSuspend:
|
||||
property = "CanSuspend";
|
||||
command = "SuspendAllowed";
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return dbusGetProperty( // Whether the system is able to hibernate.
|
||||
UPOWER_SERVICE,
|
||||
UPOWER_PATH,
|
||||
PROPERTIES_INTERFACE,
|
||||
QDBusConnection::systemBus(),
|
||||
property
|
||||
)
|
||||
&&
|
||||
dbusCall( // Check if the caller has (or can get) the PolicyKit privilege to call command.
|
||||
UPOWER_SERVICE,
|
||||
UPOWER_PATH,
|
||||
UPOWER_INTERFACE,
|
||||
QDBusConnection::systemBus(),
|
||||
command,
|
||||
// canAction should be always silent because it can freeze
|
||||
// g_main_context_iteration Qt event loop in QMessageBox
|
||||
// on panel startup if there is no DBUS running.
|
||||
PowerProvider::DontCheckDBUS
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
bool UPowerProvider::doAction(Power::Action action)
|
||||
{
|
||||
QString command;
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerHibernate:
|
||||
command = "Hibernate";
|
||||
break;
|
||||
|
||||
case Power::PowerSuspend:
|
||||
command = "Suspend";
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return dbusCall(UPOWER_SERVICE,
|
||||
UPOWER_PATH,
|
||||
UPOWER_INTERFACE,
|
||||
QDBusConnection::systemBus(),
|
||||
command );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/************************************************
|
||||
ConsoleKitProvider
|
||||
************************************************/
|
||||
ConsoleKitProvider::ConsoleKitProvider(QObject *parent):
|
||||
PowerProvider(parent)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
ConsoleKitProvider::~ConsoleKitProvider()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool ConsoleKitProvider::canAction(Power::Action action) const
|
||||
{
|
||||
QString command;
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerReboot:
|
||||
command = "CanRestart";
|
||||
break;
|
||||
|
||||
case Power::PowerShutdown:
|
||||
command = "CanStop";
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return dbusCall(CONSOLEKIT_SERVICE,
|
||||
CONSOLEKIT_PATH,
|
||||
CONSOLEKIT_INTERFACE,
|
||||
QDBusConnection::systemBus(),
|
||||
command,
|
||||
// canAction should be always silent because it can freeze
|
||||
// g_main_context_iteration Qt event loop in QMessageBox
|
||||
// on panel startup if there is no DBUS running.
|
||||
PowerProvider::DontCheckDBUS
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
bool ConsoleKitProvider::doAction(Power::Action action)
|
||||
{
|
||||
QString command;
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerReboot:
|
||||
command = "Restart";
|
||||
break;
|
||||
|
||||
case Power::PowerShutdown:
|
||||
command = "Stop";
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return dbusCall(CONSOLEKIT_SERVICE,
|
||||
CONSOLEKIT_PATH,
|
||||
CONSOLEKIT_INTERFACE,
|
||||
QDBusConnection::systemBus(),
|
||||
command
|
||||
);
|
||||
}
|
||||
|
||||
/************************************************
|
||||
SystemdProvider
|
||||
|
||||
http://www.freedesktop.org/wiki/Software/systemd/logind
|
||||
************************************************/
|
||||
|
||||
SystemdProvider::SystemdProvider(QObject *parent):
|
||||
PowerProvider(parent)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
SystemdProvider::~SystemdProvider()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool SystemdProvider::canAction(Power::Action action) const
|
||||
{
|
||||
QString command;
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerReboot:
|
||||
command = "CanReboot";
|
||||
break;
|
||||
|
||||
case Power::PowerShutdown:
|
||||
command = "CanPowerOff";
|
||||
break;
|
||||
|
||||
case Power::PowerSuspend:
|
||||
command = "CanSuspend";
|
||||
break;
|
||||
|
||||
case Power::PowerHibernate:
|
||||
command = "CanHibernate";
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return dbusCallSystemd(SYSTEMD_SERVICE,
|
||||
SYSTEMD_PATH,
|
||||
SYSTEMD_INTERFACE,
|
||||
QDBusConnection::systemBus(),
|
||||
command,
|
||||
false,
|
||||
// canAction should be always silent because it can freeze
|
||||
// g_main_context_iteration Qt event loop in QMessageBox
|
||||
// on panel startup if there is no DBUS running.
|
||||
PowerProvider::DontCheckDBUS
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
bool SystemdProvider::doAction(Power::Action action)
|
||||
{
|
||||
QString command;
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerReboot:
|
||||
command = "Reboot";
|
||||
break;
|
||||
|
||||
case Power::PowerShutdown:
|
||||
command = "PowerOff";
|
||||
break;
|
||||
|
||||
case Power::PowerSuspend:
|
||||
command = "Suspend";
|
||||
break;
|
||||
|
||||
case Power::PowerHibernate:
|
||||
command = "Hibernate";
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return dbusCallSystemd(SYSTEMD_SERVICE,
|
||||
SYSTEMD_PATH,
|
||||
SYSTEMD_INTERFACE,
|
||||
QDBusConnection::systemBus(),
|
||||
command,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
LxQtProvider
|
||||
************************************************/
|
||||
LxQtProvider::LxQtProvider(QObject *parent):
|
||||
PowerProvider(parent)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
LxQtProvider::~LxQtProvider()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool LxQtProvider::canAction(Power::Action action) const
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerLogout:
|
||||
// there can be case when razo-session does not run
|
||||
return dbusCall(LXQT_SERVICE, LXQT_PATH, LXQT_SERVICE,
|
||||
QDBusConnection::sessionBus(), "canLogout",
|
||||
PowerProvider::DontCheckDBUS);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool LxQtProvider::doAction(Power::Action action)
|
||||
{
|
||||
QString command;
|
||||
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerLogout:
|
||||
command = "logout";
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return dbusCall(LXQT_SERVICE,
|
||||
LXQT_PATH,
|
||||
LXQT_INTERFACE,
|
||||
QDBusConnection::sessionBus(),
|
||||
command
|
||||
);
|
||||
}
|
||||
|
||||
/************************************************
|
||||
LxSessionProvider
|
||||
************************************************/
|
||||
LxSessionProvider::LxSessionProvider(QObject *parent):
|
||||
PowerProvider(parent)
|
||||
{
|
||||
pid = (Q_PID)qgetenv("_LXSESSION_PID").toLong();
|
||||
}
|
||||
|
||||
|
||||
LxSessionProvider::~LxSessionProvider()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool LxSessionProvider::canAction(Power::Action action) const
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerLogout:
|
||||
return pid != 0;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool LxSessionProvider::doAction(Power::Action action)
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerLogout:
|
||||
if(pid)
|
||||
::kill(pid, SIGTERM);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
HalProvider
|
||||
************************************************/
|
||||
HalProvider::HalProvider(QObject *parent):
|
||||
PowerProvider(parent)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
HalProvider::~HalProvider()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool HalProvider::canAction(Power::Action action) const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool HalProvider::doAction(Power::Action action)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
CustomProvider
|
||||
************************************************/
|
||||
CustomProvider::CustomProvider(QObject *parent):
|
||||
PowerProvider(parent),
|
||||
mSettings("power")
|
||||
{
|
||||
}
|
||||
|
||||
CustomProvider::~CustomProvider()
|
||||
{
|
||||
}
|
||||
|
||||
bool CustomProvider::canAction(Power::Action action) const
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case Power::PowerShutdown:
|
||||
return mSettings.contains("shutdownCommand");
|
||||
|
||||
case Power::PowerReboot:
|
||||
return mSettings.contains("rebootCommand");
|
||||
|
||||
case Power::PowerHibernate:
|
||||
return mSettings.contains("hibernateCommand");
|
||||
|
||||
case Power::PowerSuspend:
|
||||
return mSettings.contains("suspendCommand");
|
||||
|
||||
case Power::PowerLogout:
|
||||
return mSettings.contains("logoutCommand");
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool CustomProvider::doAction(Power::Action action)
|
||||
{
|
||||
QString command;
|
||||
|
||||
switch(action)
|
||||
{
|
||||
case Power::PowerShutdown:
|
||||
command = mSettings.value("shutdownCommand").toString();
|
||||
break;
|
||||
|
||||
case Power::PowerReboot:
|
||||
command = mSettings.value("rebootCommand").toString();
|
||||
break;
|
||||
|
||||
case Power::PowerHibernate:
|
||||
command = mSettings.value("hibernateCommand").toString();
|
||||
break;
|
||||
|
||||
case Power::PowerSuspend:
|
||||
command = mSettings.value("suspendCommand").toString();
|
||||
break;
|
||||
|
||||
case Power::PowerLogout:
|
||||
command = mSettings.value("logoutCommand").toString();
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return QProcess::startDetached(command);
|
||||
}
|
@ -0,0 +1,159 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 LXQTPOWER_PROVIDERS_H
|
||||
#define LXQTPOWER_PROVIDERS_H
|
||||
|
||||
#include <QObject>
|
||||
#include <lxqtsettings.h>
|
||||
#include "lxqtpower.h"
|
||||
#include <QProcess> // for PID_T
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
|
||||
class PowerProvider: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
enum DbusErrorCheck {
|
||||
CheckDBUS,
|
||||
DontCheckDBUS
|
||||
};
|
||||
|
||||
explicit PowerProvider(QObject *parent = 0);
|
||||
virtual ~PowerProvider();
|
||||
|
||||
/*! Returns true if the Power can perform action.
|
||||
This is a pure virtual function, and must be reimplemented in subclasses. */
|
||||
virtual bool canAction(Power::Action action) const = 0 ;
|
||||
|
||||
public slots:
|
||||
/*! Performs the requested action.
|
||||
This is a pure virtual function, and must be reimplemented in subclasses. */
|
||||
virtual bool doAction(Power::Action action) = 0;
|
||||
};
|
||||
|
||||
|
||||
class UPowerProvider: public PowerProvider
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
UPowerProvider(QObject *parent = 0);
|
||||
~UPowerProvider();
|
||||
bool canAction(Power::Action action) const;
|
||||
|
||||
public slots:
|
||||
bool doAction(Power::Action action);
|
||||
};
|
||||
|
||||
|
||||
class ConsoleKitProvider: public PowerProvider
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ConsoleKitProvider(QObject *parent = 0);
|
||||
~ConsoleKitProvider();
|
||||
bool canAction(Power::Action action) const;
|
||||
|
||||
public slots:
|
||||
bool doAction(Power::Action action);
|
||||
};
|
||||
|
||||
|
||||
class SystemdProvider: public PowerProvider
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SystemdProvider(QObject *parent = 0);
|
||||
~SystemdProvider();
|
||||
bool canAction(Power::Action action) const;
|
||||
|
||||
public slots:
|
||||
bool doAction(Power::Action action);
|
||||
};
|
||||
|
||||
|
||||
class LxQtProvider: public PowerProvider
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
LxQtProvider(QObject *parent = 0);
|
||||
~LxQtProvider();
|
||||
bool canAction(Power::Action action) const;
|
||||
|
||||
public slots:
|
||||
bool doAction(Power::Action action);
|
||||
};
|
||||
|
||||
class LxSessionProvider: public PowerProvider
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
LxSessionProvider(QObject *parent = 0);
|
||||
~LxSessionProvider();
|
||||
bool canAction(Power::Action action) const;
|
||||
|
||||
public slots:
|
||||
bool doAction(Power::Action action);
|
||||
private:
|
||||
Q_PID pid;
|
||||
};
|
||||
|
||||
class HalProvider: public PowerProvider
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
HalProvider(QObject *parent = 0);
|
||||
~HalProvider();
|
||||
bool canAction(Power::Action action) const;
|
||||
|
||||
public slots:
|
||||
bool doAction(Power::Action action);
|
||||
};
|
||||
|
||||
|
||||
class CustomProvider: public PowerProvider
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CustomProvider(QObject *parent = 0);
|
||||
~CustomProvider();
|
||||
bool canAction(Power::Action action) const;
|
||||
|
||||
public slots:
|
||||
bool doAction(Power::Action action);
|
||||
|
||||
private:
|
||||
Settings mSettings;
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTPOWER_PROVIDERS_H
|
@ -0,0 +1,209 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 "lxqtpowermanager.h"
|
||||
#include "lxqtpower/lxqtpower.h"
|
||||
#include <QDBusInterface>
|
||||
#include <QMessageBox>
|
||||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
#include <QtDebug>
|
||||
#include "lxqttranslator.h"
|
||||
#include "lxqtglobals.h"
|
||||
#include "lxqtsettings.h"
|
||||
#include <XdgIcon>
|
||||
|
||||
namespace LxQt {
|
||||
|
||||
class LXQT_API MessageBox: public QMessageBox
|
||||
{
|
||||
public:
|
||||
explicit MessageBox(QWidget *parent = 0): QMessageBox(parent) {}
|
||||
|
||||
static QWidget *parentWidget()
|
||||
{
|
||||
QWidgetList widgets = QApplication::topLevelWidgets();
|
||||
|
||||
if (widgets.count())
|
||||
return widgets.at(0);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool question(const QString& title, const QString& text)
|
||||
{
|
||||
MessageBox msgBox(parentWidget());
|
||||
msgBox.setWindowTitle(title);
|
||||
msgBox.setText(text);
|
||||
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
|
||||
|
||||
return (msgBox.exec() == QMessageBox::Yes);
|
||||
}
|
||||
|
||||
|
||||
static void warning(const QString& title, const QString& text)
|
||||
{
|
||||
QMessageBox::warning(parentWidget(), tr("LxQt Power Manager Error"), tr("Hibernate failed."));
|
||||
}
|
||||
|
||||
|
||||
protected:
|
||||
virtual void resizeEvent(QResizeEvent* event)
|
||||
{
|
||||
QRect screen = QApplication::desktop()->screenGeometry();
|
||||
move((screen.width() - this->width()) / 2,
|
||||
(screen.height() - this->height()) / 2);
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
PowerManager::PowerManager(QObject * parent, bool skipWarning)
|
||||
: QObject(parent),
|
||||
m_skipWarning(skipWarning)
|
||||
{
|
||||
m_power = new Power(this);
|
||||
// connect(m_power, SIGNAL(suspendFail()), this, SLOT(suspendFailed()));
|
||||
// connect(m_power, SIGNAL(hibernateFail()), this, SLOT(hibernateFailed()));
|
||||
// connect(m_power, SIGNAL(monitoring(const QString &)),
|
||||
// this, SLOT(monitoring(const QString&)));
|
||||
|
||||
QString sessionConfig(getenv("LXQT_SESSION_CONFIG"));
|
||||
Settings settings(sessionConfig.isEmpty() ? "session" : sessionConfig);
|
||||
m_skipWarning = settings.value("leave_confirmation").toBool() ? false : true;
|
||||
}
|
||||
|
||||
PowerManager::~PowerManager()
|
||||
{
|
||||
// delete m_power;
|
||||
}
|
||||
|
||||
QList<QAction*> PowerManager::availableActions()
|
||||
{
|
||||
QList<QAction*> ret;
|
||||
QAction * act;
|
||||
|
||||
// TODO/FIXME: icons
|
||||
if (m_power->canHibernate())
|
||||
{
|
||||
act = new QAction(XdgIcon::fromTheme("system-suspend-hibernate"), tr("Hibernate"), this);
|
||||
connect(act, SIGNAL(triggered()), this, SLOT(hibernate()));
|
||||
ret.append(act);
|
||||
}
|
||||
|
||||
if (m_power->canSuspend())
|
||||
{
|
||||
act = new QAction(XdgIcon::fromTheme("system-suspend"), tr("Suspend"), this);
|
||||
connect(act, SIGNAL(triggered()), this, SLOT(suspend()));
|
||||
ret.append(act);
|
||||
}
|
||||
|
||||
if (m_power->canReboot())
|
||||
{
|
||||
act = new QAction(XdgIcon::fromTheme("system-reboot"), tr("Reboot"), this);
|
||||
connect(act, SIGNAL(triggered()), this, SLOT(reboot()));
|
||||
ret.append(act);
|
||||
}
|
||||
|
||||
if (m_power->canShutdown())
|
||||
{
|
||||
act = new QAction(XdgIcon::fromTheme("system-shutdown"), tr("Shutdown"), this);
|
||||
connect(act, SIGNAL(triggered()), this, SLOT(shutdown()));
|
||||
ret.append(act);
|
||||
}
|
||||
|
||||
if (m_power->canLogout())
|
||||
{
|
||||
act = new QAction(XdgIcon::fromTheme("system-log-out"), tr("Logout"), this);
|
||||
connect(act, SIGNAL(triggered()), this, SLOT(logout()));
|
||||
ret.append(act);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void PowerManager::suspend()
|
||||
{
|
||||
if (m_skipWarning ||
|
||||
MessageBox::question(tr("LxQt Session Suspend"),
|
||||
tr("Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.")))
|
||||
{
|
||||
m_power->suspend();
|
||||
}
|
||||
}
|
||||
|
||||
void PowerManager::hibernate()
|
||||
{
|
||||
if (m_skipWarning ||
|
||||
MessageBox::question(tr("LxQt Session Hibernate"),
|
||||
tr("Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.")))
|
||||
{
|
||||
m_power->hibernate();
|
||||
}
|
||||
}
|
||||
|
||||
void PowerManager::reboot()
|
||||
{
|
||||
if (m_skipWarning ||
|
||||
MessageBox::question(tr("LxQt Session Reboot"),
|
||||
tr("Do you want to really restart your computer? All unsaved work will be lost...")))
|
||||
{
|
||||
m_power->reboot();
|
||||
}
|
||||
}
|
||||
|
||||
void PowerManager::shutdown()
|
||||
{
|
||||
if (m_skipWarning ||
|
||||
MessageBox::question(tr("LxQt Session Shutdown"),
|
||||
tr("Do you want to really switch off your computer? All unsaved work will be lost...")))
|
||||
{
|
||||
m_power->shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
void PowerManager::logout()
|
||||
{
|
||||
if (m_skipWarning ||
|
||||
MessageBox::question(tr("LxQt Session Logout"),
|
||||
tr("Do you want to really logout? All unsaved work will be lost...")))
|
||||
{
|
||||
m_power->logout();
|
||||
}
|
||||
}
|
||||
|
||||
void PowerManager::hibernateFailed()
|
||||
{
|
||||
MessageBox::warning(tr("LxQt Power Manager Error"), tr("Hibernate failed."));
|
||||
}
|
||||
|
||||
void PowerManager::suspendFailed()
|
||||
{
|
||||
MessageBox::warning(tr("LxQt Power Manager Error"), tr("Suspend failed."));
|
||||
}
|
||||
|
||||
} // namespace LxQt
|
@ -0,0 +1,73 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 LXQTPOWERMANAGER_H
|
||||
#define LXQTPOWERMANAGER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QAction>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
class Power;
|
||||
|
||||
/*! QAction centric menu aware wrapper around lxqtpower
|
||||
*/
|
||||
class LXQT_API PowerManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PowerManager(QObject * parent, bool skipWarning = false);
|
||||
~PowerManager();
|
||||
QList<QAction*> availableActions();
|
||||
|
||||
public slots:
|
||||
// power management
|
||||
void suspend();
|
||||
void hibernate();
|
||||
void reboot();
|
||||
void shutdown();
|
||||
// lxqt session
|
||||
void logout();
|
||||
|
||||
public:
|
||||
bool skipWarning() const { return m_skipWarning; }
|
||||
|
||||
private:
|
||||
LxQt::Power * m_power;
|
||||
bool m_skipWarning;
|
||||
|
||||
private slots:
|
||||
void hibernateFailed();
|
||||
void suspendFailed();
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
|
||||
#endif // LXQTPOWERMANAGER_H
|
@ -0,0 +1,67 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright (C) 2013 Alec Moskvin <alecm@gmx.com>
|
||||
*
|
||||
* This 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 "lxqtprogramfinder.h"
|
||||
#include <wordexp.h>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
LXQT_API bool ProgramFinder::programExists(const QString& command)
|
||||
{
|
||||
QString program = programName(command);
|
||||
if (program[0] == QChar('/'))
|
||||
{
|
||||
QFileInfo fi(program);
|
||||
return fi.isExecutable() && fi.isFile();
|
||||
}
|
||||
|
||||
QString path = qgetenv("PATH");
|
||||
foreach (const QString& dirName, path.split(":", QString::SkipEmptyParts))
|
||||
{
|
||||
QFileInfo fi(QDir(dirName), program);
|
||||
if (fi.isExecutable() && fi.isFile())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
LXQT_API QStringList ProgramFinder::findPrograms(const QStringList& commands)
|
||||
{
|
||||
QStringList availPrograms;
|
||||
foreach (const QString& program, commands)
|
||||
if (programExists(program))
|
||||
availPrograms.append(program);
|
||||
return availPrograms;
|
||||
}
|
||||
|
||||
LXQT_API QString ProgramFinder::programName(const QString& command)
|
||||
{
|
||||
wordexp_t we;
|
||||
if (wordexp(command.toLocal8Bit().constData(), &we, WRDE_NOCMD) == 0)
|
||||
if (we.we_wordc > 0)
|
||||
return QString(we.we_wordv[0]);
|
||||
return QString();
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright (C) 2013 Alec Moskvin <alecm@gmx.com>
|
||||
*
|
||||
* This 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 LXQTPROGRAMFINDER_H
|
||||
#define LXQTPROGRAMFINDER_H
|
||||
|
||||
#include <QStringList>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
namespace ProgramFinder
|
||||
{
|
||||
/*!
|
||||
* \brief programExists Checks if the program needed to execute the given
|
||||
* command is installed
|
||||
* \param command
|
||||
* \return True if the program exists
|
||||
*/
|
||||
LXQT_API bool programExists(const QString& command);
|
||||
|
||||
/*!
|
||||
* \brief findPrograms Filters a list of commands (with arguments) based on
|
||||
* which programs are installed
|
||||
* \param commands Commands to check
|
||||
* \return List of commands which are installed
|
||||
*/
|
||||
LXQT_API QStringList findPrograms(const QStringList& commands);
|
||||
|
||||
/*!
|
||||
* \brief programName Returns the program name given a command
|
||||
* \param command
|
||||
* \return
|
||||
*/
|
||||
LXQT_API QString programName(const QString& command);
|
||||
}
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTPROGRAMFINDER_H
|
@ -0,0 +1,326 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2013 Razor team
|
||||
* Authors:
|
||||
* Kuzma Shapran <kuzma.shapran@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 "lxqtrotatedwidget.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <QImage>
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
#include <QMouseEvent>
|
||||
|
||||
#ifndef QT_NO_WHEELEVENT
|
||||
#include <QWheelEvent>
|
||||
#endif
|
||||
|
||||
#include <QResizeEvent>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
RotatedWidget::RotatedWidget(QWidget &content, QWidget *parent, Qt::WindowFlags f)
|
||||
: QWidget(parent, f)
|
||||
, mContent(&content)
|
||||
, mOrigin(Qt::TopLeftCorner)
|
||||
, mTransferMousePressEvent(false)
|
||||
, mTransferMouseReleaseEvent(false)
|
||||
, mTransferMouseDoubleClickEvent(false)
|
||||
, mTransferMouseMoveEvent(false)
|
||||
#ifndef QT_NO_WHEELEVENT
|
||||
, mTransferWheelEvent(false)
|
||||
#endif
|
||||
, mTransferEnterEvent(false)
|
||||
, mTransferLeaveEvent(false)
|
||||
{
|
||||
mContent->setParent(this);
|
||||
}
|
||||
|
||||
Qt::Corner RotatedWidget::origin() const
|
||||
{
|
||||
return mOrigin;
|
||||
}
|
||||
|
||||
void RotatedWidget::setOrigin(Qt::Corner newOrigin)
|
||||
{
|
||||
if (mOrigin != newOrigin)
|
||||
{
|
||||
if (mOrigin == Qt::TopLeftCorner)
|
||||
mContent->hide();
|
||||
|
||||
mOrigin = newOrigin;
|
||||
adjustContentSize();
|
||||
update();
|
||||
|
||||
if (mOrigin == Qt::TopLeftCorner)
|
||||
mContent->show();
|
||||
}
|
||||
}
|
||||
|
||||
QWidget * RotatedWidget::content() const
|
||||
{
|
||||
return mContent;
|
||||
}
|
||||
|
||||
void RotatedWidget::adjustContentSize()
|
||||
{
|
||||
mContent->adjustSize();
|
||||
|
||||
QSize before = size();
|
||||
|
||||
adjustSize();
|
||||
|
||||
if (before != size())
|
||||
updateGeometry();
|
||||
}
|
||||
|
||||
QSize RotatedWidget::adjustedSize(QSize size) const
|
||||
{
|
||||
switch (mOrigin)
|
||||
{
|
||||
case Qt::TopLeftCorner:
|
||||
case Qt::BottomRightCorner:
|
||||
break;
|
||||
|
||||
case Qt::TopRightCorner:
|
||||
case Qt::BottomLeftCorner:
|
||||
size.transpose();
|
||||
break;
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
QPoint RotatedWidget::adjustedPoint(QPoint point) const
|
||||
{
|
||||
switch (mOrigin)
|
||||
{
|
||||
case Qt::TopLeftCorner:
|
||||
case Qt::BottomRightCorner:
|
||||
break;
|
||||
|
||||
case Qt::TopRightCorner:
|
||||
case Qt::BottomLeftCorner:
|
||||
point = QPoint(point.y(), point.x());
|
||||
break;
|
||||
}
|
||||
|
||||
return point;
|
||||
}
|
||||
|
||||
QSize RotatedWidget::minimumSizeHint() const
|
||||
{
|
||||
return adjustedSize(mContent->minimumSizeHint());
|
||||
}
|
||||
|
||||
QSize RotatedWidget::sizeHint() const
|
||||
{
|
||||
return adjustedSize(mContent->sizeHint());
|
||||
}
|
||||
|
||||
void RotatedWidget::paintEvent(QPaintEvent */*event*/)
|
||||
{
|
||||
if (mOrigin == Qt::TopLeftCorner)
|
||||
return;
|
||||
|
||||
QSize sz = mContent->size();
|
||||
|
||||
QPainter painter(this);
|
||||
|
||||
QTransform transform;
|
||||
QPoint originPoint;
|
||||
switch (mOrigin)
|
||||
{
|
||||
case Qt::TopLeftCorner:
|
||||
// transform.rotate(0.0);
|
||||
// originPoint = QPoint(0.0, 0.0);
|
||||
break;
|
||||
|
||||
case Qt::TopRightCorner:
|
||||
transform.rotate(90.0);
|
||||
originPoint = QPoint(0.0, -sz.height());
|
||||
break;
|
||||
|
||||
case Qt::BottomRightCorner:
|
||||
transform.rotate(180.0);
|
||||
originPoint = QPoint(-sz.width(), -sz.height());
|
||||
break;
|
||||
|
||||
case Qt::BottomLeftCorner:
|
||||
transform.rotate(270.0);
|
||||
originPoint = QPoint(-sz.width(), 0.0);
|
||||
break;
|
||||
}
|
||||
painter.setTransform(transform);
|
||||
mContent->render(&painter, originPoint, QRegion(), RenderFlags(DrawChildren));
|
||||
}
|
||||
|
||||
void RotatedWidget::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if (!mTransferMousePressEvent)
|
||||
{
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
static bool cascadeCall = false;
|
||||
if (cascadeCall)
|
||||
return;
|
||||
cascadeCall = true;
|
||||
|
||||
QMouseEvent contentEvent(event->type(), adjustedPoint(event->pos()), event->globalPos(), event->button(), event->buttons(), event->modifiers());
|
||||
QApplication::sendEvent(mContent, &contentEvent);
|
||||
|
||||
cascadeCall = false;
|
||||
}
|
||||
|
||||
void RotatedWidget::mouseReleaseEvent(QMouseEvent *event)
|
||||
{
|
||||
if (!mTransferMouseReleaseEvent)
|
||||
{
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
static bool cascadeCall = false;
|
||||
if (cascadeCall)
|
||||
return;
|
||||
cascadeCall = true;
|
||||
|
||||
QMouseEvent contentEvent(event->type(), adjustedPoint(event->pos()), event->globalPos(), event->button(), event->buttons(), event->modifiers());
|
||||
QApplication::sendEvent(mContent, &contentEvent);
|
||||
|
||||
cascadeCall = false;
|
||||
}
|
||||
|
||||
void RotatedWidget::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
{
|
||||
if (!mTransferMouseDoubleClickEvent)
|
||||
{
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
static bool cascadeCall = false;
|
||||
if (cascadeCall)
|
||||
return;
|
||||
cascadeCall = true;
|
||||
|
||||
QMouseEvent contentEvent(event->type(), adjustedPoint(event->pos()), event->globalPos(), event->button(), event->buttons(), event->modifiers());
|
||||
QApplication::sendEvent(mContent, &contentEvent);
|
||||
|
||||
cascadeCall = false;
|
||||
}
|
||||
|
||||
void RotatedWidget::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
if (!mTransferMouseMoveEvent)
|
||||
{
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
static bool cascadeCall = false;
|
||||
if (cascadeCall)
|
||||
return;
|
||||
cascadeCall = true;
|
||||
|
||||
QMouseEvent contentEvent(event->type(), adjustedPoint(event->pos()), event->globalPos(), event->button(), event->buttons(), event->modifiers());
|
||||
QApplication::sendEvent(mContent, &contentEvent);
|
||||
|
||||
cascadeCall = false;
|
||||
}
|
||||
|
||||
#ifndef QT_NO_WHEELEVENT
|
||||
void RotatedWidget::wheelEvent(QWheelEvent *event)
|
||||
{
|
||||
if (!mTransferWheelEvent)
|
||||
{
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
static bool cascadeCall = false;
|
||||
if (cascadeCall)
|
||||
return;
|
||||
cascadeCall = true;
|
||||
|
||||
QWheelEvent contentEvent(adjustedPoint(event->pos()), event->globalPos(), event->delta(), event->buttons(), event->modifiers(), event->orientation());
|
||||
QApplication::sendEvent(mContent, &contentEvent);
|
||||
|
||||
cascadeCall = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void RotatedWidget::enterEvent(QEvent *event)
|
||||
{
|
||||
if (!mTransferEnterEvent)
|
||||
{
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
static bool cascadeCall = false;
|
||||
if (cascadeCall)
|
||||
return;
|
||||
cascadeCall = true;
|
||||
|
||||
QApplication::sendEvent(mContent, event);
|
||||
|
||||
cascadeCall = false;
|
||||
}
|
||||
|
||||
void RotatedWidget::leaveEvent(QEvent *event)
|
||||
{
|
||||
if (!mTransferLeaveEvent)
|
||||
{
|
||||
event->ignore();
|
||||
return;
|
||||
}
|
||||
|
||||
static bool cascadeCall = false;
|
||||
if (cascadeCall)
|
||||
return;
|
||||
cascadeCall = true;
|
||||
|
||||
QApplication::sendEvent(mContent, event);
|
||||
|
||||
cascadeCall = false;
|
||||
}
|
||||
|
||||
void RotatedWidget::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
static bool cascadeCall = false;
|
||||
if (cascadeCall)
|
||||
return;
|
||||
cascadeCall = true;
|
||||
|
||||
QResizeEvent contentEvent(adjustedSize(event->size()), adjustedSize(event->oldSize()));
|
||||
QApplication::sendEvent(mContent, &contentEvent);
|
||||
|
||||
cascadeCall = false;
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2013 Razor team
|
||||
* Authors:
|
||||
* Kuzma Shapran <kuzma.shapran@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 LXQTROTATED_WIDGET_H
|
||||
#define LXQTROTATED_WIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class LXQT_API RotatedWidget: public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(Qt::Corner origin READ origin WRITE setOrigin)
|
||||
|
||||
Q_PROPERTY(bool transferMousePressEvent READ transferMousePressEvent WRITE setTransferMousePressEvent)
|
||||
Q_PROPERTY(bool transferMouseReleaseEvent READ transferMouseReleaseEvent WRITE setTransferMouseReleaseEvent)
|
||||
Q_PROPERTY(bool transferMouseDoubleClickEvent READ transferMouseDoubleClickEvent WRITE setTransferMouseDoubleClickEvent)
|
||||
Q_PROPERTY(bool transferMouseMoveEvent READ transferMouseMoveEvent WRITE setTransferMouseMoveEvent)
|
||||
#ifndef QT_NO_WHEELEVENT
|
||||
Q_PROPERTY(bool transferWheelEvent READ transferWheelEvent WRITE setTransferWheelEvent)
|
||||
#endif
|
||||
|
||||
Q_PROPERTY(bool transferEnterEvent READ transferEnterEvent WRITE setTransferEnterEvent)
|
||||
Q_PROPERTY(bool transferLeaveEvent READ transferLeaveEvent WRITE setTransferLeaveEvent)
|
||||
|
||||
public:
|
||||
explicit RotatedWidget(QWidget &content, QWidget* parent = 0, Qt::WindowFlags f = 0);
|
||||
|
||||
Qt::Corner origin() const;
|
||||
void setOrigin(Qt::Corner);
|
||||
|
||||
QWidget * content() const;
|
||||
|
||||
void adjustContentSize();
|
||||
|
||||
virtual QSize minimumSizeHint() const;
|
||||
virtual QSize sizeHint() const;
|
||||
|
||||
QSize adjustedSize(QSize) const;
|
||||
QPoint adjustedPoint(QPoint) const;
|
||||
|
||||
|
||||
bool transferMousePressEvent() const { return mTransferMousePressEvent; }
|
||||
void setTransferMousePressEvent(bool value) { mTransferMousePressEvent = value; }
|
||||
|
||||
bool transferMouseReleaseEvent() const { return mTransferMouseReleaseEvent; }
|
||||
void setTransferMouseReleaseEvent(bool value) { mTransferMouseReleaseEvent = value; }
|
||||
|
||||
bool transferMouseDoubleClickEvent() const { return mTransferMouseDoubleClickEvent; }
|
||||
void setTransferMouseDoubleClickEvent(bool value) { mTransferMouseDoubleClickEvent = value; }
|
||||
|
||||
bool transferMouseMoveEvent() const { return mTransferMouseMoveEvent; }
|
||||
void setTransferMouseMoveEvent(bool value) { mTransferMouseMoveEvent = value; }
|
||||
|
||||
#ifndef QT_NO_WHEELEVENT
|
||||
bool transferWheelEvent() const { return mTransferWheelEvent; }
|
||||
void setTransferWheelEvent(bool value) { mTransferWheelEvent = value; }
|
||||
#endif
|
||||
|
||||
bool transferEnterEvent() const { return mTransferEnterEvent; }
|
||||
void setTransferEnterEvent(bool value) { mTransferEnterEvent = value; }
|
||||
|
||||
bool transferLeaveEvent() const { return mTransferLeaveEvent; }
|
||||
void setTransferLeaveEvent(bool value) { mTransferLeaveEvent = value; }
|
||||
|
||||
protected:
|
||||
virtual void paintEvent(QPaintEvent *);
|
||||
|
||||
// Transition event handlers
|
||||
virtual void mousePressEvent(QMouseEvent *);
|
||||
virtual void mouseReleaseEvent(QMouseEvent *);
|
||||
virtual void mouseDoubleClickEvent(QMouseEvent *);
|
||||
virtual void mouseMoveEvent(QMouseEvent *);
|
||||
#ifndef QT_NO_WHEELEVENT
|
||||
virtual void wheelEvent(QWheelEvent *);
|
||||
#endif
|
||||
virtual void enterEvent(QEvent *);
|
||||
virtual void leaveEvent(QEvent *);
|
||||
|
||||
virtual void resizeEvent(QResizeEvent *);
|
||||
|
||||
private:
|
||||
QWidget *mContent;
|
||||
Qt::Corner mOrigin;
|
||||
|
||||
bool mTransferMousePressEvent;
|
||||
bool mTransferMouseReleaseEvent;
|
||||
bool mTransferMouseDoubleClickEvent;
|
||||
bool mTransferMouseMoveEvent;
|
||||
#ifndef QT_NO_WHEELEVENT
|
||||
bool mTransferWheelEvent;
|
||||
#endif
|
||||
bool mTransferEnterEvent;
|
||||
bool mTransferLeaveEvent;
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTROTATEDWIDGET_H
|
@ -0,0 +1,130 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 <QProcess>
|
||||
#include "lxqtscreensaver.h"
|
||||
#include "lxqttranslator.h"
|
||||
|
||||
#include <XdgIcon>
|
||||
#include <QMessageBox>
|
||||
#include <QAction>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
ScreenSaver::ScreenSaver(QObject * parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
m_xdgProcess = new QProcess(this);
|
||||
connect(m_xdgProcess, SIGNAL(finished(int,QProcess::ExitStatus)),
|
||||
this, SLOT(xdgProcess_finished(int,QProcess::ExitStatus)));
|
||||
}
|
||||
|
||||
QList<QAction*> ScreenSaver::availableActions()
|
||||
{
|
||||
QList<QAction*> ret;
|
||||
QAction * act;
|
||||
|
||||
act = new QAction(XdgIcon::fromTheme("system-lock-screen", "lock"), tr("Lock Screen"), this);
|
||||
connect(act, SIGNAL(triggered()), this, SLOT(lockScreen()));
|
||||
ret.append(act);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void ScreenSaver::lockScreen()
|
||||
{
|
||||
m_xdgProcess->start("xdg-screensaver", QStringList() << "lock");
|
||||
}
|
||||
|
||||
void ScreenSaver::xdgProcess_finished(int err, QProcess::ExitStatus status)
|
||||
{
|
||||
QWidget *p = qobject_cast<QWidget*>(parent());
|
||||
|
||||
if (status == QProcess::CrashExit)
|
||||
{
|
||||
QMessageBox::warning(p,
|
||||
tr("Screen Saver Activation Error"),
|
||||
tr("An error occurred starting screensaver. "
|
||||
"xdg-screensaver cannot be started due its crash.")
|
||||
);
|
||||
}
|
||||
else if (err == -2)
|
||||
{
|
||||
QMessageBox::warning(p,
|
||||
tr("Screen Saver Activation Error"),
|
||||
tr("An error occurred starting screensaver. "
|
||||
"xdg-screensaver is not installed correctly.")
|
||||
);
|
||||
}
|
||||
else if (err == -1)
|
||||
{
|
||||
QMessageBox::warning(p,
|
||||
tr("Screen Saver Activation Error"),
|
||||
tr("An error occurred starting screensaver. "
|
||||
"xdg-screensaver cannot be started.")
|
||||
);
|
||||
}
|
||||
else if (err == 0)
|
||||
{
|
||||
emit activated();
|
||||
}
|
||||
else if (err == 1)
|
||||
{
|
||||
QMessageBox::warning(p,
|
||||
tr("Screen Saver Activation Error"),
|
||||
tr("An error occurred starting screensaver. "
|
||||
"Syntax error in xdg-screensaver arguments.")
|
||||
);
|
||||
}
|
||||
else if (err == 3)
|
||||
{
|
||||
QMessageBox::warning(p,
|
||||
tr("Screen Saver Activation Error"),
|
||||
tr("An error occurred starting screensaver. "
|
||||
"Ensure you have xscreensaver installed and running.")
|
||||
);
|
||||
}
|
||||
else if (err == 4)
|
||||
{
|
||||
QMessageBox::warning(p,
|
||||
tr("Screen Saver Activation Error"),
|
||||
tr("An error occurred starting screensaver. "
|
||||
"Action 'activate' failed. "
|
||||
"Ensure you have xscreensaver installed and running.")
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(p,
|
||||
tr("Screen Saver Activation Error"),
|
||||
tr("An error occurred starting screensaver. "
|
||||
"Unknown error - undocumented return value from xdg-screensaver=%1.").arg(err)
|
||||
);
|
||||
}
|
||||
emit done();
|
||||
}
|
||||
|
@ -0,0 +1,66 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 SCREENSAVER_H
|
||||
#define SCREENSAVER_H
|
||||
|
||||
#include <QProcess>
|
||||
#include <QObject>
|
||||
#include "lxqtglobals.h"
|
||||
#include <QAction>
|
||||
|
||||
class QProcess;
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class LXQT_API ScreenSaver : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ScreenSaver(QObject * parent=0);
|
||||
|
||||
QList<QAction*> availableActions();
|
||||
|
||||
signals:
|
||||
void activated();
|
||||
void done();
|
||||
public slots:
|
||||
void lockScreen();
|
||||
|
||||
private:
|
||||
QProcess * m_xdgProcess;
|
||||
|
||||
private slots:
|
||||
void xdgProcess_finished(int err, QProcess::ExitStatus status);
|
||||
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif
|
||||
|
@ -0,0 +1,700 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@gmail.com>
|
||||
* Petr Vanek <petr@scribus.info>
|
||||
*
|
||||
* 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 "lxqtsettings.h"
|
||||
#include <QDebug>
|
||||
#include <QEvent>
|
||||
#include <QDir>
|
||||
#include <QStringList>
|
||||
#include <QMutex>
|
||||
#include <QFileSystemWatcher>
|
||||
#include <QSharedData>
|
||||
#include <QTimerEvent>
|
||||
|
||||
#include <XdgIcon>
|
||||
#include <XdgDirs>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
class LxQt::SettingsPrivate
|
||||
{
|
||||
public:
|
||||
SettingsPrivate(Settings* parent):
|
||||
mChangeTimer(0),
|
||||
mParent(parent)
|
||||
{
|
||||
}
|
||||
|
||||
QString localizedKey(const QString& key) const;
|
||||
|
||||
QFileSystemWatcher mWatcher;
|
||||
int mChangeTimer;
|
||||
|
||||
private:
|
||||
Settings* mParent;
|
||||
};
|
||||
|
||||
|
||||
LxQtTheme* LxQtTheme::mInstance = 0;
|
||||
|
||||
class LxQt::LxQtThemeData: public QSharedData {
|
||||
public:
|
||||
LxQtThemeData(): mValid(false) {}
|
||||
QString loadQss(const QString& qssFile) const;
|
||||
QString findTheme(const QString &themeName);
|
||||
|
||||
QString mName;
|
||||
QString mPath;
|
||||
QString mPreviewImg;
|
||||
bool mValid;
|
||||
|
||||
};
|
||||
|
||||
|
||||
class LxQt::GlobalSettingsPrivate
|
||||
{
|
||||
public:
|
||||
GlobalSettingsPrivate(GlobalSettings *parent):
|
||||
mParent(parent),
|
||||
mThemeUpdated(0ull)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
GlobalSettings *mParent;
|
||||
QString mIconTheme;
|
||||
QString mLxQtTheme;
|
||||
qlonglong mThemeUpdated;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
Settings::Settings(const QString& module, QObject* parent) :
|
||||
QSettings("lxqt", module, parent),
|
||||
d_ptr(new SettingsPrivate(this))
|
||||
{
|
||||
// HACK: we need to ensure that the user (~/.config/lxqt/<module>.conf)
|
||||
// exists to have functional mWatcher
|
||||
if (!contains("__userfile__"))
|
||||
{
|
||||
setValue("__userfile__", true);
|
||||
sync();
|
||||
}
|
||||
d_ptr->mWatcher.addPath(this->fileName());
|
||||
connect(&(d_ptr->mWatcher), &QFileSystemWatcher::fileChanged, this, &Settings::_fileChanged);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
Settings::Settings(const QString &fileName, QSettings::Format format, QObject *parent):
|
||||
QSettings(fileName, format, parent),
|
||||
d_ptr(new SettingsPrivate(this))
|
||||
{
|
||||
// HACK: we need to ensure that the user (~/.config/lxqt/<module>.conf)
|
||||
// exists to have functional mWatcher
|
||||
if (!contains("__userfile__"))
|
||||
{
|
||||
setValue("__userfile__", true);
|
||||
sync();
|
||||
}
|
||||
d_ptr->mWatcher.addPath(this->fileName());
|
||||
connect(&(d_ptr->mWatcher), &QFileSystemWatcher::fileChanged, this, &Settings::_fileChanged);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
Settings::Settings(const QSettings* parentSettings, const QString& subGroup, QObject* parent):
|
||||
QSettings(parentSettings->organizationName(), parentSettings->applicationName(), parent),
|
||||
d_ptr(new SettingsPrivate(this))
|
||||
{
|
||||
beginGroup(subGroup);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
Settings::Settings(const QSettings& parentSettings, const QString& subGroup, QObject* parent):
|
||||
QSettings(parentSettings.organizationName(), parentSettings.applicationName(), parent),
|
||||
d_ptr(new SettingsPrivate(this))
|
||||
{
|
||||
beginGroup(subGroup);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
Settings::~Settings()
|
||||
{
|
||||
// because in the Settings::Settings(const QString& module, QObject* parent)
|
||||
// constructor there is no beginGroup() called...
|
||||
if (!group().isEmpty())
|
||||
endGroup();
|
||||
|
||||
delete d_ptr;
|
||||
}
|
||||
|
||||
bool Settings::event(QEvent *event)
|
||||
{
|
||||
if (event->type() == QEvent::UpdateRequest)
|
||||
{
|
||||
emit settingsChanged();
|
||||
}
|
||||
else if (event->type() == QEvent::Timer)
|
||||
{
|
||||
if(static_cast<QTimerEvent*>(event)->timerId() == d_ptr->mChangeTimer)
|
||||
{
|
||||
fileChanged(); // invoke the real fileChanged() handler.
|
||||
killTimer(d_ptr->mChangeTimer);
|
||||
d_ptr->mChangeTimer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return QSettings::event(event);
|
||||
}
|
||||
|
||||
void Settings::fileChanged()
|
||||
{
|
||||
sync();
|
||||
emit settingsChanged();
|
||||
}
|
||||
|
||||
void Settings::_fileChanged(QString path)
|
||||
{
|
||||
// delay the change notification for 100 ms to avoid
|
||||
// unnecessary repeated loading of the same config file if
|
||||
// the file is changed for several times rapidly.
|
||||
if(d_ptr->mChangeTimer)
|
||||
killTimer(d_ptr->mChangeTimer);
|
||||
d_ptr->mChangeTimer = startTimer(100);
|
||||
|
||||
// D*mn! yet another Qt 5.4 regression!!!
|
||||
// See the bug report: https://github.com/lxde/lxqt/issues/441
|
||||
// Since Qt 5.4, QSettings uses QSaveFile to save the config files.
|
||||
// https://github.com/qtproject/qtbase/commit/8d15068911d7c0ba05732e2796aaa7a90e34a6a1#diff-e691c0405f02f3478f4f50a27bdaecde
|
||||
// QSaveFile will save the content to a new temp file, and replace the old file later.
|
||||
// Hence the existing config file is not changed. Instead, it's deleted and then replaced.
|
||||
// This new behaviour unfortunately breaks QFileSystemWatcher.
|
||||
// After file deletion, we can no longer receive any new change notifications.
|
||||
// The most ridiculous thing is, QFileSystemWatcher does not provide a
|
||||
// way for us to know if a file is deleted. WT*?
|
||||
// Luckily, I found a workaround: If the file path no longer exists
|
||||
// in the watcher's files(), this file is deleted.
|
||||
if(!d_ptr->mWatcher.files().contains(path))
|
||||
d_ptr->mWatcher.addPath(path);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
const GlobalSettings *Settings::globalSettings()
|
||||
{
|
||||
static QMutex mutex;
|
||||
static GlobalSettings *instance = 0;
|
||||
if (!instance)
|
||||
{
|
||||
mutex.lock();
|
||||
|
||||
if (!instance)
|
||||
instance = new GlobalSettings();
|
||||
|
||||
mutex.unlock();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
LC_MESSAGES value Possible keys in order of matching
|
||||
lang_COUNTRY@MODIFIER lang_COUNTRY@MODIFIER, lang_COUNTRY, lang@MODIFIER, lang,
|
||||
default value
|
||||
lang_COUNTRY lang_COUNTRY, lang, default value
|
||||
lang@MODIFIER lang@MODIFIER, lang, default value
|
||||
lang lang, default value
|
||||
************************************************/
|
||||
QString SettingsPrivate::localizedKey(const QString& key) const
|
||||
{
|
||||
|
||||
QString lang = getenv("LC_MESSAGES");
|
||||
|
||||
if (lang.isEmpty())
|
||||
lang = getenv("LC_ALL");
|
||||
|
||||
if (lang.isEmpty())
|
||||
lang = getenv("LANG");
|
||||
|
||||
|
||||
QString modifier = lang.section('@', 1);
|
||||
if (!modifier.isEmpty())
|
||||
lang.truncate(lang.length() - modifier.length() - 1);
|
||||
|
||||
QString encoding = lang.section('.', 1);
|
||||
if (!encoding.isEmpty())
|
||||
lang.truncate(lang.length() - encoding.length() - 1);
|
||||
|
||||
|
||||
QString country = lang.section('_', 1);
|
||||
if (!country.isEmpty())
|
||||
lang.truncate(lang.length() - country.length() - 1);
|
||||
|
||||
|
||||
|
||||
//qDebug() << "LC_MESSAGES: " << getenv("LC_MESSAGES");
|
||||
//qDebug() << "Lang:" << lang;
|
||||
//qDebug() << "Country:" << country;
|
||||
//qDebug() << "Encoding:" << encoding;
|
||||
//qDebug() << "Modifier:" << modifier;
|
||||
|
||||
if (!modifier.isEmpty() && !country.isEmpty())
|
||||
{
|
||||
QString k = QString("%1[%2_%3@%4]").arg(key, lang, country, modifier);
|
||||
//qDebug() << "\t try " << k << mParent->contains(k);
|
||||
if (mParent->contains(k))
|
||||
return k;
|
||||
}
|
||||
|
||||
if (!country.isEmpty())
|
||||
{
|
||||
QString k = QString("%1[%2_%3]").arg(key, lang, country);
|
||||
//qDebug() << "\t try " << k << mParent->contains(k);
|
||||
if (mParent->contains(k))
|
||||
return k;
|
||||
}
|
||||
|
||||
if (!modifier.isEmpty())
|
||||
{
|
||||
QString k = QString("%1[%2@%3]").arg(key, lang, modifier);
|
||||
//qDebug() << "\t try " << k << mParent->contains(k);
|
||||
if (mParent->contains(k))
|
||||
return k;
|
||||
}
|
||||
|
||||
QString k = QString("%1[%2]").arg(key, lang);
|
||||
//qDebug() << "\t try " << k << mParent->contains(k);
|
||||
if (mParent->contains(k))
|
||||
return k;
|
||||
|
||||
|
||||
//qDebug() << "\t try " << key << mParent->contains(key);
|
||||
return key;
|
||||
}
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QVariant Settings::localizedValue(const QString& key, const QVariant& defaultValue) const
|
||||
{
|
||||
Q_D(const Settings);
|
||||
return value(d->localizedKey(key), defaultValue);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void Settings::setLocalizedValue(const QString &key, const QVariant &value)
|
||||
{
|
||||
Q_D(const Settings);
|
||||
setValue(d->localizedKey(key), value);
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
LxQtTheme::LxQtTheme():
|
||||
d(new LxQtThemeData)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
LxQtTheme::LxQtTheme(const QString &path):
|
||||
d(new LxQtThemeData)
|
||||
{
|
||||
if (path.isEmpty())
|
||||
return;
|
||||
|
||||
QFileInfo fi(path);
|
||||
if (fi.isAbsolute())
|
||||
{
|
||||
d->mPath = path;
|
||||
d->mName = fi.fileName();
|
||||
d->mValid = fi.isDir();
|
||||
}
|
||||
else
|
||||
{
|
||||
d->mName = path;
|
||||
d->mPath = d->findTheme(path);
|
||||
d->mValid = !(d->mPath.isEmpty());
|
||||
}
|
||||
|
||||
if (QDir(path).exists("preview.png"))
|
||||
d->mPreviewImg = path + "/preview.png";
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QString LxQtThemeData::findTheme(const QString &themeName)
|
||||
{
|
||||
if (themeName.isEmpty())
|
||||
return "";
|
||||
|
||||
QStringList paths;
|
||||
paths << XdgDirs::dataHome(false);
|
||||
paths << XdgDirs::dataDirs();
|
||||
// TODO/FIXME: this is fallback path for standard CMAKE_INSTALL_PREFIX
|
||||
paths << "/usr/local/share";
|
||||
|
||||
foreach(QString path, paths)
|
||||
{
|
||||
QDir dir(QString("%1/lxqt/themes/%2").arg(path, themeName));
|
||||
if (dir.isReadable())
|
||||
return dir.absolutePath();
|
||||
}
|
||||
|
||||
return QString();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
LxQtTheme::LxQtTheme(const LxQtTheme &other):
|
||||
d(other.d)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
LxQtTheme::~LxQtTheme()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
LxQtTheme& LxQtTheme::operator=(const LxQtTheme &other)
|
||||
{
|
||||
d = other.d;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
bool LxQtTheme::isValid() const
|
||||
{
|
||||
return d->mValid;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QString LxQtTheme::name() const
|
||||
{
|
||||
return d->mName;
|
||||
}
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QString LxQtTheme::path() const
|
||||
{
|
||||
return d->mPath;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QString LxQtTheme::previewImage() const
|
||||
{
|
||||
return d->mPreviewImg;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QString LxQtTheme::qss(const QString& module) const
|
||||
{
|
||||
QString path = QString("%1/%2.qss").arg(d->mPath, module);
|
||||
|
||||
QString styleSheet;
|
||||
if (!path.isEmpty())
|
||||
styleSheet = d->loadQss(path);
|
||||
else
|
||||
qWarning() << QString("QSS file %1 cannot be found").arg(path);
|
||||
|
||||
// Single/double click ...........................
|
||||
Settings s("desktop");
|
||||
bool singleClick = s.value("icon-launch-mode", "singleclick").toString() == "singleclick";
|
||||
styleSheet += QString("QAbstractItemView {activate-on-singleclick : %1; }").arg(singleClick ? 1 : 0);
|
||||
|
||||
return styleSheet;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QString LxQtThemeData::loadQss(const QString& qssFile) const
|
||||
{
|
||||
QFile f(qssFile);
|
||||
if (! f.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
{
|
||||
qWarning() << "Theme: Cannot open file for reading:" << qssFile;
|
||||
return QString();
|
||||
}
|
||||
|
||||
QString qss = f.readAll();
|
||||
f.close();
|
||||
|
||||
if (qss.isEmpty())
|
||||
return QString();
|
||||
|
||||
// handle relative paths
|
||||
QString qssDir = QFileInfo(qssFile).canonicalPath();
|
||||
qss.replace(QRegExp("url.[ \\t\\s]*", Qt::CaseInsensitive, QRegExp::RegExp2), "url(" + qssDir + "/");
|
||||
|
||||
return qss;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QString LxQtTheme::desktopBackground(int screen) const
|
||||
{
|
||||
QString wallpaperCfgFileName = QString("%1/wallpaper.cfg").arg(d->mPath);
|
||||
|
||||
if (wallpaperCfgFileName.isEmpty())
|
||||
return QString();
|
||||
|
||||
QSettings s(wallpaperCfgFileName, QSettings::IniFormat);
|
||||
QString themeDir = QFileInfo(wallpaperCfgFileName).absolutePath();
|
||||
// There is something strange... If I remove next line the wallpapers array is not found...
|
||||
s.childKeys();
|
||||
s.beginReadArray("wallpapers");
|
||||
|
||||
s.setArrayIndex(screen - 1);
|
||||
if (s.contains("file"))
|
||||
return QString("%1/%2").arg(themeDir, s.value("file").toString());
|
||||
|
||||
s.setArrayIndex(0);
|
||||
if (s.contains("file"))
|
||||
return QString("%1/%2").arg(themeDir, s.value("file").toString());
|
||||
|
||||
return QString();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
const LxQtTheme &LxQtTheme::currentTheme()
|
||||
{
|
||||
static LxQtTheme theme;
|
||||
QString name = Settings::globalSettings()->value("theme").toString();
|
||||
if (theme.name() != name)
|
||||
{
|
||||
theme = LxQtTheme(name);
|
||||
}
|
||||
return theme;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QList<LxQtTheme> LxQtTheme::allThemes()
|
||||
{
|
||||
QList<LxQtTheme> ret;
|
||||
QSet<QString> processed;
|
||||
|
||||
QStringList paths;
|
||||
paths << XdgDirs::dataHome(false);
|
||||
paths << XdgDirs::dataDirs();
|
||||
|
||||
foreach(QString path, paths)
|
||||
{
|
||||
QDir dir(QString("%1/lxqt/themes").arg(path));
|
||||
QFileInfoList dirs = dir.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot);
|
||||
|
||||
foreach(QFileInfo dir, dirs)
|
||||
{
|
||||
if (!processed.contains(dir.fileName()) &&
|
||||
QDir(dir.absoluteFilePath()).exists("lxqt-panel.qss"))
|
||||
{
|
||||
processed << dir.fileName();
|
||||
ret << LxQtTheme(dir.absoluteFilePath());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
SettingsCache::SettingsCache(QSettings &settings) :
|
||||
mSettings(settings)
|
||||
{
|
||||
loadFromSettings();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
SettingsCache::SettingsCache(QSettings *settings) :
|
||||
mSettings(*settings)
|
||||
{
|
||||
loadFromSettings();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void SettingsCache::loadFromSettings()
|
||||
{
|
||||
foreach (QString key, mSettings.allKeys())
|
||||
{
|
||||
mCache.insert(key, mSettings.value(key));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void SettingsCache::loadToSettings()
|
||||
{
|
||||
QHash<QString, QVariant>::const_iterator i = mCache.constBegin();
|
||||
|
||||
while(i != mCache.constEnd())
|
||||
{
|
||||
mSettings.setValue(i.key(), i.value());
|
||||
++i;
|
||||
}
|
||||
|
||||
mSettings.sync();
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
GlobalSettings::GlobalSettings():
|
||||
Settings("lxqt"),
|
||||
d_ptr(new GlobalSettingsPrivate(this))
|
||||
{
|
||||
if (value("icon_theme").toString().isEmpty())
|
||||
{
|
||||
QStringList failback;
|
||||
failback << "oxygen";
|
||||
failback << "Tango";
|
||||
failback << "Prudence-icon";
|
||||
failback << "Humanity";
|
||||
failback << "elementary";
|
||||
failback << "gnome";
|
||||
|
||||
|
||||
QDir dir("/usr/share/icons/");
|
||||
foreach (QString s, failback)
|
||||
{
|
||||
if (dir.exists(s))
|
||||
{
|
||||
setValue("icon_theme", s);
|
||||
sync();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fileChanged();
|
||||
}
|
||||
|
||||
GlobalSettings::~GlobalSettings()
|
||||
{
|
||||
delete d_ptr;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void GlobalSettings::fileChanged()
|
||||
{
|
||||
Q_D(GlobalSettings);
|
||||
sync();
|
||||
|
||||
|
||||
QString it = value("icon_theme").toString();
|
||||
if (d->mIconTheme != it)
|
||||
{
|
||||
d->mIconTheme = it;
|
||||
XdgIcon::setThemeName(it);
|
||||
emit iconThemeChanged();
|
||||
}
|
||||
|
||||
QString rt = value("theme").toString();
|
||||
qlonglong themeUpdated = value("__theme_updated__").toLongLong();
|
||||
if ((d->mLxQtTheme != rt) || (d->mThemeUpdated != themeUpdated))
|
||||
{
|
||||
d->mLxQtTheme = rt;
|
||||
emit lxqtThemeChanged();
|
||||
}
|
||||
|
||||
emit settingsChanged();
|
||||
}
|
||||
|
@ -0,0 +1,206 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2010-2011 Razor team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@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 LXQTSETTINGS_H
|
||||
#define LXQTSETTINGS_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QSettings>
|
||||
#include <QSharedDataPointer>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
class QEvent;
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
|
||||
class SettingsPrivate;
|
||||
class GlobalSettings;
|
||||
|
||||
/*! \brief User settings handling */
|
||||
class LXQT_API Settings : public QSettings
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
/*! \brief Constructs a Settings object for accessing settings of the module called module, and with parent parent.
|
||||
Settings can be accessed using the standard interface provided by QSettings, but it also provides some convenience functions and signals.
|
||||
|
||||
\param module a base name of the config file. It's a name without
|
||||
the extension. For example: if you want to open settings for
|
||||
panel create it as Settings("panel").
|
||||
The function will create all parent directories necessary to create
|
||||
the file.
|
||||
\param parent It's no need to delete this class manually if it's set.
|
||||
*/
|
||||
explicit Settings(const QString& module, QObject* parent = 0);
|
||||
//explicit Settings(QObject* parent=0);
|
||||
explicit Settings(const QSettings* parentSettings, const QString& subGroup, QObject* parent=0);
|
||||
explicit Settings(const QSettings& parentSettings, const QString& subGroup, QObject* parent=0);
|
||||
Settings(const QString &fileName, QSettings::Format format, QObject *parent = 0);
|
||||
~Settings();
|
||||
|
||||
static const GlobalSettings *globalSettings();
|
||||
|
||||
|
||||
/*! Returns the localized value for key. In the desktop file keys may be postfixed by [LOCALE]. If the
|
||||
localized value doesn't exist, returns non lokalized value. If non localized value doesn't exist, returns defaultValue.
|
||||
LOCALE must be of the form lang_COUNTRY.ENCODING@MODIFIER, where _COUNTRY, .ENCODING, and @MODIFIER may be omitted.
|
||||
|
||||
If no default value is specified, a default QVariant is returned. */
|
||||
QVariant localizedValue(const QString& key, const QVariant& defaultValue = QVariant()) const;
|
||||
|
||||
/*! Sets the value of setting key to value. If a localized version of the key already exists, the previous value is
|
||||
overwritten. Otherwise, it overwrites the the un-localized version. */
|
||||
void setLocalizedValue(const QString &key, const QVariant &value);
|
||||
|
||||
signals:
|
||||
void settingsChanged();
|
||||
|
||||
protected:
|
||||
bool event(QEvent *event);
|
||||
|
||||
protected slots:
|
||||
/*! Called when the config file is changed */
|
||||
virtual void fileChanged();
|
||||
|
||||
private slots:
|
||||
void _fileChanged(QString path);
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(Settings)
|
||||
|
||||
SettingsPrivate* const d_ptr;
|
||||
Q_DECLARE_PRIVATE(Settings)
|
||||
};
|
||||
|
||||
|
||||
class LxQtThemeData;
|
||||
|
||||
/*! \brief QSS theme handling */
|
||||
class LXQT_API LxQtTheme
|
||||
{
|
||||
public:
|
||||
/// Constructs a null theme.
|
||||
LxQtTheme();
|
||||
|
||||
/*! Constructs an theme from the dir with the given path. If path not absolute
|
||||
(i.e. the theme name only) the relevant dir must be found relative to the
|
||||
$XDG_DATA_HOME + $XDG_DATA_DIRS directories. */
|
||||
LxQtTheme(const QString &path);
|
||||
|
||||
/// Constructs a copy of other. This is very fast.
|
||||
LxQtTheme(const LxQtTheme &other);
|
||||
|
||||
LxQtTheme& operator=(const LxQtTheme &other);
|
||||
~LxQtTheme();
|
||||
|
||||
/// Returns the name of the theme.
|
||||
QString name() const;
|
||||
|
||||
QString path() const;
|
||||
|
||||
QString previewImage() const;
|
||||
|
||||
/// Returns true if this theme is valid; otherwise returns false.
|
||||
bool isValid() const;
|
||||
|
||||
/*! \brief Returns StyleSheet text (not file name, but real text) of the module called module.
|
||||
Paths in url() C/QSS functions are parsed to be real values for the theme,
|
||||
relative to full path
|
||||
*/
|
||||
QString qss(const QString& module) const;
|
||||
|
||||
/*! \brief A full path to image used as a wallpaper
|
||||
\param screen is an ID of the screen like in Qt. -1 means default (any) screen.
|
||||
Any other value greater than -1 is the exact screen (in dualhead).
|
||||
In themes the index starts from 1 (ix 1 means 1st screen).
|
||||
\retval QString a file name (including path).
|
||||
*/
|
||||
QString desktopBackground(int screen=-1) const;
|
||||
|
||||
/// Returns the current lxqt theme.
|
||||
static const LxQtTheme ¤tTheme();
|
||||
|
||||
/// Returns the all themes found in the system.
|
||||
static QList<LxQtTheme> allThemes();
|
||||
|
||||
private:
|
||||
static LxQtTheme* mInstance;
|
||||
QSharedDataPointer<LxQtThemeData> d;
|
||||
};
|
||||
|
||||
/*!
|
||||
A global pointer referring to the unique LxQtTheme object.
|
||||
It is equivalent to the pointer returned by the LxQtTheme::instance() function.
|
||||
Only one theme object can be created. !*/
|
||||
|
||||
#define lxqtTheme LxQtTheme::currentTheme()
|
||||
|
||||
|
||||
class LXQT_API SettingsCache
|
||||
{
|
||||
public:
|
||||
explicit SettingsCache(QSettings &settings);
|
||||
explicit SettingsCache(QSettings *settings);
|
||||
virtual ~SettingsCache() {}
|
||||
|
||||
void loadFromSettings();
|
||||
void loadToSettings();
|
||||
|
||||
private:
|
||||
QSettings &mSettings;
|
||||
QHash<QString, QVariant> mCache;
|
||||
};
|
||||
|
||||
class GlobalSettingsPrivate;
|
||||
|
||||
class GlobalSettings: public Settings
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
GlobalSettings();
|
||||
~GlobalSettings();
|
||||
|
||||
signals:
|
||||
/// Signal emitted when the icon theme has changed.
|
||||
void iconThemeChanged();
|
||||
|
||||
/// Signal emitted when the lxqt theme has changed.
|
||||
void lxqtThemeChanged();
|
||||
|
||||
protected slots:
|
||||
void fileChanged();
|
||||
|
||||
private:
|
||||
GlobalSettingsPrivate* const d_ptr;
|
||||
Q_DECLARE_PRIVATE(GlobalSettings)
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTSETTINGS_H
|
@ -0,0 +1,109 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://lxqt.org
|
||||
*
|
||||
* Copyright: 2014 LXQt team
|
||||
* Authors:
|
||||
* Luís Pereira <luis.artur.pereira@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 "lxqtsingleapplication.h"
|
||||
#include "singleapplicationadaptor.h"
|
||||
#include <KWindowSystem/KWindowSystem>
|
||||
#include <KWindowSystem/NETWM>
|
||||
#include <QDBusMessage>
|
||||
#include <QWidget>
|
||||
#include <QDebug>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
SingleApplication::SingleApplication(int &argc, char **argv, StartOptions options)
|
||||
: Application(argc, argv),
|
||||
mActivationWindow(0)
|
||||
{
|
||||
QString service =
|
||||
QString::fromLatin1("org.lxqt.%1").arg(QApplication::applicationName());
|
||||
|
||||
SingleApplicationAdaptor *mAdaptor = new SingleApplicationAdaptor(this);
|
||||
QDBusConnection bus = QDBusConnection::sessionBus();
|
||||
|
||||
if (!bus.isConnected()) {
|
||||
QLatin1String errorMessage("Can't connect to the D-Bus session bus\n"
|
||||
"Make sure the D-Bus daemon is running");
|
||||
|
||||
/* ExitOnDBusFailure is the default. Any value other than
|
||||
NoExitOnDBusFailure will be taken as ExitOnDBusFailure (the default).
|
||||
*/
|
||||
if (options == NoExitOnDBusFailure) {
|
||||
qDebug() << Q_FUNC_INFO << errorMessage;
|
||||
return;
|
||||
} else {
|
||||
qCritical() << Q_FUNC_INFO << errorMessage;
|
||||
::exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
bool registered = (bus.registerService(service) ==
|
||||
QDBusConnectionInterface::ServiceRegistered);
|
||||
if (registered) { // We are the primary instance
|
||||
QLatin1String objectPath("/");
|
||||
bus.registerObject(objectPath, mAdaptor,
|
||||
QDBusConnection::ExportAllSlots);
|
||||
} else { // We are the second outstance
|
||||
QDBusMessage msg = QDBusMessage::createMethodCall(service,
|
||||
QStringLiteral("/"),
|
||||
QStringLiteral("org.lxqt.SingleApplication"),
|
||||
QStringLiteral("activateWindow"));
|
||||
QDBusConnection::sessionBus().send(msg);
|
||||
|
||||
::exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
SingleApplication::~SingleApplication()
|
||||
{
|
||||
}
|
||||
|
||||
void SingleApplication::setActivationWindow(QWidget *w)
|
||||
{
|
||||
mActivationWindow = w;
|
||||
}
|
||||
|
||||
QWidget *SingleApplication::activationWindow() const
|
||||
{
|
||||
return mActivationWindow;
|
||||
}
|
||||
|
||||
void SingleApplication::activateWindow()
|
||||
{
|
||||
if (mActivationWindow) {
|
||||
WId window = mActivationWindow->effectiveWinId();
|
||||
|
||||
KWindowInfo info(window, NET::WMDesktop);
|
||||
int windowDesktop = info.desktop();
|
||||
|
||||
if (windowDesktop != KWindowSystem::currentDesktop())
|
||||
KWindowSystem::setCurrentDesktop(windowDesktop);
|
||||
KWindowSystem::activateWindow(window);
|
||||
} else {
|
||||
qDebug() << Q_FUNC_INFO << "activationWindow not set or null";
|
||||
}
|
||||
}
|
@ -0,0 +1,158 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://lxqt.org
|
||||
*
|
||||
* Copyright: 2014 LXQt team
|
||||
* Authors:
|
||||
* Luís Pereira <luis.artur.pereira@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 LXQTSINGLEAPPLICATION_H
|
||||
#define LXQTSINGLEAPPLICATION_H
|
||||
|
||||
#include "lxqtapplication.h"
|
||||
|
||||
class QWidget;
|
||||
|
||||
namespace LxQt {
|
||||
|
||||
/*! \class SingleApplication
|
||||
* \brief The SingleApplication class provides an single instance Application.
|
||||
*
|
||||
* This class allows the user to create applications where only one instance
|
||||
* is allowed to be running at an given time. If the user tries to launch
|
||||
* another instance, the already running instance will be activated instead.
|
||||
*
|
||||
* The user has to set the activation window with setActivationWindow. If it
|
||||
* doesn't the second instance will quietly exit without activating the first
|
||||
* instance window. In any case only one instance is allowed.
|
||||
*
|
||||
* This classes depends uses D-Bus and KF5::WindowSystem
|
||||
*
|
||||
* \code
|
||||
*
|
||||
* // Original code
|
||||
* int main(int argc, char **argv)
|
||||
* {
|
||||
* LxQt::Application app(argc, argv);
|
||||
*
|
||||
* MainWidget w;
|
||||
* w.show();
|
||||
*
|
||||
* return app.exec();
|
||||
* }
|
||||
*
|
||||
* // SingleApplication code
|
||||
* int main(int argc, char **argv)
|
||||
* {
|
||||
* LxQt::SingleApplication app(argc, argv);
|
||||
*
|
||||
* MainWidget w;
|
||||
* app.setActivationWindow(&w);
|
||||
* w.show();
|
||||
*
|
||||
* return app.exec();
|
||||
* }
|
||||
* \endcode
|
||||
* \sa SingleApplication
|
||||
*/
|
||||
|
||||
class LXQT_API SingleApplication : public Application {
|
||||
Q_OBJECT
|
||||
Q_ENUMS(StartOptions)
|
||||
|
||||
public:
|
||||
/*!
|
||||
* \brief Options to control the D-Bus failure related application behaviour
|
||||
*
|
||||
* By default (ExitOnDBusFailure) if an instance can't connect to the D-Bus
|
||||
* session bus, that instance calls ::exit(1). Not even the first instance
|
||||
* will run. Connecting to the D-Bus session bus is an condition to
|
||||
* guarantee that only one instance will run.
|
||||
*
|
||||
* If an user wants to allow an application to run without D-Bus, it must
|
||||
* use the NoExitOnDBusFailure option.
|
||||
*
|
||||
* ExitOnDBusFailure is the default.
|
||||
*/
|
||||
enum StartOptions {
|
||||
/** Exit if the connection to the D-Bus session bus fails.
|
||||
* It's the default
|
||||
*/
|
||||
ExitOnDBusFailure,
|
||||
/** Don't exit if the connection to the D-Bus session bud fails.*/
|
||||
NoExitOnDBusFailure
|
||||
};
|
||||
|
||||
/*!
|
||||
* \brief Construct a LxQt SingleApplication object.
|
||||
* \param argc standard argc as in QApplication
|
||||
* \param argv standard argv as in QApplication
|
||||
* \param options Control the on D-Bus failure application behaviour
|
||||
*
|
||||
* \sa StartOptions.
|
||||
*/
|
||||
SingleApplication(int &argc, char **argv, StartOptions options = ExitOnDBusFailure);
|
||||
virtual ~SingleApplication();
|
||||
|
||||
/*!
|
||||
* \brief Sets the activation window.
|
||||
* \param w activation window.
|
||||
*
|
||||
* Sets the activation window of this application to w. The activation
|
||||
* window is the widget that will be activated by \a activateWindow().
|
||||
*
|
||||
* \sa activationWindow() \sa activateWindow();
|
||||
*/
|
||||
void setActivationWindow(QWidget *w);
|
||||
|
||||
/*!
|
||||
* \brief Gets the current activation window.
|
||||
* \return The current activation window.
|
||||
*
|
||||
* \sa setActivationWindow();
|
||||
*/
|
||||
QWidget *activationWindow() const;
|
||||
|
||||
public Q_SLOTS:
|
||||
/*!
|
||||
* \brief Activates this application activation window.
|
||||
*
|
||||
* Changes to the desktop where this applications is. It then de-minimizes,
|
||||
* raises and activates the application's activation window.
|
||||
* If no activation window has been set, this function does nothing.
|
||||
*
|
||||
* \sa setActivationWindow();
|
||||
*/
|
||||
void activateWindow();
|
||||
|
||||
private:
|
||||
QWidget *mActivationWindow;
|
||||
};
|
||||
|
||||
#if defined(lxqtSingleApp)
|
||||
#undef lxqtSingleApp
|
||||
#endif
|
||||
#define lxqtSingleApp (static_cast<LxQt::SingleApplication *>(qApp))
|
||||
|
||||
}; // namespace LxQt
|
||||
|
||||
#endif // LXQTSINGLEAPPLICATION_H
|
@ -0,0 +1,159 @@
|
||||
#include "lxqttranslator.h"
|
||||
#include <QTranslator>
|
||||
#include <QLocale>
|
||||
#include <QDebug>
|
||||
#include <QCoreApplication>
|
||||
#include <QLibraryInfo>
|
||||
#include <QStringList>
|
||||
#include <QStringBuilder>
|
||||
#include <QFileInfo>
|
||||
|
||||
#include <XdgDirs>
|
||||
|
||||
using namespace LxQt;
|
||||
|
||||
bool translate(const QString &name, const QString &owner = QString());
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QStringList *getSearchPaths()
|
||||
{
|
||||
static QStringList *searchPath = 0;
|
||||
|
||||
if (searchPath == 0)
|
||||
{
|
||||
searchPath = new QStringList();
|
||||
*searchPath << QString(LXQT_SHARE_TRANSLATIONS_DIR);
|
||||
*searchPath << XdgDirs::dataDirs(LXQT_RELATIVE_SHARE_TRANSLATIONS_DIR);
|
||||
searchPath->removeDuplicates();
|
||||
}
|
||||
|
||||
return searchPath;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
QStringList LxQt::Translator::translationSearchPaths()
|
||||
{
|
||||
return *(getSearchPaths());
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
void Translator::setTranslationSearchPaths(const QStringList &paths)
|
||||
{
|
||||
QStringList *p = getSearchPaths();
|
||||
p->clear();
|
||||
*p << paths;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
bool translate(const QString &name, const QString &owner)
|
||||
{
|
||||
QString locale = QLocale::system().name();
|
||||
QTranslator *appTranslator = new QTranslator(qApp);
|
||||
|
||||
QStringList *paths = getSearchPaths();
|
||||
foreach(QString path, *paths)
|
||||
{
|
||||
QStringList subPaths;
|
||||
|
||||
if (!owner.isEmpty())
|
||||
{
|
||||
subPaths << path % QChar('/') % owner % QChar('/') % name;
|
||||
}
|
||||
else
|
||||
{
|
||||
subPaths << path % QChar('/') % name;
|
||||
subPaths << path;
|
||||
}
|
||||
|
||||
foreach(QString p, subPaths)
|
||||
{
|
||||
if (appTranslator->load(name + "_" + locale, p))
|
||||
{
|
||||
QCoreApplication::installTranslator(appTranslator);
|
||||
return true;
|
||||
}
|
||||
else if (locale == QLatin1String("C") ||
|
||||
locale.startsWith(QLatin1String("en")))
|
||||
{
|
||||
// English is the default. Even if there isn't an translation
|
||||
// file, we return true. It's translated anyway.
|
||||
delete appTranslator;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If we got here, no translation was loaded. appTranslator has no use.
|
||||
delete appTranslator;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
bool Translator::translateApplication(const QString &applicationName)
|
||||
{
|
||||
QString locale = QLocale::system().name();
|
||||
QTranslator *qtTranslator = new QTranslator(qApp);
|
||||
|
||||
if (qtTranslator->load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
|
||||
{
|
||||
qApp->installTranslator(qtTranslator);
|
||||
}
|
||||
else
|
||||
{
|
||||
delete qtTranslator;
|
||||
qWarning("LxQt::Translator: Qt translations not found");
|
||||
}
|
||||
|
||||
if (!applicationName.isEmpty())
|
||||
return translate(applicationName);
|
||||
else
|
||||
return translate(QFileInfo(QCoreApplication::applicationFilePath()).baseName());
|
||||
}
|
||||
|
||||
|
||||
/************************************************
|
||||
|
||||
************************************************/
|
||||
bool Translator::translateLibrary(const QString &libraryName)
|
||||
{
|
||||
static QSet<QString> loadedLibs;
|
||||
|
||||
if (loadedLibs.contains(libraryName))
|
||||
return true;
|
||||
|
||||
loadedLibs.insert(libraryName);
|
||||
|
||||
return translate(libraryName);
|
||||
}
|
||||
|
||||
bool Translator::translatePlugin(const QString &pluginName, const QString& type)
|
||||
{
|
||||
static QSet<QString> loadedPlugins;
|
||||
|
||||
QString fullName = type % QChar('/') % pluginName;
|
||||
if (loadedPlugins.contains(fullName))
|
||||
return true;
|
||||
|
||||
loadedPlugins.insert(pluginName);
|
||||
return translate(pluginName, type);
|
||||
}
|
||||
|
||||
static void loadSelfTranslation()
|
||||
{
|
||||
Translator::translateLibrary(QLatin1String("liblxqt"));
|
||||
}
|
||||
|
||||
Q_COREAPP_STARTUP_FUNCTION(loadSelfTranslation)
|
@ -0,0 +1,72 @@
|
||||
/* BEGIN_COMMON_COPYRIGHT_HEADER
|
||||
* (c)LGPL2+
|
||||
*
|
||||
* LXQt - a lightweight, Qt based, desktop toolset
|
||||
* http://razor-qt.org
|
||||
*
|
||||
* Copyright: 2013 LXQt team
|
||||
* Authors:
|
||||
* Alexander Sokoloff <sokoloff.a@gmail.com>
|
||||
Luís Pereira <luis.artur.pereira@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 LXQTTRANSLATOR_H
|
||||
#define LXQTTRANSLATOR_H
|
||||
|
||||
#include <QStringList>
|
||||
#include "lxqtglobals.h"
|
||||
|
||||
namespace LxQt
|
||||
{
|
||||
/**
|
||||
The Translator class provides internationalization support for application and librarioes.
|
||||
**/
|
||||
class LXQT_API Translator
|
||||
{
|
||||
public:
|
||||
/**
|
||||
Returns a list of paths that the application will search translations files.
|
||||
**/
|
||||
static QStringList translationSearchPaths();
|
||||
|
||||
/**
|
||||
Sets the list of directories to search translations. All existing paths
|
||||
will be deleted and the path list will consist of the paths given in paths.
|
||||
**/
|
||||
static void setTranslationSearchPaths(const QStringList &paths);
|
||||
|
||||
/**
|
||||
Loads translations for application. If applicationName is not specified,
|
||||
then basename of QCoreApplication::applicationFilePath() is used.
|
||||
Returns true if the translation is successfully loaded; otherwise returns false.
|
||||
**/
|
||||
static bool translateApplication(const QString &applicationName = QString());
|
||||
|
||||
/**
|
||||
Loads translations for application. If applicationName is not specified,
|
||||
then basename of QCoreApplication::applicationFilePath() is used.
|
||||
Returns true if the translation is successfully loaded; otherwise returns false.
|
||||
**/
|
||||
static bool translateLibrary(const QString &libraryName = QString());
|
||||
|
||||
static bool translatePlugin(const QString &pluginName, const QString& type);
|
||||
};
|
||||
|
||||
} // namespace LxQt
|
||||
#endif // LXQTTRANSLATOR_H
|
@ -0,0 +1,333 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="cs">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Přidat přídavné moduly</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Hledat:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Přidat přídavný modul</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Zavřít</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialog</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Verze: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Pokročilé, snadno se používající a rychlé pracovní prostředí založené na technologiích Qt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Autorské právo: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Domovská stránka: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Licence: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt je přeložen do mnoha jazyků díky práci překladatelských týmů z celého světa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Ano</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Ne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>Nástroje LxQt Desktop - Technické informace</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Verze</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Ladicí sestavení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Nastavení systému</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Sdílený adresář</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Překlady</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Uživatelské adresáře</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Domovská složka pro data Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Domovská složka pro nastavení Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Adresáře pro data Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Domovská složka pro vyrovnávací paměť Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Domovská složka pro čas běhu Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Adresáře pro automatické spuštění Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Domovská složka pro automatické spuštění Xdg</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">Chyba ve správě energie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Hibernace se nezdařila.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Záloha oznamování</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Uspat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Restartovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Vypnout</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Odhlásit se</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Pozastavení sezení LxQtu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Opravdu chcete uspat svůj počítač?<p>Uvede počítač do stavu s nízkým odběrem elektrické energie. Stav systému není při ztrátě energie zachován.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Zazimování sezení LxQtu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Opravdu chcete zazimovat svůj počítač?<p>Uvede počítač do stavu s nízkým odběrem elektrické energie. Stav systému je při ztrátě energie zachován.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Spuštění sezení LxQtu znovu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Opravdu chcete spustit svůj počítač znovu?<p>Všechna neuložená práce bude ztracena...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Vypnutí sezení LxQtu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Opravdu chcete vypnout svůj počítač?<p>Všechna neuložená práce bude ztracena...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Odhlášení sezení LxQtu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Opravdu se chcete odhlásit?<p>Všechna neuložená práce bude ztracena...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Chyba ve správě energie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Hibernace se nezdařila.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Uspání se nezdařilo.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Zamknout obrazovku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Chyba při zapínání šetřiče obrazovky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensavernelze spustit kvůli jeho pádu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensaver není nainstalován správně.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensaver nelze spustit.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. Chybná skladba v argumentech xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. Ujistěte se, že máte xdg-screensaver nainstalován a že běží.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. Krok "zapnutí" se nezdařil. Ujistěte se, že máte xdg-screensaver nainstalován a že běží.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Během spouštění spořiče obrazovky se vyskytla chyba. Neznámá chyba - nezdokumentovaná vrácená hodnota od xdg-screensaver=%1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Smazat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Žádný</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Chyba správce energie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface je neplatné</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Chyba správce energie (volání D-BUS)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>O prostředí LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Autoři</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Poděkování</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Překlady</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Technické informace</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="cs_CZ">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Přidat přídavné moduly</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Hledat:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Přidat přídavný modul</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Zavřít</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialog</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Verze: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Pokročilé, snadno se používající a rychlé pracovní prostředí založené na technologiích Qt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Autorské právo: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Domovská stránka: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Licence: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt je přeložen do mnoha jazyků díky práci překladatelských týmů z celého světa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Ano</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Ne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>Nástroje LxQt Desktop - Technické informace</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Verze</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Ladicí sestavení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Nastavení systému</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Sdílený adresář</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Překlady</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Uživatelské adresáře</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Domovská složka pro data Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Domovská složka pro nastavení Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Adresáře pro data Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Domovská složka pro vyrovnávací paměť Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Domovská složka pro čas běhu Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Adresáře pro automatické spuštění Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Domovská složka pro automatické spuštění Xdg</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">Chyba ve správě energie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Hibernace se nezdařila.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Záloha oznamování</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Uspat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Restartovat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Vypnout</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Odhlásit se</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Pozastavení sezení LxQtu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Opravdu chcete uspat svůj počítač?<p>Uvede počítač do stavu s nízkým odběrem elektrické energie. Stav systému není při ztrátě energie zachován.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Zazimování sezení LxQtu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Opravdu chcete zazimovat svůj počítač?<p>Uvede počítač do stavu s nízkým odběrem elektrické energie. Stav systému je při ztrátě energie zachován.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Spuštění sezení LxQtu znovu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Opravdu chcete spustit svůj počítač znovu?<p>Všechna neuložená práce bude ztracena...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Vypnutí sezení LxQtu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Opravdu chcete vypnout svůj počítač?<p>Všechna neuložená práce bude ztracena...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Odhlášení sezení LxQtu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Opravdu se chcete odhlásit?<p>Všechna neuložená práce bude ztracena...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Chyba ve správě energie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Hibernace se nezdařila.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Uspání se nezdařilo.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Zamknout obrazovku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Chyba při zapínání šetřiče obrazovky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensavernelze spustit kvůli jeho pádu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensaver není nainstalován správně.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensaver nelze spustit.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. Chybná skladba v argumentech xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. Ujistěte se, že máte xdg-screensaver nainstalován a že běží.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Při spouštění šetřiče obrazovky se vyskytla chyba. Krok "zapnutí" se nezdařil. Ujistěte se, že máte xdg-screensaver nainstalován a že běží.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Během spouštění spořiče obrazovky se vyskytla chyba. Neznámá chyba - nezdokumentovaná vrácená hodnota od xdg-screensaver=%1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Smazat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Žádný</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Chyba správce energie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface je neplatné</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Chyba správce energie (volání D-BUS)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>O prostředí LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Autoři</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Poděkování</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Překlady</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Technické informace</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,333 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="da">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="da_DK">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Tilføj plugins</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Søg:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Tilføj plugin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Afslut</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialog</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Version: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Avanceret, nem at bruge, hurtigt skrivebordsmiljø baseret på Qt teknologier.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Copyright: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Hjemmeside: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Licens: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt er oversat til mange sprog takket være oversættere fra hele verden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Nej</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>LxQt Desktop Værktøjskasse - Teknisk Information</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Fejlsøgningsversion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Systemindstillinger</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Delt Katalog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Oversættelser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Bruger Biblioteker</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Xdg Brugerdata Katalog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Xdg Konfigurationsdata Katalog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Xdg Data Kataloger</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Xdg Cache Katalog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Xdg udførselskatalog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Xdg Autostart Katalog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Xdg Autostart Hjemmekatalog</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">LxQt Strømstyringsfejl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Dvaletilstand mislykkedes.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Alternativ Påmindelse</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Dvale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Slumre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Genstart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Luk ned</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Log ud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>LxQt Session Slumre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Vil du virkelig sætte din computer i slumretilstand?<p>Slumretilstand sætter computeren i energispare tilstand. Systemtilstanden mistes hvis strømmen forsvinder.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>LxQt Session Dvale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Vil du virkelig sætte din computer i dvaletilstand?<p>Dvaletilstand sætter computeren i energispare tilstand. Systemtilstanden bibeholdes hvis strømmen forsvinder.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>LxQt Session Genstart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Vil du virkelig genstarte din computer? Alt arbejde der ikke er blevet gemt, vil gå tabt...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>LxQt Session Luk Ned</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Vil du virkelig slukke din computer? Alt arbejde der ikke er blevet gemt, vil gå tabt...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>LxQt Session Log Ud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Vil du virkelig logge ud? Alt arbejde der ikke er blevet gemt, vil gå tabt...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>LxQt Strømstyringsfejl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Dvaletilstand mislykkedes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Slumretilstand mislykkedes.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Lås Skærm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Fejl ved aktivering af pauseskærm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Fejl ved start af screensaver. xdg-pauseskærm kan ikke starte på grund af nedbrud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Fejl ved start af screensaver. xdg-pauseskærm er ikke korrekt installeret.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Fejl ved start af screensaver. xdg-pauseskærm kan ikke starte.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Fejl ved start af screensaver. Syntaksfejl i argumenter til xdg-pauseskærm.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Fejl ved start af screensaver. Sørg for at du har xscreensaver installeret og kørende.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Fejl ved start af screensaver. Handling 'aktivere' mislykkedes. Sørg for at du har xscreensaver installeret og kørende.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>En fejl opstod ved start af pauseskærm. Ukendt fejl - udokumenteret returværdi sendt fra xdg-screensaver=%1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Rens</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Ingen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Strømstyrings fejl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface er ugyldig</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Strømstyrings fejl (D-BUS kald)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation> Om LXQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Omkring</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Forfattere</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Tak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Oversættelser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Teknisk Information</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,349 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="de">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Plugins hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Suchen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation>Element hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Plugin hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Schließen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialog</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Version: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Fortgeschrittene, leicht zu bedienende und schnelle Desktopumgebung, basierend auf Qt-Technologien.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>LXQt wäre nicht ohne das <a %1>Razor-qt</a>-Projekt und seine vielen Mitwirkenden möglich gewesen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Urheberrecht: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Internetseite: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Lizenz: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation>LXQt wird vom <a %1>LXQt Team und Mitwirkenden</a> entwickelt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation>Wenn Sie an der Mitarbeit in unserem Entwicklungsteam interessiert sind, <a %1>treten Sie uns bei</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation>Besonderen Dank an:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt wird dank der Arbeit unseres über die ganze Welt verteilten Übersetzungsteams in viele Sprachen übersetzt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Nein</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation>(%1 aktiv)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Fehler der LXQt-Energieverwaltung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Tiefschlaf fehlgeschlagen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Ersatzbenachrichtigung</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Tiefschlaf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Bereitschaft</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Neustart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Herunterfahren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Abmelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>LXQt Bereitschaft</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Möchten Sie ihren Computer in Bereitschaft versetzen?<p>Dies versetzt ihren Computer in einen Energiesparmodus. Der Systemzustand geht verloren, wenn die Energiezufuhr abbricht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>LXQT Tiefschlaf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Möchten Sie ihren Computer in Tiefschlaf versetzen?<p>Dies versetzt ihren Computer in einen Energiesparmodus. Der Systemzustand bleibt erhalten, wenn die Energiezufuhr abbricht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>LXQt Neustart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Möchten Sie ihren Computer wirklich neustarten? Alle ungespeicherten Arbeiten gehen verloren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>LXQt Herunterfahren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Möchten Sie ihren Computer wirklich herunterfahren? Alle ungespeicherten Arbeiten gehen verloren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>LXQt Abmelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Möchten Sie sich wirklich abmelden? Alle ungespeicherten Arbeiten gehen verloren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Fehler der LXQt-Energieverwaltung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Tiefschlaf fehlgeschlagen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Bereitschaft fehlgeschlagen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Bildschirm sperren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Fehler beim Aktivieren des Bildschirmschoners</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. xdg-screensaver kann wegen seines Absturzes nicht gestartet werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. xdg-screensaver ist nicht korrekt installiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. xdg-screensaver kann nicht gestartet werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. Syntaxfehler in den Parametern für xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. Bitte stellen Sie sicher, dass xscreensaver installiert ist und funktioniert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. Aktion 'aktivieren' fehlgeschlagen. Bitte stellen Sie sicher, dass xscreensaver installiert ist und funktioniert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. Unbekannter Fehler - ein undokumentierter Rückgabewert wurde von xdg-screensaver ausgegeben=%1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Fehler der Energieverwaltung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface ist ungültig</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Fehler der Energieverwaltung (D-BUS-Aufruf)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>Über LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Über</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Programmierer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Danksagungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Übersetzungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Technische Hinweise</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation>In Zwischenablage kopieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="de_DE">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Plugins hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Suchen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Plugin hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Schließen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialog</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Version: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Moderne, benutzerfreundliche und schnelle Arbeitsumgebung aufbauend auf Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Copyright: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Homepage: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Lizenz: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt ist in vielen Sprachen verfügbar dank der Arbeit von Übersetzung-Teams aus der ganzen Welt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Nein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>LxQt Desktop Toolbox - Technische Info</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Debug Build</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">System Konfiguration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Freigegebenes Verzeichnis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Übersetzung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Benutzer Verzeichnisse</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Xdg Daten Pfad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Xdg Konfigurations Pfad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Xdg Daten Verzeichnisse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Xdg Cache Pfad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Xdg Laufzeit Pfad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Xdg Autostart Verzeichnisse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Xdg Autostart Pfad</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">LxQt Energieverwalter Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Ruhestand fehlgeschlagen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Benachrichtigungs Rückgriff</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Ruhezustand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Energie sparen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Neustart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Herunterfahren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Abmelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>LxQt Sitzung Energie sparen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Wollen sie wirklich Ihren Computer in den Energiesparmodus schicken?<p>Schickt den Computer in einen Energiesparmodus. Der Zustand des Systems geht verloren, wenn die Energieversorgung ausfällt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>LxQt Sitzung Ruhestand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Wollen Sie Ihren Computer wirklich in den Ruhestand setzten?<p>Schickt den Computer in einen Ernergiesparmodus. Der Stand des Systems ist gesichert, falls die Energieversorgung ausfällt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>LxQt Sitzung Neustart</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Wollten Sie Ihren Computer wirklich neustarten? Alle ungespeicherten Arbeiten gehen verloren ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>LxQt Sitzung Herunterfahren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Wollten Sie Ihren Computer wirklich herunterfahren? Alle ungespeicherten Arbeiten gehen verloren ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>LxQt Sitzung Abmelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Wollten Sie sich wirklich abmelden? Alle ungespeicherten Arbeiten gehen verloren ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>LxQt Energieverwalter Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Ruhestand fehlgeschlagen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Energiesparmodus fehlgeschlagen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Bildschirm sperren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Bildschirmschoner Aktivierungs Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Es ist ein Fehler beim Starten des Bildschirmschoners aufgetreten. xdg-screensaver kann wegen einem Crash nicht gestartet werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Es ist ein Fehler beim Starten des Bildschirmschoners aufgetreten. xgd-screensaver ist nicht korrekt installiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Es ist ein Fehler beim Starten des Bildschirmschoners aufgetreten. xdg-screensaver kann nicht gestartet werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Es ist ein Fehler beim Startem des Bildschirmschoners aufgetreten. Syntaxfehler in Argumenten von xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Es ist ein Fehler beim Starten des Bildschirmschoners aufgetreten. Stelle sicher, dass xscreensaver installiert ist und ausgeführt wird.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Es ist ein Fehler beim Starten des Bildschirmschoners aufgetreten. Die Aktion 'aktivieren' schlug fehl. Stelle sicher, dass xscreensaver installiert ist und ausgeführt wird.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. Unbekannter Fehler - undokumentierter Rückgabewert von xdg-screensaver=%1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Säubern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Kein</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Energie Manager Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface ist ungültig</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Power Manager-Fehler (D-BUS call)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>Über LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Über</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Authoren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Danke</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Übersetzung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Technische Informationen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,360 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="eo">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Aldoni kromprogramojn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Serĉi:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Aldoni kromprogramon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Fermi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialogo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Jes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Ne</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Pasivumigo fiaskis.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Pasivumigi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Prokrasti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Restartigi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Elŝalti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Elsaluti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Pasivumigo fiaskis.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Prokrasto fiaskis.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Ŝlosi ekranon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Vakigi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Nenio</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface nevalidas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation> Pri LxQto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Pri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Teknikaj informoj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="es">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Añadir extensiones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Buscar:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Añadir extensión</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Cerrar</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialogo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Versión %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Avanzado, fácil de usar y rápido entorno de escritorio basado en tecnologías Qt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Copyright: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Página principal: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Licencia: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt es traducido a muchos idiomas gracias a la labor de los equipos de traducción en todo el mundo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Si</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">No</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>Caja de herramientas del Escritorio LXQt - Información técnica</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Versión</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Construcción con símbolos de depuración</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Configuración del Sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Directorio compartido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Traducciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Directorios de usuario</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Xdg Datos de inicio de usuario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Xdg Configuración de inicio del usuario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Xdg Directorios de datos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Xdg Cache de inicio de usuario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Xdg Inicio de ejecución de usuario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Xdg Directorio de inicio automático</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Xdg Directorio de usuario de inicio automático</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">Error del gestor de energía de LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Hibernación fallida.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Notificaciones de retorno</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Suspender</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Reiniciar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Apagar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Cerrar sesión</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Suspender sesión LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>¿Realmente desdea suspender su PC?<p>Suspende la PC a un estado de bajo consumo. El estado del sistema no se preserva si se agota la energía.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Hibernar la sesión LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>¿Realmente desea hibernar su PC?<p>Hiberna la PC a un estado de bajo consumo. El estado del sistema se preserva si se agota la energía.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Reiniciar la sesión LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>¿Realmente desea reiniciar su PC? Todo el trabajo sin guardar se perderá...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Apagar la sesión LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>¿Realmente desea apagar su PC? Todo el trabajo sin guardar se perderá...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Cerrar la sesión LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>¿Realmente desea cerrar la sesión? Todo el trabajo sin guardar se perderá...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Error del gestor de energía de LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Hibernación fallida.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Suspensión fallida.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Bloquear pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Error de activación del protector de pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Ocurrió un error al iniciar el protector de pantalla. xdg-screensaver no puede iniciar debido a un error.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Ocurrió un error al iniciar el protector de pantalla. xdg-screensaver no está correctamente instalado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Ocurrió un error al iniciar el protector de pantalla. xdg-screensaver no puede iniciar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Ocurrió un error al iniciar el protector de pantalla. Error de sintaxis en los argumentos de xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Ocurrió un error al iniciar el protector de pantalla. Asegúrese de tener xdg-screensaver instalado y ejecutándose.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Ocurrió un error al iniciar el protector de pantalla. La acción 'activate' falló. Asegúrese de tener xdg-screensaver instalado y ejecutándose.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Ocurrio un error al inicio el protector de pantalla. Error desconocido - valor de retorno de xdg-screensaver no documentado=%1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Limpiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Ninguno</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Error del administrador de energía</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface es inválido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Error en el adminstrador de energía (llamado D-BUS)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>Acerca de LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Acerca</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Autores</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Gracias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Traducciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Información Técnica</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="es_VE">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Agregar plugins</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Buscar:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Agregar plugin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Cerrar</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialogo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Version: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Avanzado, facil de usar, rapido entorno de escritorio basado en tecnologia QT.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Copyright: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>pagina web: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Licencia: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt es traducido en muchos lenguajes gracias al trabajo de traductores en todo el mundo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Si</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">No</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>Utilidad de Escritorio LXQt - Informacion</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Debug Build</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Configuracion del sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Directorio de Data</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Traducciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Directorio de usuario</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Xdg Data Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Xdg Config Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Xdg Data Dirs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Xdg Cache Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Xdg Runtime Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Xdg Autostart Dirs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Xdg Autostart Home</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">Error en Gestion de energia de LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Hibernacion ha fallado.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Delegacion de notificaciones</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Suspender</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Reiniciar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Apagar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Salirse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Suspension del sistema por LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Quiere usted realmente suspender su computador?<p>Suspendera el computador en un estado de baja energia. El estado del sistema operativo no se preservara ante la perdida o caida de energia.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Hibernacion del sistema por LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Quiere usted realmente hibernar su computador?<p>Hibernara el computador en un estado de baja energia y lo guardara en el disco. El estado del sistema si se preservara ante la perdida o caida de energia.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Reinicio del sistema por LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Quiere usted realmente reiniciar su computador? Todo el trabajo realizado se perdera si no lo ha guardado, dado que se cerrara...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Apagado del sistema por LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Quiere usted realmente apagar su computador?<p> Todo el trabajo realizado se perdera si no lo ha guardado, dado que se apagara...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Cierre de la sesion por LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Quiere realmente cerar su sesion? Todo el trabajo realizado se perdera si no lo ha guardado, dado que se cerrara...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Error en Gestion de energia de LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Hibernacion ha fallado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Suspensión ha fallado.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Bloquear Pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Activacion de salvapantallas erronea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Un error ha ocurrido al iniciar el salvapantallas. xdg-screensaver no puede iniciarlo debido a un fallo grave.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Un error ha ocurridoal iniciar el salvapantallas. xdg-screensaver no esta instalado correctamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Un error ha ocurridoal iniciar el salvapantallas. xdg-screensaver no puede iniciarse.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Un error ha ocurridoal iniciar el salvapantallas. Error en argumentos dados a xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Un error ha ocurridoal iniciar el salvapantallas. Asegurate tengas el xscreensaver instalado y ejecutandose.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Un error ha ocurridoal iniciar el salvapantallas. Accion 'activate' fallida. Asegurate tengas xscreensaver instalado y corriendo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Un error ocurrio iniciando el salvapantallas. Desconocido - valor retornado indocumentado desde xdg-screensaver=%1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Limpiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Nada</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Error del manejador de energia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>La interfaz Dbus Qt es invalida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Error del manejador de energia (llamada Dbus)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>Acerca de LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Acerca</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Autores</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Agradecimientos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Traducciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Informacion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="eu">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Gehitu pluginak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Bilatu:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Gehitu plugina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Itxi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Elkarrizketa-koadroa</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Bertsioa: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Qt teknologietan oinarritutako mahaigain-ingurune aurreratu, erabilerraz eta azkarra.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Copyright-a: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Webgunea: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Lizentzia: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt hainbat hizkuntzetara itzulita dago mundu osoko itzulpen-taldeen lanari esker.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Bai</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Ez</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>LxQt mahaigainaren tresna-jokoa - Informazio teknikoa</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Bertsioa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Arazteko eraikitzea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Sistemaren konfigurazioa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Partekatu direktorioa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Itzulpenak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Erabiltzailearen direktorioak</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Xdg datuen etxea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Xdg konfigurazioen etxea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Xdg datuen direktorioak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Xdg cache-aren etxea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Xdg exekuzio-denborako etxea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Xdg autoabioaren direktorioak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Xdg autoabioaren etxea</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">LxQt energia-kudeatzailearen errorea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Hibernatzeak huts egin du.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Ordezko jakinarazpenak</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernatu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Eseki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Berrabiarazi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Itzali</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Amaitu saioa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>LxQt saioa eseki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Ziur zaude ordenagailua eseki nahi duzula?<p>Energia baxuko egoera batetara esekitzen du ordenagailua. Sistemaren egoera ez da mantentzen korrontea eteten bada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>LxQt saioa hibernatu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Ziur zaude ordenagailua hibernatu nahi duzula?<p>Energia baxuko egoera batetara hibernatzen du ordenagailua. Sistemaren egoera mantentzen da korrontea eteten bada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>LxQt saioa berrabiarazi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Ziur zaude ordenagailua berrabiarazi nahi duzula? Gorde gabeko lan guztiak galduko dira...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>LxQt saioa itzali</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Ziur zaude ordenagailua itzali nahi duzula? Gorde gabeko lan guztiak galduko dira...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>LxQt saioa amaitu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Ziur zaude saioa amaitu nahi duzula? Gorde gabeko lan guztiak galduko dira...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>LxQt energia-kudeatzailearen errorea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Hibernatzeak huts egin du.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Esekitzeak huts egin du.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Blokeatu pantaila</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Pantaila-babeslearen aktibatze-errorea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Errore bat gertatu da pantaila-babeslea abiaraztean. Ezin da xdg-screensaver abiarazi kraskatzea dela eta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Errore bat gertatu da pantaila-babeslea abiaraztean. xdg-screensaver ez dago behar bezala instalatuta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Errore bat gertatu da pantaila-babeslea abiaraztean. Ezin da xdg-screensaver abiarazi. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Errore bat gertatu da pantaila-babeslea abiaraztean. Sintaxi-errore bat dago xdg-screensaver-en argumentuetan.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Errore bat gertatu da pantaila-babeslea abiaraztean. Ziurtatu xdg-screensaver instalatuta eta martxan dagoela. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Errore bat gertatu da pantaila-babeslea abiaraztean. 'Aktibatu' ekintzak huts egin du. Ziurtatu xdg-screensaver instalatuta eta martxan dagoela. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Errore bat gertatu da pantaila-babeslea abiaraztean. Errore ezezaguna - dokumentatu gabeko balioa itzuli du xdg-screensaver-ek: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Garbitu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Bat ere ez</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Energia-kudeatzailearen errorea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface baliogabea da</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Energia-kudeatzailearen errorea (D-BUS deia)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>LxQt-i buruz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Honi buruz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Egileak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Eskerrak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Itzulpenak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Informazio teknikoa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,369 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="fi">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Lisää liitännäisiä</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Etsi:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Lisää liitännäinen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Sulje</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Ikkuna</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Versio: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Tekijänoikeus: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Verkkosivusto: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Lisenssi: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Kyllä</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Ei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Versio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Käännökset</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">LxQtin virranhallintavirhe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Lepotilaan siirtyminen epäonnistui.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Lepotila</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Valmiustila</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Käynnistä uudelleen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Sammuta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Kirjaudu ulos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Haluatko varmasti käynnistää tietokoneen uudelleen? Kaikki tallentamaton tieto menetetään...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>LxQt-istunnon sammutus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Haluatko varmasti sammuttaa tietokoneen? Kaikki tallentamaton tieto menetetään...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>LxQt-istunnon uloskirjaus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Haluatko varmasti kirjautua ulos? Kaikki tallentamaton tieto menetetään...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>LxQtin virranhallintavirhe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Lepotilaan siirtyminen epäonnistui.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Valmiustilaan siirtyminen epäonnistui.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Lukitse näyttö</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Näytönsäästäjän käynnistysvirhe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Näytönsäästäjää käynnistäessä ilmeni virhe. Näytönsäästäjää xdg-screensaver ei voi käynnistää, koska se kaatui.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Näytönsäästäjää käynnistäessä ilmeni virhe. Näytönsäästäjän xdg-screensaver asennus ei ole kunnossa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Näytönsäästäjää käynnistäessä ilmeni virhe. Näytönsäästäjää xdg-screensaver ei voi käynnistää.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Näytönsäästäjää käynnistäessä ilmeni virhe. Varmista, että xscreensaver on asennettu ja että se on toiminnassa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Näytönsäästäjää käynnistäessä ilmeni virhe. Toiminto 'activate' epäonnistui. Varmista, että xscreensaver on asennettu ja että se on toiminnassa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Tyhjennä</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Virranhallinnan virhe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface on virheellinen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Virranhallinan virhe (D-Bus-kutsu)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>Tietoja LxQtista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Tietoja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Tekijät</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Kiitokset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Käännökset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,360 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="fr_FR">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Ajouter des extensions</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Chercher :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Ajouter l'extension</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Fermer</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialogue</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Oui</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Non</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">Erreur du gestionnaire d'énergie de LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Échec de la mise en hibernation.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hiberner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Suspendre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Redémarrer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Éteindre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Se déconnecter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Suspendre la session LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Voulez-vous vraiment suspendre votre ordinateur?<p>Votre ordinateur consommera un peu d'énergie. L'état du système ne sera pas préservé si l'énergie est perdue.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Mettre la session LxQt en hibernation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Voulez-vous vraiment mettre votre ordinateur en hibernation?<p>Votre ordinateur consommera un peu d'énergie. L'état du système sera préservé si l'énergie est perdue.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Redémarrer la session LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Voulez-vous vraiment redémarrer votre ordinateur? Tout travail non souvegardé sera perdu...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Éteindre la session LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Voulez-vous vraiment éteindre votre ordinateur? Tout travail non souvegardé sera perdu...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Se déconnecter de la session LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Voulez-vous vraiment vous déconnecter? Tout travail non souvegardé sera perdu...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Erreur du gestionnaire d'énergie de LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Échec de la mise en hibernation.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Échec de la suspension.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Vérouiller l'écran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Erreur lors de la mise en veille</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Une erreur est survenue lors du démarrage de l'écran de veille. xdg-screensaver n'a pas pu démarrer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Une erreur est survenue lors du démarrage de l'écran de veille. xdg-screensaver n'est pas installé correctement.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Une erreur est survenue lors du démarrage de l'écran de veille. xdg-screensaver n'a pas pu démarrer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Une erreur est survenue lors du démarrage de l'écran de veille. Les arguments de xdg-screensaver contiennent des erreurs de syntaxe.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Une erreur est survenue lors du démarrage de l'écran de veille. Assurez-vous que screensaver est installé et actif.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Une erreur est survenue lors du démarrage de l'écran de veille. L'action 'activate' a échoué. Assurez-vous que screensaver est installé et actif.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Une erreur s'est produite au lancement de l'économiseur d'écran. Erreur inconnue - valeur retournée par xdg-screensaver=%1 non documentée.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Vider</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Aucun(e)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Erreur du gestionnaire d'énergie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface invalide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Erreur du gestionnaire d'énergie (appel D-BUS)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>À propos de LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>À propos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Informations techniques</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,333 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="hu">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,333 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="ia">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,333 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="id_ID">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernasi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Suspend</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Reboot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Shutdown</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Keluar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="it_IT">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Aggiungi plugin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Cerca:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Aggiungi plugin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Chiudi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Finestra di dialogo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Versione: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Un ambiente desktop veloce, facile da usare e avanzato basato sulle tecnologie Qt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Copyright: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Sito: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Licenza: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt è tradotto in molte lingue grazie al lavoro dei gruppi di traduzione in giro per il mondo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Sì</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">No</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>Strumenti desktop di LXQt - informazioni tecniche</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Versione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Compilazione di debug</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Configurazione del sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Cartella condivisa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Traduzioni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Cartelle dell'utente</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Xdg Data Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Xdg Config Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Xdg Data Dirs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Xdg Cache Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Xdg Runtime Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Xdg Autostart Dirs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Xdg Autostart Home</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">Errore del gestore energetico di LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">L'ibernazione non è riuscita.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Notifiche di riserva</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Ibernazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Sospensione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Riavvia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Spegni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Esci</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Sospendi la sessione di LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Vuoi davvero sospendere il computer?<p>Sospendi il computer in uno stato a minore consumo energetico. Lo stato del sistema non viene preservato se la batteria si esaurisce o il pc non è collegato all'alimentazione.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Iberna la sessione di LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Vuoi davvero ibernare il computer?<p>Iberna il computer in uno stato a minore consumo energetico. Lo stato del sistema non viene preservato se la batteria si esaurisce o il pc non è collegato all'alimentazione.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Riavvia la sessione di LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Vuoi davvero riavviare il computer? Tutto il lavoro non salvato verrà perso...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Spegni la sessione di LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Vuoi davvero spegnere il computer? Tutto il lavoro non salvato verrà perso...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Esci dalla sessione di LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Vuoi davvero chiudere la sessione? Tutto il lavoro non salvato verrà perso...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Errore del gestore energetico di LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>L'ibernazione non è riuscita.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>La sospensione non è riuscita.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Blocca schermo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Errore nell'avvio del salvaschermo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>È avvenuto un errore durante l'avvio del salvaschermo. xdg-screensaver non può essere avviato a causa di un problema dell'applicazione stessa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>È avvenuto un errore durante l'avvio del salvaschermo. xda-screensaver non è installato correttamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>È avvenuto un errore durante l'avvio del salvaschermo. xda-screensaver non può essere avviato.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>È avvenuto un errore durante l'avvio del salvaschermo. Errore di sintassi in xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>È avvenuto un errore durante l'avvio del salvaschermo. Assicurati di avere xscreensaver installato e funzionante.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>È avvenuto un errore durante l'avvio del salvaschermo. L'attivazione non è riuscita, assicurati di avere xscreensaver installato e funzionante.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Si è verificato un errore avviando il salvaschermo. Errore sconosciuto: valore di ritorno non documentato da xdg-screensaver=%1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Pulisci</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Nessuna</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Errore del gestore dell'energia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface non è valida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Errore del gestore dell'energia (chiamata D-BUS)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>Informazioni su LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Informazioni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Autori</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Ringraziamenti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Traduzioni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Informazioni tecniche</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,333 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="ko">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,360 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="lt">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Pridėti priedų</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Ieškoti:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Pridėti priedą</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Uždaryti</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialogas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Taip</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Ne</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">LxQt Energijos Nustatymų Klaida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Nepavyko užmigdymas į fizinę atmintį</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Pranešimų surogatas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Užmigdyti į atminį</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Užmigdyti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Perkrauti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Išjungti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Atsijungti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>LxQt sesijos užmigdymas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Ar tikrai norite užmigdyti kompiuterį? <p>Užmigdo kompiuterį į mažo energijos naudojimo būklę. Sistemos būklė nėra išsaugoma jei nutrūksta energija.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>LxQt sesijos sustabdymas į atmintį.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Ar tikrai norite sustabdyti kompiuterį į atmintį?<p> Sustabdymas į atmintį sustabdo kompiuterį į mažo energijos kiekio sunaudojimo būklę ir jei energija išjungiama sistemos būklė lieka išsaugota</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>LxQt sesijos perkrovimas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Ar tikrai norite perkrauti kompiuterį? Visi neišsaugoti pakeitimai bus prarasti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>LxQt sesijos išjungimas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Ar tikrai norite išjungti kompiuterį? Visi neišsaugoti pakeitimai bus prarasti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>LxQt sesijos atjungimas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Ar tikrai norite atsijungti? Visi neišsaugoti pakeitimai bus prarasti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>LxQt Energijos Nustatymų Klaida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Nepavyko užmigdymas į fizinę atmintį</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Nepavyko užmigdymas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Užrakinti ekraną</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Ekrano užsklandos aktyvavimo klaida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Klaida paleidžiant ekrano užsklandą. xdg-screensaver negali pasileisti, nes nulūžo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Klaida paleidžiant ekrano užsklandą. xdg-screensaver nėra tinkamai įdiegtas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Klaida paleidžiant ekrano užsklandą. xdg-screensaver negali būti paleistas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Klaida paleidžiant ekrano užsklandą. Sintaksės klaida xdg-screensaver argumentuose.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Klaida paleidžiant ekrano užsklandą. Įsitikinkite, ar įdiegtas ir paleistas xscreensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Klaida paleidžiant ekrano užsklandą. Nevyko atlikti veiksmo „activate“. Įsitikinkite, ar įdiegtas ir paleistas xscreensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Išvalyti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Nieko</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Energijos valdymo klaida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface yra netinkamas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Energijos valdymo klaida (D-BUS call)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>Apie LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Apie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Techninė informacija</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,360 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="nl">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Plugins toevoegen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Zoeken:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Plugin toevoegen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Sluiten</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialoog</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Nee</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">LxQt Energiebeheer fout</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">SCHIJF-slaapstand mislukt.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Notificaties terugval</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Slaapstand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Slapen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Herstarten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Afsluiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Afmelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>LxQt Sessie Slapen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Wilt u uw Sessie in RAM slaapstand brengen?<p>Slaat uw sessie op in het RAM geheugen. LET OP! Gegevens gaan verloren tijdens een stroom uitval.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>LxQt Sessie Slaapstand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Wilt u uw Sessie in SCHIJF slaapstand brengen?<p>Slaat uw sessie op in een bestand op uw Schijf. Gegevens gaan NIET verloren tijdens een stroom uitval.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>LxQt Sessie Herstarten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Wilt u uw computer herstarten? LET OP! Niet opgeslagen gegevens gaan verloren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>LxQt Sessie Afsluiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Wilt u uw computer Afsluiten? LET OP! Niet opgeslagen gegevens gaan verloren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>LxQt Sessie Afmelden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Wilt u uw sessie beeindigen? LET OP! Niet opgeslagen gegevens gaan verloren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>LxQt Energiebeheer fout</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>SCHIJF-slaapstand mislukt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>RAM-slaapstand mislukt.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Scherm Vergrendelen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Schermbeveiliging Activering fout</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Fout tijdens het starten van de schermbeveiliging. xdg-schermbeveiliging kan niet starten, wegens een crash.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Fout tijdens het starten van de schermbeveiliging. xdg-schermbeveiliging is niet correct geinstalleerd..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Fout tijdens het starten van de schermbeveiliging. xdg-schermbeveiliging kan niet starten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Fout tijdens het starten van de schermbeveiliging. Regelfout in xdg-schermbeveiliging argumenten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Fout tijdens het starten van de schermbeveiliging. Controleer of xdg-schermbeveiliging is geinstalleerd en gestart.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Fout tijdens het starten van de schermbeveiliging. Actie 'activeren' mislukt. Controleer of xdg-schermbeveiliging is geinstalleerd en gestart.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Wissen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Geen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Energiebeheer Fout</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface is ongeldig</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Energiebeheer Error (D-BUS oproep)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>Over LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Over</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Technische Informatie </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="pl_PL">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Dodaj wtyczki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Szukaj:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Dodaj wtyczkę</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Zamknij</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Okno dialogowe</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Wersja: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Zaawansowany, łatwy w obsłudze i szybki pulpit bazujący na Qt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Prawa autorskie: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Strona: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Licencja: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt jest dostępny w wielu językach dzięki wspanialej pracy ekip tłumaczy z całego świata.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Tak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Nie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>Skrzynka narzędziowa pulpitu LxQt - Informacje techniczne</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Wersja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Wersja debugowa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Konfiguracja systemu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Udostępniany katalog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Tłumaczenia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Katalogi użytkownika</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Ścieżka dostępu plików Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Ścieżka dostępu konfiguracji Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Katalogi plików Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Ścieżka dostępu pamięci podręcznej Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Ścieżka dostępu środowiska uruchomieniowego Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Katalogi autostartu Xdg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Ścieżka dostępu autostart Xdg</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">Błąd zarządzania energią</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Hibernacja nie powiodła się.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernuj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Uśpij</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Uruchom ponownie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Wyłącz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Wyloguj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Uśpij sesję</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Czy jesteś pewien, że chcesz uśpić swój komputer?<p>Przełącza komputer w stan niskiego poboru prądu. Stan systemu nie jest zabezpieczony przed utratą zasilania.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Hibernuj sesję</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Czy jesteś pewien, że chcesz zahibernować swój komputer?<p>Przełącza komputer w stan niskiego poboru prądu. Stan systemu jest zabezpieczony przed utratą zasilania.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Uruchom ponownie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Czy jesteś pewien, że chcesz ponownie uruchomić swój komputer?<p>Cała niezapisana praca zostanie utracona...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Wyłącz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Czy jesteś pewien, że chcesz wyłączyć swój komputer?<p>Cała niezapisana praca zostanie utracona...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Wyloguj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Czy jesteś pewien, że chcesz się wylogować?<p>Cała niezapisana praca zostanie utracona...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Błąd zarządzania energią</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Hibernacja nie powiodła się.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Uśpienie nie powiodło się.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Zablokuj ekran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Błąd podczas aktywacji wygaszacza ekranu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Wystąpił błąd podczas uruchamiania wygaszacza ekranu. xdg-screensaver nie uruchamia się (crash).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Wystąpił błąd podczas uruchamiania wygaszacza ekranu. xdg-screensaver nie jest poprawnie zainstalowany.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Wystąpił błąd podczas uruchamiania wygaszacza ekranu. xdg-screensaver nie może zostać uruchomiony.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Wystąpił błąd podczas uruchamiania wygaszacza ekranu. Błąd składni argumentów xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Wystąpił błąd podczas uruchamiania wygaszacza ekranu. Upewnij się, że xdg-screensaver jest zainstalowany oraz uruchomiony.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Wystąpił błąd podczas uruchamiania wygaszacza ekranu. Akcja "aktywacja" zawiodła. Upewnij się, że xdg-screensaver jest zainstalowany oraz uruchomiony.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Wystąpił błąd podczas wywołania wygaszacza ekranu. Nieznany błąd - nieudokumentowany zwrot wartości z xdg-screensaver=%1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Wyczyść</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Brak</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Błąd menedżera zasilania</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface jest nieprawidłowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Błąd menedżera zasilania (D-BUS call)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>O LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Autorzy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Podziękowania</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Tłumaczenia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Informacje techniczne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="pt">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Adicionar extras</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Procurar:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation>Adicionar widget</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Adicionar extra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Fechar</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Caixa de diálogo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Versão: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Ambiente de trabalho rápido, simples e fácil de utilizar baseado na tecnologia Qt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>O LxQt não seria possível sem a ajuda dos colaboradores do projeto <a %1>Razor-qt</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Direitos de autor: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Página web: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Licença: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation>O LxQt é desenvolvido pelos <a %1>colaboradores da equipa LxQt</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation>Se quiser ajudar no desenvolvimento, <a %1>pode integrar a nossa equipa</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation>Um especial obrigado:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>O LxQt está traduzido em diversos idiomas graças ao trabalho desenvolvido pelas equipas de tradução de todo o mundo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Sim</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Não</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>Ambiente de trabalho LXQt - Informações técnicas</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Versão</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Compilação de depuração</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Configuração do sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Diretório de partilha</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Traduções</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete">Diretórios do utilizador</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Diretório dos dados do utilizador</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Diretório das configurações do utilizador</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Diretórios de dados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Diretório de cache do utilizador</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Diretório de execução do utilizador</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Diretórios de arranque automático</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Diretório de arranque automático do utilizador</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation>(%1 ativo)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Erro do gestor de energia do LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Falha ao hibernar.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Recurso para notificações</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Suspender</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Reiniciar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Desligar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Terminar sessão</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Suspender</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Pretende mesmo suspender o computador?<p>A suspensão deixa o computador num estado de energia baixa. O estado do sistema não é guardado se faltar a energia.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Hibernar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Pretende mesmo hibernar o computador?<p>A hibernação deixa o computador num estado de energia baixa. O estado do sistema é guardado se faltar a energia.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Reiniciar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Pretende mesmo reiniciar o computador? Os trabalhos não gravados serão perdidos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Desligar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Pretende mesmo desligar o computador? Os trabalhos não gravados serão perdidos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Terminar sessão</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Pretende mesmo terminar a sessão? Os trabalhos não gravados serão perdidos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Erro do gestor de energia do LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Falha ao hibernar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Falha ao suspender.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Bloquear ecrã</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Erro ao ativar a proteção de ecrã</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Ocorreu um erro ao iniciar a proteção de ecrã. O xdg-screensaver terminou abruptamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Ocorreu um erro ao iniciar a proteção de ecrã. O xdg-screensaver não está instalado corretamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Ocorreu um erro ao iniciar a proteção de ecrã. O xdg-screensaver não foi iniciado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Ocorreu um erro ao iniciar a proteção de ecrã. Existem erros na sintaxe nos argumentos xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Ocorreu um erro ao iniciar a proteção de ecrã. Certifique-se que o xdg-screensaver está instalado e em execução.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Ocorreu um erro ao iniciar a proteção de ecrã. Erro na ação 'activate'. Certifique-se que o xdg-screensaver está instalado e em execução.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Ocorreu um erro ao iniciar a proteção de ecrã. O erro xdg-screensaver=%1 não é conhecido ou documentado.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Limpar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Nada</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Erro do gestor de energia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>A interface QDBus não é válida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Erro do gestor de energia (D-BUS)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation> Sobre o LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Sobre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Autores</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Agradecimentos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Traduções</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Informações técnicas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation>Copiar para a área de transferência</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,421 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="pt_BR">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Adicionar plugins</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Pesquisar:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Adicionar plugin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Fechar</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Diálogo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation>Versão: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Avançado, fácil de usar, e ambiente de trabalho rápido baseado nas tecnologias Qt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Copyright: %1-%2 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Página: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation>Licença: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation>LXQt é traduzido em muitas línguas, graças ao trabalho das equipes de tradução de todo o mundo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Sim</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Não</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>LxQt Desktop Toolbox - Technical Info</b></source>
|
||||
<translation type="obsolete"><b>Caixa De Ferramentas Do Desktop LXQt - Informações Técnicas</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation type="obsolete">Versão</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Qt</source>
|
||||
<translation type="obsolete">Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug Build</source>
|
||||
<translation type="obsolete">Depuração Da Compilação</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Configuration</source>
|
||||
<translation type="obsolete">Configuração Do Sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Share Directory</source>
|
||||
<translation type="obsolete">Compartilhar Diretório</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="obsolete">Traduções</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>User Directories</b></source>
|
||||
<translation type="obsolete"><b>Diretórios Do Usuário</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Home</source>
|
||||
<translation type="obsolete">Xdg Dados Pessoais</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Config Home</source>
|
||||
<translation type="obsolete">Xdg Configuções Pessoais</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Data Dirs</source>
|
||||
<translation type="obsolete">Xdg Diretórios Pessoais</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Cache Home</source>
|
||||
<translation type="obsolete">Xdg Cache Pessoal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Runtime Home</source>
|
||||
<translation type="obsolete">Xdg Tempo De Execução Pessoal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Dirs</source>
|
||||
<translation type="obsolete">Xdg Diretórios De Início Automático</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Xdg Autostart Home</source>
|
||||
<translation type="obsolete">Xdg Início Automático Pessoal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">Erro ao gerenciar energia do LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Falha ao hibernar.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation>Notificações De Falhas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Suspender</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Reiniciar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Desligar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Encerrar sessão</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Suspender sessão do LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Deseja realmente suspender o computador?<p>Suspende o computador em um estado de baixa energia. O estado do sistema não é preservado se a energia for perdida.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Hibernar sessão do LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Deseja realmente hibernar o computador?<p>Hiberna o computador em um estado de baixa energia. O estado do sistema é preservado se a energia for perdida.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Reiniciar sessão do LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Deseja realmente reiniciar o computador? Todos os trabalhos não salvos serão perdidos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Desligar sessão do LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Deseja realmente desligar o computador? Todos os trabalhos não salvos serão perdidos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Encerrar sessão do LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Deseja realmente encerrar a sessão? Todos os trabalhos não salvos serão perdidos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Erro ao gerenciar energia do LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Falha ao hibernar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Falha ao suspender.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Bloquear tela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Erro na ativação do protetor de tela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>Ocorreu um erro ao iniciar o protetor de tela. O xdg-screensaver não pôde ser iniciado devido a uma falha.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>Ocorreu um erro ao iniciar o protetor de tela. O xdg-screensaver não está instalado corretamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>Ocorreu um erro ao iniciar o protetor de tela. O xdg-screensaver não pôde ser iniciado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>Ocorreu um erro ao iniciar o protetor de tela. Erro de sintaxe nos argumentos do xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Ocorreu um erro ao iniciar o protetor de tela. Garanta que você tenha o xscreensaver instalado e funcionado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>Ocorreu um erro ao iniciar o protetor de tela. A ação 'ativar' falhou. Garanta que você tenha o xscreensaver instalado e funcionado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation>Ocorreu um erro ao inicair o protetor de tela. Erro desconhecido - retorno não documentado de xdg-screensaver=%1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Limpar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Nenhum</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Erro no gerenciamento de energia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface é inválida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Erro no gerenciamento de energia (chamada D-Bus)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation>Sobre o LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Sobre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Autores</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Agradecimentos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Traduções</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Ficha Técnica</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,360 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="ro_RO">
|
||||
<context>
|
||||
<name>AddPluginDialog</name>
|
||||
<message>
|
||||
<source>Add plugins</source>
|
||||
<translation type="obsolete">Adaugă module</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="22"/>
|
||||
<source>Search:</source>
|
||||
<translation>Caută:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="52"/>
|
||||
<source>Add Widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add plugin</source>
|
||||
<translation type="obsolete">Adaugă modul</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.ui" line="59"/>
|
||||
<source>Close</source>
|
||||
<translation>Închide</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ConfigDialog</name>
|
||||
<message>
|
||||
<location filename="../configdialog/lxqtconfigdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation>Dialog</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AboutDialogPrivate</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="86"/>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="99"/>
|
||||
<source>Advanced, easy-to-use, and fast desktop environment based on Qt technologies.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="101"/>
|
||||
<source>LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors.</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="103"/>
|
||||
<source>Copyright: %1-%2 %3</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="105"/>
|
||||
<source>Homepage: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="107"/>
|
||||
<source>License: %1</source>
|
||||
<comment>About dialog, 'About' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="117"/>
|
||||
<source>LXQt is developed by the <a %1>LXQt Team and contributors</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="119"/>
|
||||
<source>If you are interested in working with our development team, <a %1>join us</a>.</source>
|
||||
<comment>About dialog, 'Authors' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="137"/>
|
||||
<source>Special thanks to:</source>
|
||||
<comment>About dialog, 'Thanks' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.cpp" line="144"/>
|
||||
<source>LXQt is translated into many languages thanks to the work of the translation teams all over the world.</source>
|
||||
<comment>About dialog, 'Translations' tab text</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation type="obsolete">Da</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation type="obsolete">Nu</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::AddPluginDialog</name>
|
||||
<message>
|
||||
<location filename="../addplugindialog/lxqtaddplugindialog.cpp" line="199"/>
|
||||
<source>(%1 active)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::MessageBox</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation type="unfinished">Eroare gestiune alimentare LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="70"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation type="unfinished">Hibernarea a eșuat.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::NotificationPrivate</name>
|
||||
<message>
|
||||
<location filename="../lxqtnotification.cpp" line="152"/>
|
||||
<source>Notifications Fallback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::PowerManager</name>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="113"/>
|
||||
<source>Hibernate</source>
|
||||
<translation>Hibernare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="120"/>
|
||||
<source>Suspend</source>
|
||||
<translation>Suspendare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="127"/>
|
||||
<source>Reboot</source>
|
||||
<translation>Repornire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="134"/>
|
||||
<source>Shutdown</source>
|
||||
<translation>Oprire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="141"/>
|
||||
<source>Logout</source>
|
||||
<translation>Ieșire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="153"/>
|
||||
<source>LxQt Session Suspend</source>
|
||||
<translation>Sesiune LXQt - suspendare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="154"/>
|
||||
<source>Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost.</source>
|
||||
<translation>Doriți să suspendați calculatorul?<p>Suspendă calculatorul într-o stare cu consum minim de energie. Starea sistemului nu va fi păstrată dacă se întrerupe alimentarea.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="163"/>
|
||||
<source>LxQt Session Hibernate</source>
|
||||
<translation>Sesiune LXQt - hibernare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="164"/>
|
||||
<source>Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost.</source>
|
||||
<translation>Doriți să treceți calculatorul în stare de hibernare?<p>Calculatorul va trece într-o stare cu consum minim de energie. Starea sistemului va fi păstrată și dacă se întrerupe alimentarea.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="173"/>
|
||||
<source>LxQt Session Reboot</source>
|
||||
<translation>Sesiune LXQt - repornire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="174"/>
|
||||
<source>Do you want to really restart your computer? All unsaved work will be lost...</source>
|
||||
<translation>Doriți să reporniți calculatorul? Tot ce nu ați salvat se va pierde...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="183"/>
|
||||
<source>LxQt Session Shutdown</source>
|
||||
<translation>Sesiune LXQt - oprire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="184"/>
|
||||
<source>Do you want to really switch off your computer? All unsaved work will be lost...</source>
|
||||
<translation>Doriți să opriți calculatorul? Tot ce nu ați salvat se va pierde...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="193"/>
|
||||
<source>LxQt Session Logout</source>
|
||||
<translation>Sesiune LXQt - ieșire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="194"/>
|
||||
<source>Do you want to really logout? All unsaved work will be lost...</source>
|
||||
<translation>Doriți să ieșiți din sesiune? Tot ce nu ați salvat se va pierde...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>LxQt Power Manager Error</source>
|
||||
<translation>Eroare gestiune alimentare LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="202"/>
|
||||
<source>Hibernate failed.</source>
|
||||
<translation>Hibernarea a eșuat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpowermanager.cpp" line="207"/>
|
||||
<source>Suspend failed.</source>
|
||||
<translation>Suspendarea a eșuat.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ScreenSaver</name>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="52"/>
|
||||
<source>Lock Screen</source>
|
||||
<translation>Blochează ecranul</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="71"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="79"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="87"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="99"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="107"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="115"/>
|
||||
<location filename="../lxqtscreensaver.cpp" line="124"/>
|
||||
<source>Screen Saver Activation Error</source>
|
||||
<translation>Eroare la activarea protecției de ecran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="72"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started due its crash.</source>
|
||||
<translation>A apărut o eroare la activarea protecției de ecran. xdg-screensaver nu a putut fi pornit.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="80"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver is not installed correctly.</source>
|
||||
<translation>A apărut o eroare la activarea protecției de ecran. xdg-screensaver nu a fost instalat corect.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="88"/>
|
||||
<source>An error occurred starting screensaver. xdg-screensaver cannot be started.</source>
|
||||
<translation>A apărut o eroare la activarea protecției de ecran. xdg-screensaver nu a putut fi pornit.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="100"/>
|
||||
<source>An error occurred starting screensaver. Syntax error in xdg-screensaver arguments.</source>
|
||||
<translation>A apărut o eroare la activarea protecției de ecran. Eroare de sintaxă în argumentele xdg-screensaver.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="108"/>
|
||||
<source>An error occurred starting screensaver. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>A apărut o eroare la pornirea protecției de ecran. Asigurați-vă că ați instalat xscreensaver și că acesta rulează.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="116"/>
|
||||
<source>An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running.</source>
|
||||
<translation>A apărut o eroare la pornirea protecției de ecran. Acțiunea 'activează' a eșuat. Asigurați-vă că ați instalat xscreensaver și că acesta rulează.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtscreensaver.cpp" line="125"/>
|
||||
<source>An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxQt::ShortcutButton</name>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation type="obsolete">Curăță</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>None</source>
|
||||
<translation type="obsolete">Nimic</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="91"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="141"/>
|
||||
<source>Power Manager Error</source>
|
||||
<translation>Eroare gestiune alimentare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="92"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="142"/>
|
||||
<source>QDBusInterface is invalid</source>
|
||||
<translation>QDBusInterface este incorect</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="106"/>
|
||||
<location filename="../lxqtpower/lxqtpowerproviders.cpp" line="156"/>
|
||||
<source>Power Manager Error (D-BUS call)</source>
|
||||
<translation>Eroare gestiune alimentare (apel D-Bus)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="14"/>
|
||||
<source> About LXQt</source>
|
||||
<translation> Despre LxQt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="66"/>
|
||||
<source>About</source>
|
||||
<comment>About dialog, Tab title </comment>
|
||||
<translation>Despre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="83"/>
|
||||
<source>Authors</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="100"/>
|
||||
<source>Thanks</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="117"/>
|
||||
<source>Translations</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="134"/>
|
||||
<source>Technical Info</source>
|
||||
<comment>About dialog, Tab title</comment>
|
||||
<translation>Informații tehnice</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../aboutdialog/lxqtaboutdialog.ui" line="165"/>
|
||||
<source>Copy to clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue