1
mirror of https://invent.kde.org/network/falkon.git synced 2025-09-10 16:47:54 +02:00

Compare commits

..

83 Commits

Author SHA1 Message Date
Heiko Becker
a18f3253b5 GIT_SILENT Update Appstream for new release 2023-06-02 21:42:39 +02:00
Heiko Becker
9cbc08c278 GIT_SILENT Upgrade release service version to 23.04.2. 2023-06-02 20:35:24 +02:00
l10n daemon script
90beb48486 GIT_SILENT Sync po/docbooks with svn 2023-06-02 03:18:05 +00:00
l10n daemon script
78dcbf8166 GIT_SILENT Sync po/docbooks with svn 2023-06-01 03:29:14 +00:00
l10n daemon script
7cdd49720b GIT_SILENT Sync po/docbooks with svn 2023-05-30 04:25:42 +00:00
l10n daemon script
9ba920a796 GIT_SILENT Sync po/docbooks with svn 2023-05-29 03:18:09 +00:00
l10n daemon script
4741bf8e27 GIT_SILENT Sync po/docbooks with svn 2023-05-28 03:37:40 +00:00
l10n daemon script
b05b74ba8d GIT_SILENT Sync po/docbooks with svn 2023-05-27 03:15:36 +00:00
l10n daemon script
31f92232d9 GIT_SILENT Sync po/docbooks with svn 2023-05-25 03:10:42 +00:00
l10n daemon script
477ae65b81 GIT_SILENT Sync po/docbooks with svn 2023-05-24 03:25:55 +00:00
l10n daemon script
02de07f048 GIT_SILENT Sync po/docbooks with svn 2023-05-23 04:59:47 +00:00
l10n daemon script
e6b149211a GIT_SILENT Sync po/docbooks with svn 2023-05-18 03:14:21 +00:00
l10n daemon script
c04344c290 GIT_SILENT Sync po/docbooks with svn 2023-05-17 03:18:36 +00:00
l10n daemon script
a12b91c5a8 GIT_SILENT Sync po/docbooks with svn 2023-05-16 03:30:20 +00:00
l10n daemon script
b1ec6bdacf GIT_SILENT Sync po/docbooks with svn 2023-05-15 03:15:11 +00:00
l10n daemon script
9dad76375c GIT_SILENT Sync po/docbooks with svn 2023-05-14 03:50:08 +00:00
l10n daemon script
21e2139342 GIT_SILENT Sync po/docbooks with svn 2023-05-13 03:15:59 +00:00
l10n daemon script
e4cf532937 GIT_SILENT Sync po/docbooks with svn 2023-05-12 03:19:35 +00:00
l10n daemon script
61f0f76222 GIT_SILENT Sync po/docbooks with svn 2023-05-11 03:15:30 +00:00
l10n daemon script
39cca57b48 GIT_SILENT Sync po/docbooks with svn 2023-05-10 03:22:05 +00:00
l10n daemon script
8125277efa GIT_SILENT Sync po/docbooks with svn 2023-05-09 03:36:01 +00:00
l10n daemon script
f9e8e6fdfc GIT_SILENT Sync po/docbooks with svn 2023-05-08 03:23:48 +00:00
l10n daemon script
a87b2cc1f9 GIT_SILENT made messages (after extraction) 2023-05-07 02:47:36 +00:00
Heiko Becker
14540b1543 GIT_SILENT Update Appstream for new release 2023-05-06 11:10:06 +02:00
Heiko Becker
11fa544123 GIT_SILENT Upgrade release service version to 23.04.1. 2023-05-06 09:54:37 +02:00
l10n daemon script
409fb61fc2 GIT_SILENT Sync po/docbooks with svn 2023-05-06 03:42:03 +00:00
l10n daemon script
3515b5e031 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-05-06 03:35:20 +00:00
l10n daemon script
914146924e GIT_SILENT Sync po/docbooks with svn 2023-05-05 03:55:49 +00:00
l10n daemon script
b7f478a5e6 GIT_SILENT Sync po/docbooks with svn 2023-05-04 03:43:22 +00:00
l10n daemon script
24280bbffc GIT_SILENT Sync po/docbooks with svn 2023-05-01 04:01:29 +00:00
l10n daemon script
7a0b30c4c3 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-05-01 03:51:12 +00:00
l10n daemon script
e585fb2872 GIT_SILENT Sync po/docbooks with svn 2023-04-30 05:19:39 +00:00
l10n daemon script
7c556aaf9c GIT_SILENT Sync po/docbooks with svn 2023-04-28 03:23:14 +00:00
l10n daemon script
ce262cfe4b GIT_SILENT Sync po/docbooks with svn 2023-04-24 04:08:24 +00:00
l10n daemon script
d480e79f3a GIT_SILENT Sync po/docbooks with svn 2023-04-23 05:15:34 +00:00
l10n daemon script
25851b0ca7 GIT_SILENT Sync po/docbooks with svn 2023-04-22 03:55:57 +00:00
l10n daemon script
a46587adee GIT_SILENT Sync po/docbooks with svn 2023-04-20 03:45:11 +00:00
l10n daemon script
c4f6386b79 GIT_SILENT Sync po/docbooks with svn 2023-04-19 03:38:23 +00:00
l10n daemon script
098cb4fc45 GIT_SILENT Sync po/docbooks with svn 2023-04-18 03:28:54 +00:00
l10n daemon script
964625df7f GIT_SILENT Sync po/docbooks with svn 2023-04-17 05:02:31 +00:00
l10n daemon script
12dec88d19 GIT_SILENT Sync po/docbooks with svn 2023-04-15 03:37:14 +00:00
Heiko Becker
b40cc93f34 GIT_SILENT Update Appstream for new release 2023-04-12 19:02:35 +02:00
Heiko Becker
165d64e63f GIT_SILENT Upgrade release service version to 23.04.0. 2023-04-12 17:54:36 +02:00
l10n daemon script
bfce0e3133 GIT_SILENT Sync po/docbooks with svn 2023-04-12 03:32:05 +00:00
l10n daemon script
799b862657 GIT_SILENT Sync po/docbooks with svn 2023-04-11 04:28:18 +00:00
l10n daemon script
fba17bc996 GIT_SILENT Sync po/docbooks with svn 2023-04-10 03:18:17 +00:00
bb533f47c0
Fix: Folder disappears when moving it onto itself
Happens on BookmarksToolbar.

BUG: 462891
FIXED-IN: 23.04.0

Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-04-09 20:12:48 +02:00
06d9b5f204
BookmarkToolbar: Fix crash when adding a folder
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-04-09 16:09:31 +02:00
5dd9599fce
Addressbar use default search engine by default
BUG: 405423
FIXED-IN: 23.04.0

Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-04-09 11:31:26 +02:00
l10n daemon script
55838c2917 GIT_SILENT Sync po/docbooks with svn 2023-04-09 03:29:53 +00:00
3b8c69684c
KDE: Hide purpose missing QJsonValue error
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-04-07 01:08:04 +02:00
l10n daemon script
c197cab876 GIT_SILENT Sync po/docbooks with svn 2023-04-06 03:15:02 +00:00
l10n daemon script
dfbd9fe1e3 GIT_SILENT Sync po/docbooks with svn 2023-04-05 03:38:04 +00:00
l10n daemon script
ced602d194 GIT_SILENT Sync po/docbooks with svn 2023-04-04 03:38:47 +00:00
l10n daemon script
bd75ec2089 GIT_SILENT Sync po/docbooks with svn 2023-04-03 03:28:13 +00:00
c1ac4bcc35
VerticalTabs: Add dark theme support on group page
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-04-02 23:13:30 +02:00
l10n daemon script
8a47ee45fd GIT_SILENT Sync po/docbooks with svn 2023-04-02 03:23:09 +00:00
l10n daemon script
1dfb66b34f GIT_SILENT Sync po/docbooks with svn 2023-04-01 03:28:14 +00:00
l10n daemon script
d2bf966edc GIT_SILENT Sync po/docbooks with svn 2023-03-31 03:37:22 +00:00
Albert Astals Cid
329e05f679 GIT_SILENT Upgrade release service version to 23.03.90. 2023-03-30 22:14:45 +02:00
l10n daemon script
964c10333b GIT_SILENT Sync po/docbooks with svn 2023-03-30 03:28:34 +00:00
l10n daemon script
65c159cf77 GIT_SILENT Sync po/docbooks with svn 2023-03-29 03:34:08 +00:00
l10n daemon script
cc851976d6 GIT_SILENT Sync po/docbooks with svn 2023-03-28 04:32:29 +00:00
ac8091d72d
AdBlock: Clean known subscriptions list
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-03-27 21:44:31 +02:00
l10n daemon script
e265a810ab GIT_SILENT Sync po/docbooks with svn 2023-03-27 05:35:26 +00:00
66572867d4
AdBlock: Workaround for "Blocked content" page
- QtWebEngine blocks redirection to "data:" urls.
- Includes light / dark style

Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-03-27 00:59:58 +02:00
ac5c280cf4
Update CHANGELOG
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-03-25 03:25:51 +01:00
74cfccd69d
History: Don't delete all items under dates when filtering
BUG: 466936
FIXED-IN: 23.04.0

Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-03-25 03:15:29 +01:00
l10n daemon script
4926c7208c GIT_SILENT Sync po/docbooks with svn 2023-03-23 04:02:50 +00:00
l10n daemon script
ac7e255fa5 GIT_SILENT Sync po/docbooks with svn 2023-03-18 03:56:29 +00:00
l10n daemon script
a106859825 GIT_SILENT Sync po/docbooks with svn 2023-03-17 04:02:08 +00:00
l10n daemon script
19ce2c9326 GIT_SILENT Sync po/docbooks with svn 2023-03-15 03:36:04 +00:00
l10n daemon script
223778c87f GIT_SILENT Sync po/docbooks with svn 2023-03-14 03:38:07 +00:00
l10n daemon script
8df65c527d GIT_SILENT Sync po/docbooks with svn 2023-03-13 03:52:31 +00:00
7f7955cfcf
KWallet - Also store the entry updated time
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-03-12 23:03:51 +01:00
053978fca5
KWallet - Remove trailing return
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-03-12 23:03:51 +01:00
261bef6d65
KWallet: Store passwords entries in map fortmat
BUG: 391298
FIXED-IN: 23.04.0

Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-03-12 23:03:51 +01:00
l10n daemon script
daf01ad625 GIT_SILENT Sync po/docbooks with svn 2023-03-12 18:03:43 +00:00
l10n daemon script
ba3c982b02 GIT_SILENT Sync po/docbooks with svn 2023-03-12 15:27:25 +00:00
l10n daemon script
1e64c1bf56 GIT_SILENT Sync po/docbooks with svn 2023-03-12 06:13:26 +00:00
34deed1b71
PyFalkon: addBookmark - make C++ own parameters
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
2023-03-12 01:37:38 +01:00
l10n daemon script
0e6478c3ff GIT_SILENT Sync po/docbooks with svn 2023-03-11 05:14:04 +00:00
Albert Astals Cid
5306fc775c GIT_SILENT Upgrade release service version to 23.03.80. 2023-03-10 20:57:52 +01:00
1135 changed files with 63839 additions and 147565 deletions

View File

