Compare commits
209 Commits
release/22
...
release/24
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64be56a456 | ||
|
|
90b5d45e62 | ||
|
|
6ed6bd9b0b | ||
|
|
bf983bdbe4 | ||
|
|
b96878f002 | ||
|
|
1d9185f5e6 | ||
|
|
abad87a00f | ||
|
|
8eb7790a61 | ||
|
|
5f179c677c | ||
|
|
b7aff939a0 | ||
|
|
9df1dfa07b | ||
|
|
c6a14dde33 | ||
|
|
9ad24ef4d2 | ||
|
|
828dcfac55 | ||
|
|
92c529f8ba | ||
|
|
b7fcb8584a | ||
|
|
d51db17209 | ||
|
|
5cf1bf4c20 | ||
|
|
de4bfacd1c | ||
|
|
ccb50a7ab5 | ||
|
|
f071ad4eba | ||
|
|
24a3a261f8 | ||
|
|
cd43f1107a | ||
|
|
b22ec60da2 | ||
|
|
503c9f55a6 | ||
|
|
36349df89b | ||
|
|
f9838deac0 | ||
|
|
5b012bbd3d | ||
|
|
8dca12a10b | ||
|
|
1e1c3d6f12 | ||
|
|
1d9e67631d | ||
|
|
854768b250 | ||
|
|
8a1a10209e | ||
|
|
0d3a38f39e | ||
|
|
8ee8075f82 | ||
|
|
6e6c694625 | ||
|
|
6e7a5ba569 | ||
|
|
1894fce111 | ||
|
|
d3a7020420 | ||
|
|
da27fc48f0 | ||
|
|
dc8c4aafbe | ||
|
|
882447a1af | ||
|
|
014ced6e67 | ||
|
|
bb050e50b9 | ||
|
|
c6212b781a | ||
|
|
35db6b5f46 | ||
|
|
0c516c3b32 | ||
|
|
8a07b1c6e2 | ||
|
|
1d89ef5079 | ||
|
|
d43f2c20f7 | ||
|
|
abac8a4209 | ||
|
|
7a0c0bd6e1 | ||
|
|
3ae94343e4 | ||
|
|
ae6d83b8c3 | ||
|
|
fffb112dc5 | ||
|
|
7ea7e53e95 | ||
|
|
dc15975fd9 | ||
|
|
3644c0255f | ||
|
|
5a84af1e8f | ||
|
|
e9029de27f | ||
|
|
36ecf445be | ||
|
|
378472f8b2 | ||
|
|
2995637d27 | ||
|
|
eddb7e2394 | ||
|
|
6dd3e1da55 | ||
|
|
1da563ca71 | ||
|
|
4249e7aa6c | ||
|
|
e89c87ce8c | ||
|
|
1abd178dc0 | ||
|
|
7d5160e64e | ||
|
|
a41a003304 | ||
|
|
f4e97af144 | ||
|
|
a600986562 | ||
|
|
3a31ba75f6 | ||
|
|
bacf163970 | ||
|
|
d647cc3a6e | ||
|
|
91a457d38a | ||
|
|
b3e3042bd8 | ||
|
|
4abd4c8b06 | ||
|
|
821120d873 | ||
|
|
406cb4bc5b | ||
|
|
a3b082f402 | ||
|
|
c77bd6a38d | ||
|
|
b7d98b7b72 | ||
|
|
9064d18228 | ||
|
|
a87302156a | ||
|
|
345ec522db | ||
|
|
91a730f18c | ||
|
|
aca3f8fbd0 | ||
|
|
74f92d69c6 | ||
|
|
9d0b4072ad | ||
|
|
1160a4ae0b | ||
|
|
b08d0387e0 | ||
|
|
4d08b1429d | ||
|
|
ce0625c265 | ||
|
|
4bec964bfa | ||
|
|
39c83720bf | ||
|
|
08dbfaced4 | ||
|
|
549affa4c3 | ||
|
|
422ce406c9 | ||
|
|
73504294c1 | ||
|
|
b8e011dd1c | ||
|
|
a8b840daac | ||
|
|
990d5c341a | ||
|
|
4753904c13 | ||
|
|
ba75f0d7ed | ||
|
|
b7a2db5c71 | ||
|
|
caab08ba15 | ||
|
|
a1760c13d3 | ||
|
|
9f01d44a13 | ||
|
|
2b53b784c8 | ||
|
|
f3b8c85ad6 | ||
|
|
45f0e75dd4 | ||
|
|
772e720b3b | ||
|
|
f24120faec | ||
|
|
328c708a8b | ||
|
|
5b375106dd | ||
|
|
0c9f71eabe | ||
|
|
1a6a0cd89d | ||
|
|
9da46e0b08 | ||
|
|
18d7e766e1 | ||
|
|
65157c1c22 | ||
|
|
a3654c058e | ||
|
|
38e9d57591 | ||
|
|
132b895b03 | ||
|
|
dffc379f03 | ||
|
|
6fada45b5a | ||
|
|
02c6cccf43 | ||
|
|
b29b374f08 | ||
|
|
bb028c0c3b | ||
|
|
3996ffd60b | ||
|
|
34870b5c78 | ||
|
|
d542437e2a | ||
|
|
33b7fe0a28 | ||
|
|
f7154d0e2b | ||
|
|
ed89040197 | ||
|
|
d7cdb7f981 | ||
|
|
6bfdd98da6 | ||
|
|
bbd948f2bc | ||
|
|
23038987cf | ||
|
|
6f999ac27c | ||
|
|
699995116f | ||
|
|
3086522a0a | ||
|
|
5ef85f4ea1 | ||
|
|
84886d4f86 | ||
|
|
636c2bbc1e | ||
|
|
993232d73b | ||
|
|
02d2d2e971 | ||
|
|
df30f91225 | ||
|
|
ce562e82bb | ||
|
|
a06121e653 | ||
|
|
fa8dec332a | ||
|
|
de373dd0bc | ||
|
|
54f0f51b9d | ||
|
|
6efc1194aa | ||
|
|
827877e4bb | ||
|
|
5c0c53717c | ||
|
|
f2fc9cacbb | ||
|
|
57ab28f641 | ||
|
|
e56e070a52 | ||
|
|
5b350140d7 | ||
|
|
828f0837b2 | ||
|
|
e6d86a9f56 | ||
|
|
afc2e1fef8 | ||
|
|
641e24e8ae | ||
|
|
6221508a96 | ||
|
|
d937a95d57 | ||
|
|
9c7f354f72 | ||
|
|
4b1d314d6c | ||
|
|
fe7bc043ad | ||
|
|
6d2221afd4 | ||
|
|
0477d02b43 | ||
|
|
d8ec878951 | ||
|
|
d658607908 | ||
|
|
ec720c034d | ||
|
|
8782122406 | ||
|
|
7bd3ddd4a2 | ||
|
|
5fbfcbd494 | ||
|
|
c8cf2386ab | ||
|
|
3259321a7a | ||
|
|
c92c4108b0 | ||
|
|
854bc782a0 | ||
|
|
20c787931c | ||
|
|
b740b6518e | ||
|
|
acc304fb94 | ||
|
|
01c775f2e8 | ||
|
|
953cc4218b | ||
|
|
e865b187a2 | ||
|
|
86fe436fd0 | ||
|
|
21b2361c9f | ||
|
|
09e6984b58 | ||
|
|
df52969067 | ||
|
|
e0ec84ef65 | ||
|
|
336af069cf | ||
|
|
83654bd33d | ||
|
|
4db9c65083 | ||
|
|
4f924c2306 | ||
|
|
d7cafa3dfc | ||
|
|
2e06f4f370 | ||
|
|
0ec2f9f01b | ||
|
|
43b91cc93a | ||
|
|
e805ce0e55 | ||
|
|
462c7295d2 | ||
|
|
f97f9a79fd | ||
|
|
ab13b9a16f | ||
|
|
fba34da8da | ||
|
|
21763fe544 | ||
|
|
9699e7ad2a | ||
|
|
62da564888 |
73
.flatpak-manifest.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"id": "org.kde.krfb",
|
||||
"branch": "master",
|
||||
"runtime": "org.kde.Platform",
|
||||
"runtime-version": "6.7",
|
||||
"sdk": "org.kde.Sdk",
|
||||
"command": "krfb",
|
||||
"tags": ["nightly"],
|
||||
"desktop-file-name-suffix": " (Nightly)",
|
||||
"finish-args": ["--share=ipc", "--socket=fallback-x11", "--socket=wayland" ],
|
||||
"rename-icon": "krfb",
|
||||
"modules": [
|
||||
{
|
||||
"name": "libgpg-error",
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "http://mirrors.dotsrc.org/gnupg/libgpg-error/libgpg-error-1.47.tar.bz2",
|
||||
"sha256": "9e3c670966b96ecc746c28c2c419541e3bcb787d1a73930f5e5f5e1bcbbb9bdb",
|
||||
"x-checker-data": {
|
||||
"type": "anitya",
|
||||
"project-id": 1628,
|
||||
"stable-only": true,
|
||||
"url-template": "http://mirrors.dotsrc.org/gnupg/libgpg-error/libgpg-error-${version}.tar.bz2"
|
||||
}
|
||||
}
|
||||
],
|
||||
"cleanup": [ "/lib/libgpg-error.la" ]
|
||||
},
|
||||
{
|
||||
"name": "libgcrypt",
|
||||
"config-opts": ["--disable-doc"],
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://dev.gnupg.org/source/libgcrypt.git",
|
||||
"tag": "libgcrypt-1.10.2",
|
||||
"commit": "1c5cbacf3d88dded5063e959ee68678ff7d0fa56",
|
||||
"x-checker-data": {
|
||||
"type": "anitya",
|
||||
"project-id": 1623,
|
||||
"stable-only": true,
|
||||
"tag-template": "libgcrypt-$version"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "libvncserver",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"sources": [
|
||||
{ "type": "git", "url": "https://github.com/LibVNC/libvncserver", "branch": "LibVNCServer-0.9.14" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "kpipewire",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"config-opts": [ "-DBUILD_TESTING=OFF" ],
|
||||
"sources": [ { "type": "git", "url": "https://invent.kde.org/plasma/kpipewire.git", "branch": "master" } ]
|
||||
},
|
||||
{
|
||||
"name": "krfb",
|
||||
"buildsystem": "cmake-ninja",
|
||||
"config-opts": ["-DCMAKE_BUILD_TYPE=debug", "-DPLASMA_ENABLED=OFF"],
|
||||
"sources": [
|
||||
{
|
||||
"type": "dir",
|
||||
"path": "."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
2
.flatpak-manifest.json.license
Normal file
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: None
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
@@ -2,5 +2,8 @@
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
include:
|
||||
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml
|
||||
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml
|
||||
- project: sysadmin/ci-utilities
|
||||
file:
|
||||
- /gitlab-templates/linux-qt6.yml
|
||||
- /gitlab-templates/freebsd-qt6.yml
|
||||
- /gitlab-templates/flatpak.yml
|
||||
|
||||
34
.kde-ci.yml
@@ -4,18 +4,22 @@
|
||||
Dependencies:
|
||||
- 'on': ['@all']
|
||||
'require':
|
||||
'frameworks/extra-cmake-modules': '@stable'
|
||||
'frameworks/ki18n': '@stable'
|
||||
'frameworks/kconfig': '@stable'
|
||||
'frameworks/kcoreaddons': '@stable'
|
||||
'frameworks/kcrash': '@stable'
|
||||
'frameworks/kdbusaddons': '@stable'
|
||||
'frameworks/kdnssd': '@stable'
|
||||
'frameworks/kdoctools': '@stable'
|
||||
'frameworks/knotifications': '@stable'
|
||||
'frameworks/kwallet': '@stable'
|
||||
'frameworks/kwidgetsaddons': '@stable'
|
||||
'frameworks/kwindowsystem': '@stable'
|
||||
'frameworks/kxmlgui': '@stable'
|
||||
'frameworks/kwayland': '@stable'
|
||||
'libraries/plasma-wayland-protocols': '@latest' # can be switched to @stable when 1.5.0 is released
|
||||
'frameworks/extra-cmake-modules': '@latest-kf6'
|
||||
'frameworks/ki18n': '@latest-kf6'
|
||||
'frameworks/kconfig': '@latest-kf6'
|
||||
'frameworks/kcoreaddons': '@latest-kf6'
|
||||
'frameworks/kdbusaddons': '@latest-kf6'
|
||||
'frameworks/kdnssd': '@latest-kf6'
|
||||
'frameworks/kdoctools': '@latest-kf6'
|
||||
'frameworks/knotifications': '@latest-kf6'
|
||||
'frameworks/kwallet': '@latest-kf6'
|
||||
'frameworks/kwidgetsaddons': '@latest-kf6'
|
||||
'frameworks/kwindowsystem': '@latest-kf6'
|
||||
'frameworks/kxmlgui': '@latest-kf6'
|
||||
'frameworks/kstatusnotifieritem': '@latest-kf6'
|
||||
'libraries/plasma-wayland-protocols': '@latest-kf6'
|
||||
'plasma/kwayland': '@latest-kf6'
|
||||
'plasma/kpipewire': '@latest-kf6'
|
||||
|
||||
Options:
|
||||
require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows']
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# KDE Application Version, managed by release script
|
||||
set (RELEASE_SERVICE_VERSION_MAJOR "22")
|
||||
set (RELEASE_SERVICE_VERSION_MINOR "11")
|
||||
set (RELEASE_SERVICE_VERSION_MICRO "70")
|
||||
set (RELEASE_SERVICE_VERSION_MAJOR "24")
|
||||
set (RELEASE_SERVICE_VERSION_MINOR "08")
|
||||
set (RELEASE_SERVICE_VERSION_MICRO "3")
|
||||
set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
||||
|
||||
project(krfb VERSION ${RELEASE_SERVICE_VERSION})
|
||||
|
||||
set(QT_MIN_VERSION 5.15.2)
|
||||
set(KF5_MIN_VERSION 5.91.0)
|
||||
set(QT_MIN_VERSION 6.5.0)
|
||||
set(KF6_MIN_VERSION 6.2.0)
|
||||
|
||||
find_package(ECM ${KF5_MIN_VERSION} NO_MODULE REQUIRED)
|
||||
find_package(ECM ${KF6_MIN_VERSION} NO_MODULE REQUIRED)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ${ECM_MODULE_PATH})
|
||||
|
||||
include(KDEInstallDirs)
|
||||
@@ -27,13 +27,12 @@ include(CheckIncludeFile)
|
||||
|
||||
check_include_file("linux/input.h" HAVE_LINUX_INPUT_H)
|
||||
|
||||
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core DBus Widgets X11Extras)
|
||||
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core DBus Widgets)
|
||||
|
||||
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
||||
find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
|
||||
I18n
|
||||
Config
|
||||
CoreAddons
|
||||
Crash
|
||||
DBusAddons
|
||||
DNSSD
|
||||
DocTools
|
||||
@@ -42,6 +41,7 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
||||
WidgetsAddons
|
||||
WindowSystem
|
||||
XmlGui
|
||||
StatusNotifierItem
|
||||
)
|
||||
|
||||
find_package(X11 REQUIRED)
|
||||
@@ -62,8 +62,8 @@ if(WIN32)
|
||||
endif(WIN32)
|
||||
|
||||
ecm_set_disabled_deprecation_versions(
|
||||
QT 5.15.2
|
||||
KF 5.91
|
||||
QT 6.7.0
|
||||
KF 6.4.0
|
||||
)
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} )
|
||||
@@ -73,44 +73,20 @@ find_package(LibVNCServer REQUIRED)
|
||||
|
||||
option(DISABLE_PIPEWIRE "Disable PipeWire support." OFF)
|
||||
if(NOT DISABLE_PIPEWIRE)
|
||||
find_package(KPipeWire CONFIG REQUIRED)
|
||||
pkg_check_modules(PipeWire IMPORTED_TARGET libpipewire-0.3)
|
||||
add_feature_info(PipeWire PipeWire_FOUND "Required for pipewire screencast plugin")
|
||||
endif()
|
||||
add_feature_info(PipeWire PipeWire_FOUND "Required for pipewire screencast plugin")
|
||||
|
||||
find_package(PlasmaWaylandProtocols 1.5.0)
|
||||
|
||||
if(PipeWire_FOUND AND PlasmaWaylandProtocols_FOUND)
|
||||
find_package(KF5Wayland ${KF5_MIN_VERSION})
|
||||
if(KPipeWire_FOUND AND PipeWire_FOUND AND PlasmaWaylandProtocols_FOUND)
|
||||
find_package(KWayland REQUIRED)
|
||||
find_package(QtWaylandScanner REQUIRED)
|
||||
find_package(Qt5WaylandClient)
|
||||
find_package(Qt5XkbCommonSupport)
|
||||
find_package(Qt6WaylandClient)
|
||||
find_package(Wayland REQUIRED COMPONENTS Client)
|
||||
endif()
|
||||
|
||||
find_package(gbm)
|
||||
set_package_properties(gbm PROPERTIES
|
||||
TYPE OPTIONAL
|
||||
PURPOSE "Required for dma-buf support in pipewire screencast plugin."
|
||||
)
|
||||
|
||||
find_package(EGL)
|
||||
set_package_properties(EGL PROPERTIES
|
||||
TYPE OPTIONAL
|
||||
PURPOSE "Required for dma-buf support in pipewire screencast plugin."
|
||||
)
|
||||
|
||||
find_package(epoxy)
|
||||
set_package_properties(epoxy PROPERTIES DESCRIPTION "libepoxy"
|
||||
URL "https://github.com/anholt/libepoxy"
|
||||
TYPE OPTIONAL
|
||||
PURPOSE "Required for dma-buf support in pipewire screencast plugin."
|
||||
)
|
||||
|
||||
if(EGL_FOUND AND gbm_FOUND AND epoxy_FOUND)
|
||||
set (HAVE_DMA_BUF TRUE)
|
||||
else()
|
||||
set (HAVE_DMA_BUF FALSE)
|
||||
endif()
|
||||
|
||||
ecm_setup_version(PROJECT
|
||||
VARIABLE_PREFIX KRFB
|
||||
VERSION_HEADER "krfb_version.h")
|
||||
|
||||
4
README
@@ -12,8 +12,4 @@ x0rfbserver left. Since version 0.6 it uses libvncserver
|
||||
|
||||
Guide to documentation:
|
||||
TODO - things to be done
|
||||
INSTALL - Very short installation instructions
|
||||
NOTES - reasons for various decisions
|
||||
DCOP-INTERFACE - short documentation of the DCOP interface
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2017-2018 Red Hat, Inc.
|
||||
|
||||
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 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, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
@@ -17,22 +20,34 @@
|
||||
<!--
|
||||
org.freedesktop.portal.RemoteDesktop:
|
||||
@short_description: Remote desktop portal
|
||||
|
||||
The Remote desktop portal allows to create remote desktop sessions.
|
||||
This documentation describes version 1 of this interface.
|
||||
|
||||
This documentation describes version 2 of this interface.
|
||||
-->
|
||||
<interface name="org.freedesktop.portal.RemoteDesktop">
|
||||
<!--
|
||||
CreateSession:
|
||||
@options: Vardict with optional further information
|
||||
@handle: Object path for the #org.freedesktop.portal.Request object representing this call
|
||||
|
||||
Create a remote desktop session.
|
||||
|
||||
A remote desktop session is used to allow remote controlling a desktop
|
||||
session. It can also be used together with a screen cast session (see
|
||||
org.freedesktop.portal.ScreenCast), but may only be started and stopped
|
||||
with this interface.
|
||||
To also get a screen content, call the
|
||||
#org.freedesktop.ScreenCast.SelectSources with the
|
||||
#org.freedesktop.Session object created with this method.
|
||||
session.
|
||||
|
||||
A remote desktop session may only be started and stopped with this interface,
|
||||
but you can use the #org.freedesktop.portal.Session object created with this
|
||||
method together with certain methods on the #org.freedesktop.portal.ScreenCast and
|
||||
#org.freedesktop.portal.Clipboard interfaces. Specifically, you can call
|
||||
org.freedesktop.portal.ScreenCast.SelectSources() to also get screen content,
|
||||
and org.freedesktop.portal.ScreenCast.OpenPipeWireRemote() to acquire a file
|
||||
descriptor for a PipeWire remote. See #org.freedesktop.portal.ScreenCast for
|
||||
more information on how to use those methods. To capture clipboard content,
|
||||
you can call org.freedesktop.portal.Clipboard.RequestClipboard(). See
|
||||
#org.freedesktop.portal.Clipboard for more information on the clipboard
|
||||
integration.
|
||||
|
||||
Supported keys in the @options vardict include:
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
@@ -75,7 +90,9 @@
|
||||
@session_handle: Object path for the #org.freedesktop.portal.Session object
|
||||
@options: Vardict with optional further information
|
||||
@handle: Object path for the #org.freedesktop.portal.Request object representing this call
|
||||
|
||||
Select input devices to remote control.
|
||||
|
||||
Supported keys in the @options vardict include:
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
@@ -87,14 +104,50 @@
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>type u</term>
|
||||
<term>types u</term>
|
||||
<listitem><para>
|
||||
Bitmask of what device types to request remote controlling of.
|
||||
Default is all.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>restore_token s</term>
|
||||
<listitem><para>
|
||||
The token to restore a previous session.
|
||||
|
||||
If the stored session cannot be restored, this value is ignored
|
||||
and the user will be prompted normally. This may happen when, for
|
||||
example, the session contains a monitor or a window that is not
|
||||
available anymore, or when the stored permissions are withdrawn.
|
||||
|
||||
The restore token is invalidated after using it once. To restore
|
||||
the same session again, use the new restore token sent in response
|
||||
to starting this session.
|
||||
|
||||
This option was added in version 2 of this interface.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>persist_mode u</term>
|
||||
<listitem><para>
|
||||
How this session should persist. Default is 0. Accepted values are:
|
||||
|
||||
<simplelist>
|
||||
<member>0: Do not persist (default)</member>
|
||||
<member>1: Permissions persist as long as the application is running</member>
|
||||
<member>2: Permissions persist until explicitly revoked</member>
|
||||
</simplelist>
|
||||
|
||||
If the permission for the session to persist is granted, a restore token will
|
||||
be returned via the #org.freedesktop.portal.Request::Response signal of the
|
||||
start method used to start the session.
|
||||
|
||||
This option was added in version 2 of this interface.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
For available source types, see the AvailableDeviceTypes property.
|
||||
|
||||
For available device types, see the AvailableDeviceTypes property.
|
||||
-->
|
||||
<method name="SelectDevices">
|
||||
<arg type="o" name="session_handle" direction="in"/>
|
||||
@@ -108,10 +161,12 @@
|
||||
@parent_window: Identifier for the application window, see <link linkend="parent_window">Common Conventions</link>
|
||||
@options: Vardict with optional further information
|
||||
@handle: Object path for the #org.freedesktop.portal.Request object representing this call
|
||||
|
||||
Start the remote desktop session. This will typically result in the portal
|
||||
presenting a dialog letting the user select what to share, including
|
||||
devices and optionally screen content if screen cast sources was
|
||||
selected.
|
||||
|
||||
Supported keys in the @options vardict include:
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
@@ -123,6 +178,7 @@
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
The following results get returned via the
|
||||
#org.freedesktop.portal.Request::Response signal:
|
||||
<variablelist>
|
||||
@@ -132,7 +188,26 @@
|
||||
A bitmask of the devices selected by the user.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>clipboard_enabled b</term>
|
||||
<listitem><para>
|
||||
A boolean for whether the clipboard was enabled ('true') or not ('false').
|
||||
See the #org.freedesktop.portal.Clipboard documentation for more information.
|
||||
Since version 2.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>restore_token s</term>
|
||||
<listitem><para>
|
||||
The restore token. This token is a single use token that can later
|
||||
be used to restore a session. See
|
||||
org.freedesktop.portal.RemoteDesktop.SelectDevices() for details.
|
||||
|
||||
This response option was added in version 2 of this interface.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
If a screen cast source was selected, the results of the
|
||||
#org.freedesktop.portal.ScreenCast.Start response signal may be
|
||||
included.
|
||||
@@ -150,6 +225,7 @@
|
||||
@options: Vardict with optional further information
|
||||
@dx: Relative movement on the x axis
|
||||
@dy: Relative movement on the y axis
|
||||
|
||||
Notify about a new relative pointer motion event. The (dx, dy) vector
|
||||
represents the new pointer position in the streams logical coordinate
|
||||
space.
|
||||
@@ -168,6 +244,7 @@
|
||||
@stream: The PipeWire stream node the coordinate is relative to
|
||||
@x: Pointer motion x coordinate
|
||||
@y: Pointer motion y coordinate
|
||||
|
||||
Notify about a new absolute pointer motion event. The (x, y) position
|
||||
represents the new pointer position in the streams logical coordinate
|
||||
space (see the logical_size stream property in
|
||||
@@ -187,9 +264,12 @@
|
||||
@options: Vardict with optional further information
|
||||
@button: The pointer button was pressed or released
|
||||
@state: The new state of the button
|
||||
|
||||
The pointer button is encoded according to Linux Evdev button codes.
|
||||
|
||||
May only be called if POINTER access was provided after starting the
|
||||
session.
|
||||
|
||||
Available button states:
|
||||
<simplelist>
|
||||
<member>0: Released</member>
|
||||
@@ -209,11 +289,14 @@
|
||||
@options: Vardict with optional further information
|
||||
@dx: Relative axis movement on the x axis
|
||||
@dy: Relative axis movement on the y axis
|
||||
|
||||
The axis movement from a 'smooth scroll' device, such as a touchpad.
|
||||
When applicable, the size of the motion delta should be equivalent to
|
||||
the motion vector of a pointer motion done using the same advice.
|
||||
|
||||
May only be called if POINTER access was provided after starting the
|
||||
session.
|
||||
|
||||
Supported keys in the @options vardict include:
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
@@ -239,8 +322,10 @@
|
||||
@options: Vardict with optional further information
|
||||
@axis: The axis that was scrolled
|
||||
@steps: The number of steps scrolled
|
||||
|
||||
May only be called if POINTER access was provided after starting the
|
||||
session.
|
||||
|
||||
Available axes:
|
||||
<simplelist>
|
||||
<member>0: Vertical scroll</member>
|
||||
@@ -259,10 +344,12 @@
|
||||
@session_handle: Object path for the #org.freedesktop.portal.Session object
|
||||
@options: Vardict with optional further information
|
||||
@keycode: Keyboard code that was pressed or released
|
||||
@state: New state of keyboard keysym
|
||||
@state: New state of keyboard keycode
|
||||
|
||||
May only be called if KEYBOARD access was provided after starting the
|
||||
session.
|
||||
Available keyboard keysym states:
|
||||
|
||||
Available keyboard keycode states:
|
||||
<simplelist>
|
||||
<member>0: Released</member>
|
||||
<member>1: Pressed</member>
|
||||
@@ -281,8 +368,10 @@
|
||||
@options: Vardict with optional further information
|
||||
@keysym: Keyboard symbol that was pressed or released
|
||||
@state: New state of keyboard keysym
|
||||
|
||||
May only be called if KEYBOARD access was provided after starting the
|
||||
session.
|
||||
|
||||
Available keyboard keysym states:
|
||||
<simplelist>
|
||||
<member>0: Released</member>
|
||||
@@ -304,8 +393,10 @@
|
||||
@slot: Touch slot where touch point appeared
|
||||
@x: Touch down x coordinate
|
||||
@y: Touch down y coordinate
|
||||
|
||||
May only be called if TOUCHSCREEN access was provided after starting the
|
||||
session.
|
||||
|
||||
Notify about a new touch down event. The (x, y) position
|
||||
represents the new touch point position in the streams logical
|
||||
coordinate space (see the logical_size stream property in
|
||||
@@ -328,8 +419,10 @@
|
||||
@slot: Touch slot where touch point appeared
|
||||
@x: Touch motion x coordinate
|
||||
@y: Touch motion y coordinate
|
||||
|
||||
May only be called if TOUCHSCREEN access was provided after starting the
|
||||
session.
|
||||
|
||||
Notify about a new touch motion event. The (x, y) position
|
||||
represents where the touch point position in the streams logical
|
||||
coordinate space moved (see the logical_size stream property in
|
||||
@@ -349,8 +442,10 @@
|
||||
@session_handle: Object path for the #org.freedesktop.portal.Session object
|
||||
@options: Vardict with optional further information
|
||||
@slot: Touch slot where touch point appeared
|
||||
|
||||
May only be called if TOUCHSCREEN access was provided after starting the
|
||||
session.
|
||||
|
||||
Notify about a new touch up event.
|
||||
-->
|
||||
<method name="NotifyTouchUp">
|
||||
@@ -359,9 +454,47 @@
|
||||
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
||||
<arg type="u" name="slot" direction="in"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
ConnectToEIS:
|
||||
@session_handle: Object path for the #org.freedesktop.portal.Session object
|
||||
@options: Vardict with optional further information
|
||||
@fd: A file descriptor to an EIS implementation that can be passed to a libei sender context
|
||||
|
||||
Request a connection to an EIS implementation. The returned handle can
|
||||
be passed to ei_setup_backend_fd() for a libei sender context to
|
||||
complete the connection. All information about available devices and the
|
||||
event flow is subject to libei. Please see the libei documentation for details.
|
||||
|
||||
This method may only be called once per session, where the EIS
|
||||
implementation disconnects the session should be closed.
|
||||
|
||||
This method must be called after #org.freedesktop.portal.RemoteDesktop.Start()
|
||||
|
||||
Once an EIS connection is established, input events must be sent exclusively via
|
||||
the EIS connection. Any events submitted via NotifyPointerMotion,
|
||||
NotifyKeyboardKeycode and other Notify* methods will return an error.
|
||||
|
||||
To see how to pair a PipeWire stream with a libei device region, see the
|
||||
documentation for the mapping_id stream property in
|
||||
#org.freedesktop.portal.RemoteDesktop.Start().
|
||||
|
||||
This method was added in version 2 of this interface.
|
||||
-->
|
||||
<method name="ConnectToEIS">
|
||||
<annotation name="org.gtk.GDBus.C.Name" value="connect_to_eis"/>
|
||||
<annotation name="org.gtk.GDBus.C.UnixFD" value="true"/>
|
||||
<arg type="o" name="session_handle" direction="in"/>
|
||||
<arg type="a{sv}" name="options" direction="in"/>
|
||||
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
|
||||
<arg type="h" name="fd" direction="out"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
AvailableDeviceTypes:
|
||||
|
||||
A bitmask of available source types. Currently defined types are:
|
||||
|
||||
<simplelist>
|
||||
<member>1: KEYBOARD</member>
|
||||
<member>2: POINTER</member>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
add_subdirectory(x11)
|
||||
|
||||
# Makes sense to use only when PW framebuffer is used
|
||||
if (${PipeWire_FOUND})
|
||||
if (TARGET K::KPipeWire)
|
||||
add_subdirectory(xdp)
|
||||
endif()
|
||||
|
||||
@@ -11,7 +11,7 @@ add_library (krfb_events_x11 MODULE ${krfb_events_x11_SRCS})
|
||||
|
||||
target_link_libraries (krfb_events_x11
|
||||
${X11_XTest_LIB}
|
||||
KF5::CoreAddons
|
||||
KF6::CoreAddons
|
||||
krfbprivate
|
||||
)
|
||||
set_target_properties(krfb_events_x11 PROPERTIES OUTPUT_NAME x11)
|
||||
|
||||
@@ -22,16 +22,13 @@
|
||||
#include "x11events.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QX11Info>
|
||||
#include <QDesktopWidget>
|
||||
#include <QGlobalStatic>
|
||||
#include <QtGui/private/qtx11extras_p.h>
|
||||
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/keysym.h>
|
||||
#include <X11/extensions/XTest.h>
|
||||
|
||||
#include <QX11Info>
|
||||
|
||||
enum {
|
||||
LEFTSHIFT = 1,
|
||||
RIGHTSHIFT = 2,
|
||||
@@ -186,15 +183,7 @@ void X11EventHandler::handleKeyboard(bool down, rfbKeySym keySym)
|
||||
void X11EventHandler::handlePointer(int buttonMask, int x, int y)
|
||||
{
|
||||
if (QX11Info::isPlatformX11()) {
|
||||
QDesktopWidget *desktopWidget = QApplication::desktop();
|
||||
|
||||
int screen = desktopWidget->screenNumber();
|
||||
|
||||
if (screen < 0) {
|
||||
screen = 0;
|
||||
}
|
||||
|
||||
XTestFakeMotionEvent(data->dpy, screen, x, y, CurrentTime);
|
||||
XTestFakeMotionEvent(data->dpy, 0, x, y, CurrentTime);
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if ((data->buttonMask&(1 << i)) != (buttonMask&(1 << i))) {
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
#include "x11events.h"
|
||||
|
||||
#include <KPluginFactory>
|
||||
#include <QX11Info>
|
||||
|
||||
#include <QtGui/private/qtx11extras_p.h>
|
||||
|
||||
K_PLUGIN_CLASS(X11EventsPlugin)
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ set (krfb_events_xdp_SRCS
|
||||
xdpeventsplugin.cpp
|
||||
)
|
||||
|
||||
qt5_add_dbus_interface(
|
||||
qt_add_dbus_interface(
|
||||
krfb_events_xdp_SRCS
|
||||
${CMAKE_SOURCE_DIR}/dbus/xdp_dbus_remotedesktop_interface.xml
|
||||
xdp_dbus_remotedesktop_interface
|
||||
@@ -16,9 +16,9 @@ qt5_add_dbus_interface(
|
||||
add_library (krfb_events_xdp MODULE ${krfb_events_xdp_SRCS})
|
||||
|
||||
target_link_libraries (krfb_events_xdp
|
||||
KF5::CoreAddons
|
||||
KF5::I18n
|
||||
Qt5::DBus
|
||||
KF6::CoreAddons
|
||||
KF6::I18n
|
||||
Qt::DBus
|
||||
krfbprivate
|
||||
)
|
||||
set_target_properties(krfb_events_xdp PROPERTIES OUTPUT_NAME xdp)
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#include <linux/input.h>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
#include <QGlobalStatic>
|
||||
|
||||
class EventData
|
||||
@@ -61,10 +60,8 @@ void EventData::init()
|
||||
|
||||
void XdpEventHandler::handleKeyboard(bool down, rfbKeySym keySym)
|
||||
{
|
||||
// TODO: implement button handling
|
||||
// both in FakeInput interface and here
|
||||
Q_UNUSED(down)
|
||||
Q_UNUSED(keySym)
|
||||
const QDBusObjectPath sessionHandle = frameBuffer()->customProperty(QStringLiteral("session_handle")).value<QDBusObjectPath>();
|
||||
data->dbusXdpRemoteDesktopService->NotifyKeyboardKeysym(sessionHandle, {}, keySym, down);
|
||||
}
|
||||
|
||||
void XdpEventHandler::handlePointer(int buttonMask, int x, int y)
|
||||
@@ -84,7 +81,7 @@ void XdpEventHandler::handlePointer(int buttonMask, int x, int y)
|
||||
|
||||
if (buttonMask != data->buttonMask) {
|
||||
int i = 0;
|
||||
QVector<int> buttons = { BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, 0, 0, 0, 0, BTN_SIDE, BTN_EXTRA };
|
||||
QList<int> buttons = { BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, 0, 0, 0, 0, BTN_SIDE, BTN_EXTRA };
|
||||
for (auto it = buttons.constBegin(); it != buttons.constEnd(); ++it) {
|
||||
int prevButtonState = (data->buttonMask >> i) & 0x01;
|
||||
int currentButtonState = (buttonMask >> i) & 0x01;
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
add_subdirectory (qt)
|
||||
|
||||
if (${XCB_DAMAGE_FOUND} AND ${XCB_SHM_FOUND} AND ${XCB_IMAGE_FOUND})
|
||||
add_subdirectory (xcb)
|
||||
endif()
|
||||
|
||||
if (${PipeWire_FOUND})
|
||||
if (TARGET K::KPipeWire)
|
||||
add_subdirectory(pipewire)
|
||||
endif()
|
||||
|
||||
@@ -9,11 +9,6 @@ set (krfb_framebuffer_pw_SRCS
|
||||
screencasting.cpp
|
||||
)
|
||||
|
||||
ecm_add_qtwayland_client_protocol(krfb_framebuffer_pw_SRCS
|
||||
PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml
|
||||
BASENAME zkde-screencast-unstable-v1
|
||||
)
|
||||
|
||||
ecm_qt_declare_logging_category(krfb_framebuffer_pw_SRCS
|
||||
HEADER krfb_fb_pipewire_debug.h
|
||||
IDENTIFIER KRFB_FB_PIPEWIRE
|
||||
@@ -22,13 +17,13 @@ ecm_qt_declare_logging_category(krfb_framebuffer_pw_SRCS
|
||||
EXPORT KRFB
|
||||
)
|
||||
|
||||
qt5_add_dbus_interface(
|
||||
qt_add_dbus_interface(
|
||||
krfb_framebuffer_pw_SRCS
|
||||
${CMAKE_SOURCE_DIR}/dbus/xdp_dbus_screencast_interface.xml
|
||||
xdp_dbus_screencast_interface
|
||||
)
|
||||
|
||||
qt5_add_dbus_interface(
|
||||
qt_add_dbus_interface(
|
||||
krfb_framebuffer_pw_SRCS
|
||||
${CMAKE_SOURCE_DIR}/dbus/xdp_dbus_remotedesktop_interface.xml
|
||||
xdp_dbus_remotedesktop_interface
|
||||
@@ -38,26 +33,39 @@ add_library(krfb_framebuffer_pw
|
||||
MODULE
|
||||
${krfb_framebuffer_pw_SRCS}
|
||||
)
|
||||
|
||||
if (Qt6_VERSION VERSION_LESS "6.7.1")
|
||||
ecm_add_qtwayland_client_protocol(krfb_framebuffer_pw
|
||||
PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml
|
||||
BASENAME zkde-screencast-unstable-v1
|
||||
)
|
||||
else()
|
||||
qt6_generate_wayland_protocol_client_sources(krfb_framebuffer_pw
|
||||
FILES ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml
|
||||
)
|
||||
endif()
|
||||
|
||||
if (KPipeWire_VERSION VERSION_LESS "6.0.80")
|
||||
target_compile_definitions(krfb_framebuffer_pw PRIVATE -DKPIPEWIRE60=1)
|
||||
else()
|
||||
target_compile_definitions(krfb_framebuffer_pw PRIVATE -DKPIPEWIRE60=0)
|
||||
endif()
|
||||
set_property(TARGET krfb_framebuffer_pw PROPERTY C_STANDARD 99)
|
||||
|
||||
target_link_libraries(krfb_framebuffer_pw
|
||||
Qt5::Core
|
||||
Qt5::Gui
|
||||
Qt5::DBus
|
||||
KF5::CoreAddons
|
||||
KF5::WaylandClient
|
||||
Qt::Core
|
||||
Qt::Gui
|
||||
Qt::DBus
|
||||
KF6::CoreAddons
|
||||
KF6::ConfigCore
|
||||
PkgConfig::PipeWire
|
||||
Plasma::KWaylandClient
|
||||
Wayland::Client
|
||||
krfbprivate
|
||||
PkgConfig::PipeWire
|
||||
K::KPipeWire
|
||||
K::KPipeWireDmaBuf
|
||||
)
|
||||
|
||||
if (HAVE_DMA_BUF)
|
||||
target_link_libraries(krfb_framebuffer_pw
|
||||
${epoxy_LIBRARIES}
|
||||
gbm::gbm
|
||||
)
|
||||
endif()
|
||||
|
||||
set_target_properties(krfb_framebuffer_pw PROPERTIES OUTPUT_NAME pw)
|
||||
install (TARGETS krfb_framebuffer_pw
|
||||
DESTINATION ${KDE_INSTALL_PLUGINDIR}/krfb/framebuffer
|
||||
|
||||
5
framebuffers/pipewire/pipewire.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"X-KDE-OnlyShowOnQtPlatforms": [
|
||||
"wayland"
|
||||
]
|
||||
}
|
||||
@@ -22,19 +22,13 @@
|
||||
#include <QDebug>
|
||||
#include <QRandomGenerator>
|
||||
|
||||
#include <KConfigGroup>
|
||||
#include <KSharedConfig>
|
||||
|
||||
#include <KWayland/Client/connection_thread.h>
|
||||
#include <KWayland/Client/registry.h>
|
||||
|
||||
// pipewire
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
#include <spa/param/format-utils.h>
|
||||
#include <spa/param/video/format-utils.h>
|
||||
#include <spa/param/props.h>
|
||||
#include <spa/utils/result.h>
|
||||
|
||||
#include <pipewire/pipewire.h>
|
||||
|
||||
#include <climits>
|
||||
|
||||
#include "pw_framebuffer.h"
|
||||
@@ -42,15 +36,8 @@
|
||||
#include "xdp_dbus_remotedesktop_interface.h"
|
||||
#include "krfb_fb_pipewire_debug.h"
|
||||
#include "screencasting.h"
|
||||
|
||||
#if HAVE_DMA_BUF
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <gbm.h>
|
||||
#include <epoxy/egl.h>
|
||||
#include <epoxy/gl.h>
|
||||
#endif /* HAVE_DMA_BUF */
|
||||
#include <PipeWireSourceStream>
|
||||
#include <DmaBufHandler>
|
||||
|
||||
static const int BYTES_PER_PIXEL = 4;
|
||||
static const uint MIN_SUPPORTED_XDP_KDE_SC_VERSION = 1;
|
||||
@@ -78,30 +65,6 @@ const QDBusArgument &operator >> (const QDBusArgument &arg, PWFrameBuffer::Strea
|
||||
return arg;
|
||||
}
|
||||
|
||||
#if HAVE_DMA_BUF
|
||||
const char * formatGLError(GLenum err)
|
||||
{
|
||||
switch(err) {
|
||||
case GL_NO_ERROR:
|
||||
return "GL_NO_ERROR";
|
||||
case GL_INVALID_ENUM:
|
||||
return "GL_INVALID_ENUM";
|
||||
case GL_INVALID_VALUE:
|
||||
return "GL_INVALID_VALUE";
|
||||
case GL_INVALID_OPERATION:
|
||||
return "GL_INVALID_OPERATION";
|
||||
case GL_STACK_OVERFLOW:
|
||||
return "GL_STACK_OVERFLOW";
|
||||
case GL_STACK_UNDERFLOW:
|
||||
return "GL_STACK_UNDERFLOW";
|
||||
case GL_OUT_OF_MEMORY:
|
||||
return "GL_OUT_OF_MEMORY";
|
||||
default:
|
||||
return (QLatin1String("0x") + QString::number(err, 16)).toLocal8Bit().constData();
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_DMA_BUF */
|
||||
|
||||
/**
|
||||
* @brief The PWFrameBuffer::Private class - private counterpart of PWFramebuffer class. This is the entity where
|
||||
* whole logic resides, for more info search for "d-pointer pattern" information.
|
||||
@@ -114,47 +77,21 @@ public:
|
||||
private:
|
||||
friend class PWFrameBuffer;
|
||||
|
||||
static void onCoreError(void *data, uint32_t id, int seq, int res, const char *message);
|
||||
static void onStreamParamChanged(void *data, uint32_t id, const struct spa_pod *format);
|
||||
static void onStreamStateChanged(void *data, pw_stream_state old, pw_stream_state state, const char *error_message);
|
||||
static void onStreamProcess(void *data);
|
||||
|
||||
void initDbus();
|
||||
void initPw();
|
||||
|
||||
// dbus handling
|
||||
void handleSessionCreated(quint32 &code, QVariantMap &results);
|
||||
void handleDevicesSelected(quint32 &code, QVariantMap &results);
|
||||
void handleSourcesSelected(quint32 &code, QVariantMap &results);
|
||||
void handleRemoteDesktopStarted(quint32 &code, QVariantMap &results);
|
||||
void handleSessionCreated(quint32 code, const QVariantMap &results);
|
||||
void handleDevicesSelected(quint32 code, const QVariantMap &results);
|
||||
void handleSourcesSelected(quint32 code, const QVariantMap &results);
|
||||
void handleRemoteDesktopStarted(quint32 code, const QVariantMap &results);
|
||||
void setVideoSize(const QSize &size);
|
||||
|
||||
// pw handling
|
||||
pw_stream *createReceivingStream();
|
||||
void handleFrame(pw_buffer *pwBuffer);
|
||||
void handleFrame(const PipeWireFrame &frame);
|
||||
|
||||
// link to public interface
|
||||
PWFrameBuffer *q;
|
||||
|
||||
// pipewire stuff
|
||||
struct pw_context *pwContext = nullptr;
|
||||
struct pw_core *pwCore = nullptr;
|
||||
struct pw_stream *pwStream = nullptr;
|
||||
struct pw_thread_loop *pwMainLoop = nullptr;
|
||||
|
||||
// wayland-like listeners
|
||||
// ...of events that happen in pipewire server
|
||||
spa_hook coreListener = {};
|
||||
spa_hook streamListener = {};
|
||||
|
||||
// event handlers
|
||||
pw_core_events pwCoreEvents = {};
|
||||
pw_stream_events pwStreamEvents = {};
|
||||
|
||||
uint pwStreamNodeId = 0;
|
||||
|
||||
// negotiated video format
|
||||
spa_video_info_raw *videoFormat = nullptr;
|
||||
|
||||
// requests a session from XDG Desktop Portal
|
||||
// auto-generated and compiled from xdp_dbus_interface.xml file
|
||||
QScopedPointer<OrgFreedesktopPortalScreenCastInterface> dbusXdpScreenCastService;
|
||||
@@ -162,113 +99,24 @@ private:
|
||||
|
||||
// XDP screencast session handle
|
||||
QDBusObjectPath sessionPath;
|
||||
// Pipewire file descriptor
|
||||
QDBusUnixFileDescriptor pipewireFd;
|
||||
|
||||
// screen geometry holder
|
||||
QSize streamSize;
|
||||
QSize videoSize;
|
||||
|
||||
// Allowed devices
|
||||
uint devices = 0;
|
||||
|
||||
// sanity indicator
|
||||
bool isValid = true;
|
||||
|
||||
QImage cursorTexture;
|
||||
QPoint cursorPosition;
|
||||
QPoint cursorHotspot;
|
||||
|
||||
#if HAVE_DMA_BUF
|
||||
struct EGLStruct {
|
||||
QList<QByteArray> extensions;
|
||||
EGLDisplay display = EGL_NO_DISPLAY;
|
||||
EGLContext context = EGL_NO_CONTEXT;
|
||||
};
|
||||
|
||||
bool m_eglInitialized = false;
|
||||
qint32 m_drmFd = 0; // for GBM buffer mmap
|
||||
gbm_device *m_gbmDevice = nullptr; // for passed GBM buffer retrieval
|
||||
|
||||
EGLStruct m_egl;
|
||||
#endif /* HAVE_DMA_BUF */
|
||||
std::unique_ptr<PipeWireSourceStream> stream;
|
||||
std::optional<PipeWireCursor> cursor;
|
||||
DmaBufHandler m_dmabufHandler;
|
||||
};
|
||||
|
||||
PWFrameBuffer::Private::Private(PWFrameBuffer *q) : q(q)
|
||||
PWFrameBuffer::Private::Private(PWFrameBuffer *q)
|
||||
: q(q)
|
||||
, stream(new PipeWireSourceStream(q))
|
||||
{
|
||||
pwCoreEvents.version = PW_VERSION_CORE_EVENTS;
|
||||
pwCoreEvents.error = &onCoreError;
|
||||
|
||||
pwStreamEvents.version = PW_VERSION_STREAM_EVENTS;
|
||||
pwStreamEvents.state_changed = &onStreamStateChanged;
|
||||
pwStreamEvents.param_changed = &onStreamParamChanged;
|
||||
pwStreamEvents.process = &onStreamProcess;
|
||||
|
||||
#if HAVE_DMA_BUF
|
||||
m_drmFd = open("/dev/dri/renderD128", O_RDWR);
|
||||
|
||||
if (m_drmFd < 0) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to open drm render node: " << strerror(errno);
|
||||
return;
|
||||
}
|
||||
|
||||
m_gbmDevice = gbm_create_device(m_drmFd);
|
||||
|
||||
if (!m_gbmDevice) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Cannot create GBM device: " << strerror(errno);
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the list of client extensions
|
||||
const char* clientExtensionsCString = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
|
||||
const QByteArray clientExtensionsString = QByteArray::fromRawData(clientExtensionsCString, qstrlen(clientExtensionsCString));
|
||||
if (clientExtensionsString.isEmpty()) {
|
||||
// If eglQueryString() returned NULL, the implementation doesn't support
|
||||
// EGL_EXT_client_extensions. Expect an EGL_BAD_DISPLAY error.
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "No client extensions defined! " << formatGLError(eglGetError());
|
||||
return;
|
||||
}
|
||||
|
||||
m_egl.extensions = clientExtensionsString.split(' ');
|
||||
|
||||
// Use eglGetPlatformDisplayEXT() to get the display pointer
|
||||
// if the implementation supports it.
|
||||
if (!m_egl.extensions.contains(QByteArrayLiteral("EGL_EXT_platform_base")) ||
|
||||
!m_egl.extensions.contains(QByteArrayLiteral("EGL_MESA_platform_gbm"))) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "One of required EGL extensions is missing";
|
||||
return;
|
||||
}
|
||||
|
||||
m_egl.display = eglGetPlatformDisplayEXT(EGL_PLATFORM_GBM_MESA, m_gbmDevice, nullptr);
|
||||
|
||||
if (m_egl.display == EGL_NO_DISPLAY) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Error during obtaining EGL display: " << formatGLError(eglGetError());
|
||||
return;
|
||||
}
|
||||
|
||||
EGLint major, minor;
|
||||
if (eglInitialize(m_egl.display, &major, &minor) == EGL_FALSE) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Error during eglInitialize: " << formatGLError(eglGetError());
|
||||
return;
|
||||
}
|
||||
|
||||
if (eglBindAPI(EGL_OPENGL_API) == EGL_FALSE) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "bind OpenGL API failed";
|
||||
return;
|
||||
}
|
||||
|
||||
m_egl.context = eglCreateContext(m_egl.display, nullptr, EGL_NO_CONTEXT, nullptr);
|
||||
|
||||
if (m_egl.context == EGL_NO_CONTEXT) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Couldn't create EGL context: " << formatGLError(eglGetError());
|
||||
return;
|
||||
}
|
||||
|
||||
qCDebug(KRFB_FB_PIPEWIRE) << "Egl initialization succeeded";
|
||||
qCDebug(KRFB_FB_PIPEWIRE) << QStringLiteral("EGL version: %1.%2").arg(major).arg(minor);
|
||||
|
||||
m_eglInitialized = true;
|
||||
#endif /* HAVE_DMA_BUF */
|
||||
QObject::connect(stream.get(), &PipeWireSourceStream::frameReceived, q, [this] (const PipeWireFrame &frame) {
|
||||
handleFrame(frame);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -314,7 +162,7 @@ void PWFrameBuffer::Private::initDbus()
|
||||
SLOT(handleXdpSessionCreated(uint, QVariantMap)));
|
||||
}
|
||||
|
||||
void PWFrameBuffer::handleXdpSessionCreated(quint32 code, QVariantMap results)
|
||||
void PWFrameBuffer::handleXdpSessionCreated(quint32 code, const QVariantMap &results)
|
||||
{
|
||||
d->handleSessionCreated(code, results);
|
||||
}
|
||||
@@ -326,7 +174,7 @@ void PWFrameBuffer::handleXdpSessionCreated(quint32 code, QVariantMap results)
|
||||
* @param code return code for dbus call. Zero is success, non-zero means error
|
||||
* @param results map with results of call.
|
||||
*/
|
||||
void PWFrameBuffer::Private::handleSessionCreated(quint32 &code, QVariantMap &results)
|
||||
void PWFrameBuffer::Private::handleSessionCreated(quint32 code, const QVariantMap &results)
|
||||
{
|
||||
if (code != 0) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to create session: " << code;
|
||||
@@ -340,8 +188,16 @@ void PWFrameBuffer::Private::handleSessionCreated(quint32 &code, QVariantMap &re
|
||||
auto selectionOptions = QVariantMap {
|
||||
// We have to specify it's an uint, otherwise xdg-desktop-portal will not forward it to backend implementation
|
||||
{ QStringLiteral("types"), QVariant::fromValue<uint>(7) }, // request all (KeyBoard, Pointer, TouchScreen)
|
||||
{ QStringLiteral("handle_token"), QStringLiteral("krfb%1").arg(QRandomGenerator::global()->generate()) }
|
||||
{ QStringLiteral("handle_token"), QStringLiteral("krfb%1").arg(QRandomGenerator::global()->generate()) },
|
||||
{ QStringLiteral("persist_mode"), QVariant::fromValue<uint>(2) }, // Persist permission until explicitly revoked by user
|
||||
};
|
||||
|
||||
KConfigGroup stateConfig = KSharedConfig::openStateConfig()->group(QStringLiteral("XdgPortal"));
|
||||
const QString restoreToken = stateConfig.readEntry(QStringLiteral("RestoreToken"), QString());
|
||||
if (!restoreToken.isEmpty()) {
|
||||
selectionOptions[QStringLiteral("restore_token")] = restoreToken;
|
||||
}
|
||||
|
||||
auto selectorReply = dbusXdpRemoteDesktopService->SelectDevices(sessionPath, selectionOptions);
|
||||
selectorReply.waitForFinished();
|
||||
if (!selectorReply.isValid()) {
|
||||
@@ -357,7 +213,7 @@ void PWFrameBuffer::Private::handleSessionCreated(quint32 &code, QVariantMap &re
|
||||
SLOT(handleXdpDevicesSelected(uint, QVariantMap)));
|
||||
}
|
||||
|
||||
void PWFrameBuffer::handleXdpDevicesSelected(quint32 code, QVariantMap results)
|
||||
void PWFrameBuffer::handleXdpDevicesSelected(quint32 code, const QVariantMap &results)
|
||||
{
|
||||
d->handleDevicesSelected(code, results);
|
||||
}
|
||||
@@ -368,7 +224,7 @@ void PWFrameBuffer::handleXdpDevicesSelected(quint32 code, QVariantMap results)
|
||||
* @param code return code for dbus call. Zero is success, non-zero means error
|
||||
* @param results map with results of call.
|
||||
*/
|
||||
void PWFrameBuffer::Private::handleDevicesSelected(quint32 &code, QVariantMap &results)
|
||||
void PWFrameBuffer::Private::handleDevicesSelected(quint32 code, const QVariantMap &results)
|
||||
{
|
||||
Q_UNUSED(results)
|
||||
if (code != 0) {
|
||||
@@ -398,7 +254,7 @@ void PWFrameBuffer::Private::handleDevicesSelected(quint32 &code, QVariantMap &r
|
||||
SLOT(handleXdpSourcesSelected(uint, QVariantMap)));
|
||||
}
|
||||
|
||||
void PWFrameBuffer::handleXdpSourcesSelected(quint32 code, QVariantMap results)
|
||||
void PWFrameBuffer::handleXdpSourcesSelected(quint32 code, const QVariantMap &results)
|
||||
{
|
||||
d->handleSourcesSelected(code, results);
|
||||
}
|
||||
@@ -411,7 +267,7 @@ void PWFrameBuffer::handleXdpSourcesSelected(quint32 code, QVariantMap results)
|
||||
* @param code return code for dbus call. Zero is success, non-zero means error
|
||||
* @param results map with results of call.
|
||||
*/
|
||||
void PWFrameBuffer::Private::handleSourcesSelected(quint32 &code, QVariantMap &)
|
||||
void PWFrameBuffer::Private::handleSourcesSelected(quint32 code, const QVariantMap &)
|
||||
{
|
||||
if (code != 0) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to select sources: " << code;
|
||||
@@ -434,7 +290,7 @@ void PWFrameBuffer::Private::handleSourcesSelected(quint32 &code, QVariantMap &)
|
||||
}
|
||||
|
||||
|
||||
void PWFrameBuffer::handleXdpRemoteDesktopStarted(quint32 code, QVariantMap results)
|
||||
void PWFrameBuffer::handleXdpRemoteDesktopStarted(quint32 code, const QVariantMap &results)
|
||||
{
|
||||
d->handleRemoteDesktopStarted(code, results);
|
||||
}
|
||||
@@ -446,7 +302,7 @@ void PWFrameBuffer::handleXdpRemoteDesktopStarted(quint32 code, QVariantMap resu
|
||||
* @param code return code for dbus call. Zero is success, non-zero means error
|
||||
* @param results map with results of call.
|
||||
*/
|
||||
void PWFrameBuffer::Private::handleRemoteDesktopStarted(quint32 &code, QVariantMap &results)
|
||||
void PWFrameBuffer::Private::handleRemoteDesktopStarted(quint32 code, const QVariantMap &results)
|
||||
{
|
||||
if (code != 0) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to start screencast: " << code;
|
||||
@@ -454,8 +310,14 @@ void PWFrameBuffer::Private::handleRemoteDesktopStarted(quint32 &code, QVariantM
|
||||
return;
|
||||
}
|
||||
|
||||
if (results.value(QStringLiteral("devices")).toUInt() == 0) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "No devices were granted" << results;
|
||||
isValid = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// there should be only one stream
|
||||
Streams streams = qdbus_cast<Streams>(results.value(QStringLiteral("streams")));
|
||||
const Streams streams = qdbus_cast<Streams>(results.value(QStringLiteral("streams")));
|
||||
if (streams.isEmpty()) {
|
||||
// maybe we should check deeper with qdbus_cast but this suffices for now
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to get screencast streams";
|
||||
@@ -471,501 +333,99 @@ void PWFrameBuffer::Private::handleRemoteDesktopStarted(quint32 &code, QVariantM
|
||||
return;
|
||||
}
|
||||
|
||||
pipewireFd = streamReply.value();
|
||||
QDBusUnixFileDescriptor pipewireFd = streamReply.value();
|
||||
if (!pipewireFd.isValid()) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Couldn't get pipewire connection file descriptor";
|
||||
isValid = false;
|
||||
return;
|
||||
}
|
||||
|
||||
devices = results.value(QStringLiteral("types")).toUInt();
|
||||
|
||||
pwStreamNodeId = streams.first().nodeId;
|
||||
|
||||
initPw();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief PWFrameBuffer::Private::initPw - initialize Pipewire socket connectivity.
|
||||
* pipewireFd should be pointing to existing file descriptor that was passed by D-Bus at this point.
|
||||
*/
|
||||
void PWFrameBuffer::Private::initPw() {
|
||||
qInfo() << "Initializing Pipewire connectivity";
|
||||
|
||||
// init pipewire (required)
|
||||
pw_init(nullptr, nullptr); // args are not used anyways
|
||||
|
||||
pwMainLoop = pw_thread_loop_new("pipewire-main-loop", nullptr);
|
||||
pw_thread_loop_lock(pwMainLoop);
|
||||
|
||||
pwContext = pw_context_new(pw_thread_loop_get_loop(pwMainLoop), nullptr, 0);
|
||||
if (!pwContext) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to create PipeWire context";
|
||||
return;
|
||||
}
|
||||
|
||||
pwCore = pw_context_connect(pwContext, nullptr, 0);
|
||||
if (!pwCore) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to connect PipeWire context";
|
||||
return;
|
||||
}
|
||||
|
||||
pw_core_add_listener(pwCore, &coreListener, &pwCoreEvents, this);
|
||||
|
||||
pwStream = createReceivingStream();
|
||||
if (!pwStream) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to create PipeWire stream";
|
||||
return;
|
||||
}
|
||||
|
||||
if (pw_thread_loop_start(pwMainLoop) < 0) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to start main PipeWire loop";
|
||||
if (!stream->createStream(streams.first().nodeId, pipewireFd.takeFileDescriptor())) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Couldn't create the pipewire stream";
|
||||
isValid = false;
|
||||
}
|
||||
|
||||
pw_thread_loop_unlock(pwMainLoop);
|
||||
}
|
||||
|
||||
void PWFrameBuffer::Private::onCoreError(void *data, uint32_t id, int seq, int res, const char *message)
|
||||
{
|
||||
Q_UNUSED(data);
|
||||
Q_UNUSED(id);
|
||||
Q_UNUSED(seq);
|
||||
Q_UNUSED(res);
|
||||
|
||||
qInfo() << "core error: " << message;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief PWFrameBuffer::Private::onStreamStateChanged - called whenever stream state changes on pipewire server
|
||||
* @param data pointer that you have set in pw_stream_add_listener call's last argument
|
||||
* @param state new state that stream has changed to
|
||||
* @param error_message optional error message, is set to non-null if state is error
|
||||
*/
|
||||
void PWFrameBuffer::Private::onStreamStateChanged(void *data, pw_stream_state /*old*/, pw_stream_state state, const char *error_message)
|
||||
{
|
||||
Q_UNUSED(data);
|
||||
|
||||
qInfo() << "Stream state changed: " << pw_stream_state_as_string(state);
|
||||
|
||||
switch (state) {
|
||||
case PW_STREAM_STATE_ERROR:
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "pipewire stream error: " << error_message;
|
||||
break;
|
||||
case PW_STREAM_STATE_PAUSED:
|
||||
case PW_STREAM_STATE_STREAMING:
|
||||
case PW_STREAM_STATE_UNCONNECTED:
|
||||
case PW_STREAM_STATE_CONNECTING:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#define CURSOR_BPP 4
|
||||
#define CURSOR_META_SIZE(w,h) (sizeof(struct spa_meta_cursor) + \
|
||||
sizeof(struct spa_meta_bitmap) + w * h * CURSOR_BPP)
|
||||
|
||||
/**
|
||||
* @brief PWFrameBuffer::Private::onStreamFormatChanged - being executed after stream is set to active
|
||||
* and after setup has been requested to connect to it. The actual video format is being negotiated here.
|
||||
* @param data pointer that you have set in pw_stream_add_listener call's last argument
|
||||
* @param format format that's being proposed
|
||||
*/
|
||||
void PWFrameBuffer::Private::onStreamParamChanged(void *data, uint32_t id, const struct spa_pod *format)
|
||||
{
|
||||
qInfo() << "Stream format changed";
|
||||
auto d = static_cast<PWFrameBuffer::Private *>(data);
|
||||
|
||||
if (!format || id != SPA_PARAM_Format) {
|
||||
return;
|
||||
}
|
||||
|
||||
d->videoFormat = new spa_video_info_raw();
|
||||
spa_format_video_raw_parse(format, d->videoFormat);
|
||||
auto width = d->videoFormat->size.width;
|
||||
auto height = d->videoFormat->size.height;
|
||||
auto stride = SPA_ROUND_UP_N(width * BYTES_PER_PIXEL, 4);
|
||||
auto size = height * stride;
|
||||
d->streamSize = QSize(width, height);
|
||||
// save restore token
|
||||
KConfigGroup stateConfig = KSharedConfig::openStateConfig()->group(QStringLiteral("XdgPortal"));
|
||||
stateConfig.writeEntry(QStringLiteral("RestoreToken"), results[QStringLiteral("restore_token")].toString());
|
||||
}
|
||||
|
||||
uint8_t buffer[1024];
|
||||
auto builder = SPA_POD_BUILDER_INIT(buffer, sizeof(buffer));
|
||||
void PWFrameBuffer::Private::handleFrame(const PipeWireFrame &frame)
|
||||
{
|
||||
cursor = frame.cursor;
|
||||
|
||||
// setup buffers and meta header for new format
|
||||
|
||||
#if HAVE_DMA_BUF
|
||||
const auto bufferTypes = d->m_eglInitialized ? (1 << SPA_DATA_DmaBuf) | (1 << SPA_DATA_MemFd) | (1 << SPA_DATA_MemPtr) :
|
||||
(1 << SPA_DATA_MemFd) | (1 << SPA_DATA_MemPtr);
|
||||
#if KPIPEWIRE60
|
||||
if (!frame.dmabuf && !frame.image) {
|
||||
#else
|
||||
const auto bufferTypes = (1 << SPA_DATA_MemFd) | (1 << SPA_DATA_MemPtr);
|
||||
#endif /* HAVE_DMA_BUF */
|
||||
|
||||
QVector<const struct spa_pod *> params = {
|
||||
reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
|
||||
SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers,
|
||||
SPA_PARAM_BUFFERS_size, SPA_POD_Int(size),
|
||||
SPA_PARAM_BUFFERS_stride, SPA_POD_Int(stride),
|
||||
SPA_PARAM_BUFFERS_buffers, SPA_POD_CHOICE_RANGE_Int(8, 1, 32),
|
||||
SPA_PARAM_BUFFERS_blocks, SPA_POD_Int(1),
|
||||
SPA_PARAM_BUFFERS_align, SPA_POD_Int(16),
|
||||
SPA_PARAM_BUFFERS_dataType, SPA_POD_CHOICE_FLAGS_Int(bufferTypes))),
|
||||
reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
|
||||
SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
|
||||
SPA_PARAM_META_type, SPA_POD_Id(SPA_META_Header),
|
||||
SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct spa_meta_header)))),
|
||||
reinterpret_cast<spa_pod*>(spa_pod_builder_add_object(&builder,
|
||||
SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type,
|
||||
SPA_POD_Id(SPA_META_VideoCrop), SPA_PARAM_META_size,
|
||||
SPA_POD_Int(sizeof(struct spa_meta_region)))),
|
||||
reinterpret_cast<spa_pod*>(spa_pod_builder_add_object ( &builder,
|
||||
SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
|
||||
SPA_PARAM_META_type, SPA_POD_Id (SPA_META_Cursor),
|
||||
SPA_PARAM_META_size, SPA_POD_CHOICE_RANGE_Int (CURSOR_META_SIZE (64, 64),
|
||||
CURSOR_META_SIZE (1, 1),
|
||||
CURSOR_META_SIZE (1024, 1024)))),
|
||||
reinterpret_cast<spa_pod*>(spa_pod_builder_add_object ( &builder,
|
||||
SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
|
||||
SPA_PARAM_META_type, SPA_POD_Id(SPA_META_VideoDamage),
|
||||
SPA_PARAM_META_size, SPA_POD_CHOICE_RANGE_Int(
|
||||
sizeof(struct spa_meta_region) * 16,
|
||||
sizeof(struct spa_meta_region) * 1,
|
||||
sizeof(struct spa_meta_region) * 16))),
|
||||
};
|
||||
pw_stream_update_params(d->pwStream, params.data(), params.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief PWFrameBuffer::Private::onNewBuffer - called when new buffer is available in pipewire stream
|
||||
* @param data pointer that you have set in pw_stream_add_listener call's last argument
|
||||
* @param id
|
||||
*/
|
||||
void PWFrameBuffer::Private::onStreamProcess(void *data)
|
||||
{
|
||||
auto d = static_cast<PWFrameBuffer::Private *>(data);
|
||||
|
||||
pw_buffer* next_buffer;
|
||||
pw_buffer* buffer = nullptr;
|
||||
|
||||
next_buffer = pw_stream_dequeue_buffer(d->pwStream);
|
||||
while (next_buffer) {
|
||||
buffer = next_buffer;
|
||||
next_buffer = pw_stream_dequeue_buffer(d->pwStream);
|
||||
|
||||
if (next_buffer) {
|
||||
pw_stream_queue_buffer(d->pwStream, buffer);
|
||||
}
|
||||
}
|
||||
|
||||
if (!buffer) {
|
||||
return;
|
||||
}
|
||||
|
||||
d->handleFrame(buffer);
|
||||
|
||||
pw_stream_queue_buffer(d->pwStream, buffer);
|
||||
}
|
||||
|
||||
static QImage::Format spaToQImageFormat(quint32 format)
|
||||
{
|
||||
return format == SPA_VIDEO_FORMAT_BGR ? QImage::Format_BGR888
|
||||
: format == SPA_VIDEO_FORMAT_RGBx ? QImage::Format_RGBX8888
|
||||
: QImage::Format_RGB32;
|
||||
}
|
||||
|
||||
void PWFrameBuffer::Private::handleFrame(pw_buffer *pwBuffer)
|
||||
{
|
||||
auto spaBuffer = pwBuffer->buffer;
|
||||
uint8_t *src = nullptr;
|
||||
|
||||
// process cursor
|
||||
{
|
||||
struct spa_meta_cursor *cursor = static_cast<struct spa_meta_cursor*>(spa_buffer_find_meta_data (spaBuffer, SPA_META_Cursor, sizeof (*cursor)));
|
||||
if (spa_meta_cursor_is_valid (cursor)) {
|
||||
struct spa_meta_bitmap *bitmap = nullptr;
|
||||
|
||||
if (cursor->bitmap_offset)
|
||||
bitmap = SPA_MEMBER (cursor, cursor->bitmap_offset, struct spa_meta_bitmap);
|
||||
|
||||
if (bitmap && bitmap->size.width > 0 && bitmap->size.height > 0) {
|
||||
const uint8_t *bitmap_data;
|
||||
|
||||
bitmap_data = SPA_MEMBER (bitmap, bitmap->offset, uint8_t);
|
||||
cursorHotspot = { cursor->hotspot.x, cursor->hotspot.y };
|
||||
cursorTexture = QImage(bitmap_data, bitmap->size.width, bitmap->size.height, bitmap->stride, spaToQImageFormat(bitmap->format));
|
||||
}
|
||||
|
||||
cursorPosition = QPoint{ cursor->position.x, cursor->position.y };
|
||||
}
|
||||
}
|
||||
|
||||
if (spaBuffer->datas[0].chunk->size == 0) {
|
||||
if (!frame.dmabuf && !frame.dataFrame) {
|
||||
#endif
|
||||
qCDebug(KRFB_FB_PIPEWIRE) << "Got empty buffer. The buffer possibly carried only "
|
||||
"information about the mouse cursor.";
|
||||
return;
|
||||
}
|
||||
|
||||
std::function<void()> cleanup;
|
||||
const qint64 srcStride = spaBuffer->datas[0].chunk->stride;
|
||||
if (spaBuffer->datas->type == SPA_DATA_MemFd) {
|
||||
uint8_t *map = static_cast<uint8_t*>(mmap(
|
||||
nullptr, spaBuffer->datas->maxsize + spaBuffer->datas->mapoffset,
|
||||
PROT_READ, MAP_PRIVATE, spaBuffer->datas->fd, 0));
|
||||
|
||||
if (map == MAP_FAILED) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to mmap the memory: " << strerror(errno);
|
||||
return;
|
||||
}
|
||||
src = SPA_MEMBER(map, spaBuffer->datas[0].mapoffset, uint8_t);
|
||||
|
||||
cleanup = [map, spaBuffer] {
|
||||
munmap(map, spaBuffer->datas->maxsize + spaBuffer->datas->mapoffset);
|
||||
};
|
||||
} else if (spaBuffer->datas[0].type == SPA_DATA_MemPtr) {
|
||||
src = static_cast<uint8_t*>(spaBuffer->datas[0].data);
|
||||
#if KPIPEWIRE60
|
||||
if (frame.image) {
|
||||
memcpy(q->fb, frame.image->constBits(), frame.image->sizeInBytes());
|
||||
setVideoSize(frame.image->size());
|
||||
}
|
||||
#if HAVE_DMA_BUF
|
||||
else if (spaBuffer->datas->type == SPA_DATA_DmaBuf) {
|
||||
if (!m_eglInitialized) {
|
||||
// Shouldn't reach this
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to process DMA buffer.";
|
||||
return;
|
||||
}
|
||||
|
||||
gbm_import_fd_data importInfo = {static_cast<int>(spaBuffer->datas->fd), static_cast<uint32_t>(streamSize.width()),
|
||||
static_cast<uint32_t>(streamSize.height()), static_cast<uint32_t>(spaBuffer->datas[0].chunk->stride), GBM_BO_FORMAT_ARGB8888};
|
||||
gbm_bo *imported = gbm_bo_import(m_gbmDevice, GBM_BO_IMPORT_FD, &importInfo, GBM_BO_USE_SCANOUT);
|
||||
if (!imported) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to process buffer: Cannot import passed GBM fd - " << strerror(errno);
|
||||
return;
|
||||
}
|
||||
|
||||
// bind context to render thread
|
||||
eglMakeCurrent(m_egl.display, EGL_NO_SURFACE, EGL_NO_SURFACE, m_egl.context);
|
||||
|
||||
// create EGL image from imported BO
|
||||
EGLImageKHR image = eglCreateImageKHR(m_egl.display, nullptr, EGL_NATIVE_PIXMAP_KHR, imported, nullptr);
|
||||
|
||||
if (image == EGL_NO_IMAGE_KHR) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to record frame: Error creating EGLImageKHR - " << formatGLError(glGetError());
|
||||
gbm_bo_destroy(imported);
|
||||
return;
|
||||
}
|
||||
|
||||
// create GL 2D texture for framebuffer
|
||||
GLuint texture;
|
||||
glGenTextures(1, &texture);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
glBindTexture(GL_TEXTURE_2D, texture);
|
||||
glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, image);
|
||||
|
||||
src = static_cast<uint8_t*>(malloc(srcStride * streamSize.height()));
|
||||
|
||||
GLenum glFormat = GL_BGRA;
|
||||
switch (videoFormat->format) {
|
||||
case SPA_VIDEO_FORMAT_RGBx:
|
||||
glFormat = GL_RGBA;
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_RGBA:
|
||||
glFormat = GL_RGBA;
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_BGRx:
|
||||
glFormat = GL_BGRA;
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_RGB:
|
||||
glFormat = GL_RGB;
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_BGR:
|
||||
glFormat = GL_BGR;
|
||||
break;
|
||||
default:
|
||||
glFormat = GL_BGRA;
|
||||
break;
|
||||
}
|
||||
glGetTexImage(GL_TEXTURE_2D, 0, glFormat, GL_UNSIGNED_BYTE, src);
|
||||
|
||||
if (!src) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to get image from DMA buffer.";
|
||||
gbm_bo_destroy(imported);
|
||||
return;
|
||||
}
|
||||
|
||||
cleanup = [src] {
|
||||
free(src);
|
||||
};
|
||||
|
||||
glDeleteTextures(1, &texture);
|
||||
eglDestroyImageKHR(m_egl.display, image);
|
||||
|
||||
gbm_bo_destroy(imported);
|
||||
#else
|
||||
if (frame.dataFrame) {
|
||||
// FIXME: Assuming stride == width * 4, not sure to which extent this holds
|
||||
setVideoSize(frame.dataFrame->size);
|
||||
memcpy(q->fb, frame.dataFrame->data, frame.dataFrame->size.width() * frame.dataFrame->stride);
|
||||
}
|
||||
#endif /* HAVE_DMA_BUF */
|
||||
|
||||
struct spa_meta_region* videoMetadata =
|
||||
static_cast<struct spa_meta_region*>(spa_buffer_find_meta_data(
|
||||
spaBuffer, SPA_META_VideoCrop, sizeof(*videoMetadata)));
|
||||
|
||||
if (videoMetadata && (videoMetadata->region.size.width > static_cast<uint32_t>(streamSize.width()) ||
|
||||
videoMetadata->region.size.height > static_cast<uint32_t>(streamSize.height()))) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Stream metadata sizes are wrong!";
|
||||
return;
|
||||
}
|
||||
|
||||
// Use video metadata when video size from metadata is set and smaller than
|
||||
// video stream size, so we need to adjust it.
|
||||
bool videoFullWidth = true;
|
||||
bool videoFullHeight = true;
|
||||
if (videoMetadata && videoMetadata->region.size.width != 0 &&
|
||||
videoMetadata->region.size.height != 0) {
|
||||
if (videoMetadata->region.size.width < static_cast<uint32_t>(streamSize.width())) {
|
||||
videoFullWidth = false;
|
||||
} else if (videoMetadata->region.size.height < static_cast<uint32_t>(streamSize.height())) {
|
||||
videoFullHeight = false;
|
||||
#endif
|
||||
else if (frame.dmabuf) {
|
||||
// FIXME: Assuming stride == width * 4, not sure to which extent this holds
|
||||
const QSize size = { frame.dmabuf->width, frame.dmabuf->height };
|
||||
setVideoSize(size);
|
||||
QImage src(reinterpret_cast<uchar*>(q->fb), size.width(), size.height(), QImage::Format_RGB32);
|
||||
if (!m_dmabufHandler.downloadFrame(src, frame)) {
|
||||
stream->renegotiateModifierFailed(frame.format, frame.dmabuf->modifier);
|
||||
qCDebug(KRFB_FB_PIPEWIRE) << "Failed to download frame.";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
QSize prevVideoSize = videoSize;
|
||||
if (!videoFullHeight || !videoFullWidth) {
|
||||
videoSize = QSize(videoMetadata->region.size.width, videoMetadata->region.size.height);
|
||||
} else {
|
||||
videoSize = streamSize;
|
||||
qCDebug(KRFB_FB_PIPEWIRE) << "Unknown kind of frame";
|
||||
}
|
||||
|
||||
if (!q->fb || videoSize != prevVideoSize) {
|
||||
if (q->fb) {
|
||||
free(q->fb);
|
||||
}
|
||||
q->fb = static_cast<char*>(malloc(videoSize.width() * videoSize.height() * BYTES_PER_PIXEL));
|
||||
|
||||
if (!q->fb) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to allocate buffer";
|
||||
isValid = false;
|
||||
return;
|
||||
}
|
||||
|
||||
Q_EMIT q->frameBufferChanged();
|
||||
}
|
||||
|
||||
const qint32 dstStride = videoSize.width() * BYTES_PER_PIXEL;
|
||||
Q_ASSERT(dstStride <= srcStride);
|
||||
|
||||
if (!videoFullHeight && (videoMetadata->region.position.y + videoSize.height() <= streamSize.height())) {
|
||||
src += srcStride * videoMetadata->region.position.y;
|
||||
}
|
||||
|
||||
const int xOffset = !videoFullWidth && (videoMetadata->region.position.x + videoSize.width() <= streamSize.width())
|
||||
? videoMetadata->region.position.x * BYTES_PER_PIXEL : 0;
|
||||
|
||||
char *dst = q->fb;
|
||||
for (int i = 0; i < videoSize.height(); ++i) {
|
||||
// Adjust source content based on crop video position if needed
|
||||
src += xOffset;
|
||||
std::memcpy(dst, src, dstStride);
|
||||
|
||||
if (videoFormat->format == SPA_VIDEO_FORMAT_BGRA || videoFormat->format == SPA_VIDEO_FORMAT_BGRx) {
|
||||
for (int j = 0; j < dstStride; j += 4) {
|
||||
std::swap(dst[j], dst[j + 2]);
|
||||
}
|
||||
}
|
||||
|
||||
src += srcStride - xOffset;
|
||||
dst += dstStride;
|
||||
}
|
||||
|
||||
if (spaBuffer->datas->type == SPA_DATA_MemFd ||
|
||||
spaBuffer->datas->type == SPA_DATA_DmaBuf) {
|
||||
cleanup();
|
||||
}
|
||||
|
||||
if (videoFormat->format != SPA_VIDEO_FORMAT_RGB) {
|
||||
QImage img((uchar*) q->fb, videoSize.width(), videoSize.height(), dstStride, spaToQImageFormat(videoFormat->format));
|
||||
img.convertTo(QImage::Format_RGB888);
|
||||
}
|
||||
|
||||
if (spa_meta* vdMeta = spa_buffer_find_meta(spaBuffer, SPA_META_VideoDamage)) {
|
||||
struct spa_meta_region *r;
|
||||
spa_meta_for_each(r, vdMeta) {
|
||||
if (!spa_meta_region_is_valid(r))
|
||||
break;
|
||||
|
||||
q->tiles.append(QRect(r->region.position.x, r->region.position.y, r->region.size.width, r->region.size.height));
|
||||
if (auto damage = frame.damage) {
|
||||
for (const auto &rect : *damage) {
|
||||
q->tiles.append(rect);
|
||||
}
|
||||
} else {
|
||||
q->tiles.append(QRect(0, 0, videoSize.width(), videoSize.height()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief PWFrameBuffer::Private::createReceivingStream - create a stream that will consume Pipewire buffers
|
||||
* and copy the framebuffer to the existing image that we track. The state of the stream and configuration
|
||||
* are later handled by the corresponding listener.
|
||||
*/
|
||||
pw_stream *PWFrameBuffer::Private::createReceivingStream()
|
||||
void PWFrameBuffer::Private::setVideoSize(const QSize &size)
|
||||
{
|
||||
spa_rectangle pwMinScreenBounds = SPA_RECTANGLE(1, 1);
|
||||
spa_rectangle pwMaxScreenBounds = SPA_RECTANGLE(UINT32_MAX, UINT32_MAX);
|
||||
|
||||
spa_fraction pwFramerateMin = SPA_FRACTION(0, 1);
|
||||
spa_fraction pwFramerateMax = SPA_FRACTION(60, 1);
|
||||
|
||||
pw_properties* reuseProps = pw_properties_new_string("pipewire.client.reuse=1");
|
||||
|
||||
auto stream = pw_stream_new(pwCore, "krfb-fb-consume-stream", reuseProps);
|
||||
|
||||
uint8_t buffer[1024] = {};
|
||||
const spa_pod *params[1];
|
||||
auto builder = SPA_POD_BUILDER_INIT(buffer, sizeof(buffer));
|
||||
|
||||
params[0] = reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
|
||||
SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
|
||||
SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_video),
|
||||
SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw),
|
||||
SPA_FORMAT_VIDEO_format, SPA_POD_CHOICE_ENUM_Id(6,
|
||||
SPA_VIDEO_FORMAT_RGBx, SPA_VIDEO_FORMAT_RGBA,
|
||||
SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_BGRA,
|
||||
SPA_VIDEO_FORMAT_RGB, SPA_VIDEO_FORMAT_BGR),
|
||||
SPA_FORMAT_VIDEO_size, SPA_POD_CHOICE_RANGE_Rectangle(&pwMaxScreenBounds, &pwMinScreenBounds, &pwMaxScreenBounds),
|
||||
SPA_FORMAT_VIDEO_framerate, SPA_POD_Fraction(&pwFramerateMin),
|
||||
SPA_FORMAT_VIDEO_maxFramerate, SPA_POD_CHOICE_RANGE_Fraction(&pwFramerateMax, &pwFramerateMin, &pwFramerateMax)));
|
||||
|
||||
pw_stream_add_listener(stream, &streamListener, &pwStreamEvents, this);
|
||||
|
||||
if (pw_stream_connect(stream, PW_DIRECTION_INPUT, pwStreamNodeId, PW_STREAM_FLAG_AUTOCONNECT, params, 1) != 0) {
|
||||
isValid = false;
|
||||
if (q->fb && videoSize == size) {
|
||||
return;
|
||||
}
|
||||
|
||||
return stream;
|
||||
free(q->fb);
|
||||
q->fb = static_cast<char*>(malloc(size.width() * size.height() * BYTES_PER_PIXEL));
|
||||
if (!q->fb) {
|
||||
qCWarning(KRFB_FB_PIPEWIRE) << "Failed to allocate buffer";
|
||||
isValid = false;
|
||||
return;
|
||||
}
|
||||
videoSize = size;
|
||||
|
||||
Q_EMIT q->frameBufferChanged();
|
||||
}
|
||||
|
||||
PWFrameBuffer::Private::~Private()
|
||||
{
|
||||
if (pwMainLoop) {
|
||||
pw_thread_loop_stop(pwMainLoop);
|
||||
}
|
||||
|
||||
if (pwStream) {
|
||||
pw_stream_destroy(pwStream);
|
||||
}
|
||||
|
||||
if (pwCore) {
|
||||
pw_core_disconnect(pwCore);
|
||||
}
|
||||
|
||||
if (pwContext) {
|
||||
pw_context_destroy(pwContext);
|
||||
}
|
||||
|
||||
if (pwMainLoop) {
|
||||
pw_thread_loop_destroy(pwMainLoop);
|
||||
}
|
||||
}
|
||||
|
||||
PWFrameBuffer::PWFrameBuffer(QObject *parent)
|
||||
: FrameBuffer (parent),
|
||||
d(new Private(this))
|
||||
{
|
||||
fb = nullptr;
|
||||
}
|
||||
|
||||
PWFrameBuffer::~PWFrameBuffer()
|
||||
@@ -998,8 +458,7 @@ void PWFrameBuffer::startVirtualMonitor(const QString& name, const QSize& resolu
|
||||
auto screencasting = new Screencasting(registry, wlname, version, this);
|
||||
auto r = screencasting->createVirtualMonitorStream(name, resolution, dpr, Screencasting::Metadata);
|
||||
connect(r, &ScreencastingStream::created, this, [this] (quint32 nodeId) {
|
||||
d->pwStreamNodeId = nodeId;
|
||||
d->initPw();
|
||||
d->stream->createStream(nodeId, 0);
|
||||
});
|
||||
});
|
||||
registry->create(connection);
|
||||
@@ -1013,11 +472,17 @@ int PWFrameBuffer::depth()
|
||||
|
||||
int PWFrameBuffer::height()
|
||||
{
|
||||
if (!d->videoSize.isValid()) {
|
||||
return 0;
|
||||
}
|
||||
return d->videoSize.height();
|
||||
}
|
||||
|
||||
int PWFrameBuffer::width()
|
||||
{
|
||||
if (!d->videoSize.isValid()) {
|
||||
return 0;
|
||||
}
|
||||
return d->videoSize.width();
|
||||
}
|
||||
|
||||
@@ -1047,7 +512,7 @@ void PWFrameBuffer::stopMonitor()
|
||||
QVariant PWFrameBuffer::customProperty(const QString &property) const
|
||||
{
|
||||
if (property == QLatin1String("stream_node_id")) {
|
||||
return QVariant::fromValue<uint>(d->pwStreamNodeId);
|
||||
return QVariant::fromValue<uint>(d->stream->nodeId());
|
||||
} if (property == QLatin1String("session_handle")) {
|
||||
return QVariant::fromValue<QDBusObjectPath>(d->sessionPath);
|
||||
}
|
||||
@@ -1062,5 +527,10 @@ bool PWFrameBuffer::isValid() const
|
||||
|
||||
QPoint PWFrameBuffer::cursorPosition()
|
||||
{
|
||||
return d->cursorPosition;
|
||||
const auto cursor = d->cursor;
|
||||
if (cursor) {
|
||||
return cursor->position;
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,10 +50,10 @@ public:
|
||||
bool isValid() const;
|
||||
|
||||
private Q_SLOTS:
|
||||
void handleXdpSessionCreated(quint32 code, QVariantMap results);
|
||||
void handleXdpDevicesSelected(quint32 code, QVariantMap results);
|
||||
void handleXdpSourcesSelected(quint32 code, QVariantMap results);
|
||||
void handleXdpRemoteDesktopStarted(quint32 code, QVariantMap results);
|
||||
void handleXdpSessionCreated(quint32 code, const QVariantMap &results);
|
||||
void handleXdpDevicesSelected(quint32 code, const QVariantMap &results);
|
||||
void handleXdpSourcesSelected(quint32 code, const QVariantMap &results);
|
||||
void handleXdpRemoteDesktopStarted(quint32 code, const QVariantMap &results);
|
||||
|
||||
private:
|
||||
class Private;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "pw_framebuffer.h"
|
||||
#include <KPluginFactory>
|
||||
|
||||
K_PLUGIN_CLASS(PWFrameBufferPlugin)
|
||||
K_PLUGIN_CLASS_WITH_JSON(PWFrameBufferPlugin, "pipewire.json")
|
||||
|
||||
PWFrameBufferPlugin::PWFrameBufferPlugin(QObject *parent, const QVariantList &args)
|
||||
: FrameBufferPlugin(parent, args)
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
|
||||
|
||||
#include "framebufferplugin.h"
|
||||
#include <QWidget>
|
||||
|
||||
|
||||
class FrameBuffer;
|
||||
|
||||
|
||||
@@ -5,12 +5,15 @@
|
||||
*/
|
||||
|
||||
#include "screencasting.h"
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 7, 1)
|
||||
#include "qwayland-zkde-screencast-unstable-v1.h"
|
||||
#include <KWayland/Client/output.h>
|
||||
#include <KWayland/Client/plasmawindowmanagement.h>
|
||||
#else
|
||||
#include "qwayland-screencast.h"
|
||||
#endif
|
||||
#include <KWayland/Client/registry.h>
|
||||
#include <QDebug>
|
||||
#include <QRect>
|
||||
#include <QPointer>
|
||||
|
||||
using namespace KWayland::Client;
|
||||
|
||||
@@ -96,28 +99,6 @@ Screencasting::Screencasting(Registry *registry, int id, int version, QObject *p
|
||||
|
||||
Screencasting::~Screencasting() = default;
|
||||
|
||||
ScreencastingStream *Screencasting::createOutputStream(Output *output, CursorMode mode)
|
||||
{
|
||||
auto stream = new ScreencastingStream(this);
|
||||
stream->setObjectName(output->model());
|
||||
stream->d->init(d->stream_output(*output, mode));
|
||||
return stream;
|
||||
}
|
||||
|
||||
ScreencastingStream *Screencasting::createWindowStream(PlasmaWindow *window, CursorMode mode)
|
||||
{
|
||||
auto stream = createWindowStream(QString::fromUtf8(window->uuid()), mode);
|
||||
stream->setObjectName(window->appId());
|
||||
return stream;
|
||||
}
|
||||
|
||||
ScreencastingStream *Screencasting::createWindowStream(const QString &uuid, CursorMode mode)
|
||||
{
|
||||
auto stream = new ScreencastingStream(this);
|
||||
stream->d->init(d->stream_window(uuid, mode));
|
||||
return stream;
|
||||
}
|
||||
|
||||
ScreencastingStream * Screencasting::createVirtualMonitorStream(const QString& name, const QSize& resolution, qreal dpr, Screencasting::CursorMode mode)
|
||||
{
|
||||
auto stream = new ScreencastingStream(this);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#include <QObject>
|
||||
#include <QSharedPointer>
|
||||
#include <QVector>
|
||||
#include <QList>
|
||||
#include <optional>
|
||||
|
||||
struct zkde_screencast_unstable_v1;
|
||||
@@ -60,9 +60,6 @@ public:
|
||||
};
|
||||
Q_ENUM(CursorMode)
|
||||
|
||||
ScreencastingStream *createOutputStream(KWayland::Client::Output *output, CursorMode mode);
|
||||
ScreencastingStream *createWindowStream(KWayland::Client::PlasmaWindow *window, CursorMode mode);
|
||||
ScreencastingStream *createWindowStream(const QString &uuid, CursorMode mode);
|
||||
ScreencastingStream *createVirtualMonitorStream(const QString &name, const QSize &resolution, qreal dpr, CursorMode mode);
|
||||
|
||||
void setup(zkde_screencast_unstable_v1 *screencasting);
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
include_directories (${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
set (krfb_framebuffer_qt_SRCS
|
||||
qtframebuffer.cpp
|
||||
qtframebufferplugin.cpp
|
||||
)
|
||||
|
||||
ecm_qt_declare_logging_category(krfb_framebuffer_qt_SRCS
|
||||
HEADER krfb_fb_qt_debug.h
|
||||
IDENTIFIER KRFB_FB_QT
|
||||
CATEGORY_NAME krfb.framebuffer.qt
|
||||
DESCRIPTION "KRFB Qt framebuffer plugin"
|
||||
EXPORT KRFB
|
||||
)
|
||||
|
||||
add_library(krfb_framebuffer_qt
|
||||
MODULE
|
||||
${krfb_framebuffer_qt_SRCS}
|
||||
)
|
||||
|
||||
target_link_libraries (krfb_framebuffer_qt
|
||||
Qt5::Core
|
||||
Qt5::Gui
|
||||
KF5::CoreAddons
|
||||
krfbprivate
|
||||
)
|
||||
|
||||
set_target_properties(krfb_framebuffer_qt PROPERTIES OUTPUT_NAME qt)
|
||||
install (TARGETS krfb_framebuffer_qt
|
||||
DESTINATION ${KDE_INSTALL_PLUGINDIR}/krfb/framebuffer
|
||||
)
|
||||
@@ -1,128 +0,0 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2007 Alessandro Praduroux <pradu@pradu.it>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include "qtframebuffer.h"
|
||||
|
||||
#include <QTimer>
|
||||
#include <QRegion>
|
||||
#include <QPixmap>
|
||||
#include <QBitmap>
|
||||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
#include <QScreen>
|
||||
|
||||
|
||||
const int UPDATE_TIME = 500;
|
||||
|
||||
QtFrameBuffer::QtFrameBuffer(QObject *parent)
|
||||
: FrameBuffer(parent)
|
||||
{
|
||||
win = QApplication::desktop()->winId();
|
||||
QScreen *screen = QGuiApplication::primaryScreen();
|
||||
if (screen) {
|
||||
primaryScreen = screen;
|
||||
fbImage = screen->grabWindow(win).toImage();
|
||||
fb = new char[fbImage.sizeInBytes()];
|
||||
} else {
|
||||
fb = nullptr;
|
||||
primaryScreen = nullptr;
|
||||
}
|
||||
|
||||
t = new QTimer(this);
|
||||
connect(t, &QTimer::timeout, this, &QtFrameBuffer::updateFrameBuffer);
|
||||
}
|
||||
|
||||
|
||||
QtFrameBuffer::~QtFrameBuffer()
|
||||
{
|
||||
if (fb)
|
||||
delete [] fb;
|
||||
fb = nullptr;
|
||||
}
|
||||
|
||||
int QtFrameBuffer::depth()
|
||||
{
|
||||
return fbImage.depth();
|
||||
}
|
||||
|
||||
int QtFrameBuffer::height()
|
||||
{
|
||||
return fbImage.height();
|
||||
}
|
||||
|
||||
int QtFrameBuffer::width()
|
||||
{
|
||||
return fbImage.width();
|
||||
}
|
||||
|
||||
void QtFrameBuffer::getServerFormat(rfbPixelFormat &format)
|
||||
{
|
||||
format.bitsPerPixel = 32;
|
||||
format.depth = 32;
|
||||
format.trueColour = true;
|
||||
|
||||
format.bigEndian = false;
|
||||
format.redShift = 16;
|
||||
format.greenShift = 8;
|
||||
format.blueShift = 0;
|
||||
format.redMax = 0xff;
|
||||
format.greenMax = 0xff;
|
||||
format.blueMax = 0xff;
|
||||
}
|
||||
|
||||
void QtFrameBuffer::updateFrameBuffer()
|
||||
{
|
||||
if (!fb || !primaryScreen) return;
|
||||
QImage img = primaryScreen->grabWindow(win).toImage();
|
||||
#if 0 // This is actually slower than updating the whole desktop...
|
||||
QSize imgSize = img.size();
|
||||
|
||||
|
||||
// verify what part of the image need to be marked as changed
|
||||
// fbImage is the previous version of the image,
|
||||
// img is the current one
|
||||
|
||||
QImage map(imgSize, QImage::Format_Mono);
|
||||
map.fill(0);
|
||||
|
||||
for (int x = 0; x < imgSize.width(); x++) {
|
||||
for (int y = 0; y < imgSize.height(); y++) {
|
||||
if (img.pixel(x, y) != fbImage.pixel(x, y)) {
|
||||
map.setPixel(x, y, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QRegion r(QBitmap::fromImage(map));
|
||||
tiles = tiles + r.rects();
|
||||
|
||||
#else
|
||||
tiles.append(img.rect());
|
||||
#endif
|
||||
|
||||
memcpy(fb, img.bits(), static_cast<size_t>(img.sizeInBytes()));
|
||||
fbImage = img;
|
||||
|
||||
}
|
||||
|
||||
int QtFrameBuffer::paddedWidth()
|
||||
{
|
||||
return fbImage.width() * 4;
|
||||
}
|
||||
|
||||
void QtFrameBuffer::startMonitor()
|
||||
{
|
||||
t->start(UPDATE_TIME);
|
||||
}
|
||||
|
||||
void QtFrameBuffer::stopMonitor()
|
||||
{
|
||||
t->stop();
|
||||
}
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2007 Alessandro Praduroux <pradu@pradu.it>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef KRFB_FRAMEBUFFER_QT_QTFRAMEBUFFER_H
|
||||
#define KRFB_FRAMEBUFFER_QT_QTFRAMEBUFFER_H
|
||||
|
||||
#include <QImage>
|
||||
#include "framebuffer.h"
|
||||
|
||||
class QTimer;
|
||||
class QScreen;
|
||||
/**
|
||||
@author Alessandro Praduroux <pradu@pradu.it>
|
||||
*/
|
||||
class QtFrameBuffer : public FrameBuffer
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit QtFrameBuffer(QObject *parent = nullptr);
|
||||
|
||||
~QtFrameBuffer() override;
|
||||
|
||||
int depth() override;
|
||||
int height() override;
|
||||
int width() override;
|
||||
int paddedWidth() override;
|
||||
void getServerFormat(rfbPixelFormat &format) override;
|
||||
void startMonitor() override;
|
||||
void stopMonitor() override;
|
||||
|
||||
public Q_SLOTS:
|
||||
void updateFrameBuffer();
|
||||
|
||||
private:
|
||||
WId win;
|
||||
QImage fbImage;
|
||||
QTimer *t;
|
||||
QScreen *primaryScreen;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,41 +0,0 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
|
||||
@author George Goldberg <george.goldberg@collabora.co.uk>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program 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
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "qtframebufferplugin.h"
|
||||
|
||||
#include "qtframebuffer.h"
|
||||
|
||||
#include <KPluginFactory>
|
||||
|
||||
K_PLUGIN_CLASS(QtFrameBufferPlugin)
|
||||
|
||||
QtFrameBufferPlugin::QtFrameBufferPlugin(QObject *parent, const QVariantList &args)
|
||||
: FrameBufferPlugin(parent, args)
|
||||
{
|
||||
}
|
||||
|
||||
FrameBuffer *QtFrameBufferPlugin::frameBuffer(const QVariantMap &args)
|
||||
{
|
||||
Q_UNUSED(args);
|
||||
return new QtFrameBuffer;
|
||||
}
|
||||
|
||||
#include "qtframebufferplugin.moc"
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
|
||||
@author George Goldberg <george.goldberg@collabora.co.uk>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program 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
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef KRFB_FRAMEBUFFER_QT_QTFRAMEBUFFERPLUGIN_H
|
||||
#define KRFB_FRAMEBUFFER_QT_QTFRAMEBUFFERPLUGIN_H
|
||||
|
||||
#include "framebufferplugin.h"
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
class FrameBuffer;
|
||||
|
||||
class QtFrameBufferPlugin : public FrameBufferPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QtFrameBufferPlugin(QObject *parent, const QVariantList &args);
|
||||
|
||||
FrameBuffer *frameBuffer(const QVariantMap &args) override;
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(QtFrameBufferPlugin)
|
||||
};
|
||||
|
||||
|
||||
#endif // Header guard
|
||||
|
||||
@@ -18,8 +18,9 @@ ecm_qt_declare_logging_category(krfb_framebuffer_xcb_SRCS
|
||||
add_library(krfb_framebuffer_xcb MODULE ${krfb_framebuffer_xcb_SRCS})
|
||||
|
||||
target_link_libraries (krfb_framebuffer_xcb
|
||||
Qt5::Core
|
||||
Qt5::Gui
|
||||
Qt::Core
|
||||
Qt::Gui
|
||||
Qt::GuiPrivate
|
||||
XCB::XCB
|
||||
XCB::RENDER
|
||||
XCB::SHAPE
|
||||
@@ -27,7 +28,7 @@ target_link_libraries (krfb_framebuffer_xcb
|
||||
XCB::DAMAGE
|
||||
XCB::SHM
|
||||
XCB::IMAGE
|
||||
KF5::CoreAddons
|
||||
KF6::CoreAddons
|
||||
krfbprivate
|
||||
)
|
||||
|
||||
|
||||
6
framebuffers/xcb/xcb.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"X-KDE-OnlyShowOnQtPlatforms": [
|
||||
"xcb"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -18,13 +18,12 @@
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/shm.h>
|
||||
|
||||
#include <QX11Info>
|
||||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
#include <QGuiApplication>
|
||||
#include <QScreen>
|
||||
#include <QAbstractNativeEventFilter>
|
||||
|
||||
#include <qpa/qplatformnativeinterface.h>
|
||||
#include <QtGui/private/qtx11extras_p.h>
|
||||
|
||||
class KrfbXCBEventFilter: public QAbstractNativeEventFilter
|
||||
{
|
||||
@@ -32,7 +31,7 @@ public:
|
||||
KrfbXCBEventFilter(XCBFrameBuffer *owner);
|
||||
|
||||
public:
|
||||
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) override;
|
||||
bool nativeEventFilter(const QByteArray &eventType, void *message, qintptr *result) override;
|
||||
|
||||
public:
|
||||
int xdamageBaseEvent;
|
||||
@@ -99,7 +98,7 @@ KrfbXCBEventFilter::KrfbXCBEventFilter(XCBFrameBuffer *owner):
|
||||
|
||||
|
||||
bool KrfbXCBEventFilter::nativeEventFilter(const QByteArray &eventType,
|
||||
void *message, long *result) {
|
||||
void *message, qintptr *result) {
|
||||
Q_UNUSED(result); // "result" is only used on windows
|
||||
|
||||
if (xdamageBaseEvent == 0) return false; // no xdamage extension
|
||||
@@ -159,12 +158,13 @@ XCBFrameBuffer::XCBFrameBuffer(QObject *parent):
|
||||
d->area.setRect(0, 0, 0, 0);
|
||||
d->x11EvtFilter = new KrfbXCBEventFilter(this);
|
||||
d->rootScreen = get_xcb_screen(QX11Info::connection(), QX11Info::appScreen());
|
||||
d->win = QApplication::desktop()->winId();
|
||||
|
||||
this->fb = nullptr;
|
||||
|
||||
QScreen *primaryScreen = QGuiApplication::primaryScreen();
|
||||
if (primaryScreen) {
|
||||
QPlatformNativeInterface* native = qApp->platformNativeInterface();
|
||||
d->win = reinterpret_cast<WId>(native->nativeResourceForScreen(QByteArrayLiteral("rootwindow"), primaryScreen));
|
||||
qreal scaleFactor = primaryScreen->devicePixelRatio();
|
||||
d->area = { primaryScreen->geometry().topLeft() * scaleFactor,
|
||||
primaryScreen->geometry().bottomRight() * scaleFactor };
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "xcb_framebuffer.h"
|
||||
#include <KPluginFactory>
|
||||
|
||||
K_PLUGIN_CLASS(XCBFrameBufferPlugin)
|
||||
K_PLUGIN_CLASS_WITH_JSON(XCBFrameBufferPlugin, "xcb.json")
|
||||
|
||||
XCBFrameBufferPlugin::XCBFrameBufferPlugin(QObject *parent, const QVariantList &args)
|
||||
: FrameBufferPlugin(parent, args)
|
||||
|
||||
@@ -23,9 +23,9 @@ generate_export_header(krfbprivate BASE_NAME krfbprivate)
|
||||
|
||||
|
||||
target_link_libraries (krfbprivate
|
||||
Qt5::Core
|
||||
Qt5::Widgets
|
||||
Qt5::X11Extras
|
||||
Qt::Core
|
||||
Qt::Widgets
|
||||
Qt::GuiPrivate
|
||||
${X11_X11_LIB}
|
||||
${LIBVNCSERVER_LIBRARIES}
|
||||
)
|
||||
@@ -80,7 +80,7 @@ ki18n_wrap_ui (krfb_UI_SRCS
|
||||
ui/mainwidget.ui
|
||||
)
|
||||
|
||||
qt5_add_resources(krfb_SRCS
|
||||
qt_add_resources(krfb_SRCS
|
||||
krfb.qrc
|
||||
)
|
||||
|
||||
@@ -95,16 +95,17 @@ target_link_libraries (krfb
|
||||
${X11_Xext_LIB}
|
||||
${X11_X11_LIB}
|
||||
${X11_Xdamage_LIB}
|
||||
Qt5::Network
|
||||
KF5::CoreAddons
|
||||
KF5::DBusAddons
|
||||
KF5::DNSSD
|
||||
KF5::I18n
|
||||
KF5::Notifications
|
||||
KF5::Wallet
|
||||
KF5::WidgetsAddons
|
||||
KF5::WindowSystem
|
||||
KF5::XmlGui
|
||||
Qt::Network
|
||||
KF6::CoreAddons
|
||||
KF6::DBusAddons
|
||||
KF6::DNSSD
|
||||
KF6::I18n
|
||||
KF6::Notifications
|
||||
KF6::Wallet
|
||||
KF6::WidgetsAddons
|
||||
KF6::WindowSystem
|
||||
KF6::XmlGui
|
||||
KF6::StatusNotifierItem
|
||||
${LIBVNCSERVER_LIBRARIES}
|
||||
)
|
||||
|
||||
@@ -135,13 +136,13 @@ add_executable(krfb-virtualmonitor main-virtualmonitor.cpp ${krfbvm_SRCS} ${krfb
|
||||
rfbserver.cpp rfbclient.cpp rfbservermanager.cpp eventsmanager.cpp framebuffermanager.cpp sockethelpers.cpp)
|
||||
target_link_libraries(krfb-virtualmonitor
|
||||
krfbprivate
|
||||
Qt5::Gui
|
||||
Qt5::Network
|
||||
KF5::ConfigGui
|
||||
KF5::CoreAddons
|
||||
KF5::I18n
|
||||
KF5::Notifications
|
||||
KF5::WindowSystem
|
||||
Qt::Gui
|
||||
Qt::Network
|
||||
KF6::ConfigGui
|
||||
KF6::CoreAddons
|
||||
KF6::I18n
|
||||
KF6::Notifications
|
||||
KF6::WindowSystem
|
||||
)
|
||||
|
||||
install (TARGETS krfb-virtualmonitor
|
||||
|
||||
@@ -9,6 +9,3 @@
|
||||
|
||||
/* Define if XShm is available */
|
||||
#cmakedefine HAVE_XSHM 1
|
||||
|
||||
/* Define if DMA-BUF support is available */
|
||||
#cmakedefine01 HAVE_DMA_BUF
|
||||
|
||||
@@ -41,7 +41,7 @@ Q_GLOBAL_STATIC(EventsManagerStatic, eventsManagerStatic)
|
||||
|
||||
EventsManager::EventsManager()
|
||||
{
|
||||
const QVector<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("krfb/events"), {}, KPluginMetaData::AllowEmptyMetaData);
|
||||
const QList<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("krfb/events"), {}, KPluginMetaData::AllowEmptyMetaData);
|
||||
for (const KPluginMetaData &data : plugins) {
|
||||
const KPluginFactory::Result<EventsPlugin> result = KPluginFactory::instantiatePlugin<EventsPlugin>(data);
|
||||
if (result.plugin) {
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "krfbconfig.h"
|
||||
#include "krfbdebug.h"
|
||||
|
||||
#include <QGuiApplication>
|
||||
#include <QGlobalStatic>
|
||||
|
||||
#include <KPluginFactory>
|
||||
@@ -40,7 +41,10 @@ Q_GLOBAL_STATIC(FrameBufferManagerStatic, frameBufferManagerStatic)
|
||||
|
||||
FrameBufferManager::FrameBufferManager()
|
||||
{
|
||||
const QVector<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("krfb/framebuffer"), {}, KPluginMetaData::AllowEmptyMetaData);
|
||||
const auto platformFilter = [] (const KPluginMetaData &pluginData) {
|
||||
return pluginData.value(QStringLiteral("X-KDE-OnlyShowOnQtPlatforms"), QStringList()).contains(QGuiApplication::platformName());
|
||||
};
|
||||
const QList<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("krfb/framebuffer"), platformFilter, KPluginMetaData::AllowEmptyMetaData);
|
||||
for (const KPluginMetaData &data : plugins) {
|
||||
const KPluginFactory::Result<FrameBufferPlugin> result = KPluginFactory::instantiatePlugin<FrameBufferPlugin>(data);
|
||||
if (result.plugin) {
|
||||
@@ -76,17 +80,21 @@ QSharedPointer<FrameBuffer> FrameBufferManager::frameBuffer(WId id, const QVaria
|
||||
}
|
||||
}
|
||||
|
||||
if (auto preferredPlugin = m_plugins.value(KrfbConfig::preferredFrameBufferPlugin())) {
|
||||
if (auto frameBuffer = QSharedPointer<FrameBuffer>(preferredPlugin->frameBuffer(args))) {
|
||||
qCDebug(KRFB) << "Using FrameBuffer:" << KrfbConfig::preferredFrameBufferPlugin();
|
||||
m_frameBuffers.insert(id, frameBuffer.toWeakRef());
|
||||
return frameBuffer;
|
||||
}
|
||||
}
|
||||
|
||||
// We don't already have that frame buffer.
|
||||
for (auto it = m_plugins.cbegin(); it != m_plugins.constEnd(); it++) {
|
||||
if (it.key() == KrfbConfig::preferredFrameBufferPlugin()) {
|
||||
qCDebug(KRFB) << "Using FrameBuffer:" << KrfbConfig::preferredFrameBufferPlugin();
|
||||
|
||||
QSharedPointer<FrameBuffer> frameBuffer(it.value()->frameBuffer(args));
|
||||
if (frameBuffer) {
|
||||
m_frameBuffers.insert(id, frameBuffer.toWeakRef());
|
||||
|
||||
return frameBuffer;
|
||||
}
|
||||
QSharedPointer<FrameBuffer> frameBuffer(it.value()->frameBuffer(args));
|
||||
if (frameBuffer) {
|
||||
qCDebug(KRFB) << "Using FrameBuffer:" << it.key();
|
||||
m_frameBuffers.insert(id, frameBuffer.toWeakRef());
|
||||
return frameBuffer;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,14 +30,9 @@
|
||||
#include <KLocalizedString>
|
||||
#include <KUser>
|
||||
#include <KStringHandler>
|
||||
#include <KWallet/KWallet>
|
||||
#include <KWallet>
|
||||
|
||||
#include <kdnssd_version.h>
|
||||
#if KDNSSD_VERSION >= QT_VERSION_CHECK(5, 84, 0)
|
||||
#include <KDNSSD/PublicService>
|
||||
#else
|
||||
#include <DNSSD/PublicService>
|
||||
#endif
|
||||
|
||||
using KWallet::Wallet;
|
||||
|
||||
@@ -63,7 +58,7 @@ void InvitationsRfbServer::init()
|
||||
|
||||
instance->m_wallet = nullptr;
|
||||
if (KrfbConfig::noWallet()) {
|
||||
instance->walletOpened(false);
|
||||
instance->readPasswordFromConfig();
|
||||
} else {
|
||||
instance->openKWallet();
|
||||
}
|
||||
@@ -129,7 +124,7 @@ InvitationsRfbServer::InvitationsRfbServer()
|
||||
{
|
||||
m_desktopPassword = readableRandomString(4) + QLatin1Char('-') + readableRandomString(3);
|
||||
m_unattendedPassword = readableRandomString(4) + QLatin1Char('-') + readableRandomString(3);
|
||||
KConfigGroup krfbConfig(KSharedConfig::openConfig(),"Security");
|
||||
KConfigGroup krfbConfig(KSharedConfig::openConfig(),QStringLiteral("Security"));
|
||||
m_allowUnattendedAccess = krfbConfig.readEntry(
|
||||
"allowUnattendedAccess", QVariant(false)).toBool();
|
||||
}
|
||||
@@ -186,23 +181,8 @@ void InvitationsRfbServer::walletOpened(bool opened)
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
qCDebug(KRFB) << "Could not open KWallet, Falling back to config file";
|
||||
KConfigGroup krfbConfig(KSharedConfig::openConfig(),"Security");
|
||||
|
||||
desktopPassword = KStringHandler::obscure(krfbConfig.readEntry(
|
||||
"desktopPassword", QString()));
|
||||
if(!desktopPassword.isEmpty()) {
|
||||
m_desktopPassword = desktopPassword;
|
||||
Q_EMIT passwordChanged(m_desktopPassword);
|
||||
}
|
||||
|
||||
unattendedPassword = KStringHandler::obscure(krfbConfig.readEntry(
|
||||
"unattendedPassword", QString()));
|
||||
if(!unattendedPassword.isEmpty()) {
|
||||
m_unattendedPassword = unattendedPassword;
|
||||
}
|
||||
|
||||
readPasswordFromConfig();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -239,7 +219,7 @@ QString InvitationsRfbServer::readableRandomString(int length)
|
||||
// one place to deal with all security configuration
|
||||
void InvitationsRfbServer::saveSecuritySettings()
|
||||
{
|
||||
KConfigGroup secConfigGroup(KSharedConfig::openConfig(), "Security");
|
||||
KConfigGroup secConfigGroup(KSharedConfig::openConfig(), QStringLiteral("Security"));
|
||||
secConfigGroup.writeEntry("allowUnattendedAccess", m_allowUnattendedAccess);
|
||||
if (KrfbConfig::noWallet()) {
|
||||
// save passwords in config file only if not using kwallet integration
|
||||
@@ -263,3 +243,23 @@ void InvitationsRfbServer::saveSecuritySettings()
|
||||
}
|
||||
KrfbConfig::self()->save();
|
||||
}
|
||||
|
||||
void InvitationsRfbServer::readPasswordFromConfig()
|
||||
{
|
||||
QString desktopPassword;
|
||||
QString unattendedPassword;
|
||||
KConfigGroup krfbConfig(KSharedConfig::openConfig(),QStringLiteral("Security"));
|
||||
|
||||
desktopPassword = KStringHandler::obscure(krfbConfig.readEntry(
|
||||
"desktopPassword", QString()));
|
||||
if(!desktopPassword.isEmpty()) {
|
||||
m_desktopPassword = desktopPassword;
|
||||
Q_EMIT passwordChanged(m_desktopPassword);
|
||||
}
|
||||
|
||||
unattendedPassword = KStringHandler::obscure(krfbConfig.readEntry(
|
||||
"unattendedPassword", QString()));
|
||||
if(!unattendedPassword.isEmpty()) {
|
||||
m_unattendedPassword = unattendedPassword;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,7 @@ private:
|
||||
KWallet::Wallet *m_wallet = nullptr;
|
||||
|
||||
QString readableRandomString(int);
|
||||
void readPasswordFromConfig();
|
||||
Q_DISABLE_COPY(InvitationsRfbServer)
|
||||
};
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ Comment[ka]=სამუშაო მაგიდის გაზიარებ
|
||||
Comment[kk]=Үстелді ортақтастыру
|
||||
Comment[km]=ការចែករំលែកផ្ទែតុ
|
||||
Comment[ko]=데스크톱 공유
|
||||
Comment[lt]=Dalinimasis darbalaukiu
|
||||
Comment[lt]=Darbalaukio bendrinimas
|
||||
Comment[lv]=Darbvirsmas koplietošana
|
||||
Comment[mk]=Делење на работната површина
|
||||
Comment[ml]=പണിയിടം പങ്കുവെക്കല്
|
||||
@@ -93,6 +93,7 @@ Name[fi]=Käyttäjä hyväksyy yhteyden
|
||||
Name[fr]=L'utilisateur accepte la connexion
|
||||
Name[ga]=Glacann an tÚsáideoir Le Ceangal
|
||||
Name[gl]=O usuario acepta a conexión
|
||||
Name[he]=המשתמש מאשר חיבור
|
||||
Name[hi]=उपयोक्ता ने कनेक्शन स्वीकारा
|
||||
Name[hne]=कमइया हर कनेक्सन स्वीकारा
|
||||
Name[hr]=Korisnik prihvaća vezu
|
||||
@@ -157,7 +158,7 @@ Comment[fi]=Käyttäjä hyväksyy yhteyden
|
||||
Comment[fr]=L'utilisateur accepte la connexion
|
||||
Comment[ga]=Glacann úsáideoir le ceangal
|
||||
Comment[gl]=O usuario acepta a conexión
|
||||
Comment[he]=המשתמש מקבל את החיבור
|
||||
Comment[he]=המשתמש מאשר את החיבור
|
||||
Comment[hi]=उपयोक्ता ने कनेक्शन स्वीकारा
|
||||
Comment[hne]=कमइया हर कनेक्सन स्वीकारा
|
||||
Comment[hr]=Korisnik prihvaća vezu
|
||||
@@ -228,6 +229,7 @@ Name[fi]=Käyttäjä hylkää yhteyden
|
||||
Name[fr]=L'utilisateur refuse la connexion
|
||||
Name[ga]=Diúltaíonn an tÚsáideoir Le Ceangal
|
||||
Name[gl]=O usuario rexeita a conexión
|
||||
Name[he]=המשתמש מסרב לחיבור
|
||||
Name[hi]=उपयोक्ता ने कनेक्शन अस्वीकारा
|
||||
Name[hne]=कमइया हर कनेक्सन अस्वीकारा
|
||||
Name[hr]=Korisnik odbija vezu
|
||||
@@ -363,6 +365,7 @@ Name[fi]=Yhteys suljettu
|
||||
Name[fr]=Connexion fermée
|
||||
Name[ga]=Ceangal Dúnta
|
||||
Name[gl]=Conexión pechada
|
||||
Name[he]=החיבור נסגר
|
||||
Name[hi]=कनेक्शन बन्द
|
||||
Name[hne]=कनेक्सन बन्द
|
||||
Name[hr]=Veza prekinuta
|
||||
@@ -504,6 +507,7 @@ Name[fi]=Virheellinen salasana
|
||||
Name[fr]=Mot de passe non valable
|
||||
Name[ga]=Focal Faire Neamhbhailí
|
||||
Name[gl]=O contrasinal é incorrecto
|
||||
Name[he]=סיסמה שגויה
|
||||
Name[hi]=अवैध पासवर्ड
|
||||
Name[hne]=अवैध पासवर्ड
|
||||
Name[hr]=Nevažeća zaporka
|
||||
@@ -648,6 +652,7 @@ Name[fi]=Virheellinen salasana kutsuun
|
||||
Name[fr]=Invitations de mots de passe non valables
|
||||
Name[ga]=Cuirí Neamhbhailí Focal Faire
|
||||
Name[gl]=O contrasinal de convidado incorrecto
|
||||
Name[he]=סיסמה שגויה להזמנות
|
||||
Name[hi]=अवैध पासवर्ड निमंत्रण
|
||||
Name[hne]=अवैध पासवर्ड निमंत्रन
|
||||
Name[hr]=Pozivnice s nevažećim zaporkama
|
||||
@@ -689,7 +694,7 @@ Name[ug]=ئىناۋەتسىز ئىم تەكلىپلىرى
|
||||
Name[uk]=Запрошення з некоректними паролями
|
||||
Name[x-test]=xxInvalid Password Invitationsxx
|
||||
Name[zh_CN]=无效密码邀请
|
||||
Name[zh_TW]=不合法的密碼邀請
|
||||
Name[zh_TW]=無效的密碼邀請
|
||||
Comment=The invited party sent an invalid password. Connection refused.
|
||||
Comment[af]=Die uitgenooi party gestuur 'n ongeldige wagwoord. Verbinding geweier.
|
||||
Comment[ar]=المدعو أرسل كلمة مرور غير صحيحة. رفض الإتصال.
|
||||
@@ -722,6 +727,7 @@ Comment[id]=Undangan mengirimkan sebuah sandi tidak absah. Koneksi ditampik.
|
||||
Comment[is]=Boðinn aðili sendi ógilt lykilorð. Tengingu hafnað
|
||||
Comment[it]=La parte invitata ha inviato una password non valida. Connessione rifiutata.
|
||||
Comment[ja]=招待された人が無効なパスワードを送ってきました。接続を拒否しました。
|
||||
Comment[ka]=მოწვეული მხრის გამოგზავნილი პაროლი არასწორია. კავშირი უარყოფილია.
|
||||
Comment[kk]=Шқырылған жақ дұрыс емес парольді жіберді. Қосылымдан бас тартылды..
|
||||
Comment[km]=ភាគីដែលបានអញ្ជើញ បានផ្ញើពាក្យសម្ងាត់មិនត្រឹមត្រូវ ។ ការតភ្ជាប់ត្រូវបានបដិសេធ ។
|
||||
Comment[ko]=초대한 사람이 잘못된 암호를 보냈습니다. 연결이 잘못되었습니다.
|
||||
@@ -780,6 +786,7 @@ Name[fi]=Uusi yhteys odottaa
|
||||
Name[fr]=Nouvelle connexion en attente
|
||||
Name[ga]=Ceangal Nua Ag Fanacht
|
||||
Name[gl]=Nova conexión en espera
|
||||
Name[he]=חיבור חדש בהמתנה
|
||||
Name[hi]=नया कनेक्शन होल्ड पर रखा
|
||||
Name[hne]=नवा कनेक्सन होल्ड मं रखा
|
||||
Name[hr]=Nova veza na čekanju
|
||||
@@ -789,6 +796,7 @@ Name[id]=Koneksi Baru sedang Tertahan
|
||||
Name[is]=Ný tenging á bið
|
||||
Name[it]=Nuova connessione in attesa
|
||||
Name[ja]=保留中の新しい接続
|
||||
Name[ka]=ახალი შეერთება შეჩერებულია
|
||||
Name[kk]=Жаңа қосылым күтілуде
|
||||
Name[km]=ការតភ្ជាប់ថ្មី កំពុងស្ថិតនៅក្នុងការរង់ចាំ
|
||||
Name[ko]=새 연결 대기 중
|
||||
@@ -842,7 +850,7 @@ Comment[fi]=Pyydettiin yhteyttä, käyttäjän tulee hyväksyä
|
||||
Comment[fr]=Connexion demandée. L'utilisateur doit accepter
|
||||
Comment[ga]=Ceangal iarrtha; ní mór don úsáideoir glacadh leis
|
||||
Comment[gl]=Pediuse a conexión; o usuario debe aceptar
|
||||
Comment[he]=נתבקש חיבור, על המשתמש לקבלו
|
||||
Comment[he]=התבקש חיבור, על המשתמש לאשרו
|
||||
Comment[hi]=कनेक्शन निवेदित. उपयोक्ता को स्वीकार होना चाहिए
|
||||
Comment[hne]=कनेक्सन निवेदित. कमइया ल स्वीकार होना चाही
|
||||
Comment[hr]=Veza je zatražena, korisnik mora prihvatiti
|
||||
@@ -852,6 +860,7 @@ Comment[id]=Koneksi diminta, pengguna harus menyetujui
|
||||
Comment[is]=Beiðni um tengingu, notandi verður að samþykkja
|
||||
Comment[it]=Connessione richiesta, l'utente deve accettare
|
||||
Comment[ja]=接続が要求されています。ユーザが許可しなければなりません。
|
||||
Comment[ka]=მიერთება მოთხოვნილია. მომხმარებელი მას უნდა დაეთანხმოს
|
||||
Comment[kk]=Қосылым сұралды, пайдаланушы жауап беруге тиіс
|
||||
Comment[km]=បានស្នើការតភ្ជាប់ អ្នកប្រើត្រូវតែទទួលយក
|
||||
Comment[ko]=연결 요청됨, 사용자가 수락해야 함
|
||||
@@ -911,6 +920,7 @@ Name[fi]=Uusi yhteys hyväksyttiin automaattisesti
|
||||
Name[fr]=Nouvelle connexion acceptée automatiquement
|
||||
Name[ga]=Ceangal nua bunaithe go huathoibríoch
|
||||
Name[gl]=Nova conexión aceptada automaticamente
|
||||
Name[he]=חיבור חדש אושר אוטומטית
|
||||
Name[hi]=नय कनेक्शन स्वचालित स्वीकारा
|
||||
Name[hne]=नय कनेक्सन अपने अपन स्वीकारा
|
||||
Name[hr]=Nova veza automatski prihvaćena
|
||||
@@ -920,6 +930,7 @@ Name[id]=Koneksi Baru Tersetujui Otomatis
|
||||
Name[is]=Ný tenging sjálfvirkt samþykkt
|
||||
Name[it]=Nuova connessione accettata automaticamente
|
||||
Name[ja]=新しい接続の自動受け入れ
|
||||
Name[ka]=ახალი მიერთება ავტომატურად მიღებულია
|
||||
Name[kk]=Жаңа қосылым автоқабылданды
|
||||
Name[km]=បានទទួលយកការតភ្ជាប់ថ្មីដោយស្វ័យប្រវត្តិ
|
||||
Name[ko]=새 연결 자동 수락
|
||||
@@ -973,7 +984,7 @@ Comment[fi]=Uusi yhteys muodostettiin automaattisesti
|
||||
Comment[fr]=Nouvelle connexion établie automatiquement
|
||||
Comment[ga]=Ceangal nua bunaithe go huathoibríoch
|
||||
Comment[gl]=Estabeleceuse automaticamente unha conexión nova
|
||||
Comment[he]=נוצר חיבור חדש באופן אוטומטי
|
||||
Comment[he]=חיבור חדש נוצר אוטומטית
|
||||
Comment[hi]=नया कनेक्शन स्वचलित स्थापित
|
||||
Comment[hne]=नवा कनेक्सन अपने अपन स्थापित
|
||||
Comment[hr]=Nova veza automatski prihvaćena
|
||||
@@ -983,6 +994,7 @@ Comment[id]=Koneksi baru secara otomatis terpancang
|
||||
Comment[is]=Nýjar tengingar sjálfkrafa samþykktar
|
||||
Comment[it]=Nuova connessione stabilita automaticamente
|
||||
Comment[ja]=新しい接続を自動的に確立しました
|
||||
Comment[ka]=ახალი მიერთება ავტომატურად დამყარებულია
|
||||
Comment[kk]=Жаңа қосылым автоматты түрде орнатылды
|
||||
Comment[km]=បានបង្កើតការតភ្ជាប់ថ្មីដោយស្វ័យប្រវត្តិ
|
||||
Comment[ko]=새 연결이 자동으로 성립됨
|
||||
@@ -1042,6 +1054,7 @@ Name[fi]=Liikaa yhteyksiä
|
||||
Name[fr]=Trop de connexions
|
||||
Name[ga]=An Iomarca Ceangal
|
||||
Name[gl]=Demasiadas conexións
|
||||
Name[he]=יותר מדי חיבורים
|
||||
Name[hi]=बहुत सारे कनेक्शन
|
||||
Name[hne]=बहुत अकन कनेक्सन
|
||||
Name[hr]=Previše veza
|
||||
@@ -1178,6 +1191,7 @@ Name[fi]=Odottamaton yhteys
|
||||
Name[fr]=Connexion inattendue
|
||||
Name[ga]=Ceangal Gan Choinne
|
||||
Name[gl]=Conexión non agardada
|
||||
Name[he]=חיבור בלתי צפוי
|
||||
Name[hi]=अप्रत्याशित कनेक्शन
|
||||
Name[hne]=अप्रत्यासित कनेक्सन
|
||||
Name[hr]=Neočekivana veza
|
||||
@@ -1242,7 +1256,7 @@ Comment[fi]=Vastaanotettiin odottamaton yhteys, lopeta
|
||||
Comment[fr]=Connexion inattendue reçue. Annulation
|
||||
Comment[ga]=Fuarthas ceangal gan choinne, á thobscor
|
||||
Comment[gl]=Recibiuse unha conexión non agardada; interrómpese
|
||||
Comment[he]=נתקבל חיבור בלתי צפוי, בוטל
|
||||
Comment[he]=התקבל חיבור בלתי צפוי, בוטל
|
||||
Comment[hi]=अप्रत्याशित कनेक्शन प्राप्त. छोड़ा
|
||||
Comment[hne]=अप्रत्यासित कनेक्सन प्राप्त. छोड़ा
|
||||
Comment[hr]=Primio sam neočekivanu vezu, prekid
|
||||
@@ -1252,6 +1266,7 @@ Comment[id]=Diperoleh koneksi tak terduga, gugurkan
|
||||
Comment[is]=Tók á móti óvæntri tengingu, hætti
|
||||
Comment[it]=Ricevuta connessione inattesa, terminata
|
||||
Comment[ja]=予期しない接続を受信しました。廃棄します。
|
||||
Comment[ka]=მიღებულია მოულოდნელი მიერთება. გაუქმდება
|
||||
Comment[kk]=Күтпеген қосылым ұсынысы, доғарылды
|
||||
Comment[km]=បានទទួលយកការតភ្ជាប់ដែលមិនបានរំពឹងទុក បោះបង់
|
||||
Comment[ko]=예상하지 않은 연결을 받았습니다, 중지합니다
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
#include <QPixmap>
|
||||
#include <qwindowdefs.h>
|
||||
#include <QX11Info>
|
||||
#include <QtGui/private/qtx11extras_p.h>
|
||||
|
||||
#include <csignal>
|
||||
#include <X11/extensions/XTest.h>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include <QLineEdit>
|
||||
#include <QComboBox>
|
||||
#include <QSizePolicy>
|
||||
#include <QVector>
|
||||
#include <QList>
|
||||
#include <QSet>
|
||||
#include <QNetworkInterface>
|
||||
#include <QHostInfo>
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
}
|
||||
|
||||
void fillFrameBuffersCombo() {
|
||||
const QVector<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("krfb/framebuffer"), {}, KPluginMetaData::AllowEmptyMetaData);
|
||||
const QList<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("krfb/framebuffer"), {}, KPluginMetaData::AllowEmptyMetaData);
|
||||
for (const KPluginMetaData &metadata : plugins) {
|
||||
cb_preferredFrameBufferPlugin->addItem(metadata.pluginId());
|
||||
}
|
||||
@@ -145,8 +145,8 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
m_ui.passwordDisplayLabel->setText(
|
||||
InvitationsRfbServer::instance->desktopPassword());
|
||||
|
||||
KStandardAction::quit(QCoreApplication::instance(), SLOT(quit()), actionCollection());
|
||||
KStandardAction::preferences(this, SLOT(showConfiguration()), actionCollection());
|
||||
KStandardAction::quit(QCoreApplication::instance(), &QCoreApplication::quit, actionCollection());
|
||||
KStandardAction::preferences(this, &MainWindow::showConfiguration, actionCollection());
|
||||
|
||||
setupGUI();
|
||||
|
||||
@@ -264,7 +264,7 @@ void MainWindow::showConfiguration()
|
||||
} else {
|
||||
InvitationsRfbServer::instance->openKWallet();
|
||||
// erase stored passwords from krfbconfig file
|
||||
KConfigGroup securityConfigGroup(KSharedConfig::openConfig(), "Security");
|
||||
KConfigGroup securityConfigGroup(KSharedConfig::openConfig(), QStringLiteral("Security"));
|
||||
securityConfigGroup.deleteEntry("desktopPassword");
|
||||
securityConfigGroup.deleteEntry("unattendedPassword");
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-2.0+</project_license>
|
||||
<name>Krfb</name>
|
||||
<name xml:lang="ar">كرفب</name>
|
||||
<name xml:lang="ast">Krfb</name>
|
||||
<name xml:lang="bg">Krfb</name>
|
||||
<name xml:lang="ca">Krfb</name>
|
||||
<name xml:lang="ca-valencia">Krfb</name>
|
||||
<name xml:lang="cs">Krfb</name>
|
||||
@@ -11,12 +14,15 @@
|
||||
<name xml:lang="de">Krfb</name>
|
||||
<name xml:lang="el">Krfb</name>
|
||||
<name xml:lang="en-GB">Krfb</name>
|
||||
<name xml:lang="eo">Krfb</name>
|
||||
<name xml:lang="es">Krfb</name>
|
||||
<name xml:lang="et">Krfb</name>
|
||||
<name xml:lang="eu">Krfb</name>
|
||||
<name xml:lang="fi">Krfb</name>
|
||||
<name xml:lang="fr">Krfb</name>
|
||||
<name xml:lang="gl">Krfb</name>
|
||||
<name xml:lang="he">Krfb</name>
|
||||
<name xml:lang="hu">Krfb</name>
|
||||
<name xml:lang="ia">Krfb</name>
|
||||
<name xml:lang="id">Krfb</name>
|
||||
<name xml:lang="it">Krfb</name>
|
||||
@@ -42,6 +48,8 @@
|
||||
<name xml:lang="zh-CN">Krfb</name>
|
||||
<name xml:lang="zh-TW">Krfb</name>
|
||||
<summary>Share your desktop to another computer via VNC</summary>
|
||||
<summary xml:lang="ar">مشاركة سطح مكتبك مع حاسوب آخر بواسطة VNC</summary>
|
||||
<summary xml:lang="bg">Споделяне на работния плот на друг компютър чрез VNC</summary>
|
||||
<summary xml:lang="ca">Comparteix l'escriptori amb un altre ordinador a través de VNC</summary>
|
||||
<summary xml:lang="ca-valencia">Compartix l'escriptori amb un altre ordinador a través de VNC</summary>
|
||||
<summary xml:lang="cs">Sdílejte své pracovní prostředí na jiný počítač pomocí VNC</summary>
|
||||
@@ -49,11 +57,15 @@
|
||||
<summary xml:lang="de">Verbindung Ihrer Arbeitsfläche zu anderen Rechnern über VNC</summary>
|
||||
<summary xml:lang="el">Μοιραστείτε την επιφάνεια εργασίας σας με άλλον υπολογιστή μέσω VNC</summary>
|
||||
<summary xml:lang="en-GB">Share your desktop to another computer via VNC</summary>
|
||||
<summary xml:lang="eo">Kundividu vian labortablon al alia komputilo per VNC</summary>
|
||||
<summary xml:lang="es">Compartir su escritorio con otro equipo usando VNC</summary>
|
||||
<summary xml:lang="et">Oma töölaua jagamine VNC kaudu teise arvutisse</summary>
|
||||
<summary xml:lang="eu">Partekatu zure mahaigaina beste ordenagailu batekin VNC erabiliz</summary>
|
||||
<summary xml:lang="fi">Jaa työpöytä toiselle koneelle VNC:n kautta</summary>
|
||||
<summary xml:lang="fr">Partager votre bureau avec un autre ordinateur grâce à « VNC »</summary>
|
||||
<summary xml:lang="gl">Comparte o teu escritorio con outro computador por VNC</summary>
|
||||
<summary xml:lang="he">שיתוף שולחן העבודה שלך עם מחשב אחר דרך VNC</summary>
|
||||
<summary xml:lang="hu">Ossza meg asztalát egy másik számítógéppel VNC-n keresztül</summary>
|
||||
<summary xml:lang="ia">Compartir tu scriptorio a un altere computator via VNC</summary>
|
||||
<summary xml:lang="id">Bagikan desktopmu ke komputer lainnya via VNC</summary>
|
||||
<summary xml:lang="it">Condividi il desktop con un altro computer tramite VNC</summary>
|
||||
@@ -73,24 +85,31 @@
|
||||
<summary xml:lang="uk">Надайте вашу стільницю у спільне користування з іншим комп'ютером за допомогою VNC</summary>
|
||||
<summary xml:lang="x-test">xxShare your desktop to another computer via VNCxx</summary>
|
||||
<summary xml:lang="zh-CN">通过 VNC 分享您的桌面到另一台电脑</summary>
|
||||
<summary xml:lang="zh-TW">透過 VNC 將您的桌面分享給另一台電腦</summary>
|
||||
<description>
|
||||
<p>Krfb Desktop Sharing is a server application that allows you to share your current session with a user on another machine, who can use a VNC client to view or even control the desktop.</p>
|
||||
<p xml:lang="ar">مشاركة سطح المكتب كرْفب هو تطبيق خادم يسمح لك بمشاركة جلستك الحالية مع مستخدم على جهاز آخر، والذي يمكنه استخدام عميل VNC لعرض سطح المكتب أو حتى التحكم فيه.</p>
|
||||
<p xml:lang="bg">Krfb Desktop Sharing е сървърно приложение, което ви позволява да споделяте текущата си сесия с потребител на друга машина, който може да използва VNC клиент, за да преглежда или дори да управлява работния плот.</p>
|
||||
<p xml:lang="ca">El Krfb és una aplicació de servidor que permet compartir la vostra sessió actual amb un usuari en una altra màquina, la qual pot emprar un client VNC per a veure o controlar l'escriptori.</p>
|
||||
<p xml:lang="ca-valencia">Krfb és una aplicació de servidor que permet compartir la vostra sessió actual amb un usuari en una altra màquina, la qual pot emprar un client VNC per a veure o controlar l'escriptori.</p>
|
||||
<p xml:lang="da">Krfb-skrivebordsdeling er et serverprogram der giver dig mulighed for at dele din nuværende session med en bruger på en anden maskine som kan bruge en VNC-klient til at vise eller endda styrer skrivebordet.</p>
|
||||
<p xml:lang="de">Krfb ist eine Serveranwendung, welche die gemeinsame Benutzung der aktuellen Sitzung mit einem Benutzer auf einem anderen Rechner ermöglicht, der mit Hilfe eines VNC-Programms den Bildschirminhalt sehen oder sogar die Arbeitsfläche bedienen kann.</p>
|
||||
<p xml:lang="el">Η κοινή χρήση επιφάνειας εργασίας Krfb είναι μια εφαρμογή εξυπηρετητή που σας επιτρέπει να μοιράζεστε την τρέχουσα συνεδρία σας με έναν χρήστη σε άλλο μηχάνημα, ο οποίος μπορεί να χρησιμοποιεί έναν πελάτη VNC για να παρακολουθεί ή και να ελέγχει την επιφάνεια εργασίας σας.</p>
|
||||
<p xml:lang="en-GB">Krfb Desktop Sharing is a server application that allows you to share your current session with a user on another machine, who can use a VNC client to view or even control the desktop.</p>
|
||||
<p xml:lang="eo">Krfb Desktop Sharing estas servila aplikaĵo, kiu ebligas al vi kunhavigi vian aktualan seancon kun uzanto sur alia maŝino, kiu povas uzi VNC-klienton por rigardi aŭ eĉ kontroli la labortablon.</p>
|
||||
<p xml:lang="es">Krfb para compartir el escritorio es una aplicación de servidor que le permite compartir su sesión actual con un usuario de otra máquina, que puede usar un cliente VNC para ver e incluso controlar su escritorio.</p>
|
||||
<p xml:lang="et">Krfb töölaua jagamine on serverirakendus, mis võimaldab jagada aktiivset seanssi mõne teise masina taga istuva kasutajaga, kes saab VNC kliendi kaudu töölauda näha või isegi juhtida.</p>
|
||||
<p xml:lang="eu">Krfb Mahaigaina Partekatzea zerbitzari aplikazio bat da zure uneko saioa beste makina batean dagoen erabiltzaile batekin partekatzen uzten dizuna. Beste makinan VNC bezeroa erabil dezake zure mahaigaina ikusi edo baita kontrolatzeko ere.</p>
|
||||
<p xml:lang="fi">Krfb-työpöytäjako on palvelinsovellus, jolla voit jakaa nykyisen istuntosi toisen koneen käyttäjälle, joka voi VNC-asiakkaalla nähdä tai jopa hallita työpöytääsi.</p>
|
||||
<p xml:lang="fr">Le partage de bureau Krfb est une application de serveur qui vous permet de partager votre session courante avec un utilisateur sur une autre machine, qui peut utiliser un client VNC pour afficher et même contrôler le bureau.</p>
|
||||
<p xml:lang="gl">Krfb é unha aplicación de servidor que permite compartir a sesión actual cun usuario que está noutro equipo, que pode usar un cliente VNC para ver ou mesmo controlar o escritorio.</p>
|
||||
<p xml:lang="he">שיתוף שולחן העבודה Krfb הוא יישום שרת שמאפשר לך לשתף את ההפעלה הנוכחית שלך עם משתמש במכונה אחרת שיש להם גישה ללוח VNC לטובת צפייה ואפילו שליטה בשולחן העבודה.</p>
|
||||
<p xml:lang="hu">A Krfb asztalmegosztás egy kiszolgáló alkalmazás, amely lehetővé teszi, hogy megossza az aktuális munkamenetet egy másik gépen lévő felhasználóval, aki egy VNC kliens segítségével megtekintheti vagy akár irányíthatja az asztalt.</p>
|
||||
<p xml:lang="ia">Krfb Desktop Sharing es un application de servitor que te permitte compartir tu session currente con un usator sur un altere machina,le qual pote usar un cliente VNC per vider o anque controlar le scriptorio.</p>
|
||||
<p xml:lang="id">Krfb Desktop Sharing adalah aplikasi server yang memungkinkan kamu untuk berbagi sesimu saat ini dengan pengguna di mesin lain, yang bisa menggunakan klien VNC untuk menampilkan atau bahkan mengendalikan desktop.</p>
|
||||
<p xml:lang="it">Condivisione del desktop Krfb è un'applicazione server che permette di condividere la sessione attuale con un utente su un'altra macchina, che potrà usare un client VNC per visualizzare ed anche controllare il desktop.</p>
|
||||
<p xml:lang="ko">Krfb 데스크톱 공유는 현재 세션을 다른 머신의 사용자와 VNC를 통해서 공유하거나 원격 제어를 요청할 수 있는 서버 프로그램입니다.</p>
|
||||
<p xml:lang="ka">Krfb სამუშაო მაგიდის გაზიარება აპლიკაციის სერვერია, რომელიც თქვენი მიმდინარე სესიის სხვა მომხმარებლისთვის, რომელსაც VNC კლიენტი აქვს, გაზიარების და კონტროლის გადაცემის საშუალებას გაძლევთ.</p>
|
||||
<p xml:lang="ko">Krfb 데스크톱 공유는 현재 세션을 다른 머신의 사용자와 VNC를 통해서 공유하거나 원격 제어를 요청할 수 있는 서버 앱입니다.</p>
|
||||
<p xml:lang="nl">Bureaublad delen is een server-applicatie die u in staat stelt uw huidige sessie te delen met een gebruiker op een andere machine, die een VNC-client kan gebruiken om uw bureaublad te bekijken of zelfs te besturen.</p>
|
||||
<p xml:lang="nn">Krfb skrivebordsdeling er eit tenarprogram som lèt deg dela skrivebordsøkta di med ein brukar på ei anna maskin. Vedkommande kan så bruka ein VNC-klient for å sjå og eventuelt òg styra økta.</p>
|
||||
<p xml:lang="pl">Współdzielenie pulpitu Krfb jest aplikacją serwerową, która umożliwia współdzielenie twojej bieżącej sesji z użytkownikiem na innym komputerze, który może użyć klienta VNC do oglądania,a a nawet sterowania twoim pulpitem.</p>
|
||||
@@ -118,6 +137,8 @@
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<caption>Sharing desktop with Krfb</caption>
|
||||
<caption xml:lang="ar">مشاركة سطح المكتب باستخدام كرفب</caption>
|
||||
<caption xml:lang="bg">Споделяне на работното място с 1Krfb</caption>
|
||||
<caption xml:lang="ca">Compartint l'escriptori amb el Krfb</caption>
|
||||
<caption xml:lang="ca-valencia">Compartint l'escriptori amb Krfb</caption>
|
||||
<caption xml:lang="cs">Sdílím pracovní plochu pomocí Krfb</caption>
|
||||
@@ -125,12 +146,15 @@
|
||||
<caption xml:lang="de">Freigabe der Arbeitsfläche mit Krfb</caption>
|
||||
<caption xml:lang="el">Κοινή χρήση επιφάνειας εργασίας με το Krfb</caption>
|
||||
<caption xml:lang="en-GB">Sharing desktop with Krfb</caption>
|
||||
<caption xml:lang="eo">Kundividante labortablon per Krfb</caption>
|
||||
<caption xml:lang="es">Compartiendo el escritorio con Krfb</caption>
|
||||
<caption xml:lang="et">Töölaua jagamine Krfb abil</caption>
|
||||
<caption xml:lang="eu">Mahaigaina Krfb-ren bidez partekatzea</caption>
|
||||
<caption xml:lang="fi">Työpöydän jakaminen Krfb:llä</caption>
|
||||
<caption xml:lang="fr">Partage de bureau grâce à Krfb</caption>
|
||||
<caption xml:lang="gl">Compartindo o escritorio con Krfb</caption>
|
||||
<caption xml:lang="he">שיתוף שולחן העבודה עם Krfb</caption>
|
||||
<caption xml:lang="hu">Asztalmegosztás a Krfb-vel</caption>
|
||||
<caption xml:lang="ia">Compartir scriptorio con Krfb</caption>
|
||||
<caption xml:lang="id">Berbagi desktop dengan Krfb</caption>
|
||||
<caption xml:lang="it">Condivisone del desktop con Krfb</caption>
|
||||
@@ -159,9 +183,16 @@
|
||||
</provides>
|
||||
<project_group>KDE</project_group>
|
||||
<releases>
|
||||
<release version="22.08.3" date="2022-11-03"/>
|
||||
<release version="22.08.2" date="2022-10-13"/>
|
||||
<release version="22.08.1" date="2022-09-08"/>
|
||||
<release version="22.08.0" date="2022-08-18"/>
|
||||
<release version="24.08.3" date="2024-11-07"/>
|
||||
<release version="24.08.2" date="2024-10-10"/>
|
||||
<release version="24.08.1" date="2024-09-12"/>
|
||||
<release version="24.08.0" date="2024-08-22"/>
|
||||
<release version="24.05.2" date="2024-07-04"/>
|
||||
<release version="24.05.1" date="2024-06-13"/>
|
||||
<release version="24.05.0" date="2024-05-23"/>
|
||||
<release version="24.02.2" date="2024-04-11"/>
|
||||
<release version="24.02.1" date="2024-03-21"/>
|
||||
<release version="24.02.0" date="2024-02-28"/>
|
||||
<release version="23.08.5" date="2024-02-15"/>
|
||||
</releases>
|
||||
</component>
|
||||
|
||||
@@ -7,7 +7,8 @@ X-DBUS-StartupType=Unique
|
||||
X-DocPath=krfb/index.html
|
||||
Terminal=false
|
||||
Name=Krfb
|
||||
Name[ar]=Krfb
|
||||
Name[ar]=كرفب
|
||||
Name[ast]=Krfb
|
||||
Name[bg]=Krfb
|
||||
Name[bn]=কে-আর-এফ-বি
|
||||
Name[br]=Krfb
|
||||
@@ -76,22 +77,29 @@ Name[zh_CN]=Krfb
|
||||
Name[zh_HK]=Krfb
|
||||
Name[zh_TW]=桌面分享_Krfb
|
||||
GenericName=Desktop Sharing (VNC)
|
||||
GenericName[ar]=مشاركة سطح المكتب (VNC)
|
||||
GenericName[bg]=Споделяне на работния плот (VNC)
|
||||
GenericName[ca]=Compartició de l'escriptori (VNC)
|
||||
GenericName[ca@valencia]=Compartició de l'escriptori (VNC)
|
||||
GenericName[ca@valencia]=Compartiu l'escriptori (VNC)
|
||||
GenericName[cs]=Sdílení pracovní plochy (VNC)
|
||||
GenericName[da]=Skrivebordsdeling (VNC)
|
||||
GenericName[de]=Arbeitsflächen-Freigabe (VNC)
|
||||
GenericName[el]=Κοινή χρήση επιφάνειας εργασίας (VNC)
|
||||
GenericName[en_GB]=Desktop Sharing (VNC)
|
||||
GenericName[eo]=Kunhavigo de Labortablo (VNC)
|
||||
GenericName[es]=Escritorio compartido (VNC)
|
||||
GenericName[et]=Töölaua jagamine (VNC)
|
||||
GenericName[eu]=Mahaigaina partekatzea (VNC)
|
||||
GenericName[fi]=Työpöydän jakaminen (VNC)
|
||||
GenericName[fr]=Partage de bureaux (VNC)
|
||||
GenericName[gl]=Compartir o escritorio (VNC)
|
||||
GenericName[he]=שיתוף שולחנות עבודה (VNC)
|
||||
GenericName[hu]=Munkaasztal-megosztás (VNC)
|
||||
GenericName[ia]=Compartir de scriptorio (VNC)
|
||||
GenericName[it]=Condivisione del desktop (VNC)
|
||||
GenericName[ka]=სამუშაო მაგიდის გაზიარება(VNC).
|
||||
GenericName[ko]=데스크톱 공유(VNC)
|
||||
GenericName[lt]=Darbalaukio bendrinimas (VNC)
|
||||
GenericName[nl]=Bureaublad delen (VNC)
|
||||
GenericName[nn]=Skrivebordsdeling (VNC)
|
||||
GenericName[pl]=Współdzielenie pulpitu (VNC)
|
||||
@@ -106,6 +114,7 @@ GenericName[tr]=Masaüstü Paylaşımı (VNC)
|
||||
GenericName[uk]=Спільні стільниці (VNC)
|
||||
GenericName[x-test]=xxDesktop Sharing (VNC)xx
|
||||
GenericName[zh_CN]=桌面共享 (VNC)
|
||||
GenericName[zh_TW]=桌面分享 (VNC)
|
||||
Comment=Desktop Sharing
|
||||
Comment[af]=Werkskerm Deeling
|
||||
Comment[ar]=مشاركة سطح المكتب
|
||||
@@ -143,7 +152,7 @@ Comment[ka]=სამუშაო მაგიდის გაზიარებ
|
||||
Comment[kk]=Үстелді ортақтастыру
|
||||
Comment[km]=ការចែករំលែកផ្ទែតុ
|
||||
Comment[ko]=데스크톱 공유
|
||||
Comment[lt]=Dalinimasis darbalaukiu
|
||||
Comment[lt]=Darbalaukio bendrinimas
|
||||
Comment[lv]=Darbvirsmas koplietošana
|
||||
Comment[mk]=Делење на работната површина
|
||||
Comment[ml]=പണിയിടം പങ്കുവെക്കല്
|
||||
|
||||
@@ -5,20 +5,28 @@ Exec=@CMAKE_INSTALL_PREFIX@/bin/krfb-virtualmonitor
|
||||
Icon=krfb
|
||||
Terminal=false
|
||||
Name=KRFBs Virtual Monitor
|
||||
Name[ar]=شاشة افتراضية لكرفب
|
||||
Name[bg]=Виртуален монитор на KRFB
|
||||
Name[ca]=Monitor virtual del Krfb
|
||||
Name[ca@valencia]=Monitor virtual de Krfb
|
||||
Name[cs]=Virtuální monitor KRFB
|
||||
Name[el]=Εικονική οθόνη του KRFB
|
||||
Name[en_GB]=KRFBs Virtual Monitor
|
||||
Name[eo]=Virtuala Monitoro de KRFB
|
||||
Name[es]=Monitor virtual de KRFB
|
||||
Name[eu]=KRFBren alegiazko monitorea
|
||||
Name[fi]=KRFB:n virtuaalinäyttö
|
||||
Name[fr]=Moniteur virtuel « Krfb »
|
||||
Name[gl]=Monitor virtual de KRFB
|
||||
Name[he]=הצג הווירטואלי של KRFB
|
||||
Name[hu]=KRFB virtuális monitor
|
||||
Name[ia]=Virtual Monitor de KRFB
|
||||
Name[it]=Monitor virtuale di KRFB
|
||||
Name[ka]=KRFB-ის ვირტუალური ეკრანი
|
||||
Name[ko]=KRFBs 가상 모니터
|
||||
Name[lt]=KRFBs virtualus monitorius
|
||||
Name[nl]=Virtuele monitor van KRFB
|
||||
Name[nn]=KRFBs virtuell skjerm
|
||||
Name[pl]=Monitor wirtualny KRFB
|
||||
Name[pt]=Monitor Virtual do KRFB
|
||||
Name[pt_BR]=Monitor virtual do KRFB
|
||||
@@ -31,21 +39,30 @@ Name[tr]=KRFB Sanal Monitörü
|
||||
Name[uk]=Віртуальний монітор KRFB
|
||||
Name[x-test]=xxKRFBs Virtual Monitorxx
|
||||
Name[zh_CN]=KRBs 虚拟监视器
|
||||
Name[zh_TW]=KRFBs 虛擬螢幕
|
||||
Comment=Remote Virtual Monitor
|
||||
Comment[ar]=شاشة افتراضية بعيدة
|
||||
Comment[bg]=Отдалечен виртуален монитор
|
||||
Comment[ca]=Monitor virtual remot
|
||||
Comment[ca@valencia]=Monitor virtual remot
|
||||
Comment[cs]=Vzdálený virtuální monitor
|
||||
Comment[el]=Απομακρυσμένη εικονική οθόνη
|
||||
Comment[en_GB]=Remote Virtual Monitor
|
||||
Comment[eo]=Fora Virtuala Monitoro
|
||||
Comment[es]=Monitor virtual remoto
|
||||
Comment[eu]=Urruneko alegiazko monitorea
|
||||
Comment[fi]=Virtuaalinen etänäyttö
|
||||
Comment[fr]=Moniteur virtuel distant
|
||||
Comment[gl]=Monitor virtual remoto
|
||||
Comment[he]=צג וירטואלי מרוחק
|
||||
Comment[hu]=Távoli virtuális monitor
|
||||
Comment[ia]=Monitor Virtual Remote
|
||||
Comment[it]=Monitor virtuale remoto
|
||||
Comment[ka]=დაშორებული ვირტუალური ეკრანი
|
||||
Comment[ko]=원격 가상 모니터
|
||||
Comment[lt]=Nuotolinis virtualus monitorius
|
||||
Comment[nl]=Virtual Monitor op afstand
|
||||
Comment[nn]=Virtuell skjerm for ekstern ressurs
|
||||
Comment[pl]=Zdalny monitor wirtualny
|
||||
Comment[pt]=Monitor Virtual Remoto
|
||||
Comment[pt_BR]=Monitor virtual remoto
|
||||
@@ -58,5 +75,6 @@ Comment[tr]=Uzak Sanal Monitör
|
||||
Comment[uk]=Віддалений віртуальний монітор
|
||||
Comment[x-test]=xxRemote Virtual Monitorxx
|
||||
Comment[zh_CN]=远程虚拟监视器
|
||||
Comment[zh_TW]=遠端虛擬螢幕
|
||||
NoDisplay=true
|
||||
X-KDE-Wayland-Interfaces=zkde_screencast_unstable_v1
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <QApplication>
|
||||
#include <QClipboard>
|
||||
#include <QPointer>
|
||||
#include <QX11Info>
|
||||
#include <QtGui/private/qtx11extras_p.h>
|
||||
|
||||
struct RfbServer::Private
|
||||
{
|
||||
|
||||
@@ -26,13 +26,14 @@
|
||||
#include "krfbdebug.h"
|
||||
#include <QTimer>
|
||||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
#include <QGlobalStatic>
|
||||
#include <QHostInfo>
|
||||
#include <qpa/qplatformnativeinterface.h>
|
||||
|
||||
#include <KLocalizedString>
|
||||
#include <KUser>
|
||||
#include <KNotification>
|
||||
#include <KWindowSystem>
|
||||
#include <chrono>
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
@@ -124,7 +125,14 @@ QVariantMap RfbServerManager::s_pluginArgs;
|
||||
void RfbServerManager::init()
|
||||
{
|
||||
//qDebug();
|
||||
d->fb = FrameBufferManager::instance()->frameBuffer(QApplication::desktop()->winId(), s_pluginArgs);
|
||||
WId rootWindow = 0;
|
||||
|
||||
if (KWindowSystem::isPlatformX11()) {
|
||||
QPlatformNativeInterface* native = qApp->platformNativeInterface();
|
||||
rootWindow = reinterpret_cast<WId>(native->nativeResourceForScreen(QByteArrayLiteral("rootwindow"), QGuiApplication::primaryScreen()));
|
||||
}
|
||||
|
||||
d->fb = FrameBufferManager::instance()->frameBuffer(rootWindow, s_pluginArgs);
|
||||
d->myCursor = rfbMakeXCursor(19, 19, (char *) cur, (char *) mask);
|
||||
d->myCursor->cleanup = false;
|
||||
d->desktopName = QStringLiteral("%1@%2 (shared desktop)") //FIXME check if we can use utf8
|
||||
|
||||
@@ -106,7 +106,7 @@ TrayIcon::TrayIcon(QWidget *mainWindow)
|
||||
connect(RfbServerManager::instance(), &RfbServerManager::clientDisconnected,
|
||||
this, &TrayIcon::onClientDisconnected);
|
||||
|
||||
m_aboutAction = KStandardAction::aboutApp(this, SLOT(showAbout()), this);
|
||||
m_aboutAction = KStandardAction::aboutApp(this, &TrayIcon::showAbout, this);
|
||||
contextMenu()->addAction(m_aboutAction);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb VERSION\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2002-11-07 11:35+0200\n"
|
||||
"Last-Translator: WEB-Translator <http://kde.af.org.za>\n"
|
||||
"Language-Team: AFRIKAANS <AF@lia.org.za>\n"
|
||||
@@ -51,7 +51,7 @@ msgstr "Aanvaar Verbinding"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Ontvang verbinding van %1, op hou (terwyl gewag het vir bevestiging)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr ""
|
||||
@@ -381,13 +381,13 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Die afgeleë gebruiker het gesluit Die verbinding."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 disconnected."
|
||||
|
||||
227
po/ar/krfb.po
@@ -7,22 +7,21 @@
|
||||
# Munzir Taha <munzir@kacst.edu.sa>, 2004.
|
||||
# محمد سعد Mohamed SAAD <metehyi@free.fr>, 2006.
|
||||
# Youssef Chahibi <chahibi@gmail.com>, 2007.
|
||||
# zayed <zayed.alsaidi@gmail.com>, 2009.
|
||||
# SPDX-FileCopyrightText: 2009, 2024 zayed <zayed.alsaidi@gmail.com>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2009-01-11 13:06+0400\n"
|
||||
"Last-Translator: zayed <zayed.alsaidi@gmail.com>\n"
|
||||
"Language-Team: Arabic <linuxac-kde-arabic-team@googlegroups.com>\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2024-02-24 12:24+0400\n"
|
||||
"Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
|
||||
"Language-Team: ar\n"
|
||||
"Language: ar\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -52,16 +51,16 @@ msgid "Refuse Connection"
|
||||
msgstr "أ&رفض الاتصال"
|
||||
|
||||
#: invitationsrfbclient.cpp:69
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Accepted connection from %1"
|
||||
msgstr "اتصال مقبول غير مدعو من %1"
|
||||
msgstr "اتصال مقبول من %1"
|
||||
|
||||
#: invitationsrfbclient.cpp:75
|
||||
#, kde-format
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "وصول اتصال من %1 ، معلق (في انتظار التأكيد)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (سطح مكتب مشارك)"
|
||||
@@ -70,7 +69,7 @@ msgstr "%1@%2 (سطح مكتب مشارك)"
|
||||
#: krfb.kcfg:9
|
||||
#, kde-format
|
||||
msgid "Start minimized"
|
||||
msgstr ""
|
||||
msgstr "ابدأ مصغّرًا"
|
||||
|
||||
#. i18n: ectx: label, entry (useDefaultPort), group (TCP)
|
||||
#: krfb.kcfg:15
|
||||
@@ -95,7 +94,7 @@ msgstr "أعلن الخدمة على الشبكة المحلية"
|
||||
#: krfb.kcfg:29
|
||||
#, kde-format
|
||||
msgid "Do not store passwords in KWallet"
|
||||
msgstr ""
|
||||
msgstr "لا تحفظ كلمات السر في «محفظتك»"
|
||||
|
||||
#. i18n: ectx: label, entry (allowDesktopControl), group (Security)
|
||||
#: krfb.kcfg:33
|
||||
@@ -120,25 +119,25 @@ msgstr "كلمة السر للاتصالات غير المدعوة."
|
||||
#: krfb.kcfg:49
|
||||
#, kde-format
|
||||
msgid "Preferred Frame Buffer Plugin"
|
||||
msgstr ""
|
||||
msgstr "ملحق مخزن الأطر المؤقت المفضل"
|
||||
|
||||
#: main-virtualmonitor.cpp:49
|
||||
#, kde-format
|
||||
msgid "Creating a Virtual Monitor from %1"
|
||||
msgstr ""
|
||||
msgstr "تنشئ شاشة افتراضية من %1"
|
||||
|
||||
#: main-virtualmonitor.cpp:80
|
||||
#, kde-format
|
||||
msgid "Remote Virtual Monitor"
|
||||
msgstr ""
|
||||
msgstr "شاشة افتراضية بعيدة"
|
||||
|
||||
#: main-virtualmonitor.cpp:82
|
||||
#, kde-format
|
||||
msgid "Offer a Virtual Monitor that can be accessed remotely"
|
||||
msgstr ""
|
||||
msgstr "تقدم شاشة افتراضية يمكن الوصول إليها عن بعد"
|
||||
|
||||
#: main-virtualmonitor.cpp:84 main.cpp:98
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"(c) 2009-2010, Collabora Ltd.\n"
|
||||
"(c) 2007, Alessandro Praduroux\n"
|
||||
@@ -148,33 +147,33 @@ msgid ""
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Boston\n"
|
||||
msgstr ""
|
||||
"(c) 2007, Alessandro Praduroux\n"
|
||||
"(c) 2001-2003, Tim Jansen\n"
|
||||
"(c) 2001, Johannes E. Schindelin\n"
|
||||
"(c) 2000, heXoNet Support GmbH, D-66424 Homburg\n"
|
||||
"(c) 2000-2001, Const Kaplinsky\n"
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Boston\n"
|
||||
"(ج) 2009-2010، شركة Collabora Ltd.\n"
|
||||
"(ج) 2007، أليساندرو برادورو\n"
|
||||
"(ج) 2001-2003، تيم يانسن\n"
|
||||
"(ج) 2001، يوهانس إي. شيندلين\n"
|
||||
"(ج) 2000-2001، كونست كابلينسكي\n"
|
||||
"(ج) 2000، شركة تريديا\n"
|
||||
"(ج) 1999، مختبرات AT&T في بوسطن\n"
|
||||
|
||||
#: main-virtualmonitor.cpp:91
|
||||
#, kde-format
|
||||
msgid "Virtual Monitor implementation"
|
||||
msgstr ""
|
||||
msgstr "تنفيذ الشاشة الافتراضية"
|
||||
|
||||
#: main-virtualmonitor.cpp:92 main.cpp:108
|
||||
#, kde-format
|
||||
msgid "George Kiagiadakis"
|
||||
msgstr ""
|
||||
msgstr "جورج كياجياداكيس"
|
||||
|
||||
#: main-virtualmonitor.cpp:93 main.cpp:111
|
||||
#, kde-format
|
||||
msgid "Alessandro Praduroux"
|
||||
msgstr "Alessandro Praduroux"
|
||||
msgstr "أليساندرو برادورو"
|
||||
|
||||
#: main-virtualmonitor.cpp:93 main.cpp:111
|
||||
#, kde-format
|
||||
msgid "KDE4 porting"
|
||||
msgstr "النقل إلى كيدي4"
|
||||
msgstr "النقل إلى كِيدِي4"
|
||||
|
||||
#: main-virtualmonitor.cpp:94 main.cpp:112
|
||||
#, kde-format
|
||||
@@ -184,12 +183,12 @@ msgstr "Tim Jansen"
|
||||
#: main-virtualmonitor.cpp:94 main.cpp:112
|
||||
#, kde-format
|
||||
msgid "Original author"
|
||||
msgstr ""
|
||||
msgstr "المؤلف الأصلي"
|
||||
|
||||
#: main-virtualmonitor.cpp:95 main.cpp:113
|
||||
#, kde-format
|
||||
msgid "Johannes E. Schindelin"
|
||||
msgstr "Johannes E. Schindelin"
|
||||
msgstr "يوهانس إي شيندلين"
|
||||
|
||||
#: main-virtualmonitor.cpp:96 main.cpp:114
|
||||
#, kde-format
|
||||
@@ -199,7 +198,7 @@ msgstr "libvncserver"
|
||||
#: main-virtualmonitor.cpp:97 main.cpp:115
|
||||
#, kde-format
|
||||
msgid "Const Kaplinsky"
|
||||
msgstr "Const Kaplinsky"
|
||||
msgstr "كونست كابلينسكي"
|
||||
|
||||
#: main-virtualmonitor.cpp:98 main.cpp:116
|
||||
#, kde-format
|
||||
@@ -209,7 +208,7 @@ msgstr "مرمز TightVNC"
|
||||
#: main-virtualmonitor.cpp:99 main.cpp:117
|
||||
#, kde-format
|
||||
msgid "Tridia Corporation"
|
||||
msgstr "Tridia Corporation"
|
||||
msgstr "شركة تريديا"
|
||||
|
||||
#: main-virtualmonitor.cpp:100 main.cpp:118
|
||||
#, kde-format
|
||||
@@ -219,7 +218,7 @@ msgstr "مرمز ZLib"
|
||||
#: main-virtualmonitor.cpp:101 main.cpp:119
|
||||
#, kde-format
|
||||
msgid "AT&T Laboratories Boston"
|
||||
msgstr "AT&T Laboratories Boston"
|
||||
msgstr "مختبرات AT&T بوسطن"
|
||||
|
||||
#: main-virtualmonitor.cpp:102 main.cpp:120
|
||||
#, kde-format
|
||||
@@ -229,54 +228,52 @@ msgstr "مرمز VNC الأصلي وتصميم الميفاق"
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "Logical resolution of the new monitor"
|
||||
msgstr ""
|
||||
msgstr "الدقة المنطقي للشاشة الجديدة"
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "resolution"
|
||||
msgstr ""
|
||||
msgstr "الدقة"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "Name of the monitor"
|
||||
msgstr ""
|
||||
msgstr "اسم الشاشة"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
msgstr "الاسم"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Password for uninvited connections."
|
||||
#, kde-format
|
||||
msgid "Password for the client to connect to it"
|
||||
msgstr "كلمة السر للاتصالات غير المدعوة."
|
||||
msgstr "كلمة السر للعميل للاتصال به"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "<b>Password:</b>"
|
||||
#, kde-format
|
||||
msgid "password"
|
||||
msgstr "<b>كلمة المرور:</b>"
|
||||
msgstr "كلمة السر"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "The device-pixel-ratio of the device, the scaling factor"
|
||||
msgstr ""
|
||||
msgstr "نسبة البكسل للجهاز، عامل القياس"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "dpr"
|
||||
msgstr ""
|
||||
msgstr "dpr"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "The port we will be listening to"
|
||||
msgstr ""
|
||||
msgstr "المنفذ الذي سنستمع إليه"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "number"
|
||||
msgstr ""
|
||||
msgstr "الرقم"
|
||||
|
||||
#: main.cpp:49
|
||||
#, kde-format
|
||||
@@ -298,25 +295,24 @@ msgid "Desktop Sharing"
|
||||
msgstr "مشاركة سطح المكتب"
|
||||
|
||||
#: main.cpp:96
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "VNC-compatible server to share KDE desktops"
|
||||
#, kde-format
|
||||
msgid "VNC-compatible server to share desktops"
|
||||
msgstr "خادم VNC يطابق مشاركة أسطح المكتب KDE"
|
||||
msgstr "خادم متوافق مع VNC لمشاركة أجهزة سطح المكتب"
|
||||
|
||||
#: main.cpp:105
|
||||
#, kde-format
|
||||
msgid "George Goldberg"
|
||||
msgstr ""
|
||||
msgstr "جورج جولدبيرج"
|
||||
|
||||
#: main.cpp:106
|
||||
#, kde-format
|
||||
msgid "Telepathy tubes support"
|
||||
msgstr ""
|
||||
msgstr "دعم أنابيب التخاطر"
|
||||
|
||||
#: main.cpp:126
|
||||
#, kde-format
|
||||
msgid "Do not show the invitations management dialog at startup"
|
||||
msgstr ""
|
||||
msgstr "لا تظهر مربع حوار إدارة الدعوات عند بدء التشغيل"
|
||||
|
||||
#: main.cpp:148
|
||||
#, kde-format
|
||||
@@ -324,16 +320,18 @@ msgid ""
|
||||
"Desktop Sharing is not running under an X11 Server or Wayland.\n"
|
||||
"Other display servers are currently not supported."
|
||||
msgstr ""
|
||||
"مشاركة سطح المكتب لا تعمل ضمن خادم أكس أو ويلاند.\n"
|
||||
"خوادم العرض الأخرى غير مدعومة حاليًا."
|
||||
|
||||
#: mainwindow.cpp:52
|
||||
#, kde-format
|
||||
msgid "Storing passwords in config file is insecure!"
|
||||
msgstr ""
|
||||
msgstr "تخزين كلمات السر في ملف الضبط غير آمن!"
|
||||
|
||||
#: mainwindow.cpp:189
|
||||
#, kde-format
|
||||
msgid "Enter a new password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "أدخل كلمة سر جديدة للوصول غير المراقب"
|
||||
|
||||
#: mainwindow.cpp:200
|
||||
#, kde-format
|
||||
@@ -341,19 +339,20 @@ msgid ""
|
||||
"Failed to start the krfb server. Desktop sharing will not work. Try setting "
|
||||
"another port in the settings and restart krfb."
|
||||
msgstr ""
|
||||
"فشل في بدء تشغيل خادم krfb. لن تعمل مشاركة سطح المكتب. حاول إعداد منفذ آخر "
|
||||
"في الإعدادات وإعادة تشغيل krfb."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (text), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, aboutLabel)
|
||||
#: mainwindow.cpp:223 mainwindow.cpp:230 ui/mainwidget.ui:83
|
||||
#: ui/mainwidget.ui:86 ui/mainwidget.ui:114
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Desktop Sharing"
|
||||
#, kde-format
|
||||
msgid "KDE Desktop Sharing"
|
||||
msgstr "مشاركة سطح المكتب"
|
||||
msgstr "مشاركة سطح المكتب كيدي"
|
||||
|
||||
#: mainwindow.cpp:224
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This field contains the address of your computer and the port number, "
|
||||
"separated by a colon.\n"
|
||||
@@ -383,6 +382,10 @@ msgid ""
|
||||
"password, desktop sharing access will be granted without explicit "
|
||||
"confirmation."
|
||||
msgstr ""
|
||||
"يجب مصادقة أي مستخدم بعيد لديه كلمة سر عادية لمشاركة سطح المكتب.\n"
|
||||
"\n"
|
||||
"إذا كان الوصول غير المراقب مشغل، وقام المستخدم البعيد بتوفير كلمة سر للوضع "
|
||||
"غير المراقب، فسيمنح الوصول إلى مشاركة سطح المكتب دون تأكيد صريح."
|
||||
|
||||
#: mainwindow.cpp:249
|
||||
#, kde-format
|
||||
@@ -397,27 +400,28 @@ msgstr "الأمن"
|
||||
#: mainwindow.cpp:251
|
||||
#, kde-format
|
||||
msgid "Screen capture"
|
||||
msgstr ""
|
||||
msgstr "التقاط الشّاشة"
|
||||
|
||||
#: mainwindow.cpp:256
|
||||
#, kde-format
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
"لتطبيق إعداد البرنامج المساعد Framebuffer، تحتاج إلى إعادة تشغيل البرنامج."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#, fuzzy, kde-format
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "المستخدم البعيد أغلق الاتصال."
|
||||
msgstr "المستخدم البعيد %1 متصل."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#, fuzzy, kde-format
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "المستخدم البعيد أغلق الاتصال."
|
||||
msgstr "المستخدم البعيد %1 فقد الاتصال."
|
||||
|
||||
#: trayicon.cpp:56
|
||||
#, kde-format
|
||||
msgid "Disconnect"
|
||||
msgstr ""
|
||||
msgstr "اقطع الاتصال"
|
||||
|
||||
#: trayicon.cpp:62
|
||||
#, kde-format
|
||||
@@ -435,21 +439,21 @@ msgid "Desktop Sharing - connected with %1"
|
||||
msgstr "مشاركة سطح المكتب - متصل مع %1"
|
||||
|
||||
#: trayicon.cpp:120
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected"
|
||||
msgstr "مشاركة سطح المكتب - غير متصل"
|
||||
msgstr "مشاركة سطح المكتب - متصل"
|
||||
|
||||
#. i18n: ectx: property (windowTitle), widget (QWidget, Framebuffer)
|
||||
#: ui/configframebuffer.ui:14
|
||||
#, kde-format
|
||||
msgid "Framebuffer"
|
||||
msgstr ""
|
||||
msgstr "مخزن الأطر المؤقت"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configframebuffer.ui:22
|
||||
#, kde-format
|
||||
msgid "Preferred frameb&uffer plugin:"
|
||||
msgstr ""
|
||||
msgstr "ملحق المخزن الإطر المؤقته المفضل:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, helpText)
|
||||
#: ui/configframebuffer.ui:47
|
||||
@@ -460,6 +464,10 @@ msgid ""
|
||||
"style=\" font-weight:600;\">qt</span> plugin is a safe fallback, if for some "
|
||||
"reason others don't work. But also it is very slow.</p></body></html>"
|
||||
msgstr ""
|
||||
"<html><head/><body><p> عند استخدام أكس ١١ يجب تفضيل المكون الإضافي <span "
|
||||
"style=\"font-weight:600;\">xcb</span> لأنه أكثر أداءً. يعد المكون الإضافي<br/"
|
||||
"><span style = \"font-weight:600;\">qt</span> بديلاً آمنًا، إذا لم يعمل "
|
||||
"الآخرون لسبب ما. ولكنه أيضًا بطيء جدًا.</p></body></html>"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_allowDesktopControl)
|
||||
#: ui/configsecurity.ui:17
|
||||
@@ -471,7 +479,7 @@ msgstr "اسمح للاتصالات البعيدة بتحكم بسطح مكتب
|
||||
#: ui/configsecurity.ui:27
|
||||
#, kde-format
|
||||
msgid "Do not store passwords using KDE wallet"
|
||||
msgstr ""
|
||||
msgstr "لا تحفظ كلمات السر في محفظة كيدي"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_useDefaultPort)
|
||||
#: ui/configtcp.ui:26
|
||||
@@ -535,57 +543,50 @@ msgstr "اسمح للمستخدم البعيد بالت&حكم بالفأرة و
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, aboutLabel)
|
||||
#: ui/mainwidget.ui:117
|
||||
#, fuzzy, kde-format
|
||||
#| msgid ""
|
||||
#| "KDE Desktop Sharing allows you to invite somebody at a remote location to "
|
||||
#| "watch and possibly control your desktop. <a href=\"whatsthis\">More about "
|
||||
#| "invitations...</a>"
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"KDE Desktop Sharing allows you to grant permission to someone at a remote "
|
||||
"location for viewing and possibly controlling your desktop."
|
||||
msgstr ""
|
||||
"تشارك سطح المكتب للكيدي يسمح لك بدعوة شخص بعيد لمشاهدةأو التحكم بسطح مكتبك . "
|
||||
"<a href=\"whatsthis\">المزيد عند الدعوات...</a>"
|
||||
"تسمح لك مشاركة سطح المكتب كيدي بمنح الإذن لشخص ما في مكان بعيد لمشاهدة سطح "
|
||||
"المكتب الخاص بك وربما التحكم فيه."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:145
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Manage Invitations - Desktop Sharing"
|
||||
#, kde-format
|
||||
msgid "Starts/Stops Remote Desktop Sharing"
|
||||
msgstr "إدارة الدعوات - مشاركة سطح المكتب"
|
||||
msgstr "يبدأ/يوقف مشاركة سطح المكتب عن بعد"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:148
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Desktop Sharing"
|
||||
#, kde-format
|
||||
msgid "&Enable Desktop Sharing"
|
||||
msgstr "مشاركة سطح المكتب"
|
||||
msgstr "&مكن مشاركة سطح المكتب"
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, detailsGroupBox)
|
||||
#: ui/mainwidget.ui:170
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Connection side image"
|
||||
#, kde-format
|
||||
msgid "Connection Details"
|
||||
msgstr "الصورة من جانب الاتصال"
|
||||
msgstr "تفاصيل الاتصال"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressLabel)
|
||||
#: ui/mainwidget.ui:193
|
||||
#, kde-format
|
||||
msgid "&Address"
|
||||
msgstr ""
|
||||
msgstr "ال&عنوان"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, addressAboutButton)
|
||||
#: ui/mainwidget.ui:214
|
||||
#, kde-format
|
||||
msgid "More about this address"
|
||||
msgstr ""
|
||||
msgstr "المزيد عن هذا العنوان"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, addressAboutButton)
|
||||
#. i18n: ectx: property (text), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:217 ui/mainwidget.ui:397
|
||||
#, kde-format
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
msgstr "عن"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:235
|
||||
@@ -594,32 +595,32 @@ msgid ""
|
||||
"Address required by remote users to connect to your desktop. Click about "
|
||||
"button on the right for more info."
|
||||
msgstr ""
|
||||
"العنوان المطلوب من قبل المستخدمين عن بعد للاتصال بسطح المكتب الخاص بك. انقر "
|
||||
"فوق الزر الموجود على اليسار لمزيد من المعلومات."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:238
|
||||
#, kde-format
|
||||
msgid "127.0.0.1 : 5900"
|
||||
msgstr ""
|
||||
msgstr "127.0.0.1 : 5900"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordLabel)
|
||||
#: ui/mainwidget.ui:269
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "<b>Password:</b>"
|
||||
#, kde-format
|
||||
msgid "&Password"
|
||||
msgstr "<b>كلمة المرور:</b>"
|
||||
msgstr "كلمة ال&سّر"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:290
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Desktop Sharing Error"
|
||||
#, kde-format
|
||||
msgid "Edit/Save Desktop Sharing Password"
|
||||
msgstr "خطأ مشاركة سطح المكتب"
|
||||
msgstr "حرر/احفظ كلمة السر لمشاركة سطح المكتب"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:293
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "حرّر"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:311
|
||||
@@ -628,12 +629,14 @@ msgid ""
|
||||
"Password required by remote users to connect to your desktop. Click the edit "
|
||||
"button on the right to change password."
|
||||
msgstr ""
|
||||
"كلمة السر المطلوبة من قبل المستخدمين عن بعد للاتصال بسطح المكتب الخاص بك. "
|
||||
"انقر فوق زر التحرير الموجود على اليسار لتغير كلمة السر."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:314
|
||||
#, kde-format
|
||||
msgid "TemporaryPassword"
|
||||
msgstr ""
|
||||
msgstr "كلمة_سر_مؤقتة"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QGroupBox, unattendedGroupBox)
|
||||
#. i18n: ectx: property (text), widget (QLabel, unattendedAboutLabel)
|
||||
@@ -643,12 +646,14 @@ msgid ""
|
||||
"Unattended Access allows a remote user with the password to gain control to "
|
||||
"your desktop without your explicit confirmation."
|
||||
msgstr ""
|
||||
"يسمح الوصول غير المراقب لمستخدم بعيد لديه كلمة السر بالتحكم في سطح المكتب "
|
||||
"الخاص بك دون تأكيد صريح منك."
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, unattendedGroupBox)
|
||||
#: ui/mainwidget.ui:343
|
||||
#, kde-format
|
||||
msgid "Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "كلمة سر للوصول غير المراقب"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, unattendedAboutLabel)
|
||||
#: ui/mainwidget.ui:375
|
||||
@@ -658,12 +663,14 @@ msgid ""
|
||||
"your desktop without your explicit confirmation. Click \"About\" button on "
|
||||
"right to know more."
|
||||
msgstr ""
|
||||
"يسمح الوصول غير المراقب لمستخدم بعيد لديه كلمة السر بالتحكم في سطح المكتب "
|
||||
"الخاص بك دون تأكيد صريح منك. انقر زر \"عن\" في اليسار لتعرف المزيد."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:394
|
||||
#, kde-format
|
||||
msgid "Know more about Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "اعرف المزيد عن كلمة سر للوصول غير المراقب"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:437
|
||||
@@ -672,24 +679,26 @@ msgid ""
|
||||
"Starts/Stops unattended access to your desktop. Click on button on right to "
|
||||
"change password, and \"About\" button to know more."
|
||||
msgstr ""
|
||||
"يبدأ/يوقف الوصول غير المراقب إلى سطح المكتب الخاص بك. انقر على الزر الموجود "
|
||||
"على اليسار لتغيير كلمة السر، وزر \"حول\" لمعرفة المزيد."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:440
|
||||
#, kde-format
|
||||
msgid "Enable &Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "مكن الوصول &غير المراقب"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:465
|
||||
#, kde-format
|
||||
msgid "Change password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "غيّر كلمة سر للوصول غير المراقب"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:468
|
||||
#, kde-format
|
||||
msgid "&Change Unattended Password"
|
||||
msgstr ""
|
||||
msgstr "&غيّر كلمة سر للوصول غير المراقب"
|
||||
|
||||
#~ msgid "Welcome to KDE Desktop Sharing"
|
||||
#~ msgstr "مرحباً بك في مشاركة سطح المكتب KDE ."
|
||||
@@ -699,7 +708,7 @@ msgstr ""
|
||||
#~ "watch and possibly control your desktop. <a href=\"whatsthis\">More about "
|
||||
#~ "invitations...</a>"
|
||||
#~ msgstr ""
|
||||
#~ "تشارك سطح المكتب للكيدي يسمح لك بدعوة شخص بعيد لمشاهدةأو التحكم بسطح "
|
||||
#~ "تشارك سطح المكتب للكِيدِي يسمح لك بدعوة شخص بعيد لمشاهدةأو التحكم بسطح "
|
||||
#~ "مكتبك . <a href=\"whatsthis\">المزيد عند الدعوات...</a>"
|
||||
|
||||
#~ msgid ""
|
||||
@@ -836,8 +845,8 @@ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "For security reasons this invitation will expire at %5 (%6)."
|
||||
#~ msgstr ""
|
||||
#~ "لقد دعيت إلى جلسة VNC ، إذا كان لديك برنامج كدي للأسطح البعيدةما عليك إلا "
|
||||
#~ "أن تنقر على الرابط الذي بالأسفل.\n"
|
||||
#~ "لقد دعيت إلى جلسة VNC ، إذا كان لديك برنامج كِيدِي للأسطح البعيدةما عليك "
|
||||
#~ "إلا أن تنقر على الرابط الذي بالأسفل.\n"
|
||||
#~ "\n"
|
||||
#~ "%1\n"
|
||||
#~ "\n"
|
||||
@@ -869,7 +878,7 @@ msgstr ""
|
||||
#~ msgstr ""
|
||||
#~ "مشاركة سطح المكتب باستخدام برتوكول VNC . يمكنك استعمال أي عميل VNC "
|
||||
#~ "للاتصال.\n"
|
||||
#~ "في الكيدي يسمى العميل بـ 'اتصال بسطح مكتب بعيد' . ادخل معلومات المضيف\n"
|
||||
#~ "في الكِيدِي يسمى العميل بـ 'اتصال بسطح مكتب بعيد' . ادخل معلومات المضيف\n"
|
||||
#~ "في العميل و هو سيقوم بالاتصال.."
|
||||
|
||||
#, fuzzy
|
||||
@@ -901,7 +910,7 @@ msgstr ""
|
||||
#~ "font-weight:400; font-style:normal; text-decoration:none;\">\n"
|
||||
#~ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-"
|
||||
#~ "right:0px; -qt-block-indent:0; text-indent:0px;\">يسمح عميل مشاركة سطح "
|
||||
#~ "المكتب للكيديبدعوة شخص في مكان بعيد لمشاهدة سطح مكتب و بالإمكان التحكم "
|
||||
#~ "المكتب للكِيدِيبدعوة شخص في مكان بعيد لمشاهدة سطح مكتب و بالإمكان التحكم "
|
||||
#~ "به . <a href=\"whatsthis\">المزيد عن الدعوات...</a></p></body></html>"
|
||||
|
||||
#~ msgid "Creation Time"
|
||||
|
||||
648
po/ast/krfb.po
Normal file
@@ -0,0 +1,648 @@
|
||||
# Copyright (C) 2024 This file is copyright:
|
||||
# This file is distributed under the same license as the krfb package.
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2024 Enol P. <enolp@softastur.org>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2024-03-27 22:50+0100\n"
|
||||
"Last-Translator: Enol P. <enolp@softastur.org>\n"
|
||||
"Language-Team: Asturian <alministradores@softastur.org>\n"
|
||||
"Language: ast\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 24.02.1\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Softastur"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "alministradores@softastur.org"
|
||||
|
||||
#: connectiondialog.cpp:39
|
||||
#, kde-format
|
||||
msgid "New Connection"
|
||||
msgstr ""
|
||||
|
||||
#: connectiondialog.cpp:61
|
||||
#, kde-format
|
||||
msgid "Accept Connection"
|
||||
msgstr ""
|
||||
|
||||
#: connectiondialog.cpp:65
|
||||
#, kde-format
|
||||
msgid "Refuse Connection"
|
||||
msgstr ""
|
||||
|
||||
#: invitationsrfbclient.cpp:69
|
||||
#, kde-format
|
||||
msgid "Accepted connection from %1"
|
||||
msgstr ""
|
||||
|
||||
#: invitationsrfbclient.cpp:75
|
||||
#, kde-format
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr ""
|
||||
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: label, entry (startMinimized), group (MainWindow)
|
||||
#: krfb.kcfg:9
|
||||
#, kde-format
|
||||
msgid "Start minimized"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: label, entry (useDefaultPort), group (TCP)
|
||||
#: krfb.kcfg:15
|
||||
#, kde-format
|
||||
msgid "Use the default port for VNC (5900)"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: label, entry (port), group (TCP)
|
||||
#: krfb.kcfg:19
|
||||
#, kde-format
|
||||
msgid "This is the port on which krfb will listen."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_publishService)
|
||||
#. i18n: ectx: label, entry (publishService), group (TCP)
|
||||
#: krfb.kcfg:23 ui/configtcp.ui:16
|
||||
#, kde-format
|
||||
msgid "Announce the service on the local network"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: label, entry (noWallet), group (Security)
|
||||
#: krfb.kcfg:29
|
||||
#, kde-format
|
||||
msgid "Do not store passwords in KWallet"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: label, entry (allowDesktopControl), group (Security)
|
||||
#: krfb.kcfg:33
|
||||
#, kde-format
|
||||
msgid "Allow remote connections to manage the desktop."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: label, entry (allowUnattendedAccess), group (Security)
|
||||
#: krfb.kcfg:37
|
||||
#, kde-format
|
||||
msgid "Allow connections without an invitation."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: label, entry (unattendedAccessPassword), group (Security)
|
||||
#. i18n: ectx: label, entry (desktopSharingPassword), group (Security)
|
||||
#: krfb.kcfg:41 krfb.kcfg:44
|
||||
#, kde-format
|
||||
msgid "Password for uninvited connections."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: label, entry (preferredFrameBufferPlugin), group (FrameBuffer)
|
||||
#: krfb.kcfg:49
|
||||
#, kde-format
|
||||
msgid "Preferred Frame Buffer Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:49
|
||||
#, kde-format
|
||||
msgid "Creating a Virtual Monitor from %1"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:80
|
||||
#, kde-format
|
||||
msgid "Remote Virtual Monitor"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:82
|
||||
#, kde-format
|
||||
msgid "Offer a Virtual Monitor that can be accessed remotely"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:84 main.cpp:98
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"(c) 2009-2010, Collabora Ltd.\n"
|
||||
"(c) 2007, Alessandro Praduroux\n"
|
||||
"(c) 2001-2003, Tim Jansen\n"
|
||||
"(c) 2001, Johannes E. Schindelin\n"
|
||||
"(c) 2000-2001, Const Kaplinsky\n"
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Boston\n"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:91
|
||||
#, kde-format
|
||||
msgid "Virtual Monitor implementation"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:92 main.cpp:108
|
||||
#, kde-format
|
||||
msgid "George Kiagiadakis"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:93 main.cpp:111
|
||||
#, kde-format
|
||||
msgid "Alessandro Praduroux"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:93 main.cpp:111
|
||||
#, kde-format
|
||||
msgid "KDE4 porting"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:94 main.cpp:112
|
||||
#, kde-format
|
||||
msgid "Tim Jansen"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:94 main.cpp:112
|
||||
#, kde-format
|
||||
msgid "Original author"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:95 main.cpp:113
|
||||
#, kde-format
|
||||
msgid "Johannes E. Schindelin"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:96 main.cpp:114
|
||||
#, kde-format
|
||||
msgid "libvncserver"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:97 main.cpp:115
|
||||
#, kde-format
|
||||
msgid "Const Kaplinsky"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:98 main.cpp:116
|
||||
#, kde-format
|
||||
msgid "TightVNC encoder"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:99 main.cpp:117
|
||||
#, kde-format
|
||||
msgid "Tridia Corporation"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:100 main.cpp:118
|
||||
#, kde-format
|
||||
msgid "ZLib encoder"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:101 main.cpp:119
|
||||
#, kde-format
|
||||
msgid "AT&T Laboratories Boston"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:102 main.cpp:120
|
||||
#, kde-format
|
||||
msgid "original VNC encoders and protocol design"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "Logical resolution of the new monitor"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "resolution"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "Name of the monitor"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, kde-format
|
||||
msgid "Password for the client to connect to it"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, kde-format
|
||||
msgid "password"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "The device-pixel-ratio of the device, the scaling factor"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "dpr"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "The port we will be listening to"
|
||||
msgstr ""
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "number"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:49
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Your X11 Server does not support the required XTest extension version 2.2. "
|
||||
"Sharing your desktop is not possible."
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:51 main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing Error"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:96
|
||||
#, kde-format
|
||||
msgid "VNC-compatible server to share desktops"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:105
|
||||
#, kde-format
|
||||
msgid "George Goldberg"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:106
|
||||
#, kde-format
|
||||
msgid "Telepathy tubes support"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:126
|
||||
#, kde-format
|
||||
msgid "Do not show the invitations management dialog at startup"
|
||||
msgstr ""
|
||||
|
||||
#: main.cpp:148
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Desktop Sharing is not running under an X11 Server or Wayland.\n"
|
||||
"Other display servers are currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: mainwindow.cpp:52
|
||||
#, kde-format
|
||||
msgid "Storing passwords in config file is insecure!"
|
||||
msgstr ""
|
||||
|
||||
#: mainwindow.cpp:189
|
||||
#, kde-format
|
||||
msgid "Enter a new password for Unattended Access"
|
||||
msgstr ""
|
||||
|
||||
#: mainwindow.cpp:200
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Failed to start the krfb server. Desktop sharing will not work. Try setting "
|
||||
"another port in the settings and restart krfb."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (text), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, aboutLabel)
|
||||
#: mainwindow.cpp:223 mainwindow.cpp:230 ui/mainwidget.ui:83
|
||||
#: ui/mainwidget.ui:86 ui/mainwidget.ui:114
|
||||
#, kde-format
|
||||
msgid "KDE Desktop Sharing"
|
||||
msgstr ""
|
||||
|
||||
#: mainwindow.cpp:224
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This field contains the address of your computer and the port number, "
|
||||
"separated by a colon.\n"
|
||||
"\n"
|
||||
"The address is just a hint - you can use any address that can reach your "
|
||||
"computer.\n"
|
||||
"\n"
|
||||
"Desktop Sharing tries to guess your address from your network configuration, "
|
||||
"but does not always succeed in doing so.\n"
|
||||
"\n"
|
||||
"If your computer is behind a firewall it may have a different address or be "
|
||||
"unreachable for other computers."
|
||||
msgstr ""
|
||||
|
||||
#: mainwindow.cpp:231
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Any remote user with normal desktop sharing password will have to be "
|
||||
"authenticated.\n"
|
||||
"\n"
|
||||
"If unattended access is on, and the remote user provides unattended mode "
|
||||
"password, desktop sharing access will be granted without explicit "
|
||||
"confirmation."
|
||||
msgstr ""
|
||||
|
||||
#: mainwindow.cpp:249
|
||||
#, kde-format
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
|
||||
#: mainwindow.cpp:250
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: mainwindow.cpp:251
|
||||
#, kde-format
|
||||
msgid "Screen capture"
|
||||
msgstr ""
|
||||
|
||||
#: mainwindow.cpp:256
|
||||
#, kde-format
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr ""
|
||||
|
||||
#: trayicon.cpp:56
|
||||
#, kde-format
|
||||
msgid "Disconnect"
|
||||
msgstr ""
|
||||
|
||||
#: trayicon.cpp:62
|
||||
#, kde-format
|
||||
msgid "Enable Remote Control"
|
||||
msgstr ""
|
||||
|
||||
#: trayicon.cpp:101 trayicon.cpp:133
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - disconnected"
|
||||
msgstr ""
|
||||
|
||||
#: trayicon.cpp:117 trayicon.cpp:137
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected with %1"
|
||||
msgstr ""
|
||||
|
||||
#: trayicon.cpp:120
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (windowTitle), widget (QWidget, Framebuffer)
|
||||
#: ui/configframebuffer.ui:14
|
||||
#, kde-format
|
||||
msgid "Framebuffer"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configframebuffer.ui:22
|
||||
#, kde-format
|
||||
msgid "Preferred frameb&uffer plugin:"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, helpText)
|
||||
#: ui/configframebuffer.ui:47
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"<html><head/><body><p>When using x11, <span style=\" font-weight:600;\">xcb</"
|
||||
"span> plugin should be preferred, because it is more performant.<br/><span "
|
||||
"style=\" font-weight:600;\">qt</span> plugin is a safe fallback, if for some "
|
||||
"reason others don't work. But also it is very slow.</p></body></html>"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_allowDesktopControl)
|
||||
#: ui/configsecurity.ui:17
|
||||
#, kde-format
|
||||
msgid "Allow remote connections to control your desktop"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_noWallet)
|
||||
#: ui/configsecurity.ui:27
|
||||
#, kde-format
|
||||
msgid "Do not store passwords using KDE wallet"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_useDefaultPort)
|
||||
#: ui/configtcp.ui:26
|
||||
#, kde-format
|
||||
msgid "Use default port"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configtcp.ui:50
|
||||
#, kde-format
|
||||
msgid "Listening port:"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, TextLabel5)
|
||||
#: ui/connectionwidget.ui:47
|
||||
#, kde-format
|
||||
msgid "Attention"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, mainTextLabel)
|
||||
#: ui/connectionwidget.ui:72
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Somebody is requesting a connection to your computer. Granting this will "
|
||||
"allow the remote user to watch your desktop. "
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, TextLabel1)
|
||||
#: ui/connectionwidget.ui:102
|
||||
#, kde-format
|
||||
msgid "Remote system:"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, remoteHost)
|
||||
#: ui/connectionwidget.ui:118
|
||||
#, kde-format
|
||||
msgid "123.234.123.234"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, cbAllowRemoteControl)
|
||||
#: ui/connectionwidget.ui:136
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"If you turn this option on, the remote user can enter keystrokes and use "
|
||||
"your mouse pointer. This gives them full control over your computer, so be "
|
||||
"careful. When the option is disabled the remote user can only watch your "
|
||||
"screen."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, cbAllowRemoteControl)
|
||||
#: ui/connectionwidget.ui:139
|
||||
#, kde-format
|
||||
msgid "Allow remote user to &control keyboard and mouse"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, aboutLabel)
|
||||
#: ui/mainwidget.ui:117
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"KDE Desktop Sharing allows you to grant permission to someone at a remote "
|
||||
"location for viewing and possibly controlling your desktop."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:145
|
||||
#, kde-format
|
||||
msgid "Starts/Stops Remote Desktop Sharing"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:148
|
||||
#, kde-format
|
||||
msgid "&Enable Desktop Sharing"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, detailsGroupBox)
|
||||
#: ui/mainwidget.ui:170
|
||||
#, kde-format
|
||||
msgid "Connection Details"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressLabel)
|
||||
#: ui/mainwidget.ui:193
|
||||
#, kde-format
|
||||
msgid "&Address"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, addressAboutButton)
|
||||
#: ui/mainwidget.ui:214
|
||||
#, kde-format
|
||||
msgid "More about this address"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, addressAboutButton)
|
||||
#. i18n: ectx: property (text), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:217 ui/mainwidget.ui:397
|
||||
#, kde-format
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:235
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Address required by remote users to connect to your desktop. Click about "
|
||||
"button on the right for more info."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:238
|
||||
#, kde-format
|
||||
msgid "127.0.0.1 : 5900"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordLabel)
|
||||
#: ui/mainwidget.ui:269
|
||||
#, kde-format
|
||||
msgid "&Password"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:290
|
||||
#, kde-format
|
||||
msgid "Edit/Save Desktop Sharing Password"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:293
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:311
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Password required by remote users to connect to your desktop. Click the edit "
|
||||
"button on the right to change password."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:314
|
||||
#, kde-format
|
||||
msgid "TemporaryPassword"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QGroupBox, unattendedGroupBox)
|
||||
#. i18n: ectx: property (text), widget (QLabel, unattendedAboutLabel)
|
||||
#: ui/mainwidget.ui:340 ui/mainwidget.ui:378
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Unattended Access allows a remote user with the password to gain control to "
|
||||
"your desktop without your explicit confirmation."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, unattendedGroupBox)
|
||||
#: ui/mainwidget.ui:343
|
||||
#, kde-format
|
||||
msgid "Unattended Access"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, unattendedAboutLabel)
|
||||
#: ui/mainwidget.ui:375
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Unattended Access allows a remote user with the password to gain control to "
|
||||
"your desktop without your explicit confirmation. Click \"About\" button on "
|
||||
"right to know more."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:394
|
||||
#, kde-format
|
||||
msgid "Know more about Unattended Access"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:437
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"Starts/Stops unattended access to your desktop. Click on button on right to "
|
||||
"change password, and \"About\" button to know more."
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:440
|
||||
#, kde-format
|
||||
msgid "Enable &Unattended Access"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:465
|
||||
#, kde-format
|
||||
msgid "Change password for Unattended Access"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:468
|
||||
#, kde-format
|
||||
msgid "&Change Unattended Password"
|
||||
msgstr ""
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2007-08-26 22:37+0300\n"
|
||||
"Last-Translator: Darafei Praliaskouski <komzpa@licei2.com>\n"
|
||||
"Language-Team: Belarusian <i18n@mova.org>\n"
|
||||
@@ -55,7 +55,7 @@ msgstr ""
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr ""
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr ""
|
||||
@@ -380,12 +380,12 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr ""
|
||||
|
||||
170
po/bg/krfb.po
@@ -3,19 +3,20 @@
|
||||
#
|
||||
# Zlatko Popov <zlatkopopov@fsa-bg.org>, 2006, 2007, 2008.
|
||||
# Yasen Pramatarov <yasen@lindeas.com>, 2011, 2013.
|
||||
# SPDX-FileCopyrightText: 2024 Mincho Kondarev <mkondarev@yahoo.de>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2013-07-25 15:34+0300\n"
|
||||
"Last-Translator: Yasen Pramatarov <yasen@lindeas.com>\n"
|
||||
"Language-Team: Bulgarian <dict@ludost.net>\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2024-07-08 22:24+0200\n"
|
||||
"Last-Translator: Mincho Kondarev <mkondarev@yahoo.de>\n"
|
||||
"Language-Team: Bulgarian <kde-i18n-doc@kde.org>\n"
|
||||
"Language: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Lokalize 1.5\n"
|
||||
"X-Generator: Lokalize 24.05.1\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
|
||||
#, kde-format
|
||||
@@ -53,7 +54,7 @@ msgstr "Приета е връзка от %1."
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Връзката от %1 чака за потвърждение."
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (споделяне на работното място)"
|
||||
@@ -62,7 +63,7 @@ msgstr "%1@%2 (споделяне на работното място)"
|
||||
#: krfb.kcfg:9
|
||||
#, kde-format
|
||||
msgid "Start minimized"
|
||||
msgstr ""
|
||||
msgstr "Стартиране в минимизиран режим"
|
||||
|
||||
#. i18n: ectx: label, entry (useDefaultPort), group (TCP)
|
||||
#: krfb.kcfg:15
|
||||
@@ -87,7 +88,7 @@ msgstr "Обявяване на услугата в локалната мреж
|
||||
#: krfb.kcfg:29
|
||||
#, kde-format
|
||||
msgid "Do not store passwords in KWallet"
|
||||
msgstr ""
|
||||
msgstr "Да не се съхраняват пароли в KWallet"
|
||||
|
||||
#. i18n: ectx: label, entry (allowDesktopControl), group (Security)
|
||||
#: krfb.kcfg:33
|
||||
@@ -117,17 +118,18 @@ msgstr "Предпочитана приставка за фреймбуфер"
|
||||
#: main-virtualmonitor.cpp:49
|
||||
#, kde-format
|
||||
msgid "Creating a Virtual Monitor from %1"
|
||||
msgstr ""
|
||||
msgstr "Създаване на виртуален монитор от %1"
|
||||
|
||||
#: main-virtualmonitor.cpp:80
|
||||
#, kde-format
|
||||
msgid "Remote Virtual Monitor"
|
||||
msgstr ""
|
||||
msgstr "Отдалечен виртуален монитор"
|
||||
|
||||
#: main-virtualmonitor.cpp:82
|
||||
#, kde-format
|
||||
msgid "Offer a Virtual Monitor that can be accessed remotely"
|
||||
msgstr ""
|
||||
"Предложете виртуален монитор, който може да бъде достъпен от разстояние"
|
||||
|
||||
#: main-virtualmonitor.cpp:84 main.cpp:98
|
||||
#, kde-format
|
||||
@@ -151,7 +153,7 @@ msgstr ""
|
||||
#: main-virtualmonitor.cpp:91
|
||||
#, kde-format
|
||||
msgid "Virtual Monitor implementation"
|
||||
msgstr ""
|
||||
msgstr "Изпълнение на виртуален монитор"
|
||||
|
||||
#: main-virtualmonitor.cpp:92 main.cpp:108
|
||||
#, kde-format
|
||||
@@ -221,52 +223,52 @@ msgstr "оригинални енкодери VNC и дизайн на прот
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "Logical resolution of the new monitor"
|
||||
msgstr ""
|
||||
msgstr "Логическа разделителна способност на новия монитор"
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "resolution"
|
||||
msgstr ""
|
||||
msgstr "резолюция"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "Name of the monitor"
|
||||
msgstr ""
|
||||
msgstr "Име на монитора"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
msgstr "име"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Password for the client to connect to it"
|
||||
msgstr "Парола за непоканени връзки."
|
||||
msgstr "Парола за клиента, за да се свърже с него"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "password"
|
||||
msgstr "<b>Парола:</b>"
|
||||
msgstr "парола"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "The device-pixel-ratio of the device, the scaling factor"
|
||||
msgstr ""
|
||||
msgstr "Пикселно съотношение на устройството, коефициент на мащабиране"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "dpr"
|
||||
msgstr ""
|
||||
msgstr "dpr"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "The port we will be listening to"
|
||||
msgstr ""
|
||||
msgstr "Портът, който ще се използва"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "number"
|
||||
msgstr ""
|
||||
msgstr "номер"
|
||||
|
||||
#: main.cpp:49
|
||||
#, kde-format
|
||||
@@ -288,9 +290,9 @@ msgid "Desktop Sharing"
|
||||
msgstr "Споделяне на работното място"
|
||||
|
||||
#: main.cpp:96
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "VNC-compatible server to share desktops"
|
||||
msgstr "Съвместим сървър с протокола VNC за споделяне на работно място"
|
||||
msgstr "Сървър, съвместим с протокола VNC за споделяне на работно място"
|
||||
|
||||
#: main.cpp:105
|
||||
#, kde-format
|
||||
@@ -300,7 +302,7 @@ msgstr "George Goldberg"
|
||||
#: main.cpp:106
|
||||
#, kde-format
|
||||
msgid "Telepathy tubes support"
|
||||
msgstr ""
|
||||
msgstr "Поддръжка на Telepathy Tubes"
|
||||
|
||||
#: main.cpp:126
|
||||
#, kde-format
|
||||
@@ -313,16 +315,18 @@ msgid ""
|
||||
"Desktop Sharing is not running under an X11 Server or Wayland.\n"
|
||||
"Other display servers are currently not supported."
|
||||
msgstr ""
|
||||
"Споделянето на работния плот не се изпълнява под X11 сървър или Wayland.\n"
|
||||
"Другите сървъри за показване на информация понастоящем не се поддържат."
|
||||
|
||||
#: mainwindow.cpp:52
|
||||
#, kde-format
|
||||
msgid "Storing passwords in config file is insecure!"
|
||||
msgstr ""
|
||||
msgstr "Съхраняването на пароли в конфигурационния файл е несигурно!"
|
||||
|
||||
#: mainwindow.cpp:189
|
||||
#, kde-format
|
||||
msgid "Enter a new password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Въведете нова парола за безконтролен достъп"
|
||||
|
||||
#: mainwindow.cpp:200
|
||||
#, kde-format
|
||||
@@ -330,18 +334,20 @@ msgid ""
|
||||
"Failed to start the krfb server. Desktop sharing will not work. Try setting "
|
||||
"another port in the settings and restart krfb."
|
||||
msgstr ""
|
||||
"Не успя да се стартира сървърът на krfb. Споделянето на работния плот няма "
|
||||
"да работи. Опитайте да зададете друг порт в настройките и рестартирайте krfb."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (text), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, aboutLabel)
|
||||
#: mainwindow.cpp:223 mainwindow.cpp:230 ui/mainwidget.ui:83
|
||||
#: ui/mainwidget.ui:86 ui/mainwidget.ui:114
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "KDE Desktop Sharing"
|
||||
msgstr "Споделяне на работното място"
|
||||
msgstr "Споделяне на работното място на KDE"
|
||||
|
||||
#: mainwindow.cpp:224
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid ""
|
||||
"This field contains the address of your computer and the port number, "
|
||||
"separated by a colon.\n"
|
||||
@@ -355,11 +361,17 @@ msgid ""
|
||||
"If your computer is behind a firewall it may have a different address or be "
|
||||
"unreachable for other computers."
|
||||
msgstr ""
|
||||
"(<a href=\"whatsthis:Полето съдържа адреса (IP) на вашия компютър и номера "
|
||||
"на екрана, разделени с двоеточие. Програмата се опитва да отгатне адреса от "
|
||||
"мрежовите настройки, но това не винаги е успешно. Ако компютърът ви се "
|
||||
"намира зад защитна стена (firewall), той може да бъде недостъпен за "
|
||||
"компютрите отвъд стената.\">помощ</a>)"
|
||||
"Полето съдържа адреса (IP) на вашия компютър и номера на екрана, разделени с "
|
||||
"двоеточие. \n"
|
||||
"\n"
|
||||
"Адресът е само насока - можете да използвате всеки адрес, който може да "
|
||||
"достигне до вашия компютър.\n"
|
||||
"\n"
|
||||
"Програмата се опитва да отгатне адреса от мрежовите настройки, но това не "
|
||||
"винаги е успешно. \n"
|
||||
"\n"
|
||||
"Ако компютърът ви се намира зад защитна стена (firewall), той може да бъде "
|
||||
"недостъпен за компютрите отвъд стената."
|
||||
|
||||
#: mainwindow.cpp:231
|
||||
#, kde-format
|
||||
@@ -371,6 +383,12 @@ msgid ""
|
||||
"password, desktop sharing access will be granted without explicit "
|
||||
"confirmation."
|
||||
msgstr ""
|
||||
"Всеки отдалечен потребител с нормална парола за споделяне на работния плот "
|
||||
"ще трябва да бъде удостоверяван.\n"
|
||||
"\n"
|
||||
"Ако е включен неконтролиран достъп и отдалеченият потребител предостави "
|
||||
"парола за неконтролиран режим, достъпът до споделяне на работния плот ще "
|
||||
"бъде предоставен без изрично потвърждение."
|
||||
|
||||
#: mainwindow.cpp:249
|
||||
#, kde-format
|
||||
@@ -385,19 +403,21 @@ msgstr "Сигурност"
|
||||
#: mainwindow.cpp:251
|
||||
#, kde-format
|
||||
msgid "Screen capture"
|
||||
msgstr ""
|
||||
msgstr "Заснемане на екрана"
|
||||
|
||||
#: mainwindow.cpp:256
|
||||
#, kde-format
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
"За да приложите настройката на плъгина за фреймбуфер, трябва да рестартирате "
|
||||
"програмата."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Отдалеченият потребител %1 е свързан."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Отдалеченият потребител %1 е изключен."
|
||||
@@ -431,13 +451,13 @@ msgstr "Споделяне на работното място - свързан"
|
||||
#: ui/configframebuffer.ui:14
|
||||
#, kde-format
|
||||
msgid "Framebuffer"
|
||||
msgstr ""
|
||||
msgstr "Framebuffer"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configframebuffer.ui:22
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Preferred frameb&uffer plugin:"
|
||||
msgstr "Предпочитана приставка за фреймбуфер"
|
||||
msgstr "Предпочитана приставка за &фреймбуфер:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, helpText)
|
||||
#: ui/configframebuffer.ui:47
|
||||
@@ -448,6 +468,11 @@ msgid ""
|
||||
"style=\" font-weight:600;\">qt</span> plugin is a safe fallback, if for some "
|
||||
"reason others don't work. But also it is very slow.</p></body></html>"
|
||||
msgstr ""
|
||||
"<html><head/><body><p>Ако използвате x11, препоръчително е да използвате "
|
||||
"приставката <span style=\" font-weight:600;\">xcb</span>, защото е по-бърза. "
|
||||
"Приставката <br/><span style=\" font-weight:600;\">qt</span> е сигурен "
|
||||
"резервен вариант, ако по някаква причина другите приставки не работят, но "
|
||||
"също така е много бавна.</p></body></html>"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_allowDesktopControl)
|
||||
#: ui/configsecurity.ui:17
|
||||
@@ -459,7 +484,7 @@ msgstr "Разрешаване на отдалечени връзки да уп
|
||||
#: ui/configsecurity.ui:27
|
||||
#, kde-format
|
||||
msgid "Do not store passwords using KDE wallet"
|
||||
msgstr ""
|
||||
msgstr "Да не се съхраняват пароли в портфейла KDE wallet"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_useDefaultPort)
|
||||
#: ui/configtcp.ui:26
|
||||
@@ -529,43 +554,46 @@ msgid ""
|
||||
"KDE Desktop Sharing allows you to grant permission to someone at a remote "
|
||||
"location for viewing and possibly controlling your desktop."
|
||||
msgstr ""
|
||||
"Споделянето на работния плот в KDE ви позволява да предоставите разрешение "
|
||||
"на някой на отдалечено място за разглеждане и евентуално управление на вашия "
|
||||
"работен плот."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:145
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Starts/Stops Remote Desktop Sharing"
|
||||
msgstr "Управление на поканите"
|
||||
msgstr "Стартиране и спиране на споделянето на работния плот"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:148
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "&Enable Desktop Sharing"
|
||||
msgstr "Споделяне на работното място"
|
||||
msgstr "&Актиивране на споделяне на работното място"
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, detailsGroupBox)
|
||||
#: ui/mainwidget.ui:170
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Connection Details"
|
||||
msgstr "Connection side image"
|
||||
msgstr "Данни за връзката"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressLabel)
|
||||
#: ui/mainwidget.ui:193
|
||||
#, kde-format
|
||||
msgid "&Address"
|
||||
msgstr ""
|
||||
msgstr "&Адрес"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, addressAboutButton)
|
||||
#: ui/mainwidget.ui:214
|
||||
#, kde-format
|
||||
msgid "More about this address"
|
||||
msgstr ""
|
||||
msgstr "Още данни за този адрес"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, addressAboutButton)
|
||||
#. i18n: ectx: property (text), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:217 ui/mainwidget.ui:397
|
||||
#, kde-format
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
msgstr "Относно"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:235
|
||||
@@ -574,30 +602,33 @@ msgid ""
|
||||
"Address required by remote users to connect to your desktop. Click about "
|
||||
"button on the right for more info."
|
||||
msgstr ""
|
||||
"Адрес, който се изисква от отдалечените потребители, за да се свържат с "
|
||||
"вашия работен плот. Щракнете върху бутона за информация вдясно за повече "
|
||||
"информация."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:238
|
||||
#, kde-format
|
||||
msgid "127.0.0.1 : 5900"
|
||||
msgstr ""
|
||||
msgstr "127.0.0.1 : 5900"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordLabel)
|
||||
#: ui/mainwidget.ui:269
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "&Password"
|
||||
msgstr "<b>Парола:</b>"
|
||||
msgstr "&Парола"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:290
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Edit/Save Desktop Sharing Password"
|
||||
msgstr "Грешка при опит за споделяне на работното място"
|
||||
msgstr "Редактиране/Запазване на паролата за споделяне на работния плот"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:293
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Редактиране"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:311
|
||||
@@ -606,12 +637,15 @@ msgid ""
|
||||
"Password required by remote users to connect to your desktop. Click the edit "
|
||||
"button on the right to change password."
|
||||
msgstr ""
|
||||
"Парола, изисквана от отдалечените потребители, за да се свържат с вашия "
|
||||
"десктоп. Щракнете върху бутона за редактиране вдясно, за да промените "
|
||||
"паролата."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:314
|
||||
#, kde-format
|
||||
msgid "TemporaryPassword"
|
||||
msgstr ""
|
||||
msgstr "Временна парола"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QGroupBox, unattendedGroupBox)
|
||||
#. i18n: ectx: property (text), widget (QLabel, unattendedAboutLabel)
|
||||
@@ -621,12 +655,14 @@ msgid ""
|
||||
"Unattended Access allows a remote user with the password to gain control to "
|
||||
"your desktop without your explicit confirmation."
|
||||
msgstr ""
|
||||
"Неконтролиран достъп позволява на отдалечен потребител с парола да получи "
|
||||
"контрол върху вашия десктоп без вашето изрично потвърждение."
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, unattendedGroupBox)
|
||||
#: ui/mainwidget.ui:343
|
||||
#, kde-format
|
||||
msgid "Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Неконтролиран достъп"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, unattendedAboutLabel)
|
||||
#: ui/mainwidget.ui:375
|
||||
@@ -636,12 +672,15 @@ msgid ""
|
||||
"your desktop without your explicit confirmation. Click \"About\" button on "
|
||||
"right to know more."
|
||||
msgstr ""
|
||||
"Неконтролираният достъп позволява на отдалечен потребител с парола да получи "
|
||||
"контрол върху вашия работен плот без вашето изрично потвърждение. Щракнете "
|
||||
"върху бутона \\„Относно\\“ вдясно, за да научите повече."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:394
|
||||
#, kde-format
|
||||
msgid "Know more about Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Научете повече за неконтролирания достъп"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:437
|
||||
@@ -650,21 +689,24 @@ msgid ""
|
||||
"Starts/Stops unattended access to your desktop. Click on button on right to "
|
||||
"change password, and \"About\" button to know more."
|
||||
msgstr ""
|
||||
"Стартира/спира неконтролирания достъп до вашия работен плот. Щракнете върху "
|
||||
"бутона вдясно, за да промените паролата, и върху бутона \\„Относно\\“, за да "
|
||||
"научите повече."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:440
|
||||
#, kde-format
|
||||
msgid "Enable &Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Активиране на &Неконтролиран достъп"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:465
|
||||
#, kde-format
|
||||
msgid "Change password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Промяна на паролата за неконтролиран достъп"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:468
|
||||
#, kde-format
|
||||
msgid "&Change Unattended Password"
|
||||
msgstr ""
|
||||
msgstr "&Смяна на паролата за неконтролиран достъп"
|
||||
|
||||
@@ -4,7 +4,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdenetwork/krfb.pot\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2004-09-20 15:44+0200\n"
|
||||
"Last-Translator: Thierry Vignaud <tvignaud@mandriva.com>\n"
|
||||
"Language-Team: br <LL@li.org>\n"
|
||||
@@ -50,7 +50,7 @@ msgstr "Aotren ar gevreadenn"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr ""
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (burev rannet)"
|
||||
@@ -379,12 +379,12 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr ""
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2014-12-28 11:25+0000\n"
|
||||
"Last-Translator: Fadil Ademovic <fademovic2@etf.unsa.ba>\n"
|
||||
"Language-Team: Bosnian <lokal@lugbih.org>\n"
|
||||
@@ -56,7 +56,7 @@ msgstr "Prihvaćena veza sa %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Prihvaćena konekcija od %1, na čekanju (čekam potvrdu)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (podijeljena radna površina)"
|
||||
@@ -411,12 +411,12 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Udaljeni korisnik %1 je sada povezan."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Udaljeni korisnik %1 prekinuo je vezu."
|
||||
|
||||
@@ -73,12 +73,12 @@
|
||||
> per a veure o controlar l'escriptori. </para>
|
||||
|
||||
<para
|
||||
>Típicament emprareu el &krfb; junt amb el client <acronym
|
||||
>Típicament, emprareu el &krfb; junt amb el client <acronym
|
||||
>VNC</acronym
|
||||
> del &kde;, el qual és la &krdc;, atès que comparteix moltes de les característiques especials del &krfb;. </para>
|
||||
|
||||
<para
|
||||
>El &krfb; no requereix que inicieu una nova sessió de X -podrà compartir la sessió actual-. Això fa que sigui realment útil quan algú vol ajudar-vos a realitzar alguna tasca. </para>
|
||||
>El &krfb; no requereix que inicieu una nova sessió de X -podrà compartir la sessió actual-. Això fa que sigui realment útil quan algú vol ajudar-vos a dur a terme alguna tasca. </para>
|
||||
|
||||
<para
|
||||
>Si us plau, informeu de qualsevol problema o petició d'una nova característica a la llista de correu del &kde; o d'un error a <ulink url="https://bugs.kde.org"
|
||||
@@ -107,7 +107,7 @@
|
||||
>En el protocol de Frame Buffer remot, l'aplicació que s'executa a la màquina a on l'usuari es troba assegut (que conté la pantalla, el teclat i el punter), s'anomena el client. L'aplicació que s'executa a la màquina a on està localitzat el frame-buffer (en la qual s'executa el sistema de finestres i les aplicacions que l'usuari està controlant en mode remot) s'anomena el servidor. El &krfb; és el servidor del &kde; per al protocol de Frame Buffer remot. La &krdc; és el client del &kde; per al protocol de Frame Buffer remot. </para>
|
||||
|
||||
<para
|
||||
>Aquest ús comporta una raonable quantitat de trànsit en xarxa atès que s'envia una imatge del framebuffer, de manera que el Frame Buffer remot funciona millor sobre enllaços de banda ampla, així com una xarxa d'àrea local. Tot i això és possible utilitzar el &krfb; sobre d'altres enllaços, però el rendiment no serà tan bo. </para>
|
||||
>Aquest ús comporta una raonable quantitat de trànsit en xarxa atès que s'envia una imatge del framebuffer, de manera que el Frame Buffer remot funciona millor sobre enllaços de banda ampla, així com una xarxa d'àrea local. Tot i això, és possible utilitzar el &krfb; sobre d'altres enllaços, però el rendiment no serà tan bo. </para>
|
||||
|
||||
</chapter>
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
>&Alt;<keycap
|
||||
>F4</keycap
|
||||
></keycombo
|
||||
> el servidor continuarà funcionant, el qual és indicat per una icona a la safata del sistema. Per aturar-lo, utilitzeu <menuchoice
|
||||
> el servidor continuarà funcionant, el qual és indicat per una icona a la safata del sistema. Per a aturar-lo, utilitzeu <menuchoice
|
||||
><guimenu
|
||||
>Fitxer</guimenu
|
||||
><guimenuitem
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
# Translation of krfb.po to Catalan
|
||||
# Copyright (C) 2003-2021 This_file_is_part_of_KDE
|
||||
# Copyright (C) 2003-2024 This_file_is_part_of_KDE
|
||||
# This file is distributed under the license LGPL version 2.1 or
|
||||
# version 3 or later versions approved by the membership of KDE e.V.
|
||||
#
|
||||
# Antoni Bella Pérez <antonibella5@yahoo.com>, 2003, 2012, 2015, 2017, 2020, 2021.
|
||||
# Albert Astals Cid <aacid@kde.org>, 2004, 2005.
|
||||
# Josep M. Ferrer <txemaq@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2019, 2020, 2021.
|
||||
# Josep M. Ferrer <txemaq@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2019, 2020, 2021, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2021-10-31 14:10+0100\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2024-01-10 11:33+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Lokalize 20.12.0\n"
|
||||
"X-Generator: Lokalize 22.12.3\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Accelerator-Marker: &\n"
|
||||
|
||||
@@ -57,7 +57,7 @@ msgstr "Connexió acceptada des de %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Rebuda connexió des de %1, en espera (de confirmació)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (escriptori compartit)"
|
||||
@@ -416,12 +416,12 @@ msgstr ""
|
||||
"Per a aplicar l'opció del connector de «framebuffer», cal reiniciar el "
|
||||
"programa."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "L'usuari remot %1 ara està connectat."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "L'usuari remot %1 ha desconnectat."
|
||||
@@ -539,10 +539,10 @@ msgid ""
|
||||
"careful. When the option is disabled the remote user can only watch your "
|
||||
"screen."
|
||||
msgstr ""
|
||||
"Si activeu aquesta opció, l'usuari remot podrà usar el teclat i el ratolí. "
|
||||
"Això li donarà el control absolut sobre el vostre ordinador, useu-ho amb "
|
||||
"cura. Quan aquesta opció està desactivada, l'usuari remot només podrà veure "
|
||||
"la vostra pantalla."
|
||||
"Si activeu aquesta opció, l'usuari remot podrà usar el teclat i el punter "
|
||||
"del ratolí. Això li donarà el control absolut sobre el vostre ordinador, "
|
||||
"useu-ho amb cura. Quan aquesta opció està desactivada, l'usuari remot només "
|
||||
"podrà veure la vostra pantalla."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, cbAllowRemoteControl)
|
||||
#: ui/connectionwidget.ui:139
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
# Translation of krfb.po to Catalan (Valencian)
|
||||
# Copyright (C) 2003-2021 This_file_is_part_of_KDE
|
||||
# Copyright (C) 2003-2024 This_file_is_part_of_KDE
|
||||
# This file is distributed under the license LGPL version 2.1 or
|
||||
# version 3 or later versions approved by the membership of KDE e.V.
|
||||
#
|
||||
# Antoni Bella Pérez <antonibella5@yahoo.com>, 2003, 2012, 2015, 2017, 2020, 2021.
|
||||
# Albert Astals Cid <aacid@kde.org>, 2004, 2005.
|
||||
# Josep M. Ferrer <txemaq@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2019, 2020, 2021.
|
||||
# Josep M. Ferrer <txemaq@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2019, 2020, 2021, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2021-10-31 14:10+0100\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2024-01-10 11:33+0100\n"
|
||||
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
|
||||
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||
"Language: ca@valencia\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Lokalize 20.12.0\n"
|
||||
"X-Generator: Lokalize 22.12.3\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Accelerator-Marker: &\n"
|
||||
|
||||
@@ -57,7 +57,7 @@ msgstr "Connexió acceptada des de %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Rebuda connexió des de %1, en espera (de confirmació)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (escriptori compartit)"
|
||||
@@ -417,12 +417,12 @@ msgstr ""
|
||||
"Per a aplicar l'opció del connector de «framebuffer», cal reiniciar el "
|
||||
"programa."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "L'usuari remot %1 ara està connectat."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "L'usuari remot %1 ha desconnectat."
|
||||
@@ -440,17 +440,17 @@ msgstr "Activa el control remot"
|
||||
#: trayicon.cpp:101 trayicon.cpp:133
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - disconnected"
|
||||
msgstr "Compartició de l'escriptori - desconnectat"
|
||||
msgstr "Compartiu l'escriptori - desconnectat"
|
||||
|
||||
#: trayicon.cpp:117 trayicon.cpp:137
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected with %1"
|
||||
msgstr "Compartició de l'escriptori - connectat amb %1"
|
||||
msgstr "Compartiu l'escriptori - connectat amb %1"
|
||||
|
||||
#: trayicon.cpp:120
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected"
|
||||
msgstr "Compartició de l'escriptori - connectat"
|
||||
msgstr "Compartiu l'escriptori - connectat"
|
||||
|
||||
#. i18n: ectx: property (windowTitle), widget (QWidget, Framebuffer)
|
||||
#: ui/configframebuffer.ui:14
|
||||
@@ -540,10 +540,10 @@ msgid ""
|
||||
"careful. When the option is disabled the remote user can only watch your "
|
||||
"screen."
|
||||
msgstr ""
|
||||
"Si activeu esta opció, l'usuari remot podrà utilitzar el teclat i el ratolí. "
|
||||
"Açò li donarà el control absolut sobre el vostre ordinador, utilitzeu-ho amb "
|
||||
"cura. Quan esta opció està desactivada, l'usuari remot només podrà veure la "
|
||||
"vostra pantalla."
|
||||
"Si marqueu esta opció, l'usuari remot podrà utilitzar el teclat i el punter "
|
||||
"del ratolí. Açò li donarà el control absolut sobre el vostre ordinador, "
|
||||
"utilitzeu-ho amb cura. Quan esta opció està desmarcada, l'usuari remot només "
|
||||
"podrà veure la vostra pantalla."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, cbAllowRemoteControl)
|
||||
#: ui/connectionwidget.ui:139
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Vít Pelčák <vit@pelcak.org>, 2011, 2013, 2014, 2017, 2019.
|
||||
# Tomáš Chvátal <tomas.chvatal@gmail.com>, 2012, 2013.
|
||||
# Vit Pelcak <vpelcak@suse.cz>, 2022.
|
||||
# Vit Pelcak <vit@pelcak.org>, 2022.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2022-02-08 14:54+0100\n"
|
||||
"Last-Translator: Vit Pelcak <vpelcak@suse.cz>\n"
|
||||
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
|
||||
@@ -54,7 +54,7 @@ msgstr "Přijato spojení od %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Přijato spojení od %1, pozdrženo (čekám na potvrzení)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (sdílená plocha)"
|
||||
@@ -402,12 +402,12 @@ msgstr "Nahrávat obrazovku"
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Vzdálený uživatel %1 je nyní připojen."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Vzdálený uživatel %1 se odpojil."
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2004-01-06 16:42+0000\n"
|
||||
"Last-Translator: KD at KGyfieithu <kyfieithu@dotmon.com>\n"
|
||||
"Language-Team: Cymraeg <cy@li.org>\n"
|
||||
@@ -57,7 +57,7 @@ msgstr "Derbynwyd cysylltiad anwahoddedig o %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Derbynwyd cysylltiad o %1, wedi' ddal (yn aros am wiriad)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (Penbwrdd wedi'i Rannu)"
|
||||
@@ -397,13 +397,13 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Ceuodd y defnyddiwr pell y cysylltiad."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 disconnected."
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2020-04-08 19:22+0200\n"
|
||||
"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
|
||||
"Language-Team: Danish <kde-i18n-doc@kde.org>\n"
|
||||
@@ -55,7 +55,7 @@ msgstr "Accepterede forbindelse fra %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Modtog forbindelse fra %1, on hold (venter på bekræftelse)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (delt skrivebord)"
|
||||
@@ -415,12 +415,12 @@ msgstr ""
|
||||
"Du skal genstarte programmet for at anvende indstillinger for framebuffer-"
|
||||
"plugin."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Den eksterne bruger %1 er nu forbundet."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Den eksterne bruger %1 er frakoblet."
|
||||
|
||||
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 44 KiB |
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2022-03-13 10:25+0100\n"
|
||||
"Last-Translator: Frederik Schwarzer <schwarzer@kde.org>\n"
|
||||
"Language-Team: German <kde-i18n-doc@kde.org>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 21.12.3\n"
|
||||
|
||||
#, kde-format
|
||||
@@ -55,7 +55,7 @@ msgstr "Verbindungsanfrage von %1 wurde akzeptiert"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Uneingeladene Verbindungsanfrage von %1 wartet auf Bestätigung"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (freigegebene Arbeitsfläche)"
|
||||
@@ -417,12 +417,12 @@ msgstr ""
|
||||
"Um die Einstellung für das Framebuffer-Modul anzuwenden, müssen Sie das "
|
||||
"Programm neu starten."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Der entfernte Benutzer „%1“ ist nun verbunden."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Der entfernte Benutzer „%1“ hat die Verbindung getrennt."
|
||||
|
||||
@@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2021-11-06 11:12+0200\n"
|
||||
"Last-Translator: Stelios <sstavra@gmail.com>\n"
|
||||
"Language-Team: Greek <kde-i18n-el@kde.org>\n"
|
||||
@@ -57,7 +57,7 @@ msgstr "Αποδοχή σύνδεσης από %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Η αίτηση σύνδεσης από %1, είναι σε αναμονή (περιμένει επιβεβαίωση)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (επιφάνεια εργασίας σε κοινή χρήση)"
|
||||
@@ -419,12 +419,12 @@ msgstr ""
|
||||
"Για την εφαρμογή προσθέτου ενδιάμεσης μνήμης, πρέπει να επανεκκινήσετε το "
|
||||
"πρόγραμμα."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Ο απομακρυσμένος χρήστης %1 έχει τώρα συνδεθεί."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Ο απομακρυσμένος χρήστης %1 έχει αποσυνδεθεί."
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2022-01-01 15:48+0000\n"
|
||||
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n"
|
||||
"Language-Team: British English <kde-l10n-en_gb@kde.org>\n"
|
||||
@@ -54,7 +54,7 @@ msgstr "Accepted connection from %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Received connection from %1, on hold (waiting for confirmation)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (shared desktop)"
|
||||
@@ -409,12 +409,12 @@ msgstr "Screen capture"
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr "To apply framebuffer plugin setting, you need to restart the program."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "The remote user %1 is now connected."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "The remote user %1 disconnected."
|
||||
|
||||
238
po/eo/krfb.po
@@ -1,13 +1,16 @@
|
||||
# Translation of krfb into esperanto.
|
||||
# Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the krfb package.
|
||||
# Axel Rousseau <axel@esperanto-jeunes.org>, 2009.
|
||||
# Oliver Kellogg <olivermkellogg@gmail.com>, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2009-11-15 12:06+0100\n"
|
||||
"Last-Translator: Axel Rousseau <axel@esperanto-jeunes.org>\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2024-02-05 22:05+0100\n"
|
||||
"Last-Translator: Oliver Kellogg <olivermkellogg@gmail.com>\n"
|
||||
"Language-Team: esperanto <kde-i18n-eo@kde.org>\n"
|
||||
"Language: eo\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -19,113 +22,113 @@ msgstr ""
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Axel Rousseau"
|
||||
msgstr "Axel Rousseau,Oliver Kellogg"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "axel@esperanto-jeunes.org"
|
||||
msgstr "axel@esperanto-jeunes.org,olivermkellogg@gmail.com"
|
||||
|
||||
#: connectiondialog.cpp:39
|
||||
#, kde-format
|
||||
msgid "New Connection"
|
||||
msgstr ""
|
||||
msgstr "Nova Konekto"
|
||||
|
||||
#: connectiondialog.cpp:61
|
||||
#, kde-format
|
||||
msgid "Accept Connection"
|
||||
msgstr ""
|
||||
msgstr "Akcepti Konekton"
|
||||
|
||||
#: connectiondialog.cpp:65
|
||||
#, kde-format
|
||||
msgid "Refuse Connection"
|
||||
msgstr ""
|
||||
msgstr "Rifuzi Konekton"
|
||||
|
||||
#: invitationsrfbclient.cpp:69
|
||||
#, kde-format
|
||||
msgid "Accepted connection from %1"
|
||||
msgstr ""
|
||||
msgstr "Akceptita konekto de %1"
|
||||
|
||||
#: invitationsrfbclient.cpp:75
|
||||
#, kde-format
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr ""
|
||||
msgstr "Ricevita konekto de %1, en atendo (atendante konfirmon)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr ""
|
||||
msgstr "%1@%2 (komunata labortablo)"
|
||||
|
||||
#. i18n: ectx: label, entry (startMinimized), group (MainWindow)
|
||||
#: krfb.kcfg:9
|
||||
#, kde-format
|
||||
msgid "Start minimized"
|
||||
msgstr ""
|
||||
msgstr "Komenci minimumigite"
|
||||
|
||||
#. i18n: ectx: label, entry (useDefaultPort), group (TCP)
|
||||
#: krfb.kcfg:15
|
||||
#, kde-format
|
||||
msgid "Use the default port for VNC (5900)"
|
||||
msgstr ""
|
||||
msgstr "Uzi la defaŭltan pordon por VNC (5900)"
|
||||
|
||||
#. i18n: ectx: label, entry (port), group (TCP)
|
||||
#: krfb.kcfg:19
|
||||
#, kde-format
|
||||
msgid "This is the port on which krfb will listen."
|
||||
msgstr ""
|
||||
msgstr "Ĉi tiu estas la pordo sur kiu krfb aŭskultos."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_publishService)
|
||||
#. i18n: ectx: label, entry (publishService), group (TCP)
|
||||
#: krfb.kcfg:23 ui/configtcp.ui:16
|
||||
#, kde-format
|
||||
msgid "Announce the service on the local network"
|
||||
msgstr ""
|
||||
msgstr "Anonci la servon en la loka reto"
|
||||
|
||||
#. i18n: ectx: label, entry (noWallet), group (Security)
|
||||
#: krfb.kcfg:29
|
||||
#, kde-format
|
||||
msgid "Do not store passwords in KWallet"
|
||||
msgstr ""
|
||||
msgstr "Ne konservi pasvortojn en KWallet"
|
||||
|
||||
#. i18n: ectx: label, entry (allowDesktopControl), group (Security)
|
||||
#: krfb.kcfg:33
|
||||
#, kde-format
|
||||
msgid "Allow remote connections to manage the desktop."
|
||||
msgstr ""
|
||||
msgstr "Permesi forajn konektojn administri la labortablon."
|
||||
|
||||
#. i18n: ectx: label, entry (allowUnattendedAccess), group (Security)
|
||||
#: krfb.kcfg:37
|
||||
#, kde-format
|
||||
msgid "Allow connections without an invitation."
|
||||
msgstr ""
|
||||
msgstr "Permesi konektojn sen invito."
|
||||
|
||||
#. i18n: ectx: label, entry (unattendedAccessPassword), group (Security)
|
||||
#. i18n: ectx: label, entry (desktopSharingPassword), group (Security)
|
||||
#: krfb.kcfg:41 krfb.kcfg:44
|
||||
#, kde-format
|
||||
msgid "Password for uninvited connections."
|
||||
msgstr ""
|
||||
msgstr "Pasvorto por neinvititaj konektoj."
|
||||
|
||||
#. i18n: ectx: label, entry (preferredFrameBufferPlugin), group (FrameBuffer)
|
||||
#: krfb.kcfg:49
|
||||
#, kde-format
|
||||
msgid "Preferred Frame Buffer Plugin"
|
||||
msgstr ""
|
||||
msgstr "Preferata Frame Buffer Kromaĵo"
|
||||
|
||||
#: main-virtualmonitor.cpp:49
|
||||
#, kde-format
|
||||
msgid "Creating a Virtual Monitor from %1"
|
||||
msgstr ""
|
||||
msgstr "Kreante Virtualan Monitoron de %1"
|
||||
|
||||
#: main-virtualmonitor.cpp:80
|
||||
#, kde-format
|
||||
msgid "Remote Virtual Monitor"
|
||||
msgstr ""
|
||||
msgstr "Fora Virtuala Monitoro"
|
||||
|
||||
#: main-virtualmonitor.cpp:82
|
||||
#, kde-format
|
||||
msgid "Offer a Virtual Monitor that can be accessed remotely"
|
||||
msgstr ""
|
||||
msgstr "Proponi Virtualan Monitoron alireblan malproksime"
|
||||
|
||||
#: main-virtualmonitor.cpp:84 main.cpp:98
|
||||
#, kde-format
|
||||
@@ -138,11 +141,18 @@ msgid ""
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Boston\n"
|
||||
msgstr ""
|
||||
"(c) 2009-2010, Collabora Ltd.\n"
|
||||
"(c) 2007, Alessandro Praduroux\n"
|
||||
"(c) 2001-2003, Tim Jansen\n"
|
||||
"(c) 2001, Johannes E. Schindelin\n"
|
||||
"(c) 2000-2001, Const Kaplinsky\n"
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Boston\n"
|
||||
|
||||
#: main-virtualmonitor.cpp:91
|
||||
#, kde-format
|
||||
msgid "Virtual Monitor implementation"
|
||||
msgstr ""
|
||||
msgstr "Realigo de Virtuala Monitoro"
|
||||
|
||||
#: main-virtualmonitor.cpp:92 main.cpp:108
|
||||
#, kde-format
|
||||
@@ -157,7 +167,7 @@ msgstr "Alessandro Praduroux"
|
||||
#: main-virtualmonitor.cpp:93 main.cpp:111
|
||||
#, kde-format
|
||||
msgid "KDE4 porting"
|
||||
msgstr ""
|
||||
msgstr "KDE4-portado"
|
||||
|
||||
#: main-virtualmonitor.cpp:94 main.cpp:112
|
||||
#, kde-format
|
||||
@@ -187,77 +197,77 @@ msgstr "Const Kaplinsky"
|
||||
#: main-virtualmonitor.cpp:98 main.cpp:116
|
||||
#, kde-format
|
||||
msgid "TightVNC encoder"
|
||||
msgstr ""
|
||||
msgstr "TightVNC-kodilo"
|
||||
|
||||
#: main-virtualmonitor.cpp:99 main.cpp:117
|
||||
#, kde-format
|
||||
msgid "Tridia Corporation"
|
||||
msgstr ""
|
||||
msgstr "Tridia Corporation"
|
||||
|
||||
#: main-virtualmonitor.cpp:100 main.cpp:118
|
||||
#, kde-format
|
||||
msgid "ZLib encoder"
|
||||
msgstr ""
|
||||
msgstr "ZLib-kodilo"
|
||||
|
||||
#: main-virtualmonitor.cpp:101 main.cpp:119
|
||||
#, kde-format
|
||||
msgid "AT&T Laboratories Boston"
|
||||
msgstr ""
|
||||
msgstr "AT&T Laboratorioj Boston"
|
||||
|
||||
#: main-virtualmonitor.cpp:102 main.cpp:120
|
||||
#, kde-format
|
||||
msgid "original VNC encoders and protocol design"
|
||||
msgstr ""
|
||||
msgstr "originalaj VNC-kodigiloj kaj protokolo-dezajno"
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "Logical resolution of the new monitor"
|
||||
msgstr ""
|
||||
msgstr "Logika distingivo de la nova monitoro"
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "resolution"
|
||||
msgstr ""
|
||||
msgstr "distingivo"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "Name of the monitor"
|
||||
msgstr ""
|
||||
msgstr "Nomo de la monitoro"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
msgstr "nomo"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, kde-format
|
||||
msgid "Password for the client to connect to it"
|
||||
msgstr ""
|
||||
msgstr "Pasvorto por la kliento por konekti al ĝi"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, kde-format
|
||||
msgid "password"
|
||||
msgstr ""
|
||||
msgstr "Pasvorto"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "The device-pixel-ratio of the device, the scaling factor"
|
||||
msgstr ""
|
||||
msgstr "La aparato-piksela-proporcio de la aparato, la skala faktoro"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "dpr"
|
||||
msgstr ""
|
||||
msgstr "dpr"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "The port we will be listening to"
|
||||
msgstr ""
|
||||
msgstr "La pordo, kiun ni aŭskultos"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "number"
|
||||
msgstr ""
|
||||
msgstr "nombro"
|
||||
|
||||
#: main.cpp:49
|
||||
#, kde-format
|
||||
@@ -265,11 +275,13 @@ msgid ""
|
||||
"Your X11 Server does not support the required XTest extension version 2.2. "
|
||||
"Sharing your desktop is not possible."
|
||||
msgstr ""
|
||||
"Via X11 Servilo ne subtenas la bezonatan XTest-etendan version 2.2. "
|
||||
"Kunhavigi vian labortablon ne eblas."
|
||||
|
||||
#: main.cpp:51 main.cpp:150
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing Error"
|
||||
msgstr ""
|
||||
msgstr "Eraro pri Labortabla Kundivido"
|
||||
|
||||
#: main.cpp:94
|
||||
#, kde-format
|
||||
@@ -279,22 +291,22 @@ msgstr "Tabula komunigado"
|
||||
#: main.cpp:96
|
||||
#, kde-format
|
||||
msgid "VNC-compatible server to share desktops"
|
||||
msgstr ""
|
||||
msgstr "VNC-kongrua servilo por kunhavi labortablojn"
|
||||
|
||||
#: main.cpp:105
|
||||
#, kde-format
|
||||
msgid "George Goldberg"
|
||||
msgstr ""
|
||||
msgstr "Georgo Goldberg"
|
||||
|
||||
#: main.cpp:106
|
||||
#, kde-format
|
||||
msgid "Telepathy tubes support"
|
||||
msgstr ""
|
||||
msgstr "Telepatiaj tuboj subtenas"
|
||||
|
||||
#: main.cpp:126
|
||||
#, kde-format
|
||||
msgid "Do not show the invitations management dialog at startup"
|
||||
msgstr ""
|
||||
msgstr "Ne montri la invit-administran dialogon ĉe ekfunkciigo"
|
||||
|
||||
#: main.cpp:148
|
||||
#, kde-format
|
||||
@@ -302,16 +314,18 @@ msgid ""
|
||||
"Desktop Sharing is not running under an X11 Server or Wayland.\n"
|
||||
"Other display servers are currently not supported."
|
||||
msgstr ""
|
||||
"Labortabla Kundivido ne funkcias sub X11-Servilo aŭ Wayland.\n"
|
||||
"Aliaj ekranserviloj nuntempe ne estas subtenataj."
|
||||
|
||||
#: mainwindow.cpp:52
|
||||
#, kde-format
|
||||
msgid "Storing passwords in config file is insecure!"
|
||||
msgstr ""
|
||||
msgstr "Konservi pasvortojn en agorda dosiero estas nesekura!"
|
||||
|
||||
#: mainwindow.cpp:189
|
||||
#, kde-format
|
||||
msgid "Enter a new password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Enigi novan pasvorton por Senasista Aliro"
|
||||
|
||||
#: mainwindow.cpp:200
|
||||
#, kde-format
|
||||
@@ -319,6 +333,8 @@ msgid ""
|
||||
"Failed to start the krfb server. Desktop sharing will not work. Try setting "
|
||||
"another port in the settings and restart krfb."
|
||||
msgstr ""
|
||||
"Malsukcesis lanĉi la krfb-servilon. Labortabla kunhavigo ne funkcios. Provu "
|
||||
"agordi alian pordon en la agordoj kaj rekomencu krfb."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (text), widget (QLabel, titleLabel)
|
||||
@@ -327,7 +343,7 @@ msgstr ""
|
||||
#: ui/mainwidget.ui:86 ui/mainwidget.ui:114
|
||||
#, kde-format
|
||||
msgid "KDE Desktop Sharing"
|
||||
msgstr ""
|
||||
msgstr "KDE Labortabla Kunhavigo"
|
||||
|
||||
#: mainwindow.cpp:224
|
||||
#, kde-format
|
||||
@@ -344,6 +360,17 @@ msgid ""
|
||||
"If your computer is behind a firewall it may have a different address or be "
|
||||
"unreachable for other computers."
|
||||
msgstr ""
|
||||
"Ĉi tiu kampo enhavas la adreson de via komputilo kaj la pordnumeron, "
|
||||
"apartigitajn per dupunkto.\n"
|
||||
"\n"
|
||||
"La adreso estas nur sugesto - vi povas uzi ajnan adreson kiu povas atingi "
|
||||
"vian komputilon.\n"
|
||||
"\n"
|
||||
"La labortabla kundivido provas diveni vian adreson de via reto-agordo, sed "
|
||||
"ne ĉiam sukcesas fari tion.\n"
|
||||
"\n"
|
||||
"Se via komputilo estas malantaŭ fajroŝirmilo ĝi povas havi malsaman adreson "
|
||||
"aŭ esti neatingebla por aliaj komputiloj."
|
||||
|
||||
#: mainwindow.cpp:231
|
||||
#, kde-format
|
||||
@@ -355,6 +382,12 @@ msgid ""
|
||||
"password, desktop sharing access will be granted without explicit "
|
||||
"confirmation."
|
||||
msgstr ""
|
||||
"Ĉiu fora uzanto kun normala labortabla kundivida pasvorto devos esti "
|
||||
"aŭtentikigita.\n"
|
||||
"\n"
|
||||
"Se neakompanata aliro estas ŝaltita, kaj la fora uzanto provizas neatentan "
|
||||
"reĝiman pasvorton, labortabla kunhava aliro estos donita sen eksplicita "
|
||||
"konfirmo."
|
||||
|
||||
#: mainwindow.cpp:249
|
||||
#, kde-format
|
||||
@@ -369,22 +402,22 @@ msgstr "Sekureco"
|
||||
#: mainwindow.cpp:251
|
||||
#, kde-format
|
||||
msgid "Screen capture"
|
||||
msgstr ""
|
||||
msgstr "Ekrankapto"
|
||||
|
||||
#: mainwindow.cpp:256
|
||||
#, kde-format
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
msgstr "Por apliki framebuffer kromprogramon, vi devas rekomenci la programon."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr ""
|
||||
msgstr "La fora uzanto %1 nun estas konektita."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr ""
|
||||
msgstr "La fora uzanto %1 malkonektis."
|
||||
|
||||
#: trayicon.cpp:56
|
||||
#, kde-format
|
||||
@@ -394,34 +427,34 @@ msgstr "Malkonekti"
|
||||
#: trayicon.cpp:62
|
||||
#, kde-format
|
||||
msgid "Enable Remote Control"
|
||||
msgstr ""
|
||||
msgstr "Ebligi Teleregilon"
|
||||
|
||||
#: trayicon.cpp:101 trayicon.cpp:133
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - disconnected"
|
||||
msgstr ""
|
||||
msgstr "Labortabla Kunhavigo - malkonektita"
|
||||
|
||||
#: trayicon.cpp:117 trayicon.cpp:137
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected with %1"
|
||||
msgstr ""
|
||||
msgstr "Kunhavigo de labortablo - konektita kun %1"
|
||||
|
||||
#: trayicon.cpp:120
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected"
|
||||
msgstr ""
|
||||
msgstr "Labortabla Kundivido - konektita"
|
||||
|
||||
#. i18n: ectx: property (windowTitle), widget (QWidget, Framebuffer)
|
||||
#: ui/configframebuffer.ui:14
|
||||
#, kde-format
|
||||
msgid "Framebuffer"
|
||||
msgstr ""
|
||||
msgstr "Framebuffer"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configframebuffer.ui:22
|
||||
#, kde-format
|
||||
msgid "Preferred frameb&uffer plugin:"
|
||||
msgstr ""
|
||||
msgstr "Preferata aldonaĵo Frameb&ofer:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, helpText)
|
||||
#: ui/configframebuffer.ui:47
|
||||
@@ -432,30 +465,34 @@ msgid ""
|
||||
"style=\" font-weight:600;\">qt</span> plugin is a safe fallback, if for some "
|
||||
"reason others don't work. But also it is very slow.</p></body></html>"
|
||||
msgstr ""
|
||||
"<html><head/><body><p>Kiam oni uzas x11, la kromprogramo <span style=\" font-"
|
||||
"weight:600;\">xcb</span> estu preferinda, ĉar ĝi estas pli efika.<br /><span "
|
||||
"style=\" font-weight:600;\">qt</span> kromaĵo estas sekura rezervilo, se ial "
|
||||
"aliaj ne funkcias. Sed ankaŭ ĝi estas tre malrapida.</p></body></html>"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_allowDesktopControl)
|
||||
#: ui/configsecurity.ui:17
|
||||
#, kde-format
|
||||
msgid "Allow remote connections to control your desktop"
|
||||
msgstr ""
|
||||
msgstr "Permesi forajn konektojn regi vian labortablon"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_noWallet)
|
||||
#: ui/configsecurity.ui:27
|
||||
#, kde-format
|
||||
msgid "Do not store passwords using KDE wallet"
|
||||
msgstr ""
|
||||
msgstr "Ne konservi pasvortojn per KDE-monujo"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_useDefaultPort)
|
||||
#: ui/configtcp.ui:26
|
||||
#, kde-format
|
||||
msgid "Use default port"
|
||||
msgstr ""
|
||||
msgstr "Uzi defaŭltan pordon"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configtcp.ui:50
|
||||
#, kde-format
|
||||
msgid "Listening port:"
|
||||
msgstr ""
|
||||
msgstr "Aŭskultanta pordo:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, TextLabel5)
|
||||
#: ui/connectionwidget.ui:47
|
||||
@@ -470,12 +507,14 @@ msgid ""
|
||||
"Somebody is requesting a connection to your computer. Granting this will "
|
||||
"allow the remote user to watch your desktop. "
|
||||
msgstr ""
|
||||
"Iu petas konekton al via komputilo. Doni ĉi tion permesos al la fora uzanto "
|
||||
"rigardi vian labortablon."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, TextLabel1)
|
||||
#: ui/connectionwidget.ui:102
|
||||
#, kde-format
|
||||
msgid "Remote system:"
|
||||
msgstr ""
|
||||
msgstr "Fora sistemo:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, remoteHost)
|
||||
#: ui/connectionwidget.ui:118
|
||||
@@ -492,12 +531,16 @@ msgid ""
|
||||
"careful. When the option is disabled the remote user can only watch your "
|
||||
"screen."
|
||||
msgstr ""
|
||||
"Se vi ŝaltas ĉi tiun opcion, la fora uzanto povas enigi klavopremojn kaj uzi "
|
||||
"vian musmontrilon. Ĉi tio donas al ili plenan kontrolon super via komputilo, "
|
||||
"do atentu. Kiam la opcio estas malŝaltita, la fora uzanto povas nur rigardi "
|
||||
"vian ekranon."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, cbAllowRemoteControl)
|
||||
#: ui/connectionwidget.ui:139
|
||||
#, kde-format
|
||||
msgid "Allow remote user to &control keyboard and mouse"
|
||||
msgstr ""
|
||||
msgstr "Permesi al fora uzanto ®i klavaron kaj muson"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, aboutLabel)
|
||||
#: ui/mainwidget.ui:117
|
||||
@@ -506,36 +549,38 @@ msgid ""
|
||||
"KDE Desktop Sharing allows you to grant permission to someone at a remote "
|
||||
"location for viewing and possibly controlling your desktop."
|
||||
msgstr ""
|
||||
"KDE Labortabla Kundivido permesas al vi doni permeson al iu en fora loko por "
|
||||
"vidi kaj eble kontroli vian labortablon."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:145
|
||||
#, kde-format
|
||||
msgid "Starts/Stops Remote Desktop Sharing"
|
||||
msgstr ""
|
||||
msgstr "Lanĉas/Ĉesigas Malproksiman Labortablan Kunhavigon"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:148
|
||||
#, kde-format
|
||||
msgid "&Enable Desktop Sharing"
|
||||
msgstr ""
|
||||
msgstr "&Ebligi Labortablan Kundividon"
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, detailsGroupBox)
|
||||
#: ui/mainwidget.ui:170
|
||||
#, kde-format
|
||||
msgid "Connection Details"
|
||||
msgstr ""
|
||||
msgstr "Detaloj pri Konekto"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressLabel)
|
||||
#: ui/mainwidget.ui:193
|
||||
#, kde-format
|
||||
msgid "&Address"
|
||||
msgstr ""
|
||||
msgstr "&Adreso"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, addressAboutButton)
|
||||
#: ui/mainwidget.ui:214
|
||||
#, kde-format
|
||||
msgid "More about this address"
|
||||
msgstr ""
|
||||
msgstr "Pli pri ĉi tiu adreso"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, addressAboutButton)
|
||||
#. i18n: ectx: property (text), widget (QToolButton, unattendedAboutButton)
|
||||
@@ -551,6 +596,8 @@ msgid ""
|
||||
"Address required by remote users to connect to your desktop. Click about "
|
||||
"button on the right for more info."
|
||||
msgstr ""
|
||||
"Adreso postulata de foraj uzantoj por konekti al via labortablo. Alklaku pri "
|
||||
"la butono dekstre por pliaj informoj."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:238
|
||||
@@ -562,13 +609,13 @@ msgstr "127.0.0.1 : 5900"
|
||||
#: ui/mainwidget.ui:269
|
||||
#, kde-format
|
||||
msgid "&Password"
|
||||
msgstr ""
|
||||
msgstr "&Pasvorto"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:290
|
||||
#, kde-format
|
||||
msgid "Edit/Save Desktop Sharing Password"
|
||||
msgstr ""
|
||||
msgstr "Redakti/Konservi labortablan kundividan pasvorton"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:293
|
||||
@@ -583,12 +630,14 @@ msgid ""
|
||||
"Password required by remote users to connect to your desktop. Click the edit "
|
||||
"button on the right to change password."
|
||||
msgstr ""
|
||||
"Pasvorto postulata de foraj uzantoj por konekti al via labortablo. Alklaku "
|
||||
"la redaktan butonon dekstre por ŝanĝi pasvorton."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:314
|
||||
#, kde-format
|
||||
msgid "TemporaryPassword"
|
||||
msgstr ""
|
||||
msgstr "Provizora Pasvorto"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QGroupBox, unattendedGroupBox)
|
||||
#. i18n: ectx: property (text), widget (QLabel, unattendedAboutLabel)
|
||||
@@ -598,12 +647,14 @@ msgid ""
|
||||
"Unattended Access allows a remote user with the password to gain control to "
|
||||
"your desktop without your explicit confirmation."
|
||||
msgstr ""
|
||||
"Senatenata Aliro permesas al fora uzanto kun la pasvorto akiri kontrolon al "
|
||||
"via labortablo sen via eksplicita konfirmo."
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, unattendedGroupBox)
|
||||
#: ui/mainwidget.ui:343
|
||||
#, kde-format
|
||||
msgid "Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Senatenata Aliro"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, unattendedAboutLabel)
|
||||
#: ui/mainwidget.ui:375
|
||||
@@ -613,12 +664,15 @@ msgid ""
|
||||
"your desktop without your explicit confirmation. Click \"About\" button on "
|
||||
"right to know more."
|
||||
msgstr ""
|
||||
"Senatenata Aliro permesas al fora uzanto kun la pasvorto akiri kontrolon al "
|
||||
"via labortablo sen via eksplicita konfirmo. Alklaku la butonon \"Pri\" "
|
||||
"dekstre por scii pli."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:394
|
||||
#, kde-format
|
||||
msgid "Know more about Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Ekscii pli pri Senasista Aliro"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:437
|
||||
@@ -627,43 +681,23 @@ msgid ""
|
||||
"Starts/Stops unattended access to your desktop. Click on button on right to "
|
||||
"change password, and \"About\" button to know more."
|
||||
msgstr ""
|
||||
"Lanĉas/Ĉesigas neatenditan aliron al via labortablo. Alklaku la butonon "
|
||||
"dekstre por ŝanĝi pasvorton, kaj la butonon \"Pri\" por scii pli."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:440
|
||||
#, kde-format
|
||||
msgid "Enable &Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Ebligi Senasistan Alir&on"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:465
|
||||
#, kde-format
|
||||
msgid "Change password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Ŝanĝi pasvorton por Senasista Aliro"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:468
|
||||
#, kde-format
|
||||
msgid "&Change Unattended Password"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Confirmation"
|
||||
#~ msgstr "Konfirmo"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Delete All"
|
||||
#~ msgstr "Forigu arĥivon"
|
||||
|
||||
#~ msgid "&Delete"
|
||||
#~ msgstr "&Forigi"
|
||||
|
||||
#~ msgid "Ian Reinhart Geiser"
|
||||
#~ msgstr "Ian Reinhart Geiser"
|
||||
|
||||
#~ msgid "DCOP interface"
|
||||
#~ msgstr "DCOP-interfaco"
|
||||
|
||||
#~ msgid "Jason Spisak"
|
||||
#~ msgstr "Jason Spisak"
|
||||
|
||||
#~ msgid "Karl Vogel"
|
||||
#~ msgstr "Karl Vogel"
|
||||
msgstr "&Ŝanĝi Senasistan Pasvorton"
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
>Salir de &krfb;</title>
|
||||
|
||||
<para
|
||||
>Si cierra la ventana principal de &krfb; pulsando el icono de cierre de la ventana o usando el acceso rápido de teclado <keycombo action="simul"
|
||||
>Si cierra la ventana principal de &krfb; pulsando el icono de cierre de la ventana o usando el atajo de teclado <keycombo action="simul"
|
||||
>&Alt;<keycap
|
||||
>F4</keycap
|
||||
></keycombo
|
||||
|
||||
@@ -13,7 +13,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2021-10-31 21:56+0100\n"
|
||||
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
|
||||
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
|
||||
@@ -59,7 +59,7 @@ msgstr "Se ha aceptado la conexión de %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Recibida conexión desde %1, a la espera (de una confirmación)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (escritorio compartido)"
|
||||
@@ -415,12 +415,12 @@ msgstr ""
|
||||
"Necesita reiniciar el programa para aplicar las preferencias del complemento "
|
||||
"de «framebuffer»."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "El usuario remoto %1 ha cerrado la conexión."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "El usuario remoto %1 se ha desconectado."
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2019-11-09 14:59+0200\n"
|
||||
"Last-Translator: Marek Laane <qiilaq69@gmail.com>\n"
|
||||
"Language-Team: Estonian <kde-et@lists.linux.ee>\n"
|
||||
@@ -53,7 +53,7 @@ msgstr "Nõus %1 ühendusega"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Saadud %1 ühendus, ootel (ootab kinnitust)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (jagatud töölaud)"
|
||||
@@ -410,12 +410,12 @@ msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
"Kaadripuhvri seadistuste rakendamiseks tuleb programm uuesti käivitada."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Kaugkasutaja %1 on nüüd ühendatud."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Kaugkasutaja %1 ei ole enam ühendatud."
|
||||
|
||||
@@ -14,7 +14,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2022-08-04 07:36+0200\n"
|
||||
"Last-Translator: Iñigo Salvador Azurmendi <xalba@ni.eus>\n"
|
||||
"Language-Team: Basque <kde-i18n-eu@kde.org>\n"
|
||||
@@ -62,7 +62,7 @@ msgstr "%1(e)tik datorren onartu da"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Konexioa jaso da %1(e)tik, itxaroten (berrespenaren zain)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (mahaigain partekatua)"
|
||||
@@ -419,12 +419,12 @@ msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
"«framebuffer» plugin ezarpena ezartzeko, prgrama berrabiarazi behar duzu."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Urruneko %1 erabiltzailea orain konektatuta dago."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Urruneko %1 erabiltzailea deskonektatu da."
|
||||
|
||||
@@ -2,20 +2,21 @@
|
||||
# Nasim Daniarzadeh <daniarzadeh@itland.ir>, 2006.
|
||||
# Nazanin Kazemi <kazemi@itland.ir>, 2006, 2007.
|
||||
# Tahereh Dadkhahfar <dadkhahfar@itland.ir>, 2006.
|
||||
# SPDX-FileCopyrightText: 2024 Mohi Mirdamadi <mohi.pub@gmail.com>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2007-08-19 12:41+0330\n"
|
||||
"Last-Translator: Nazanin Kazemi <kazemi@itland.ir>\n"
|
||||
"Language-Team: Persian <kde-i18n-fa@kde.org>\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2024-09-06 22:32+0330\n"
|
||||
"Last-Translator: Mohi Mirdamadi <mohi.pub@gmail.com>\n"
|
||||
"Language-Team: fa\n"
|
||||
"Language: fa\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Lokalize 23.08.5\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -53,7 +54,7 @@ msgstr "اتصال ناخوانده از %1 پذیرفته شد."
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "اتصال از %1 دریافت شد، منتظر بمانید )در حال انتظار برای تأیید("
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 ) رومیزی مشترک("
|
||||
@@ -401,13 +402,13 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "کاربر دور، اتصال را بسته است."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 disconnected."
|
||||
@@ -505,7 +506,7 @@ msgstr ""
|
||||
#: ui/connectionwidget.ui:102
|
||||
#, kde-format
|
||||
msgid "Remote system:"
|
||||
msgstr "سیستم دور:"
|
||||
msgstr "سامانه دور:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, remoteHost)
|
||||
#: ui/connectionwidget.ui:118
|
||||
|
||||
@@ -14,7 +14,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2021-11-23 16:45+0200\n"
|
||||
"Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
|
||||
"Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
|
||||
@@ -63,7 +63,7 @@ msgstr "Hyväksyttiin yhteys osoitteesta %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Saatiin yhteys osoitteesta %1, pidossa (odottaa varmistusta)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (jaettu työpöytä)"
|
||||
@@ -419,12 +419,12 @@ msgstr ""
|
||||
"Kehyspuskuriliitännäisen asetukset tulevat voimaan uudelleenkäynnistyksen "
|
||||
"jälkeen."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Etäkäyttäjä %1 on nyt luonut yhteyden."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Etäkäyttäjä %1 katkaisi yhteyden."
|
||||
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 45 KiB |
@@ -88,10 +88,10 @@
|
||||
|
||||
<chapter id="what-is-RFB">
|
||||
<title
|
||||
>Le protocole de mémoire de trame (frame-buffer) distant</title>
|
||||
>Le protocole de mémoire de trame (framebuffer) distant</title>
|
||||
|
||||
<para
|
||||
>Ce chapitre procure une description rapide du protocole de mémoire de trame (frame-buffer) distant utilisé par &krfb; et par d'autres systèmes compatibles. Si vous êtes déjà familier avec le protocole de mémoire de trame distant, vous pouvez sauter cette section. </para>
|
||||
>Ce chapitre procure une description rapide du protocole de mémoire de trame (framebuffer) distant utilisé par &krfb; et par d'autres systèmes compatibles. Si vous êtes déjà familier avec le protocole de mémoire de trame distant, vous pouvez sauter cette section. </para>
|
||||
|
||||
<para
|
||||
>L'implémentation de haut niveau d'un système utilisant le protocole de mémoire de trame distant est connu comme Virtual Network Computer, ou plus couramment comme <acronym
|
||||
|
||||
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 47 KiB |
@@ -12,9 +12,10 @@
|
||||
# Amine Say <aminesay@yahoo.fr>, 2008, 2009.
|
||||
# Guillaume Pujol <guill.p@gmail.com>, 2010.
|
||||
# Sebastien Renard <renard@kde.org>, 2013, 2014, 2015.
|
||||
# xavier <xavier.besnard@neuf.fr>, 2013, 2021.
|
||||
# Xavier Besnard <xavier.besnard@kde.org>, 2013, 2021.
|
||||
# Vincent Pinon <vpinon@kde.org>, 2017.
|
||||
# Simon Depiets <sdepiets@gmail.com>, 2019.
|
||||
# Xavier Besnard <xavier.besnard@kde.org>, 2023.
|
||||
#
|
||||
# invite, 2008.
|
||||
# amine say, 2011.
|
||||
@@ -22,9 +23,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2021-11-01 08:30+0100\n"
|
||||
"Last-Translator: Xavier Besnard <xavier.besnard@neuf.fr>\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2023-01-09 16:44+0100\n"
|
||||
"Last-Translator: Xavier BESNARD <xavier.besnard]neuf.fr>\n"
|
||||
"Language-Team: French <kde-francophone@kde.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -34,7 +35,7 @@ msgstr ""
|
||||
"X-Environment: kde\n"
|
||||
"X-Accelerator-Marker: &\n"
|
||||
"X-Text-Markup: kde4\n"
|
||||
"X-Generator: Lokalize 21.08.1\n"
|
||||
"X-Generator: Lokalize 22.12.1\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -73,7 +74,7 @@ msgstr "Connexion acceptée depuis %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Connexion reçue depuis %1, suspendue (en attente de confirmation)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (bureau partagé)"
|
||||
@@ -166,7 +167,7 @@ msgstr ""
|
||||
"(c) 2001, Johannes E. Schindelin\n"
|
||||
"(c) 2000-2001, Const Kaplinsky\n"
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Boston\n"
|
||||
"(c) 1999, Laboratoires AT&T Boston\n"
|
||||
|
||||
#: main-virtualmonitor.cpp:91
|
||||
#, kde-format
|
||||
@@ -231,7 +232,7 @@ msgstr "Encodeur « ZLib »"
|
||||
#: main-virtualmonitor.cpp:101 main.cpp:119
|
||||
#, kde-format
|
||||
msgid "AT&T Laboratories Boston"
|
||||
msgstr "AT&T Laboratories Boston"
|
||||
msgstr "Laboratoires AT&T Boston"
|
||||
|
||||
#: main-virtualmonitor.cpp:102 main.cpp:120
|
||||
#, kde-format
|
||||
@@ -435,12 +436,12 @@ msgstr ""
|
||||
"Vous devez redémarrer le programme pour appliquer la configuration du module "
|
||||
"« framebuffer »"
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "L'utilisateur distant %1 est maintenant connecté."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "L'utilisateur distant %1 s'est déconnecté."
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdenetwork/krfb.po\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2004-12-03 14:52-0500\n"
|
||||
"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
|
||||
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
|
||||
@@ -52,7 +52,7 @@ msgstr "Glacadh le ceangal ó %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Fuarthas ceangal ó %1, ar fanacht (ag feitheamh le cinntiú)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (deasc chomhroinnte)"
|
||||
@@ -416,12 +416,12 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Tá úsáideoir cianda %1 ceangailte anois."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Tá úsáideoir cianda %1 dícheangailte anois."
|
||||
|
||||
@@ -8,20 +8,21 @@
|
||||
# Xosé <xosecalvo@gmail.com>, 2009.
|
||||
# Marce Villarino <mvillarino@kde-espana.es>, 2012, 2013, 2014.
|
||||
# Adrian Chaves Fernandez <adriyetichaves@gmail.com>, 2012, 2015, 2017.
|
||||
# Adrián Chaves (Gallaecio) <adrian@chaves.io>, 2017, 2018, 2019.
|
||||
# Adrián Chaves (Gallaecio) <adrian@chaves.io>, 2017, 2018, 2019, 2023.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2019-07-13 12:48+0200\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2023-04-30 15:46+0200\n"
|
||||
"Last-Translator: Adrián Chaves (Gallaecio) <adrian@chaves.io>\n"
|
||||
"Language-Team: Galician <kde-i18n-doc@kde.org>\n"
|
||||
"Language-Team: Galician <proxecto@trasno.gal>\n"
|
||||
"Language: gl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 23.04.0\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -58,7 +59,7 @@ msgstr "Aceptouse unha conexión de %1."
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Recibiuse unha conexión desde %1, retida (á espera de confirmación)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (escritorio compartido)"
|
||||
@@ -73,7 +74,7 @@ msgstr "Iniciar minimizado."
|
||||
#: krfb.kcfg:15
|
||||
#, kde-format
|
||||
msgid "Use the default port for VNC (5900)"
|
||||
msgstr "Empregar o porto predeterminado para VNC (5900)"
|
||||
msgstr "Usar o porto predeterminado para VNC (5900)"
|
||||
|
||||
#. i18n: ectx: label, entry (port), group (TCP)
|
||||
#: krfb.kcfg:19
|
||||
@@ -122,17 +123,17 @@ msgstr "Complemento de búfer de fotograma preferido"
|
||||
#: main-virtualmonitor.cpp:49
|
||||
#, kde-format
|
||||
msgid "Creating a Virtual Monitor from %1"
|
||||
msgstr ""
|
||||
msgstr "Creando un monitor virtual desde %1"
|
||||
|
||||
#: main-virtualmonitor.cpp:80
|
||||
#, kde-format
|
||||
msgid "Remote Virtual Monitor"
|
||||
msgstr ""
|
||||
msgstr "Monitor virtual remoto"
|
||||
|
||||
#: main-virtualmonitor.cpp:82
|
||||
#, kde-format
|
||||
msgid "Offer a Virtual Monitor that can be accessed remotely"
|
||||
msgstr ""
|
||||
msgstr "Ofrecer un monitor virtual ao que se pode acceder en remoto"
|
||||
|
||||
#: main-virtualmonitor.cpp:84 main.cpp:98
|
||||
#, kde-format
|
||||
@@ -156,7 +157,7 @@ msgstr ""
|
||||
#: main-virtualmonitor.cpp:91
|
||||
#, kde-format
|
||||
msgid "Virtual Monitor implementation"
|
||||
msgstr ""
|
||||
msgstr "Implementación do monitor virtual"
|
||||
|
||||
#: main-virtualmonitor.cpp:92 main.cpp:108
|
||||
#, kde-format
|
||||
@@ -226,54 +227,52 @@ msgstr "codificadores orixinais de VNC e deseño do protocolo"
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "Logical resolution of the new monitor"
|
||||
msgstr ""
|
||||
msgstr "Resolución lóxica do novo monitor"
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "resolution"
|
||||
msgstr ""
|
||||
msgstr "resolución"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "Name of the monitor"
|
||||
msgstr ""
|
||||
msgstr "Nome do monitor"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
msgstr "nome"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Password for uninvited connections."
|
||||
#, kde-format
|
||||
msgid "Password for the client to connect to it"
|
||||
msgstr "Contrasinal das conexións sen convite."
|
||||
msgstr "Contrasinal para que o cliente se conecte a el"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "&Password"
|
||||
#, kde-format
|
||||
msgid "password"
|
||||
msgstr "&Contrasinal:"
|
||||
msgstr "contrasinal"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "The device-pixel-ratio of the device, the scaling factor"
|
||||
msgstr ""
|
||||
msgstr "A taxa de píxel de dispositivo do dispositivo, o factor de escala"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "dpr"
|
||||
msgstr ""
|
||||
msgstr "dpr"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "The port we will be listening to"
|
||||
msgstr ""
|
||||
msgstr "O porto de entrada"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "number"
|
||||
msgstr ""
|
||||
msgstr "número"
|
||||
|
||||
#: main.cpp:49
|
||||
#, kde-format
|
||||
@@ -312,7 +311,7 @@ msgstr "Compatibilidade cos tubos de Telepathy."
|
||||
#: main.cpp:126
|
||||
#, kde-format
|
||||
msgid "Do not show the invitations management dialog at startup"
|
||||
msgstr "Non mostrar o diálogo de xestión dos convites ao comezo"
|
||||
msgstr "Non amosar o diálogo de xestión dos convites ao comezo"
|
||||
|
||||
#: main.cpp:148
|
||||
#, kde-format
|
||||
@@ -340,8 +339,9 @@ msgid ""
|
||||
"Failed to start the krfb server. Desktop sharing will not work. Try setting "
|
||||
"another port in the settings and restart krfb."
|
||||
msgstr ""
|
||||
"Non se puido iniciar o servidor krfb. Non se poderá compartir o escritorio. "
|
||||
"Probe a escoller un porto distinto na configuración e reinicie krfb."
|
||||
"Non foi posíbel iniciar o servidor krfb. Non se poderá compartir o "
|
||||
"escritorio. Probe a escoller un porto distinto na configuración e reinicie "
|
||||
"krfb."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (text), widget (QLabel, titleLabel)
|
||||
@@ -404,7 +404,7 @@ msgstr "Rede"
|
||||
#: mainwindow.cpp:250
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr "Seguranza"
|
||||
msgstr "Seguridade"
|
||||
|
||||
#: mainwindow.cpp:251
|
||||
#, kde-format
|
||||
@@ -418,12 +418,12 @@ msgstr ""
|
||||
"Para aplicar a configuración do complemento de búfer de fotogramas ten que "
|
||||
"reiniciar o programa."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "O usuario remoto %1 conectouse."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "O usuario remoto %1 desconectouse."
|
||||
@@ -477,7 +477,7 @@ msgstr ""
|
||||
"<html><head/><body> <p>Ao usar x11 debería preferirse o complemento <span "
|
||||
"style=\" font-weight:600;\">xcb</span>, porque ten un mellor rendemento.<br/"
|
||||
"> O complemento <span style=\" font-weight:600;\">qt</span> é unha "
|
||||
"alternativa de seguranza, se por algún motivo non funcionan outros "
|
||||
"alternativa de seguridade, se por algún motivo non funcionan outros "
|
||||
"complementos. Pero é moi lento.</p> </body></html>"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_allowDesktopControl)
|
||||
@@ -496,7 +496,7 @@ msgstr "Non almacenar os contrasinais usando a carteira de KDE"
|
||||
#: ui/configtcp.ui:26
|
||||
#, kde-format
|
||||
msgid "Use default port"
|
||||
msgstr "Empregar o porto predeterminado"
|
||||
msgstr "Usar o porto predeterminado"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configtcp.ui:50
|
||||
@@ -542,7 +542,7 @@ msgid ""
|
||||
"screen."
|
||||
msgstr ""
|
||||
"Se sinala esta opción, o usuario remoto pode inserir polo teclado e usar o "
|
||||
"rato. Isto dalle control completo sobre o computador, así que teña coidado. "
|
||||
"rato. Isto dálle control completo sobre o computador, así que teña coidado. "
|
||||
"Cando a opción está desactivada, o usuario remoto só poderá ver a pantalla."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, cbAllowRemoteControl)
|
||||
@@ -643,6 +643,7 @@ msgstr ""
|
||||
"Contrasinal que os usuario remotos necesitan para conectar ao seu "
|
||||
"escritorio. Prema o botón «Editar» da dereita para cambiar o contrasinal."
|
||||
|
||||
# well-spelled: ContrasinalTemporal
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:314
|
||||
#, kde-format
|
||||
|
||||
264
po/he/krfb.po
@@ -11,30 +11,32 @@
|
||||
#
|
||||
# tahmar1900 <tahmar1900@gmail.com>, 2006.
|
||||
# Elkana Bardugo <ttv200@gmail.com>, 2017. #zanata
|
||||
# SPDX-FileCopyrightText: 2024 Yaron Shahrabani <sh.yaron@gmail.com>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2017-05-16 07:03-0400\n"
|
||||
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
|
||||
"Language-Team: hebrew <kde-l10n-he@kde.org>\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2024-01-27 21:55+0200\n"
|
||||
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
|
||||
"Language-Team: צוות התרגום של KDE ישראל\n"
|
||||
"Language: he\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Zanata 3.9.6\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 23.08.4\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
|
||||
"n % 10 == 0) ? 2 : 3));\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Yoav Bagno"
|
||||
msgstr "Yoav Bagno,צוות התרגום של KDE ישראל"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "yoavb@zavit.net.il"
|
||||
msgstr "yoavb@zavit.net.il,kde-l10n-he@kde.org"
|
||||
|
||||
#: connectiondialog.cpp:39
|
||||
#, kde-format
|
||||
@@ -44,24 +46,24 @@ msgstr "חיבור חדש"
|
||||
#: connectiondialog.cpp:61
|
||||
#, kde-format
|
||||
msgid "Accept Connection"
|
||||
msgstr "אשר חיבור"
|
||||
msgstr "אישור החיבור"
|
||||
|
||||
#: connectiondialog.cpp:65
|
||||
#, kde-format
|
||||
msgid "Refuse Connection"
|
||||
msgstr "סרב לחיבור"
|
||||
msgstr "סירוב לחיבור"
|
||||
|
||||
#: invitationsrfbclient.cpp:69
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Accepted connection from %1"
|
||||
msgstr "ההתחברות ללא הזמנה מ-%1 אושרה"
|
||||
msgstr "אושר חיבור מצד %1"
|
||||
|
||||
#: invitationsrfbclient.cpp:75
|
||||
#, kde-format
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "נתקבלה התחברות מ-%1, בהמתנה (ממתין לאישור)"
|
||||
msgstr "התקבלה התחברות מ־-%1, בהמתנה (לאישור)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (שולחנות עבודה משותפים)"
|
||||
@@ -70,72 +72,72 @@ msgstr "%1@%2 (שולחנות עבודה משותפים)"
|
||||
#: krfb.kcfg:9
|
||||
#, kde-format
|
||||
msgid "Start minimized"
|
||||
msgstr ""
|
||||
msgstr "התחלה במצב ממוזער"
|
||||
|
||||
#. i18n: ectx: label, entry (useDefaultPort), group (TCP)
|
||||
#: krfb.kcfg:15
|
||||
#, kde-format
|
||||
msgid "Use the default port for VNC (5900)"
|
||||
msgstr ""
|
||||
msgstr "להשתמש בפתחת ברירת המחדל ל־VNC (5900)"
|
||||
|
||||
#. i18n: ectx: label, entry (port), group (TCP)
|
||||
#: krfb.kcfg:19
|
||||
#, kde-format
|
||||
msgid "This is the port on which krfb will listen."
|
||||
msgstr ""
|
||||
msgstr "זאת הפתחה לה יאזין krfb."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_publishService)
|
||||
#. i18n: ectx: label, entry (publishService), group (TCP)
|
||||
#: krfb.kcfg:23 ui/configtcp.ui:16
|
||||
#, kde-format
|
||||
msgid "Announce the service on the local network"
|
||||
msgstr ""
|
||||
msgstr "להכריז על השירות ברשת המקומית."
|
||||
|
||||
#. i18n: ectx: label, entry (noWallet), group (Security)
|
||||
#: krfb.kcfg:29
|
||||
#, kde-format
|
||||
msgid "Do not store passwords in KWallet"
|
||||
msgstr ""
|
||||
msgstr "לא לאחסן סיסמאות ב־KWallet"
|
||||
|
||||
#. i18n: ectx: label, entry (allowDesktopControl), group (Security)
|
||||
#: krfb.kcfg:33
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Allow remote connections to manage the desktop."
|
||||
msgstr "א&פשר למשתמש המרוחק לשלוט במקלדת ובעכבר"
|
||||
msgstr "לאפשר לחיבורים מרוחקים לנהל את שולחן העבודה."
|
||||
|
||||
#. i18n: ectx: label, entry (allowUnattendedAccess), group (Security)
|
||||
#: krfb.kcfg:37
|
||||
#, kde-format
|
||||
msgid "Allow connections without an invitation."
|
||||
msgstr ""
|
||||
msgstr "לאפשר חיבורים ללא הזמנה."
|
||||
|
||||
#. i18n: ectx: label, entry (unattendedAccessPassword), group (Security)
|
||||
#. i18n: ectx: label, entry (desktopSharingPassword), group (Security)
|
||||
#: krfb.kcfg:41 krfb.kcfg:44
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Password for uninvited connections."
|
||||
msgstr "ההתחברות ללא הזמנה מ-%1 אושרה"
|
||||
msgstr "סיסמה לחיבורים ללא הזמנה."
|
||||
|
||||
#. i18n: ectx: label, entry (preferredFrameBufferPlugin), group (FrameBuffer)
|
||||
#: krfb.kcfg:49
|
||||
#, kde-format
|
||||
msgid "Preferred Frame Buffer Plugin"
|
||||
msgstr ""
|
||||
msgstr "תוסף מכלא חוזי מועדף"
|
||||
|
||||
#: main-virtualmonitor.cpp:49
|
||||
#, kde-format
|
||||
msgid "Creating a Virtual Monitor from %1"
|
||||
msgstr ""
|
||||
msgstr "נוצר צג וירטואלי מתוך %1"
|
||||
|
||||
#: main-virtualmonitor.cpp:80
|
||||
#, kde-format
|
||||
msgid "Remote Virtual Monitor"
|
||||
msgstr ""
|
||||
msgstr "הסרת צד וירטואלי"
|
||||
|
||||
#: main-virtualmonitor.cpp:82
|
||||
#, kde-format
|
||||
msgid "Offer a Virtual Monitor that can be accessed remotely"
|
||||
msgstr ""
|
||||
msgstr "הצעת מסך וירטואלי שאפשר לגשת אליו מרחוק."
|
||||
|
||||
#: main-virtualmonitor.cpp:84 main.cpp:98
|
||||
#, kde-format
|
||||
@@ -148,41 +150,48 @@ msgid ""
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Boston\n"
|
||||
msgstr ""
|
||||
"(c) 2009-2010, Collabora בע״מ.\n"
|
||||
"(c) 2007, אלסנדרו פרדורו\n"
|
||||
"(c) 2001-2003, טים ג׳נסן\n"
|
||||
"(c) 2001, יוהאנס א. שינדלין\n"
|
||||
"(c) 2000-2001, קונסט קפלינסקי\n"
|
||||
"(c) 2000, תאגיד Tridia\n"
|
||||
"(c) 1999, מעבדות AT&T בוסטון\n"
|
||||
|
||||
#: main-virtualmonitor.cpp:91
|
||||
#, kde-format
|
||||
msgid "Virtual Monitor implementation"
|
||||
msgstr ""
|
||||
msgstr "הטמעת צג וירטואלי"
|
||||
|
||||
#: main-virtualmonitor.cpp:92 main.cpp:108
|
||||
#, kde-format
|
||||
msgid "George Kiagiadakis"
|
||||
msgstr ""
|
||||
msgstr "ג׳ורג׳ קיאגיאדקיס"
|
||||
|
||||
#: main-virtualmonitor.cpp:93 main.cpp:111
|
||||
#, kde-format
|
||||
msgid "Alessandro Praduroux"
|
||||
msgstr ""
|
||||
msgstr "אלסנדרו פרדורו"
|
||||
|
||||
#: main-virtualmonitor.cpp:93 main.cpp:111
|
||||
#, kde-format
|
||||
msgid "KDE4 porting"
|
||||
msgstr ""
|
||||
msgstr "הסבה ל־KDE4"
|
||||
|
||||
#: main-virtualmonitor.cpp:94 main.cpp:112
|
||||
#, kde-format
|
||||
msgid "Tim Jansen"
|
||||
msgstr ""
|
||||
msgstr "טים ג׳נסן"
|
||||
|
||||
#: main-virtualmonitor.cpp:94 main.cpp:112
|
||||
#, kde-format
|
||||
msgid "Original author"
|
||||
msgstr ""
|
||||
msgstr "יוצר מקורי"
|
||||
|
||||
#: main-virtualmonitor.cpp:95 main.cpp:113
|
||||
#, kde-format
|
||||
msgid "Johannes E. Schindelin"
|
||||
msgstr ""
|
||||
msgstr "יוהאן א. שינדלין"
|
||||
|
||||
#: main-virtualmonitor.cpp:96 main.cpp:114
|
||||
#, kde-format
|
||||
@@ -192,7 +201,7 @@ msgstr "libvncserver"
|
||||
#: main-virtualmonitor.cpp:97 main.cpp:115
|
||||
#, kde-format
|
||||
msgid "Const Kaplinsky"
|
||||
msgstr ""
|
||||
msgstr "קונסט קפלינסקי"
|
||||
|
||||
#: main-virtualmonitor.cpp:98 main.cpp:116
|
||||
#, kde-format
|
||||
@@ -202,7 +211,7 @@ msgstr "מקודד TightVNC"
|
||||
#: main-virtualmonitor.cpp:99 main.cpp:117
|
||||
#, kde-format
|
||||
msgid "Tridia Corporation"
|
||||
msgstr ""
|
||||
msgstr "חברת Tridia"
|
||||
|
||||
#: main-virtualmonitor.cpp:100 main.cpp:118
|
||||
#, kde-format
|
||||
@@ -212,7 +221,7 @@ msgstr "מקודד ZLib"
|
||||
#: main-virtualmonitor.cpp:101 main.cpp:119
|
||||
#, kde-format
|
||||
msgid "AT&T Laboratories Boston"
|
||||
msgstr ""
|
||||
msgstr "מעבדות AT&T בוסטון"
|
||||
|
||||
#: main-virtualmonitor.cpp:102 main.cpp:120
|
||||
#, kde-format
|
||||
@@ -222,52 +231,52 @@ msgstr "מקודדי VNC מקוריים ועיצוב פרוטוקולים"
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "Logical resolution of the new monitor"
|
||||
msgstr ""
|
||||
msgstr "רזולוציה לוגית של הצג החדש"
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "resolution"
|
||||
msgstr ""
|
||||
msgstr "רזולוציה"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "Name of the monitor"
|
||||
msgstr ""
|
||||
msgstr "שם הצד"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
msgstr "שם"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Password for the client to connect to it"
|
||||
msgstr "ההתחברות ללא הזמנה מ-%1 אושרה"
|
||||
msgstr "סיסמה ללקוח כדי להתחבר אליו"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "password"
|
||||
msgstr "<b>סיסמה:</b>"
|
||||
msgstr "סיסמה"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "The device-pixel-ratio of the device, the scaling factor"
|
||||
msgstr ""
|
||||
msgstr "יחס פיקסלים למכשיר של המכשיר, מקדם קנה־מידה"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "dpr"
|
||||
msgstr ""
|
||||
msgstr "יפמ"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "The port we will be listening to"
|
||||
msgstr ""
|
||||
msgstr "הפתחה שנאזין לה"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "number"
|
||||
msgstr ""
|
||||
msgstr "מספר"
|
||||
|
||||
#: main.cpp:49
|
||||
#, kde-format
|
||||
@@ -275,8 +284,8 @@ msgid ""
|
||||
"Your X11 Server does not support the required XTest extension version 2.2. "
|
||||
"Sharing your desktop is not possible."
|
||||
msgstr ""
|
||||
"שרת ה-X11 שלך אינו תומך בגירסה 2.2 של ההרחבה הנדרשת XTest. אין אפשרות לשתף "
|
||||
"את שולחן העבודה שלך."
|
||||
"שרת ה־X11 שלך לא תומך בגרסה 2.2 של ההרחבה הנדרשת XTest. אין אפשרות לשתף את "
|
||||
"שולחן העבודה שלך."
|
||||
|
||||
#: main.cpp:51 main.cpp:150
|
||||
#, kde-format
|
||||
@@ -289,24 +298,24 @@ msgid "Desktop Sharing"
|
||||
msgstr "שיתוף שולחן עבודה"
|
||||
|
||||
#: main.cpp:96
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "VNC-compatible server to share desktops"
|
||||
msgstr "שרת תואם VNC לשיתוף שולחנות עבודה של KDE"
|
||||
msgstr "שרת תואם VNC לשיתוף שולחנות עבודה"
|
||||
|
||||
#: main.cpp:105
|
||||
#, kde-format
|
||||
msgid "George Goldberg"
|
||||
msgstr ""
|
||||
msgstr "ג׳ורג׳ גולדברג"
|
||||
|
||||
#: main.cpp:106
|
||||
#, kde-format
|
||||
msgid "Telepathy tubes support"
|
||||
msgstr ""
|
||||
msgstr "תמיכה בצינורות טלפתיים (Telepathy Tubes)"
|
||||
|
||||
#: main.cpp:126
|
||||
#, kde-format
|
||||
msgid "Do not show the invitations management dialog at startup"
|
||||
msgstr ""
|
||||
msgstr "לא להציג את חלונית ניהול ההזמנות בהתחלה"
|
||||
|
||||
#: main.cpp:148
|
||||
#, kde-format
|
||||
@@ -314,16 +323,18 @@ msgid ""
|
||||
"Desktop Sharing is not running under an X11 Server or Wayland.\n"
|
||||
"Other display servers are currently not supported."
|
||||
msgstr ""
|
||||
"שיתוף שולחן העבודה לא פועל כרגע תחת שרת X11 או Wayland.\n"
|
||||
"אין תמיכה כרגע בשרתי תצוגה אחרים."
|
||||
|
||||
#: mainwindow.cpp:52
|
||||
#, kde-format
|
||||
msgid "Storing passwords in config file is insecure!"
|
||||
msgstr ""
|
||||
msgstr "אחסון סיסמאות בקובץ ההגדרות אינו מאובטח!"
|
||||
|
||||
#: mainwindow.cpp:189
|
||||
#, kde-format
|
||||
msgid "Enter a new password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "נא למלא סיסמה לגישה ללא התערבות"
|
||||
|
||||
#: mainwindow.cpp:200
|
||||
#, kde-format
|
||||
@@ -331,15 +342,17 @@ msgid ""
|
||||
"Failed to start the krfb server. Desktop sharing will not work. Try setting "
|
||||
"another port in the settings and restart krfb."
|
||||
msgstr ""
|
||||
"הפעלת שרת krfb נכשלה. שיתוף שולחן העבודה לא יעבוד. כדאי לנסות להגדיר פתחה "
|
||||
"שונה בהגדרות ולהפעיל את krfb מחדש."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (text), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, aboutLabel)
|
||||
#: mainwindow.cpp:223 mainwindow.cpp:230 ui/mainwidget.ui:83
|
||||
#: ui/mainwidget.ui:86 ui/mainwidget.ui:114
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "KDE Desktop Sharing"
|
||||
msgstr "שיתוף שולחן עבודה"
|
||||
msgstr "שיתוף שולחן עבודה של KDE"
|
||||
|
||||
#: mainwindow.cpp:224
|
||||
#, kde-format
|
||||
@@ -356,6 +369,15 @@ msgid ""
|
||||
"If your computer is behind a firewall it may have a different address or be "
|
||||
"unreachable for other computers."
|
||||
msgstr ""
|
||||
"השדה הזה מכיל את כתובת המחשב והפתחה שלך, עם נקודתיים ביניהם.\n"
|
||||
"\n"
|
||||
"הכתובת היא בגדר רמז - אפשר להשתמש באיזו כתובת שפונה למחשב שלך.\n"
|
||||
"\n"
|
||||
"שיתוף שולחן העבודה מנסה לנחש את הכתובת שלך מהגדרות הרשת שלך, אך יש טעויות "
|
||||
"לכאן או לכאן.\n"
|
||||
"\n"
|
||||
"אם המחשב שלך מוגן בחומת אש יכול להיות שיש לו כתובת אחרת או שמחשבים אחרים "
|
||||
"בכלל לא יכולים לגשת אליו."
|
||||
|
||||
#: mainwindow.cpp:231
|
||||
#, kde-format
|
||||
@@ -367,46 +389,50 @@ msgid ""
|
||||
"password, desktop sharing access will be granted without explicit "
|
||||
"confirmation."
|
||||
msgstr ""
|
||||
"כל משתמש מרוחק עם סיסמת שיתוף שולחן עבודה רגילה דורש אימות.\n"
|
||||
"\n"
|
||||
"אם גישה ללא התערבות פעילה, והמשתמש המרוחק סיפק סיסמה למצב ללא התערבות, גישה "
|
||||
"לשיתוף שולחן עבודה תוענק ללא אישור מפורש."
|
||||
|
||||
#: mainwindow.cpp:249
|
||||
#, kde-format
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
msgstr "רשת"
|
||||
|
||||
#: mainwindow.cpp:250
|
||||
#, kde-format
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
msgstr "אבטחה"
|
||||
|
||||
#: mainwindow.cpp:251
|
||||
#, kde-format
|
||||
msgid "Screen capture"
|
||||
msgstr ""
|
||||
msgstr "לכידת מסך"
|
||||
|
||||
#: mainwindow.cpp:256
|
||||
#, kde-format
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
msgstr "כדי להחיל הגדרות מכלא חוזי (framebuffer)"
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#, fuzzy, kde-format
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "המשתמש המרוחק סגר את החיבור."
|
||||
msgstr "המשתמש המרוחק %1 מחובר כרגע."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#, fuzzy, kde-format
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "המשתמש המרוחק סגר את החיבור."
|
||||
msgstr "המשתמש המרוחק %1 נותק."
|
||||
|
||||
#: trayicon.cpp:56
|
||||
#, kde-format
|
||||
msgid "Disconnect"
|
||||
msgstr ""
|
||||
msgstr "ניתוק"
|
||||
|
||||
#: trayicon.cpp:62
|
||||
#, kde-format
|
||||
msgid "Enable Remote Control"
|
||||
msgstr "אפשר שליטה מרחוק"
|
||||
msgstr "לאפשר שליטה מרחוק"
|
||||
|
||||
#: trayicon.cpp:101 trayicon.cpp:133
|
||||
#, kde-format
|
||||
@@ -416,24 +442,24 @@ msgstr "שיתוף שולחן עבודה - מתנתק"
|
||||
#: trayicon.cpp:117 trayicon.cpp:137
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected with %1"
|
||||
msgstr "שיתוף שולחן עבודה - מתחבר עם %1"
|
||||
msgstr "שיתוף שולחן עבודה - מתחבר מול %1"
|
||||
|
||||
#: trayicon.cpp:120
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected"
|
||||
msgstr "שיתוף שולחן עבודה - מתנתק"
|
||||
msgstr "שיתוף שולחן עבודה - מחובר"
|
||||
|
||||
#. i18n: ectx: property (windowTitle), widget (QWidget, Framebuffer)
|
||||
#: ui/configframebuffer.ui:14
|
||||
#, kde-format
|
||||
msgid "Framebuffer"
|
||||
msgstr ""
|
||||
msgstr "מכלא חוזי (Framebuffer)"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configframebuffer.ui:22
|
||||
#, kde-format
|
||||
msgid "Preferred frameb&uffer plugin:"
|
||||
msgstr ""
|
||||
msgstr "תוסף מ&כלא חוזי מועדף:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, helpText)
|
||||
#: ui/configframebuffer.ui:47
|
||||
@@ -444,36 +470,40 @@ msgid ""
|
||||
"style=\" font-weight:600;\">qt</span> plugin is a safe fallback, if for some "
|
||||
"reason others don't work. But also it is very slow.</p></body></html>"
|
||||
msgstr ""
|
||||
"<html><head/><body><p>עם x11, תוסף <span style=\" font-weight:600;\">xcb</"
|
||||
"span> אמור להיות מועדף, כי הביצועים שלו יותר טובים.<br/>תוסף <span style=\" "
|
||||
"font-weight:600;\">qt</span> הוא נסיגה בטוחה, אם מסיבה כלשהי האחרים לא עבדו. "
|
||||
"אבל הוא גם מאוד איטי.</p></body></html>"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_allowDesktopControl)
|
||||
#: ui/configsecurity.ui:17
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Allow remote connections to control your desktop"
|
||||
msgstr "א&פשר למשתמש המרוחק לשלוט במקלדת ובעכבר"
|
||||
msgstr "לאפשר חיבורים מרחוק לשליטה בשולחן העבודה שלך"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_noWallet)
|
||||
#: ui/configsecurity.ui:27
|
||||
#, kde-format
|
||||
msgid "Do not store passwords using KDE wallet"
|
||||
msgstr ""
|
||||
msgstr "לא לאחסן סיסמאות באמצעות ארנק KDE"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_useDefaultPort)
|
||||
#: ui/configtcp.ui:26
|
||||
#, kde-format
|
||||
msgid "Use default port"
|
||||
msgstr ""
|
||||
msgstr "להשתמש בפתחת ברירת המחדל"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configtcp.ui:50
|
||||
#, kde-format
|
||||
msgid "Listening port:"
|
||||
msgstr ""
|
||||
msgstr "פתחה להאזנה:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, TextLabel5)
|
||||
#: ui/connectionwidget.ui:47
|
||||
#, kde-format
|
||||
msgid "Attention"
|
||||
msgstr "שים לב"
|
||||
msgstr "נא לשים לב"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, mainTextLabel)
|
||||
#: ui/connectionwidget.ui:72
|
||||
@@ -482,8 +512,8 @@ msgid ""
|
||||
"Somebody is requesting a connection to your computer. Granting this will "
|
||||
"allow the remote user to watch your desktop. "
|
||||
msgstr ""
|
||||
"מישהו מבקש חיבור למחשב שלך. אישור בקשה זו יאפשר לו לראות את כל מה שיש על "
|
||||
"המסך שלך, "
|
||||
"מישהו או מישהי מבקשים להתחבר למחשב שלך. אישור בקשה זו יאפשר להם לראות את כל "
|
||||
"מה שיש על שולחן העבודה שלך."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, TextLabel1)
|
||||
#: ui/connectionwidget.ui:102
|
||||
@@ -506,15 +536,15 @@ msgid ""
|
||||
"careful. When the option is disabled the remote user can only watch your "
|
||||
"screen."
|
||||
msgstr ""
|
||||
"אם אפשרות זו נבחרת, המשתמש המרוחק יוכל להקליד ולהשתמש במצביע העכבר שלך. דבר "
|
||||
"זה ייתן לו שליטה מלאה על המחשב שלך, כך שיש להשתמש באפשרות זו בזהירות. אם "
|
||||
"אפשרות זו אינה נבחרת, המשתמש המרוחק יוכל רק לצפות במה שיש על המסך שלך."
|
||||
"הפעלת האפשרות הזאת תאפשר למשתמש או למשתמשת המרוחקים להקליד ולהשתמש בסמן "
|
||||
"העכבר שלך. בכך הם למעשה מקבלים שליטה מלאה על המחשב שלך, לכן כדאי לנקוט במשנה "
|
||||
"זהירות. כאשר האפשרות הזאת מושבתת הם יוכלו רק לצפות במסך."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, cbAllowRemoteControl)
|
||||
#: ui/connectionwidget.ui:139
|
||||
#, kde-format
|
||||
msgid "Allow remote user to &control keyboard and mouse"
|
||||
msgstr "א&פשר למשתמש המרוחק לשלוט במקלדת ובעכבר"
|
||||
msgstr "לא&פשר למשתמש המרוחק לשלוט במקלדת ובעכבר"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, aboutLabel)
|
||||
#: ui/mainwidget.ui:117
|
||||
@@ -523,43 +553,45 @@ msgid ""
|
||||
"KDE Desktop Sharing allows you to grant permission to someone at a remote "
|
||||
"location for viewing and possibly controlling your desktop."
|
||||
msgstr ""
|
||||
"שיתוף שולחן עבודה של KDE מאפשר לך לך להעניק הרשאה לגורם מרוחק לצפייה ואפילו "
|
||||
"שליטה בשולחן העבודה שלך."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:145
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Starts/Stops Remote Desktop Sharing"
|
||||
msgstr "ניהול הזמנות - שיתוף שולחן עבודה"
|
||||
msgstr "מפעיל/עוצר שיתוף שולחן עבודה"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:148
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "&Enable Desktop Sharing"
|
||||
msgstr "שיתוף שולחן עבודה"
|
||||
msgstr "ה&פעלת שיתוף שולחן עבודה"
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, detailsGroupBox)
|
||||
#: ui/mainwidget.ui:170
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Connection Details"
|
||||
msgstr "התמונה הצדדית בחלון החיבור"
|
||||
msgstr "פרטי החיבור"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressLabel)
|
||||
#: ui/mainwidget.ui:193
|
||||
#, kde-format
|
||||
msgid "&Address"
|
||||
msgstr ""
|
||||
msgstr "&כתובת"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, addressAboutButton)
|
||||
#: ui/mainwidget.ui:214
|
||||
#, kde-format
|
||||
msgid "More about this address"
|
||||
msgstr ""
|
||||
msgstr "עוד על הכתובת הזאת"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, addressAboutButton)
|
||||
#. i18n: ectx: property (text), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:217 ui/mainwidget.ui:397
|
||||
#, kde-format
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
msgstr "על אודות"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:235
|
||||
@@ -568,30 +600,32 @@ msgid ""
|
||||
"Address required by remote users to connect to your desktop. Click about "
|
||||
"button on the right for more info."
|
||||
msgstr ""
|
||||
"משתמשים מרוחקים צריכים כתובת כדי להתחבר לשולחן העבודה שלך. יש ללחוץ על כפתור "
|
||||
"„על אודות” משמאל כדי לקבל מידע נוסף."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:238
|
||||
#, kde-format
|
||||
msgid "127.0.0.1 : 5900"
|
||||
msgstr ""
|
||||
msgstr "127.0.0.1 : 5900"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordLabel)
|
||||
#: ui/mainwidget.ui:269
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "&Password"
|
||||
msgstr "<b>סיסמה:</b>"
|
||||
msgstr "&סיסמה"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:290
|
||||
#, fuzzy, kde-format
|
||||
#, kde-format
|
||||
msgid "Edit/Save Desktop Sharing Password"
|
||||
msgstr "שגיאת שיתוף שולחן עבודה"
|
||||
msgstr "עריכת/שמירה סיסמת שיתוף שולחן עבודה"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:293
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "עריכה"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:311
|
||||
@@ -600,12 +634,14 @@ msgid ""
|
||||
"Password required by remote users to connect to your desktop. Click the edit "
|
||||
"button on the right to change password."
|
||||
msgstr ""
|
||||
"משתמשים מרוחקים צריכים סיסמה כדי להתחבר לשולחן העבודה שלך. יש ללחוץ על כפתור "
|
||||
"העריכה משמאל כדי להחליף סיסמה."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:314
|
||||
#, kde-format
|
||||
msgid "TemporaryPassword"
|
||||
msgstr ""
|
||||
msgstr "סיסמה_זמנית"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QGroupBox, unattendedGroupBox)
|
||||
#. i18n: ectx: property (text), widget (QLabel, unattendedAboutLabel)
|
||||
@@ -615,12 +651,14 @@ msgid ""
|
||||
"Unattended Access allows a remote user with the password to gain control to "
|
||||
"your desktop without your explicit confirmation."
|
||||
msgstr ""
|
||||
"גישה ללא התערבות מאפשרת למשתמש מרוחק שיש לו סיסמה לקבלת שליטה בשולחן העבודה "
|
||||
"שלך ללא הסכמה מפורשת."
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, unattendedGroupBox)
|
||||
#: ui/mainwidget.ui:343
|
||||
#, kde-format
|
||||
msgid "Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "גישה ללא התערבות"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, unattendedAboutLabel)
|
||||
#: ui/mainwidget.ui:375
|
||||
@@ -630,12 +668,14 @@ msgid ""
|
||||
"your desktop without your explicit confirmation. Click \"About\" button on "
|
||||
"right to know more."
|
||||
msgstr ""
|
||||
"גישה ללא התערבות מאפשרת למשתמש מרוחק שיש לו סיסמה לקבלת שליטה בשולחן העבודה "
|
||||
"שלך ללא הסכמה מפורשת. לחיצה על כפתור „על אודות” משמאל תציג הסברים נוספים."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:394
|
||||
#, kde-format
|
||||
msgid "Know more about Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "מידע נוסף על גישה ללא התערבות"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:437
|
||||
@@ -644,21 +684,23 @@ msgid ""
|
||||
"Starts/Stops unattended access to your desktop. Click on button on right to "
|
||||
"change password, and \"About\" button to know more."
|
||||
msgstr ""
|
||||
"מפעיל/עוצר גישה ללא התערבות לשולחן העבודה שלך. יש ללחוץ על הכפתור משמאל כדי "
|
||||
"להחליף סיסמה ועל כפתור„על אודות” כדי ללמוד עוד."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:440
|
||||
#, kde-format
|
||||
msgid "Enable &Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "הפעלת גישה ללא הת&ערבות"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:465
|
||||
#, kde-format
|
||||
msgid "Change password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "החלפת סיסמה לגישה ללא התערבות"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:468
|
||||
#, kde-format
|
||||
msgid "&Change Unattended Password"
|
||||
msgstr ""
|
||||
msgstr "ה&חלפת סיסמה ללא התערבות"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2008-01-09 17:12+0530\n"
|
||||
"Last-Translator: Ravishankar Shrivastava <raviratlami@yahoo.com>\n"
|
||||
"Language-Team: Hindi <indlinux-hindi@lists.sourceforge.net>\n"
|
||||
@@ -54,7 +54,7 @@ msgstr "%1 से बिन बुलाए कनेक्शन स्वी
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr " %1 से कनेक्शन मिला, होल्ड पर रखा (पुष्टि के लिए इंतजार किया जा रहा है)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (साझेदारी डेस्कटॉप)"
|
||||
@@ -400,13 +400,13 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "रिमोट उपयोक्ता ने कनेक्शन बन्द कर दिया."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 disconnected."
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2009-02-26 22:21+0530\n"
|
||||
"Last-Translator: Ravishankar Shrivastava <raviratlami@aol.in>\n"
|
||||
"Language-Team: Hindi <kde-i18n-doc@lists.kde.org>\n"
|
||||
@@ -55,7 +55,7 @@ msgstr "%1 से बिन बुलाए कनेक्सन स्वी
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr " %1 से कनेक्सन मिलिस, होल्ड मं रखे (पुस्टि बर इंतजार करत हे)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (साझेदारी डेस्कटाप)"
|
||||
@@ -399,13 +399,13 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "रिमोट कमइया हर कनेक्सन बन्द कर दिस."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 disconnected."
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb 0\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2010-02-10 22:40+0100\n"
|
||||
"Last-Translator: Marko Dimjasevic <marko@dimjasevic.net>\n"
|
||||
"Language-Team: Croatian <kde-croatia-list@lists.sourceforge.net>\n"
|
||||
@@ -61,7 +61,7 @@ msgstr "Prihvaćena je nepozvana veza od %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Primljena veza od %1, na čekanju (čekanje potvrde)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (dijeljena radna površina)"
|
||||
@@ -425,12 +425,12 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Udaljeni korisnik %1 je spojen."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user %1 is now connected."
|
||||
msgid "The remote user %1 disconnected."
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: desktop_kdebase\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2008-11-06 22:08+0100\n"
|
||||
"Last-Translator: Eduard Werner <edi.werner@gmx.de>\n"
|
||||
"Language-Team: en_US <kde-i18n-doc@lists.kde.org>\n"
|
||||
@@ -53,7 +53,7 @@ msgstr "Zwjazam so ze serverom %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr ""
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr ""
|
||||
@@ -378,12 +378,12 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr ""
|
||||
|
||||
109
po/hu/krfb.po
@@ -2,30 +2,31 @@
|
||||
# Tamas Szanto <taszanto@gmail.com>, 2002.
|
||||
# Kristóf Kiszel <ulysses@kubuntu.org>, 2012.
|
||||
# Balázs Úr <urbalazs@gmail.com>, 2013, 2014.
|
||||
# SPDX-FileCopyrightText: 2024 Kristof Kiszel <ulysses@fsf.hu>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: KDE 4.3\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2014-06-15 15:24+0200\n"
|
||||
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2024-05-20 16:13+0200\n"
|
||||
"Last-Translator: Kristof Kiszel <ulysses@fsf.hu>\n"
|
||||
"Language-Team: Hungarian <kde-l10n-hu@kde.org>\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 1.5\n"
|
||||
"X-Generator: Lokalize 24.02.2\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "Kiszel Kristóf,Szántó Tamás"
|
||||
msgstr "Kiszel Kristóf"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "ulysses@kubuntu.org,taszanto@gmail.com"
|
||||
msgstr "ulysses@fsf.hu"
|
||||
|
||||
#: connectiondialog.cpp:39
|
||||
#, kde-format
|
||||
@@ -54,7 +55,7 @@ msgstr ""
|
||||
"Csatlakozási kísérlet történt innen: %1, a kapcsolat felfüggesztve "
|
||||
"(várakozás megerősítésre)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (megosztott asztal)"
|
||||
@@ -63,7 +64,7 @@ msgstr "%1@%2 (megosztott asztal)"
|
||||
#: krfb.kcfg:9
|
||||
#, kde-format
|
||||
msgid "Start minimized"
|
||||
msgstr ""
|
||||
msgstr "Indítás minimalizálva"
|
||||
|
||||
#. i18n: ectx: label, entry (useDefaultPort), group (TCP)
|
||||
#: krfb.kcfg:15
|
||||
@@ -88,7 +89,7 @@ msgstr "A szolgáltatás bejelentése a helyi hálózaton"
|
||||
#: krfb.kcfg:29
|
||||
#, kde-format
|
||||
msgid "Do not store passwords in KWallet"
|
||||
msgstr ""
|
||||
msgstr "Ne tárolja a jelszavakat a KWalletben"
|
||||
|
||||
#. i18n: ectx: label, entry (allowDesktopControl), group (Security)
|
||||
#: krfb.kcfg:33
|
||||
@@ -118,17 +119,17 @@ msgstr "Elsődleges keretpuffer-modul"
|
||||
#: main-virtualmonitor.cpp:49
|
||||
#, kde-format
|
||||
msgid "Creating a Virtual Monitor from %1"
|
||||
msgstr ""
|
||||
msgstr "Virtuális monitor létrehozása ebből: %1"
|
||||
|
||||
#: main-virtualmonitor.cpp:80
|
||||
#, kde-format
|
||||
msgid "Remote Virtual Monitor"
|
||||
msgstr ""
|
||||
msgstr "Távoli virtuális monitor"
|
||||
|
||||
#: main-virtualmonitor.cpp:82
|
||||
#, kde-format
|
||||
msgid "Offer a Virtual Monitor that can be accessed remotely"
|
||||
msgstr ""
|
||||
msgstr "Távolról is elérhető virtuális monitor biztosítása"
|
||||
|
||||
#: main-virtualmonitor.cpp:84 main.cpp:98
|
||||
#, kde-format
|
||||
@@ -152,7 +153,7 @@ msgstr ""
|
||||
#: main-virtualmonitor.cpp:91
|
||||
#, kde-format
|
||||
msgid "Virtual Monitor implementation"
|
||||
msgstr ""
|
||||
msgstr "Virtuálismonitor-megvalósítás"
|
||||
|
||||
#: main-virtualmonitor.cpp:92 main.cpp:108
|
||||
#, kde-format
|
||||
@@ -222,54 +223,52 @@ msgstr "Az eredeti VNC-kódolók és a protokoll megtervezése"
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "Logical resolution of the new monitor"
|
||||
msgstr ""
|
||||
msgstr "Az új monitor logikai felbontása"
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "resolution"
|
||||
msgstr ""
|
||||
msgstr "felbontás"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "Name of the monitor"
|
||||
msgstr ""
|
||||
msgstr "A monitor neve"
|
||||
|
||||
#: main-virtualmonitor.cpp:110
|
||||
#, kde-format
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
msgstr "név"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Password for uninvited connections."
|
||||
#, kde-format
|
||||
msgid "Password for the client to connect to it"
|
||||
msgstr "Meghívó nélküli kapcsolat jelszava."
|
||||
msgstr "Jelszó a klienshez, amelyhez csatlakozni kíván"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "&Password"
|
||||
#, kde-format
|
||||
msgid "password"
|
||||
msgstr "&Jelszó"
|
||||
msgstr "jelszó"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "The device-pixel-ratio of the device, the scaling factor"
|
||||
msgstr ""
|
||||
msgstr "Az eszköz eszköz-képpont aránya (dpr), a méretezési tényező"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "dpr"
|
||||
msgstr ""
|
||||
msgstr "dpr"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "The port we will be listening to"
|
||||
msgstr ""
|
||||
msgstr "A port, amelyen figyelni fog"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "number"
|
||||
msgstr ""
|
||||
msgstr "szám"
|
||||
|
||||
#: main.cpp:49
|
||||
#, kde-format
|
||||
@@ -291,10 +290,9 @@ msgid "Desktop Sharing"
|
||||
msgstr "Asztalmegosztó"
|
||||
|
||||
#: main.cpp:96
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "VNC-compatible server to share KDE desktops"
|
||||
#, kde-format
|
||||
msgid "VNC-compatible server to share desktops"
|
||||
msgstr "VNC-kompatibilis szolgáltatás a KDE asztal megosztásához"
|
||||
msgstr "VNC-kompatibilis kiszolgáló asztalmegosztáshoz"
|
||||
|
||||
#: main.cpp:105
|
||||
#, kde-format
|
||||
@@ -317,16 +315,18 @@ msgid ""
|
||||
"Desktop Sharing is not running under an X11 Server or Wayland.\n"
|
||||
"Other display servers are currently not supported."
|
||||
msgstr ""
|
||||
"Az asztalmegosztás nem X11 Server vagy Wayland alatt fut.\n"
|
||||
"Más kijelzőkiszolgálók jelenleg nem támogatottak."
|
||||
|
||||
#: mainwindow.cpp:52
|
||||
#, kde-format
|
||||
msgid "Storing passwords in config file is insecure!"
|
||||
msgstr ""
|
||||
msgstr "A jelszavak tárolása konfigurációs fájlban nem biztonságos!"
|
||||
|
||||
#: mainwindow.cpp:189
|
||||
#, kde-format
|
||||
msgid "Enter a new password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "Adjon meg egy új jelszót a felügyelet nélküli hozzáféréshez"
|
||||
|
||||
#: mainwindow.cpp:200
|
||||
#, kde-format
|
||||
@@ -384,6 +384,12 @@ msgid ""
|
||||
"password, desktop sharing access will be granted without explicit "
|
||||
"confirmation."
|
||||
msgstr ""
|
||||
"Bármely távoli felhasználónak, akinek normál asztali megosztási jelszava "
|
||||
"van, hitelesítenie kell magát.\n"
|
||||
"\n"
|
||||
"Ha a felügyelet nélküli hozzáférés be van kapcsolva, és a távoli felhasználó "
|
||||
"felügyelet nélküli módot biztosító jelszót ad meg, az asztalmegosztási "
|
||||
"hozzáférés kifejezett megerősítés nélkül is biztosított lesz."
|
||||
|
||||
#: mainwindow.cpp:249
|
||||
#, kde-format
|
||||
@@ -398,19 +404,21 @@ msgstr "Biztonság"
|
||||
#: mainwindow.cpp:251
|
||||
#, kde-format
|
||||
msgid "Screen capture"
|
||||
msgstr ""
|
||||
msgstr "Képernyőrögzítés"
|
||||
|
||||
#: mainwindow.cpp:256
|
||||
#, kde-format
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
"A framebuffer bővítmény beállításainak alkalmazásához újra kell indítania a "
|
||||
"programot."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "A távoli felhasználó (%1) sikeresen csatlakozott."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "A(z) %1 távoli felhasználó megszakította a kapcsolatot."
|
||||
@@ -444,14 +452,13 @@ msgstr "Asztalmegosztás - kapcsolódva"
|
||||
#: ui/configframebuffer.ui:14
|
||||
#, kde-format
|
||||
msgid "Framebuffer"
|
||||
msgstr ""
|
||||
msgstr "Framebuffer"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configframebuffer.ui:22
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Preferred Frame Buffer Plugin"
|
||||
#, kde-format
|
||||
msgid "Preferred frameb&uffer plugin:"
|
||||
msgstr "Elsődleges keretpuffer-modul"
|
||||
msgstr "Elsődleges frameb&uffer bővítmény:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, helpText)
|
||||
#: ui/configframebuffer.ui:47
|
||||
@@ -462,6 +469,11 @@ msgid ""
|
||||
"style=\" font-weight:600;\">qt</span> plugin is a safe fallback, if for some "
|
||||
"reason others don't work. But also it is very slow.</p></body></html>"
|
||||
msgstr ""
|
||||
"<html><head/><body><p>Az x11 használatakor az <span style=\" font-weight:600;"
|
||||
"\">xcb</span> bővítmény használata javasolt, mivel nagyobb teljesítményt "
|
||||
"nyújt.<br/>A <span style=\" font-weight:600;\">qt</span> bővítmény egy "
|
||||
"biztonságos tartalék megoldás, ha különböző okokból mások nem működnek. De "
|
||||
"nagyon lassú is.</p></body></html>"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_allowDesktopControl)
|
||||
#: ui/configsecurity.ui:17
|
||||
@@ -473,7 +485,7 @@ msgstr "A távoli felhasználó átveheti az egér és a billentyűzet irányít
|
||||
#: ui/configsecurity.ui:27
|
||||
#, kde-format
|
||||
msgid "Do not store passwords using KDE wallet"
|
||||
msgstr ""
|
||||
msgstr "Ne tárolja a jelszavakat a KDE jelszótároló használatával"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_useDefaultPort)
|
||||
#: ui/configtcp.ui:26
|
||||
@@ -590,6 +602,8 @@ msgid ""
|
||||
"Address required by remote users to connect to your desktop. Click about "
|
||||
"button on the right for more info."
|
||||
msgstr ""
|
||||
"A távoli felhasználók által az asztalához való csatlakozáshoz szükséges cím. "
|
||||
"Kattintson a gombra a jobb oldalon további információkért."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:238
|
||||
@@ -622,6 +636,9 @@ msgid ""
|
||||
"Password required by remote users to connect to your desktop. Click the edit "
|
||||
"button on the right to change password."
|
||||
msgstr ""
|
||||
"A távoli felhasználók által az asztalához való csatlakozáshoz szükséges "
|
||||
"jelszó. Kattintson a szerkesztés gombra a jobb oldalon a jelszó "
|
||||
"módosításához."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:314
|
||||
@@ -637,6 +654,9 @@ msgid ""
|
||||
"Unattended Access allows a remote user with the password to gain control to "
|
||||
"your desktop without your explicit confirmation."
|
||||
msgstr ""
|
||||
"A felügyelet nélküli hozzáférés lehetővé teszi a jelszóval rendelkező távoli "
|
||||
"felhasználó számára, hogy átvegye az irányítást az asztala felett az Ön "
|
||||
"kifejezett megerősítése nélkül."
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, unattendedGroupBox)
|
||||
#: ui/mainwidget.ui:343
|
||||
@@ -652,6 +672,10 @@ msgid ""
|
||||
"your desktop without your explicit confirmation. Click \"About\" button on "
|
||||
"right to know more."
|
||||
msgstr ""
|
||||
"A felügyelet nélküli hozzáférés lehetővé teszi a jelszóval rendelkező távoli "
|
||||
"felhasználó számára, hogy átvegye az irányítást az asztala felett az Ön "
|
||||
"kifejezett megerősítése nélkül. Kattintson a „Névjegy” gombra, ha többet "
|
||||
"szeretne megtudni."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:394
|
||||
@@ -666,6 +690,9 @@ msgid ""
|
||||
"Starts/Stops unattended access to your desktop. Click on button on right to "
|
||||
"change password, and \"About\" button to know more."
|
||||
msgstr ""
|
||||
"Elindítja/leállítja a felügyelet nélküli hozzáférést az asztalához. "
|
||||
"Kattintson a jobb oldali gombra a jelszó megváltoztatásához, és a „Névjegy” "
|
||||
"gombra, ha többet szeretne megtudni."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:440
|
||||
@@ -683,7 +710,7 @@ msgstr "Felügyelet nélküli hozzáférés jelszavának módosítása"
|
||||
#: ui/mainwidget.ui:468
|
||||
#, kde-format
|
||||
msgid "&Change Unattended Password"
|
||||
msgstr ""
|
||||
msgstr "Felügyelet nélküli jelszó &módosítása"
|
||||
|
||||
#~ msgid "Welcome to KDE Desktop Sharing"
|
||||
#~ msgstr "Üdvözöljük a KDE asztalmegosztóban!"
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2021-11-03 14:22+0100\n"
|
||||
"Last-Translator: giovanni <g.sora@tiscali.it>\n"
|
||||
"Language-Team: Interlingua <kde-i18n-doc@kde.org>\n"
|
||||
@@ -52,7 +52,7 @@ msgstr "Connexion acceptate ex %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Connexion recipite ex %1, occupate (pausante per confirmation)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (scriptorio compartite)"
|
||||
@@ -409,12 +409,12 @@ msgstr ""
|
||||
"Per applicar preferentia de plugin de framebuffer, tu necessita restartar le "
|
||||
"programma."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Le usator remote %1 es hora connectite."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Le usator remote %1 es disconnectite."
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2019-07-19 03:20+0700\n"
|
||||
"Last-Translator: Wantoyo <wantoyek@gmail.com>\n"
|
||||
"Language-Team: Indonesian <kde-i18n-doc@kde.org>\n"
|
||||
@@ -51,7 +51,7 @@ msgstr "Koneksi disetujui dari %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Diperoleh koneksi dari %1, masih tertahan (menunggu konfirmasi)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (membagikan desktop)"
|
||||
@@ -407,12 +407,12 @@ msgstr ""
|
||||
"Untuk menerapkan pengaturan plugin framebuffer, Anda perlu memulai ulang "
|
||||
"program."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Pengguna %1 jarak jauh sekarang terkoneksi."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Pengguna %1 jarak jauh terdiskoneksi."
|
||||
|
||||
@@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2010-05-31 12:11+0000\n"
|
||||
"Last-Translator: Sveinn í Felli <sveinki@nett.is>\n"
|
||||
"Language-Team: Icelandic <kde-isl@molar.is>\n"
|
||||
@@ -61,7 +61,7 @@ msgstr "Samþykkti óboðna tengingu frá %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Fékk uppkall frá %1, á bið (bíður eftir staðfestingu)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (miðlað skjáborð)"
|
||||
@@ -414,13 +414,13 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Fjarnotandi hefur lokað tengingunni."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user has closed the connection."
|
||||
msgid "The remote user %1 disconnected."
|
||||
|
||||
@@ -10,7 +10,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2021-11-24 23:35+0100\n"
|
||||
"Last-Translator: Luigi Toscano <luigi.toscano@tiscali.it>\n"
|
||||
"Language-Team: Italian <kde-i18n-it@kde.org>\n"
|
||||
@@ -56,7 +56,7 @@ msgstr "Connessione accettata da %1"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "Ricevuta connessione da %1, fermo (attesa conferma)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (desktop condiviso)"
|
||||
@@ -416,12 +416,12 @@ msgstr ""
|
||||
"Per applicare le impostazioni dell'estensione framebuffer devi riavviare "
|
||||
"l'applicazione."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "L'utente remoto %1 è ora connesso."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "L'utente remoto %1 si è disconnesso."
|
||||
|
||||
@@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2019-09-23 14:21+0900\n"
|
||||
"Last-Translator: Tomohiro Hyakutake <tomhioo@outlook.jp>\n"
|
||||
"Language-Team: Japanese <kde-i18n-doc@kde.org>\n"
|
||||
@@ -20,7 +20,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Lokalize 19.08.1\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Accelerator-Marker: &\n"
|
||||
"X-Text-Markup: kde4\n"
|
||||
|
||||
@@ -60,7 +60,7 @@ msgstr "招待していない %1 からの接続を許可しました"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "%1 から接続要求を受け取りました。保留中です (確認待ち)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (共有されたデスクトップ)"
|
||||
@@ -427,12 +427,12 @@ msgstr ""
|
||||
"フレームバッファ プラグインの変更を適用するには、プログラムの再起動が必要で"
|
||||
"す。"
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "リモートユーザ %1 が接続しました。"
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "The remote user %1 is now connected."
|
||||
msgid "The remote user %1 disconnected."
|
||||
|
||||
181
po/ka/krfb.po
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"PO-Revision-Date: 2022-09-29 08:37+0200\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2023-02-12 06:06+0100\n"
|
||||
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
|
||||
"Language-Team: Georgian <kde-i18n-doc@kde.org>\n"
|
||||
"Language: ka\n"
|
||||
@@ -16,7 +16,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.1.1\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
@@ -36,24 +36,24 @@ msgstr "ახალი შეერთება"
|
||||
#: connectiondialog.cpp:61
|
||||
#, kde-format
|
||||
msgid "Accept Connection"
|
||||
msgstr ""
|
||||
msgstr "შეერთების მიღება"
|
||||
|
||||
#: connectiondialog.cpp:65
|
||||
#, kde-format
|
||||
msgid "Refuse Connection"
|
||||
msgstr ""
|
||||
msgstr "შეერთების უარყოფა"
|
||||
|
||||
#: invitationsrfbclient.cpp:69
|
||||
#, kde-format
|
||||
msgid "Accepted connection from %1"
|
||||
msgstr ""
|
||||
msgstr "%1-დან კავშირი მიღებულია"
|
||||
|
||||
#: invitationsrfbclient.cpp:75
|
||||
#, kde-format
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr ""
|
||||
msgstr "%1-დან მიერთება დაყოვნების რეჟიმშია (ველოდები დასტურს)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (გაზიარებული სამუშაო მაგიდა)"
|
||||
@@ -68,56 +68,56 @@ msgstr "ჩაკეცილად გაშვება"
|
||||
#: krfb.kcfg:15
|
||||
#, kde-format
|
||||
msgid "Use the default port for VNC (5900)"
|
||||
msgstr ""
|
||||
msgstr "VNC-ის ნაგულისხმები პორტის გამოყენება (5900)"
|
||||
|
||||
#. i18n: ectx: label, entry (port), group (TCP)
|
||||
#: krfb.kcfg:19
|
||||
#, kde-format
|
||||
msgid "This is the port on which krfb will listen."
|
||||
msgstr ""
|
||||
msgstr "პორტი, რომელზეც krfb მოუსმენს."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_publishService)
|
||||
#. i18n: ectx: label, entry (publishService), group (TCP)
|
||||
#: krfb.kcfg:23 ui/configtcp.ui:16
|
||||
#, kde-format
|
||||
msgid "Announce the service on the local network"
|
||||
msgstr ""
|
||||
msgstr "სერვისის გამოცხადება ლოკალურ ქსელში"
|
||||
|
||||
#. i18n: ectx: label, entry (noWallet), group (Security)
|
||||
#: krfb.kcfg:29
|
||||
#, kde-format
|
||||
msgid "Do not store passwords in KWallet"
|
||||
msgstr ""
|
||||
msgstr "პაროლები KWallet-ში შენახული არ იქნება"
|
||||
|
||||
#. i18n: ectx: label, entry (allowDesktopControl), group (Security)
|
||||
#: krfb.kcfg:33
|
||||
#, kde-format
|
||||
msgid "Allow remote connections to manage the desktop."
|
||||
msgstr ""
|
||||
msgstr "ამ სამუშაო მაგიდაზე დაშორებული მიერთებების დაშვება."
|
||||
|
||||
#. i18n: ectx: label, entry (allowUnattendedAccess), group (Security)
|
||||
#: krfb.kcfg:37
|
||||
#, kde-format
|
||||
msgid "Allow connections without an invitation."
|
||||
msgstr ""
|
||||
msgstr "მიერთებების მოწვევის გარეშე დადასტურება."
|
||||
|
||||
#. i18n: ectx: label, entry (unattendedAccessPassword), group (Security)
|
||||
#. i18n: ectx: label, entry (desktopSharingPassword), group (Security)
|
||||
#: krfb.kcfg:41 krfb.kcfg:44
|
||||
#, kde-format
|
||||
msgid "Password for uninvited connections."
|
||||
msgstr ""
|
||||
msgstr "პაროლი მოუწვეველი მიერთებებისთვის."
|
||||
|
||||
#. i18n: ectx: label, entry (preferredFrameBufferPlugin), group (FrameBuffer)
|
||||
#: krfb.kcfg:49
|
||||
#, kde-format
|
||||
msgid "Preferred Frame Buffer Plugin"
|
||||
msgstr ""
|
||||
msgstr "კადრების ბაფერის რჩეული დამატება"
|
||||
|
||||
#: main-virtualmonitor.cpp:49
|
||||
#, kde-format
|
||||
msgid "Creating a Virtual Monitor from %1"
|
||||
msgstr ""
|
||||
msgstr "ვირტუალური მონიტორის შექმნა %1-დან"
|
||||
|
||||
#: main-virtualmonitor.cpp:80
|
||||
#, kde-format
|
||||
@@ -127,7 +127,7 @@ msgstr "დაშორებული ვირტუალური ეკრ
|
||||
#: main-virtualmonitor.cpp:82
|
||||
#, kde-format
|
||||
msgid "Offer a Virtual Monitor that can be accessed remotely"
|
||||
msgstr ""
|
||||
msgstr "ვირტუალური მონიტორი, რომელიც დაშორებულად შეიძლება, გამოჩნდეს"
|
||||
|
||||
#: main-virtualmonitor.cpp:84 main.cpp:98
|
||||
#, kde-format
|
||||
@@ -140,6 +140,13 @@ msgid ""
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Boston\n"
|
||||
msgstr ""
|
||||
"(c) 2009-2010, Collabora Ltd.\n"
|
||||
"(c) 2007, Alessandro Praduroux\n"
|
||||
"(c) 2001-2003, Tim Jansen\n"
|
||||
"(c) 2001, Johannes E. Schindelin\n"
|
||||
"(c) 2000-2001, Const Kaplinsky\n"
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Boston\n"
|
||||
|
||||
#: main-virtualmonitor.cpp:91
|
||||
#, kde-format
|
||||
@@ -204,17 +211,17 @@ msgstr "ZLib ენკოდერი"
|
||||
#: main-virtualmonitor.cpp:101 main.cpp:119
|
||||
#, kde-format
|
||||
msgid "AT&T Laboratories Boston"
|
||||
msgstr ""
|
||||
msgstr "AT&T ლაბორატორიები, ბოსტონი"
|
||||
|
||||
#: main-virtualmonitor.cpp:102 main.cpp:120
|
||||
#, kde-format
|
||||
msgid "original VNC encoders and protocol design"
|
||||
msgstr ""
|
||||
msgstr "ორიგინალური VNC ენკონდერები და პროტოკოლის დიზაინი"
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
msgid "Logical resolution of the new monitor"
|
||||
msgstr ""
|
||||
msgstr "ახალი მონიტორის ლოგიკური გაფართოება"
|
||||
|
||||
#: main-virtualmonitor.cpp:108
|
||||
#, kde-format
|
||||
@@ -234,7 +241,7 @@ msgstr "სახელი"
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, kde-format
|
||||
msgid "Password for the client to connect to it"
|
||||
msgstr ""
|
||||
msgstr "პაროლი კლიენტისთვის, რომ შემოუერთდეს"
|
||||
|
||||
#: main-virtualmonitor.cpp:112
|
||||
#, kde-format
|
||||
@@ -244,7 +251,7 @@ msgstr "პაროლი"
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
msgid "The device-pixel-ratio of the device, the scaling factor"
|
||||
msgstr ""
|
||||
msgstr "მოწყობილობის device-pixel-ratio. მასშტაბის კოეფიციენტი"
|
||||
|
||||
#: main-virtualmonitor.cpp:114
|
||||
#, kde-format
|
||||
@@ -254,7 +261,7 @@ msgstr "dpr"
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
msgid "The port we will be listening to"
|
||||
msgstr ""
|
||||
msgstr "მოსასმენი პორტი"
|
||||
|
||||
#: main-virtualmonitor.cpp:116
|
||||
#, kde-format
|
||||
@@ -267,6 +274,8 @@ msgid ""
|
||||
"Your X11 Server does not support the required XTest extension version 2.2. "
|
||||
"Sharing your desktop is not possible."
|
||||
msgstr ""
|
||||
"თქვენს X11 სერვერს აუცილებელი XTest (ვერსია 2.2) გაფართოების მხარდაჭერა არ "
|
||||
"გააჩნია. სამუშაო მაგიდის გაზიარება შეუძლებელია."
|
||||
|
||||
#: main.cpp:51 main.cpp:150
|
||||
#, kde-format
|
||||
@@ -281,7 +290,7 @@ msgstr "სამუშაო მაგიდის გაზიარება"
|
||||
#: main.cpp:96
|
||||
#, kde-format
|
||||
msgid "VNC-compatible server to share desktops"
|
||||
msgstr ""
|
||||
msgstr "VNC-სთან თავსებადი სერვერი სამუშაო მაგიდის გასაზიარებლად"
|
||||
|
||||
#: main.cpp:105
|
||||
#, kde-format
|
||||
@@ -291,12 +300,12 @@ msgstr "George Goldberg"
|
||||
#: main.cpp:106
|
||||
#, kde-format
|
||||
msgid "Telepathy tubes support"
|
||||
msgstr ""
|
||||
msgstr "Telepathy tubes -ის მხარდაჭერა"
|
||||
|
||||
#: main.cpp:126
|
||||
#, kde-format
|
||||
msgid "Do not show the invitations management dialog at startup"
|
||||
msgstr ""
|
||||
msgstr "მოსაწვევების მართვის ფანჯარა გაშვებისას ნაჩვენები არ იქნება"
|
||||
|
||||
#: main.cpp:148
|
||||
#, kde-format
|
||||
@@ -304,16 +313,18 @@ msgid ""
|
||||
"Desktop Sharing is not running under an X11 Server or Wayland.\n"
|
||||
"Other display servers are currently not supported."
|
||||
msgstr ""
|
||||
"სამუშაო მაგიდის გაზიარება X11 სერვერის ან Wayland-ის ქვეშ არაა გაშვებული.\n"
|
||||
"სხვა ეკრანის სერვერები ამჟამად მხარდაჭერილი არაა."
|
||||
|
||||
#: mainwindow.cpp:52
|
||||
#, kde-format
|
||||
msgid "Storing passwords in config file is insecure!"
|
||||
msgstr ""
|
||||
msgstr "პაროლებს კონფიგურაციის ფაილში შენახვა დაცული არაა!"
|
||||
|
||||
#: mainwindow.cpp:189
|
||||
#, kde-format
|
||||
msgid "Enter a new password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "შეიყვანეთ ახალი პაროლი დაუსწრებელი წვდომისთვის"
|
||||
|
||||
#: mainwindow.cpp:200
|
||||
#, kde-format
|
||||
@@ -321,6 +332,8 @@ msgid ""
|
||||
"Failed to start the krfb server. Desktop sharing will not work. Try setting "
|
||||
"another port in the settings and restart krfb."
|
||||
msgstr ""
|
||||
"Krfb სერვერის გაშვების შეცდომა. სამუშაო მაგიდის გაზიარება არ იმუშავებს. "
|
||||
"სცადეთ, სხვა პორტი დააყენოთ და გადატვირთეთ krfb."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, titleLabel)
|
||||
#. i18n: ectx: property (text), widget (QLabel, titleLabel)
|
||||
@@ -329,7 +342,7 @@ msgstr ""
|
||||
#: ui/mainwidget.ui:86 ui/mainwidget.ui:114
|
||||
#, kde-format
|
||||
msgid "KDE Desktop Sharing"
|
||||
msgstr ""
|
||||
msgstr "KDE სამუშაო მაგიდის გაზიარება"
|
||||
|
||||
#: mainwindow.cpp:224
|
||||
#, kde-format
|
||||
@@ -346,6 +359,17 @@ msgid ""
|
||||
"If your computer is behind a firewall it may have a different address or be "
|
||||
"unreachable for other computers."
|
||||
msgstr ""
|
||||
"ეს ფაილი ერთმანეთისგან ორი წერტილით გამოყოფილ თქვენი კომპიუტერის მისამართს "
|
||||
"და პორტს შეიცავს.\n"
|
||||
"\n"
|
||||
"მისამართი უბრალოდ მინიშნებაა - შეგიძლიათ გამოიყენოთ ნებისმიერი მისამართი, "
|
||||
"რომელიც თქვენს კომპიუტერამდე მიდის.\n"
|
||||
"\n"
|
||||
"სამუშაო მაგიდის გაზიარება ეცდება აღმოაჩინოს თქვენი მისამართი ქსელის "
|
||||
"კონფიგურაციიდან, მაგრამ ეს ყოველთვის არ გამოსდის.\n"
|
||||
"\n"
|
||||
"თუ თქვენი კომპიუტერი ბრანდმაუერის უკან იმალება, მისამართი შეიძლება "
|
||||
"განსხვავდებოდეს ან მიუწვდომელი იყოს სხვა კომპიუტერებისთვის."
|
||||
|
||||
#: mainwindow.cpp:231
|
||||
#, kde-format
|
||||
@@ -357,6 +381,11 @@ msgid ""
|
||||
"password, desktop sharing access will be granted without explicit "
|
||||
"confirmation."
|
||||
msgstr ""
|
||||
"ყველა დაშორებულ მომხმარებელს, რომელსაც ნორმალური სამუშაო მაგიდა გააჩნია, "
|
||||
"ვალდებულია, ავთენტიკაცია გაიაროს.\n"
|
||||
"\n"
|
||||
"თუ ჩართულია დაუსწრებელი წვდომა, დაშორებულ მომხმარებელს უპაროლო წვდომა "
|
||||
"გააჩნია, წვდომა დადასტურების გარეშე ექნება."
|
||||
|
||||
#: mainwindow.cpp:249
|
||||
#, kde-format
|
||||
@@ -371,22 +400,24 @@ msgstr "უსაფრთხოება"
|
||||
#: mainwindow.cpp:251
|
||||
#, kde-format
|
||||
msgid "Screen capture"
|
||||
msgstr ""
|
||||
msgstr "ეკრანის გადაღება"
|
||||
|
||||
#: mainwindow.cpp:256
|
||||
#, kde-format
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
"კადრების ბაფერის დამატების პარამეტრის გადასატარებლად საჭიროა გადატვირთოთ "
|
||||
"პროგრამა."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr ""
|
||||
msgstr "დაშორებული მომხმარებელი %1 ახლა მოერთებულია."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr ""
|
||||
msgstr "დაშორებული მომხმარებელი %1 გაითიშა."
|
||||
|
||||
#: trayicon.cpp:56
|
||||
#, kde-format
|
||||
@@ -396,34 +427,34 @@ msgstr "გათიშვა"
|
||||
#: trayicon.cpp:62
|
||||
#, kde-format
|
||||
msgid "Enable Remote Control"
|
||||
msgstr ""
|
||||
msgstr "დაშორებული კონტროლის ჩართვა"
|
||||
|
||||
#: trayicon.cpp:101 trayicon.cpp:133
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - disconnected"
|
||||
msgstr ""
|
||||
msgstr "სამუშაო მაგიდის გაზიარება - გათიშულია"
|
||||
|
||||
#: trayicon.cpp:117 trayicon.cpp:137
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected with %1"
|
||||
msgstr ""
|
||||
msgstr "სამუშაო მაგიდის გაზიარება - მიერთებულია %1-სთან"
|
||||
|
||||
#: trayicon.cpp:120
|
||||
#, kde-format
|
||||
msgid "Desktop Sharing - connected"
|
||||
msgstr ""
|
||||
msgstr "სამუშაო მაგიდის გაზიარება - მიერთებულია"
|
||||
|
||||
#. i18n: ectx: property (windowTitle), widget (QWidget, Framebuffer)
|
||||
#: ui/configframebuffer.ui:14
|
||||
#, kde-format
|
||||
msgid "Framebuffer"
|
||||
msgstr ""
|
||||
msgstr "კადრების ბაფერი"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configframebuffer.ui:22
|
||||
#, kde-format
|
||||
msgid "Preferred frameb&uffer plugin:"
|
||||
msgstr ""
|
||||
msgstr "კადრების &ბუფერის რჩეული დამატება:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, helpText)
|
||||
#: ui/configframebuffer.ui:47
|
||||
@@ -434,30 +465,35 @@ msgid ""
|
||||
"style=\" font-weight:600;\">qt</span> plugin is a safe fallback, if for some "
|
||||
"reason others don't work. But also it is very slow.</p></body></html>"
|
||||
msgstr ""
|
||||
"<html><head/><body><p>თუ x11-ს იყენებთ, სჯობს გამოიყენოთ <span style=\" font-"
|
||||
"weight:600;\">xcb</span> დამატება, რადგან ის საუკეთესო წარმადობას გთავაზობთ."
|
||||
"<br/><span style=\" font-weight:600;\">qt</span>-ის დამატება უსაფრთხოა "
|
||||
"გამოსაყენებლად, თუ სხვა არაფერი იმუშავებს, მაგრამ ის ასევე ძალიან ნელიცაა</"
|
||||
"p></body></html>"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_allowDesktopControl)
|
||||
#: ui/configsecurity.ui:17
|
||||
#, kde-format
|
||||
msgid "Allow remote connections to control your desktop"
|
||||
msgstr ""
|
||||
msgstr "ამ მანქანის დაშორებული მომხმარებლის მიერ კონტროლის უფლების მიცემა"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_noWallet)
|
||||
#: ui/configsecurity.ui:27
|
||||
#, kde-format
|
||||
msgid "Do not store passwords using KDE wallet"
|
||||
msgstr ""
|
||||
msgstr "პაროლები KDE-ის საფულეში არ შეინახება"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, kcfg_useDefaultPort)
|
||||
#: ui/configtcp.ui:26
|
||||
#, kde-format
|
||||
msgid "Use default port"
|
||||
msgstr ""
|
||||
msgstr "ნაგულისხმები პორტის გამოყენება"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, label)
|
||||
#: ui/configtcp.ui:50
|
||||
#, kde-format
|
||||
msgid "Listening port:"
|
||||
msgstr ""
|
||||
msgstr "ვუსმენ პორტს:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, TextLabel5)
|
||||
#: ui/connectionwidget.ui:47
|
||||
@@ -472,18 +508,20 @@ msgid ""
|
||||
"Somebody is requesting a connection to your computer. Granting this will "
|
||||
"allow the remote user to watch your desktop. "
|
||||
msgstr ""
|
||||
"ვიღაც თქვენს კომპიუტერთან მიერთებას მოითხოვს. ამ უფლების მიცემა დაშორებულ "
|
||||
"მომხმარებელს თქვენი სამუშაო მაგიდის ყურების საშუალებას მისცემს. "
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, TextLabel1)
|
||||
#: ui/connectionwidget.ui:102
|
||||
#, kde-format
|
||||
msgid "Remote system:"
|
||||
msgstr ""
|
||||
msgstr "დაშორებული სისტემა:"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, remoteHost)
|
||||
#: ui/connectionwidget.ui:118
|
||||
#, kde-format
|
||||
msgid "123.234.123.234"
|
||||
msgstr ""
|
||||
msgstr "123.234.123.234"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, cbAllowRemoteControl)
|
||||
#: ui/connectionwidget.ui:136
|
||||
@@ -494,12 +532,17 @@ msgid ""
|
||||
"careful. When the option is disabled the remote user can only watch your "
|
||||
"screen."
|
||||
msgstr ""
|
||||
"თუ ამ პარამეტრს ჩართავთ, დაშორებულ მომხმარებლებს შეუძლია თქვენი თაგუნა "
|
||||
"გაამოძრაოს და თქვენი კლავიატურით ისარგებლოს. ეს მათ თქვენს კომპიუტერზე სრულ "
|
||||
"უფლებებს აძლევთ, ასე რომ, ფრთხილად იყავით. როცა ეს პარამეტრი გამორთულია, "
|
||||
"დაშორებულ მომხმარებელს თქვენი ეკრანის უბრალოდ ყურება შეუძლია."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, cbAllowRemoteControl)
|
||||
#: ui/connectionwidget.ui:139
|
||||
#, kde-format
|
||||
msgid "Allow remote user to &control keyboard and mouse"
|
||||
msgstr ""
|
||||
"დაშორებული მომხმარებლისთვის &კლავიატურისა და თაგუნას კონტროლის უფლების მიცემა"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, aboutLabel)
|
||||
#: ui/mainwidget.ui:117
|
||||
@@ -508,36 +551,39 @@ msgid ""
|
||||
"KDE Desktop Sharing allows you to grant permission to someone at a remote "
|
||||
"location for viewing and possibly controlling your desktop."
|
||||
msgstr ""
|
||||
"KDE-ის სამუშაო მაგიდის გაზიარება საშუალებას გაძლევთ ვინმეს, ვინც ამას "
|
||||
"დაშორებული მდებარეობიდან ცდილობს, თქვენი სამუშაო მაგიდის დათვალიერების და "
|
||||
"საჭიროების შემთხვევაში კონტროლის საშუალება მისცეთ."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:145
|
||||
#, kde-format
|
||||
msgid "Starts/Stops Remote Desktop Sharing"
|
||||
msgstr ""
|
||||
msgstr "დაშორებული სამუშაო მაგიდის გაზიარების გაშვება/გაჩერება"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableSharingCheckBox)
|
||||
#: ui/mainwidget.ui:148
|
||||
#, kde-format
|
||||
msgid "&Enable Desktop Sharing"
|
||||
msgstr ""
|
||||
msgstr "სამუშაო მაგიდის გაზიარების &ჩართვა"
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, detailsGroupBox)
|
||||
#: ui/mainwidget.ui:170
|
||||
#, kde-format
|
||||
msgid "Connection Details"
|
||||
msgstr ""
|
||||
msgstr "კავშირის დეტალები"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressLabel)
|
||||
#: ui/mainwidget.ui:193
|
||||
#, kde-format
|
||||
msgid "&Address"
|
||||
msgstr ""
|
||||
msgstr "&მისამართი"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, addressAboutButton)
|
||||
#: ui/mainwidget.ui:214
|
||||
#, kde-format
|
||||
msgid "More about this address"
|
||||
msgstr ""
|
||||
msgstr "მეტი ამ მისამართის შესახებ"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, addressAboutButton)
|
||||
#. i18n: ectx: property (text), widget (QToolButton, unattendedAboutButton)
|
||||
@@ -553,30 +599,32 @@ msgid ""
|
||||
"Address required by remote users to connect to your desktop. Click about "
|
||||
"button on the right for more info."
|
||||
msgstr ""
|
||||
"დაშორებულ მომხმარებლებს თქვენს სამუშაო მაგიდასთან მისაერთებლად მისამართი "
|
||||
"ესაჭიროებათ. მეტი ინფორმაციის მისაღებად \"შესახებ\" ღილაკს დააჭირეთ."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, addressDisplayLabel)
|
||||
#: ui/mainwidget.ui:238
|
||||
#, kde-format
|
||||
msgid "127.0.0.1 : 5900"
|
||||
msgstr ""
|
||||
msgstr "127.0.0.1 : 5900"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordLabel)
|
||||
#: ui/mainwidget.ui:269
|
||||
#, kde-format
|
||||
msgid "&Password"
|
||||
msgstr ""
|
||||
msgstr "&პაროლი"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:290
|
||||
#, kde-format
|
||||
msgid "Edit/Save Desktop Sharing Password"
|
||||
msgstr ""
|
||||
msgstr "სამუშაო მაგიდის გაზიარების პაროლის ჩასწორება/შენახვა"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QToolButton, passwordEditButton)
|
||||
#: ui/mainwidget.ui:293
|
||||
#, kde-format
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "ჩასწორება"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:311
|
||||
@@ -585,12 +633,14 @@ msgid ""
|
||||
"Password required by remote users to connect to your desktop. Click the edit "
|
||||
"button on the right to change password."
|
||||
msgstr ""
|
||||
"დაშორებულ მომხმარებლებს თქვენს სამუშაო მაგიდასთან მისაერთებლად პაროლი "
|
||||
"ესაჭიროება.პაროლის შესაცვლელად მარჯვენა მხარეს ჩასწორების ღილაკს დააჭირეთ."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QLabel, passwordDisplayLabel)
|
||||
#: ui/mainwidget.ui:314
|
||||
#, kde-format
|
||||
msgid "TemporaryPassword"
|
||||
msgstr ""
|
||||
msgstr "დროებითიპაროლი"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QGroupBox, unattendedGroupBox)
|
||||
#. i18n: ectx: property (text), widget (QLabel, unattendedAboutLabel)
|
||||
@@ -600,12 +650,14 @@ msgid ""
|
||||
"Unattended Access allows a remote user with the password to gain control to "
|
||||
"your desktop without your explicit confirmation."
|
||||
msgstr ""
|
||||
"მოუწვეველი წვდომა საშუალებას აძლევს დაშორებულ მომხმარებელს, რომელსაც პაროლი "
|
||||
"გააჩნია, თქვენს კომპიუტერთან წვდომა თქვენი დადასტურების გარეშე მიიღოს."
|
||||
|
||||
#. i18n: ectx: property (title), widget (QGroupBox, unattendedGroupBox)
|
||||
#: ui/mainwidget.ui:343
|
||||
#, kde-format
|
||||
msgid "Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "დაუსწრებელი წვდომა"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QLabel, unattendedAboutLabel)
|
||||
#: ui/mainwidget.ui:375
|
||||
@@ -615,12 +667,15 @@ msgid ""
|
||||
"your desktop without your explicit confirmation. Click \"About\" button on "
|
||||
"right to know more."
|
||||
msgstr ""
|
||||
"მოუწვეველი წვდომა საშუალებას აძლევს დაშორებულ მომხმარებელს, რომელსაც პაროლი "
|
||||
"გააჩნია, თქვენს სამუშაო მაგიდასთან წვდომა თქვენი დადასტურების გარეშე აიღოს. "
|
||||
"მეტის გასაგებად მარჯვენა მხარეს მდებარე ღილაკ \"შესახებ\"-ს დააწექით."
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QToolButton, unattendedAboutButton)
|
||||
#: ui/mainwidget.ui:394
|
||||
#, kde-format
|
||||
msgid "Know more about Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "გაიგეთ მეტი დაუსწრებელი წვდომის შესახებ"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:437
|
||||
@@ -629,21 +684,23 @@ msgid ""
|
||||
"Starts/Stops unattended access to your desktop. Click on button on right to "
|
||||
"change password, and \"About\" button to know more."
|
||||
msgstr ""
|
||||
"თქვენს სამუშაო მაგიდასთან მოუწვეველი წვდომის შეჩერება/გაშვება. პაროლის "
|
||||
"შესაცვლელად დააწექით ღილაკს მარჯვნივ, მეტის გასაგებად კი ღილაკს \"შესახებ\"."
|
||||
|
||||
#. i18n: ectx: property (text), widget (QCheckBox, enableUnattendedCheckBox)
|
||||
#: ui/mainwidget.ui:440
|
||||
#, kde-format
|
||||
msgid "Enable &Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "&დაუსწრებელი წვდომის ჩართვა"
|
||||
|
||||
#. i18n: ectx: property (whatsThis), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:465
|
||||
#, kde-format
|
||||
msgid "Change password for Unattended Access"
|
||||
msgstr ""
|
||||
msgstr "დაუსწრებელი წვდომის პაროლის შეცვლა"
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, unattendedPasswordButton)
|
||||
#: ui/mainwidget.ui:468
|
||||
#, kde-format
|
||||
msgid "&Change Unattended Password"
|
||||
msgstr ""
|
||||
msgstr "&დაუსწრებელი წვდომის პაროლის შეცვლა"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2013-06-27 03:20+0600\n"
|
||||
"Last-Translator: Sairan Kikkarin <sairan@computer.org>\n"
|
||||
"Language-Team: Kazakh <kde-i18n-doc@kde.org>\n"
|
||||
@@ -54,7 +54,7 @@ msgstr "%1 дегеннен қосылым қабылданды"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "%1 дегеннен қосылу сұралып құптауды күтіп тұр"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (ортақ етілген үстел)"
|
||||
@@ -418,12 +418,12 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "Қашықтағы %1 деген пайдаланушы қосылды."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "Қашықтағы %1 деген пайдаланушы ағытылды."
|
||||
|
||||
@@ -4,7 +4,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2010-11-30 10:42+0700\n"
|
||||
"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
|
||||
"Language-Team: Khmer <support@khmeros.info>\n"
|
||||
@@ -51,7 +51,7 @@ msgstr "ព្រមទទួលការតភ្ជាប់ពី %1
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "បានទទួលយកការតភ្ជាប់ពី %1 រង់ចាំ (រង់ចាំការអះអាង)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (ផ្ទៃតុដែលបានចែករំលែក)"
|
||||
@@ -410,12 +410,12 @@ msgstr ""
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr ""
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "អ្នកប្រើពីចម្ងាយ %1 ឥឡូវត្រូវបានតភ្ជាប់ ។"
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "អ្នកប្រើពីចម្ងាយ %1 បានផ្ដាច់ ។"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: krfb\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2022-07-18 00:45+0000\n"
|
||||
"POT-Creation-Date: 2024-01-10 01:34+0000\n"
|
||||
"PO-Revision-Date: 2021-11-12 00:42+0100\n"
|
||||
"Last-Translator: Shinjo Park <kde@peremen.name>\n"
|
||||
"Language-Team: Korean <kde-kr@kde.org>\n"
|
||||
@@ -53,7 +53,7 @@ msgstr "%1의 연결을 수락함"
|
||||
msgid "Received connection from %1, on hold (waiting for confirmation)"
|
||||
msgstr "%1에서 연결 들어옴, 대기 중 (확인 기다리는 중)"
|
||||
|
||||
#: invitationsrfbserver.cpp:55
|
||||
#: invitationsrfbserver.cpp:50
|
||||
#, kde-format
|
||||
msgid "%1@%2 (shared desktop)"
|
||||
msgstr "%1@%2 (공유된 데스크톱)"
|
||||
@@ -404,14 +404,14 @@ msgstr "화면 캡처"
|
||||
#: mainwindow.cpp:256
|
||||
#, kde-format
|
||||
msgid "To apply framebuffer plugin setting, you need to restart the program."
|
||||
msgstr "프레임버퍼 플러그인 설정을 적용하려면 프로그램을 다시 시작해야 합니다."
|
||||
msgstr "프레임버퍼 플러그인 설정을 적용하려면 앱을 다시 시작해야 합니다."
|
||||
|
||||
#: rfbservermanager.cpp:229
|
||||
#: rfbservermanager.cpp:237
|
||||
#, kde-format
|
||||
msgid "The remote user %1 is now connected."
|
||||
msgstr "원격 사용자 %1이(가) 접속했습니다."
|
||||
|
||||
#: rfbservermanager.cpp:243
|
||||
#: rfbservermanager.cpp:251
|
||||
#, kde-format
|
||||
msgid "The remote user %1 disconnected."
|
||||
msgstr "원격 사용자 %1이(가) 연결을 끊었습니다."
|
||||
|
||||