@ -1,35 +1,23 @@
{
"id": "org.kde.falkon",
"runtime": "org.kde.Platform",
"runtime-version": "6.9",
"runtime-version": "5.15-22.08",
"base": "io.qt.qtwebengine.BaseApp",
"base-version": "6.9",
"base-version": "5.15-22.08",
"sdk": "org.kde.Sdk",
"command": "falkon",
"rename-icon": "falkon",
"finish-args": [
"--device=dri",
"--own-name=org.mpris.MediaPlayer2.falkon.*",
"--share=ipc",
"--share=network",
"--socket=fallback-x11",
"--socket=pulseaudio",
"--socket=wayland",
"--socket=pulseaudio",
"--device=dri",
"--system-talk-name=org.freedesktop.GeoClue2",
"--system-talk-name=org.freedesktop.UPower.*",
"--talk-name=org.freedesktop.Notifications",
"--talk-name=org.kde.kwalletd5",
"--talk-name=org.kde.kwalletd6"
],
"cleanup": [
"/cleanup-BaseApp.sh",
"/include",
"/lib/*/cmake",
"/lib/*/pkgconfig",
"/lib/cmake",
"/lib/pkgconfig",
"/mkspecs",
"/share/app-info"
"--own-name=org.mpris.MediaPlayer2.falkon.*"
],
"modules": [
{

View File

@ -1,17 +1,4 @@
# SPDX-FileCopyrightText: None
# SPDX-License-Identifier: CC0-1.0
include:
- project: sysadmin/ci-utilities
file:
- /gitlab-templates/linux-qt6.yml
- /gitlab-templates/linux-qt6-next.yml
- /gitlab-templates/freebsd-qt6.yml
- /gitlab-templates/flatpak.yml
- /gitlab-templates/windows-qt6.yml
- /gitlab-templates/craft-windows-x86-64-qt6.yml
# Blocked - copied from tokodon
# - /gitlab-templates/reuse-lint.yml
# - /gitlab-templates/android-qt6.yml
# - /gitlab-templates/craft-android-qt6-apks.yml
- 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
- https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/flatpak.yml

View File

@ -4,10 +4,11 @@
Dependencies:
- 'on': ['@all']
'require':
'frameworks/karchive': '@latest-kf6'
'frameworks/kwallet': '@latest-kf6'
'frameworks/ki18n': '@latest-kf6'
'frameworks/kio': '@latest-kf6'
'frameworks/kcrash': '@latest-kf6'
'frameworks/kcoreaddons': '@latest-kf6'
'frameworks/purpose': '@latest-kf6'
'frameworks/karchive': '@stable'
'frameworks/kwallet': '@stable'
'frameworks/ki18n': '@stable'
'frameworks/kio': '@stable'
'frameworks/kcrash': '@stable'
'frameworks/kcoreaddons': '@stable'
'frameworks/purpose': '@stable'

View File

@ -1,88 +1,3 @@
Version 25.08.0
* Add permission management for unknown protocols (BUG: 425785)
* Fix build issues with Qt6 and add CI build for MS Windows (By Thomas Friedrichsmeier)
* DownloadManager: Fix small quick download keeping a download running forever
* Mark appId with current profile name (BUG: 439190)
* Remove top margin from tabbar (BUG: 445419)
* Update UserAgents (BUG: 505287)
* UserAgentDialog: Use QUrl::host on user URL input (BUG: 497223)
* Add webpage background color customization
* Add certificate information into SSL error dialog (BUG: 505141)
* Port away from Qt6Core5Compat
Version 25.04.1
* Fix crash when creating bookmarks toolbar. (BUG: 501535)
* Fix editing SiteSettings and Cookies permissions
* Wayland: Fix issue that location bar can't use input methods when locationcompleterview popups (by Signal Kirigami)
* Wayland: Fix tooltip in tabbar (by Signal Kirigami)
Version 25.04.0
* Add input method hints to input fields
* Adblock: Add support for "rewrite" filter
* Adblock: Add support for remove rule with simple CSS selector
* AdBlock: Ignore inactive hiding rules
* Adblock: Add support for "websocket" option
* AdblockDialog: Rewrite the treeview backend
* AdblockDialog: Apply filter when tab changes
* Show the URL of bookmark and history items in statusbar when hovered over in the menu or sidebar (BUG: 448238)
* Add option to block automatic popups
* Use global settings for WebRTC on internal pages (BUG: 497842)
* VerticalTabs: Override Alt+NUMBER keyboard shortcut
* StatusBarIcon-Network: Restore online status detection
* Open all URLs in command line arguments (BUG: 413195, Original author: abogical (Abdel-Rahman))
* Remove obsolete XSS Auditing option, has no effect
* CookieManager: Fix crash when removing while/black list items
* Add "Preffer color scheme" option (BUG: 439891, 497331)
* Preferences: Fix editing per site user agent
* Use angle backend for GPU acceleration on Qt 6.9+ (BUG: 497691)
* Add missing default SiteSettings for intenal pages (BUG: 497463)
* Add option to add site permissions in preferences (BUG: 495391)
* KDEIntegration: Fix KIO scheme handler (BUG: 491247)
* Random fixes
Version 24.12.0
* Do not advertise ftp support to the system (BUG: 494222)
* GreaseMonkey: Add support for context menu (BUG: 469855)
* GreaseMonkey: Check content type of url *.user.js (BUG: 467459)
* VerticalTabs: Fix tab switching with mouse wheel (BUG: 394066)
* VerticalTabs: Arrange pinned tabs vertically (BUG: 452818)
* Set security icon according to certificate error. (BUG: 420902)
* Preferences: Fix crash when un/loading of plugins (BUG: 492023)
* Fix printing to real CUPS printer (BUG: 497051)
* Random fixes
Version 24.08.0
* Add site permissions
* Enable WebInspector with disabled JavaScript (BUG: 462887)
* Random fixes
Version 24.05.0
* Translation updates only
Version 24.02.0
* Port from Qt5 to Qt6
Version 23.08.5
* SpeedDial: Fix tooltip text on the Realod button
* History: Store addresses with custom allowed schemes (BUG: 406375)
* TabBar: Fix the state of tab bar after window restore (BUG: 478823)
* Enable localStorage for private browsing (BUG: 393677, by Martin Rodriguez Reboredo)
Version 23.08.4
* Fix crash when starting new session after crash (BUG: 408701)
* Fix Startpage search engine default configuration (BUG: 419530)
* CLI option "--help-all" now works (BUG: 477492)
Version 23.08.0
* A bit faster restoring of session with a lot of tabs
* Add support for custom URI schemes (BUG: 434099)
* Add CMake option "BUILD_PYTHON_SUPPORT" to enable/disable Python support
* Add zoom indicator to the addressbar (BUG: 399001)
* Add an option to expand addresbBar suggestion popup to the window width
* Implement a GUI for managing ignored SSL hosts (by Javier Llorente)
* Add KDE branding bookmarks and speeddial entries (By Javier Llorente)
* Implement download integration with Plasma (By Javier Llorente)
Version 23.04.0
* Look for spellchecking dictionaries at location specified by QTWEBENGINE_DICTIONARIES_PATH environment variable
* Show QtWebEngine version on Falkon Config page

View File

@ -2,21 +2,17 @@
cmake_minimum_required(VERSION 3.18)
# KDE Gear Version, managed by release script
set(RELEASE_SERVICE_VERSION_MAJOR "25")
set(RELEASE_SERVICE_VERSION_MINOR "11")
set(RELEASE_SERVICE_VERSION_MICRO "70")
set(RELEASE_SERVICE_VERSION_MAJOR "23")
set(RELEASE_SERVICE_VERSION_MINOR "04")
set(RELEASE_SERVICE_VERSION_MICRO "2")
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
# Project name and version
project(Falkon VERSION ${RELEASE_SERVICE_VERSION})
set(KF_MAJOR_VERSION "6")
set(QT_MIN_VERSION "6.4.0")
set(KF_MIN_VERSION "5.240.0")
# Find ECM, with nice error handling in case of failure
include(FeatureSummary)
find_package(ECM ${KF_MIN_VERSION} CONFIG)
find_package(ECM 5.78.0 CONFIG)
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://invent.kde.org/frameworks/extra-cmake-modules")
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
@ -53,27 +49,26 @@ endif()
# Defines that are always set
add_definitions(-DQT_NO_URL_CAST_FROM_STRING -DQT_USE_QSTRINGBUILDER -DQT_NO_CAST_TO_ASCII)
# Mandatory: Qt6
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Widgets Network Sql QuickWidgets PrintSupport WebChannel)
if(Qt6Network_VERSION VERSION_GREATER_EQUAL "6.9.0")
find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED NetworkPrivate)
endif()
find_package(Qt6WebEngineCore ${QT_MIN_VERSION} REQUIRED)
find_package(Qt6WebEngineWidgets ${QT_MIN_VERSION} REQUIRED)
# Mandatory: Qt5
set(QT_MIN_VERSION "5.15.0")
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Widgets Network Sql QuickWidgets PrintSupport WebChannel)
find_package(Qt5WebEngine ${QT_MIN_VERSION} REQUIRED)
find_package(Qt5WebEngineWidgets ${QT_MIN_VERSION} REQUIRED)
if (BUILD_TESTING)
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Test)
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Test)
endif()
if (NOT DISABLE_DBUS)
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS DBus)
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS DBus)
endif()
if (UNIX AND NOT APPLE AND NOT NO_X11)
add_definitions(-DQZ_WS_X11)
find_package(XCB REQUIRED COMPONENTS XCB UTIL)
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS X11Extras)
endif()
if (WIN32)
add_definitions(-DW7API)
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS WinExtras)
# taken from https://stackoverflow.com/a/40217291
macro(get_WIN32_WINNT version)
@ -101,12 +96,12 @@ endif()
# Mandatory: OpenSSL
find_package(OpenSSL REQUIRED)
# Mandatory: KF6
find_package(KF6 REQUIRED COMPONENTS Archive)
# Mandatory: KF5
find_package(KF5 REQUIRED COMPONENTS Archive)
# KF5I18n: Mandatory with downloaded translations (only for ki18n_install)
if (EXISTS "${CMAKE_SOURCE_DIR}/po")
find_package(KF6I18n REQUIRED)
find_package(KF5I18n REQUIRED)
endif()
# Optional: GnomeKeyring
@ -119,37 +114,31 @@ if (PKG_CONFIG_FOUND)
endif()
# Optional: KWallet, KIO, KCrash, KCoreAddons
find_package(KF6Wallet ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6Wallet PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF6KIO ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6KIO PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF6Crash ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6Crash PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF6CoreAddons ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6CoreAddons PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF6Purpose ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6Purpose PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF6JobWidgets ${KF_MIN_VERSION} CONFIG)
set_package_properties(KF6JobWidgets PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
if (KF6Wallet_FOUND AND KF6KIO_FOUND AND KF6Crash_FOUND AND KF6CoreAddons_FOUND AND KF6Purpose_FOUND AND KF6JobWidgets_FOUND AND NOT WIN32)
set(KF5_MIN_VERSION "5.78.0")
find_package(KF5Wallet ${KF5_MIN_VERSION} CONFIG)
set_package_properties(KF5Wallet PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF5KIO ${KF5_MIN_VERSION} CONFIG)
set_package_properties(KF5KIO PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF5Crash ${KF5_MIN_VERSION} CONFIG)
set_package_properties(KF5Crash PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF5CoreAddons ${KF5_MIN_VERSION} CONFIG)
set_package_properties(KF5CoreAddons PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
find_package(KF5Purpose ${KF5_MIN_VERSION} CONFIG)
set_package_properties(KF5Purpose PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL)
if (KF5Wallet_FOUND AND KF5KIO_FOUND AND KF5Crash_FOUND AND KF5CoreAddons_FOUND AND KF5Purpose_FOUND)
set(ENABLE_KDE_FRAMEWORKS_INTEGRATION_PLUGIN TRUE)
endif()
# Optional: PySide6
option(BUILD_PYTHON_SUPPORT "Support for Python plugins" ON)
if (BUILD_PYTHON_SUPPORT)
# Optional: PySide2
find_package(PySide2 "2.0.0")
find_package(Shiboken2 "2.0.0")
find_package(Python3 COMPONENTS Development)
find_package(PySide6 "6.4.0")
find_package(Shiboken6 "6.4.0")
find_package(Shiboken6Tools "6.4.0")
set_package_properties(PySide2 PROPERTIES DESCRIPTION "Python plugins" TYPE OPTIONAL)
set_package_properties(Shiboken2 PROPERTIES DESCRIPTION "Python plugins" TYPE OPTIONAL)
set_package_properties(Python3 PROPERTIES DESCRIPTION "Python plugins" TYPE OPTIONAL)
set_package_properties(PySide6 PROPERTIES DESCRIPTION "Python plugins" TYPE OPTIONAL)
set_package_properties(Shiboken6 PROPERTIES DESCRIPTION "Python plugins" TYPE OPTIONAL)
set_package_properties(Shiboken6Tools PROPERTIES DESCRIPTION "Python plugins" TYPE OPTIONAL)
if (PySide6_FOUND AND Shiboken6_FOUND AND Shiboken6Tools_FOUND AND Python3_FOUND)
if (PySide2_FOUND AND Shiboken2_FOUND AND Python3_FOUND)
set(ENABLE_PYTHON_PLUGINS TRUE)
endif()
endif()
find_package(Intl)
if (Intl_FOUND)

View File

@ -23,7 +23,6 @@ falkon_tests(
webviewtest
webtabtest
sqldatabasetest
sitesettingstest
)
set(falkon_autotests_SRCS ${CMAKE_SOURCE_DIR}/tests/modeltest/modeltest.cpp)

View File

@ -33,8 +33,7 @@ void DatabasePasswordBackendTest::init()
db.setDatabaseName(QSL(":memory:"));
db.open();
QSqlQuery query(db);
query.exec(QSL("CREATE TABLE autofill (data TEXT, id INTEGER PRIMARY KEY, password TEXT,"
db.exec(QSL("CREATE TABLE autofill (data TEXT, id INTEGER PRIMARY KEY, password TEXT,"
"server TEXT, username TEXT, last_used NUMERIC)"));
}

View File

@ -49,82 +49,82 @@ void LocationBarTest::loadActionBasicTest()
{
LocationBar::LoadAction action;
action = LocationBar::loadAction(QSL("http://kde.org"));
action = LocationBar::loadAction("http://kde.org");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://kde.org")));
QCOMPARE(action.loadRequest.url(), QUrl("http://kde.org"));
action = LocationBar::loadAction(QSL("kde.org"));
action = LocationBar::loadAction("kde.org");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://kde.org")));
QCOMPARE(action.loadRequest.url(), QUrl("http://kde.org"));
action = LocationBar::loadAction(QSL("localhost"));
action = LocationBar::loadAction("localhost");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://localhost")));
QCOMPARE(action.loadRequest.url(), QUrl("http://localhost"));
action = LocationBar::loadAction(QSL("localhost/test/path?x=2"));
action = LocationBar::loadAction("localhost/test/path?x=2");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://localhost/test/path?x=2")));
QCOMPARE(action.loadRequest.url(), QUrl("http://localhost/test/path?x=2"));
action = LocationBar::loadAction(QSL("host.com/test/path?x=2"));
action = LocationBar::loadAction("host.com/test/path?x=2");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://host.com/test/path?x=2")));
QCOMPARE(action.loadRequest.url(), QUrl("http://host.com/test/path?x=2"));
action = LocationBar::loadAction(QSL("not-url"));
action = LocationBar::loadAction("not-url");
QCOMPARE(action.type, LocationBar::LoadAction::Search);
action = LocationBar::loadAction(QSL("not url with spaces"));
action = LocationBar::loadAction("not url with spaces");
QCOMPARE(action.type, LocationBar::LoadAction::Search);
action = LocationBar::loadAction(QSL("falkon:about"));
action = LocationBar::loadAction("falkon:about");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("falkon:about")));
QCOMPARE(action.loadRequest.url(), QUrl("falkon:about"));
}
void LocationBarTest::loadActionBookmarksTest()
{
auto* bookmark = new BookmarkItem(BookmarkItem::Url);
bookmark->setTitle(QSL("KDE Bookmark title"));
bookmark->setUrl(QUrl(QSL("http://kde.org")));
bookmark->setKeyword(QSL("kde-bookmark"));
bookmark->setTitle("KDE Bookmark title");
bookmark->setUrl(QUrl("http://kde.org"));
bookmark->setKeyword("kde-bookmark");
mApp->bookmarks()->addBookmark(mApp->bookmarks()->unsortedFolder(), bookmark);
LocationBar::LoadAction action;
action = LocationBar::loadAction(QSL("http://kde.org"));
action = LocationBar::loadAction("http://kde.org");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://kde.org")));
QCOMPARE(action.loadRequest.url(), QUrl("http://kde.org"));
action = LocationBar::loadAction(QSL("kde-bookmark-notkeyword"));
action = LocationBar::loadAction("kde-bookmark-notkeyword");
QCOMPARE(action.type, LocationBar::LoadAction::Search);
action = LocationBar::loadAction(QSL("kde-bookmark"));
action = LocationBar::loadAction("kde-bookmark");
QCOMPARE(action.type, LocationBar::LoadAction::Bookmark);
QCOMPARE(action.bookmark, bookmark);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://kde.org")));
QCOMPARE(action.loadRequest.url(), QUrl("http://kde.org"));
}
void LocationBarTest::loadActionSearchTest()
{
SearchEngine engine;
engine.name = QSL("Test Engine");
engine.url = QSL("http://test/%s");
engine.shortcut = QSL("t");
engine.name = "Test Engine";
engine.url = "http://test/%s";
engine.shortcut = "t";
mApp->searchEnginesManager()->addEngine(engine);
mApp->searchEnginesManager()->setDefaultEngine(engine);
mApp->searchEnginesManager()->setActiveEngine(engine);
LocationBar::LoadAction action;
action = LocationBar::loadAction(QSL("search term"));
action = LocationBar::loadAction("search term");
QCOMPARE(action.type, LocationBar::LoadAction::Search);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://test/search%20term")));
QCOMPARE(action.loadRequest.url(), QUrl("http://test/search%20term"));
action = LocationBar::loadAction(QSL("t search term"));
action = LocationBar::loadAction("t search term");
QCOMPARE(action.type, LocationBar::LoadAction::Search);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://test/search%20term")));
QCOMPARE(action.loadRequest.url(), QUrl("http://test/search%20term"));
action = LocationBar::loadAction(QSL(" ttt-notsearch"));
action = LocationBar::loadAction(" ttt-notsearch");
QCOMPARE(action.type, LocationBar::LoadAction::Search);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://test/ttt-notsearch")));
QCOMPARE(action.loadRequest.url(), QUrl("http://test/ttt-notsearch"));
}
void LocationBarTest::loadAction_kdebug389491()
@ -132,54 +132,54 @@ void LocationBarTest::loadAction_kdebug389491()
// "site:website.com searchterm" and "link:website.com" are loaded instead of searched
SearchEngine engine;
engine.name = QSL("Test Engine");
engine.url = QSL("http://test/%s");
engine.shortcut = QSL("t");
engine.name = "Test Engine";
engine.url = "http://test/%s";
engine.shortcut = "t";
mApp->searchEnginesManager()->addEngine(engine);
mApp->searchEnginesManager()->setActiveEngine(engine);
LocationBar::LoadAction action;
action = LocationBar::loadAction(QSL("site:website.com searchterm"));
action = LocationBar::loadAction("site:website.com searchterm");
QCOMPARE(action.type, LocationBar::LoadAction::Search);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://test/site%3Awebsite.com%20searchterm")));
QCOMPARE(action.loadRequest.url(), QUrl("http://test/site%3Awebsite.com%20searchterm"));
action = LocationBar::loadAction(QSL("link:website.com"));
action = LocationBar::loadAction("link:website.com");
QCOMPARE(action.type, LocationBar::LoadAction::Search);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://test/link%3Awebsite.com")));
QCOMPARE(action.loadRequest.url(), QUrl("http://test/link%3Awebsite.com"));
action = LocationBar::loadAction(QSL("http://website.com?search=searchterm and another"));
action = LocationBar::loadAction("http://website.com?search=searchterm and another");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://website.com?search=searchterm and another")));
QCOMPARE(action.loadRequest.url(), QUrl("http://website.com?search=searchterm and another"));
}
void LocationBarTest::loadActionSpecialSchemesTest()
{
LocationBar::LoadAction action;
action = LocationBar::loadAction(QSL("data:image/png;base64,xxxxx"));
action = LocationBar::loadAction("data:image/png;base64,xxxxx");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("data:image/png;base64,xxxxx")));
QCOMPARE(action.loadRequest.url(), QUrl("data:image/png;base64,xxxxx"));
action = LocationBar::loadAction(QSL("falkon:about"));
action = LocationBar::loadAction("falkon:about");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("falkon:about")));
QCOMPARE(action.loadRequest.url(), QUrl("falkon:about"));
action = LocationBar::loadAction(QSL("file:test.html"));
action = LocationBar::loadAction("file:test.html");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("file:test.html")));
QCOMPARE(action.loadRequest.url(), QUrl("file:test.html"));
action = LocationBar::loadAction(QSL("about:blank"));
action = LocationBar::loadAction("about:blank");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("about:blank")));
QCOMPARE(action.loadRequest.url(), QUrl("about:blank"));
action = LocationBar::loadAction(QSL("javascript:test"));
action = LocationBar::loadAction("javascript:test");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("javascript:test")));
QCOMPARE(action.loadRequest.url(), QUrl("javascript:test"));
action = LocationBar::loadAction(QSL("javascript:alert(' test ');"));
action = LocationBar::loadAction("javascript:alert(' test ');");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("javascript:alert('%20test%20');")));
QCOMPARE(action.loadRequest.url(), QUrl("javascript:alert('%20test%20');"));
}
void LocationBarTest::loadAction_issue2578()
@ -190,27 +190,27 @@ void LocationBarTest::loadAction_issue2578()
LocationBar::LoadAction action;
action = LocationBar::loadAction(QSL("github.com"));
action = LocationBar::loadAction("github.com");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://github.com")));
QCOMPARE(action.loadRequest.url(), QUrl("http://github.com"));
action = LocationBar::loadAction(QSL("github"));
action = LocationBar::loadAction("github");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://github")));
QCOMPARE(action.loadRequest.url(), QUrl("http://github"));
action = LocationBar::loadAction(QSL("github/test/path"));
action = LocationBar::loadAction("github/test/path");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://github/test/path")));
QCOMPARE(action.loadRequest.url(), QUrl("http://github/test/path"));
action = LocationBar::loadAction(QSL("localhost"));
action = LocationBar::loadAction("localhost");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://localhost")));
QCOMPARE(action.loadRequest.url(), QUrl("http://localhost"));
action = LocationBar::loadAction(QSL("localhost/test/path"));
action = LocationBar::loadAction("localhost/test/path");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://localhost/test/path")));
QCOMPARE(action.loadRequest.url(), QUrl("http://localhost/test/path"));
action = LocationBar::loadAction(QSL("github.com foo bar"));
action = LocationBar::loadAction("github.com foo bar");
QCOMPARE(action.type, LocationBar::LoadAction::Invalid);
}
@ -222,9 +222,9 @@ void LocationBarTest::loadAction_kdebug392445()
LocationBar::LoadAction action;
action = LocationBar::loadAction(QSL("http://www.example.com/my%20beautiful%20page"));
action = LocationBar::loadAction("http://www.example.com/my%20beautiful%20page");
QCOMPARE(action.type, LocationBar::LoadAction::Url);
QCOMPARE(action.loadRequest.url(), QUrl(QSL("http://www.example.com/my%20beautiful%20page")));
QCOMPARE(action.loadRequest.url(), QUrl("http://www.example.com/my%20beautiful%20page"));
}
FALKONTEST_MAIN(LocationBarTest)

View File

@ -72,7 +72,7 @@ void PasswordBackendTest::cleanupTestCase()
cleanup();
reloadBackend();
for (const PasswordEntry &entry : std::as_const(m_entries)) {
foreach (const PasswordEntry &entry, m_entries) {
m_backend->addEntry(entry);
}
}

View File

@ -31,16 +31,16 @@ void QmlBookmarksApiTest::cleanupTestCase()
void QmlBookmarksApiTest::testBookmarkTreeNodeType()
{
auto type = BookmarkItem::Type(m_testHelper.evaluate(QSL("Falkon.Bookmarks.rootItem().type")).toInt());
auto type = BookmarkItem::Type(m_testHelper.evaluate("Falkon.Bookmarks.rootItem().type").toInt());
QCOMPARE(mApp->bookmarks()->rootItem()->type(), type);
type = BookmarkItem::Type(m_testHelper.evaluate(QSL("Falkon.Bookmarks.toolbarFolder().type")).toInt());
type = BookmarkItem::Type(m_testHelper.evaluate("Falkon.Bookmarks.toolbarFolder().type").toInt());
QCOMPARE(mApp->bookmarks()->toolbarFolder()->type(), type);
}
void QmlBookmarksApiTest::testBookmarkTreeNode()
{
QObject *bookmark = m_testHelper.evaluateQObject(QSL("Falkon.Bookmarks.toolbarFolder()"));
QObject *bookmark = m_testHelper.evaluateQObject("Falkon.Bookmarks.toolbarFolder()");
QVERIFY(bookmark);
auto toolbarFolder = mApp->bookmarks()->toolbarFolder();
@ -56,11 +56,11 @@ void QmlBookmarksApiTest::testBookmarkTreeNode()
void QmlBookmarksApiTest::testBookmarksCreation()
{
auto item = new BookmarkItem(BookmarkItem::Url);
item->setTitle(QSL("Example Domain"));
item->setUrl(QUrl(QSL("https://example.com/")));
item->setDescription(QSL("Testing bookmark description"));
item->setTitle("Example Domain");
item->setUrl(QUrl("https://example.com/"));
item->setDescription("Testing bookmark description");
QObject *qmlBookmarks = m_testHelper.evaluateQObject(QSL("Falkon.Bookmarks"));
QObject *qmlBookmarks = m_testHelper.evaluateQObject("Falkon.Bookmarks");
QVERIFY(qmlBookmarks);
QSignalSpy qmlBookmarksSpy(qmlBookmarks, SIGNAL(created(QmlBookmarkTreeNode*)));
@ -75,87 +75,87 @@ void QmlBookmarksApiTest::testBookmarksCreation()
qRegisterMetaType<BookmarkItem*>();
QSignalSpy bookmarksSpy(mApp->bookmarks(), &Bookmarks::bookmarkAdded);
auto out = m_testHelper.evaluate(QL1S("Falkon.Bookmarks.create({"
auto out = m_testHelper.evaluate("Falkon.Bookmarks.create({"
" parent: Falkon.Bookmarks.toolbarFolder(),"
" title: 'Example Plugin',"
" url: 'https://another-example.com'"
"});"));
"});");
QVERIFY(out.toBool());
QCOMPARE(bookmarksSpy.count(), 1);
auto* createdItem = qvariant_cast<BookmarkItem*>(bookmarksSpy.at(0).at(0));
QVERIFY(createdItem);
QCOMPARE(createdItem->title(), QSL("Example Plugin"));
QCOMPARE(createdItem->title(), QString("Example Plugin"));
}
void QmlBookmarksApiTest::testBookmarksExistence()
{
// in continuation from testBookmarksCreation
auto result = m_testHelper.evaluate(QSL("Falkon.Bookmarks.isBookmarked('https://example.com/')")).toBool();
auto result = m_testHelper.evaluate("Falkon.Bookmarks.isBookmarked('https://example.com/')").toBool();
QVERIFY(result);
QCOMPARE(mApp->bookmarks()->isBookmarked(QUrl(QSL("https://example.com/"))), result);
QCOMPARE(mApp->bookmarks()->isBookmarked(QUrl("https://example.com/")), result);
}
void QmlBookmarksApiTest::testBookmarksModification()
{
// in continuation from testBookmarksExistence
QObject *qmlBookmarks = m_testHelper.evaluateQObject(QSL("Falkon.Bookmarks"));
QObject *qmlBookmarks = m_testHelper.evaluateQObject("Falkon.Bookmarks");
QVERIFY(qmlBookmarks);
QSignalSpy qmlBookmarksSpy(qmlBookmarks, SIGNAL(changed(QmlBookmarkTreeNode*)));
BookmarkItem* item = mApp->bookmarks()->searchBookmarks(QSL("https://example.com/")).at(0);
item->setTitle(QSL("Modified Example Domain"));
BookmarkItem* item = mApp->bookmarks()->searchBookmarks("https://example.com/").at(0);
item->setTitle("Modified Example Domain");
mApp->bookmarks()->changeBookmark(item);
QCOMPARE(qmlBookmarksSpy.count(), 1);
auto *modified = qvariant_cast<QObject*>(qmlBookmarksSpy.at(0).at(0));
QVERIFY(modified);
QCOMPARE(modified->property("title").toString(), QSL("Modified Example Domain"));
QCOMPARE(modified->property("title").toString(), QString("Modified Example Domain"));
qRegisterMetaType<BookmarkItem*>();
QSignalSpy bookmarksSpy(mApp->bookmarks(), &Bookmarks::bookmarkChanged);
auto out = m_testHelper.evaluate(QL1S("Falkon.Bookmarks.update(Falkon.Bookmarks.get('https://another-example.com'),{"
auto out = m_testHelper.evaluate("Falkon.Bookmarks.update(Falkon.Bookmarks.get('https://another-example.com'),{"
" title: 'Modified Example Plugin'"
"})"));
"})");
QVERIFY(out.toBool());
QCOMPARE(bookmarksSpy.count(), 1);
auto* modifiedItem = qvariant_cast<BookmarkItem*>(bookmarksSpy.at(0).at(0));
QVERIFY(modifiedItem);
QCOMPARE(modifiedItem->title(), QSL("Modified Example Plugin"));
QCOMPARE(modifiedItem->title(), QString("Modified Example Plugin"));
}
void QmlBookmarksApiTest::testBookmarksRemoval()
{
// in continuation from testBookmarksModification
QObject *qmlBookmarks = m_testHelper.evaluateQObject(QSL("Falkon.Bookmarks"));
QObject *qmlBookmarks = m_testHelper.evaluateQObject("Falkon.Bookmarks");
QVERIFY(qmlBookmarks);
QSignalSpy qmlBookmarksSpy(qmlBookmarks, SIGNAL(removed(QmlBookmarkTreeNode*)));
BookmarkItem* item = mApp->bookmarks()->searchBookmarks(QSL("https://example.com/")).at(0);
BookmarkItem* item = mApp->bookmarks()->searchBookmarks("https://example.com/").at(0);
mApp->bookmarks()->removeBookmark(item);
QCOMPARE(qmlBookmarksSpy.count(), 1);
auto *removed = qvariant_cast<QObject*>(qmlBookmarksSpy.at(0).at(0));
QVERIFY(removed);
QCOMPARE(removed->property("title").toString(), QSL("Modified Example Domain"));
QCOMPARE(removed->property("title").toString(), QString("Modified Example Domain"));
qRegisterMetaType<BookmarkItem*>();
QSignalSpy bookmarksSpy(mApp->bookmarks(), &Bookmarks::bookmarkRemoved);
auto out = m_testHelper.evaluate(QSL("Falkon.Bookmarks.remove(Falkon.Bookmarks.get('https://another-example.com'))"));
auto out = m_testHelper.evaluate("Falkon.Bookmarks.remove(Falkon.Bookmarks.get('https://another-example.com'))");
QVERIFY(out.toBool());
QCOMPARE(bookmarksSpy.count(), 1);
auto* removedItem = qvariant_cast<BookmarkItem*>(bookmarksSpy.at(0).at(0));
QVERIFY(removedItem);
QCOMPARE(removedItem->title(), QSL("Modified Example Plugin"));
QCOMPARE(removedItem->title(), QString("Modified Example Plugin"));
}
FALKONTEST_MAIN(QmlBookmarksApiTest)

View File

@ -30,7 +30,7 @@ void QmlClipboardApiTest::cleanupTestCase()
void QmlClipboardApiTest::testClipboard()
{
m_testHelper.evaluate(QSL("Falkon.Clipboard.copy('this text is copied')"));
m_testHelper.evaluate("Falkon.Clipboard.copy('this text is copied')");
QCOMPARE(mApp->clipboard()->text(), QSL("this text is copied"));
}

View File

@ -33,42 +33,42 @@ void QmlCookiesApiTest::cleanupTestCase()
void QmlCookiesApiTest::testCookieAdditionRemoval()
{
QSignalSpy cookieAddSpy(mApp->cookieJar(), &CookieJar::cookieAdded);
m_testHelper.evaluate(QL1S("Falkon.Cookies.set({"
m_testHelper.evaluate("Falkon.Cookies.set({"
" name: 'Example',"
" url: '.example.com',"
" expirationDate: Date.now() + 60*1000"
"})"));
"})");
QTRY_COMPARE(cookieAddSpy.count(), 1);
QNetworkCookie netCookie = qvariant_cast<QNetworkCookie>(cookieAddSpy.at(0).at(0));
QCOMPARE(netCookie.name(), QByteArrayLiteral("Example"));
QObject *object = m_testHelper.evaluateQObject(QSL("Falkon.Cookies"));
QObject *object = m_testHelper.evaluateQObject("Falkon.Cookies");
QVERIFY(object);
QSignalSpy qmlCookieSpy(object, SIGNAL(changed(QVariantMap)));
QNetworkCookie anotherNetCookie;
anotherNetCookie.setName(QSL("Hello").toLocal8Bit());
anotherNetCookie.setDomain(QSL(".mydomain.com"));
anotherNetCookie.setName(QString("Hello").toLocal8Bit());
anotherNetCookie.setDomain(".mydomain.com");
anotherNetCookie.setExpirationDate(QDateTime::currentDateTime().addSecs(60));
mApp->webProfile()->cookieStore()->setCookie(anotherNetCookie);
QTRY_COMPARE(qmlCookieSpy.count(), 1);
QVariantMap addedQmlCookieMap = QVariant(qmlCookieSpy.at(0).at(0)).toMap();
auto *addedQmlCookie = qvariant_cast<QObject*>(addedQmlCookieMap.value(QSL("cookie")));
bool removed = addedQmlCookieMap.value(QSL("removed")).toBool();
auto *addedQmlCookie = qvariant_cast<QObject*>(addedQmlCookieMap.value("cookie"));
bool removed = addedQmlCookieMap.value("removed").toBool();
QCOMPARE(addedQmlCookie->property("name").toString(), QSL("Hello"));
QCOMPARE(removed, false);
mApp->webProfile()->cookieStore()->deleteCookie(netCookie);
QTRY_COMPARE(qmlCookieSpy.count(), 2);
QVariantMap removedQmlCookieMap = QVariant(qmlCookieSpy.at(1).at(0)).toMap();
auto *removedQmlCookie = qvariant_cast<QObject*>(removedQmlCookieMap.value(QSL("cookie")));
removed = removedQmlCookieMap.value(QSL("removed")).toBool();
auto *removedQmlCookie = qvariant_cast<QObject*>(removedQmlCookieMap.value("cookie"));
removed = removedQmlCookieMap.value("removed").toBool();
QCOMPARE(removedQmlCookie->property("name").toString(), QSL("Example"));
QCOMPARE(removed, true);
QSignalSpy cookieRemoveSpy(mApp->cookieJar(), &CookieJar::cookieRemoved);
m_testHelper.evaluate(QL1S("Falkon.Cookies.remove({"
m_testHelper.evaluate("Falkon.Cookies.remove({"
" name: 'Hello',"
" url: '.mydomain.com',"
"})"));
"})");
QTRY_COMPARE(cookieRemoveSpy.count(), 1);
netCookie = qvariant_cast<QNetworkCookie>(cookieRemoveSpy.at(0).at(0));
QCOMPARE(netCookie.name(), QByteArrayLiteral("Hello"));
@ -80,20 +80,20 @@ void QmlCookiesApiTest::testCookieGet()
QSignalSpy cookieAddSpy(mApp->cookieJar(), &CookieJar::cookieAdded);
QNetworkCookie netCookie_1;
netCookie_1.setName(QSL("Apple").toLocal8Bit());
netCookie_1.setDomain(QSL(".apple-domain.com"));
netCookie_1.setName(QString("Apple").toLocal8Bit());
netCookie_1.setDomain(".apple-domain.com");
netCookie_1.setExpirationDate(current.addSecs(60));
mApp->webProfile()->cookieStore()->setCookie(netCookie_1);
QNetworkCookie netCookie_2;
netCookie_2.setName(QSL("Mango").toLocal8Bit());
netCookie_2.setDomain(QSL(".mango-domain.com"));
netCookie_2.setName(QString("Mango").toLocal8Bit());
netCookie_2.setDomain(".mango-domain.com");
netCookie_2.setExpirationDate(current.addSecs(120));
mApp->webProfile()->cookieStore()->setCookie(netCookie_2);
QNetworkCookie netCookie_3;
netCookie_3.setName(QSL("Mango").toLocal8Bit());
netCookie_3.setDomain(QSL(".yet-another-mango-domain.com"));
netCookie_3.setName(QString("Mango").toLocal8Bit());
netCookie_3.setDomain(".yet-another-mango-domain.com");
netCookie_3.setExpirationDate(current.addSecs(180));
mApp->webProfile()->cookieStore()->setCookie(netCookie_3);
@ -101,20 +101,20 @@ void QmlCookiesApiTest::testCookieGet()
QNetworkCookie actualMangoCookie;
for (const QNetworkCookie &cookie : mApp->cookieJar()->getAllCookies()) {
if (QString::fromUtf8(cookie.name()) == QSL("Mango") && cookie.domain() == QSL(".mango-domain.com")) {
if (cookie.name() == QSL("Mango") && cookie.domain() == QSL(".mango-domain.com")) {
actualMangoCookie = cookie;
}
}
QObject *mangoCookie = m_testHelper.evaluateQObject(QL1S("Falkon.Cookies.get({"
QObject *mangoCookie = m_testHelper.evaluateQObject("Falkon.Cookies.get({"
" name: 'Mango',"
" url: '.mango-domain.com'"
"})"));
"})");
QVERIFY(mangoCookie);
QCOMPARE(mangoCookie->property("name").toString(), QSL("Mango"));
QCOMPARE(mangoCookie->property("expirationDate").toDateTime(), actualMangoCookie.expirationDate());
QList<QVariant> mangoCookies = m_testHelper.evaluate(QSL("Falkon.Cookies.getAll({name: 'Mango'})")).toVariant().toList();
QList<QVariant> mangoCookies = m_testHelper.evaluate("Falkon.Cookies.getAll({name: 'Mango'})").toVariant().toList();
QCOMPARE(mangoCookies.length(), 2);
}

View File

@ -36,17 +36,17 @@ void QmlHistoryApiTest::testAddition()
{
qRegisterMetaType<HistoryEntry>();
QSignalSpy historySpy(mApp->history(), &History::historyEntryAdded);
m_testHelper.evaluate(QL1S("Falkon.History.addUrl({"
m_testHelper.evaluate("Falkon.History.addUrl({"
" url: 'https://example.com',"
" title: 'Example Domain'"
"})"));
"})");
QTRY_COMPARE(historySpy.count(), 1);
HistoryEntry entry = qvariant_cast<HistoryEntry>(historySpy.at(0).at(0));
QCOMPARE(entry.title, QSL("Example Domain"));
auto object = m_testHelper.evaluateQObject(QSL("Falkon.History"));
auto object = m_testHelper.evaluateQObject("Falkon.History");
QSignalSpy qmlHistorySpy(object, SIGNAL(visited(QmlHistoryItem*)));
mApp->history()->addHistoryEntry(QUrl(QSL("https://sample.com")), QSL("Sample Domain"));
mApp->history()->addHistoryEntry(QUrl("https://sample.com"), "Sample Domain");
QTRY_COMPARE(qmlHistorySpy.count(), 1);
mApp->history()->clearHistory();
}
@ -54,34 +54,34 @@ void QmlHistoryApiTest::testAddition()
void QmlHistoryApiTest::testSearch()
{
QSignalSpy historySpy(mApp->history(), &History::historyEntryAdded);
mApp->history()->addHistoryEntry(QUrl(QSL("https://example.com")), QSL("Example Domain"));
mApp->history()->addHistoryEntry(QUrl(QSL("https://another-example.com")), QSL("Another Example Domain"));
mApp->history()->addHistoryEntry(QUrl(QSL("https://sample.com")), QSL("Sample Domain"));
mApp->history()->addHistoryEntry(QUrl("https://example.com"), "Example Domain");
mApp->history()->addHistoryEntry(QUrl("https://another-example.com"), "Another Example Domain");
mApp->history()->addHistoryEntry(QUrl("https://sample.com"), "Sample Domain");
QTRY_COMPARE(historySpy.count(), 3);
auto list = m_testHelper.evaluate(QSL("Falkon.History.search('example')")).toVariant().toList();
auto list = m_testHelper.evaluate("Falkon.History.search('example')").toVariant().toList();
QCOMPARE(list.length(), 2);
}
void QmlHistoryApiTest::testVisits()
{
int visits = m_testHelper.evaluate(QSL("Falkon.History.getVisits('https://sample.com')")).toInt();
int visits = m_testHelper.evaluate("Falkon.History.getVisits('https://sample.com')").toInt();
QCOMPARE(visits, 1);
QSignalSpy historySpy(mApp->history(), &History::historyEntryEdited);
mApp->history()->addHistoryEntry(QUrl(QSL("https://sample.com")), QSL("Sample Domain"));
mApp->history()->addHistoryEntry(QUrl("https://sample.com"), "Sample Domain");
QTRY_COMPARE(historySpy.count(), 1);
visits = m_testHelper.evaluate(QSL("Falkon.History.getVisits('https://sample.com')")).toInt();
visits = m_testHelper.evaluate("Falkon.History.getVisits('https://sample.com')").toInt();
QCOMPARE(visits, 2);
}
void QmlHistoryApiTest::testRemoval()
{
QSignalSpy historySpy(mApp->history(), &History::historyEntryDeleted);
m_testHelper.evaluate(QSL("Falkon.History.deleteUrl('https://sample.com')"));
m_testHelper.evaluate("Falkon.History.deleteUrl('https://sample.com')");
QTRY_COMPARE(historySpy.count(), 1);
auto object = m_testHelper.evaluateQObject(QSL("Falkon.History"));
auto object = m_testHelper.evaluateQObject("Falkon.History");
QSignalSpy qmlHistorySpy(object, SIGNAL(visitRemoved(QmlHistoryItem*)));
mApp->history()->deleteHistoryEntry(QSL("https://example.com"), QSL("Example Domain"));
mApp->history()->deleteHistoryEntry("https://example.com", "Example Domain");
QTRY_COMPARE(qmlHistorySpy.count(), 1);
}

View File

@ -31,55 +31,52 @@ void QmlTabsApiTest::cleanupTestCase()
void QmlTabsApiTest::testInitWindowCount()
{
QCOMPARE(mApp->windowCount(), 1);
QTRY_COMPARE(mApp->getWindow()->tabCount(), 1);
QCOMPARE(mApp->getWindow()->tabCount(), 0);
}
void QmlTabsApiTest::testTabsAPI()
{
/* Wait until the initial tab (at index 0) in the window is created */
QTRY_COMPARE(mApp->getWindow()->tabCount(), 1);
// Tab Insertion
QObject *qmlTabsObject = m_testHelper.evaluateQObject(QSL("Falkon.Tabs"));
QObject *qmlTabsObject = m_testHelper.evaluateQObject("Falkon.Tabs");
QVERIFY(qmlTabsObject);
QSignalSpy qmlTabsInsertedSpy(qmlTabsObject, SIGNAL(tabInserted(QVariantMap)));
m_testHelper.evaluate(QL1S("Falkon.Tabs.addTab({"
m_testHelper.evaluate("Falkon.Tabs.addTab({"
" url: 'https://example.com/'"
"})"));
"})");
QCOMPARE(qmlTabsInsertedSpy.count(), 1);
QVariantMap retMap1 = QVariant(qmlTabsInsertedSpy.at(0).at(0)).toMap();
int index1 = retMap1.value(QSL("index"), -1).toInt();
int windowId1 = retMap1.value(QSL("windowId"), -1).toInt();
QCOMPARE(index1, 1);
QCOMPARE(index1, 0);
QCOMPARE(windowId1, 0);
QObject *qmlTabObject1 = m_testHelper.evaluateQObject(QSL("Falkon.Tabs.get({index: 1})"));
QObject *qmlTabObject1 = m_testHelper.evaluateQObject("Falkon.Tabs.get({index: 0})");
QVERIFY(qmlTabObject1);
QCOMPARE(qmlTabObject1->property("index").toInt(), 1);
QCOMPARE(qmlTabObject1->property("index").toInt(), 0);
QCOMPARE(qmlTabObject1->property("pinned").toBool(), false);
QTRY_COMPARE(qmlTabObject1->property("url").toString(), QSL("https://example.com/"));
m_testHelper.evaluate(QL1S("Falkon.Tabs.addTab({"
" url: 'https://another-example.com/'"
"})"));
m_testHelper.evaluate("Falkon.Tabs.addTab({"
" url: 'https://another-example.com/',"
"})");
QCOMPARE(qmlTabsInsertedSpy.count(), 2);
QVariantMap retMap2 = QVariant(qmlTabsInsertedSpy.at(1).at(0)).toMap();
int index2 = retMap2.value(QSL("index"), -1).toInt();
int windowId2 = retMap2.value(QSL("windowId"), -1).toInt();
QCOMPARE(index2, 2);
QCOMPARE(index2, 1);
QCOMPARE(windowId2, 0);
bool pinnedTab = m_testHelper.evaluate(QSL("Falkon.Tabs.pinTab({index: 2})")).toBool();
bool pinnedTab = m_testHelper.evaluate("Falkon.Tabs.pinTab({index: 1})").toBool();
QVERIFY(pinnedTab);
QObject *qmlTabObject2 = m_testHelper.evaluateQObject(QSL("Falkon.Tabs.get({index: 0})"));
QObject *qmlTabObject2 = m_testHelper.evaluateQObject("Falkon.Tabs.get({index: 0})");
QVERIFY(qmlTabObject2);
QCOMPARE(qmlTabObject2->property("index").toInt(), 0);
QCOMPARE(qmlTabObject2->property("pinned").toBool(), true);
QTRY_COMPARE(qmlTabObject2->property("url").toString(), QSL("https://another-example.com/"));
bool unpinnedTab = m_testHelper.evaluate(QSL("Falkon.Tabs.unpinTab({index: 0})")).toBool();
bool unpinnedTab = m_testHelper.evaluate("Falkon.Tabs.unpinTab({index: 0})").toBool();
QVERIFY(unpinnedTab);
QObject *qmlTabObject3 = m_testHelper.evaluateQObject(QSL("Falkon.Tabs.get({index: 0})"));
QObject *qmlTabObject3 = m_testHelper.evaluateQObject("Falkon.Tabs.get({index: 0})");
QVERIFY(qmlTabObject3);
QCOMPARE(qmlTabObject3->property("url").toString(), QSL("https://another-example.com/"));
QCOMPARE(qmlTabObject3->property("index").toInt(), 0);
@ -87,36 +84,30 @@ void QmlTabsApiTest::testTabsAPI()
// Next-Previous-Current
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 0);
m_testHelper.evaluate(QSL("Falkon.Tabs.nextTab()"));
m_testHelper.evaluate("Falkon.Tabs.nextTab()");
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 1);
m_testHelper.evaluate(QSL("Falkon.Tabs.nextTab()"));
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 2);
m_testHelper.evaluate(QSL("Falkon.Tabs.nextTab()"));
m_testHelper.evaluate("Falkon.Tabs.nextTab()");
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 0);
m_testHelper.evaluate(QSL("Falkon.Tabs.previousTab()"));
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 2);
m_testHelper.evaluate(QSL("Falkon.Tabs.previousTab()"));
m_testHelper.evaluate("Falkon.Tabs.previousTab()");
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 1);
m_testHelper.evaluate(QSL("Falkon.Tabs.previousTab()"));
m_testHelper.evaluate("Falkon.Tabs.previousTab()");
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 0);
m_testHelper.evaluate(QSL("Falkon.Tabs.setCurrentIndex({index: 2})"));
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 2);
m_testHelper.evaluate(QSL("Falkon.Tabs.setCurrentIndex({index: 1})"));
m_testHelper.evaluate("Falkon.Tabs.setCurrentIndex({index: 1})");
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 1);
m_testHelper.evaluate(QSL("Falkon.Tabs.setCurrentIndex({index: 0})"));
m_testHelper.evaluate("Falkon.Tabs.setCurrentIndex({index: 0})");
QCOMPARE(mApp->getWindow()->tabWidget()->currentIndex(), 0);
// Move Tab
QSignalSpy qmlTabsMovedSpy(qmlTabsObject, SIGNAL(tabMoved(QVariantMap)));
m_testHelper.evaluate(QSL("Falkon.Tabs.moveTab({from: 0, to:1, windowId: 0})"));
m_testHelper.evaluate("Falkon.Tabs.moveTab({from: 0, to:1, windowId: 0})");
QCOMPARE(qmlTabsMovedSpy.count(), 1);
// Tab Removal
QCOMPARE(mApp->getWindow()->tabCount(), 3);
QSignalSpy qmlTabsRemovedSpy(qmlTabsObject, SIGNAL(tabRemoved(QVariantMap)));
m_testHelper.evaluate(QSL("Falkon.Tabs.closeTab({index: 0})"));
QCOMPARE(qmlTabsRemovedSpy.count(), 1);
QCOMPARE(mApp->getWindow()->tabCount(), 2);
QSignalSpy qmlTabsRemovedSpy(qmlTabsObject, SIGNAL(tabRemoved(QVariantMap)));
m_testHelper.evaluate("Falkon.Tabs.closeTab({index: 0})");
QCOMPARE(qmlTabsRemovedSpy.count(), 1);
QCOMPARE(mApp->getWindow()->tabCount(), 1);
}
FALKONTEST_MAIN(QmlTabsApiTest)

View File

@ -31,11 +31,8 @@ void QmlTopSitesApiTest::cleanupTestCase()
void QmlTopSitesApiTest::testTopSites()
{
auto initialList = m_testHelper.evaluate(QSL("Falkon.TopSites.get()")).toVariant().toList();
auto initialListLength = initialList.length();
mApp->plugins()->speedDial()->addPage(QUrl(QSL("https://example.com")), QSL("Example Domain"));
auto list = m_testHelper.evaluate(QSL("Falkon.TopSites.get()")).toVariant().toList();
mApp->plugins()->speedDial()->addPage(QUrl("https://example.com"), "Example Domain");
auto list = m_testHelper.evaluate("Falkon.TopSites.get()").toVariant().toList();
qDebug() << "Top sites list size=" << list.length();
for( const auto& site : list )
{
@ -49,8 +46,8 @@ void QmlTopSitesApiTest::testTopSites()
qDebug() << ".." << site;
}
}
QCOMPARE(list.length(), initialListLength + 1);
auto* object = qvariant_cast<QObject*>(list.at(initialListLength));
QCOMPARE(list.length(), 1);
auto* object = qvariant_cast<QObject*>(list.at(0));
QVERIFY(object);
QCOMPARE(object->property("title").toString(), QSL("Example Domain"));
QCOMPARE(object->property("url").toString(), QSL("https://example.com"));

View File

@ -34,26 +34,26 @@ void QmlUserScriptApiTest::cleanupTestCase()
void QmlUserScriptApiTest::testCount()
{
int count = m_testHelper.evaluate(QSL("Falkon.UserScripts.count")).toInt();
int count = m_testHelper.evaluate("Falkon.UserScripts.count").toInt();
QCOMPARE(count, mApp->webProfile()->scripts()->count());
}
void QmlUserScriptApiTest::testSize()
{
int size = m_testHelper.evaluate(QSL("Falkon.UserScripts.size")).toInt();
QCOMPARE(size, mApp->webProfile()->scripts()->count());
int size = m_testHelper.evaluate("Falkon.UserScripts.size").toInt();
QCOMPARE(size, mApp->webProfile()->scripts()->size());
}
void QmlUserScriptApiTest::testEmpty()
{
bool empty = m_testHelper.evaluate(QSL("Falkon.UserScripts.empty")).toBool();
bool empty = m_testHelper.evaluate("Falkon.UserScripts.empty").toBool();
QCOMPARE(empty, mApp->webProfile()->scripts()->isEmpty());
}
void QmlUserScriptApiTest::testContains()
{
QWebEngineScript script = mApp->webProfile()->scripts()->toList().at(0);
QObject *object = m_testHelper.evaluateQObject(QSL("Falkon.UserScripts"));
QObject *object = m_testHelper.evaluateQObject("Falkon.UserScripts");
auto *userScripts = dynamic_cast<QmlUserScripts*>(object);
QVERIFY(userScripts);
auto *userScript = new QmlUserScript();
@ -65,7 +65,7 @@ void QmlUserScriptApiTest::testContains()
void QmlUserScriptApiTest::testFind()
{
QWebEngineScript script = mApp->webProfile()->scripts()->toList().at(0);
QObject *object = m_testHelper.evaluateQObject(QSL("Falkon.UserScripts"));
QObject *object = m_testHelper.evaluateQObject("Falkon.UserScripts");
auto *userScripts = dynamic_cast<QmlUserScripts*>(object);
QVERIFY(userScripts);
QObject *scriptFound = userScripts->findScript(script.name());
@ -75,22 +75,22 @@ void QmlUserScriptApiTest::testFind()
void QmlUserScriptApiTest::testInsertRemove()
{
int initialCount = m_testHelper.evaluate(QSL("Falkon.UserScripts.count")).toInt();
QObject *object = m_testHelper.evaluateQObject(QSL("Falkon.UserScripts"));
int initialCount = m_testHelper.evaluate("Falkon.UserScripts.count").toInt();
QObject *object = m_testHelper.evaluateQObject("Falkon.UserScripts");
auto *userScripts = dynamic_cast<QmlUserScripts*>(object);
QVERIFY(userScripts);
auto *userScript = new QmlUserScript();
userScript->setProperty("name", QSL("Hello World"));
userScript->setProperty("sourceCode", QL1S("(function() {"
userScript->setProperty("name", "Hello World");
userScript->setProperty("sourceCode", "(function() {"
" alert('Hello World')"
"})()"));
"})()");
userScripts->insert(userScript);
int finalCount = m_testHelper.evaluate(QSL("Falkon.UserScripts.count")).toInt();
int finalCount = m_testHelper.evaluate("Falkon.UserScripts.count").toInt();
QCOMPARE(finalCount, initialCount + 1);
userScripts->remove(userScript);
int ultimateCount = m_testHelper.evaluate(QSL("Falkon.UserScripts.count")).toInt();
int ultimateCount = m_testHelper.evaluate("Falkon.UserScripts.count").toInt();
QCOMPARE(ultimateCount, initialCount);
}

View File

@ -32,13 +32,13 @@ void QmlWindowsApiTest::cleanupTestCase()
void QmlWindowsApiTest::testWindowsAPI()
{
QObject *currentWindowObject = m_testHelper.evaluateQObject(QSL("Falkon.Windows.getCurrent()"));
QObject *currentWindowObject = m_testHelper.evaluateQObject("Falkon.Windows.getCurrent()");
QVERIFY(currentWindowObject);
QCOMPARE(currentWindowObject->property("title").toString(), mApp->getWindow()->windowTitle());
QCOMPARE(currentWindowObject->property("type").toInt(), (int)mApp->getWindow()->windowType());
QCOMPARE(currentWindowObject->property("tabs").toList().length(), mApp->getWindow()->tabCount());
QObject *windowObject = m_testHelper.evaluateQObject(QSL("Falkon.Windows"));
QObject *windowObject = m_testHelper.evaluateQObject("Falkon.Windows");
QVERIFY(windowObject);
QSignalSpy qmlWindowCreatedSignal(windowObject, SIGNAL(created(QmlWindow*)));
qRegisterMetaType<BrowserWindow*>();
@ -48,7 +48,7 @@ void QmlWindowsApiTest::testWindowsAPI()
QTRY_COMPARE(qmlWindowCreatedSignal.count(), 1);
QTRY_COMPARE(windowCreatedSingal.count(), 1);
QObject *newQmlWindow = m_testHelper.evaluateQObject(QSL("Falkon.Windows.create({})"));
QObject *newQmlWindow = m_testHelper.evaluateQObject("Falkon.Windows.create({})");
QVERIFY(newQmlWindow);
QCOMPARE(mApp->windowCount(), 2);
@ -60,12 +60,12 @@ void QmlWindowsApiTest::testWindowsAPI()
QVERIFY(newQmlSignalWindow);
QCOMPARE(newQmlWindow->property("id").toInt(), newQmlSignalWindow->property("id").toInt());
int qmlWindowCount = m_testHelper.evaluate(QSL("Falkon.Windows.getAll().length")).toInt();
int qmlWindowCount = m_testHelper.evaluate("Falkon.Windows.getAll().length").toInt();
QCOMPARE(qmlWindowCount, mApp->windowCount());
QSignalSpy qmlWindowRemovedSignal(windowObject, SIGNAL(removed(QmlWindow*)));
int newQmlWindowId = newQmlSignalWindow->property("id").toInt();
m_testHelper.evaluate(QString(QSL("Falkon.Windows.remove(%1)")).arg(newQmlWindowId));
m_testHelper.evaluate(QString("Falkon.Windows.remove(%1)").arg(newQmlWindowId));
QTRY_COMPARE(qmlWindowRemovedSignal.count(), 1);
}

View File

@ -65,15 +65,15 @@ void QzToolsTest::getFileNameFromUrl_data()
QTest::addColumn<QUrl>("url");
QTest::addColumn<QString>("result");
QTest::newRow("Basic") << QUrl(QSL("http://www.google.com/filename.html")) << QSL("filename.html");
QTest::newRow("OnlyHost") << QUrl(QSL("http://www.google.com/")) << QSL("www.google.com");
QTest::newRow("OnlyHostWithoutSlash") << QUrl(QSL("http://www.google.com")) << QSL("www.google.com");
QTest::newRow("EndingDirectory") << QUrl(QSL("http://www.google.com/filename/")) << QSL("filename");
QTest::newRow("EmptyUrl") << QUrl(QSL("")) << QSL("");
QTest::newRow("OnlyScheme") << QUrl(QSL("http:")) << QSL("");
QTest::newRow("FileSchemeUrl") << QUrl(QSL("file:///usr/share/test/file.tx")) << QSL("file.tx");
QTest::newRow("FileSchemeUrlDirectory") << QUrl(QSL("file:///usr/share/test/")) << QSL("test");
QTest::newRow("FileSchemeUrlRoot") << QUrl(QSL("file:///")) << QSL("");
QTest::newRow("Basic") << QUrl("http://www.google.com/filename.html") << "filename.html";
QTest::newRow("OnlyHost") << QUrl("http://www.google.com/") << "www.google.com";
QTest::newRow("OnlyHostWithoutSlash") << QUrl("http://www.google.com") << "www.google.com";
QTest::newRow("EndingDirectory") << QUrl("http://www.google.com/filename/") << "filename";
QTest::newRow("EmptyUrl") << QUrl("") << "";
QTest::newRow("OnlyScheme") << QUrl("http:") << "";
QTest::newRow("FileSchemeUrl") << QUrl("file:///usr/share/test/file.tx") << "file.tx";
QTest::newRow("FileSchemeUrlDirectory") << QUrl("file:///usr/share/test/") << "test";
QTest::newRow("FileSchemeUrlRoot") << QUrl("file:///") << "";
}
void QzToolsTest::getFileNameFromUrl()
@ -90,37 +90,37 @@ void QzToolsTest::splitCommandArguments_data()
QTest::addColumn<QStringList>("result");
QTest::newRow("Basic") << "/usr/bin/foo -o foo.out"
<< (QStringList() << QSL("/usr/bin/foo") << QSL("-o") << QSL("foo.out"));
<< (QStringList() << "/usr/bin/foo" << "-o" << "foo.out");
QTest::newRow("Empty") << QString()
<< QStringList();
QTest::newRow("OnlySpaces") << QSL(" ")
QTest::newRow("OnlySpaces") << QString(" ")
<< QStringList();
QTest::newRow("OnlyQuotes") << QSL(R"("" "")")
QTest::newRow("OnlyQuotes") << QString(R"("" "")")
<< QStringList();
QTest::newRow("EmptyQuotesAndSpace") << QSL(R"("" "" " ")")
<< QStringList(QSL(" "));
QTest::newRow("EmptyQuotesAndSpace") << QString(R"("" "" " ")")
<< QStringList(" ");
QTest::newRow("MultipleSpaces") << " /usr/foo -o foo.out "
<< (QStringList() << QSL("/usr/foo") << QSL("-o") << QSL("foo.out"));
<< (QStringList() << "/usr/foo" << "-o" << "foo.out");
QTest::newRow("Quotes") << R"("/usr/foo" "-o" "foo.out")"
<< (QStringList() << QSL("/usr/foo") << QSL("-o") << QSL("foo.out"));
<< (QStringList() << "/usr/foo" << "-o" << "foo.out");
QTest::newRow("SingleQuotes") << "'/usr/foo' '-o' 'foo.out'"
<< (QStringList() << QSL("/usr/foo") << QSL("-o") << QSL("foo.out"));
<< (QStringList() << "/usr/foo" << "-o" << "foo.out");
QTest::newRow("SingleAndDoubleQuotes") << " '/usr/foo' \"-o\" 'foo.out' "
<< (QStringList() << QSL("/usr/foo") << QSL("-o") << QSL("foo.out"));
<< (QStringList() << "/usr/foo" << "-o" << "foo.out");
QTest::newRow("SingleInDoubleQuotes") << "/usr/foo \"-o 'ds' \" 'foo.out' "
<< (QStringList() << QSL("/usr/foo") << QSL("-o 'ds' ") << QSL("foo.out"));
<< (QStringList() << "/usr/foo" << "-o 'ds' " << "foo.out");
QTest::newRow("DoubleInSingleQuotes") << "/usr/foo -o 'foo\" d \".out' "
<< (QStringList() << QSL("/usr/foo") << QSL("-o") << QSL("foo\" d \".out"));
QTest::newRow("SpacesWithQuotes") << QSL(R"( " " " " )")
<< (QStringList() << QSL(" ") << QSL(" "));
<< (QStringList() << "/usr/foo" << "-o" << "foo\" d \".out");
QTest::newRow("SpacesWithQuotes") << QString(R"( " " " " )")
<< (QStringList() << " " << " ");
QTest::newRow("QuotesAndSpaces") << "/usr/foo -o \"foo - out\""
<< (QStringList() << QSL("/usr/foo") << QSL("-o") << QSL("foo - out"));
<< (QStringList() << "/usr/foo" << "-o" << "foo - out");
QTest::newRow("EqualAndQuotes") << "/usr/foo -o=\"foo - out\""
<< (QStringList() << QSL("/usr/foo") << QSL("-o=foo - out"));
<< (QStringList() << "/usr/foo" << "-o=foo - out");
QTest::newRow("EqualWithSpaces") << "/usr/foo -o = \"foo - out\""
<< (QStringList() << QSL("/usr/foo") << QSL("-o") << QSL("=") << QSL("foo - out"));
<< (QStringList() << "/usr/foo" << "-o" << "=" << "foo - out");
QTest::newRow("MultipleSpacesAndQuotes") << " /usr/foo -o=\" foo.out \" "
<< (QStringList() << QSL("/usr/foo") << QSL("-o= foo.out "));
<< (QStringList() << "/usr/foo" << "-o= foo.out ");
// Unmatched quotes should be treated as an error
QTest::newRow("UnmatchedQuote") << "/usr/bin/foo -o \"bar"
<< QStringList();
@ -275,17 +275,17 @@ static void createTestDirectoryStructure(const QString &path)
{
QDir().mkdir(path);
QDir dir(path);
dir.mkdir(QSL("dir1"));
dir.mkdir(QSL("dir2"));
dir.mkdir(QSL("dir3"));
dir.cd(QSL("dir1"));
dir.mkdir(QSL("dir1_1"));
dir.mkdir(QSL("dir1_2"));
dir.mkdir(QSL("dir1_3"));
dir.mkdir("dir1");
dir.mkdir("dir2");
dir.mkdir("dir3");
dir.cd("dir1");
dir.mkdir("dir1_1");
dir.mkdir("dir1_2");
dir.mkdir("dir1_3");
dir.cdUp();
dir.cd(QSL("dir3"));
dir.mkdir(QSL("dir3_1"));
QFile file(path + QSL("/dir1/dir1_2/file1.txt"));
dir.cd("dir3");
dir.mkdir("dir3_1");
QFile file(path + "/dir1/dir1_2/file1.txt");
file.open(QFile::WriteOnly);
file.write("test");
file.close();
@ -296,32 +296,32 @@ void QzToolsTest::copyRecursivelyTest()
const QString testDir = createPath("copyRecursivelyTest");
createTestDirectoryStructure(testDir);
QVERIFY(!QFileInfo::exists(testDir + QSL("-copy")));
QVERIFY(!QFileInfo(testDir + "-copy").exists());
// Copy to non-existent target
QCOMPARE(QzTools::copyRecursively(testDir, testDir + QSL("-copy")), true);
QCOMPARE(QzTools::copyRecursively(testDir, testDir + "-copy"), true);
QCOMPARE(QFileInfo(testDir + QSL("-copy")).isDir(), true);
QCOMPARE(QFileInfo(testDir + QSL("-copy/dir1")).isDir(), true);
QCOMPARE(QFileInfo(testDir + QSL("-copy/dir2")).isDir(), true);
QCOMPARE(QFileInfo(testDir + QSL("-copy/dir3")).isDir(), true);
QCOMPARE(QFileInfo(testDir + QSL("-copy/dir1/dir1_1")).isDir(), true);
QCOMPARE(QFileInfo(testDir + QSL("-copy/dir1/dir1_2")).isDir(), true);
QCOMPARE(QFileInfo(testDir + QSL("-copy/dir1/dir1_3")).isDir(), true);
QCOMPARE(QFileInfo(testDir + QSL("-copy/dir3/dir3_1")).isDir(), true);
QCOMPARE(QFileInfo(testDir + QSL("-copy/dir1/dir1_2/file1.txt")).isFile(), true);
QCOMPARE(QFileInfo(testDir + "-copy").isDir(), true);
QCOMPARE(QFileInfo(testDir + "-copy/dir1").isDir(), true);
QCOMPARE(QFileInfo(testDir + "-copy/dir2").isDir(), true);
QCOMPARE(QFileInfo(testDir + "-copy/dir3").isDir(), true);
QCOMPARE(QFileInfo(testDir + "-copy/dir1/dir1_1").isDir(), true);
QCOMPARE(QFileInfo(testDir + "-copy/dir1/dir1_2").isDir(), true);
QCOMPARE(QFileInfo(testDir + "-copy/dir1/dir1_3").isDir(), true);
QCOMPARE(QFileInfo(testDir + "-copy/dir3/dir3_1").isDir(), true);
QCOMPARE(QFileInfo(testDir + "-copy/dir1/dir1_2/file1.txt").isFile(), true);
QFile file(testDir + QSL("-copy/dir1/dir1_2/file1.txt"));
QFile file(testDir + "-copy/dir1/dir1_2/file1.txt");
file.open(QFile::ReadOnly);
QCOMPARE(file.readAll(), QByteArray("test"));
file.close();
// Copy to target that already exists
QCOMPARE(QzTools::copyRecursively(testDir, testDir + QSL("-copy")), false);
QCOMPARE(QzTools::copyRecursively(testDir, testDir + "-copy"), false);
// Cleanup
QCOMPARE(QzTools::removeRecursively(testDir), true);
QCOMPARE(QzTools::removeRecursively(testDir + QSL("-copy")), true);
QCOMPARE(QzTools::removeRecursively(testDir + "-copy"), true);
}
void QzToolsTest::removeRecursivelyTest()
@ -329,23 +329,23 @@ void QzToolsTest::removeRecursivelyTest()
const QString testDir = createPath("removeRecursivelyTest");
createTestDirectoryStructure(testDir);
QCOMPARE(QzTools::copyRecursively(testDir, testDir + QSL("-copy")), true);
QCOMPARE(QzTools::removeRecursively(testDir + QSL("-copy")), true);
QCOMPARE(QFileInfo::exists(testDir + QSL("-copy")), false);
QCOMPARE(QzTools::copyRecursively(testDir, testDir + "-copy"), true);
QCOMPARE(QzTools::removeRecursively(testDir + "-copy"), true);
QCOMPARE(QFileInfo(testDir + "-copy").exists(), false);
// Remove non-existent path returns success
QCOMPARE(QzTools::removeRecursively(testDir + QSL("-copy")), true);
QCOMPARE(QzTools::removeRecursively(testDir + "-copy"), true);
QCOMPARE(QzTools::copyRecursively(testDir, testDir + QSL("-copy2")), true);
QCOMPARE(QzTools::copyRecursively(testDir, testDir + "-copy2"), true);
QFile dir(testDir + QSL("-copy2"));
QFile dir(testDir + "-copy2");
dir.setPermissions(dir.permissions() & ~(QFile::WriteOwner | QFile::WriteUser | QFile::WriteGroup | QFile::WriteOther));
QCOMPARE(QzTools::removeRecursively(testDir + QSL("-copy2")), false);
QCOMPARE(QzTools::removeRecursively(testDir + "-copy2"), false);
dir.setPermissions(dir.permissions() | QFile::WriteOwner);
QCOMPARE(QzTools::removeRecursively(testDir + QSL("-copy2")), true);
QCOMPARE(QzTools::removeRecursively(testDir + "-copy2"), true);
// Cleanup
QCOMPARE(QzTools::removeRecursively(testDir), true);
@ -356,21 +356,21 @@ void QzToolsTest::dontFollowSymlinksTest()
const QString testDir = createPath("removeRecursivelyTest");
createTestDirectoryStructure(testDir);
QDir().mkpath(testDir + QSL("/subdir"));
QFile::link(testDir, testDir + QSL("/subdir/link"));
QDir().mkpath(testDir + "/subdir");
QFile::link(testDir, testDir + "/subdir/link");
QVERIFY(QzTools::removeRecursively(testDir + QSL("/subdir")));
QVERIFY(QzTools::removeRecursively(testDir + "/subdir"));
QVERIFY(!QFile::exists(testDir + QSL("/subdir")));
QVERIFY(!QFile::exists(testDir + "/subdir"));
QVERIFY(QFile::exists(testDir));
QDir().mkpath(testDir + QSL("/subdir/normalfolder"));
QFile::link(QSL(".."), testDir + QSL("/subdir/link"));
QDir().mkpath(testDir + "/subdir/normalfolder");
QFile::link("..", testDir + "/subdir/link");
QVERIFY(QzTools::copyRecursively(testDir + QSL("/subdir"), testDir + QSL("/subdir2")));
QVERIFY(QzTools::copyRecursively(testDir + "/subdir", testDir + "/subdir2"));
QCOMPARE(QFile::exists(testDir + QSL("/subdir2/link")), true);
QCOMPARE(QFile::exists(testDir + QSL("/subdir2/normalfolder")), true);
QCOMPARE(QFile::exists(testDir + "/subdir2/link"), true);
QCOMPARE(QFile::exists(testDir + "/subdir2/normalfolder"), true);
// Cleanup
QCOMPARE(QzTools::removeRecursively(testDir), true);
@ -378,7 +378,7 @@ void QzToolsTest::dontFollowSymlinksTest()
QString QzToolsTest::createPath(const char *file) const
{
return m_tmpPath + QL1S("/") + QString::fromUtf8(file);
return m_tmpPath + QL1S("/") + file;
}
QTEST_GUILESS_MAIN(QzToolsTest)

View File

@ -1,109 +0,0 @@
/* ============================================================
* Falkon - Qt web browser
* Copyright (C) 2024 Juraj Oravec <jurajoravec@mailo.com>
*
* 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 3 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. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */
#include "sitesettingstest.h"
#include "mainapplication.h"
#include "tabbedwebview.h"
#include "webpage.h"
#include "autotests.h"
#include "tabwidget.h"
void SiteSettingsTest::initTestCase()
{
/* Wait until the initial tab (at index 0) in the window is created */
QTRY_COMPARE(mApp->getWindow()->tabCount(), 1);
}
void SiteSettingsTest::cleanupTestCase()
{
}
void SiteSettingsTest::webAttributeTest()
{
SiteSettingsManager *siteSettings = mApp->siteSettingsManager();
siteSettings->setOption(QWebEngineSettings::AutoLoadImages, QUrl(QSL("https://www.falkon.org/")), SiteSettingsManager::Deny);
siteSettings->setOption(QWebEngineSettings::JavascriptEnabled, QUrl(QSL("https://kde.org/")), SiteSettingsManager::Deny);
siteSettings->setOption(QWebEngineSettings::PlaybackRequiresUserGesture, QUrl(QSL("https://planet.kde.org/")), SiteSettingsManager::Allow);
checkInternalPage(QUrl(QSL("falkon:start")));
checkExternalPage(QUrl(QSL("https://www.falkon.org/")));
checkExternalPage(QUrl(QSL("https://kde.org/")));
checkInternalPage(QUrl(QSL("falkon:about")));
checkExternalPage(QUrl(QSL("https://planet.kde.org/")));
}
bool SiteSettingsTest::checkWebAttributes(WebPage *page, QHash<QWebEngineSettings::WebAttribute, bool> webAttributes)
{
for (auto it = webAttributes.begin(); it != webAttributes.end(); ++it) {
if (page->settings()->testAttribute(it.key()) != it.value()) {
return false;
}
}
return true;
}
void SiteSettingsTest::checkInternalPage(QUrl url)
{
WebTab tab;
QMap<QWebEngineSettings::WebAttribute, bool> internalWebAttributes = {
{QWebEngineSettings::AutoLoadImages, true}
,{QWebEngineSettings::JavascriptEnabled, true}
,{QWebEngineSettings::JavascriptCanOpenWindows, false}
,{QWebEngineSettings::JavascriptCanAccessClipboard, true}
,{QWebEngineSettings::JavascriptCanPaste, false}
,{QWebEngineSettings::AllowWindowActivationFromJavaScript, false}
,{QWebEngineSettings::LocalStorageEnabled, true}
,{QWebEngineSettings::FullScreenSupportEnabled, mApp->webSettings()->testAttribute(QWebEngineSettings::FullScreenSupportEnabled)}
,{QWebEngineSettings::AllowRunningInsecureContent, false}
,{QWebEngineSettings::AllowGeolocationOnInsecureOrigins, false}
,{QWebEngineSettings::PlaybackRequiresUserGesture, mApp->webSettings()->testAttribute(QWebEngineSettings::PlaybackRequiresUserGesture)}
,{QWebEngineSettings::WebRTCPublicInterfacesOnly, mApp->webSettings()->testAttribute(QWebEngineSettings::WebRTCPublicInterfacesOnly)}
};
QSignalSpy spy(tab.webView(), &WebView::loadFinished);
tab.load(url);
QTRY_COMPARE(spy.count(), 1);
auto *page = tab.webView()->page();
for (auto it = internalWebAttributes.begin(); it != internalWebAttributes.end(); ++it) {
QCOMPARE(page->settings()->testAttribute(it.key()), it.value());
}
}
void SiteSettingsTest::checkExternalPage(QUrl url)
{
WebTab tab;
SiteSettingsManager *siteSettings = mApp->siteSettingsManager();
QSignalSpy spy(tab.webView(), &WebView::loadFinished);
tab.load(url);
QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 1, 20000);
auto *page = tab.webView()->page();
QCOMPARE(checkWebAttributes(page, siteSettings->getWebAttributes(url)), true);
}
FALKONTEST_MAIN(SiteSettingsTest)

View File

@ -1,47 +0,0 @@
/* ============================================================
* Falkon - Qt web browser
* Copyright (C) 2024 Juraj Oravec <jurajoravec@mailo.com>
*
* 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 3 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. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */
#ifndef SITESETTINGSTEST_H
#define SITESETTINGSTEST_H
#include "sitesettingsmanager.h"
#include <QObject>
class WebPage;
class WebTab;
class SiteSettingsTest : public QObject
{
Q_OBJECT
private Q_SLOTS:
void initTestCase();
void cleanupTestCase();
void webAttributeTest();
private:
bool checkWebAttributes(WebPage *page, QHash<QWebEngineSettings::WebAttribute, bool> webAttributes);
void checkInternalPage(QUrl url);
void checkExternalPage(QUrl url);
};
#endif // SITESETTINGSTEST_H

View File

@ -58,7 +58,7 @@ void TabModelTest::basicTest()
rowsInsertedSpy.clear();
w->tabWidget()->addView(QUrl(QSL("http://test.com")));
w->tabWidget()->addView(QUrl("http://test.com"));
QCOMPARE(rowsInsertedSpy.count(), 1);
WebTab *tab1 = w->tabWidget()->webTab(1);
@ -114,7 +114,7 @@ void TabModelTest::dataTest()
QCOMPARE(model.index(0, 0).data(TabModel::RestoredRole).toBool(), tab0->isRestored());
QCOMPARE(model.index(0, 0).data(TabModel::CurrentTabRole).toBool(), true);
w->tabWidget()->addView(QUrl(QSL("http://test.com")));
w->tabWidget()->addView(QUrl("http://test.com"));
delete w;
}
@ -125,7 +125,7 @@ void TabModelTest::pinTabTest()
TabModel model(w);
ModelTest modelTest(&model);
w->tabWidget()->addView(QUrl(QSL("http://test.com")));
w->tabWidget()->addView(QUrl("http://test.com"));
QTRY_COMPARE(model.rowCount(), 2);

View File

@ -257,27 +257,27 @@ void WebTabTest::loadNotRestoredTabTest()
{
WebTab tab;
tab.load(QUrl(QSL("qrc:autotests/data/basic_page.html")));
tab.load(QUrl("qrc:autotests/data/basic_page.html"));
QVERIFY(waitForLoadfinished(&tab));
QTRY_COMPARE(tab.webView()->history()->count(), 1);
tab.unload();
QVERIFY(!tab.isRestored());
tab.load(QUrl(QSL("qrc:autotests/data/basic_page2.html")));
tab.load(QUrl("qrc:autotests/data/basic_page2.html"));
QVERIFY(waitForLoadfinished(&tab));
QTRY_COMPARE(tab.webView()->history()->count(), 2);
QCOMPARE(tab.url(), QUrl(QSL("qrc:autotests/data/basic_page2.html")));
QCOMPARE(tab.webView()->history()->currentItem().url(), QUrl(QSL("qrc:autotests/data/basic_page2.html")));
QCOMPARE(tab.webView()->history()->backItem().url(), QUrl(QSL("qrc:autotests/data/basic_page.html")));
QCOMPARE(tab.url(), QUrl("qrc:autotests/data/basic_page2.html"));
QCOMPARE(tab.webView()->history()->currentItem().url(), QUrl("qrc:autotests/data/basic_page2.html"));
QCOMPARE(tab.webView()->history()->backItem().url(), QUrl("qrc:autotests/data/basic_page.html"));
}
void WebTabTest::saveNotRestoredTabTest()
{
WebTab tab;
tab.load(QUrl(QSL("qrc:autotests/data/basic_page.html")));
tab.load(QUrl("qrc:autotests/data/basic_page.html"));
QVERIFY(waitForLoadfinished(&tab));
QTRY_COMPARE(tab.webView()->history()->count(), 1);
@ -286,7 +286,7 @@ void WebTabTest::saveNotRestoredTabTest()
WebTab::SavedTab saved(&tab);
QVERIFY(saved.isValid());
QCOMPARE(saved.url, QUrl(QSL("qrc:autotests/data/basic_page.html")));
QCOMPARE(saved.url, QUrl("qrc:autotests/data/basic_page.html"));
}
FALKONTEST_MAIN(WebTabTest)

View File

@ -73,7 +73,7 @@ void WebViewTest::loadSignalsChangePageTest()
QSignalSpy loadStartedSpy(&view, &WebView::loadStarted);
QSignalSpy loadFinishedSpy(&view, &WebView::loadFinished);
view.load(QUrl(QSL("qrc:autotests/data/basic_page.html")));
view.load(QUrl("qrc:autotests/data/basic_page.html"));
QTRY_COMPARE(loadStartedSpy.count(), 1);
loadStartedSpy.clear();
@ -81,7 +81,10 @@ void WebViewTest::loadSignalsChangePageTest()
auto *page2 = new WebPage;
view.setPage(page2);
QTRY_COMPARE(loadFinishedSpy.count(), 1);
// WebPage: Workaround for broken load started/finished signals in QtWebEngine 5.10
const int loadFinishedEmitCount = qstrncmp(qVersion(), "5.11.", 5) == 0 ? 1 : 2;
QTRY_COMPARE(loadFinishedSpy.count(), loadFinishedEmitCount);
QCOMPARE(loadStartedSpy.count(), 0);
loadFinishedSpy.clear();
@ -90,7 +93,7 @@ void WebViewTest::loadSignalsChangePageTest()
view2.setPage(page3);
QSignalSpy page3LoadStart(page3, &WebPage::loadStarted);
page3->load(QUrl(QSL("qrc:autotests/data/basic_page.html")));
page3->load(QUrl("qrc:autotests/data/basic_page.html"));
QVERIFY(page3LoadStart.wait());
view2.setPage(new QWebEnginePage(&view2));

View File

@ -3,13 +3,8 @@
<id>org.kde.falkon.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0+</project_license>
<developer id="org.kde">
<name translate="no">KDE</name>
</developer>
<launchable type="desktop-id">org.kde.falkon.desktop</launchable>
<name>Falkon</name>
<name xml:lang="ar">فالكون</name>
<name xml:lang="ast">Falkon</name>
<name xml:lang="az">Falkon</name>
<name xml:lang="bg">Falkon</name>
<name xml:lang="ca">Falkon</name>
@ -19,43 +14,34 @@
<name xml:lang="de">Falkon</name>
<name xml:lang="el">Falkon</name>
<name xml:lang="en-GB">Falkon</name>
<name xml:lang="eo">Falkon</name>
<name xml:lang="es">Falkon</name>
<name xml:lang="et">Falkon</name>
<name xml:lang="eu">Falkon</name>
<name xml:lang="fi">Falkon</name>
<name xml:lang="fr">Falkon</name>
<name xml:lang="gl">Falkon</name>
<name xml:lang="he">Falkon</name>
<name xml:lang="hi">फाल्कन</name>
<name xml:lang="hu">Falkon</name>
<name xml:lang="ia">Falkon:</name>
<name xml:lang="id">Falkon</name>
<name xml:lang="is">Falkon</name>
<name xml:lang="it">Falkon</name>
<name xml:lang="ka">Falkon</name>
<name xml:lang="ko">Falkon</name>
<name xml:lang="lg">Falkon</name>
<name xml:lang="lt">Falkon</name>
<name xml:lang="lv">Falkon</name>
<name xml:lang="nl">Falkon</name>
<name xml:lang="nn">Falkon</name>
<name xml:lang="pa">ਫਾਲਕਨ</name>
<name xml:lang="pl">Falkon</name>
<name xml:lang="pt">Falkon</name>
<name xml:lang="pt-BR">Falkon</name>
<name xml:lang="ru">Falkon</name>
<name xml:lang="sa">बाजः</name>
<name xml:lang="sk">Falkon</name>
<name xml:lang="sl">Falkon</name>
<name xml:lang="sv">Falkon</name>
<name xml:lang="tr">Falkon</name>
<name xml:lang="uk">Falkon</name>
<name xml:lang="x-test">xxFalkonxx</name>
<name xml:lang="zh-CN">Falkon 浏览器</name>
<name xml:lang="zh-TW">Falkon</name>
<summary>Web Browser</summary>
<summary xml:lang="ar">متصفّح الوبّ</summary>
<summary xml:lang="ast">Restolador web</summary>
<summary xml:lang="az">Veb Bələdçi</summary>
<summary xml:lang="bg">Уеб браузър</summary>
<summary xml:lang="ca">Navegador web</summary>
@ -65,38 +51,30 @@
<summary xml:lang="de">Webbrowser</summary>
<summary xml:lang="el">Περιηγητής ιστού</summary>
<summary xml:lang="en-GB">Web Browser</summary>
<summary xml:lang="eo">Retfoliumilo</summary>
<summary xml:lang="es">Navegador web</summary>
<summary xml:lang="et">Veebilehitseja</summary>
<summary xml:lang="eu">Web arakatzailea</summary>
<summary xml:lang="fi">Verkkoselain</summary>
<summary xml:lang="fr">Navigateur Web</summary>
<summary xml:lang="gl">Navegador web</summary>
<summary xml:lang="he">דפדפן</summary>
<summary xml:lang="hi">वेब ब्राउज़र</summary>
<summary xml:lang="hu">Webböngésző</summary>
<summary xml:lang="ia">Navigator Web</summary>
<summary xml:lang="id">Penelusur Web</summary>
<summary xml:lang="is">Vafri</summary>
<summary xml:lang="it">Browser web</summary>
<summary xml:lang="ka">ვებ-ბრაუზერი</summary>
<summary xml:lang="ko">웹 브라우저</summary>
<summary xml:lang="lg">Bulawuza ya ku Mutimbagano</summary>
<summary xml:lang="lt">Saityno naršyklė</summary>
<summary xml:lang="lv">Tīmekļa pārlūkprogramma</summary>
<summary xml:lang="nl">Webbrowser</summary>
<summary xml:lang="nn">Nettlesar</summary>
<summary xml:lang="pa">ਵੈੱਬ ਬਰਾਊਜ਼ਰ</summary>
<summary xml:lang="pl">Przeglądarka internetowa</summary>
<summary xml:lang="pt">Navegador Web</summary>
<summary xml:lang="pt-BR">Navegador Web</summary>
<summary xml:lang="ru">Веб-браузер</summary>
<summary xml:lang="sa">जाल ब्राउज़र</summary>
<summary xml:lang="sk">Webový prehliadač</summary>
<summary xml:lang="sl">Spletni brskalnik</summary>
<summary xml:lang="sv">Webbläsare</summary>
<summary xml:lang="tr">Web Tarayıcısı</summary>
<summary xml:lang="tr">Web Tarayıcı</summary>
<summary xml:lang="uk">Переглядач інтернету</summary>
<summary xml:lang="x-test">xxWeb Browserxx</summary>
<summary xml:lang="zh-CN">网页浏览器</summary>
<summary xml:lang="zh-TW">網路瀏覽器</summary>
<description>
@ -105,45 +83,38 @@
</p>
<p xml:lang="ar">فالكون هو متصفّح وبّ جديد وسريع للغاية مبنيّ على «كيوت». يهدف التطبيق ليكون متصفّح وبّ خفيف ومتوفّر لأغلب المنصّات الرئيسيّة. بدأ هذا المشروع أساسًا لأغراض تعليميّة، ولكن ومنذ بدايته، نمى فالكون حتّى أصبح متصفّحًا بمزايا كاملة.</p>
<p xml:lang="az">Falkon yeni və çox sürətli Qt veb bələdçisidir. Falkonun hədəfi - bütün platformalar üçün yüngül veb bələdçi olmaq idi. Bu layihə ilk öncə yalnız təhsil məqsədi ilə buraxılmışdır. Lakin lap əvvəldən Falkon çoxfunksiyalı veb bələdçiyə çevrilmişdir.</p>
<p xml:lang="bg">Falkon е нов и много бърз Qt уеб браузър, който е наличен за всички основни платформи. Първоначално проектът е създаден само за образователни цели, но след това Falkon се разви в пълнофункционален браузър.</p>
<p xml:lang="bg">Falkon е нов и много бърз Qt уеб браузър, който е начилен за всички основни платформи. Първоначално проектът е създаден само за образователни цели, но след това Falkon се разви в пълнофункционален браузър.</p>
<p xml:lang="ca">El Falkon és un navegador Qt nou i molt ràpid. Pretén ser un navegador web lleuger, disponible a través de totes les principals plataformes. Aquest projecte només es va iniciar originalment amb finalitats educatives. Però des del seu inici, el Falkon s'ha convertit en un navegador ric en característiques.</p>
<p xml:lang="ca-valencia">Falkon és un navegador Qt nou i molt ràpid. Pretén ser un navegador web lleuger, disponible a través de totes les principals plataformes. Este projecte només es va iniciar originalment amb finalitats educatives. Però des del seu inici, Falkon s'ha convertit en un navegador ric en característiques.</p>
<p xml:lang="cs">Falkon je nový a velmi rychlý webový prohlížeč ve Qt. Cílem je poskytnout lehký prohlížeč dostupný na všech hlavních platformách. Tento projekt původně začal pouze pro vzdělávací účely, ale stal se z něj prohlížeč plný různých užitečných vlastností.</p>
<p xml:lang="da">Falkon er en ny og meget hurtig Qt-webbrowser. Den går efter at være en letvægts-webbrowser tilgængelig på alle større platforme. Projektet blev oprindeligt kun startet til uddannelsesformål, men Falkon har siden sin begyndelse vokset sig til en funktionsrig browser.</p>
<p xml:lang="de">Falkon ist ein neuer und sehr schneller Qt-Webbrowser. Er ist ein schlanker Webbrowser für alle gängigen Plattformen. Dieses Projekt wurde von ursprünglich nur als Lernprojekt gestartet. Aber von Anfang an hat Falkon hat sich zu einem funktionsreichen Browser entwickelt.</p>
<p xml:lang="el">Το Falkon είναι ένας νέος και πολύ γρήγορος περιηγητής ιστού σε Qt. Στόχο έχει να είναι ένας ελαφρύς περιηγητής ιστού διαθέσιμος για όλες τις κύριες πλατφόρμες. Αυτό το έργο στη αρχή προοριζόταν μόνο για εκπαιδευτικούς σκοπούς. Αλλά από το ξεκίνημά του το Falkon εξελίχθηκε σε έναν πλούσιο χαρακτηριστικών περιηγητή.</p>
<p xml:lang="el">Το Falkon είναι ένας νέος και πολύ γρήγορος περιηγητής ιστού σε Qt. Στόχο έχει να είναι ένας ελαφρύς περιηγητής ιστού διαθέσιμος για όλες τις κύριες πλατφόρμες. Αυτό το έργο στη αρχή προοριζόταν μόνο για εκπαιδευτικούς σκοπούς. Αλλά παό το ξεκίνημά του το Falkon εξελίχθηκε σε έναν πλούσιο χαρακτηριστικών περιηγητή.</p>
<p xml:lang="en-GB">Falkon is a new and very fast Qt web browser. It aims to be a lightweight web browser available through all major platforms. This project has been originally started only for educational purposes. But from its start, Falkon has grown into a feature-rich browser.</p>
<p xml:lang="eo">Falkon estas nova kaj tre rapida Qt-retumilo. Ĝi celas esti malpeza TTT-legilo disponebla per ĉiuj ĉefaj platformoj. Ĉi tiu projekto estis origine komencita nur por edukaj celoj. Sed de sia komenco, Falkon kreskis al kapablo-riĉa retumilo.</p>
<p xml:lang="es">Falkon es un nuevo y muy rápido navegador web. Pretende ser un navegador web ligero disponible para todas las plataformas más populares. Este proyecto se inició originalmente con fines educativos. Aunque, desde el principio, Falkon se ha ido convirtiendo en un navegador rico en funcionalidades.</p>
<p xml:lang="et">Falkon on uus ja väga kiire Qt veebilehitseja. Selle sihiks on olla kergekaaluline veebilehitseja, mida saab kasutada kõigil suurematel platvormidel. Õigupoolest loodi projekt esialgu puhtalt õppimise eesmärgil. Kuid seejärel on Falkonist kiiresti saanud võimalusterohke veebilehitseja.</p>
<p xml:lang="eu">Falkon, Qt web arakatzaile berri eta oso azkar bat da. Plataforma nagusien bidez eskura daitekeen web arakatzaile arina izatea du helburu. Proiektu hau hasieran hezkuntza-helburuekin soilik hasi zen. Baina hasiera hartatik, Falkon ezaugarriz-beteriko arakatzaile bat izan arte hazi da.</p>
<p xml:lang="fi">Falkon on uusi ja hyvin nopea Qt-verkkoselain. Se pyrkii olemaan kaikilla merkittävillä alustoilla käytettävissä oleva kevyt selain. Hanke käynnistettiin alkuaan opetustarkoituksin, mutta alusta saakka Falkonista on kasvanut monitoimintainen selain.</p>
<p xml:lang="fr">Falkon est un nouveau navigateur Internet sous Qt, ultra-rapide. Il a pour objectif de devenir un navigateur web léger disponible sur toutes les plate-formes majeures. Ce projet avait à l'origine des fins purement éducatives. Mais après ces débuts, Falkon est devenu un navigateur riche en fonctionnalités.</p>
<p xml:lang="gl">Falkon é un navegador web novo e moi rápido feito con Qt. Pretende ser un navegador web lixeiro dispoñíbel nas plataformas maioritarias. O proxecto comezou por curiosidade. Pero desde entón, Falkon converteuse nun navegador moi completo.</p>
<p xml:lang="he">Falkon הוא דפדפן חדש ומהיר במיוחד על בסיס Qt. מטרתו היא לשמור על קלילות ולהיות זמין בכל הפלטפורמות העיקריות. המיזם הזה נוסד לראשונה למטרות חינוכיות בלבד. אך מראשיתו, צמח Falkon להיות דפדפן עתיר יכולות.</p>
<p xml:lang="hi">फ़ॉकन एक नया और बहुत तेज़ Qt वेब ब्राउज़र है। इसका लक्ष्य सभी प्रमुख प्लेटफ़ॉर्म पर उपलब्ध एक हल्का वेब ब्राउज़र बनना है। यह प्रोजेक्ट मूल रूप से केवल शैक्षिक उद्देश्यों के लिए शुरू किया गया है। लेकिन अपनी शुरुआत से ही, फ़ॉकन एक सुविधा संपन्न ब्राउज़र बन गया है।</p>
<p xml:lang="hu">A Falkon egy új és nagyon gyors Qt-alapú webböngésző. A célja, hogy minden fő platformon elérhető pehelysúlyú böngészővé váljon. A projekt eredetileg oktatási célból indult, de már az elején egy funkciógazdag böngészővé vált.</p>
<p xml:lang="ia">Falkon es un nove e multe rapide navigator web Qt. Illoindende esser un navigator web legier disponibile per omne major platteformas. Iste projecto ha essite startate originalmente sol per propositos educational. Ma ab su initio, Falkon ha crescite in un navigator ric de characteristicas.</p>
<p xml:lang="id">Falkon adalah penelusur web Qt yang baru dan sangat cepat. Ini bertujuan untuk menjadi penelusur web ringan yang tersedia melalui semua platform utama. Proyek ini awalnya hanya dimulai untuk tujuan pendidikan. Tapi sejak awal, Falkon telah tumbuh menjadi penelusur kaya fitur.</p>
<p xml:lang="is">Falkon er nýr og mjög hraðvirkur Qt-netvafri. Markmiðið er að hann sé léttur vafri fyrir sem flest kerfi. Verkefnið byrjaði sem kennsluverkefni, en frá því hefur Falkon vaxið upp í að vera fullorðinn vafri með úrval eiginleika.</p>
<p xml:lang="it">Falkon è un nuovo e velocissimo browser web Qt. Mira ad essere un browser web leggero, e disponibile per tutte le maggiori piattaforme. Il progetto è iniziato inizialmente a scopo educativo, ma da allora Falkon è diventato un browser ricco di funzionalità.</p>
<p xml:lang="ka">Falcon არის ახალი და ძალიან სწრაფი Qt ვებ ბრაუზერი. მისი მიზანია იყოს მსუბუქი ვებ ბრაუზერი, რომელიც ხელმისაწვდომია ყველა ძირითადი პლატფორმის საშუალებით. ეს პროექტი თავდაპირველად დაიწყო მხოლოდ საგანმანათლებლო მიზნებისთვის. მაგრამ მისი დასაწყისიდან, Falkon ფუნქცებით მდიდარი ბრაუზერში გადაიზარდა.</p>
<p xml:lang="ko">Falkon은 Qt 기반 웹 브라우저입니다. 모든 주요 플랫폼에서 사용할 수 있는 경량 웹 브라우저입니다. 이 프로젝트는 교육용 목적에서 시작해서 다기능 웹 브라우저로 발전했습니다.</p>
<p xml:lang="lg">Falkon bulawuza empya eyeyambisa Qt, era nga eyanguya nyo. Egenderedwa okukolera ku sistemu ez'ebika ebikulu byonna nga bw'etanyunyunta. Falkon eyagiyiiya yasooka kuba nga akola kya kweyigiriza, kyokka okuva olwo ekulaakulanizidwa n'efuukira ddala bulawuza ey'obusobozi bungi.</p>
<p xml:lang="lt">Falkon yra nauja ir labai greita Qt saityno naršyklė. Jos tikslas būti supaprastinta saityno naršykle, prieinama visose pagrindinėse platformose. Šis projektas, iš pradžių, prasidėjo tik švietimo tikslais. Bet nuo savo pradžios Falkon užaugo į daugiafunkcę naršyklę.</p>
<p xml:lang="lv">„Falkon“ ir jauna un ļoti ātra „Qt“ pārlūkprogramma. Tās mērķis ir būt vieglai programmai, kas pieejama visās lielākajās platformās. Šis projekts sākās izglītības nolūkos, bet laika gaitā „Falkon“ ir izaudzis par iespējām bagātu tīmekļa pārlūkprogrammu.</p>
<p xml:lang="nl">Falkon is een nieuwe en zeer snelle Qt-webbrowser. Zijn doel is om een lichtgewicht webbrowser te zijn, beschikbaar via alle belangrijke platformen. Dit project is oorspronkelijk alleen gestart voor onderwijsdoeleinden. Maar vanaf zijn start is Falcon gegroeid tot een browser rijk aan functies.</p>
<p xml:lang="nn">Falkon er ein ny og svært kjapp Qt-nettlesar. Målet er ein nettlesar som ikkje krev mykje systemressursar og som er tilgjengeleg på dei mest brukte plattformene. Programmet vart opphavleg utvikla berre som eit læreprosjekt, men har over tid blitt til ein funksjonsrik nettlesar.</p>
<p xml:lang="pl">Falkon jest nową i bardzo szybką przeglądarką internetową opartą na Qt. Celem Falkona jest być lekkim oprogramowaniem, dostępnym na wszystkich głównych platformach. Projekt ten został pierwotnie rozpoczęty wyłącznie w celach edukacyjnych, ale od swojego początku, Falkon rozrósł się do bogatej w funkcje przeglądarki.</p>
<p xml:lang="pt">O Falkon é um navegador novo e muito rápido em QtWebKit. Pretende ser um navegador Web leve e disponível em todas as plataformas importantes. Este projecto foi iniciado originalmente para fins educativos. Porém, desde o início, o Falkon cresceu para um navegador rico em funcionalidades.</p>
<p xml:lang="pt-BR">O Falkon é um navegador Web novo e muito rápido feito em Qt. Destina-se a ser um navegador Web leve disponível em todas as principais plataformas. Este projeto começou originalmente apenas para fins educacionais. Mas, desde o início, o Falkon tornou-se um navegador rico em funcionalidades.</p>
<p xml:lang="ru">Falkon — новый и очень быстрый легковесный веб-браузер на основе Qt. Он доступен на всех основных платформах. Проект изначально разрабатывался в образовательных целях, но затем программа Falkon постепенно превратилась в полнофункциональный браузер.</p>
<p xml:lang="sa">Falkon इति नूतनं अतीव द्रुतं च Qt जालपुटम् अस्ति । सर्वेषां प्रमुखमञ्चानां माध्यमेन उपलब्धः लघुजालपुटः भवितुम् अस्य उद्देश्यम् अस्ति । एषा परियोजना मूलतः केवलं शैक्षिकप्रयोजनार्थं आरब्धा अस्ति । परन्तु आरम्भादेव फाल्कनः विशेषता-समृद्धः ब्राउजर् इति रूपेण वर्धितः अस्ति ।</p>
<p xml:lang="sk">Falkon je nový a veľmi rýchly Qt prehliadač. Jeho cieľom je byť ľahký a dostupný na všetkých platformách. Tento projekt začal iba na účely vzdelávania. Ale časom sa stal plnohodnotným prehliadačom.</p>
<p xml:lang="sl">Falkon je nov in zelo hiter spletni brskalnik Qt. Njegov cilj je biti lahek spletni brskalnik, ki naj bi bil na voljo na vseh glavnih platformah. Ta projekt se je prvotno začel le v izobraževalne namene. Toda Falkon je že od svojega začetka je prerasel v brskalnik z bogatimi možnostmi.</p>
<p xml:lang="sv">Falkon är en ny och mycket snabb Qt webbläsare. Den har som mål att vara en lättviktig webbläsare tillgänglig på alla större plattformar. Projektet startades ursprungligen bara i utbildningssyfte, men från starten har Falkon växt till en funktionsrik webbläsare.</p>
<p xml:lang="tr">Falkon, yeni ve çok hızlı bir Qt web tarayıcısıdır. Tüm majör platformlarda kullanılabilir hızlı bir tarayıcı olmayı hedefler. Başlangıçta bu proje eğitim amaçlı idi; ancak artık Falkon çok özellikli bir tarayıcı olarak kullanıma hazırdır.</p>
<p xml:lang="uk">Falkon — нова і дуже швидка програма для перегляду інтернету на основі навігатора Qt. Метою проєкту є створення невибагливого до ресурсів переглядача інтернету для усіх основних програмних платформ. Реалізацію проєкту було розпочато з навчальною метою. Втім, з того часу Falkon стала повноцінним переглядачем.</p>
<p xml:lang="x-test">xxFalkon is a new and very fast Qt web browser. It aims to be a lightweight web browser available through all major platforms. This project has been originally started only for educational purposes. But from its start, Falkon has grown into a feature-rich browser.xx</p>
<p xml:lang="zh-CN">Falkon 是一款全新的超快速 Qt 网络浏览器。它将是一款轻量级的跨平台浏览器。这个项目当初仅仅作为教育项目。但是从一开始Falkon 就成长为一款功能丰富的浏览器。</p>
<p xml:lang="zh-TW">Falkon 是一個嶄新且非常快速的 Qt 網路瀏覽器。其目標為輕量級且在所有主流平臺提供的網路瀏覽器。此專案一開始僅為教育目的啟動。但到現在Falkon 已經成長為功能豐富的瀏覽器。</p>
<p>
@ -154,42 +125,35 @@
<p xml:lang="bg">Falkon притежава всички стандартни възможности, които се очакват от уеб браузър, включително отметки, история и раздели. Освен това, можете да управлявате RSS емисии във вградения RSS четец, да спирате реклами с вградената приставка AdBlock, да блокирате Flash с Click2Flash и да редактирате базата от данни със SSL сертификати.</p>
<p xml:lang="ca">El Falkon té totes les funcions estàndard que s'esperen d'un navegador web. Inclou adreces d'interès, historial (ambdós també a la barra lateral) i pestanyes. A més, podeu gestionar els canals RSS amb un lector RSS inclòs, bloquejar els anuncis amb un complement AdBlock integrat, bloquejar el contingut Flash amb Click2Flash i editar la base de dades de certificats de l'AC local amb un gestor SSL.</p>
<p xml:lang="ca-valencia">Falkon té totes les funcions estàndard que s'esperen d'un navegador web. Inclou adreces d'interés, historial (ambdós també en la barra lateral) i pestanyes. A més, podeu gestionar els canals RSS amb un lector RSS inclòs, bloquejar els anuncis amb un complement AdBlock integrat, bloquejar el contingut Flash amb Click2Flash i editar la base de dades de certificats de l'AC local amb un gestor SSL.</p>
<p xml:lang="cs">Falkon obsahuje všechny standardní funkce, které byste u prohlížeče čekali. Obsahuje záložky, historii (obojí rovněž v postranní liště) a karty. Navíc může pomocí vlastní čtečky RSS spravovat kanály RSS, blokovat reklamu s vlastním modulem AdBlock, blokovat Flash s Click2Flash a upravovat místní databázi certifikátů CA se správcem SSL.</p>
<p xml:lang="cs">Falkon obsahuje všechny standardní funcke, které byste u prohlížeče čekali. Obsahuje záložky, historii (obojí rovněž v postranní liště) a karty. Navíc může pomocí vlastní čtečky RSS spravovat kanály RSS, blokovat reklamu s vlastním modulem AdBlock, blokovat Flash s Click2Flash a upravovat místní databázi certifikátů CA se správcem SSL.</p>
<p xml:lang="da">Falkon har alle standardfunktioner som du forventer fra en webbrowser. Den inkluderer bogmærker, historik (begge findes også i sidebjælken) og faneblade. Derudover kan du håndtere RSS-feeds med en inkluderet RSS-læser, blokere reklamer med et indbygget AdBlock-plugin, blokere Flash-indhold med Click2Flash og redigere den lokale CA-certifikater-database med en SSL-manager.</p>
<p xml:lang="de">Falkon verfügt über alle Standardfunktionen, die Sie von einem Webbrowser erwarten, z. B. Lesezeichen, Verlauf (beide auch in der Seitenleiste) und Unterfenster. Darüber hinaus können Sie RSS-Feeds mit einem integrierten RSS-Reader verwalten, Anzeigen mit einem integrierten AdBlock-Modul blockieren, Flash-Inhalte mit Click2Flash blockieren und die lokale CA.-Zertifikatsdatenbank mit einem SSL-Verwaltung bearbeiten.</p>
<p xml:lang="el">Το Falkon διαθέτει όλες τις τυπικές λειτουργίες ενός περιηγητή ιστού. Περιλαμβάνει σελιδοδείκτες, ιστορικό (και στην πλευρική γραμμή) και καρτέλες. Επίσης μπορείτε να διαχειριστείτε ροές RSS με έναν RSS αναγνώστη που συμπεριλαμβάνεται, να μπλοκάρετε διαφημίσεις με ένα ενσωματωμένο AdBlock πρόσθετο, να μπλοκάρετε περιεχόμενο Flash με το Click2Flash και να επεξεργαστείτε την τοπική βάση CA πιστοποιητικών με έναν διαχειριστή SSL.</p>
<p xml:lang="en-GB">Falkon has all standard functions you expect from a web browser. It includes bookmarks, history (both also in sidebar) and tabs. Above that, you can manage RSS feeds with an included RSS reader, block ads with a built-in AdBlock plugin, block Flash content with Click2Flash and edit the local CA Certificates database with an SSL manager.</p>
<p xml:lang="eo">Falkon havas ĉiujn normajn funkciojn, kiujn vi atendas de retumilo. Ĝi inkluzivas legosignojn, historion (ambaŭ ankaŭ en flanka kolumno) kaj langetojn. Super tio, vi povas administri RSS-fluojn per inkluzivita RSS-leganto, bloki reklamojn per enkonstruita AdBlock-kromaĵo, bloki Flash-enhavon per Click2Flash kaj redakti la lokan datumbazon de CA Certificates per SSL-administranto.</p>
<p xml:lang="es">Falkon posee todas las funciones estándares que cabría esperar de un navegador web. Incluye marcadores, historial (ambos disponibles también en una barra lateral) y pestañas. Además, puede gestionar fuentes RSS con el lector RSS que incluye, bloquear publicidad mediante un complemento integrado, bloquear contenido Flash con Click2Flash y editar la base de datos local de certificados con un gestor SSL.</p>
<p xml:lang="et">Falkon pakub kõiki tavapäraseid funktsioone, mida inimesed veebilehitsejalt eeldavad. Nende hulka kuuluvad järjehoidjad, ajalugu (mõlemad ka külgribal) ja kaardid. Lisaks tuleb see toime RSS-uudistevoogudega sisseehitatud RSS-voogude lugejaga, reklaamide blokkimisega kaasa pandud AdBlocki plugina abil, Flashi sisu blokkimisega Click2Flash'i abil ja kohalike SK sertifikaatide andmebaasi muutmisega SSL-i halduri abil.</p>
<p xml:lang="eu">Falkon-ek web arakatzaile batengatik espero dituzun funtzio estandar guztiak ditu. Laster-markak, historia (biak alboko-barran ere) eta fitxak barneratzen ditu. Horrez gain, RSS jarioak kudeatu ditzakezu barneratutako RSS irakurlearekin, iragarkiak oztopatu AdBlock plugin batekin, Flash edukia oztopatu Click2Flash erabiliz eta CA ziurtagiri lokalen datu-basea editatu SSL kudeatzaile batekin.</p>
<p xml:lang="fi">Falkonissa on kaikki selaimelta odottamasi toiminnallisuus: kirjanmerkit, historia (kumpikin myös sivupalkissa) ja välilehdet. Lisäksi voit hallita RSS-syötteitäsi sisään rakennetulla RSS-lukuohjelmalla, estää mainokset sisään rakennetulla AdBlock-liitännäisellä, estää Flash-sisällön Click2Flashillä sekä muokata paikallista CA-varmennetietokantaa SSL-hallintatyökalulla.</p>
<p xml:lang="fr">Falkon dispose de toutes les fonctionnalités standard que l'on peut attendre d'un navigateur. Il comporte des signets, un historique (tous deux également disponibles dans la barre latérale) et des onglets. En plus de cela, vous pouvez gérer des flux « RSS » grâce au lecteur « RSS » intégré, bloquer les publicités avec le module externe « AdBlock » intégré, bloquer les contenus « Flash » avec Click2Flash et modifier la base de données de certificats « CA » locaux en utilisant un gestionnaire « SSL ».</p>
<p xml:lang="gl">Falkon ten todas as funcións estándar que esperaría dun navegador web. Inclúe marcadores, historial (ambos dispoñíbeis en barras laterais) e separadores. Ademais, pode xestionar fontes de novas RSS cun lector de RSS incluído, bloquear anuncios cun complemento de AdBlock de serie, bloquear contido en Flash con Click2Flash e editar a base de datos local de certificados de autoridades certificadoras cun xestor de SSL.</p>
<p xml:lang="he">ב־Falkon יש את כל היכולות הרגילות שאפשר לצפות להן מדפדפן אינטרנט. לרבות סימניות, היסטוריה (שניהם גם בסרגל צד) ולשוניות. מעבר לכך, אפשר לנהל ערוצי RSS עם קורא RSS מובנה, לחסום פרסומות עם תוסף AdBlock מובנה, לחסום תוכן Flash עם Click2Flash ולערוך את מסד נתוני אישורי רשויות האישורים המובנה עם מנהל SSL.</p>
<p xml:lang="hi">फ़ॉकन में वे सभी मानक फ़ंक्शन हैं जो आप एक वेब ब्राउज़र से उम्मीद करते हैं। इसमें बुकमार्क, इतिहास (दोनों साइडबार में भी) और टैब शामिल हैं। इसके अलावा, आप शामिल RSS रीडर के साथ RSS फ़ीड प्रबंधित कर सकते हैं, बिल्ट-इन AdBlock प्लगइन के साथ विज्ञापनों को ब्लॉक कर सकते हैं, Click2Flash के साथ फ़्लैश सामग्री को ब्लॉक कर सकते हैं और SSL प्रबंधक के साथ स्थानीय CA प्रमाणपत्र डेटाबेस को संपादित कर सकते हैं।</p>
<p xml:lang="hu">A Falkon rendelkezik minden standard funkcióval, ami egy webböngészőtől elvárható. Tartalmaz könyvjelzőkezelést, előzményeket (mindkettő elérhető az oldalsávon is) és lapkezelést. Ezeken felül kezelhet RSS-csatornákat a beépített RSS-olvasóval, tilthatja a hirdetéseket a beépített Adblock bővítménnyel, a Flash tartalmat a Clock2Flashsel és szerkesztheti a helyi CA tanúsítvány-adatbázist az SSL-kezelővel.</p>
<p xml:lang="gl">Falkon ten todas as funcións estándar que esperaría dun navegador web. Inclúe marcadores, historial (ambos dispoñíbeis en barras laterais) e separadores. Ademais, pode xestionar fontes de novas RSS cun lector de RSS incluído, bloquear anuncios cun complemento de AdBlock integrado, bloquear contido en Flash con Click2Flash e editar a base de datos local de certificados de autoridades certificadoras cun xestor de SSL.</p>
<p xml:lang="ia">Falkon ha omne functiones standard que tu expecta ab un navigator web. Illo include marcatores de libro (marcapaginas), chronologia (ambes anque in barra lateral) e schedas. Super illo, tu pote manear syndicatione RSS con un lector de RSS includite, blocar publicitate con le plugin construite internemente AdBlock, blocar contento de Flash con Click2Flash e modificar le base de datos local de Certificato CA con un gerente de SSL.</p>
<p xml:lang="id">Falkon memiliki semua fungsi standar yang kamu harapkan dari penelusur web. Ini termasuk markah, histori (keduanya juga di bilah sisi) dan tab. Di samping itu, kamu bisa mengelola feed RSS dengan pembaca RSS yang disertakan, mencekal iklan dengan plugin AdBlock bawaan, mencekal konten Flash dengan Click2Flash dan mengedit database CA Certificates lokal dengan pengelola SSL.</p>
<p xml:lang="is">Falkon er með alla þá stöðluðu eiginleika sem fólk býst við að séu í vöfrum. Þar má telja bókamerki, vinnsluferil (bæði einnig á hliðarspjaldi) og flipa. Auk þess er hægt að sýsla með RSS-streymi með innbyggðum RSS-lesara, útilokun auglýsinga með innbyggðri AdBlock-viðbót, útilokun Flash-efnis með Click2Flash og breytingar á gagnagrunni CA-skilríkja með SSL-umsýslustýringu.</p>
<p xml:lang="it">Falkon ha tutte le funzioni standard che ci si aspetterebbe da un browser web, ad esempio i segnalibri e la cronologia, entrambi anche nella barra laterale, e ha anche le schede. Inoltre puoi gestire i feed RSS con l'apposito lettore incluso, e puoi bloccare sia le inserzioni per mezzo di un'estensione AdBlock integrata, sia i contenuti Flash con Click2Flash. Infine, puoi modificare la banca dati dei certificati CA con un gestore SSL.</p>
<p xml:lang="ka">Falcon-ს აქვს ყველა სტანდარტული ფუნქცია, რომელსაც ელით ვებ ბრაუზერისგან. იგი მოიცავს სანიშნეებს, ისტორიას (როგორც გვერდით ზოლში), ასევე ჩანართებს. ამის ზემოთ, თქვენ შეგიძლიათ მართოთ RSS არხები ჩართული RSS მკითხველით, დაბლოკოთ რეკლამები ჩაშენებული AdBlock მოდულით, დაბლოკოთ Flash შინაარსი Click2Flash-ით და შეცვალოთ ადგილობრივი CA სერთიფიკატების მონაცემთა ბაზა SSL მენეჯერით.</p>
<p xml:lang="ko">Falkon에는 웹 브라우저의 표준 기능이 들어 있습니다. 책갈피, 과거 기록(사이드바 지원), 탭을 지원합니다. 이외에도 내장 RSS 리더를 통한 RSS 피드 구독, AdBlock 플러그인으로 광고 차단, Click2Flash로 플래시 콘텐츠 차단, SSL 관리자로 로컬 CA 인증서 편집 등을 지원합니다.</p>
<p xml:lang="lg">Falkon erina obusobozi bwonna bwe wandisuubidde okusanga mu bulawuza ya ku mutimbagano. Mu ebyo mwe muli:- Ebifo by'okebedde bye wandyagadde okujjukira esobola okubikolera obukwatakifo- Etereka olukalala lw'ebifo byewakeberako - Esobola okuleeta obutimbe obw'enyongeza obikkulire awamu empapula za ku mutimbagano ezisukka mu lumu - Ekusobozesa okusoma amawulire agava mu mikutu eg'ekika kya RSS - Ejja ne AdBlock azibira ebirango by'oteetaaga okulaba - Ejja ne Click2Flash agaana ebikolera ku fulaasi okukutaataaganya - Ekusobozesa okukyusa ebiri mu ggwanika lya data lya yo ery'emmatizo eziva mu bagabi ba zo</p>
<p xml:lang="lt">Falkon turi visas standartines funkcijas, kurių galite tikėtis iš saityno naršyklės. Joje yra adresynas, žurnalas (taip pat šoninėje juostoje) ir kortelės. Be to, galite tvarkyti RSS kanalus naudodami integruotą RSS skaitytuvę, blokuoti reklamas naudodami įtaisytą „AdBlock“ įskiepį, blokuoti „Flash“ turinį naudodami „Click2Flash“ ir taisyti vietinę LĮ liudijimų duomenų bazę naudodami SSL tvarkytuvę.</p>
<p xml:lang="lv">„Falkon“ nodrošina visas tīmekļa pārlūkprogrammas standarta funkcijas. Starp tām ir grāmatzīmes, vēsture (atveramas arī sānu joslā) un cilnes. Tāpat „Falkon“ ļauj pārvaldīt RSS plūsmas, bloķēt reklāmas, izmantojot iebūvēto „AdBlock“ spraudni, bloķēt „Flash“ saturu ar „Click2Flash“ un rediģēt lokālo CA sertifikātu datubāzi, izmantojot SSL pārvaldnieku.</p>
<p xml:lang="nl">Falcon heeft alle standaard functies die u verwacht van een webbrowser. Het bevat bladwijzers, geschiedenis (ook in de zijbalk) en tabbladen. Bovendien kunt u RSS-feeds beheren met een ingevoegde RSS-reader, ads blokkeren met een ingebouwde AdBlock plug-in, Flash-inhoud blokkeren met Click2Flash en de lokale database met CA Certificaten met een SSL-beheerder.</p>
<p xml:lang="nn">Falkon har alle funksjonane du forventar av ein nettlesar, som fane- og bokmerkestøtte, og ein logg over vitja sider (også tilgjengeleg frå ein sidestolpe). Han har òg innebygd RSS-lesar, reklamefilter, Flash-blokkering (klikk for å starta) og redigerbar CA-sertifikatdabase.</p>
<p xml:lang="pl">Falkon oddaje do dyspozycji użytkownika wszystkie standardowe funkcje, których oczekuje się od przeglądarki internetowej. Posiada karty, zakładki oraz możliwość zapisu historii, którą następnie można wyświetlić zarówno w osobnym oknie, jak i na pasku bocznym. Poza tym, może on obsługiwać kanały RSS przy użyciu załączonego czytnika, blokować reklamy za pomocą wbudowanej wtyczki AdBlock, blokować treści Flash przy użyciu Click2Flash i edytować lokalne certyfikaty CA.</p>
<p xml:lang="pt">O Falkon tem todas as funções-padrão que iria esperar de um navegador Web. Inclui os favoritos, o histórico (ambos na barra lateral) e páginas separadas. Para além disso, pode gerir fontes RSS com um leitor de RSS incluído, o bloqueio de anúncios com um 'plugin' do AdBlock incorporado, o bloqueio de conteúdos em Flash com o Click2Flash e a edição da base de dados de Certificados da AC locais com um gestor de SSL.</p>
<p xml:lang="pt-BR">O Falkon possui todas as funções padrão que você espera de um navegador Web. Inclui favoritos, histórico (ambos também na barra lateral) e abas. Em cima disso, você pode gerenciar feeds RSS com um leitor de RSS incluído, bloquear anúncios com um plugin AdBlock incorporado, bloquear conteúdo em Flash com Click2Flash e editar o banco de dados de certificados CA local com um gerenciador SSL.</p>
<p xml:lang="ru">Falkon предоставляет все стандартные возможности веб-браузера: закладки, журнал (доступный также и на боковой панели) и вкладки. Кроме того, программа поддерживает управление RSS-потоками с помощью встроенного модуля просмотра RSS, блокировку рекламы с помощью подключаемого модуля AdBlock, блокировку содержимого Flash с помощью Click2Flash и редактирование локальной базы данных сертификатов ЦС с помощью диспетчера SSL.</p>
<p xml:lang="sa">Falkon इत्यत्र सर्वाणि मानककार्यं यत् भवन्तः जालपुटतः अपेक्षन्ते । अस्मिन् पुस्तकचिह्नानि, इतिहासः (उभौ अपि पार्श्वपट्टिकायां) ट्याब्स् च सन्ति । ततः उपरि, भवान् समाविष्टेन RSS रीडरेन सह RSS फीड् प्रबन्धयितुं, अन्तर्निर्मितेन AdBlock प्लगिन् इत्यनेन विज्ञापनं अवरुद्ध्य, Click2Flash इत्यनेन Flash सामग्रीं अवरुद्ध्य SSL प्रबन्धकेन सह स्थानीयं CA प्रमाणपत्रदत्तांशकोशं सम्पादयितुं च शक्नोति</p>
<p xml:lang="sk">Falkon má všetky bežné funkcie, ktoré by ste čakali od bežného internetového prehliadača. Obsahuje záložky, históriu (oboje aj v bočnom paneli) a karty. Okrem toho, môžete spravovať RSS prúdy so zabudovaným čítačom, blokovať reklamy s AdBlockom, blokovať Flash s Click2Flash a upravovať lokálnu databázu CA certifikátov so SSL správcom.</p>
<p xml:lang="sl">Falkon ima vse standardne funkcije, ki jih pričakujete od spletnega brskalnika. Vključuje zaznamke, zgodovino (oboje tudi v stranski vrstici) in zavihki. Zgoraj lahko upravljajte vire RSS z vključenim bralnikom RSS, blokirate oglase z vgrajenim vtičnikom AdBlock, blokirate vsebino Flash s Click2Flash in uredite lokalno podatkovno bazo potrdil z upraviteljem SSL.</p>
<p xml:lang="sv">Falkon har alla standardfunktioner man kan förvänta sig av en webbläsare. Det omfattar bokmärken, historik (båda också i sidorad) och flikar. Förutom det, kan man hantera RSS-kanaler med en inbyggd RSS-läsare, blockera reklam med ett inbyggt insticksprogram för reklamblockering, blockera Flash-innehåll med Click2Flash och redigera den lokala certifikatdatabasen för certifikatutfärdare med en SSL-hanterare.</p>
<p xml:lang="tr">Falkonda, bir web tarayıcısından beklediğiniz tüm standart işlevler vardır. Yer imleri, geçmiş (kenar çubuğundan kullanılabilir) ve sekmeler içerir. Bunların yanında, RSS beslemelerinizi yönetmek ve okumak için bir RSS okuyucusu, dahili bir reklâm engelleme eklentisi, Flash içeriği engellemek için Click2Flash ve yerel CA sertifikalarını yönetmek için bir SSL yöneticisi kullanıma hazırdır.</p>
<p xml:lang="tr">Falkon'da, bir web tarayıcıdan beklediğiniz tüm standart işlevler vardır. Yer imleri, geçmiş (kenar çubuğundan kullanılabilir) ve sekmeler içerir. Bunların yanında, RSS beslemelerinizi yönetmek ve okumak için bir RSS okuyucusu, dahili bir reklam engelleme eklentisi, Flash içeriği engellemek için Click2Flash ve yerel CA sertifikalarını yönetmek için bir SSL yöneticisi kullanıma hazırdır.</p>
<p xml:lang="uk">У Falkon ви знайдете усі можливості типової програми для перегляду інтернету. Передбачено можливість користування закладками, журналом перегляду (ці дві можливості реалізовано і на бічній панелі) та вкладками. Крім того ви можете отримувати подачі новин RSS за допомогою вбудованого засобу читання RSS, блокувати рекламні повідомлення за допомогою вбудованого додатка блокування реклами, блокувати включення Flash за допомогою додатка Click2Flash та редагувати локальну базу сертифікатів CA за допомогою засобу керування даними SSL.</p>
<p xml:lang="x-test">xxFalkon has all standard functions you expect from a web browser. It includes bookmarks, history (both also in sidebar) and tabs. Above that, you can manage RSS feeds with an included RSS reader, block ads with a built-in AdBlock plugin, block Flash content with Click2Flash and edit the local CA Certificates database with an SSL manager.xx</p>
<p xml:lang="zh-CN">Falkon 包含所有浏览器的高级功能,包括书签、历史、侧边栏和标签页。您可以通过内置的 RSS 阅读器管理 RSS 资源,通过内置的 AdBlock 插件屏蔽广告,通过 Click2Flash 屏蔽 Flash 内容,通过 SSL 管理器编辑本地 CA 认证数据库。</p>
<p xml:lang="zh-TW">Falkon 有所有您期望會在網路瀏覽器上看到的標準功能。其包含了書籤、歷史紀錄(兩個都可以側邊欄中找到)與分頁。除此之外,您可以透過內建的 RSS 閱讀器管理 RSS feed使用內建的 AdBlock 外掛程式阻擋廣告,透過 Click2Flash 阻擋 Flash 內容,並使用 SSL 管理器編輯本機 CA 證書資料庫。</p>
</description>
@ -206,26 +170,9 @@
</provides>
<content_rating type="oars-1.1"/>
<releases>
<release version="25.08.1" date="2025-09-11"/>
<release version="25.08.0" date="2025-08-14"/>
<release version="25.04.3" date="2025-07-03"/>
<release version="25.04.2" date="2025-06-05"/>
<release version="25.04.1" date="2025-05-08"/>
<release version="25.04.0" date="2025-04-17"/>
<release version="24.12.3" date="2025-03-06"/>
<release version="24.12.2" date="2025-02-06"/>
<release version="24.12.1" date="2025-01-09"/>
<release version="24.12.0" date="2024-12-12"/>
<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"/>
<release version="23.04.2" date="2023-06-08"/>
<release version="23.04.1" date="2023-05-11"/>
<release version="23.04.0" date="2023-04-20"/>
<release version="22.12.3" date="2023-03-02"/>
</releases>
</component>

View File

@ -1,7 +1,6 @@
[Desktop Entry]
Name=Falkon
Name[ar]=فالكون
Name[ast]=Falkon
Name[az]=Falkon
Name[bg]=Falkon
Name[ca]=Falkon
@ -11,25 +10,19 @@ Name[da]=Falkon
Name[de]=Falkon
Name[el]=Falkon
Name[en_GB]=Falkon
Name[eo]=Falkon
Name[es]=Falkon
Name[et]=Falkon
Name[eu]=Falkon
Name[fi]=Falkon
Name[fr]=Falkon
Name[gl]=Falkon
Name[he]=Falkon
Name[hi]=
Name[hu]=Falkon
Name[ia]=Falkon:
Name[id]=Falkon
Name[is]=Falkon
Name[it]=Falkon
Name[ka]=Falkon
Name[ko]=Falkon
Name[lg]=Falkon
Name[lt]=Falkon
Name[lv]=Falkon
Name[nl]=Falkon
Name[nn]=Falkon
Name[pa]=
@ -37,12 +30,12 @@ Name[pl]=Falkon
Name[pt]=Falkon
Name[pt_BR]=Falkon
Name[ru]=Falkon
Name[sa]=
Name[sk]=Falkon
Name[sl]=Falkon
Name[sv]=Falkon
Name[tr]=Falkon
Name[uk]=Falkon
Name[x-test]=xxFalkonxx
Name[zh_CN]=Falkon
Name[zh_TW]=Falkon
Type=Application
@ -59,25 +52,19 @@ Comment[da]=En hurtig og sikker webbrowser
Comment[de]=Ein schneller und sicherer Webbrowser
Comment[el]=Ένας γρήγορος και ασφαλής περιηγητής ιστού
Comment[en_GB]=A fast and secure web browser
Comment[eo]=Rapida kaj sekura TTT-legilo
Comment[es]=Un navegador web rápido y seguro
Comment[et]=Kiire ja turvaline veebilehitseja
Comment[eu]=Web arakatzaile azkar eta seguru bat
Comment[fi]=Nopea ja turvallinen verkkoselain
Comment[fr]=Un navigateur Web rapide et sécurisé
Comment[gl]=Un navegador rápido e seguro.
Comment[he]=דפדפן אינטרנט מהיר ומאובטח
Comment[hi]= ि
Comment[hu]=Gyors és biztonságos webböngésző
Comment[gl]=Un navegador rápido e seguro
Comment[ia]=Un rapide e secure navigator web
Comment[id]=Sebuah penelusur web yang cepat dan aman
Comment[is]=Hraðvirkur og öruggur vafri
Comment[it]=Un browser web veloce e sicuro
Comment[ka]=
Comment[ko]=
Comment[lg]=Bulawuza eyanguya era nga mmizi
Comment[lt]=Greita ir saugi saityno naršyklė
Comment[lv]=Ātra un droša tīmekļa pārlūkprogramma
Comment[nl]=Een snelle en veilige webbrowser
Comment[nn]=Ein kjapp og sikker nettlesar
Comment[pa]= ਿ
@ -85,12 +72,12 @@ Comment[pl]=Szybka i bezpieczna przeglądarka internetowa
Comment[pt]=Um navegador Web rápido e seguro
Comment[pt_BR]=Um navegar Web rápido e seguro
Comment[ru]=Быстрый и безопасный веб-браузер
Comment[sa]=ि ि
Comment[sk]=Rýchly a bezpečný prehliadač internetu
Comment[sl]=Hiter in varen spletni brskalnik
Comment[sv]=En snabb och säker webbläsare
Comment[tr]=Hızlı ve güvenli bir web tarayıcısı
Comment[uk]=Проста і безпечна програма для перегляду інтернету
Comment[x-test]=xxA fast and secure web browserxx
Comment[zh_CN]=
Comment[zh_TW]=
GenericName=Web Browser
@ -104,25 +91,19 @@ GenericName[da]=Webbrowser
GenericName[de]=Webbrowser
GenericName[el]=Περιηγητής ιστού
GenericName[en_GB]=Web Browser
GenericName[eo]=Retumilo
GenericName[es]=Navegador web
GenericName[et]=Veebilehitseja
GenericName[eu]=Web arakatzailea
GenericName[fi]=Verkkoselain
GenericName[fr]=Navigateur Web
GenericName[gl]=Navegador web
GenericName[he]=דפדפן
GenericName[hi]=
GenericName[hu]=Webböngésző
GenericName[ia]=Navigator Web
GenericName[id]=Penelusur Web
GenericName[is]=Vafri
GenericName[it]=Browser web
GenericName[ka]=-
GenericName[ko]=
GenericName[lg]=Bulawuza ya ku Mutimbagano
GenericName[lt]=Saityno naršyklė
GenericName[lv]=Tīmekļa pārlūks
GenericName[nl]=Webbrowser
GenericName[nn]=Nettlesar
GenericName[pa]=
@ -130,17 +111,17 @@ GenericName[pl]=Przeglądarka sieciowa
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[ru]=Веб-браузер
GenericName[sa]=
GenericName[sk]=Webový prehliadač
GenericName[sl]=Spletni brskalnik
GenericName[sv]=Webbläsare
GenericName[tr]=Web Tarayıcısı
GenericName[tr]=Web Tarayıcı
GenericName[uk]=Переглядач інтернету
GenericName[x-test]=xxWeb Browserxx
GenericName[zh_CN]=
GenericName[zh_TW]=
Exec=falkon %u
StartupWMClass=Falkon
MimeType=text/html;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-mimearchive;
MimeType=text/html;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;application/x-mimearchive;
Terminal=false
Actions=NewTab;NewWindow;PrivateBrowsing;
@ -156,38 +137,32 @@ Name[da]=Åbn nyt faneblad
Name[de]=Neues Unterfenster öffnen
Name[el]=Άνοιγμα νέας καρτέλας
Name[en_GB]=Open new tab
Name[eo]=Malfermi novan langeton
Name[es]=Abrir nueva pestaña
Name[et]=Uue kaardi avamine
Name[eu]=Ireki fitxa berria
Name[fi]=Avaa uusi välilehti
Name[fr]=Ouvrir un nouvel onglet
Name[gl]=Abrir un novo separador
Name[he]=פתיחת לשונית חדשה
Name[hi]=
Name[hu]=Új lap megnyitása
Name[ia]=Aperi nove scheda
Name[id]=Buka tab baru
Name[is]=Opna nýjan flipa
Name[it]=Apri una nuova scheda
Name[ka]=
Name[ko]=
Name[lg]=Leeta katimbe kapya
Name[lt]=Atverti naują kortelę
Name[lv]=Atvērt jaunu cilni
Name[nl]=Nieuw tabblad openen
Name[nn]=Opna ny fane
Name[pa]=
Name[pa]=
Name[pl]=Otwórz nową kartę
Name[pt]=Abrir uma nova página
Name[pt_BR]=Abrir uma nova aba
Name[ru]=Открыть новую вкладку
Name[sa]=
Name[sk]=Otvoriť novú záložku
Name[sl]=Odpri novi zavihek
Name[sv]=Öppna ny flik
Name[tr]=Yeni Sekme Aç
Name[uk]=Відкрити нову вкладку
Name[x-test]=xxOpen new tabxx
Name[zh_CN]=
Name[zh_TW]=
Icon=tab-new
@ -205,38 +180,32 @@ Name[da]=Åbn nyt vindue
Name[de]=Neues Fenster öffnen
Name[el]=Άνοιγμα νέου παραθύρου
Name[en_GB]=Open new window
Name[eo]=Malfermi novan fenestron
Name[es]=Abrir nueva ventana
Name[et]=Uue akna avamine
Name[eu]=Ireki leiho berria
Name[fi]=Avaa uusi ikkuna
Name[fr]=Ouvrir une nouvelle fenêtre
Name[gl]=Abrir unha xanela nova
Name[he]=פתיחת חלון חדש
Name[hi]= ि
Name[hu]=Új ablak megnyitása
Name[ia]=Aperi nove fenestra
Name[id]=Buka jendela baru
Name[is]=Opna nýjan glugga
Name[it]=Apre una nuova finestra
Name[ka]=
Name[ko]=
Name[lg]=Leeta ddirisa ppya
Name[lt]=Atverti naują langą
Name[lv]=Atvērt jaunu logu
Name[nl]=Nieuw venster openen
Name[nn]=Opna nytt vindauge
Name[pa]= ਿ
Name[pa]= ਿ
Name[pl]=Otwórz nowe okno
Name[pt]=Abrir uma nova janela
Name[pt_BR]=Abrir nova janela
Name[ru]=Открыть новое окно
Name[sa]= ि
Name[sk]=Otvoriť nové okno
Name[sl]=Odpri novo okno
Name[sv]=Öppna nytt fönster
Name[tr]=Yeni Pencere Aç
Name[uk]=Відкрити нове вікно
Name[x-test]=xxOpen new windowxx
Name[zh_CN]=
Name[zh_TW]=
Icon=window-new
@ -254,38 +223,31 @@ Name[da]=Start privat browsing
Name[de]=Im privaten Browsermodus starten
Name[el]=Έναρξη ιδιωτικής περιήγησης
Name[en_GB]=Start private browsing
Name[eo]=Komenci privatan foliumadon
Name[es]=Iniciar navegación privada
Name[et]=Privaatse lehitsemise alustamine
Name[eu]=Abiatu arakatze pribatua
Name[fi]=Aloita yksityisselaus
Name[fr]=Démarrer la navigation privée
Name[gl]=Iniciar a navegación privada
Name[he]=התחלת גלישה פרטית
Name[hi]=ि ि
Name[hu]=Privát böngészés indítása
Name[ia]=Initia navigation private
Name[id]=Mulai penelusuran privasi
Name[is]=Byrja einkavafur
Name[it]=Avvia navigazione anonima
Name[ka]=
Name[ko]=
Name[lg]=Tandika enkebera emmizi
Name[lt]=Pradėti privatų naršymą
Name[lv]=Sākt privāto pārlūkošanu
Name[nl]=Privébrowsing starten
Name[nn]=Start privat nettlesing
Name[pa]= ਿ
Name[pl]=Rozpocznij prywatne przeglądanie
Name[pt]=Iniciar a navegação privada
Name[pt_BR]=Iniciar navegação privada
Name[ru]=Начать просмотр в конфиденциальном режиме
Name[sa]=ि ि
Name[sk]=Začať súkromné prehliadanie
Name[sl]=Začni zasebno brskanje
Name[sv]=Starta privat webbläsning
Name[tr]=Gizli Taramayı Başlat
Name[uk]=Конфіденційний перегляд
Name[x-test]=xxStart private browsingxx
Name[zh_CN]=
Name[zh_TW]=
Icon=view-private

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-03-05 06:45+0300\n"
"Last-Translator: Safa Alfulaij <safa1996alfulaij@gmail.com>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n"
@ -15,7 +15,8 @@ msgstr ""
"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 ? 4 : 5;\n"
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
"X-Generator: Lokalize 2.0\n"
#: hellopython.py:69
msgid "My first plugin action"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2023-01-25 20:39+0400\n"
"Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
"Language-Team: ar\n"
@ -15,7 +15,8 @@ msgstr ""
"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 ? 4 : 5;\n"
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
"X-Generator: Lokalize 21.12.3\n"
#: main.qml:23
msgid "\"Hello QML\" plugin loaded"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2023-01-25 20:30+0400\n"
"Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
"Language-Team: ar\n"
@ -15,7 +15,8 @@ msgstr ""
"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 ? 4 : 5;\n"
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
"X-Generator: Lokalize 21.12.3\n"
#: mcl_settings.py:43
msgid "MiddleClickLoader Setting"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-03-05 07:15+0300\n"
"Last-Translator: Safa Alfulaij <safa1996alfulaij@gmail.com>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n"
@ -15,7 +15,8 @@ msgstr ""
"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 ? 4 : 5;\n"
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
"X-Generator: Lokalize 2.0\n"
#: button.py:30
msgid "Run Action"

View File

@ -1,42 +0,0 @@
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2024 Enol P. <enolp@softastur.org>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2024-03-27 23:31+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"
#: hellopython.py:69
msgid "My first plugin action"
msgstr ""
#: hellopython.py:76
msgid "Hello"
msgstr ""
#: hellopython.py:76
msgid "First plugin action works :-)"
msgstr ""
#: hellopython.py:81
msgid "Close"
msgstr ""
#: hellopython.py:91
msgid "Hello Python Settings"
msgstr ""
#: sidebar.py:24 sidebar.py:27
msgid "Hello Python Sidebar"
msgstr ""

View File

@ -1,70 +0,0 @@
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2024 Enol P. <enolp@softastur.org>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2024-03-27 23:31+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"
#: main.qml:23
msgid "\"Hello QML\" plugin loaded"
msgstr ""
#: main.qml:35
msgid "Bye!"
msgstr ""
#: main.qml:52
msgid "Testing QML Title"
msgstr ""
#: main.qml:53
msgid "Testing QML Tooltip"
msgstr ""
#: main.qml:81
msgid "Click Me!"
msgstr ""
#: main.qml:97
msgid "Testing QML SideBar"
msgstr ""
#: main.qml:109
msgid "Hello Qml Plugin"
msgstr ""
#: main.qml:126
msgid "Hello QML"
msgstr ""
#: main.qml:127
msgid "First qml plugin action works :-)"
msgstr ""
#: main.qml:152
msgid "Enter text to save"
msgstr ""
#: main.qml:157 main.qml:162
msgid "Save"
msgstr ""
#: main.qml:172
msgid "Saved!"
msgstr ""
#: main.qml:174
msgid "Error occurred, try again!"
msgstr ""

View File

@ -1,46 +0,0 @@
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2024 Enol P. <enolp@softastur.org>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2024-03-27 23:34+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"
#: mcl_settings.py:43
msgid "MiddleClickLoader Setting"
msgstr ""
#: mcl_settings.py:44
msgid "MiddleClickLoader"
msgstr ""
#: mcl_settings.py:45
msgid "Open url in:"
msgstr ""
#: mcl_settings.py:46
msgid "Use only valid url"
msgstr ""
#: mcl_settings.py:48
msgid "New Tab"
msgstr "Llingüeta nueva"
#: mcl_settings.py:49
msgid "Current Tab"
msgstr ""
#: mcl_settings.py:50
msgid "New Window"
msgstr ""

View File

@ -1,42 +0,0 @@
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2024 Enol P. <enolp@softastur.org>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2024-03-27 23:37+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"
#: button.py:30
msgid "Run Action"
msgstr ""
#: button.py:31
msgid "Run action on current page"
msgstr ""
#: button.py:39
msgid "RunAction button"
msgstr ""
#: button.py:48
msgid "Configure..."
msgstr ""
#: settingsdialog.py:38
msgid "Run Action Settings"
msgstr ""
#: settingsdialog.py:39
msgid "Available actions"
msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-10-31 11:31+0400\n"
"Last-Translator: Kheyyam Gojayev <xxmn77@gmail.com>\n"
"Language-Team: Azerbaijani <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2022-07-06 09:32+0400\n"
"Last-Translator: Kheyyam <xxmn77@gmail.com>\n"
"Language-Team: Azerbaijani <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-10-31 11:37+0400\n"
"Last-Translator: Kheyyam Gojayev <xxmn77@gmail.com>\n"
"Language-Team: Azerbaijani <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-10-31 11:38+0400\n"
"Last-Translator: Kheyyam Gojayev <xxmn77@gmail.com>\n"
"Language-Team: Azerbaijani <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2021-01-04 16:58+0200\n"
"Last-Translator: Yasen Pramatarov <yasen@lindeas.com>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2021-01-04 17:04+0200\n"
"Last-Translator: Yasen Pramatarov <yasen@lindeas.com>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2021-01-04 17:01+0200\n"
"Last-Translator: Yasen Pramatarov <yasen@lindeas.com>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"

View File

@ -2,21 +2,20 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Yasen Pramatarov <yasen@lindeas.com>, 2021.
# SPDX-FileCopyrightText: 2024 Mincho Kondarev <mkondarev@yahoo.de>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2024-11-10 13:06+0100\n"
"Last-Translator: Mincho Kondarev <mkondarev@yahoo.de>\n"
"Language-Team: Bulgarian <kde-i18n-doc@kde.org>\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2021-01-04 16:57+0200\n"
"Last-Translator: Yasen Pramatarov <yasen@lindeas.com>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"
"Language: bg\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.11.70\n"
"X-Generator: Lokalize 20.08.2\n"
#: button.py:30
msgid "Run Action"
@ -32,7 +31,7 @@ msgstr "RunAction бутон"
#: button.py:48
msgid "Configure..."
msgstr "Настройки…"
msgstr "Настойки..."
#: settingsdialog.py:38
msgid "Run Action Settings"
@ -40,4 +39,4 @@ msgstr "Настройки на действие"
#: settingsdialog.py:39
msgid "Available actions"
msgstr "Налични действия"
msgstr "Налични действие"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-11-27 20:43+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2021-10-29 11:40+0200\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-07-18 19:49+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-11-27 20:46+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-11-27 20:43+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2021-10-29 11:40+0200\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
@ -69,4 +69,4 @@ msgstr "Guardat!"
#: main.qml:174
msgid "Error occurred, try again!"
msgstr "S'ha produït un error, torneu-ho a provar!"
msgstr "S'ha produït un error, torneu a provar!"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-07-18 19:49+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
@ -30,7 +30,7 @@ msgstr "MiddleClickLoader"
#: mcl_settings.py:45
msgid "Open url in:"
msgstr "Obri l'URL en:"
msgstr "Obri l'URL a:"
#: mcl_settings.py:46
msgid "Use only valid url"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-11-27 20:46+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
@ -34,7 +34,7 @@ msgstr "Botó d'Executa una acció"
#: button.py:48
msgid "Configure..."
msgstr "Configura"
msgstr "Configura..."
#: settingsdialog.py:38
msgid "Run Action Settings"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-06-25 10:49+0100\n"
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-05-26 11:33+0200\n"
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-07-26 10:14+0100\n"
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-04-03 16:37+0100\n"
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon_hellopython\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-03-24 16:55+0200\n"
"Last-Translator: scootergrisen\n"
"Language-Team: Danish\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-02-11 19:58+0100\n"
"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
"Language-Team: Danish <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-02-11 19:56+0100\n"
"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
"Language-Team: Danish <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon_runaction\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-03-24 16:54+0200\n"
"Last-Translator: scootergrisen\n"
"Language-Team: Danish\n"

View File

@ -4,9 +4,9 @@
# Burkhard Lück <lueck@hube-lueck.de>, 2018.
msgid ""
msgstr ""
"Project-Id-Version: falkon_hellopython\n"
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-03-21 10:53+0100\n"
"Last-Translator: Burkhard Lück <lueck@hube-lueck.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"

View File

@ -4,9 +4,9 @@
# Burkhard Lück <lueck@hube-lueck.de>, 2018.
msgid ""
msgstr ""
"Project-Id-Version: falkon_helloqml\n"
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-11-22 09:36+0100\n"
"Last-Translator: Burkhard Lück <lueck@hube-lueck.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"

View File

@ -4,9 +4,9 @@
# Burkhard Lück <lueck@hube-lueck.de>, 2018.
msgid ""
msgstr ""
"Project-Id-Version: falkon_middleclickloader\n"
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-11-22 09:32+0100\n"
"Last-Translator: Burkhard Lück <lueck@hube-lueck.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"

View File

@ -4,9 +4,9 @@
# Burkhard Lück <lueck@hube-lueck.de>, 2018, 2019.
msgid ""
msgstr ""
"Project-Id-Version: falkon_runaction\n"
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2019-08-05 14:13+0200\n"
"Last-Translator: Burkhard Lück <lueck@hube-lueck.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-09-04 19:06+0300\n"
"Last-Translator: Stelios <sstavra@gmail.com>\n"
"Language-Team: Greek <kde-i18n-el@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-09-04 19:12+0300\n"
"Last-Translator: Stelios <sstavra@gmail.com>\n"
"Language-Team: Greek <kde-i18n-el@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2021-06-03 12:33+0300\n"
"Last-Translator: Stelios <sstavra@gmail.com>\n"
"Language-Team: Greek <kde-i18n-el@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2021-06-04 17:00+0300\n"
"Last-Translator: Stelios <sstavra@gmail.com>\n"
"Language-Team: Greek <kde-i18n-el@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-03-03 14:07+0000\n"
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n"
"Language-Team: British English <kde-l10n-en_gb@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-10-27 19:41+0100\n"
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n"
"Language-Team: British English <kde-l10n-en_gb@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-08-15 12:40+0100\n"
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n"
"Language-Team: British English <kde-l10n-en_gb@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-03-04 13:36+0000\n"
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n"
"Language-Team: British English <kde-l10n-en_gb@kde.org>\n"

View File

@ -1,42 +0,0 @@
# translation of falkon_hellopython.pot to esperanto
# Copyright (C) 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the falkon package.
# Oliver Kellogg <olivermkellogg@gmail.com, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2023-07-02 22:07+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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: hellopython.py:69
msgid "My first plugin action"
msgstr "Mia unua kromprogram-aktivo"
#: hellopython.py:76
msgid "Hello"
msgstr "Saluton"
#: hellopython.py:76
msgid "First plugin action works :-)"
msgstr "Mia unua kromprogram-aktivo funkcias :-)"
#: hellopython.py:81
msgid "Close"
msgstr "Fermi"
#: hellopython.py:91
msgid "Hello Python Settings"
msgstr "Agordoj de Hello Python"
#: sidebar.py:24 sidebar.py:27
msgid "Hello Python Sidebar"
msgstr "Flankbreto de Hello Python"

View File

@ -1,72 +0,0 @@
# translation of falkon_helloqml.pot to esperanto
# Copyright (C) 2023, Free Software Foundation, Inc.
# This file is distributed under the same license as the falkon package.
# Oliver Kellogg <olivermkellogg@gmail.com, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2023-11-15 22:01+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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Qt-Contexts: true\n"
"X-Generator: translate-po (https://github.com/zcribe/translate-po)\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: main.qml:23
msgid "\"Hello QML\" plugin loaded"
msgstr "\"Hello QML\" kromaĵo ŝargita"
#: main.qml:35
msgid "Bye!"
msgstr "Ĝis revido!"
#: main.qml:52
msgid "Testing QML Title"
msgstr "Testante QML-Titolon"
#: main.qml:53
msgid "Testing QML Tooltip"
msgstr "Testado de QML Tooltip"
#: main.qml:81
msgid "Click Me!"
msgstr "Klaku Min!"
#: main.qml:97
msgid "Testing QML SideBar"
msgstr "Testante QML SideBar"
#: main.qml:109
msgid "Hello Qml Plugin"
msgstr "Hello-Qml Kromprogramo"
#: main.qml:126
msgid "Hello QML"
msgstr "Saluton QML"
#: main.qml:127
msgid "First qml plugin action works :-)"
msgstr "Unua ago de qml kromaĵo funkcias :-)"
#: main.qml:152
msgid "Enter text to save"
msgstr "Enigu tekston por konservi"
#: main.qml:157 main.qml:162
msgid "Save"
msgstr "Konservi"
#: main.qml:172
msgid "Saved!"
msgstr "Konservita!"
#: main.qml:174
msgid "Error occurred, try again!"
msgstr "Eraro okazis, provu denove!"

View File

@ -1,46 +0,0 @@
# translation of falkon_middleclickloader.pot to esperanto
# Copyright (C) 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the falkon package.
# Oliver Kellogg <olivermkellogg@gmail.com, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2023-07-02 22:07+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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: mcl_settings.py:43
msgid "MiddleClickLoader Setting"
msgstr "Agordo de MiddleClickLoader"
#: mcl_settings.py:44
msgid "MiddleClickLoader"
msgstr "MiddleClickLoader"
#: mcl_settings.py:45
msgid "Open url in:"
msgstr "Malfermi url en:"
#: mcl_settings.py:46
msgid "Use only valid url"
msgstr "Uzi nur validan url"
#: mcl_settings.py:48
msgid "New Tab"
msgstr "Nova Langeto"
#: mcl_settings.py:49
msgid "Current Tab"
msgstr "Aktuala Langeto"
#: mcl_settings.py:50
msgid "New Window"
msgstr "Nove Fenestro"

View File

@ -1,42 +0,0 @@
# translation of falkon_runaction.pot to esperanto
# Copyright (C) 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the falkon package.
# Oliver Kellogg <olivermkellogg@gmail.com, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: falkon\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2023-07-02 22:07+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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: button.py:30
msgid "Run Action"
msgstr "Lanĉi agon"
#: button.py:31
msgid "Run action on current page"
msgstr "Lanĉi agon sur aktuala paĝo"
#: button.py:39
msgid "RunAction button"
msgstr "RunAction-butono"
#: button.py:48
msgid "Configure..."
msgstr "Agordi..."
#: settingsdialog.py:38
msgid "Run Action Settings"
msgstr "Agordoj de Agolanĉo"
#: settingsdialog.py:39
msgid "Available actions"
msgstr "Disponblaj agoj"

View File

@ -1,17 +1,16 @@
# Spanish translations for falkon_hellopython.po package.
# Copyright (C) 2018-2025 This file is copyright:
# This file is distributed under the same license as the falkon package.
# Automatically generated, 2018.
# Copyright (C) 2018 This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2018 Eloy Cuadra <ecuadra@eloihr.net>
# SPDX-FileCopyrightText: 2025 Víctor Rodrigo Córdoba <vrcordoba@gmail.com>
# Automatically generated, 2018.
# Eloy Cuadra <ecuadra@eloihr.net>, 2018.
msgid ""
msgstr ""
"Project-Id-Version: falkon_hellopython\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2025-06-09 01:45+0100\n"
"Last-Translator: Víctor Rodrigo Córdoba <vrcordoba@gmail.com>\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-04-09 13:26+0200\n"
"Last-Translator: Javier Viñal <fjvinal@gmail.com>\n"
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"

View File

@ -1,16 +1,14 @@
# Spanish translations for falkon_helloqml.po package.
# Copyright (C) 2018-2025 This file is copyright:
# This file is distributed under the same license as the falkon package.
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2018 Javier Vinal <fjvinal@gmail.com>
# SPDX-FileCopyrightText: 2025 Víctor Rodrigo Córdoba <vrcordoba@gmail.com>
# Javier Vinal <fjvinal@gmail.com>, 2018.
msgid ""
msgstr ""
"Project-Id-Version: falkon_helloqml\n"
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2025-06-09 01:45+0100\n"
"Last-Translator: Víctor Rodrigo Córdoba <vrcordoba@gmail.com>\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-10-03 22:32+0100\n"
"Last-Translator: Javier Vinal <fjvinal@gmail.com>\n"
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"

View File

@ -1,17 +1,16 @@
# Spanish translations for falkon_middleclickloader.po package.
# Copyright (C) 2018-2025 This file is copyright:
# This file is distributed under the same license as the falkon package.
# Automatically generated, 2018.
# Copyright (C) 2018 This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2018 Eloy Cuadra <ecuadra@eloihr.net>
# SPDX-FileCopyrightText: 2025 Víctor Rodrigo Córdoba <vrcordoba@gmail.com>
# Automatically generated, 2018.
# Eloy Cuadra <ecuadra@eloihr.net>, 2018.
msgid ""
msgstr ""
"Project-Id-Version: falkon_middleclickloader\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2025-06-09 01:45+0100\n"
"Last-Translator: Víctor Rodrigo Córdoba <vrcordoba@gmail.com>\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-07-18 20:07+0100\n"
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"

View File

@ -1,17 +1,16 @@
# Spanish translations for falkon_runaction.po package.
# Copyright (C) 2018-2025 This file is copyright:
# This file is distributed under the same license as the falkon package.
# Automatically generated, 2018.
# Copyright (C) 2018 This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2018 Eloy Cuadra <ecuadra@eloihr.net>
# SPDX-FileCopyrightText: 2025 Víctor Rodrigo Córdoba <vrcordoba@gmail.com>
# Automatically generated, 2018.
# Eloy Cuadra <ecuadra@eloihr.net>, 2018.
msgid ""
msgstr ""
"Project-Id-Version: falkon_runaction\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2025-06-09 01:47+0100\n"
"Last-Translator: Víctor Rodrigo Córdoba <vrcordoba@gmail.com>\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-03-20 22:22+0100\n"
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
@ -34,7 +33,7 @@ msgstr "Botón «Ejecutar acción»"
#: button.py:48
msgid "Configure..."
msgstr "Configurar"
msgstr "Configurar..."
#: settingsdialog.py:38
msgid "Run Action Settings"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2019-12-02 17:30+0200\n"
"Last-Translator: Marek Laane <qiilaq69@gmail.com>\n"
"Language-Team: Estonian <kde-et@lists.linux.ee>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2019-12-02 17:34+0200\n"
"Last-Translator: Marek Laane <qiilaq69@gmail.com>\n"
"Language-Team: Estonian <kde-et@lists.linux.ee>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2019-12-02 18:34+0200\n"
"Last-Translator: Marek Laane <qiilaq69@gmail.com>\n"
"Language-Team: Estonian <kde-et@lists.linux.ee>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2019-12-02 19:07+0200\n"
"Last-Translator: Marek Laane <qiilaq69@gmail.com>\n"
"Language-Team: Estonian <kde-et@lists.linux.ee>\n"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-04-25 18:35+0200\n"
"Last-Translator: Iñigo Salvador Azurmendi <xalba@euskalnet.net>\n"
"Language-Team: Basque <kde-i18n-eu@kde.org>\n"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-04-25 18:42+0200\n"
"Last-Translator: Iñigo Salvador Azurmendi <xalba@euskalnet.net>\n"
"Language-Team: Basque <kde-i18n-eu@kde.org>\n"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-04-28 20:45+0200\n"
"Last-Translator: Iñigo Salvador Azurmendi <xalba@euskalnet.net>\n"
"Language-Team: Basque <kde-i18n-eu@kde.org>\n"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-05-10 09:23+0200\n"
"Last-Translator: Iñigo Salvador Azurmendi <xalba@euskalnet.net>\n"
"Language-Team: Basque <kde-i18n-eu@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-07-24 19:53+0200\n"
"Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
"Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
@ -15,6 +15,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: Lokalize 2.0\n"
#: hellopython.py:69
msgid "My first plugin action"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2019-01-10 12:27+0200\n"
"Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
"Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
@ -15,6 +15,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: Lokalize 2.0\n"
#: main.qml:23
msgid "\"Hello QML\" plugin loaded"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-07-24 19:51+0200\n"
"Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
"Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
@ -15,6 +15,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: Lokalize 2.0\n"
#: mcl_settings.py:43
msgid "MiddleClickLoader Setting"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-07-24 19:50+0200\n"
"Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
"Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
@ -15,6 +15,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: Lokalize 2.0\n"
#: button.py:30
msgid "Run Action"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon_hellopython\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-06-05 12:05+0800\n"
"Last-Translator: Simon Depiets <sdepiets@gmail.com>\n"
"Language-Team: French <kde-francophone@kde.org>\n"

View File

@ -1,19 +1,18 @@
# SPDX-FileCopyrightText: 2024 Xavier Besnard <xavier.besnard@kde.org>
# Simon Depiets <sdepiets@gmail.com>, 2018.
msgid ""
msgstr ""
"Project-Id-Version: falkon_helloqml\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2024-04-25 14:02+0200\n"
"Last-Translator: Xavier Besnard <xavier.besnard@kde.org>\n"
"Language-Team: French <French <kde-francophone@kde.org>>\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-12-19 16:36+0800\n"
"Last-Translator: Simon Depiets <sdepiets@gmail.com>\n"
"Language-Team: French <kde-francophone@kde.org>\n"
"Language: fr\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.08.5\n"
"X-Generator: Lokalize 2.0\n"
"X-Environment: kde\n"
"X-Accelerator-Marker: &\n"
"X-Text-Markup: kde4\n"
@ -44,7 +43,7 @@ msgstr "Test de la barre de navigation latérale QML"
#: main.qml:109
msgid "Hello Qml Plugin"
msgstr "Module externe « Bonjour QML »"
msgstr "Module externe « Bonjour Qml »"
#: main.qml:126
msgid "Hello QML"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon_middleclickloader\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-07-19 13:17+0800\n"
"Last-Translator: Simon Depiets <sdepiets@gmail.com>\n"
"Language-Team: French <kde-francophone@kde.org>\n"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: falkon_runaction\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-06-05 12:20+0800\n"
"Last-Translator: Simon Depiets <sdepiets@gmail.com>\n"
"Language-Team: French <kde-francophone@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-04-22 12:01+0100\n"
"Last-Translator: Adrian Chaves <adrian@chaves.io>\n"
"Language-Team: Galician <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-10-22 20:29+0100\n"
"Last-Translator: Adrián Chaves (Gallaecio) <adrian@chaves.io>\n"
"Language-Team: Galician <kde-i18n-doc@kde.org>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2020-01-12 12:00+0100\n"
"Last-Translator: Adrián Chaves (Gallaecio) <adrian@chaves.io>\n"
"Language-Team: Galician <proxecto@trasno.gal>\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"POT-Creation-Date: 2019-07-01 02:41+0200\n"
"PO-Revision-Date: 2018-04-22 12:01+0100\n"
"Last-Translator: Adrian Chaves <adrian@chaves.io>\n"
"Language-Team: Galician <kde-i18n-doc@kde.org>\n"

View File

@ -1,43 +0,0 @@
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2024 Yaron Shahrabani <sh.yaron@gmail.com>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2024-08-04 00:47+0300\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"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Lokalize 24.05.2\n"
#: hellopython.py:69
msgid "My first plugin action"
msgstr "הפעולה הראשונה של התוסף שלי"
#: hellopython.py:76
msgid "Hello"
msgstr "שלום"
#: hellopython.py:76
msgid "First plugin action works :-)"
msgstr "הפעולה בתוסף הראשון עובדת :-)"
#: hellopython.py:81
msgid "Close"
msgstr "סגירה"
#: hellopython.py:91
msgid "Hello Python Settings"
msgstr "הגדרות שלום פיית׳ון"
#: sidebar.py:24 sidebar.py:27
msgid "Hello Python Sidebar"
msgstr "סרגל צד של שלום פיית׳ון"

View File

@ -1,71 +0,0 @@
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2024 Yaron Shahrabani <sh.yaron@gmail.com>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2024-08-06 17:15+0300\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"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Lokalize 24.05.2\n"
#: main.qml:23
msgid "\"Hello QML\" plugin loaded"
msgstr "תוסף „שלום QML” נטען"
#: main.qml:35
msgid "Bye!"
msgstr "להתראות!"
#: main.qml:52
msgid "Testing QML Title"
msgstr "בדיקת כותרת QML"
#: main.qml:53
msgid "Testing QML Tooltip"
msgstr "בדיקת חלונית עצה של QML"
#: main.qml:81
msgid "Click Me!"
msgstr "ללחוץ עליי!"
#: main.qml:97
msgid "Testing QML SideBar"
msgstr "בדיקת סרגל צד של QML"
#: main.qml:109
msgid "Hello Qml Plugin"
msgstr "תוסף שלום Qml"
#: main.qml:126
msgid "Hello QML"
msgstr "שלום QML"
#: main.qml:127
msgid "First qml plugin action works :-)"
msgstr "הפעולה הראשונה של תוסף ה־qml עובדת :-)"
#: main.qml:152
msgid "Enter text to save"
msgstr "נא למלא טקסט כדי לשמור"
#: main.qml:157 main.qml:162
msgid "Save"
msgstr "שמירה"
#: main.qml:172
msgid "Saved!"
msgstr "נשמר!"
#: main.qml:174
msgid "Error occurred, try again!"
msgstr "אירעה שגיאה, נא לנסות שוב!"

View File

@ -1,47 +0,0 @@
# Copyright (C) YEAR This_file_is_part_of_KDE
# This file is distributed under the same license as the PACKAGE package.
#
# SPDX-FileCopyrightText: 2024 Yaron Shahrabani <sh.yaron@gmail.com>
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-11-05 12:31+0000\n"
"PO-Revision-Date: 2024-08-06 17:13+0300\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"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Lokalize 24.05.2\n"
#: mcl_settings.py:43
msgid "MiddleClickLoader Setting"
msgstr "הגדרת טוען בלחצן אמצעי"
#: mcl_settings.py:44
msgid "MiddleClickLoader"
msgstr "טוען בלחצן אמצעי"
#: mcl_settings.py:45
msgid "Open url in:"
msgstr "פתיחת כתובת עם:"
#: mcl_settings.py:46
msgid "Use only valid url"
msgstr "להשתמש בכתובת תקפה בלבד"
#: mcl_settings.py:48
msgid "New Tab"
msgstr "לשונית חדשה"
#: mcl_settings.py:49
msgid "Current Tab"
msgstr "לשונית נוכחית"
#: mcl_settings.py:50
msgid "New Window"
msgstr "חלון חדש"

Some files were not shown because too many files have changed in this diff Show More