diff --git a/.github/workflows/Release-all.yml b/.github/workflows/Release-all.yml index 2fa08fbabf..99b4408f54 100644 --- a/.github/workflows/Release-all.yml +++ b/.github/workflows/Release-all.yml @@ -5,7 +5,6 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: - version: 26.1.1 prerelease: ${{ !contains(github.ref_name,'master') }} versionSuffix: ${{ !contains(github.ref_name,'master') && 'alpha' || 'Release' }} on: @@ -153,6 +152,8 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 # need all tags to genearte changelog + - name: Load version from VERSION file + run: echo "version=$(xargs < VERSION)" >> $GITHUB_ENV - name: Get git short SHA id: shortSHA run: | diff --git a/CMakeLists.txt b/CMakeLists.txt index e4665a15ac..adaed9d1b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,8 +38,10 @@ endif () include(FeatureSummary) +file(READ "VERSION" PROJECT_VERSION_ST) +string(STRIP "${PROJECT_VERSION_ST}" PROJECT_VERSION_ST) project(goldendict-ng - VERSION 26.1.1 + VERSION ${PROJECT_VERSION_ST} LANGUAGES CXX C) if (APPLE) @@ -67,7 +69,7 @@ if (WITH_TTS) list(APPEND GD_QT_COMPONENTS TextToSpeech) endif () -find_package(Qt6 REQUIRED COMPONENTS ${GD_QT_COMPONENTS}) +find_package(Qt6 6.2 REQUIRED COMPONENTS ${GD_QT_COMPONENTS}) qt_standard_project_setup() set(CMAKE_AUTORCC ON) # not included in the qt_standard_project_setup diff --git a/VERSION b/VERSION new file mode 100644 index 0000000000..c4697fd566 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +26.3.0 diff --git a/cmake/Deps_Linux.cmake b/cmake/Deps_Linux.cmake index 8a87af4d90..0d42726fd6 100644 --- a/cmake/Deps_Linux.cmake +++ b/cmake/Deps_Linux.cmake @@ -1,7 +1,6 @@ find_package(PkgConfig REQUIRED) set(Optional_Pkgs "") -list(APPEND Optional_Pkgs "fmt") if (USE_SYSTEM_TOML) list(APPEND Optional_Pkgs "tomlplusplus") endif () @@ -31,7 +30,8 @@ pkg_check_modules(DEPS REQUIRED IMPORTED_TARGET find_package(BZip2 REQUIRED) # FreeBSD misses .pc file https://www.freshports.org/archivers/bzip2 -target_link_libraries(${GOLDENDICT} PRIVATE PkgConfig::DEPS BZip2::BZip2) +find_package(fmt REQUIRED) +target_link_libraries(${GOLDENDICT} PRIVATE PkgConfig::DEPS BZip2::BZip2 fmt::fmt) # On FreeBSD, there are two iconv, libc iconv & GNU libiconv. # The system one is good enough, the following is a workaround to use libc iconv on freeBSD. diff --git a/cmake/Deps_macOS.cmake b/cmake/Deps_macOS.cmake index 0c7d90af8e..a3fdf3a967 100644 --- a/cmake/Deps_macOS.cmake +++ b/cmake/Deps_macOS.cmake @@ -7,7 +7,6 @@ target_link_libraries(${GOLDENDICT} PRIVATE ${CARBON_LIBRARY}) find_package(PkgConfig REQUIRED) set(Optional_Pkgs "") -list(APPEND Optional_Pkgs "fmt") if (USE_SYSTEM_TOML) list(APPEND Optional_Pkgs "tomlplusplus") endif () @@ -51,7 +50,8 @@ pkg_check_modules(DEPS REQUIRED IMPORTED_TARGET find_package(Iconv REQUIRED) find_package(BZip2 REQUIRED) -target_link_libraries(${GOLDENDICT} PRIVATE PkgConfig::DEPS BZip2::BZip2 Iconv::Iconv) +find_package(fmt REQUIRED) +target_link_libraries(${GOLDENDICT} PRIVATE PkgConfig::DEPS BZip2::BZip2 Iconv::Iconv fmt::fmt) if (WITH_EPWING_SUPPORT) find_library(EB_LIBRARY eb REQUIRED) diff --git a/docs/startup_optimization.md b/docs/startup_optimization.md new file mode 100644 index 0000000000..a626fcc766 --- /dev/null +++ b/docs/startup_optimization.md @@ -0,0 +1,37 @@ +# GoldenDict-ng Startup Performance Optimization Record + +## 1. Optimization Goal +Reduce interface stuttering during cold start, shorten the perceived time from clicking to displaying the main window, and lower the CPU and disk I/O peaks during the startup phase. + +## 2. Core Strategy: Deferred Loading & Staged Startup +Decouple non-critical tasks from the `MainWindow` constructor and synchronous initialization flow. Utilize `QTimer::singleShot` to trigger these tasks in stages after the main event loop starts, achieving a "progressive startup." + +## 3. Optimization Item List + +| Task Item | Original Timing | Optimized Timing | Remarks | +| :--- | :--- | :--- | :--- | +| **ArticleInspector (Debugger)** | Sync creation in constructor | **Lazy creation** | Instantiated only when "Inspect Element" is triggered | +| **ScanPopup (Scan Progress)** | Sync trigger in constructor | **Delayed 1,000ms** | Avoids QWebEngine loading blocking main window display | +| **TrayIcon** | Sync init in constructor | **Delayed 1,000ms** | Reduces synchronous communication with system shell | +| **GlobalHotkeys** | Sync installation in constructor | **Delayed 2,000ms** | Moves system-level hotkey registration to background | +| **doDeferredInit (Deep Init)** | Sync execution at end of constructor | **Delayed 3,000ms** | Avoids peak I/O for file handles and abbreviation loading | +| **FullTextSearch (FTS Indexing)** | Sync start in `makeDictionaries` | **Delayed 5,000ms** | Ensures UI is idle before starting large-scale disk scanning | +| **New Release Check** | Immediate execution (0ms) | **Delayed 10,000ms** | Moves network requests and JSON parsing after stability | + +## 4. Technical Details + +### 4.1 Automatic Fallback Mechanism (`ensureInitDone`) +For the `doDeferredInit` delay, existing dictionary class implementations (e.g., `DslDictionary`, `MdxDictionary`) already include `ensureInitDone()` protection logic. +- **Safety**: If a user performs a lookup or FTS search before the delay (3s) expires, the code will automatically trigger synchronous initialization, ensuring no loss of functionality. +- **Experience**: The delay is only to release system resources and does not cause functional deadlocks. + +### 4.2 UI Responsiveness Priority +By delaying `ScanPopup` and `ArticleInspector` (both WebEngine-driven), we significantly reduce the peak frequency of VRAM and RAM allocation, allowing the main viewport (`ArticleView`) to complete its first-paint at the highest priority. + +## 5. Expected Results +- **Perceived Speedup**: Main window display speed improved by 30% - 50%. +- **I/O Peak Shaving**: Smooths the disk I/O "spike" from massive dictionary loading into a sustained "low-load" process over several seconds. +- **Stability**: Reduces the probability of thread deadlocks or UI freezes caused by resource contention during critical startup moments. + +--- +*Date: 2026-02-05* diff --git a/locale/ar.ts b/locale/ar.ts index 63602149e6..a63d11142d 100644 --- a/locale/ar.ts +++ b/locale/ar.ts @@ -888,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder أضف المجلد - - Clear All - Clear All - Favorites: المفضلة: @@ -900,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? سيتم حذف جميع العناصر المحددة. يكمل؟ - - Clear All Items - Clear All Items - Are you sure you want to clear all items? Are you sure you want to clear all items? @@ -912,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + مسح + + + Clear Favorites + مسح المفضلة + Forvo::ForvoArticleRequest @@ -1113,6 +1113,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? هل أنت متأكد من إزالة كل المجموعات؟ + + Add a new dictionary group + إضافة مجموعة قاموس جديدة + + + &Add group + أ&ضف مجموعة + HistoryPaneWidget @@ -2622,6 +2630,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels تأمين اللوحات + + Clear History + مسح المحفوظات + + + Are you sure you want to clear all history items? + هل أنت متأكد من أنك تريد مسح جميع عناصر التاريخ؟ + Mdx::MdxArticleRequest @@ -3296,42 +3312,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) امنع تحميل المحتوى من مواقع أخرى (يخفي أغلب الإعلانات) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - بعض المواقع تكتشف القاموس الذهبي من خلال ترويسات HTTP وتمنع الطلبات. -مكّن هذا الخيار للالتفاف حول المشكلة. - - - Do not identify GoldenDict in HTTP headers - لا تعرّف القاموس الذهبي في ترويسات HTTP - - - Maximum network cache size: - الحد الأقصى لحجم ذاكرة التخزين المؤقت للشبكة: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - الحد الأقصى لمساحة القرص الذي يشغله GoldenDict's للشبكة ذاكرة التخزين المؤقت في -%1 -إذا تم تعيين إلى 0 سيتم تعطيل ذاكرة التخزين المؤقت لقرص الشبكة. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - عند تمكين هذا الخيار ، يقوم GoldenDict -بمسح ذاكرة التخزين المؤقت للشبكة من القرص أثناء الخروج. - - - Clear network cache on exit - امسح ذاكرة التخزين المؤقت للشبكة عند الخروج - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3507,10 +3487,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - فتح قاموس الموقع في علامة تبويب منفصلة - S&can امسح @@ -3523,6 +3499,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs قمع مربعات حوار جافا سكريبت + + Open website dictionary in separate tab + فتح قاموس الموقع في علامة تبويب منفصلة + ProgramTypeEditor @@ -3705,7 +3685,7 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + تعذّر حفظ المقالة: %1 Save PDF complete @@ -3774,6 +3754,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 تحذير: %1 + + Definition + التعريف + ScanPopupToolBar @@ -4250,6 +4234,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. متاح فقط عند فتح المواقع في علامات تبويب منفصلة. يمكن أن يكون مسار الملف (نسبة إلى مجلد التكوين أو مطلق) أو محتوى البرنامج النصي المباشر. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + هذا العمود معطل لأن "فتح قاموس الموقع في علامة تبويب منفصلة" لم يتم تمكينه في التفضيلات. + WordFinder diff --git a/locale/ay.ts b/locale/ay.ts index 946f96ec6d..234c25ca17 100644 --- a/locale/ay.ts +++ b/locale/ay.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: can't mä tarjeta jan arut luraspa Anki search: AnkiConnect is not enabled. @@ -896,10 +896,6 @@ Se han modificado algunas fuentes. Add folder Q'ipi yapaña - - Clear All - Taqi kunat q’umachaña - Favorites: Munat arunaka: @@ -910,10 +906,6 @@ Se han modificado algunas fuentes. Todos los items seleccionados serán borrados. ¿Quiere continuar? - - Clear All Items - Taqi yänaka Q’umachaña - Are you sure you want to clear all items? ¿Taqi yänak q’umachañ munasmati? @@ -922,6 +914,14 @@ Todos los items seleccionados serán borrados. ¿Quiere continuar? Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1141,6 +1141,14 @@ Abrir una lista de grupos ¿Esta seguro que quiere eliminar todos los grupos? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + Qutu &yapaña + HistoryPaneWidget @@ -2683,6 +2691,14 @@ Error de importación: datos incorrectos en el fichero. Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3387,44 +3403,6 @@ ukan uñstkiti. Yaqhip sitio ukax uka tuqit p’akintaspa ukhax aka jan ch’ama Disallow loading content from other sites (hides most advertisements) Yaqha web laphinakat janiw apaqañakiti (yatiyanaka imantañataki) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Impedir la identificación de GoldenDict a partir de las cabeceras HTTP. - -Yaqhiq web laphi GoldenDict uk uñt'apxi HTTP p'iqi laphi kuampi -mayiwinakap jakt'rakiwa. Jani wali utjañapatakixa, ak naktayam. - - - Do not identify GoldenDict in HTTP headers - GoldenDict-ng janiw uskañakiti HTTP p'iqi tuqi laphina - - - Maximum network cache size: - Llika cachep ukax kawkch'akamasa: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Máximo espacio disco ocupado por GoldenDict's red caché en -%1 -Ukaxa 0 ukjamaru utt’ayatawa red disco caché ukaxa janiwa ch’amanchatäkiti. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Programa ukat mistusinxa, GoldenDict -ukax llikat cachep chhaqtayi. - - - Clear network cache on exit - Mistjani ukjax llika cache uk chhaqtayaña - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3618,10 +3596,6 @@ Activar esta opción para realizar búsquedas adicionales con listas de sinónim Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3634,6 +3608,10 @@ Activar esta opción para realizar búsquedas adicionales con listas de sinónim Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3776,7 +3754,7 @@ Activar esta opción para realizar búsquedas adicionales con listas de sinónim Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Jaqukipaña aru jach’a ventanana ch’amañchaña. Website Url: @@ -3788,11 +3766,11 @@ Activar esta opción para realizar búsquedas adicionales con listas de sinónim Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Html (*.html *.htm) ukax phuqhatawa. Single Html (*.html *.htm) - Single Html (*.html *.htm) + Mä sapa Html (*.html *.htm) . PDF document (*.pdf *.PDF) @@ -3800,15 +3778,15 @@ Activar esta opción para realizar búsquedas adicionales con listas de sinónim Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) ukax mä juk’a pachanakanwa. Save Article As - Save Article As + Kunjam qillqata imaña Save article complete - Save article complete + Artículo completo ukar imaña Error @@ -3820,11 +3798,11 @@ Activar esta opción para realizar búsquedas adicionales con listas de sinónim Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3885,6 +3863,10 @@ Activar esta opción para realizar búsquedas adicionales con listas de sinónim WARNING: %1 AKHAM LURASMA: %1 + + Definition + Definition + ScanPopupToolBar @@ -4369,6 +4351,10 @@ Taqi lista utjki uka arunakax <a href="https://lingualibre.org/wiki/Ling Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/be.ts b/locale/be.ts index 009649bb01..11ec3c1b45 100644 --- a/locale/be.ts +++ b/locale/be.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: Вы не можаце стварыць картку без слова Anki search: AnkiConnect is not enabled. @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Дадаць каталог - - Clear All - Ачысціць усе - Favorites: Улюбёнае: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Усе абраныя элементы былі выдаленыя. Працягнуць? - - Clear All Items - Ачысціць усе элементы - Are you sure you want to clear all items? Вы ўпэўнены, што хочаце выдаліць усе элементы? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Сапраўды хочаце выдаліць усе групы? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Дадаць групу + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3290,41 +3306,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Забараніць загрузку змесціва з іншых сайтаў (хавае большасць рэкламы) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Некаторыя сайты пазнаюць GoldenDict па HTTP-загалоўках -і блакуюць запыты. Уключыце гэты параметр, каб развязаць праблему. - - - Do not identify GoldenDict in HTTP headers - Не пазначаць GoldenDict у HTTP-загалоўках - - - Maximum network cache size: - Максімальны памер сеткавага кэшу: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Максімальная прастора на дыску, якую займае сеткавы кэш GoldenDict -%1 - Калі 0, кэш сеткавага дыска будзе адключаны. - - - MiB - Міб - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Калі гэты параметр уключаны, GoldenDict падчас выхаду будзе ачышчаць свой сеткавы кэш. - - - Clear network cache on exit - Ачышчаць сеткавы кэш падчас выхаду - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3499,10 +3480,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3515,6 +3492,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3657,7 +3638,7 @@ from Stardict, Babylon and GLS dictionaries Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Прымусова перакласці слова ў галоўным акне. Website Url: @@ -3669,11 +3650,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Поўны Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Адзін Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3681,15 +3662,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Захаваць артыкул як Save article complete - Save article complete + Захаванне артыкула завершана Error @@ -3701,11 +3682,11 @@ from Stardict, Babylon and GLS dictionaries Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3766,6 +3747,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 УВАГА: %1 + + Definition + Definition + ScanPopupToolBar @@ -4237,6 +4222,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/bg.ts b/locale/bg.ts index bc30d4597b..216c80465b 100644 --- a/locale/bg.ts +++ b/locale/bg.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: не мога да създам карта без дума Anki search: AnkiConnect is not enabled. @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Добави папка - - Clear All - Изчистване на всички - Favorites: Любими: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Всички избрани елементи ще бъдат изтрити. Да продължи? - - Clear All Items - Изчистване на всички елементи - Are you sure you want to clear all items? Сигурни ли сте, че искате да изчистите всички елементи? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Сигурни ли сте, че желаете да премахнете всички групи? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Добавяне на група + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Забрани зареждане на съдържание от други сайтове (скрива повечето реклами) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Някой сайтове идентифицират GoldenDict чрез HTTP хедери и блокират заявките. -Включването на опцията може да реши проблема. - - - Do not identify GoldenDict in HTTP headers - Не посочвай GoldenDict в заглавия HTTP - - - Maximum network cache size: - Максимален размер на мрежовия кеш: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Максимално дисково пространство, заето от мрежовия кеш на GoldenDict -%1 -Ако е зададено на 0, кешът на мрежовия диск ще бъде деактивиран. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Когато тази опция е активирана, GoldenDict -изчиства своя мрежов кеш от диска по време на излизане. - - - Clear network cache on exit - Изчистване на мрежовия кеш при излизане - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3508,10 +3488,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3524,6 +3500,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3666,7 +3646,7 @@ from Stardict, Babylon and GLS dictionaries Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Принудете думата да бъде преведена в главния прозорец. Website Url: @@ -3678,11 +3658,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Пълен Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Един Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3690,15 +3670,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Запазване на статията като Save article complete - Save article complete + Запазването на статията е завършено Error @@ -3710,11 +3690,11 @@ from Stardict, Babylon and GLS dictionaries Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3775,6 +3755,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 ПРЕДУПРЕЖДЕНИЕ: %1 + + Definition + Definition + ScanPopupToolBar @@ -4254,6 +4238,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/crowdin.ts b/locale/crowdin.ts index f098649f3b..cc117f85e8 100644 --- a/locale/crowdin.ts +++ b/locale/crowdin.ts @@ -872,27 +872,27 @@ between classic and school orthography in cyrillic) - Clear All + Favorites: - Favorites: + All selected items will be deleted. Continue? - All selected items will be deleted. Continue? + Are you sure you want to clear all items? - Clear All Items + Make this folder the target of adding/removing words actions. - Are you sure you want to clear all items? + Clear - Make this folder the target of adding/removing words actions. + Clear Favorites @@ -2612,6 +2612,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels + + Clear History + + + + Are you sure you want to clear all history items? + + Mdx::MdxArticleRequest @@ -3269,38 +3277,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - - - - Do not identify GoldenDict in HTTP headers - - - - Maximum network cache size: - - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - - - - MiB - - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - - - - Clear network cache on exit - - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3471,10 +3447,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - - S&can @@ -3487,6 +3459,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs + + Open website dictionary in separate tab + + ProgramTypeEditor @@ -3738,6 +3714,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 + + Definition + + ScanPopupToolBar @@ -4205,6 +4185,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + + WordFinder diff --git a/locale/cs.ts b/locale/cs.ts index 27e69dcf48..d41becf0b8 100644 --- a/locale/cs.ts +++ b/locale/cs.ts @@ -889,10 +889,6 @@ a školní ortografií v cyrilici) Add folder Přidat složku - - Clear All - Vymazat vše - Favorites: Oblíbené: @@ -901,10 +897,6 @@ a školní ortografií v cyrilici) All selected items will be deleted. Continue? Všechny vybrané položky budou odstraněny. Chcete pokračovat? - - Clear All Items - Vymazat všechny položky - Are you sure you want to clear all items? Opravdu chcete vymazat všechny položky? @@ -913,6 +905,14 @@ a školní ortografií v cyrilici) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Vyčistit + + + Clear Favorites + Vymazat Oblíbené + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ a školní ortografií v cyrilici) Are you sure you want to remove all the groups? Opravdu chcete odstranit všechny skupiny? + + Add a new dictionary group + Přidat novou skupinu slovníků + + + &Add group + Přid&at skupinu + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Pro zjištění '*', '?', '[', ']' symbo Lock Panels Uzamknout panely + + Clear History + Vymazat historii + + + Are you sure you want to clear all history items? + Jste si jisti, že chcete vymazat všechny položky historie? + Mdx::MdxArticleRequest @@ -3296,42 +3312,6 @@ Pokud se kvůli tomuto některé stránky rozbijí, zkuste toto vypnout.Disallow loading content from other sites (hides most advertisements) Zakázat načítání obsahu z jiných stránek (skryje většinu reklam) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Některé stránky detekují GoldenDict přes hlavičky HTTP a blokují jeho požadavky. -Povolením této volby problém obejdete. - - - Do not identify GoldenDict in HTTP headers - Neidentifikovat GoldenDict v lavičkách HTTP - - - Maximum network cache size: - Maximální velikost síťové mezipaměti: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximální místo na disku obsazené mezipamětí sítě GoldenDict -%1 -Pokud je nastaveno na 0, mezipaměť síťového disku bude zakázána. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Pokud je tato volba povolena, GoldenDict -vymaže její síťovou mezipaměť při ukončení. - - - Clear network cache on exit - Vymazat síťovou mezipaměť při ukončení - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3507,10 +3487,6 @@ ze Stardict, Babylon a GLS slovníků Save debug messages to gd_log.txt in the config folder Ukládat zprávy ladění do gd_log.txt do složky s konfigurací - - Open website dictionary in seperate tab - Otevřít webový slovník v samostatné záložce - S&can &Skenovat @@ -3523,6 +3499,10 @@ ze Stardict, Babylon a GLS slovníků Suppress JavaScript dialogs Potlačit dialogová okna JavaScriptu + + Open website dictionary in separate tab + Otevřít webový slovník v samostatné záložce + ProgramTypeEditor @@ -3774,6 +3754,10 @@ ze Stardict, Babylon a GLS slovníků WARNING: %1 UPOZORNĚNÍ: %1 + + Definition + Definice + ScanPopupToolBar @@ -4249,6 +4233,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. K dispozici pouze při otevírání webových stránek v oddělených kartách. Může být cesta k souborům (relativně k adresáři konfigurací nebo absolutním) nebo přímý obsah skriptu. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Tento sloupec je zakázán, protože slovník "Otevřené webové stránky v samostatné záložce" není v nastavení povolen. + WordFinder diff --git a/locale/de.ts b/locale/de.ts index 7876262f8c..7af9956ba9 100644 --- a/locale/de.ts +++ b/locale/de.ts @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Ordner hinzufügen - - Clear All - Alles löschen - Favorites: Favoriten: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Alle ausgewählten Einträge werden entfernt. Fortfahren? - - Clear All Items - Alle Elemente löschen - Are you sure you want to clear all items? Möchten Sie wirklich alle Elemente löschen? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Diesen Ordner zum Ziel von Aktionen zum Hinzufügen/Löschen von Wörtern machen. + + Clear + Leeren + + + Clear Favorites + Favoriten löschen + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Wollen Sie wirklich alle Gruppen entfernen? + + Add a new dictionary group + Neue Wörterbuchgruppe hinzufügen + + + &Add group + Gruppe &hinzufügen + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Um '*', 'zu finden?', '[', ']' Symbole v Lock Panels Sperrbildschirm + + Clear History + Verlauf löschen + + + Are you sure you want to clear all history items? + Sind Sie sicher, dass Sie alle Verlaufselemente löschen möchten? + Mdx::MdxArticleRequest @@ -3293,42 +3309,6 @@ nicht mehr funktionieren, kann das Deaktivieren dieser Option helfen.Disallow loading content from other sites (hides most advertisements) Inhalte nicht von fremden Seiten laden (unterbindet meist Werbung) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Einige Seiten erkennen GoldenDict mittels HTTP-Kopfzeilen und blockieren die Anfrage. -Diese Option kann dieses Problem beheben. - - - Do not identify GoldenDict in HTTP headers - GoldenDict-ng nicht in HTTP-Kopfzeilen identifizieren - - - Maximum network cache size: - Maximale Netzwerk-Cache-Größe: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximaler Speicherplatz für GoldenDict's Netzwerk-Cache in -%1 -Wenn auf 0 gesetzt, wird der Netzwerk-Festplatten-Cache deaktiviert. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Wenn diese Option aktiviert ist, löscht GoldenDict -den Netzwerk-Cache beim Beenden von der Festplatte. - - - Clear network cache on exit - Netzwerk-Cache beim Beenden löschen - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3503,10 +3483,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Debug-Nachrichten in gd_log.txt im Konfigurationsordner speichern - - Open website dictionary in seperate tab - Website-Wörterbuch in separatem Tab öffnen - S&can &Dosieren @@ -3519,6 +3495,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs JavaScript-Dialoge unterdrücken + + Open website dictionary in separate tab + Website-Wörterbuch in separatem Tab öffnen + ProgramTypeEditor @@ -3770,6 +3750,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 WARNUNG: %1 + + Definition + Definition + ScanPopupToolBar @@ -4246,6 +4230,10 @@ Eine vollständige Liste der verfügbaren Sprachen ist <a href="https:// Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Nur verfügbar, wenn Webseiten in separaten Tabs geöffnet werden. Kann ein Dateipfad (relativ zum Konfigurationsverzeichnis oder absolut) oder direkter Skriptinhalt sein. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Diese Spalte ist deaktiviert, da das "Website-Wörterbuch in einem separaten Tab "" " nicht in den Einstellungen aktiviert ist. + WordFinder diff --git a/locale/de_CH.ts b/locale/de_CH.ts index 4f647d79c3..5e49f8d158 100644 --- a/locale/de_CH.ts +++ b/locale/de_CH.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: kann't eine Karte ohne Wort erstellen Anki search: AnkiConnect is not enabled. @@ -886,10 +886,6 @@ between classic and school orthography in cyrillic) Add folder Ordner einfügen - - Clear All - Clear All - Favorites: Lesezeichen: @@ -898,10 +894,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Alle ausgewählten Einträge werden entfernt. Fortfahren? - - Clear All Items - Clear All Items - Are you sure you want to clear all items? Are you sure you want to clear all items? @@ -910,6 +902,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1111,6 +1111,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Wollen Sie wirklich alle Gruppen entfernen? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + Gruppe &hinzufügen + HistoryPaneWidget @@ -2620,6 +2628,14 @@ Um folgende Symbole zu finden '*', '?', '[', &apos Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3288,41 +3304,6 @@ Sollten einige Seiten nicht mehr funktionieren, kann das Deaktivieren dieser Opt Disallow loading content from other sites (hides most advertisements) Inhalte nicht von fremden Seiten laden (unterbindet meist Werbung) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Einige Seiten erkennen GoldenDict mittels HTTP-Kopfzeilen und blockieren die Anfrage. -Diese Option kann dieses Problem beheben. - - - Do not identify GoldenDict in HTTP headers - GoldenDict-ng nicht in HTTP-Kopfzeilen identifizieren - - - Maximum network cache size: - Maximale Netwerk Cache Grösse: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximale Festplattengrösse benutzt durch GoldenDict Netzwerk Cache in -%1 . -Wenn auf 0 gesetzt, wird Netzwerk Cache deaktiviert. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Wenn diese Option aktiviert ist, löscht GoldendDict den Netzwerk Cache während dem Beenden. - - - Clear network cache on exit - Netzwerk Cache löschen während dem Beenden - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3496,10 +3477,6 @@ Stardict, Babylon und GLS Wörterbüchern wünschen. Save debug messages to gd_log.txt in the config folder Speichere Debug Meldungen zu "gd_log.txt", innerhalb des Config Ordners - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3512,6 +3489,10 @@ Stardict, Babylon und GLS Wörterbüchern wünschen. Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3654,7 +3635,7 @@ Stardict, Babylon und GLS Wörterbüchern wünschen. Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Erzwinge das Wort im Hauptfenster zu übersetzen. Website Url: @@ -3666,11 +3647,11 @@ Stardict, Babylon und GLS Wörterbüchern wünschen. Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Complete Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Single Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3678,15 +3659,15 @@ Stardict, Babylon und GLS Wörterbüchern wünschen. Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Artikel speichern als Save article complete - Save article complete + Artikel speichern abgeschlossen Error @@ -3698,11 +3679,11 @@ Stardict, Babylon und GLS Wörterbüchern wünschen. Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3763,6 +3744,10 @@ Stardict, Babylon und GLS Wörterbüchern wünschen. WARNING: %1 WARNUNG: %1 + + Definition + Definition + ScanPopupToolBar @@ -4237,6 +4222,10 @@ Eine vollständige Liste der verfügbaren Sprachen finden Sie <a href="h Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/el.ts b/locale/el.ts index 9b283b4347..7f3f603154 100644 --- a/locale/el.ts +++ b/locale/el.ts @@ -891,10 +891,6 @@ between classic and school orthography in cyrillic) Add folder Προσθήκη φακέλου - - Clear All - Εκκαθάριση όλων - Favorites: Αγαπημένα: @@ -903,10 +899,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Όλα τα επιλεγμένα στοιχεία θα διαγραφούν. Συνέχεια? - - Clear All Items - Εκκαθάριση όλων των αντικειμένων - Are you sure you want to clear all items? Είστε βέβαιοι ότι θέλετε να διαγράψετε όλα τα στοιχεία; @@ -915,6 +907,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Εκκαθάριση + + + Clear Favorites + Εκκαθάριση Αγαπημένων + Forvo::ForvoArticleRequest @@ -1116,6 +1116,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Σίγουρα θέλετε να αφαιρέσετε όλες τις ομάδες; + + Add a new dictionary group + Προσθέστε μια νέα ομάδα λεξικών + + + &Add group + Προσ&θήκη ομάδας + HistoryPaneWidget @@ -2625,6 +2633,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Κλείδωμα Πάνελ + + Clear History + Εκκαθάριση Ιστορικού + + + Are you sure you want to clear all history items? + Είστε βέβαιοι ότι θέλετε να καθαρίσετε όλα τα στοιχεία ιστορικού? + Mdx::MdxArticleRequest @@ -3299,42 +3315,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Φραγή περιεχομένου από άλλους ιστοτόπους (εξαφανίζει τις περισσότερες διαφημίσεις) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Ορισμένες ιστοσελίδες εντοπίζουν το GoldenDict μέσω των κεφαλίδων HTTP και μπλοκάρουν τα αιτήματά του. -Ενεργοποιήστε αυτή την επιλογή για να παρακάμψετε το πρόβλημα. - - - Do not identify GoldenDict in HTTP headers - Μη ταυτοποίηση του GoldenDict στις κεφαλίδες HTTP - - - Maximum network cache size: - Μέγιστο μέγεθος προσωρινής μνήμης δικτύου: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Ο μέγιστος χώρος στο δίσκο που καταλαμβάνει η μνήμη cache δικτύου GoldenDict's στο -%1 -Εάν οριστεί στο 0, η μνήμη cache στο δίσκο δικτύου θα απενεργοποιηθεί. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Όταν αυτή η επιλογή είναι ενεργοποιημένη, το GoldenDict -καθαρίζει την προσωρινή μνήμη δικτύου από το δίσκο κατά την έξοδο. - - - Clear network cache on exit - Εκκαθάριση προσωρινής μνήμης δικτύου κατά την έξοδο - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3510,10 +3490,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Αποθήκευση μηνυμάτων αποσφαλμάτωσης στο gd_log.txt στο φάκελο ρυθμίσεων - - Open website dictionary in seperate tab - Άνοιγμα λεξικού ιστοσελίδας σε διαχωριστική καρτέλα - S&can Σ&άρωση @@ -3526,6 +3502,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Καταστολή διαλόγων JavaScript + + Open website dictionary in separate tab + Άνοιγμα λεξικού ιστοσελίδας σε ξεχωριστή καρτέλα + ProgramTypeEditor @@ -3777,6 +3757,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 ΠΡΟΕΙΔΟΠΟΙΗΣΗ: %1 + + Definition + Ορισμός + ScanPopupToolBar @@ -4251,6 +4235,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Διαθέσιμο μόνο όταν ανοίγετε ιστοσελίδες σε ξεχωριστές καρτέλες. Μπορεί να είναι μια διαδρομή αρχείου (σε σχέση με τον κατάλογο ρύθμισης ή απόλυτο) ή άμεση δέσμη ενεργειών περιεχομένου. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Αυτή η στήλη είναι απενεργοποιημένη επειδή το λεξικό "Open website σε ξεχωριστή καρτέλα" επιλογή δεν είναι ενεργοποιημένη στις Προτιμήσεις. + WordFinder diff --git a/locale/en.ts b/locale/en.ts index caf7f5dfe2..d645d4042b 100644 --- a/locale/en.ts +++ b/locale/en.ts @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Add folder - - Clear All - Clear All - Favorites: Favorites: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? All selected items will be deleted. Continue? - - Clear All Items - Clear All Items - Are you sure you want to clear all items? Are you sure you want to clear all items? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Are you sure you want to remove all the groups? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Add group + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Disallow loading content from other sites (hides most advertisements) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - - - Do not identify GoldenDict in HTTP headers - Do not identify GoldenDict in HTTP headers - - - Maximum network cache size: - Maximum network cache size: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - - - Clear network cache on exit - Clear network cache on exit - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3509,10 +3489,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3525,6 +3501,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3776,6 +3756,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 WARNING: %1 + + Definition + Definition + ScanPopupToolBar @@ -4251,6 +4235,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/eo.ts b/locale/eo.ts index 1f432c2862..f3610316ef 100644 --- a/locale/eo.ts +++ b/locale/eo.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: ne povas fari karton sen vorto Anki search: AnkiConnect is not enabled. @@ -889,10 +889,6 @@ inter klasika kaj lerneja ortografio en cirila) Add folder Aldonu dosierujon - - Clear All - Forigi Ĉion - Favorites: Plej ŝatataj: @@ -901,10 +897,6 @@ inter klasika kaj lerneja ortografio en cirila) All selected items will be deleted. Continue? Ĉiuj elektitaj eroj estos forigitaj. Ĉu daŭrigi? - - Clear All Items - Forigi Ĉiujn Erojn - Are you sure you want to clear all items? Ĉu vi certas, ke vi volas forigi ĉiujn erojn? @@ -913,6 +905,14 @@ inter klasika kaj lerneja ortografio en cirila) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ inter klasika kaj lerneja ortografio en cirila) Are you sure you want to remove all the groups? Ĉu vi certas, ke vi volas forigi ĉiujn grupojn? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Aldoni grupon + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Por trovi '*', '?', '[', ']' simboloj uz Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ malpermesante enhavon (bildoj, kadroj) ne devenantaj de la retejo Disallow loading content from other sites (hides most advertisements) Malpermesu ŝarĝi enhavon de aliaj retejoj (kaŝas plej multajn reklamojn) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Iuj retejoj detektas GoldenDict per HTTP-titoloj kaj blokas la petojn. -Ebligu ĉi tiun opcion por solvi la problemon. - - - Do not identify GoldenDict in HTTP headers - Ne identigu GoldenDict en HTTP-kapoj - - - Maximum network cache size: - Maksimuma reta kaŝmemorgrandeco: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maksimuma diskospaco okupita de la retkaŝmemoro de GoldenDict -%1 -Se agordita al 0, la retdiska kaŝmemoro estos malŝaltita. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Kiam ĉi tiu opcio estas ebligita, GoldenDict -forigas sian retan kaŝmemoron el disko dum eliro. - - - Clear network cache on exit - Malplenigi retan kaŝmemoron ĉe eliro - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3509,10 +3489,6 @@ el Stardict, Babylon kaj GLS-vortaroj Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3525,6 +3501,10 @@ el Stardict, Babylon kaj GLS-vortaroj Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3667,7 +3647,7 @@ el Stardict, Babylon kaj GLS-vortaroj Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Devigu la vorton esti tradukita en la ĉeffenestro. Website Url: @@ -3679,11 +3659,11 @@ el Stardict, Babylon kaj GLS-vortaroj Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Kompleta HTML (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Ununura HTML (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3691,15 +3671,15 @@ el Stardict, Babylon kaj GLS-vortaroj Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Konservi artikolon kiel Save article complete - Save article complete + Konservu artikolon kompleta Error @@ -3711,11 +3691,11 @@ el Stardict, Babylon kaj GLS-vortaroj Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3776,6 +3756,10 @@ el Stardict, Babylon kaj GLS-vortaroj WARNING: %1 AVERTO: %1 + + Definition + Definition + ScanPopupToolBar @@ -4251,6 +4235,10 @@ Plena listo de disponeblaj lingvoj troveblas <a href="https://lingualibr Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/es.ts b/locale/es.ts index c5ae12bcfd..8d1f8fddda 100644 --- a/locale/es.ts +++ b/locale/es.ts @@ -889,10 +889,6 @@ entre ortografía clásica y escolar en cirílico) Add folder Añadir carpeta - - Clear All - Limpiar todo - Favorites: Favoritos: @@ -901,10 +897,6 @@ entre ortografía clásica y escolar en cirílico) All selected items will be deleted. Continue? Todos los elementos seleccionados serán eliminados. ¿Continuar? - - Clear All Items - Borrar todos los elementos - Are you sure you want to clear all items? ¿Está seguro de que desea borrar todos los elementos? @@ -913,6 +905,14 @@ entre ortografía clásica y escolar en cirílico) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Claro + + + Clear Favorites + Borrar favoritos + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ entre ortografía clásica y escolar en cirílico) Are you sure you want to remove all the groups? ¿Esta seguro que quiere eliminar todos los grupos? + + Add a new dictionary group + Añadir un nuevo grupo de diccionarios + + + &Add group + Añad&ir grupo + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Para encontrar '*', '?', '[', ']' símbo Lock Panels Bloquear paneles + + Clear History + Borrar historial + + + Are you sure you want to clear all history items? + ¿Está seguro que desea borrar todos los elementos del historial? + Mdx::MdxArticleRequest @@ -3296,42 +3312,6 @@ que está accediendo. Si algunos sitios web dejan de funcionar, intente desactiv Disallow loading content from other sites (hides most advertisements) No permitir la descarga de contenido desde otros sitios (oculta la mayoría de los anuncios) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Algunos sitios web detectan GoldenDict mediante las cabeceras HTTP y bloquean las peticiones. -Active esta opción para evitar el problema. - - - Do not identify GoldenDict in HTTP headers - Impedir la identificación de GoldenDict a partir de las cabeceras HTTP - - - Maximum network cache size: - Tamaño máximo de caché de red: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Espacio máximo en disco ocupado por la caché de red de GoldenDict en -%1 -Si se establece en 0, la memoria caché del disco de red se desactivará. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Cuando esta opción está activada, GoldenDict -borra su caché de red del disco durante la salida. - - - Clear network cache on exit - Borrar caché de red al salir - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3507,10 +3487,6 @@ de diccionarios Stardict, Babylon y GLS Save debug messages to gd_log.txt in the config folder Guardar mensajes de depuración en gd_log.txt en la carpeta de configuración - - Open website dictionary in seperate tab - Abrir diccionario de sitio web en pestaña separada - S&can &Escanear @@ -3523,6 +3499,10 @@ de diccionarios Stardict, Babylon y GLS Suppress JavaScript dialogs Suprimir diálogos de JavaScript + + Open website dictionary in separate tab + Abrir diccionario del sitio web en una pestaña separada + ProgramTypeEditor @@ -3774,6 +3754,10 @@ de diccionarios Stardict, Babylon y GLS WARNING: %1 ADVERTENCIA: %1 + + Definition + Definición + ScanPopupToolBar @@ -4249,6 +4233,10 @@ Puede encontrar la lista completa de idiomas disponibles <a href="https: Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Sólo disponible al abrir sitios web en pestañas separadas. Puede ser una ruta de archivo (relativa al directorio de configuración o absoluto) o el contenido de script directo. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Esta columna está desactivada porque "Abrir diccionario del sitio web en la pestaña separada" opción no está habilitada en Preferencias. + WordFinder diff --git a/locale/es_AR.ts b/locale/es_AR.ts index 05c10135b4..15823590b0 100644 --- a/locale/es_AR.ts +++ b/locale/es_AR.ts @@ -888,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder Agregar carpeta - - Clear All - Clear All - Favorites: Favoritos: @@ -900,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Todos los elementos seleccionados serán eliminados. ¿Continuar? - - Clear All Items - Clear All Items - Are you sure you want to clear all items? Are you sure you want to clear all items? @@ -912,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ Reordene los grupos usando el mouse sobre las pestañas con los nombres de los m Are you sure you want to remove all the groups? ¿Está seguro que desea eliminar todos los grupos? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Agregar grupo + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Para encontrar '*', '?', '[', ']' uso de Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3298,41 +3314,6 @@ que está accediendo. Si algunos sitios web dejan de funcionar, intente desactiv Disallow loading content from other sites (hides most advertisements) No permitir la carga de contenido de otros sitios web (oculta la mayoría de los anuncios de publicidad) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Algunos sitios web detectan GoldenDict vía encabezados HTTP y de esta manera lo bloquean. Active esta opción para eludir este problema. - - - Do not identify GoldenDict in HTTP headers - No identificar GoldenDict en encabezados HTTP - - - Maximum network cache size: - Tamaño máximo de caché de red: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Espacio máximo en disco ocupado por el caché de red de GoldenDict'en -%1 -Si se establece en 0, el caché del disco de red se desactivará. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Cuando esta opción está habilitada, GoldenDict -borra su caché de red del disco durante la salida. - - - Clear network cache on exit - Borrar caché de red al salir - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3508,10 +3489,6 @@ de los diccionarios Stardict, Babylon y GLS. Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3524,6 +3501,10 @@ de los diccionarios Stardict, Babylon y GLS. Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3678,11 +3659,11 @@ de los diccionarios Stardict, Babylon y GLS. Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Complete Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Single Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3690,15 +3671,15 @@ de los diccionarios Stardict, Babylon y GLS. Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Guardar artículo como Save article complete - Save article complete + Guardar artículo completo Error @@ -3706,15 +3687,15 @@ de los diccionarios Stardict, Babylon y GLS. Can't save article: %1 - Can't save article: %1 + No es posible guardar el artículo: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3775,6 +3756,10 @@ de los diccionarios Stardict, Babylon y GLS. WARNING: %1 ADVERTENCIA: %1 + + Definition + Definition + ScanPopupToolBar @@ -4250,6 +4235,10 @@ basado en la fonología inglesa Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/es_BO.ts b/locale/es_BO.ts index 5749eed88f..46ff3851f5 100644 --- a/locale/es_BO.ts +++ b/locale/es_BO.ts @@ -889,10 +889,6 @@ entre la ortografía clásica y la escolar en cirílico) Add folder Agregar carpeta - - Clear All - Clear All - Favorites: Favoritos: @@ -901,10 +897,6 @@ entre la ortografía clásica y la escolar en cirílico) All selected items will be deleted. Continue? Se eliminarán todos los elementos seleccionados. ¿Continuar? - - Clear All Items - Clear All Items - Are you sure you want to clear all items? Are you sure you want to clear all items? @@ -913,6 +905,14 @@ entre la ortografía clásica y la escolar en cirílico) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ entre la ortografía clásica y la escolar en cirílico) Are you sure you want to remove all the groups? ¿Está seguro que quiera eliminar todos los grupos? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Añadir grupo + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Para encontrar '*', '?', '[', ']' uso de Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3292,42 +3308,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) No permite la carga de contenido de otros sitios (oculta la mayoría de propaganda) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Algunos sitios detectan GoldenDict a través de encabezados HTTP y bloquean las solicitudes. -Habilite esta opción para solucionar el problema. - - - Do not identify GoldenDict in HTTP headers - No identifique GoldenDict en encabezados HTTP - - - Maximum network cache size: - Tamaño máximo de caché de red: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Espacio máximo en disco ocupado por el caché de red de GoldenDict'en -%1 -Si se establece en 0, el caché del disco de red se desactivará. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Cuando esta opción está habilitada, GoldenDict -borra su caché de red del disco durante la salida. - - - Clear network cache on exit - Borrar caché de red al salir - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3504,10 +3484,6 @@ de los diccionarios Stardict, Babylon y GLS. Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3520,6 +3496,10 @@ de los diccionarios Stardict, Babylon y GLS. Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3674,11 +3654,11 @@ de los diccionarios Stardict, Babylon y GLS. Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Complete Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Single Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3686,15 +3666,15 @@ de los diccionarios Stardict, Babylon y GLS. Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Guardar articulo como Save article complete - Save article complete + Guardar artículo completo Error @@ -3702,15 +3682,15 @@ de los diccionarios Stardict, Babylon y GLS. Can't save article: %1 - Can't save article: %1 + No puede guardar articulo: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3771,6 +3751,10 @@ de los diccionarios Stardict, Babylon y GLS. WARNING: %1 ADVERTENCIA: %1 + + Definition + Definition + ScanPopupToolBar @@ -4246,6 +4230,10 @@ Lista completa de idiomas disponibles puede encontrarse <a href="https:/ Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/fa.ts b/locale/fa.ts index 9a429c2e05..6bda530538 100644 --- a/locale/fa.ts +++ b/locale/fa.ts @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder افزودن پوشه - - Clear All - پاک کردن همه - Favorites: پسندیده‌ها: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? تمام موارد برگزیده حذف خواهند شد. ادامه می‌دهید؟ - - Clear All Items - پاک کردن همه موارد - Are you sure you want to clear all items? آیا مطمئن هستید که می خواهید همه موارد را پاک کنید؟ @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? آیا شما از حذف همه گروه‌ها اطمینان دارید؟ + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &افزودن گروه + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3296,42 +3312,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) بارگیری محتوا از دیگر پایگاه‌ها را می‌بندد (بیش‌تر آگهی‌ها را پنهان می‌کند) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - برخی پایگاه‌ها گلدن‌دیگت را از سرآیند HTTP می‌شناسند و درخواست‌ها -را می‌بندند. این گزینه را به‌کار اندازید تا مشکل از بین برود. - - - Do not identify GoldenDict in HTTP headers - گلدن‌دیکت را در سرآیند HTTP نمایان نکن - - - Maximum network cache size: - حداکثر اندازه کش شبکه: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - حداکثر فضای دیسک اشغال شده توسط حافظه پنهان شبکه GoldenDict در -%1 -اگر روی 0 تنظیم شود، کش دیسک شبکه غیرفعال می شود. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - هنگامی که این گزینه فعال است، GoldenDict -حافظه پنهان شبکه خود را در هنگام خروج از دیسک پاک می کند. - - - Clear network cache on exit - کش شبکه را در هنگام خروج پاک کنید - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3507,10 +3487,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3523,6 +3499,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3665,7 +3645,7 @@ from Stardict, Babylon and GLS dictionaries Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + مجبور کنید کلمه را در پنجره اصلی ترجمه کنید. Website Url: @@ -3677,11 +3657,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Html کامل (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Html تکی (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3689,15 +3669,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + ذخیره بند به‌عنوان Save article complete - Save article complete + ذخیره مقاله کامل Error @@ -3705,15 +3685,15 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + نمی‌تواند بند: %1 را ذخیره کند Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3774,6 +3754,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 هشدار: %1 + + Definition + Definition + ScanPopupToolBar @@ -4249,6 +4233,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/fi.ts b/locale/fi.ts index 160d25b0a9..435d73e79c 100644 --- a/locale/fi.ts +++ b/locale/fi.ts @@ -889,10 +889,6 @@ klassisen ja kouluortografian välillä kyrillisessä) Add folder Lisää kansio - - Clear All - Tyhjennä kaikki - Favorites: Suosikit: @@ -901,10 +897,6 @@ klassisen ja kouluortografian välillä kyrillisessä) All selected items will be deleted. Continue? Kaikki valitut kohteet poistetaan. Jatketaanko? - - Clear All Items - Tyhjennä kaikki kohteet - Are you sure you want to clear all items? Haluatko varmasti tyhjentää kaikki kohteet? @@ -913,6 +905,14 @@ klassisen ja kouluortografian välillä kyrillisessä) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Tyhjennä + + + Clear Favorites + Tyhjennä Suosikit + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ klassisen ja kouluortografian välillä kyrillisessä) Are you sure you want to remove all the groups? Oletko varma, että haluat poistaa kaikki ryhmät? + + Add a new dictionary group + Lisää uusi sanakirja ryhmä + + + &Add group + &Lisää ryhmä + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Löytääksesi '*', '?', '[', ']' tunnus Lock Panels Lukitse Paneelit + + Clear History + Tyhjennä Historia + + + Are you sure you want to clear all history items? + Oletko varma, että haluat tyhjentää kaikki historian kohteet? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ joita selailet. Jos jokin sivusto rikkoo tämän vuoksi, kokeile poistaa tämä Disallow loading content from other sites (hides most advertisements) Estä sisällön lataaminen muilta sivustoilta (piilottaa useimmat mainokset) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Jotkut sivustot havaitsevat GoldenDictin HTTP-otsikoiden kautta ja estävät pyynnöt. -Ota tämä asetus käyttöön korjataksesi ongelman. - - - Do not identify GoldenDict in HTTP headers - Älä tunnista GoldenDictia HTTP-otsikoissa - - - Maximum network cache size: - Verkon välimuistin enimmäiskoko: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - GoldenDict's -verkkovälimuistin käyttämä levytila maksimissaan -%1 -Jos arvo on 0, verkkovälimuisti ei ole käytössä. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Kun tämä asetus on käytössä, GoldenDict -tyhjentää verkon välimuistin levyltä poistumisen aikana. - - - Clear network cache on exit - Tyhjennä verkkovälimuisti poistuttaessa - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3509,10 +3489,6 @@ alkaen alkaen alkupisteestä, Babylonista ja GLS-sanakirjoista Save debug messages to gd_log.txt in the config folder Tallenna debug viestit gd_log.txt asetuskansioon - - Open website dictionary in seperate tab - Avaa verkkosivuston sanakirja erillisessä välilehdessä - S&can S&can @@ -3525,6 +3501,10 @@ alkaen alkaen alkupisteestä, Babylonista ja GLS-sanakirjoista Suppress JavaScript dialogs Piilota JavaScript-ikkunat + + Open website dictionary in separate tab + Avaa verkkosivuston sanakirja erillisessä välilehdessä + ProgramTypeEditor @@ -3776,6 +3756,10 @@ alkaen alkaen alkupisteestä, Babylonista ja GLS-sanakirjoista WARNING: %1 VAROITUS: %1 + + Definition + Määritelmä + ScanPopupToolBar @@ -4251,6 +4235,10 @@ Täydellinen luettelo saatavilla olevista kielistä löytyy <a href="htt Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Saatavilla vain, kun sivustoja avataan erillisillä välilehdillä. Voi olla tiedostopolku (suhteessa config hakemistoon tai absoluuttiin) tai suora skriptin sisältö. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Tämä sarake on pois päältä, koska "Avaa verkkosivujen sanakirja erillisessä välilehdessä" ei ole käytössä asetuksissa. + WordFinder diff --git a/locale/fr.ts b/locale/fr.ts index 0a2a1e9acc..63bf33e840 100644 --- a/locale/fr.ts +++ b/locale/fr.ts @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Ajouter un dossier - - Clear All - Tout effacer - Favorites: Favoris : @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Tous les éléments sélectionnés seront supprimés. Continuer ? - - Clear All Items - Effacer tous les éléments - Are you sure you want to clear all items? Êtes-vous sûr de vouloir effacer tous les éléments ? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Nettoyer + + + Clear Favorites + Effacer les favoris + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Êtes-vous sûr de vouloir enlever tous les groupes ? + + Add a new dictionary group + Ajouter un nouveau groupe de dictionnaires + + + &Add group + &Ajouter groupe + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Pour rechercher les symboles '*', '?', '[', ' Lock Panels Verrouiller les panneaux + + Clear History + Effacer l'historique + + + Are you sure you want to clear all history items? + Êtes-vous sûr de vouloir effacer tous les éléments de l'historique ? + Mdx::MdxArticleRequest @@ -3295,42 +3311,6 @@ que du contenu est manquant, essayez de désactiver cette option. Disallow loading content from other sites (hides most advertisements) Empêcher le chargement de contenu en provenance d'autres sites (cache la plupart des publicités) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Certains sites détectent GoldenDict à travers les en-tête HTTP et bloquent les requêtes. -Activer cette option permet de contourner ce problème. - - - Do not identify GoldenDict in HTTP headers - Ne pas s'identifier en tant que GoldenDict dans les en-têtes HTTP - - - Maximum network cache size: - Taille maximale du cache réseau: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Espace disque maximal occupé par GoldenDict's cache réseau dans -%1 -Si défini à 0, le cache du disque réseau sera désactivé. - - - MiB - Mio - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Lorsque cette option est activée, GoldenDict -efface le cache réseau du disque pendant la sortie. - - - Clear network cache on exit - Vider le cache réseau à la sortie - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3506,10 +3486,6 @@ des dictionnaires Stardict, Babylon et GLS Save debug messages to gd_log.txt in the config folder Enregistrer les messages de débogage dans gd_log.txt dans le dossier de configuration - - Open website dictionary in seperate tab - Ouvrir le dictionnaire du site web dans un onglet séparé - S&can &Scanner @@ -3522,6 +3498,10 @@ des dictionnaires Stardict, Babylon et GLS Suppress JavaScript dialogs Supprimer les boîtes de dialogue JavaScript + + Open website dictionary in separate tab + Ouvrir le dictionnaire du site web dans un onglet séparé + ProgramTypeEditor @@ -3774,6 +3754,10 @@ Erreur lors de l'enregistrement de la ressource : WARNING: %1 ATTENTION : %1 + + Definition + Définition + ScanPopupToolBar @@ -4247,6 +4231,10 @@ La liste complète des langues disponibles peut être trouvée <a href=" Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Uniquement disponible lors de l'ouverture de sites Web dans des onglets séparés. Peut être un chemin de fichier (relatif au répertoire de configuration ou absolu) ou du contenu de script direct. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Cette colonne est désactivée car l'option "Ouvrir le dictionnaire du site Web dans un onglet" séparé n'est pas activée dans les préférences. + WordFinder diff --git a/locale/hi.ts b/locale/hi.ts index f356b0ebf4..c8d2db0087 100644 --- a/locale/hi.ts +++ b/locale/hi.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + अंकी: क्या बिना किसी शब्द के कार्ड'बनाया जा सकता Anki search: AnkiConnect is not enabled. @@ -888,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder फ़ोल्डर जोड़ें - - Clear All - सभी साफ करें - Favorites: पसंदीदा: @@ -900,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? सभी चयनित मद हटा दिए जाएंगे। जारी रखें? - - Clear All Items - सभी आइटम साफ़ करें - Are you sure you want to clear all items? क्या आप वाकई सभी आइटम साफ़ करना चाहते हैं? @@ -912,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1113,6 +1113,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? क्या आप वस्तुतः सभी समूहों को निकालना चाहते हैं? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + तथा समूह जोड़ें + HistoryPaneWidget @@ -2622,6 +2630,14 @@ Pour rechercher les symboles '*', '?', '[', ' Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3287,42 +3303,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) अन्य साइटों से लोडिंग सामग्री को अस्वीकार करें (अधिकांश विज्ञापनों को छुपाता है) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - कुछ साइटें एच.टी.टी.पी. शीर्षक के माध्यम से गोल्डेनडिक्ट का पता लगाती हैं और अनुरोधों को रोकती हैं। -समस्या को हल करने के लिए इस विकल्प को सक्षम करें। - - - Do not identify GoldenDict in HTTP headers - एच.टी.टी.पी शीर्षक में गोलेडेनडिक्ट की पहचान न करें - - - Maximum network cache size: - अधिकतम नेटवर्क कैश आकार: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - -%1 -में गोल्डनडिक्ट'एस नेटवर्क कैश द्वारा कब्जा किया गया अधिकतम डिस्क स्थान यदि 0 पर सेट किया गया है तो नेटवर्क डिस्क कैश अक्षम हो जाएगा। - - - MiB - एमआईबी - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - जब यह विकल्प सक्षम होता है, तो गोल्डनडिक्ट -बाहर निकलने के दौरान डिस्क से अपना नेटवर्क कैश साफ़ कर देता है। - - - Clear network cache on exit - बाहर निकलने पर नेटवर्क कैश साफ़ करें - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3494,10 +3474,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3510,6 +3486,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3664,11 +3644,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + पूर्ण HTML (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + एकल HTML (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3676,15 +3656,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + माइम HTML (*.mhtml) Save Article As - Save Article As + Enregister l'article sous Save article complete - Save article complete + आलेख पूर्ण सहेजें Error @@ -3692,15 +3672,15 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + Impossible d'enregistrer l'article : %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3761,6 +3741,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 चेतावनी: %1 + + Definition + Definition + ScanPopupToolBar @@ -4231,6 +4215,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/hu.ts b/locale/hu.ts index 3b2e1f3afe..afeca8ceb9 100644 --- a/locale/hu.ts +++ b/locale/hu.ts @@ -889,10 +889,6 @@ a klasszikus és az iskolai helyesírás közt cirillben) Add folder Új mappa - - Clear All - Összes törlése - Favorites: Kedvencek: @@ -901,10 +897,6 @@ a klasszikus és az iskolai helyesírás közt cirillben) All selected items will be deleted. Continue? Biztos, hogy töröl minden kijelölt elemet? - - Clear All Items - Minden elem törlése - Are you sure you want to clear all items? Biztosan törölni szeretné az összes elemet? @@ -913,6 +905,14 @@ a klasszikus és az iskolai helyesírás közt cirillben) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ a klasszikus és az iskolai helyesírás közt cirillben) Are you sure you want to remove all the groups? Biztos, hogy törli az összes csoportot? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + Új &csoport + HistoryPaneWidget @@ -2623,6 +2631,14 @@ A '*', '?', '[' és ']' karakterek keres Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ keretek). Ha bizonyos oldalak nem működnének, próbálja meg ezt kikapcsolni. Disallow loading content from other sites (hides most advertisements) Más oldalakról származó tartalmak letiltása (elrejti a reklámot nagy részét) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Bizonyos oldalak érzékelik a GoldenDict HTTP fejlécet és letiltják a kérést. -Kapcsolja be ezt, a probléma megkerüléséhez. - - - Do not identify GoldenDict in HTTP headers - GoldenDict azonosító kihagyása a HTTP fejlécből - - - Maximum network cache size: - Hálózati gyorsítótár mérete: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - A GonldenDict által használható hálózati gyorsítótár lemezterület: -%1 -Ha 0 van megadva, a gyorsítótár kikapcsolásra kerül. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Bekapcsolásakor a GoldenDict törli a hálózati -gyorsítótár tartalmát a kilépéskor. - - - Clear network cache on exit - Gyorsítótár törlése a kilépéskor - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3508,10 +3488,6 @@ is felhasználja további szócikkek felfedezéséhez Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3524,6 +3500,10 @@ is felhasználja további szócikkek felfedezéséhez Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3678,11 +3658,11 @@ is felhasználja további szócikkek felfedezéséhez Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Teljes HTML (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Egyetlen HTML (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3690,15 +3670,15 @@ is felhasználja további szócikkek felfedezéséhez Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime HTML (*.mhtml) Save Article As - Save Article As + Szócikk mentése mint Save article complete - Save article complete + Szócikk mentése kész Error @@ -3710,11 +3690,11 @@ is felhasználja további szócikkek felfedezéséhez Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3775,6 +3755,10 @@ is felhasználja további szócikkek felfedezéséhez WARNING: %1 FIGYELEM: %1 + + Definition + Definition + ScanPopupToolBar @@ -4250,6 +4234,10 @@ Az elérhető nyelvek teljes listája megtalálható <a href="https://li Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/ie.ts b/locale/ie.ts index 95fa522d41..24c1ed62cb 100644 --- a/locale/ie.ts +++ b/locale/ie.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: impossibil a crear un carte sin un parol Anki search: AnkiConnect is not enabled. @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Adjunter un fólder - - Clear All - Clear All - Favorites: Preferet: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Omni selectet elementes va esser removet. Continuar? - - Clear All Items - Clear All Items - Are you sure you want to clear all items? Are you sure you want to clear all items? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Esque vu vole remover omni gruppes? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Adjunter + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Ne cargar contenete de altri sites (cela pluparte de reclams) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - - - Do not identify GoldenDict in HTTP headers - Do not identify GoldenDict in HTTP headers - - - Maximum network cache size: - Maximum network cache size: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - - - MiB - Mio - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - - - Clear network cache on exit - Clear network cache on exit - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3509,10 +3489,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3525,6 +3501,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3667,7 +3647,7 @@ from Stardict, Babylon and GLS dictionaries Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Force the word to be translated in the mainwindow. Website Url: @@ -3679,11 +3659,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Complete Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Single Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3691,15 +3671,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Gardar li articul quam Save article complete - Save article complete + Save article complete Error @@ -3776,6 +3756,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 WARNING: %1 + + Definition + Definition + ScanPopupToolBar @@ -4251,6 +4235,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/it.ts b/locale/it.ts index 771671169d..76060fc6d0 100644 --- a/locale/it.ts +++ b/locale/it.ts @@ -889,10 +889,6 @@ tra l'ortografia classica e scolastica in cirillico) Add folder Aggiungi cartella - - Clear All - Cancella tutto - Favorites: Preferiti: @@ -901,10 +897,6 @@ tra l'ortografia classica e scolastica in cirillico) All selected items will be deleted. Continue? Tutti gli elementi selezionati verranno eliminati. Continuare? - - Clear All Items - Cancella tutti gli elementi - Are you sure you want to clear all items? Vuoi davvero cancellare tutti gli elementi? @@ -913,6 +905,14 @@ tra l'ortografia classica e scolastica in cirillico) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Pulisci + + + Clear Favorites + Cancella Preferiti + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ tra l'ortografia classica e scolastica in cirillico) Are you sure you want to remove all the groups? Sei sicuro di volere rimuovere ogni gruppo? + + Add a new dictionary group + Aggiungi un nuovo gruppo di dizionari + + + &Add group + &Aggiungi gruppo + HistoryPaneWidget @@ -2624,6 +2632,14 @@ Clicca <b>Scarica</b> per accedere alla pagina di scaricamento.Lock Panels Blocca Pannelli + + Clear History + Cancella Cronologia + + + Are you sure you want to clear all history items? + Sei sicuro di voler cancellare tutti gli elementi della cronologia? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ Se alcuni siti dovessero bloccarsi, provare a disabilitare questa casella.Disallow loading content from other sites (hides most advertisements) non permettere il caricamento dei contenuti da altri siti (nasconde la maggioranza dei messaggi pubblicitari) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Alcuni siti web rilevano GoldenDict via intestazione HTTP e ne bloccano le richieste. -Spuntare questa casella per raggirare il problema. - - - Do not identify GoldenDict in HTTP headers - non consentire che GoldenDict venga identificato nelle intestazioni HTTP - - - Maximum network cache size: - Dimensione massima cache di rete: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Spazio massimo su disco occupato da GoldenDict's cache di rete in -%1 -Se impostato a 0 la cache su disco di rete sarà disabilitata. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Quando questa opzione è abilitata, GoldenDict -cancella la cache di rete dal disco durante l'uscita. - - - Clear network cache on exit - Cancella la cache di rete all'uscita - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3507,10 +3487,6 @@ dai dizionari di Stardict, Babylon e GLS Save debug messages to gd_log.txt in the config folder Salva i messaggi di debug su gd_log.txt nella cartella di configurazione - - Open website dictionary in seperate tab - Apri il dizionario del sito web in una scheda separata - S&can S&can @@ -3523,6 +3499,10 @@ dai dizionari di Stardict, Babylon e GLS Suppress JavaScript dialogs Sopprimi le finestre JavaScript + + Open website dictionary in separate tab + Apri il dizionario del sito in una scheda separata + ProgramTypeEditor @@ -3774,6 +3754,10 @@ dai dizionari di Stardict, Babylon e GLS WARNING: %1 ATTENZIONE: %1 + + Definition + Definizione + ScanPopupToolBar @@ -4249,6 +4233,10 @@ L'elenco completo delle lingue disponibili può essere trovato <a href=" Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Disponibile solo quando si aprono siti web in schede separate. Può essere un percorso di file (relativo alla cartella di configurazione o assoluto) o un contenuto di script diretto. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Questa colonna è disabilitata perché l'opzione "Apri dizionario sito web in una scheda separata" non è abilitata nelle Preferenze. + WordFinder diff --git a/locale/ja.ts b/locale/ja.ts index 8e0ae68814..515e3c443f 100644 --- a/locale/ja.ts +++ b/locale/ja.ts @@ -888,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder フォルダを追加 - - Clear All - すべてクリア - Favorites: お気に入り: @@ -900,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? 選択したすべてのアイテムが削除されます。続行しますか? - - Clear All Items - すべての項目をクリア - Are you sure you want to clear all items? すべての項目をクリアしてもよろしいですか? @@ -912,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. このフォルダを単語の追加/削除アクションのターゲットにします。 + + Clear + クリア + + + Clear Favorites + お気に入りをクリア + Forvo::ForvoArticleRequest @@ -1113,6 +1113,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? すべてのグループを削除してもよろしいですか? + + Add a new dictionary group + 新しい辞書グループを追加 + + + &Add group + グループの追加(&A) + HistoryPaneWidget @@ -2622,6 +2630,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels ロックパネル + + Clear History + 履歴を消去 + + + Are you sure you want to clear all history items? + すべての履歴アイテムを消去してもよろしいですか? + Mdx::MdxArticleRequest @@ -3294,42 +3310,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) 他のサイトからのコンテンツの読み込みを無効にする (ほとんどの広告を非表示にします) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - 一部のサイトでは、HTTPヘッダーを介してGoldenDictを検出し、リクエストをブロックします。 -このオプションを有効にして問題を回避します。 - - - Do not identify GoldenDict in HTTP headers - HTTPヘッダーでGoldenDictを識別しない - - - Maximum network cache size: - ネットワークキャッシュの最大サイズ: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - GoldenDict's ネットワークキャッシュの最大ディスク容量 -%1 -に設定されている場合、ネットワークのディスクキャッシュは無効になります。 - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - このオプションを有効にすると、GoldenDict -は終了時にネットワークキャッシュをディスクから消去します。 - - - Clear network cache on exit - 終了時にネットワークキャッシュをクリア - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3505,10 +3485,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder 設定フォルダ内のgd_log.txtにデバッグメッセージを保存します - - Open website dictionary in seperate tab - 別タブでウェブサイト辞書を開く - S&can 缶(&C) @@ -3521,6 +3497,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs JavaScriptダイアログを抑制する + + Open website dictionary in separate tab + ウェブサイト辞書を別タブで開く + ProgramTypeEditor @@ -3772,6 +3752,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 警告: %1 + + Definition + 定義 + ScanPopupToolBar @@ -4242,6 +4226,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. 個別のタブでウェブサイトを開くときにのみ利用できます。ファイルパス(設定ディレクトリまたは絶対ディレクトリからの相対)または直接スクリプトコンテンツにすることができます。 + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + "別タブ" オプションでウェブサイト辞書を開く設定で有効になっていないため、この列は無効です。 + WordFinder diff --git a/locale/jbo.ts b/locale/jbo.ts index 7ce187b27c..77e62619ce 100644 --- a/locale/jbo.ts +++ b/locale/jbo.ts @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Add folder - - Clear All - Clear All - Favorites: Favorites: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? All selected items will be deleted. Continue? - - Clear All Items - Clear All Items - Are you sure you want to clear all items? Are you sure you want to clear all items? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? .i xu do djica lo ka vimcu ro selcmi + + Add a new dictionary group + Add a new dictionary group + + + &Add group + cupra pa selcmi + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Disallow loading content from other sites (hides most advertisements) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - - - Do not identify GoldenDict in HTTP headers - Do not identify GoldenDict in HTTP headers - - - Maximum network cache size: - Maximum network cache size: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - - - Clear network cache on exit - Clear network cache on exit - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3509,10 +3489,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3525,6 +3501,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3679,11 +3659,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Complete Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Single Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3691,15 +3671,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + pa drata co'a vreji fi pa notci Save article complete - Save article complete + Save article complete Error @@ -3707,15 +3687,15 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + Can't save article: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3776,6 +3756,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 WARNING: %1 + + Definition + Definition + ScanPopupToolBar @@ -4251,6 +4235,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/kab.ts b/locale/kab.ts index e696df5cdc..9f3a425e22 100644 --- a/locale/kab.ts +++ b/locale/kab.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: can't create a card without a word Anki search: AnkiConnect is not enabled. @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Rnu akaram - - Clear All - Clear All - Favorites: Favorites: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? All selected items will be deleted. Continue? - - Clear All Items - Clear All Items - Are you sure you want to clear all items? Are you sure you want to clear all items? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Are you sure you want to remove all the groups? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Snulfu-d agraw + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Disallow loading content from other sites (hides most advertisements) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - - - Do not identify GoldenDict in HTTP headers - Do not identify GoldenDict in HTTP headers - - - Maximum network cache size: - Maximum network cache size: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - - - Clear network cache on exit - Clear network cache on exit - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3509,10 +3489,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3525,6 +3501,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3659,7 +3639,7 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder. - Save debug messages to gd_log.txt in the config folder. + Save debug messages to gd_log.txt in the config folder. Force the word to be translated in Popup. @@ -3667,7 +3647,7 @@ from Stardict, Babylon and GLS dictionaries Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Force the word to be translated in the mainwindow. Website Url: @@ -3679,11 +3659,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Complete Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Single Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3691,15 +3671,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Save Article As Save article complete - Save article complete + Save article complete Error @@ -3707,15 +3687,15 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + Can't save article: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3776,6 +3756,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 WARNING: %1 + + Definition + Definition + ScanPopupToolBar @@ -4251,6 +4235,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/ko.ts b/locale/ko.ts index d777186bd5..f44f56f161 100644 --- a/locale/ko.ts +++ b/locale/ko.ts @@ -81,22 +81,21 @@ <small>Based on the original GoldenDict by Konstantin Isakov (c) 2008-2013. Maintained and developed by the GoldenDict-NG Community. Licensed under GPLv3 or later.</small> </footer> </div> - - <div class="welcome-container"> - <h3>Welcome to <strong>GoldenDict-ng</strong>!</h3> - <section> - <h4>To get started:</h4> - <ul> - <li>Go to <span class="menu-path"><span>Edit</span><span>Dictionaries</span></span> to add your dictionary files, set up online sources like Wikipedia, and organize them into groups.</li> - <li>Once set up, you can look up words in this window or <a href="https://xiaoyifang.github.io/goldendict-ng/ui_popup/">from other applications using the Scan Popup</a>.</li> - <li>To customize the program, explore the settings in <span class="menu-path"><span>Edit</span><span>Preferences</span></span>. All settings have tooltips, so be sure to read them if anything is unclear.</li> - </ul> - </section> - <p>Should you need further help, have any questions, or suggestions, you are welcome at the program's <a href="https://github.com/xiaoyifang/goldendict-ng/discussions">forum</a> and <a href="https://github.com/xiaoyifang/goldendict-ng">website</a>.</p> - <footer class="welcome-footer"> - <small>Based on the original GoldenDict by Konstantin Isakov (c) 2008-2013. Maintained and developed by the GoldenDict-NG Community. Licensed under GPLv3 or later.</small> - </footer> - </div> + <div class="welcome-container"> +<h3>GoldenDict-ng에 오신 것을 환영합니다!</h3> +<section> +<h4>시작하기:</h4> +<ul> +<li>사전 파일을 추가하고, 위키피디아와 같은 온라인 소스를 설정하고, 그룹으로 정리하려면 <span class="menu-path"><span>사전 편집</span><span>사전</span></span>으로 이동하세요.</li> +<li>설정이 완료되면 이 창이나 <a href="https://xiaoyifang.github.io/goldendict-ng/ui_popup/">스캔 팝업</a>을 사용하여 다른 응용 프로그램에서 단어를 검색할 수 있습니다.</li> +<li>프로그램을 사용자 지정하려면 <span class="menu-path"><span>환경 설정 편집</span><span>설정</span></span>을 살펴보세요. 모든 설정에는 툴팁이 있으므로, 이해가 안 되는 부분이 있으면 툴팁을 꼭 읽어보세요.</li> +</ul> +</section> +<p>추가적인 도움이 필요하거나 질문, 또는 제안 사항이 있으시면 프로그램의 <a href="https://github.com/xiaoyifang/goldendict-ng/discussions">포럼</a>과 <a href="https://github.com/xiaoyifang/goldendict-ng">웹사이트</a>를 방문해 주세요.</p> +<footer class="welcome-footer"> +<small>Konstantin Isakov의 GoldenDict 원본(c) 2008-2013을 기반으로 합니다. GoldenDict-NG 커뮤니티에서 유지 관리 및 개발합니다. GPLv3 이상 라이선스가 적용됩니다.</small> +</footer> +</div> @@ -286,15 +285,15 @@ &Copy sound to clipboard - &Copy sound to clipboard + &소리를 클립보드에 복사 Failed to copy sound - Failed to copy sound + 소리 복사에 실패했습니다 Failed to write complete audio data - Failed to write complete audio data + 완전한 오디오 데이터를 기록하는 데 실패했습니다. Sound copied to clipboard @@ -757,7 +756,7 @@ between classic and school orthography in cyrillic) Schedule for reindex - Schedule for reindex + 재색인 일정 Cancel schedule reindex @@ -765,15 +764,15 @@ between classic and school orthography in cyrillic) The dictionary has been scheduled for reindexing. The index will be rebuilt on the next application restart. - The dictionary has been scheduled for reindexing. The index will be rebuilt on the next application restart. + 사전의 색인 재구축이 예정되어 있습니다. 다음 애플리케이션 재시작 시 색인이 다시 생성될 예정입니다. Change display name - Change display name + 표시 이름 변경 New display name: - New display name: + 새로운 표시 이름: @@ -889,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder 폴더 추가 - - Clear All - 모두 지우기 - Favorites: 즐겨찾기: @@ -901,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? 선택한 모든 항목이 삭제됩니다. 계속하다? - - Clear All Items - 모든 항목 지우기 - Are you sure you want to clear all items? 모든 항목을 지우시겠습니까? @@ -913,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. 이 폴더를 단어 추가/제거 및 작업의 대상으로 만듭니다. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1113,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? 모든 그룹을 삭제하시겠습니까? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + 그룹 추가(&A) + HistoryPaneWidget @@ -2623,6 +2630,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -2747,11 +2762,11 @@ To find '*', '?', '[', ']' symbols use & Change display name - Change display name + 표시 이름 변경 New display name: - New display name: + 새로운 표시 이름: @@ -3296,42 +3311,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) 사이트 외부 자료 허용 안함(대부분의 광고를 차단함) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - 일부 사이트는 HTTP 헤더를 통해서 GoldenDict을 탐지하여 요청을 블록합니다. -이런 문제를 우회하려면 옵션을 선택하십시오. - - - Do not identify GoldenDict in HTTP headers - HTTP 헤더에 GoldenDict을 표시하지 않음 - - - Maximum network cache size: - 최대 네트워크 캐시 크기: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - GoldenDict가 차지하는 최대 디스크 공간'네트워크 캐시 in -%1 -으로 설정하면 네트워크 디스크 캐시가 비활성화됩니다. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - 이 옵션이 활성화되면 GoldenDict -은 종료하는 동안 디스크에서 네트워크 캐시를 지웁니다. - - - Clear network cache on exit - 종료 시 네트워크 캐시 지우기 - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3506,10 +3485,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder config 폴더의 gd_log.txt에 디버그 메시지를 저장합니다 - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3522,6 +3497,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3672,15 +3651,15 @@ from Stardict, Babylon and GLS dictionaries In the Url, "%GDWORD%" will be replaced with the word being searched. - In the Url, "%GDWORD%" will be replaced with the word being searched. + URL에서 "%GDWORD%"는 검색하려는 단어로 대체됩니다. Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + 완전한 HTML(*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + 단일 HTML(*.html *.htm) PDF document (*.pdf *.PDF) @@ -3688,15 +3667,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + MIME HTML(*.mhtml) Save Article As - Save Article As + 다른 이름으로 항목 저장 Save article complete - Save article complete + 기사 저장 완료 Error @@ -3704,15 +3683,15 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + 항목을 저장할 수 없습니다: %1 Save PDF complete - Save PDF complete + PDF 저장 완료 Save PDF failed - Save PDF failed + PDF 저장 실패 Saving article... (%1/%2) @@ -3773,6 +3752,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 경고: %1 + + Definition + Definition + ScanPopupToolBar @@ -4250,7 +4233,11 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. - Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + 웹사이트를 별도의 탭에서 열었을 때만 사용 가능합니다. 파일 경로(설정 디렉터리를 기준으로 한 상대 경로 또는 절대 경로) 또는 스크립트 내용을 직접 지정할 수 있습니다. + + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. diff --git a/locale/lt.ts b/locale/lt.ts index 601dcedf88..6c60195dd5 100644 --- a/locale/lt.ts +++ b/locale/lt.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: gali't sukurti kortelę be žodžio Anki search: AnkiConnect is not enabled. @@ -888,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder Pridėti aplanką - - Clear All - Išvalyti viską - Favorites: Žymelės: @@ -900,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Ištrinsimos visos pažymėtos žymelės. Tęsti? - - Clear All Items - Išvalyti visus elementus - Are you sure you want to clear all items? Ar tikrai norite išvalyti visus elementus? @@ -912,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1113,6 +1113,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Tikrai norite pašalinti visas grupes? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + Pri&dėti grupę + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Norėdami atverti parsisiuntimo puslapį, spauskite <b>Parsisiųsti</b& Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3295,42 +3311,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Neleisti įkelti turinio iš kitų svetainių (dažniausiai reklamos) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Kai kurios svetainės aptinka GoldenDict pagal HTTP antraštę ir dėl to blokuoja užklausas. -Ši parinktis leidžia apeiti problemą. - - - Do not identify GoldenDict in HTTP headers - HTTP antraštėse neidentifikuoti GoldenDict-ng - - - Maximum network cache size: - Maksimalus tinklo talpyklos dydis: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maksimali vieta diske, kurią užima GoldenDict's tinklo talpykla per -%1 -Jei nustatyta į 0, tinklo disko talpykla bus išjungta. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Kai ši parinktis įjungta, „GoldenDict -išvalo savo tinklo talpyklą iš disko. - - - Clear network cache on exit - Išvalykite tinklo talpyklą išeinant - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3506,10 +3486,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3522,6 +3498,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3664,7 +3644,7 @@ from Stardict, Babylon and GLS dictionaries Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Priverskite žodį išversti pagrindiniame lange. Website Url: @@ -3676,11 +3656,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Pilnas HTML (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Vienas HTML (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3688,15 +3668,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + MIM HTML (*.mhtml) Save Article As - Save Article As + Įrašyti straipsnį kaip Save article complete - Save article complete + Išsaugoti straipsnį baigtas Error @@ -3704,15 +3684,15 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + Nepavyksta įrašyti straipsnio: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3773,6 +3753,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 ĮSPĖJIMAS: %1 + + Definition + Definition + ScanPopupToolBar @@ -4247,6 +4231,10 @@ visą galimų kalbų sąrašą rasite <a href="https://lingualibre.org/w Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/mk.ts b/locale/mk.ts index 964dd03e1f..4a319c82e9 100644 --- a/locale/mk.ts +++ b/locale/mk.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: не може да се создаде картичка без збор Anki search: AnkiConnect is not enabled. @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Додади папка - - Clear All - Исчисти ги сите - Favorites: Омилени: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Сите избрани ставки ќе бидат избришани. Да продолжиме? - - Clear All Items - Исчистете ги сите ставки - Are you sure you want to clear all items? Дали сте сигурни дека сакате да ги исчистите сите ставки? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Сигурни сте да се отстранат сите групи? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Додади група + HistoryPaneWidget @@ -2624,6 +2632,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3299,42 +3315,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Оневозможи вчитување садржини од други сајтови (отстранува поголем дел од огласите) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Неки сајтови откривају GoldenDict преко HTTP заглавља и блок захтева. -Омогућите ову могућност да бисте решили тај проблем. - - - Do not identify GoldenDict in HTTP headers - Немојте да го идентификувате GoldenDict у HTTP заглавја - - - Maximum network cache size: - Максимална големина на кешот на мрежата: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Максимален простор на дискот окупиран од мрежната кеш меморија на GoldenDict -%1 -Ако е поставено на 0, кешот на мрежниот диск ќе биде оневозможен. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Кога оваа опција е овозможена, GoldenDict -го брише кешот на мрежата од дискот за време на излегувањето. - - - Clear network cache on exit - Исчистете го кешот на мрежата при излегување - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3511,10 +3491,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3527,6 +3503,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3669,7 +3649,7 @@ from Stardict, Babylon and GLS dictionaries Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Принудете го зборот да се преведе во главниот прозорец. Website Url: @@ -3681,11 +3661,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Целосно Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Единечен Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3693,15 +3673,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Сочувај ја оваа статија како Save article complete - Save article complete + Зачувајте ја статијата завршена Error @@ -3709,15 +3689,15 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + Не е возможно да се сочува статијата: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3778,6 +3758,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 ПРЕДУПРЕДУВАЊЕ: %1 + + Definition + Definition + ScanPopupToolBar @@ -4255,6 +4239,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/nl.ts b/locale/nl.ts index 7bf48c2bd5..521ed7f99e 100644 --- a/locale/nl.ts +++ b/locale/nl.ts @@ -889,10 +889,6 @@ traditionele en hedendaagse spelling in het cyrillisch) Add folder Map toevoegen - - Clear All - Alles wissen - Favorites: Favorieten: @@ -901,10 +897,6 @@ traditionele en hedendaagse spelling in het cyrillisch) All selected items will be deleted. Continue? Alle geselecteerde items worden verwijderd. Doorgaan? - - Clear All Items - Alle items wissen - Are you sure you want to clear all items? Weet u zeker dat u alle items wilt wissen? @@ -913,6 +905,14 @@ traditionele en hedendaagse spelling in het cyrillisch) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Verwijderen + + + Clear Favorites + Favorieten wissen + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ traditionele en hedendaagse spelling in het cyrillisch) Are you sure you want to remove all the groups? Weet u zeker dat u alle groepen wilt verwijderen? + + Add a new dictionary group + Een nieuwe woordenboekgroep toevoegen + + + &Add group + Groep &toevoegen + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Om '*'te vinden, '?', '[', ']' symbolen Lock Panels Panelen vergrendelen + + Clear History + Geschiedenis verwijderen + + + Are you sure you want to clear all history items? + Weet u zeker dat u alle geschiedenis items wilt wissen? + Mdx::MdxArticleRequest @@ -3296,42 +3312,6 @@ onjuist functioneert moet u dit mogelijk uitschakelen. Disallow loading content from other sites (hides most advertisements) Inhoud van andere sites blokkeren (verbergt de meeste reclame) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Sommige websites detecteren GoldenDict met behulp van HTTP-headers -en blokkeren de aanvragen. Selecteer deze optie om dit te voorkomen. - - - Do not identify GoldenDict in HTTP headers - GoldenDict-ng niet identificeren in HTTP-headers - - - Maximum network cache size: - Maximale netwerkcache grootte: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximale schijfruimte ingenomen door de netwerkcache van GoldenDict in -%1 -Indien ingesteld op 0, wordt de cache van de netwerkschijf uitgeschakeld. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Als deze optie is ingeschakeld, verwijdert GoldenDict -zijn netwerkcache van schijf tijdens het afsluiten. - - - Clear network cache on exit - Wis netwerkcache bij afsluiten - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3506,10 +3486,6 @@ van Stardict, Babylon en GLS woordenboeken Save debug messages to gd_log.txt in the config folder Debug berichten opslaan in gd_log.txt in de configuratie map - - Open website dictionary in seperate tab - Open het website-woordenboek in apart tabblad - S&can &Kan @@ -3522,6 +3498,10 @@ van Stardict, Babylon en GLS woordenboeken Suppress JavaScript dialogs Onderdruk JavaScript dialogen + + Open website dictionary in separate tab + Open het website-woordenboek in apart tabblad + ProgramTypeEditor @@ -3773,6 +3753,10 @@ van Stardict, Babylon en GLS woordenboeken WARNING: %1 WAARSCHUWING: %1 + + Definition + Definitie + ScanPopupToolBar @@ -4248,6 +4232,10 @@ De volledige lijst met beschikbare talen vindt u <a href="https://lingua Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Alleen beschikbaar bij het openen van websites op afzonderlijke tabbladen. Kan een bestandspad zijn (relatief aan configuratie-map of absolute) of directe script-inhoud. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Deze kolom is uitgeschakeld omdat "Open het websitewoordenboek in apart tabblad" optie niet is ingeschakeld in Voorkeuren. + WordFinder diff --git a/locale/pl.ts b/locale/pl.ts index d9c3bd86d9..9b6290f8df 100644 --- a/locale/pl.ts +++ b/locale/pl.ts @@ -889,10 +889,6 @@ między ortografią klasyczną i szkolną w cyrylicy) Add folder Dodaj folder - - Clear All - Wyczyść wszystko - Favorites: Ulubione: @@ -901,10 +897,6 @@ między ortografią klasyczną i szkolną w cyrylicy) All selected items will be deleted. Continue? Wszystkie zaznaczone elementy zostaną usunięte. Kontynuować? - - Clear All Items - Wyczyść wszystkie elementy - Are you sure you want to clear all items? Czy na pewno chcesz usunąć wszystkie elementy? @@ -913,6 +905,14 @@ między ortografią klasyczną i szkolną w cyrylicy) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Wyczyść + + + Clear Favorites + Wyczyść ulubione + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ między ortografią klasyczną i szkolną w cyrylicy) Are you sure you want to remove all the groups? Czy na pewno usunąć wszystkie grupy? + + Add a new dictionary group + Dodaj nową grupę słowników + + + &Add group + Dod&aj grupę + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Aby odnaleźć symbole „*”, „?”, „[” i „]”, należy użyć odpow Lock Panels Zablokuj panele + + Clear History + Wyczyść historię + + + Are you sure you want to clear all history items? + Czy na pewno chcesz wyczyścić wszystkie elementy historii? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ niedziałania niektórych witryn. Disallow loading content from other sites (hides most advertisements) Nie zezwalaj na wyświetlanie treści pochodzących z innych witryn (ukrywa większość reklam) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Niektóre witryny wykrywają program GoldenDict za pomocą nagłówków HTTP i blokują żądania. -Włącz tę opcję, aby obejść ten problem. - - - Do not identify GoldenDict in HTTP headers - Nie identyfikuj programu GoldenDict w nagłówkach HTTP - - - Maximum network cache size: - Maksymalny rozmiar pamięci podręcznej sieci: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maksymalna wielkość miejsca na dysku zajmowanego przez pamięć podręczną sieci GoldenDict w -%1 -Ustawienie wartości 0 oznacza wyłączenie pamięci podręcznej sieci na dysku. - - - MiB - MB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Gdy ta opcja jest włączona, program GoldenDict czyści swoją -pamięć podręczną sieci z dysku podczas kończenia działania. - - - Clear network cache on exit - Wyczyść pamięć podręczną przy wychodzeniu - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3509,10 +3489,6 @@ ze słowników Stardict, Babylon i GLS Save debug messages to gd_log.txt in the config folder Zapisz wiadomości debugowania do gd_log.txt w folderze konfiguracyjnym - - Open website dictionary in seperate tab - Otwórz słownik strony w osobnej karcie - S&can &Skanuj @@ -3525,6 +3501,10 @@ ze słowników Stardict, Babylon i GLS Suppress JavaScript dialogs Wyłącz dialogi JavaScript + + Open website dictionary in separate tab + Otwórz słownik strony w osobnej karcie + ProgramTypeEditor @@ -3776,6 +3756,10 @@ ze słowników Stardict, Babylon i GLS WARNING: %1 UWAGA: %1 + + Definition + Definicje + ScanPopupToolBar @@ -4252,6 +4236,10 @@ Pełną listę dostępnych języków można znaleźć <a href="https://l Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Dostępne tylko podczas otwierania stron internetowych w oddzielnych kartach. Może być ścieżką pliku (w stosunku do katalogu konfiguracyjnego lub bezwzględnego) lub bezpośrednią zawartością skryptu. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Ta kolumna jest wyłączona, ponieważ opcja "Otwórz słownik witryny w osobnej karcie" nie jest włączona w Preferencjach. + WordFinder diff --git a/locale/pt.ts b/locale/pt.ts index f397f4ed30..f65728731c 100644 --- a/locale/pt.ts +++ b/locale/pt.ts @@ -889,10 +889,6 @@ entre ortografia clássica e escolar em ciílico) Add folder Adicionar pasta - - Clear All - Limpar tudo - Favorites: Favoritos: @@ -901,10 +897,6 @@ entre ortografia clássica e escolar em ciílico) All selected items will be deleted. Continue? Todos os itens selecionados serão excluídos. Continuar? - - Clear All Items - Limpar todos os itens - Are you sure you want to clear all items? Tem certeza de que deseja limpar todos os itens? @@ -913,6 +905,14 @@ entre ortografia clássica e escolar em ciílico) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Limpar + + + Clear Favorites + Limpar favoritos + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ entre ortografia clássica e escolar em ciílico) Are you sure you want to remove all the groups? Você tem certeza que deseja remover todos os grupos? + + Add a new dictionary group + Adicionar um novo grupo de dicionário + + + &Add group + &Adicionar grupo + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Para encontrar '*', '?', '[', ']' símbo Lock Panels Travar painéis + + Clear History + Limpar Histórico + + + Are you sure you want to clear all history items? + Tem certeza que deseja limpar todos os itens do histórico? + Mdx::MdxArticleRequest @@ -3297,42 +3313,6 @@ que você está navegando. Se algum site parar por causa disso, tente desativar Disallow loading content from other sites (hides most advertisements) Proibir o carregamento de conteúdo de outros sites (oculta a maioria dos anúncios) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Alguns sites detectam GoldenDict através de cabeçalhos HTTP e bloqueiam as solicitações. -Ative esta opção para contornar o problema. - - - Do not identify GoldenDict in HTTP headers - Não identifique o GoldenDict nos cabeçalhos HTTP - - - Maximum network cache size: - Tamanho máximo do cache de rede: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Espaço máximo em disco ocupado pelo cache de rede do GoldenDict em -%1 -Se definido como 0, o cache do disco de rede será desabilitado. - - - MiB - MB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Quando esta opção estiver ativada, o GoldenDict -apaga seu cache de rede do disco durante a saída. - - - Clear network cache on exit - Limpar cache de rede ao sair - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3509,10 +3489,6 @@ no Stardict, Babilônia e dicionários GLS Save debug messages to gd_log.txt in the config folder Salvar mensagens de depuração no gd_log.txt na pasta config - - Open website dictionary in seperate tab - Abrir o dicionário do site na guia separada - S&can &Abrir @@ -3525,6 +3501,10 @@ no Stardict, Babilônia e dicionários GLS Suppress JavaScript dialogs Suprimir diálogos JavaScript + + Open website dictionary in separate tab + Abrir dicionário do site em uma guia separada + ProgramTypeEditor @@ -3776,6 +3756,10 @@ no Stardict, Babilônia e dicionários GLS WARNING: %1 AVISO: %1 + + Definition + Definição + ScanPopupToolBar @@ -4251,6 +4235,10 @@ A lista completa de idiomas disponíveis pode ser encontrada <a href="ht Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Apenas disponível quando sites são abertos em abas separadas. Pode ser um caminho do arquivo (relativo ao diretório de configuração ou absoluto) ou um conteúdo direto de script. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Esta coluna está desabilitada porque o dicionário "Abrir site em uma guia separada" opção não está ativada nas Preferências. + WordFinder diff --git a/locale/pt_BR.ts b/locale/pt_BR.ts index 369bbcc296..84d3621e4c 100644 --- a/locale/pt_BR.ts +++ b/locale/pt_BR.ts @@ -889,10 +889,6 @@ entre clássico e ortografia escolar em cirílico) Add folder Adicionar pasta - - Clear All - Limpar tudo - Favorites: Favoritos: @@ -901,10 +897,6 @@ entre clássico e ortografia escolar em cirílico) All selected items will be deleted. Continue? Todos os itens selecionados serão excluídos. Continuar? - - Clear All Items - Limpar todos os itens - Are you sure you want to clear all items? Tem certeza de que deseja limpar todos os itens? @@ -913,6 +905,14 @@ entre clássico e ortografia escolar em cirílico) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Limpar + + + Clear Favorites + Limpar favoritos + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ entre clássico e ortografia escolar em cirílico) Are you sure you want to remove all the groups? Tem certeza de que quer remover todos os grupos? + + Add a new dictionary group + Adicionar um novo grupo de dicionário + + + &Add group + &Adicionar + HistoryPaneWidget @@ -2623,6 +2631,14 @@ Para encontrar os símbolos '*', '?', '[', '] Lock Panels Travar painéis + + Clear History + Limpar Histórico + + + Are you sure you want to clear all history items? + Tem certeza que deseja limpar todos os itens do histórico? + Mdx::MdxArticleRequest @@ -3303,42 +3319,6 @@ para ver se o problema é solucionado. Disallow loading content from other sites (hides most advertisements) Não permitir o carregamento de conteúdo de outros sites (oculta a maioria das propagandas) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Alguns sites detectam GoldenDick via cabeçalhos HTTP e bloqueiam as solicitações. -Ative essa opção para solucionar o problema. - - - Do not identify GoldenDict in HTTP headers - Não identificar GoldenDict nos cabeçalhos HTTP - - - Maximum network cache size: - Tamanho máximo do cache de rede: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Espaço máximo em disco ocupado pelo cache de rede do GoldenDict em -%1 -Se definido como 0, o cache do disco de rede será desabilitado. - - - MiB - MB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Quando esta opção estiver ativada, o GoldenDict -apaga seu cache de rede do disco durante a saída. - - - Clear network cache on exit - Limpar cache de rede ao sair - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3513,10 +3493,6 @@ dos dicionários Stardict, Babylon e GLS Save debug messages to gd_log.txt in the config folder Salvar mensagens de depuração no gd_log.txt na pasta config - - Open website dictionary in seperate tab - Abrir o dicionário do site na guia separada - S&can &Abrir @@ -3529,6 +3505,10 @@ dos dicionários Stardict, Babylon e GLS Suppress JavaScript dialogs Suprimir diálogos JavaScript + + Open website dictionary in separate tab + Abrir dicionário do site em uma guia separada + ProgramTypeEditor @@ -3780,6 +3760,10 @@ dos dicionários Stardict, Babylon e GLS WARNING: %1 AVISO: %1 + + Definition + Definição + ScanPopupToolBar @@ -4258,6 +4242,10 @@ A lista completa de idiomas disponíveis pode ser encontrada <a href="ht Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Apenas disponível quando sites são abertos em abas separadas. Pode ser um caminho do arquivo (relativo ao diretório de configuração ou absoluto) ou um conteúdo direto de script. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Esta coluna está desabilitada porque o dicionário "Abrir site em uma guia separada" opção não está ativada nas Preferências. + WordFinder diff --git a/locale/qu.ts b/locale/qu.ts index a3b40e524b..e9bb360aec 100644 --- a/locale/qu.ts +++ b/locale/qu.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: mana simiyuq tarjetata't ruwayta atin Anki search: AnkiConnect is not enabled. @@ -889,10 +889,6 @@ chiqan kayninta sumaqyachin) Add folder Carpeta yapay - - Clear All - Tukuy Ch'uyanchana - Favorites: Munasqakuna: @@ -901,10 +897,6 @@ chiqan kayninta sumaqyachin) All selected items will be deleted. Continue? Llapan akllasqa kaqkunam qullusqa kanqa. Qatiq? - - Clear All Items - Tukuy Imakunatapas Ch’uyanchana - Are you sure you want to clear all items? ¿Segurochu kanki llapa imakunatapas chuyanchayta munasqaykimanta? @@ -913,6 +905,14 @@ chiqan kayninta sumaqyachin) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ chiqan kayninta sumaqyachin) Are you sure you want to remove all the groups? Tukuy juñukunata chinkachiyta munankichu? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Juñuta yapay + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3293,42 +3309,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) No permite la carga de contenido de otros sitios (oculta la mayoría de propaganda) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Wakin kitikuna GoldenDict HTTP umalliqkunawan tarinku chaymanta mañakuykunata harkanku. -Kay akllanata atichiy sasachakuy allichanapaq. - - - Do not identify GoldenDict in HTTP headers - Ama GoldenDictta HTTP umalliqkunapi riqsichiychu - - - Maximum network cache size: - Llika waqaychasqa hatun sayaynin: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Aswan hatun disk espacio GoldenDict llika waqaychasqa kaqwan hap'isqa -%1 -0 kaqman churasqa kaptinqa llika disk waqaychasqa mana llamk'achisqa kanqa. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Kay akllana atichisqa kaqtin, GoldenDict -llika waqaychasqa kayninta diskumanta ch'uyanchan lluqsiy pachapi. - - - Clear network cache on exit - Llika waqaychasqata chuyanchay lluqsiypi - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3505,10 +3485,6 @@ kaqninta Stardict, Babylon chaymanta GLS simi pirwakunamanta Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3521,6 +3497,10 @@ kaqninta Stardict, Babylon chaymanta GLS simi pirwakunamanta Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3663,7 +3643,7 @@ kaqninta Stardict, Babylon chaymanta GLS simi pirwakunamanta Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Hatun ventanata t’ikranapaq simita kallpachay. Website Url: @@ -3675,11 +3655,11 @@ kaqninta Stardict, Babylon chaymanta GLS simi pirwakunamanta Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Html hunt'asqa (*.html *.htm) . Single Html (*.html *.htm) - Single Html (*.html *.htm) + Huklla Html (*.html *.htm) . PDF document (*.pdf *.PDF) @@ -3687,15 +3667,15 @@ kaqninta Stardict, Babylon chaymanta GLS simi pirwakunamanta Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) nisqa. Save Article As - Save Article As + Jinata articulota jallch'ay Save article complete - Save article complete + Artículo hunt'asqata waqaychay Error @@ -3703,15 +3683,15 @@ kaqninta Stardict, Babylon chaymanta GLS simi pirwakunamanta Can't save article: %1 - Can't save article: %1 + Mana qillqasqata waqaychayta atinchu: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3772,6 +3752,10 @@ kaqninta Stardict, Babylon chaymanta GLS simi pirwakunamanta WARNING: %1 YUYAYCHAY: %1 + + Definition + Definition + ScanPopupToolBar @@ -4247,6 +4231,10 @@ Lliw simikuna tarikuq listataqa tarinki <a href="https://lingualibre.org Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/ru.ts b/locale/ru.ts index 660f9e2291..8c094bb3fd 100644 --- a/locale/ru.ts +++ b/locale/ru.ts @@ -891,10 +891,6 @@ between classic and school orthography in cyrillic) Add folder Добавить папку - - Clear All - Очистить все - Favorites: Избранное: @@ -903,10 +899,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Все выбранные элементы будут удалены. Продолжить? - - Clear All Items - Очистить все элементы - Are you sure you want to clear all items? Вы уверены, что хотите очистить все элементы? @@ -915,6 +907,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Очистить + + + Clear Favorites + Очистить избранное + Forvo::ForvoArticleRequest @@ -1116,6 +1116,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Удалить все группы? + + Add a new dictionary group + Добавить новую группу словарей + + + &Add group + &Добавить + HistoryPaneWidget @@ -2626,6 +2634,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Блокировать панели + + Clear History + Очистить историю + + + Are you sure you want to clear all history items? + Вы уверены, что хотите очистить все элементы истории? + Mdx::MdxArticleRequest @@ -3302,41 +3318,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Запретить загрузку информации с других сайтов (убирает большую часть рекламы) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Некоторые сайты опознают GoldenDict по заголовкам HTTP и блокируют запросы. -Включите эту опцию, чтобы обойти проблему. - - - Do not identify GoldenDict in HTTP headers - Не указывать GoldenDict в заголовках HTTP - - - Maximum network cache size: - Максимальный размер кэша: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Максимальный объём, занимаемый сетевым кэшем GoldenDict в папке -%1 -Установка параметра в 0 означает отключение кэширования - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Если опция включена, GoldenDict удаляет содержимое кэша при выходе из программы - - - Clear network cache on exit - Очищать кэш при выходе - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3514,10 +3495,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Сохранить отладочные сообщения в gd_log.txt в папке конфигурации - - Open website dictionary in seperate tab - Открыть словарь сайта в отдельной вкладке - S&can &Сканировать @@ -3530,6 +3507,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Отключить диалоги JavaScript + + Open website dictionary in separate tab + Открыть словарь сайта в отдельной вкладке + ProgramTypeEditor @@ -3781,6 +3762,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 ВНИМАНИЕ: %1 + + Definition + Определение + ScanPopupToolBar @@ -4259,6 +4244,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Доступно только при открытии сайтов в отдельных вкладках. Может быть путь к файлу (относительно конфигурационного каталога или абсолютного) или прямым содержанием скрипта. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Этот столбец отключен, потому что "Открыть словарь сайта на отдельной вкладке" параметр не включен в Настройках. + WordFinder diff --git a/locale/sk.ts b/locale/sk.ts index 578cdc3aa0..6efe9ed3f0 100644 --- a/locale/sk.ts +++ b/locale/sk.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: Nemôžem vytvoriť kartu bez slova Anki search: AnkiConnect is not enabled. @@ -889,10 +889,6 @@ medzi klasickou a školskou ortografiou v azbuke) Add folder Pridať priečinok - - Clear All - Vymazať všetko - Favorites: Obľúbené: @@ -901,10 +897,6 @@ medzi klasickou a školskou ortografiou v azbuke) All selected items will be deleted. Continue? Všetky označené položky budú odstránené. Pokračovať? - - Clear All Items - Vymazať všetky položky - Are you sure you want to clear all items? Naozaj chcete vymazať všetky položky? @@ -913,6 +905,14 @@ medzi klasickou a školskou ortografiou v azbuke) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ medzi klasickou a školskou ortografiou v azbuke) Are you sure you want to remove all the groups? Ste si istí, že chcete odstrániť všetky skupiny? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + Prid&ať skupinu + HistoryPaneWidget @@ -2624,6 +2632,14 @@ Pre vyhľadanie znakov '*', '?', '[', ']&apos Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3290,42 +3306,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Zakázať načítanie obsahu z iných webov (skryje väčšinu reklám) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Niektoré stránky odhalia GoldenDict cez HTTP hlavičky a blokujú jeho požiadavky. -Povoľte toto nastavenie na obídenie problému. - - - Do not identify GoldenDict in HTTP headers - Neidentifikovať GoldenDict v HTTP hlavičke - - - Maximum network cache size: - Maximálna veľkosť vyr. pamäte siete: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximálny priestor na disku obsadený vyrovnávacou pamäťou siete GoldenDict v -%1 -Ak nastavíte na 0, vyrovnávacia pamäť siete bude vypnutá. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Ak zapnete túto možnosť, GoldenDict -vyčistí vyrovnávaciu pamäť siete pri ukončení aplikácie. - - - Clear network cache on exit - Vyčistiť vyr. pamäť siete pri ukončení - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3502,10 +3482,6 @@ zo slovníkov Stardict, Babylon a GLS. Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3518,6 +3494,10 @@ zo slovníkov Stardict, Babylon a GLS. Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3660,7 +3640,7 @@ zo slovníkov Stardict, Babylon a GLS. Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Vynútiť preklad slova v hlavnom okne. Website Url: @@ -3672,11 +3652,11 @@ zo slovníkov Stardict, Babylon a GLS. Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Kompletný HTML (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Jeden HTML (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3684,15 +3664,15 @@ zo slovníkov Stardict, Babylon a GLS. Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime HTML (*.mhtml) Save Article As - Save Article As + Uložiť článok ako Save article complete - Save article complete + Uložiť článok dokončený Error @@ -3700,15 +3680,15 @@ zo slovníkov Stardict, Babylon a GLS. Can't save article: %1 - Can't save article: %1 + Nie je možné uložiť článok: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3769,6 +3749,10 @@ zo slovníkov Stardict, Babylon a GLS. WARNING: %1 UPOZORNENIE: %1 + + Definition + Definition + ScanPopupToolBar @@ -4242,6 +4226,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/sq.ts b/locale/sq.ts index fb6b301c3b..c745b79109 100644 --- a/locale/sq.ts +++ b/locale/sq.ts @@ -888,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder Shto dosje - - Clear All - Pastro të gjitha - Favorites: Të preferuarat: @@ -900,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Të gjithë artikujt e zgjedhur do të fshihen. Të vazhdohet? - - Clear All Items - Pastro të gjithë artikujt - Are you sure you want to clear all items? Jeni i sigurt që dëshironi të pastroni të gjithë artikujt? @@ -912,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1113,6 +1113,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Jeni i sigurt për heqjen e të gjitha grupeve? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Shtoj grupin + HistoryPaneWidget @@ -2622,6 +2630,14 @@ Për të gjetur '*', '?', '[', ']' simbo Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3292,42 +3308,6 @@ faqe shfaq probleme prej kësaj, çaktivizojeni. Disallow loading content from other sites (hides most advertisements) Mohoj përmbajtjen nga faqet e tjera (fsheh shumicën e reklamave) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Disa faqe e njohin GoldenDict me anë të kokëve HTTP, dhe i bllokojnë kërkesat. -Ky opsion e anashkalon problemin. - - - Do not identify GoldenDict in HTTP headers - Nuk identifikoj GoldenDict në kokët HTTP - - - Maximum network cache size: - Madhësia maksimale e memories së rrjetit: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Hapësira maksimale e diskut të zënë nga cache-i i rrjetit të GoldenDict në -%1 -Nëse vendoset në 0 cache-i i diskut të rrjetit do të çaktivizohet. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Kur ky opsion aktivizohet, GoldenDict -fshin cache-in e rrjetit të tij nga disku gjatë daljes. - - - Clear network cache on exit - Pastro memorien e rrjetit në dalje - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3502,10 +3482,6 @@ nga fjalorët Stardict, Babylon dhe GLS Save debug messages to gd_log.txt in the config folder Ruani mesazhet e korrigjimit në gd_log.txt në dosjen e konfigurimit - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3518,6 +3494,10 @@ nga fjalorët Stardict, Babylon dhe GLS Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3660,7 +3640,7 @@ nga fjalorët Stardict, Babylon dhe GLS Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Detyrojeni fjalën të përkthehet në dritaren kryesore. Website Url: @@ -3672,11 +3652,11 @@ nga fjalorët Stardict, Babylon dhe GLS Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Plotësoni Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Html e vetme (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3684,15 +3664,15 @@ nga fjalorët Stardict, Babylon dhe GLS Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Ruaj artikullin si Save article complete - Save article complete + Ruaj artikullin i plotë Error @@ -3700,15 +3680,15 @@ nga fjalorët Stardict, Babylon dhe GLS Can't save article: %1 - Can't save article: %1 + Nuk ruan artikullin: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3769,6 +3749,10 @@ nga fjalorët Stardict, Babylon dhe GLS WARNING: %1 PARALAJMËRIM: %1 + + Definition + Definition + ScanPopupToolBar @@ -4243,6 +4227,10 @@ Lista e plotë e gjuhëve të disponueshme mund të gjendet <a href="htt Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/sr.ts b/locale/sr.ts index 3a37c95241..6887c7950a 100644 --- a/locale/sr.ts +++ b/locale/sr.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Анки: не могу да креирам картицу без речи Anki search: AnkiConnect is not enabled. @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Додај фолдер - - Clear All - Обриши све - Favorites: Фаворити: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Све изабране ставке ће бити избрисане. Настави? - - Clear All Items - Обриши све ставке - Are you sure you want to clear all items? Да ли сте сигурни да желите да обришете све ставке? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Уклоните све групе? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Додај групу + HistoryPaneWidget @@ -2624,6 +2632,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3299,42 +3315,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Онемогући учитавање садржаја са других сајтова (уклања већи део оглашавања) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Неки сајтови откривају GoldenDict преко HTTP заглавља и блок захтева. -Омогућите ову могућност да бисте решили тај проблем. - - - Do not identify GoldenDict in HTTP headers - Немојте да идентификујете GoldenDict у HTTP заглављима - - - Maximum network cache size: - Максимална величина мрежне кеш меморије: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Максимални простор на диску који заузима ГолденДицт мрежна кеш меморија -%1 -Ако је постављено на 0, кеш мрежног диска ће бити онемогућен. - - - MiB - МиБ - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Када је ова опција омогућена, ГолденДицт -брише своју мрежну кеш меморију са диска током изласка. - - - Clear network cache on exit - Обришите мрежну кеш меморију при изласку - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3511,10 +3491,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3527,6 +3503,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3669,7 +3649,7 @@ from Stardict, Babylon and GLS dictionaries Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Присилите да се реч преведе у главном прозору. Website Url: @@ -3681,11 +3661,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Комплетан ХТМЛ (*.хтмл *.хтм) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Један ХТМЛ (*.хтмл *.хтм) PDF document (*.pdf *.PDF) @@ -3693,15 +3673,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + Миме Хтмл (*.мхтмл) Save Article As - Save Article As + Сачувајте овај чланак као Save article complete - Save article complete + Сачувај чланак је завршен Error @@ -3709,15 +3689,15 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + Није могуће сачувати чланак: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3778,6 +3758,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 УПОЗОРЕЊЕ: %1 + + Definition + Definition + ScanPopupToolBar @@ -4255,6 +4239,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/sv.ts b/locale/sv.ts index 1acf4e08b2..a7da8ff6bf 100644 --- a/locale/sv.ts +++ b/locale/sv.ts @@ -889,10 +889,6 @@ klassisk rättstavning och skolrättstavning i kyrillisk skrift) Add folder Lägg till mapp - - Clear All - Rensa alla - Favorites: Favoriter: @@ -901,10 +897,6 @@ klassisk rättstavning och skolrättstavning i kyrillisk skrift) All selected items will be deleted. Continue? Alla markerade objekt tas bort. Fortsätt? - - Clear All Items - Rensa alla objekt - Are you sure you want to clear all items? Är du säker på att du vill rensa alla objekt? @@ -913,6 +905,14 @@ klassisk rättstavning och skolrättstavning i kyrillisk skrift) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Rensa + + + Clear Favorites + Rensa favoriter + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ klassisk rättstavning och skolrättstavning i kyrillisk skrift) Are you sure you want to remove all the groups? Är du säker på att du vill ta bort alla grupper? + + Add a new dictionary group + Lägg till en ny ordboksgrupp + + + &Add group + &Lägg till grupp + HistoryPaneWidget @@ -2623,6 +2631,14 @@ För att hitta '*', '?', '[', ']' symbol Lock Panels Lås paneler + + Clear History + Rensa historik + + + Are you sure you want to clear all history items? + Är du säker på att du vill rensa alla historikobjekt? + Mdx::MdxArticleRequest @@ -3298,43 +3314,6 @@ webbplats slutar fungera p.g.a. det här, testa att inaktivera alternativet.Disallow loading content from other sites (hides most advertisements) Blockera inläsning av innehåll från andra webbplatser (döljer merparten av annonserna) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Vissa webbplatser identifierar GoldenDict m.h.a. HTTP-huvuden och -blockerar alla förfrågningar. Aktivera detta alternativ för att lösa -det problemet. - - - Do not identify GoldenDict in HTTP headers - Identifiera inte GoldenDict i HTTP-huvuden - - - Maximum network cache size: - Maximal nätverkscache storlek: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Maximalt diskutrymme som upptas av GoldenDicts nätverkscache -%1 -Om inställt på 0 kommer nätverksdiskcachen att inaktiveras. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - När det här alternativet är aktiverat rensar GoldenDict -sin nätverkscache från disken under avslutning. - - - Clear network cache on exit - Rensa nätverkscachen vid avslut - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3511,10 +3490,6 @@ från Stardict, Babylon och GLS ordböcker Save debug messages to gd_log.txt in the config folder Spara felsökningsmeddelanden till gd_log.txt i konfigurationsmappen - - Open website dictionary in seperate tab - Öppna webbplatsordbok i separat flik - S&can &Skanna @@ -3527,6 +3502,10 @@ från Stardict, Babylon och GLS ordböcker Suppress JavaScript dialogs Undertrycka JavaScript dialogrutor + + Open website dictionary in separate tab + Öppna webbplatsordlista i separat flik + ProgramTypeEditor @@ -3778,6 +3757,10 @@ från Stardict, Babylon och GLS ordböcker WARNING: %1 VARNING: %1 + + Definition + Definition + ScanPopupToolBar @@ -4253,6 +4236,10 @@ Fullständig lista över tillgängliga språk finns <a href="https://lin Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Endast tillgängligt när webbplatser öppnas i separata flikar. Kan vara en filsökväg (relativ till konfigurationskatalog eller absolut) eller direkt skriptinnehåll. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Denna kolumn är inaktiverad eftersom "Öppna webbplatsordlista i separat flik" alternativet är inte aktiverat i inställningar. + WordFinder diff --git a/locale/tg.ts b/locale/tg.ts index 6ff80dc589..889ab87597 100644 --- a/locale/tg.ts +++ b/locale/tg.ts @@ -889,10 +889,6 @@ between classic and school orthography in cyrillic) Add folder Илова кардани папка - - Clear All - Ҳамаро тоза кунед - Favorites: Дӯстдоштаҳо: @@ -901,10 +897,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Ҳамаи ҷузъҳои интихобшуда нест карда мешаванд. Давом додан? - - Clear All Items - Ҳама ҷузъҳоро тоза кунед - Are you sure you want to clear all items? Шумо мутмаин ҳастед, ки мехоҳед ҳамаи ҷузъҳоро тоза кунед? @@ -913,6 +905,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Шумо мутмаин ҳастед, ки мехоҳед ҳамаи гурӯҳҳоро тоза кунед? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Гурӯҳро илова кардан + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3298,42 +3314,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Намоиши мӯҳтавои тиҷориро аз вебсайтҳои дигар қатъ кунед (рекламаро пинҳон мекунад) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Баъзе вебсайтҳо барномаи GoldenDict-ро тавассути сарварақҳои HTTP муайян мекунанд ва дархостҳои барномаро манъ мекунанд. -Барои ҳал кардани ин мушкилӣ, ин имконотро фаъол кунед. - - - Do not identify GoldenDict in HTTP headers - Пешгирии муайянкунии барномаи GoldenDict-ро дар сарварақҳои HTTP - - - Maximum network cache size: - Андозаи максималии кэши шабака: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Фазои максималии дискро кэши шабакаи GoldenDict ишғол мекунад -% 1 -Агар ба 0 муқаррар карда шавад, кэши диски шабакавӣ ғайрифаъол мешавад. - - - MiB - МБ - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Вақте ки ин хосият фаъол аст, GoldenDict -кэши шабакавии худро аз диск ҳангоми баромадан тоза мекунад. - - - Clear network cache on exit - Кэши шабакаро ҳангоми баромадан тоза кунед - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3509,10 +3489,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3525,6 +3501,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3679,11 +3659,11 @@ from Stardict, Babylon and GLS dictionaries Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Html-ро пурра кунед (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Html ягона (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3691,15 +3671,15 @@ from Stardict, Babylon and GLS dictionaries Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Мақоларо захира кардан ҳамчун Save article complete - Save article complete + Мақоларо пурра захира кунед Error @@ -3707,15 +3687,15 @@ from Stardict, Babylon and GLS dictionaries Can't save article: %1 - Can't save article: %1 + Мақола захира нашуд: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3776,6 +3756,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 Огоҳӣ: %1 + + Definition + Definition + ScanPopupToolBar @@ -4251,6 +4235,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/tk.ts b/locale/tk.ts index 7eadd53729..3937ab1fd4 100644 --- a/locale/tk.ts +++ b/locale/tk.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: sözsiz kartoçka döredip bolmaz Anki search: AnkiConnect is not enabled. @@ -888,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder Papka goşuň - - Clear All - Hemmesini arassala - Favorites: Halanýanlar: @@ -900,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Selectedhli saýlanan elementler pozular. Dowam et? - - Clear All Items - Itemshli elementleri arassalaň - Are you sure you want to clear all items? Itemshli zatlary arassalamak isleýändigiňize ynanýarsyňyzmy? @@ -912,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1113,6 +1113,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Siz çyndanam ähli toparlary aýyrmak isleýärsiňizmi? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + &Topary goş + HistoryPaneWidget @@ -2622,6 +2630,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3296,42 +3312,6 @@ blokirlär. Şol sebäpli käbir sahypa döwülse, muny öçürip görüň.Disallow loading content from other sites (hides most advertisements) Özge saýtlardan zat ýüklemegi gadagan et (köp sanly reklama/mahabt gizlemgegini üpjün edýär) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Käbir websaýtlar GoldenDict programmany HTTP ady arkaly görýärler we olara ýüz tutmaga rugsat berenoklar. -Şeýle meseläni çözmek üçin, şuny işlediň. - - - Do not identify GoldenDict in HTTP headers - GoldenDict-ng HTTP ady arkaly görkezme - - - Maximum network cache size: - Ulgam keş keşiniň iň uly ululygy: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - GoldenDict-iň tor keşi tarapyndan iň köp disk ýeri -% 1 -0-a gabat gelse, tor diski keşi ýapylar. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Bu opsiýa açyk bolsa, GoldenDict -çykyş wagtynda tor keşini diskden arassalaýar. - - - Clear network cache on exit - Çykyşda tor keşini arassalaň - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3508,10 +3488,6 @@ arkaly goşmaça makalalary gözlemek üçin bu opsiýany açyň Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3524,6 +3500,10 @@ arkaly goşmaça makalalary gözlemek üçin bu opsiýany açyň Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3666,7 +3646,7 @@ arkaly goşmaça makalalary gözlemek üçin bu opsiýany açyň Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Sözü esasy setirde terjime etmäge mejbur ediň. Website Url: @@ -3678,11 +3658,11 @@ arkaly goşmaça makalalary gözlemek üçin bu opsiýany açyň Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Doly Html (* .html * .htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Leeke Html (* .html * .htm) PDF document (*.pdf *.PDF) @@ -3690,15 +3670,15 @@ arkaly goşmaça makalalary gözlemek üçin bu opsiýany açyň Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (* .mhtml) Save Article As - Save Article As + Makalany şular ýaly ýatda sakla Save article complete - Save article complete + Makalany doly ýazdyryň Error @@ -3706,15 +3686,15 @@ arkaly goşmaça makalalary gözlemek üçin bu opsiýany açyň Can't save article: %1 - Can't save article: %1 + Makalany ýatda saklap bolmady %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3775,6 +3755,10 @@ arkaly goşmaça makalalary gözlemek üçin bu opsiýany açyň WARNING: %1 DUNDURYŞ: %1 + + Definition + Definition + ScanPopupToolBar @@ -4248,6 +4232,10 @@ tapyp bilersiňiz </a> Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/tr.ts b/locale/tr.ts index b0061032f7..c160a63f9a 100644 --- a/locale/tr.ts +++ b/locale/tr.ts @@ -889,10 +889,6 @@ arasındaki farkı giderir) Add folder Klasöre ekle - - Clear All - Tümünü Temizle - Favorites: Favoriler: @@ -901,10 +897,6 @@ arasındaki farkı giderir) All selected items will be deleted. Continue? Seçilen bütün öğeler silinecek. Devam edilsin mi? - - Clear All Items - Tüm Öğeleri Temizle - Are you sure you want to clear all items? Tüm öğeleri temizlemek istediğinizden emin misiniz? @@ -913,6 +905,14 @@ arasındaki farkı giderir) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1114,6 +1114,14 @@ arasındaki farkı giderir) Are you sure you want to remove all the groups? Bütün grupları kaldırmak istiyor musunuz? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + Grup &ekle + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3295,42 +3311,6 @@ engellemesini sağlar. Bazı siteler bu nedenle bozulursa, bunu devre dışı b Disallow loading content from other sites (hides most advertisements) İçeriğin diğer sitelerden yüklenmesine izin verme (çoğu reklamı gizler) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Bazı siteler GoldenDict'i HTTP başlıkları aracılığıyla algılar ve istekleri engeller. -Sorunu çözmek için bu seçeneği etkinleştirin. - - - Do not identify GoldenDict in HTTP headers - GoldenDict'i HTTP başlıklarında tanımlamayın - - - Maximum network cache size: - Maksimum ağ önbelleği boyutu: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Goldendict'in ağ önbelleğinin kapladığı maksimum disk alanı -%1 -0 olarak ayarlanırsa, ağ disk önbelleği devre dışı bırakılır. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Bu seçenek etkinleştirildiğinde, GoldenDict -çıkış sırasında ağ önbelleğini diskten temizler. - - - Clear network cache on exit - Çıkışta ağ önbelleğini temizle - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3505,10 +3485,6 @@ eşanlamlı listeleri aracılığıyla ekstra makale aramasını etkinleştirmek Save debug messages to gd_log.txt in the config folder Save debug messages to gd_log.txt in the config folder - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3521,6 +3497,10 @@ eşanlamlı listeleri aracılığıyla ekstra makale aramasını etkinleştirmek Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3663,7 +3643,7 @@ eşanlamlı listeleri aracılığıyla ekstra makale aramasını etkinleştirmek Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Ana pencerede çevrilecek kelimeyi zorla. Website Url: @@ -3675,11 +3655,11 @@ eşanlamlı listeleri aracılığıyla ekstra makale aramasını etkinleştirmek Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Tam Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Tek Html (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3687,15 +3667,15 @@ eşanlamlı listeleri aracılığıyla ekstra makale aramasını etkinleştirmek Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mim Html (*.mhtml) Save Article As - Save Article As + Maddeyi Farklı Kaydet Save article complete - Save article complete + Makaleyi kaydetme tamamlandı Error @@ -3703,15 +3683,15 @@ eşanlamlı listeleri aracılığıyla ekstra makale aramasını etkinleştirmek Can't save article: %1 - Can't save article: %1 + Kurtarılmamış yazı: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3772,6 +3752,10 @@ eşanlamlı listeleri aracılığıyla ekstra makale aramasını etkinleştirmek WARNING: %1 UYARI: %1 + + Definition + Definition + ScanPopupToolBar @@ -4246,6 +4230,10 @@ Mevcut dillerin tam listesi burada bulunabilir <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/uk.ts b/locale/uk.ts index 14c80394f6..689ef3ae23 100644 --- a/locale/uk.ts +++ b/locale/uk.ts @@ -888,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder Додати теку - - Clear All - Очистити все - Favorites: Обране: @@ -900,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Всі вибрані елементи буде видалено. Продовжити? - - Clear All Items - Очистити всі елементи - Are you sure you want to clear all items? Ви впевнені, що бажаєте очистити всі елементи? @@ -912,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Очистити + + + Clear Favorites + Видалити уподобання + Forvo::ForvoArticleRequest @@ -1113,6 +1113,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Бажаєте вилучити всі групи? + + Add a new dictionary group + Додати нову групу словників + + + &Add group + &Додати групу + HistoryPaneWidget @@ -2623,6 +2631,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Блокування панелей + + Clear History + Очистити історію + + + Are you sure you want to clear all history items? + Ви впевнені, що хочете очистити всі елементи історії? + Mdx::MdxArticleRequest @@ -3295,42 +3311,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Заборонити завантажувати вміст з інших сайтів (ховає більшість реклами) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Деякі сайти виявлять GoldenDict через загловок HTTP і блокують запити. -Щоб обійти цю проблему, ввімкніть цей параметр. - - - Do not identify GoldenDict in HTTP headers - Не отожнювати GoldenDict в заголовках HTTP - - - Maximum network cache size: - Максимальний розмір кеша в мережі : - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Максимальний дисковий простір, який займає мережевий кеш GoldenDict -%1 -Якщо встановлено значення 0, кеш мережевого диска буде вимкнено. - - - MiB - Міб - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Коли цю опцію ввімкнено, Золотик -очищує з диска кеш у мережі. - - - Clear network cache on exit - Очистити кеш мережі при виході - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3507,10 +3487,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder Зберігати повідомлення налагодження в gd_log.txt в теці налаштувань - - Open website dictionary in seperate tab - Відкрити словник веб-сайту в окремій вкладці - S&can С&творити @@ -3523,6 +3499,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs Ігнорувати діалогові вікна JavaScript + + Open website dictionary in separate tab + Відкрити словник веб-сайту в окремій вкладці + ProgramTypeEditor @@ -3774,6 +3754,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 ПОПЕРЕДЖЕННЯ: %1 + + Definition + Визначення процесу + ScanPopupToolBar @@ -4248,6 +4232,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Доступно тільки при відкритті сайтів в окремих вкладках. Може бути шлях до файлу (відносно каталогу конфігурації або абсолютний) або прямий зміст скриптів. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + Цей стовпець вимкнено через те, що "Відкрити словник веб-сайту в окремій вкладці" параметр не увімкнено у «Налаштуванні». + WordFinder diff --git a/locale/vi.ts b/locale/vi.ts index b509f70fbd..81a192639e 100644 --- a/locale/vi.ts +++ b/locale/vi.ts @@ -20,7 +20,7 @@ AnkiConnector Anki: can't create a card without a word - Anki: can't create a card without a word + Anki: không thể tạo thẻ mà không có từ nào Anki search: AnkiConnect is not enabled. @@ -888,10 +888,6 @@ between classic and school orthography in cyrillic) Add folder Thêm thư mục - - Clear All - Xóa tất cả - Favorites: yêu thích: @@ -900,10 +896,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? Tất cả các mục đã chọn sẽ bị xóa. Tiếp tục? - - Clear All Items - Xóa tất cả các mục - Are you sure you want to clear all items? Bạn có chắc chắn muốn xóa tất cả các mục không? @@ -912,6 +904,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. Make this folder the target of adding/removing words actions. + + Clear + Clear + + + Clear Favorites + Clear Favorites + Forvo::ForvoArticleRequest @@ -1113,6 +1113,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? Bạn có muốn xóa hết các nhóm? + + Add a new dictionary group + Add a new dictionary group + + + &Add group + Thê&m nhóm + HistoryPaneWidget @@ -2622,6 +2630,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels Lock Panels + + Clear History + Clear History + + + Are you sure you want to clear all history items? + Are you sure you want to clear all history items? + Mdx::MdxArticleRequest @@ -3293,42 +3309,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) Không cho phép tải nội dung từ các trang khác (tắt các quảng cáo) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - Một vài trang mạng nhận ra Từ điển Vàng thông qua phần đầu giao thức HTTP -và chặn truy vấn. Bật tính năng này để không chèn định danh vào truy vấn HTTP. - - - Do not identify GoldenDict in HTTP headers - Không định danh Từ điển Vàng trong phần đầu giao thức HTTP - - - Maximum network cache size: - Kích thước bộ đệm mạng tối đa: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - Dung lượng ổ đĩa tối đa do bộ đệm mạng của GoldenDict chiếm trong -%1 -Nếu được đặt thành 0, bộ đệm đĩa mạng sẽ bị tắt. - - - MiB - MiB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - Khi tùy chọn này được bật, GoldenDict -sẽ xóa bộ đệm mạng của nó khỏi đĩa trong khi thoát. - - - Clear network cache on exit - Xóa bộ đệm mạng khi thoát - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3502,10 +3482,6 @@ từ các từ điển Stardict, Babylon và GLS Save debug messages to gd_log.txt in the config folder Lưu thông điệp gỡ lỗi vào gd_log.txt trong thư mục cấu hình - - Open website dictionary in seperate tab - Open website dictionary in seperate tab - S&can S&can @@ -3518,6 +3494,10 @@ từ các từ điển Stardict, Babylon và GLS Suppress JavaScript dialogs Suppress JavaScript dialogs + + Open website dictionary in separate tab + Open website dictionary in separate tab + ProgramTypeEditor @@ -3660,7 +3640,7 @@ từ các từ điển Stardict, Babylon và GLS Force the word to be translated in the mainwindow. - Force the word to be translated in the mainwindow. + Buộc dịch từ trong cửa sổ chính. Website Url: @@ -3672,11 +3652,11 @@ từ các từ điển Stardict, Babylon và GLS Complete Html (*.html *.htm) - Complete Html (*.html *.htm) + Hoàn thành Html (*.html *.htm) Single Html (*.html *.htm) - Single Html (*.html *.htm) + Html đơn (*.html *.htm) PDF document (*.pdf *.PDF) @@ -3684,15 +3664,15 @@ từ các từ điển Stardict, Babylon và GLS Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + Lưu Bài viết như Save article complete - Save article complete + Lưu bài viết hoàn tất Error @@ -3700,15 +3680,15 @@ từ các từ điển Stardict, Babylon và GLS Can't save article: %1 - Can't save article: %1 + Không thể lưu Bài viết: %1 Save PDF complete - Save PDF complete + Save PDF complete Save PDF failed - Save PDF failed + Save PDF failed Saving article... (%1/%2) @@ -3769,6 +3749,10 @@ từ các từ điển Stardict, Babylon và GLS WARNING: %1 CẢNH BÁO: %1 + + Definition + Definition + ScanPopupToolBar @@ -4243,6 +4227,10 @@ Có thể tìm thấy danh sách đầy đủ các ngôn ngữ khả dụng < Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + WordFinder diff --git a/locale/zh_CN.ts b/locale/zh_CN.ts index 1ba6a06791..6dd95b60f0 100644 --- a/locale/zh_CN.ts +++ b/locale/zh_CN.ts @@ -887,10 +887,6 @@ between classic and school orthography in cyrillic) Add folder 添加文件夹 - - Clear All - 清除全部 - Favorites: 收藏: @@ -899,10 +895,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? 所有选中项将被删除。是否继续? - - Clear All Items - 清除所有条目 - Are you sure you want to clear all items? 您确实要清除所有条目吗? @@ -911,6 +903,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. 将此文件夹作为添加/删除单词操作的目标。 + + Clear + 清空 + + + Clear Favorites + 清除收藏夹 + Forvo::ForvoArticleRequest @@ -1112,6 +1112,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? 确定移除全部群组吗? + + Add a new dictionary group + 添加新字典组 + + + &Add group + 添加群组(&A) + HistoryPaneWidget @@ -2622,6 +2630,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels 锁定面板 + + Clear History + 清除历史记录 + + + Are you sure you want to clear all history items? + 您确定要清除所有历史项目吗? + Mdx::MdxArticleRequest @@ -3286,39 +3302,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) 禁止载入来自其它站点的内容(封杀广告) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - 部分网站屏蔽了使用 GoldenDict 浏览器标识(UA)的请求,启用此选项以绕过该问题。 - - - Do not identify GoldenDict in HTTP headers - 不使用 GoldenDict 浏览器标识(UA) - - - Maximum network cache size: - 允许的最大网络缓存: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - GoldenDict 使用的最大磁盘容量位于%1 -如果设置为0,磁盘缓存会被禁用。 - - - MiB - MB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - GoldenDict 退出时清空网络缓存。 - - - Clear network cache on exit - 退出时清空网络缓存 - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3492,10 +3475,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder 在配置文件夹中将调试消息保存到 gd_log.txt - - Open website dictionary in seperate tab - 在分隔符中打开网站词典 - S&can S&can @@ -3508,6 +3487,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs 禁用 JavaScript 对话框 + + Open website dictionary in separate tab + 在单独标签中打开网站词典 + ProgramTypeEditor @@ -3702,7 +3685,7 @@ from Stardict, Babylon and GLS dictionaries Saving article... (%1/%2) - Saving article... (%1/%2) + 正在保存文章... (%1/%2) @@ -3759,6 +3742,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 警告: %1 + + Definition + 定 义 + ScanPopupToolBar @@ -4232,6 +4219,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. 仅当以单独标签打开网站时可用。可以是文件路径(相对于配置目录或绝对目录),也可以是直接脚本内容。 + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + 此列已禁用,因为 "打开网站字典在单独标签" 选项中未在“首选项”中启用。 + WordFinder diff --git a/locale/zh_TW.ts b/locale/zh_TW.ts index a337a7131b..384b3f1cd2 100644 --- a/locale/zh_TW.ts +++ b/locale/zh_TW.ts @@ -887,10 +887,6 @@ between classic and school orthography in cyrillic) Add folder 新增資料夾 - - Clear All - 全部清除 - Favorites: 我的最愛: @@ -899,10 +895,6 @@ between classic and school orthography in cyrillic) All selected items will be deleted. Continue? 所有選擇的項目都會被刪除。是否繼續? - - Clear All Items - 清除所有項目 - Are you sure you want to clear all items? 您確定要清除所有項目嗎? @@ -911,6 +903,14 @@ between classic and school orthography in cyrillic) Make this folder the target of adding/removing words actions. 使該資料夾成為新增/刪除單字操作的目標。 + + Clear + 清除 + + + Clear Favorites + 清除收藏夾 + Forvo::ForvoArticleRequest @@ -1112,6 +1112,14 @@ between classic and school orthography in cyrillic) Are you sure you want to remove all the groups? 您確定要移除全部群組嗎? + + Add a new dictionary group + 新增新的字典組 + + + &Add group + 新增群組(&A) + HistoryPaneWidget @@ -2622,6 +2630,14 @@ To find '*', '?', '[', ']' symbols use & Lock Panels 鎖定面板 + + Clear History + 清除歷史記錄 + + + Are you sure you want to clear all history items? + 您確定要清除所有歷史記錄嗎? + Mdx::MdxArticleRequest @@ -3286,41 +3302,6 @@ you are browsing. If some site breaks because of this, try disabling this.Disallow loading content from other sites (hides most advertisements) 禁止載入來自其它網站的內容 (隱藏大多數廣告) - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - 有些網站會偵測 GoldenDict 的 HTTP 標頭檔,所以阻擋其請求。 -啟用此選項能應付此問題。 - - - Do not identify GoldenDict in HTTP headers - 在 HTTP 標頭檔中不要顯示 GoldenDict-ng - - - Maximum network cache size: - 最大網絡緩存大小: - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - GoldenDict的網絡緩存佔用的最大磁盤空間在%1 -如果設置為 0,網絡磁盤緩存將被禁用。 - - - MiB - MB - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - 啟用此選項時,GoldenDict -在退出期間從磁盤清除其網絡緩存。 - - - Clear network cache on exit - 結束時清除快取 - When this is enabled, the program periodically checks if a new, updated version of GoldenDict @@ -3495,10 +3476,6 @@ from Stardict, Babylon and GLS dictionaries Save debug messages to gd_log.txt in the config folder 將調試消息保存到配置文件夾中的 gd_log.txt - - Open website dictionary in seperate tab - 在另開的標籤頁中打開網站字典 - S&can 掃描(&C) @@ -3511,6 +3488,10 @@ from Stardict, Babylon and GLS dictionaries Suppress JavaScript dialogs 禁止顯示 JavaScript 對話框 + + Open website dictionary in separate tab + 在新分頁中開啟網站字典 + ProgramTypeEditor @@ -3669,23 +3650,23 @@ from Stardict, Babylon and GLS dictionaries Single Html (*.html *.htm) - Single Html (*.html *.htm) + 單一 Html (*.html *.htm) PDF document (*.pdf *.PDF) - PDF document (*.pdf *.PDF) + PDF 文件 (*.pdf *.PDF) Mime Html (*.mhtml) - Mime Html (*.mhtml) + Mime Html (*.mhtml) Save Article As - Save Article As + 條目另存新檔 Save article complete - Save article complete + 保存文章完成 Error @@ -3697,15 +3678,15 @@ from Stardict, Babylon and GLS dictionaries Save PDF complete - Save PDF complete + 儲存 PDF 完成 Save PDF failed - Save PDF failed + 儲存 PDF 失敗 Saving article... (%1/%2) - Saving article... (%1/%2) + 正在儲存文章…(%1/%2) @@ -3762,6 +3743,10 @@ from Stardict, Babylon and GLS dictionaries WARNING: %1 警告: %1 + + Definition + 定義 + ScanPopupToolBar @@ -4235,6 +4220,10 @@ Full list of availiable languages can be found <a href="https://linguali Only available when opening websites in separate tabs. Can be a file path (relative to config directory or absolute) or direct script content. 僅在以分頁方式打開網站時可用。可以是檔案路徑(相對於配置目錄或絕對路徑)或直接的腳本內容。 + + This column is disabled because "Open website dictionary in separate tab" option is not enabled in Preferences. + 由於「首選項」中未啟用「在新分頁中開啟網站字典」選項,因此該列已停用。 + WordFinder diff --git a/redist/io.github.xiaoyifang.goldendict_ng.metainfo.xml b/redist/io.github.xiaoyifang.goldendict_ng.metainfo.xml index b61fd8c4f7..a0cd4df6c8 100644 --- a/redist/io.github.xiaoyifang.goldendict_ng.metainfo.xml +++ b/redist/io.github.xiaoyifang.goldendict_ng.metainfo.xml @@ -14,19 +14,22 @@

- GoldenDict-ng is a advanced dictionary lookup program, supporting many - dictionary formats. + GoldenDict-ng is an advanced dictionary lookup program, supporting multiple + dictionary formats and features.

https://user-images.githubusercontent.com/20123683/255323975-4f12d2aa-c8c9-4dc6-b3d4-cfbc46d70889.png + The main application window https://user-images.githubusercontent.com/20123683/255323667-e76a55bc-4c81-487c-9f2b-14ece7e25f7c.png + Dark mode https://user-images.githubusercontent.com/20123683/239691144-5145f844-ed88-4a24-ac86-4904ede13a32.png + Suggestion list https://xiaoyifang.github.io/goldendict-ng/ @@ -41,6 +44,7 @@ org.goldendict_ng.desktop + @@ -49,9 +53,5 @@ - - - - diff --git a/src/article_maker.cc b/src/article_maker.cc index cf46768113..851efbc398 100644 --- a/src/article_maker.cc +++ b/src/article_maker.cc @@ -43,6 +43,7 @@ std::string ArticleMaker::makeHtmlHeader( const QString & word, const QString & string result = R"( + )"; // add jquery @@ -629,7 +630,7 @@ void ArticleRequest::bodyFinished() fmt::format_to( std::back_inserter( head ), FMT_COMPILE( - R"(
)" ), "", @@ -639,19 +640,20 @@ void ArticleRequest::bodyFinished() fmt::format_to( std::back_inserter( head ), FMT_COMPILE( - R"(
- + R"(
+ {3} {4} - -
)" ), + + )" ), dictId, collapse ? R"(style="cursor:pointer;")" : "", "", Html::escape( tr( "From " ).toStdString() ), Html::escape( activeDict->getName() ), collapse ? "gdexpandicon" : "gdcollapseicon", - "" ); + "", + collapse ? "false" : "true" ); head += R"(
)"; @@ -669,7 +671,7 @@ void ArticleRequest::bodyFinished() fmt::format_to( std::back_inserter( head ), FMT_COMPILE( - R"(
)" ), + R"(
)" ), LangCoder::intToCode2( activeDict->getLangFrom() ).toStdString(), LangCoder::intToCode2( activeDict->getLangTo() ).toStdString(), collapse ? "none" : "block", @@ -692,7 +694,7 @@ void ArticleRequest::bodyFinished() qWarning() << "getDataSlice error:" << e.what(); } - auto separator = R"(
)"; + auto separator = R"(
)"; appendString( separator ); wasUpdated = true; @@ -857,7 +859,7 @@ void ArticleRequest::compoundSearchNextStep( bool lastSearchSucceeded ) // Append the beginning footer += R"(
)" + Html::escape( tr( "Compound expressions: " ).toUtf8().data() ) - + ""; + + "
"; firstCompoundWasFound = true; } @@ -877,14 +879,13 @@ void ArticleRequest::compoundSearchNextStep( bool lastSearchSucceeded ) // The last word was the last possible to start from if ( firstCompoundWasFound ) { - footer += ""; + footer += "
"; } // Now add links to all the individual words. They conclude the result. footer += R"(
)" - + Html::escape( tr( "Individual words: " ).toUtf8().data() ) - + "
applicationName().toUtf8(), "" ) ); - } QNetworkReply * reply = QNetworkAccessManager::createRequest( op, newReq, nullptr ); @@ -222,7 +219,31 @@ sptr< Dictionary::DataRequest > ArticleNetworkAccessManager::handleLookupScheme( } // See if we have some dictionaries muted - QStringList mutedDictLists = Utils::Url::queryItemValue( url, "muted" ).split( ',' ); + QString mutedDictsEncoded = Utils::Url::queryItemValue( url, "muted" ); + QStringList mutedDictLists; + + if ( !mutedDictsEncoded.isEmpty() ) { + mutedDictLists = mutedDictsEncoded.split( ',' ); + } + else { + // If muted is not provided in URL, we get it from config + const Config::Class * cfg = GlobalBroadcaster::instance()->getConfig(); + if ( cfg ) { + bool isPopup = Utils::Url::queryItemValue( url, "popup" ) == "1"; + const Config::Group * grp = cfg->getGroup( group ); + const Config::DictionarySets * mutedDictionaries; + if ( group == GroupId::AllGroupId ) { + mutedDictionaries = isPopup ? &cfg->popupMutedDictionaries : &cfg->mutedDictionaries; + } + else { + mutedDictionaries = grp ? ( isPopup ? &grp->popupMutedDictionaries : &grp->mutedDictionaries ) : nullptr; + } + + if ( mutedDictionaries ) { + mutedDictLists = mutedDictionaries->values(); + } + } + } QSet< QString > mutedDicts( mutedDictLists.begin(), mutedDictLists.end() ); // Unpack contexts diff --git a/src/article_netmgr.hh b/src/article_netmgr.hh index e64149597b..049543571d 100644 --- a/src/article_netmgr.hh +++ b/src/article_netmgr.hh @@ -30,7 +30,6 @@ class ArticleNetworkAccessManager: public QNetworkAccessManager const vector< sptr< Dictionary::Class > > & dictionaries; const ArticleMaker & articleMaker; const bool & disallowContentFromOtherSites; - const bool & hideGoldenDictHeader; QMimeDatabase db; public: @@ -38,13 +37,11 @@ public: ArticleNetworkAccessManager( QObject * parent, const vector< sptr< Dictionary::Class > > & dictionaries_, const ArticleMaker & articleMaker_, - const bool & disallowContentFromOtherSites_, - const bool & hideGoldenDictHeader_ ): + const bool & disallowContentFromOtherSites_ ): QNetworkAccessManager( parent ), dictionaries( dictionaries_ ), articleMaker( articleMaker_ ), - disallowContentFromOtherSites( disallowContentFromOtherSites_ ), - hideGoldenDictHeader( hideGoldenDictHeader_ ) + disallowContentFromOtherSites( disallowContentFromOtherSites_ ) { } diff --git a/src/common/folding.cc b/src/common/folding.cc index 1d8ebac989..af7f2098f0 100644 --- a/src/common/folding.cc +++ b/src/common/folding.cc @@ -40,6 +40,21 @@ std::u32string apply( const std::u32string & in, bool preserveWildcards ) return caseFolded; } +std::string applyForIndex( const QString & in ) +{ + // remove diacritics (normalization) + auto temp = in.normalized( QString::NormalizationForm_KD ).remove( RX::accentPunc ).toStdU32String(); + // case folding + std::u32string caseFolded; + caseFolded.reserve( temp.size() ); + char32_t buf[ foldCaseMaxOut ]; + for ( const char32_t ch : temp ) { + auto n = foldCase( ch, buf ); + caseFolded.append( buf, n ); + } + return Text::toUtf8( caseFolded ); +} + std::u32string applySimpleCaseOnly( const std::u32string & in ) { const char32_t * nextChar = in.data(); diff --git a/src/common/folding.hh b/src/common/folding.hh index c36a262fb3..54e3c15d6d 100644 --- a/src/common/folding.hh +++ b/src/common/folding.hh @@ -26,7 +26,7 @@ enum { /// Applies the folding algorithm to each character in the given string, /// making another one as a result. std::u32string apply( const std::u32string &, bool preserveWildcards = false ); - +std::string applyForIndex( const QString & in ); /// Applies only simple case folding algorithm. Since many dictionaries have /// different case style, we interpret words differing only by case as synonyms. std::u32string applySimpleCaseOnly( const std::u32string & ); diff --git a/src/common/globalbroadcaster.cc b/src/common/globalbroadcaster.cc index d09cfca469..8f2151f820 100644 --- a/src/common/globalbroadcaster.cc +++ b/src/common/globalbroadcaster.cc @@ -16,7 +16,7 @@ GlobalBroadcaster::GlobalBroadcaster( QObject * parent ): QStringList whiteUrlHosts = { "googleapis.com", "gstatic.com" }; for ( auto & host : std::as_const( whiteUrlHosts ) ) { - whitelist.insert( host ); + hostWhitelist.insert( host ); } } @@ -40,29 +40,39 @@ Config::Preferences * GlobalBroadcaster::getPreference() const return config ? &config->preferences : nullptr; } -void GlobalBroadcaster::addWhitelist( QString host ) +void GlobalBroadcaster::addHostWhitelist( QString host ) { - whitelist.insert( host ); + hostWhitelist.insert( host ); } -bool GlobalBroadcaster::existedInWhitelist( QString host ) const +void GlobalBroadcaster::addRefererWhitelist( QString host ) +{ + refererWhitelist.insert( host ); +} + +bool existedInWhitelistInternal( const QSet< QString > & whitelist, QString host ) { for ( const QString & item : whitelist ) { - // Exact match - e.g. "www.example.com" matches "www.example.com" if ( host == item ) { return true; } - - // Extract base domain from both host and item for comparison QString urlBaseDomain = Utils::Url::extractBaseDomain( host ); QString itemBaseDomain = Utils::Url::extractBaseDomain( item ); - - // Compare base domains if ( urlBaseDomain == itemBaseDomain ) { return true; } } - return false; // No match found + return false; +} + +bool GlobalBroadcaster::existedInHostWhitelist( QString host ) const +{ + return existedInWhitelistInternal( hostWhitelist, host ); +} + +bool GlobalBroadcaster::existedInRefererWhitelist( QString host ) const +{ + return existedInWhitelistInternal( refererWhitelist, host ); } diff --git a/src/common/globalbroadcaster.hh b/src/common/globalbroadcaster.hh index 3bb12f573b..f303919d90 100644 --- a/src/common/globalbroadcaster.hh +++ b/src/common/globalbroadcaster.hh @@ -32,13 +32,17 @@ class GlobalBroadcaster: public QObject const AudioPlayerPtr * audioPlayer = nullptr; std::vector< sptr< Dictionary::Class > > * allDictionaries = nullptr; Instances::Groups * groups = nullptr; - QSet< QString > whitelist; + QSet< QString > hostWhitelist; + QSet< QString > refererWhitelist; Icons::DictionaryIconName _icon_names; QMap< QString, QString > lsaIdToPathMap; QMap< QString, QString > lsaPathToIdMap; QMap< QString, sptr< Dictionary::Class > > dictMap; + public: + std::atomic_bool is_popup; + void setConfig( Config::Class * _config ); Config::Class * getConfig() const; void setAudioPlayer( const AudioPlayerPtr * _audioPlayer ); @@ -54,32 +58,14 @@ public: // For backward compatibility Config::Preferences * getPreference() const; GlobalBroadcaster( QObject * parent = nullptr ); - /// \brief Add a host to whitelist. - /// - /// The host should be a full domain. For subdomain matching, add the base domain - /// (e.g. "example.com"). For special TLDs, add the appropriate form - /// (e.g. "example.com.uk" for UK sites). - /// - /// \param host The host to add to whitelist - void addWhitelist( QString host ); - - /// \brief Check if a host exists in the whitelist - /// - /// This method checks for exact matches and base domain matches: - /// 1. Direct string matching - e.g. "www.example.com" matches "www.example.com" - /// 2. Base domain matching using Utils::Url::extractBaseDomain() - e.g. "example.com" matches "www.example.com" - /// - /// Generic pattern handling for TLDs like .com.xx, .co.xx, .org.xx: - /// - For "www.example.com.jp", the base domain is "example.com" - /// - For "api.service.org.uk", the base domain is "service.org" - /// - /// Cross-TLD matching requires explicit entries: - /// - To match both ".com" and ".com.xx" domains, both "example.com" and "example.com.xx" - /// need to be added to the whitelist separately - /// + /// \param host The host to add to host whitelist + void addHostWhitelist( QString host ); + void addRefererWhitelist( QString host ); + /// \param host The host to check - /// \return true if the host is in the whitelist, false otherwise - bool existedInWhitelist( QString host ) const; + /// \return true if the host is in the host whitelist, false otherwise + bool existedInHostWhitelist( QString host ) const; + bool existedInRefererWhitelist( QString host ) const; static GlobalBroadcaster * instance(); unsigned currentGroupId; QString translateLineText{}; @@ -101,5 +87,5 @@ signals: void indexingDictionary( QString ); - void websiteDictionarySignal( QString, QString, QString ); + void websiteDictionarySignal( QString, QString, QString, bool, QString ); }; diff --git a/src/common/globalregex.cc b/src/common/globalregex.cc index abe14a5c8b..b1301e21e6 100644 --- a/src/common/globalregex.cc +++ b/src/common/globalregex.cc @@ -74,6 +74,7 @@ QRegularExpression Mdx::styleElement( R"((]*>)([\w\W]*?)(<\/style>))", QRegularExpression Epwing::refWord( R"([r|p](\d+)at(\d+))", QRegularExpression::CaseInsensitiveOption ); +const QRegularExpression RX::qtWebEngineUserAgent( R"(QtWebEngine\/[\d.]+\s*)" ); bool Html::containHtmlEntity( const std::string & text ) { diff --git a/src/common/globalregex.hh b/src/common/globalregex.hh index 46febdfa99..343a57a2d8 100644 --- a/src/common/globalregex.hh +++ b/src/common/globalregex.hh @@ -68,6 +68,7 @@ bool containHtmlEntity( const std::string & text ); } // namespace Html const static QRegularExpression accentMark( R"(\p{M})", QRegularExpression::UseUnicodePropertiesOption ); +const static QRegularExpression accentPunc( R"(\p{M}\p{P})", QRegularExpression::UseUnicodePropertiesOption ); //contain unicode space mark,invisible, and punctuation const static QRegularExpression markPuncSpace( R"([\p{M}\p{Z}\p{C}\p{P}])", QRegularExpression::UseUnicodePropertiesOption ); @@ -76,4 +77,6 @@ const static QRegularExpression markSpace( R"([\p{M}\p{Z}])", QRegularExpression const static QRegularExpression whiteSpace( "\\s+" ); +extern const QRegularExpression qtWebEngineUserAgent; + } // namespace RX diff --git a/src/common/utils.cc b/src/common/utils.cc index 42049fe21b..7df8f67a4f 100644 --- a/src/common/utils.cc +++ b/src/common/utils.cc @@ -123,18 +123,10 @@ QString Utils::Url::extractBaseDomain( const QString & domain ) void Utils::Widget::setNoResultColor( QWidget * widget, bool noResult ) { - if ( noResult ) { - auto font = widget->font(); - font.setItalic( true ); - - widget->setFont( font ); - } - else { - auto font = widget->font(); - font.setItalic( false ); - - widget->setFont( font ); - } + (void)widget; + (void)noResult; + // Italic font for no results is removed in favor of other visual cues like + // changing the dropdown button color in TranslateBox. } std::string Utils::Html::getHtmlCleaner() diff --git a/src/config.cc b/src/config.cc index 4f64d2f8c4..de07eb4a7e 100644 --- a/src/config.cc +++ b/src/config.cc @@ -144,9 +144,7 @@ Preferences::Preferences(): useInternalPlayer( InternalPlayerBackend::anyAvailable() ), checkForNewReleases( true ), disallowContentFromOtherSites( false ), - hideGoldenDictHeader( false ), - maxNetworkCacheSize( 50 ), - clearNetworkCacheOnExit( true ), + zoomFactor( 1 ), helpZoomFactor( 1 ), maxStringsInHistory( 500 ), @@ -951,21 +949,6 @@ Class load() ( preferences.namedItem( "disallowContentFromOtherSites" ).toElement().text() == "1" ); } - if ( !preferences.namedItem( "hideGoldenDictHeader" ).isNull() ) { - c.preferences.hideGoldenDictHeader = - ( preferences.namedItem( "hideGoldenDictHeader" ).toElement().text() == "1" ); - } - - if ( !preferences.namedItem( "maxNetworkCacheSize" ).isNull() ) { - c.preferences.maxNetworkCacheSize = preferences.namedItem( "maxNetworkCacheSize" ).toElement().text().toInt(); - } - - if ( !preferences.namedItem( "clearNetworkCacheOnExit" ).isNull() ) { - c.preferences.clearNetworkCacheOnExit = - ( preferences.namedItem( "clearNetworkCacheOnExit" ).toElement().text() == "1" ); - } - - if ( !preferences.namedItem( "removeInvalidIndexOnExit" ).isNull() ) { c.preferences.removeInvalidIndexOnExit = ( preferences.namedItem( "removeInvalidIndexOnExit" ).toElement().text() == "1" ); @@ -1986,17 +1969,6 @@ void save( const Class & c ) opt.appendChild( dd.createTextNode( c.preferences.disallowContentFromOtherSites ? "1" : "0" ) ); preferences.appendChild( opt ); - opt = dd.createElement( "hideGoldenDictHeader" ); - opt.appendChild( dd.createTextNode( c.preferences.hideGoldenDictHeader ? "1" : "0" ) ); - preferences.appendChild( opt ); - - opt = dd.createElement( "maxNetworkCacheSize" ); - opt.appendChild( dd.createTextNode( QString::number( c.preferences.maxNetworkCacheSize ) ) ); - preferences.appendChild( opt ); - - opt = dd.createElement( "clearNetworkCacheOnExit" ); - opt.appendChild( dd.createTextNode( c.preferences.clearNetworkCacheOnExit ? "1" : "0" ) ); - preferences.appendChild( opt ); opt = dd.createElement( "removeInvalidIndexOnExit" ); opt.appendChild( dd.createTextNode( c.preferences.removeInvalidIndexOnExit ? "1" : "0" ) ); diff --git a/src/config.hh b/src/config.hh index afefef3dc1..2a7d25daad 100644 --- a/src/config.hh +++ b/src/config.hh @@ -31,7 +31,6 @@ namespace Config { //define a default font fize value constexpr int DEFAULT_FONT_SIZE = 12; -const QString WEBSITE_PROXY_PREFIX = "iframe-"; // Tri states enum for Dark and Dark reader mode enum class Dark : std::uint8_t { @@ -344,9 +343,7 @@ struct Preferences bool checkForNewReleases; bool disallowContentFromOtherSites; - bool hideGoldenDictHeader; - int maxNetworkCacheSize; - bool clearNetworkCacheOnExit; + bool removeInvalidIndexOnExit = false; bool enableApplicationLog = #ifdef Q_OS_WIN diff --git a/src/dict/dictserver.cc b/src/dict/dictserver.cc index f3ab7a24cf..2ae211731c 100644 --- a/src/dict/dictserver.cc +++ b/src/dict/dictserver.cc @@ -184,7 +184,7 @@ class DictServerDictionary: public Dictionary::Class QStringList serverDatabases; DictServerState state; QMutex mutex; - QTcpSocket socket; + QTcpSocket * socket; QString msgId; public: @@ -197,7 +197,8 @@ class DictServerDictionary: public Dictionary::Class Dictionary::Class( id, vector< string >() ), url( url_ ), icon( icon_ ), - langId( 0 ) + langId( 0 ), + socket( nullptr ) { dictionaryName = name_; @@ -216,27 +217,36 @@ class DictServerDictionary: public Dictionary::Class if ( strategies.isEmpty() ) { strategies.append( "prefix" ); } + } + + void deferredInit() override + { + if ( socket ) + return; + + socket = new QTcpSocket( this ); + QUrl serverUrl( url ); quint16 port = serverUrl.port( DefaultPort ); QString reply; - socket.connectToHost( serverUrl.host(), port ); - connect( &socket, &QTcpSocket::connected, this, [ this ]() { + socket->connectToHost( serverUrl.host(), port ); + connect( socket, &QTcpSocket::connected, this, [ this ]() { //initialize the description. QString req = QString( "SHOW DB\r\n" ); - socket.write( req.toUtf8() ); + socket->write( req.toUtf8() ); state = DictServerState::DB; } ); connect( this, &DictServerDictionary::finishDatabase, this, [ this ]() { - socket.write( QByteArray( "CLIENT GoldenDict\r\n" ) ); + socket->write( QByteArray( "CLIENT GoldenDict\r\n" ) ); } ); - connect( &socket, &QTcpSocket::errorOccurred, this, []( QAbstractSocket::SocketError error ) { + connect( socket, &QTcpSocket::errorOccurred, this, []( QAbstractSocket::SocketError error ) { qDebug() << "socket error message: " << error; } ); - connect( &socket, &QTcpSocket::readyRead, this, [ this ]() { + connect( socket, &QTcpSocket::readyRead, this, [ this ]() { const QMutexLocker _( &mutex ); - QByteArray reply = socket.readLine(); + QByteArray reply = socket->readLine(); qDebug() << "received:" << reply; if ( state == DictServerState::DB ) { @@ -249,14 +259,14 @@ class DictServerDictionary: public Dictionary::Class // Read databases int x = 0; for ( ; x < count; x++ ) { - reply = socket.readLine(); + reply = socket->readLine(); if ( reply.isEmpty() ) { return; } reply = reply.trimmed(); - qDebug().noquote() << "receive db:" << reply; + qDebug() << "receive db:" << reply; if ( reply[ 0 ] == '.' ) { state = DictServerState::DB_DATA_FINISHED; @@ -278,7 +288,7 @@ class DictServerDictionary: public Dictionary::Class else if ( state == DictServerState::DB_DATA ) { while ( !reply.isEmpty() ) { - qDebug().noquote() << "receive db:" << reply; + qDebug() << "receive db:" << reply; if ( reply[ 0 ] == '.' ) { state = DictServerState::DB_DATA_FINISHED; emit finishDatabase(); @@ -291,7 +301,7 @@ class DictServerDictionary: public Dictionary::Class serverDatabases.append( reply ); } - reply = socket.readLine(); + reply = socket->readLine(); } } } ); @@ -299,7 +309,10 @@ class DictServerDictionary: public Dictionary::Class ~DictServerDictionary() override { - disconnectFromServer( socket ); + if ( socket ) { + disconnectFromServer( *socket ); + delete socket; + } } diff --git a/src/dict/mediawiki.cc b/src/dict/mediawiki.cc index b60b403dec..f05f241452 100644 --- a/src/dict/mediawiki.cc +++ b/src/dict/mediawiki.cc @@ -157,7 +157,7 @@ MediaWikiWordSearchRequest::MediaWikiWordSearchRequest( const std::u32string & s qDebug( "wiki request begin" ); QUrl reqUrl( url + "/api.php?action=query&list=allpages&aplimit=40&format=xml" ); - GlobalBroadcaster::instance()->addWhitelist( reqUrl.host() ); + GlobalBroadcaster::instance()->addHostWhitelist( reqUrl.host() ); Utils::Url::addQueryItem( reqUrl, "apprefix", QString::fromStdU32String( str ).replace( '+', "%2B" ) ); Utils::Url::addQueryItem( reqUrl, "lang", lang ); diff --git a/src/dict/website.cc b/src/dict/website.cc index 4f1f17094a..26567f3d62 100644 --- a/src/dict/website.cc +++ b/src/dict/website.cc @@ -10,6 +10,7 @@ #include #include #include +#include "utils.hh" namespace WebSite { @@ -100,7 +101,13 @@ sptr< DataRequest > WebSiteDictionary::getArticle( const std::u32string & str, //heuristic add url to global whitelist. QUrl url( urlString ); - GlobalBroadcaster::instance()->addWhitelist( url.host() ); + GlobalBroadcaster::instance()->addHostWhitelist( url.host() ); + + if ( Utils::Url::hasQueryItem( url, "whitelist" ) ) { + GlobalBroadcaster::instance()->addRefererWhitelist( url.host() ); + Utils::Url::removeQueryItem( url, "whitelist" ); + urlString = url.toString(); + } const QString & encodeUrl = urlString; @@ -110,9 +117,12 @@ sptr< DataRequest > WebSiteDictionary::getArticle( const std::u32string & str, if ( !urlString.isEmpty() ) { auto word = QString::fromStdU32String( str ); auto title = QString::fromStdString( getName() ); - // Pass dictId to the websiteDictionarySignal - emit GlobalBroadcaster::instance() - -> websiteDictionarySignal( title + "-" + word, urlString, QString::fromStdString( getId() ) ); + // Pass dictId and word to the websiteDictionarySignal + emit GlobalBroadcaster::instance() -> websiteDictionarySignal( title + "-" + word, + urlString, + QString::fromStdString( getId() ), + GlobalBroadcaster::instance()->is_popup, + word ); } fmt::format_to( diff --git a/src/ftshelpers.cc b/src/ftshelpers.cc index ade254ccd5..71fec66f9f 100644 --- a/src/ftshelpers.cc +++ b/src/ftshelpers.cc @@ -4,6 +4,7 @@ #include "xapian.h" #include #include "fulltextsearch.hh" +#include "folding.hh" #include "ftshelpers.hh" #include "dictfile.hh" #include "utils.hh" @@ -80,14 +81,11 @@ void makeFTSIndex( BtreeIndexing::BtreeDictionary * dict, QAtomicInt & isCancell throw exUserAbort(); } - QList< uint32_t > offsets; - offsets.resize( setOfOffsets.size() ); - uint32_t * ptr = offsets.data(); - - for ( QSet< uint32_t >::ConstIterator it = setOfOffsets.constBegin(); it != setOfOffsets.constEnd(); ++it ) { - *ptr = *it; - ptr++; - } + // More efficient way to get a sorted list of offsets + std::vector< uint32_t > offsets; + offsets.assign( setOfOffsets.begin(), setOfOffsets.end() ); + // Sort offsets to allow for binary search resume + std::sort( offsets.begin(), offsets.end() ); // Free memory setOfOffsets.clear(); @@ -116,17 +114,18 @@ void makeFTSIndex( BtreeIndexing::BtreeDictionary * dict, QAtomicInt & isCancell long indexedDoc = 0L; - for ( const auto & address : offsets ) { - indexedDoc++; + auto start_it = offsets.cbegin(); + if ( skip ) { + start_it = std::upper_bound( offsets.cbegin(), offsets.cend(), lastAddress ); + long num_skipped = std::distance( offsets.cbegin(), start_it ); + qDebug() << "Resuming FTS indexing from offset" << ( start_it != offsets.cend() ? *start_it : -1 ) << "at index" + << num_skipped; + indexedDoc += num_skipped; + } - if ( address == lastAddress && skip ) { - skip = false; - continue; - } - //skip until to the lastAddress; - if ( skip ) { - continue; - } + for ( auto it = start_it; it != offsets.cend(); ++it ) { + const auto & address = *it; + indexedDoc++; if ( Utils::AtomicInt::loadAcquire( isCancelled ) ) { return; @@ -140,8 +139,8 @@ void makeFTSIndex( BtreeIndexing::BtreeDictionary * dict, QAtomicInt & isCancell indexer.set_document( doc ); - indexer.index_text( articleStr.toStdString() ); - indexer.index_text( headword.toStdString() ); + indexer.index_text( Folding::applyForIndex( articleStr ) ); + indexer.index_text( Folding::applyForIndex( headword ) ); doc.set_data( std::to_string( address ) ); // Add the document to the database. @@ -194,7 +193,7 @@ void FTSResultsRequest::run() // Combine the rest of the command line arguments with spaces between // them, so that simple queries don't have to be quoted at the shell // level. - string query_string( searchString.toStdString() ); + string query_string( Folding::applyForIndex( searchString ) ); // Parse the query string to produce a Xapian::Query object. Xapian::QueryParser qp; diff --git a/src/iframeschemehandler.cc b/src/iframeschemehandler.cc deleted file mode 100644 index ba21169ec2..0000000000 --- a/src/iframeschemehandler.cc +++ /dev/null @@ -1,116 +0,0 @@ -#include "iconv.hh" -#include "iframeschemehandler.hh" -#include - -IframeSchemeHandler::IframeSchemeHandler( QObject * parent ): - QWebEngineUrlSchemeHandler( parent ) -{ -} -void IframeSchemeHandler::requestStarted( QWebEngineUrlRequestJob * requestJob ) -{ - QUrl url = requestJob->requestUrl(); - - // website dictionary iframe url - if ( url.scheme().startsWith( Config::WEBSITE_PROXY_PREFIX ) ) { - //"iframe-".length() == 7 - url.setScheme( url.scheme().mid( 7 ) ); - } - QNetworkRequest request; - request.setUrl( url ); - request.setAttribute( QNetworkRequest::RedirectPolicyAttribute, - QNetworkRequest::RedirectPolicy::NoLessSafeRedirectPolicy ); - - QNetworkReply * reply = mgr.get( request ); - - auto finishAction = [ = ]() { - QByteArray contentType = "text/html"; - QString codecName; - const auto ctHeader = reply->header( QNetworkRequest::ContentTypeHeader ); - if ( ctHeader.isValid() ) { - contentType = ctHeader.toByteArray(); - const auto ct = ctHeader.toString(); - const auto index = ct.indexOf( "charset=" ); - if ( index > -1 ) { - codecName = ct.mid( index + 8 ); - } - } - auto buffer = new QBuffer( requestJob ); - - QByteArray replyData = reply->readAll(); - QString articleString; - - auto encoding = Iconv::findValidEncoding( { codecName } ); - if ( !encoding.isEmpty() ) { - articleString = Iconv::toQString( encoding.toUtf8().constData(), replyData.data(), replyData.size() ); - } - else { - articleString = QString::fromUtf8( replyData ); - } - // Handle reply data - // 404 response may have response body. - if ( reply->error() != QNetworkReply::NoError && articleString.isEmpty() ) { - if ( reply->error() == QNetworkReply::ContentNotFoundError ) { - buffer->deleteLater(); - //work around to fix QTBUG-106573 - requestJob->redirect( url ); - return; - } - QString emptyHtml = QString( "%1" ).arg( reply->errorString() ); - buffer->setData( emptyHtml.toUtf8() ); - requestJob->reply( contentType, buffer ); - return; - } - - // Change links from relative to absolute - - QString root = reply->url().scheme() + "://" + reply->url().host(); - - if ( reply->url().port() != 80 && reply->url().port() != 443 && reply->url().port() != -1 ) { - root = root + ":" + QString::number( reply->url().port() ); - } - QString base = root + reply->url().path(); - - - QRegularExpression baseTag( R"EOF()EOF", - QRegularExpression::CaseInsensitiveOption - | QRegularExpression::DotMatchesEverythingOption ); - - - if ( const auto match = baseTag.match( articleString ); match.hasMatch() ) { - base = reply->url().resolved( QUrl( match.captured( 1 ) ) ).url(); - } - - QString baseTagHtml = QString( R"()" ).arg( base ); - - QString depressionFocus = - R"( -)"; - - articleString.remove( baseTag ); - - articleString.replace( "window.location", "window.location;_window_location" ); - - QRegularExpression headTag( R"()", - QRegularExpression::CaseInsensitiveOption - | QRegularExpression::DotMatchesEverythingOption ); - auto match = headTag.match( articleString ); - if ( match.hasMatch() ) { - articleString.insert( match.capturedEnd(), baseTagHtml ); - articleString.insert( match.capturedEnd(), depressionFocus ); - } - else { - // the html contain no head element - // just insert at the beginning of the html ,and leave it at the mercy of browser(chrome webengine) - articleString.insert( 0, baseTagHtml ); - articleString.insert( 0, depressionFocus ); - } - - buffer->setData( articleString.toUtf8() ); - - requestJob->reply( "text/html; charset=utf-8", buffer ); - }; - connect( reply, &QNetworkReply::finished, requestJob, finishAction ); - - connect( requestJob, &QObject::destroyed, reply, &QObject::deleteLater ); -} diff --git a/src/iframeschemehandler.hh b/src/iframeschemehandler.hh deleted file mode 100644 index fd8c78365f..0000000000 --- a/src/iframeschemehandler.hh +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "article_netmgr.hh" - -class IframeSchemeHandler: public QWebEngineUrlSchemeHandler -{ - Q_OBJECT - -public: - IframeSchemeHandler( QObject * parent = nullptr ); - void requestStarted( QWebEngineUrlRequestJob * requestJob ); - -protected: - -private: - QNetworkAccessManager mgr; -}; diff --git a/src/keyboardstate.cc b/src/keyboardstate.cc index 40b79df62f..26cc2f67e1 100644 --- a/src/keyboardstate.cc +++ b/src/keyboardstate.cc @@ -8,8 +8,8 @@ bool KeyboardState::checkModifiersPressed( int mask ) { auto modifiers = QApplication::queryKeyboardModifiers(); - - return !( ( mask & Alt && !( modifiers.testFlag( Qt::AltModifier ) ) ) - || ( mask & Ctrl && !( modifiers.testFlag( Qt::ControlModifier ) ) ) - || ( mask & Shift && !( modifiers.testFlag( Qt::ShiftModifier ) ) ) ); + return modifiers.testFlags( { ( mask & Alt ? Qt::AltModifier : Qt::NoModifier ) + | ( mask & Win ? Qt::MetaModifier : Qt::NoModifier ) + | ( mask & Ctrl ? Qt::ControlModifier : Qt::NoModifier ) + | ( mask & Shift ? Qt::ShiftModifier : Qt::NoModifier ) } ); } diff --git a/src/main.cc b/src/main.cc index 3983518086..e7adb1b4aa 100644 --- a/src/main.cc +++ b/src/main.cc @@ -243,16 +243,20 @@ void processCommandLine( QCoreApplication * app, GDOptions * result ) int main( int argc, char ** argv ) { #if defined( WITH_X11 ) - // GoldenDict use lots of X11 functions and it currently cannot work - // natively on Wayland. This workaround will force GoldenDict to use - // XWayland. - - if ( qEnvironmentVariableIsEmpty( "GOLDENDICT_FORCE_WAYLAND" ) && !Utils::isWayland() ) { - char * xdg_envc = getenv( "XDG_SESSION_TYPE" ); - QString xdg_session = xdg_envc ? QString::fromLatin1( xdg_envc ) : QString(); - if ( !QString::compare( xdg_session, QString( "wayland" ), Qt::CaseInsensitive ) ) { + // Platform selection: Higher priority to user intention + // 1. Respect QT_QPA_PLATFORM if already set. + // 2. GOLDENDICT_FORCE_XCB forces Xcb (fallback mode). + // 3. GOLDENDICT_FORCE_WAYLAND forces native Wayland. + // 4. By default, we let Qt decide (usually native Wayland on Wayland sessions). + // This improves HiDPI support but might affect some X11-specific features. + + if ( qEnvironmentVariableIsEmpty( "QT_QPA_PLATFORM" ) ) { + if ( qEnvironmentVariableIsSet( "GOLDENDICT_FORCE_XCB" ) ) { setenv( "QT_QPA_PLATFORM", "xcb", 1 ); } + else if ( qEnvironmentVariableIsSet( "GOLDENDICT_FORCE_WAYLAND" ) ) { + setenv( "QT_QPA_PLATFORM", "wayland", 1 ); + } } #endif @@ -278,19 +282,8 @@ int main( int argc, char ** argv ) QGuiApplication::setHighDpiScaleFactorRoundingPolicy( Qt::HighDpiScaleFactorRoundingPolicy::PassThrough ); // Registration of custom URL schemes must be done before QCoreApplication/QApplication is created. - const QStringList localSchemes = { "gdlookup", - "gdau", - "gico", - "qrcx", - "bres", - "bword", - "gdprg", - "gdvideo", - "gdtts", - "gdinternal", - "entry", - "iframe-http", - "iframe-https" }; + const QStringList localSchemes = + { "gdlookup", "gdau", "gico", "qrcx", "bres", "bword", "gdprg", "gdvideo", "gdtts", "gdinternal", "entry" }; for ( const auto & localScheme : localSchemes ) { QWebEngineUrlScheme webUiScheme( localScheme.toLatin1() ); diff --git a/src/metadata.cc b/src/metadata.cc index 74c5eb3634..39eeb0ee35 100644 --- a/src/metadata.cc +++ b/src/metadata.cc @@ -3,6 +3,9 @@ #include #include #include +#ifdef Q_OS_FREEBSD + #include +#endif std::optional< Metadata::result > Metadata::load( std::string_view filepath ) { diff --git a/src/resourceschemehandler.cc b/src/resourceschemehandler.cc index 3c85a185b2..dfeaba9b34 100644 --- a/src/resourceschemehandler.cc +++ b/src/resourceschemehandler.cc @@ -10,9 +10,13 @@ void ResourceSchemeHandler::requestStarted( QWebEngineUrlRequestJob * requestJob { const QUrl url = requestJob->requestUrl(); QString content_type; - const QMimeType mineType = db.mimeTypeForUrl( url ); const sptr< Dictionary::DataRequest > reply = this->mManager.getResource( url, content_type ); - content_type = mineType.name(); + + if ( content_type.isEmpty() ) + content_type = db.mimeTypeForUrl( url ).name(); + + if ( content_type.startsWith( "text/" ) || content_type == "application/javascript" ) + content_type.append( "; charset=utf-8" ); if ( reply == nullptr ) { qDebug() << "Resource failed to load: " << url.toString(); diff --git a/src/scripts/gd-builtin.js b/src/scripts/gd-builtin.js index f6fa075ee8..027053e627 100644 --- a/src/scripts/gd-builtin.js +++ b/src/scripts/gd-builtin.js @@ -108,6 +108,7 @@ function gdExpandArticle(id) { dictNameElement.style.cursor = "pointer"; dictNameElement.title = ""; + dictNameElement.setAttribute("aria-expanded", "false"); articleview.collapseInHtml(id, true); } else { @@ -117,6 +118,7 @@ function gdExpandArticle(id) { dictNameElement.style.cursor = "default"; dictNameElement.title = ""; + dictNameElement.setAttribute("aria-expanded", "true"); articleview.collapseInHtml(id, false); } diff --git a/src/stylesheets/article-style-darkmode.css b/src/stylesheets/article-style-darkmode.css index 974e14c3f5..588c7c418f 100644 --- a/src/stylesheets/article-style-darkmode.css +++ b/src/stylesheets/article-style-darkmode.css @@ -1,4 +1,4 @@ -div.gdactivearticle .gddictname { +.gdactivearticle .gddictname { color: initial; background: rgb(0, 102, 184); } diff --git a/src/stylesheets/article-style.css b/src/stylesheets/article-style.css index 62beaa73cd..7e75144306 100644 --- a/src/stylesheets/article-style.css +++ b/src/stylesheets/article-style.css @@ -38,6 +38,10 @@ h6 { p, em, +article, +header, +section, +main, span, div { unicode-bidi: plaintext; @@ -66,6 +70,7 @@ pre { /* Dictionary's name heading */ .gddictname { + display: flow-root; margin-top: 0.5em; margin-bottom: 0.5em; font-weight: bold; @@ -98,7 +103,12 @@ pre { user-select: none; } +/* The separator is now redundant thanks to flow-root and clear:both on body */ .gddictnamebodyseparator { + display: none; +} + +.gdarticlebody { clear: both; } @@ -110,7 +120,7 @@ pre { /* The article span. Here we have a padding/margin hack to make fragment links behave better (have some space before the start of article) */ .gdarticle { - display: block; + display: flow-root; padding-top: 1px; margin-top: -8px; margin-bottom: 8px; @@ -586,11 +596,18 @@ div.xdxf { } .gdstemmedsuggestion_head { - margin-left: 11px; + margin-left: 12px; font-style: italic; } .gdstemmedsuggestion_body { + display: block; + width: 100%; + margin: 12px; + + box-sizing: border-box; + word-break: break-word; + line-height: 1.5; } /************* Dictd articles *****************/ diff --git a/src/ui/articleview.cc b/src/ui/articleview.cc index 9883caf320..9a9d077be0 100644 --- a/src/ui/articleview.cc +++ b/src/ui/articleview.cc @@ -111,7 +111,8 @@ ArticleView::ArticleView( QWidget * parent, translateLine( translateLine_ ) { // setup GUI - webview = new ArticleWebView( this ); + webview = new ArticleWebView( this ); + webview->setPopup( popupView ); ftsSearchPanel = new FtsSearchPanel( this ); searchPanel = new SearchPanel( this ); searchPanel->hide(); @@ -324,6 +325,10 @@ void ArticleView::showDefinition( const QString & word, contexts.erase( pos ); } + if ( popupView ) { + reqQuery.addQueryItem( "popup", "1" ); + } + if ( contexts.size() ) { QBuffer buf; buf.open( QIODevice::WriteOnly ); @@ -334,12 +339,6 @@ void ArticleView::showDefinition( const QString & word, reqQuery.addQueryItem( "contexts", QString::fromLatin1( buf.buffer().toBase64() ) ); } - QString mutedDicts = getMutedForGroup( group ); - - if ( !mutedDicts.isEmpty() ) { - reqQuery.addQueryItem( "muted", mutedDicts ); - } - req.setQuery( reqQuery ); @@ -957,53 +956,6 @@ bool ArticleView::eventFilter( QObject * obj, QEvent * ev ) return false; } -QString ArticleView::getMutedForGroup( unsigned group ) -{ - auto mutedDicts = getMutedDictionaries( group ); - if ( !mutedDicts.empty() ) { - return mutedDicts.join( "," ); - } - - return {}; -} - -QStringList ArticleView::getMutedDictionaries( unsigned group ) -{ - if ( dictionaryBarToggled && dictionaryBarToggled->isChecked() ) { - // Dictionary bar is active -- mute the muted dictionaries - const Instances::Group * groupInstance = dictionaryGroup->getGroupById( group ); - - // Find muted dictionaries for current group - const Config::Group * grp = cfg.getGroup( group ); - const Config::DictionarySets * mutedDictionaries; - if ( group == GroupId::AllGroupId ) { - mutedDictionaries = popupView ? &cfg.popupMutedDictionaries : &cfg.mutedDictionaries; - } - else { - mutedDictionaries = grp ? ( popupView ? &grp->popupMutedDictionaries : &grp->mutedDictionaries ) : nullptr; - } - if ( !mutedDictionaries ) { - return {}; - } - - QStringList mutedDicts; - - if ( groupInstance ) { - for ( const auto & dictionarie : groupInstance->dictionaries ) { - QString id = QString::fromStdString( dictionarie->getId() ); - - if ( mutedDictionaries->contains( id ) ) { - mutedDicts.append( id ); - } - } - } - - return mutedDicts; - } - - return {}; -} - void ArticleView::linkHovered( const QString & link ) { QString msg; @@ -1327,10 +1279,14 @@ ResourceToSaveHandler * ArticleView::saveResource( const QUrl & url, const QStri void ArticleView::updateMutedContents() { + if ( isWebsiteView ) { + return; + } + QUrl currentUrl = webview->url(); if ( currentUrl.scheme() != "gdlookup" ) { - return; // Weird url -- do nothing + return; } unsigned group = getGroup( currentUrl ); @@ -1339,22 +1295,9 @@ void ArticleView::updateMutedContents() return; // No group in url -- do nothing } - QString mutedDicts = getMutedForGroup( group ); - - if ( Utils::Url::queryItemValue( currentUrl, "muted" ) != mutedDicts ) { - // The list has changed -- update the url - - Utils::Url::removeQueryItem( currentUrl, "muted" ); - - if ( mutedDicts.size() ) { - Utils::Url::addQueryItem( currentUrl, "muted", mutedDicts ); - } - - load( currentUrl ); - - //QApplication::setOverrideCursor( Qt::WaitCursor ); - webview->setCursor( Qt::WaitCursor ); - } + // We simply reload the article. ArticleNetworkAccessManager will use the updated muted settings. + load( currentUrl ); + webview->setCursor( Qt::WaitCursor ); } bool ArticleView::canGoBack() @@ -1395,6 +1338,11 @@ QString ArticleView::getCurrentWord() return currentWord; } +void ArticleView::setCurrentWord( const QString & word ) +{ + currentWord = word; +} + void ArticleView::back() { // Don't allow navigating back to page 0, which is usually the initial @@ -2070,6 +2018,7 @@ void ArticleView::onJsActiveArticleChanged( const QString & id ) void ArticleView::doubleClicked( QPoint pos ) { + GlobalBroadcaster::instance()->is_popup.store( popupView ); // We might want to initiate translation of the selected word audioPlayer->stop(); if ( cfg.preferences.doubleClickTranslates ) { @@ -2081,31 +2030,15 @@ void ArticleView::doubleClicked( QPoint pos ) } emit sendWordToInputLine( selectedText ); - // Do some checks to make sure there's a sensible selection indeed - if ( Folding::applyWhitespaceOnly( selectedText.toStdU32String() ).size() && selectedText.size() < 60 ) { - // Initiate translation - Qt::KeyboardModifiers kmod = QApplication::keyboardModifiers(); - if ( kmod & ( Qt::ControlModifier | Qt::ShiftModifier ) ) { // open in new tab - emit showDefinitionInNewTab( selectedText, getGroup( webview->url() ), getCurrentArticle(), Contexts() ); - } - else { - const QUrl & ref = webview->url(); - auto groupId = getGroup( ref ); // Try to get group ID from the current article URL + if ( popupView ) { + return; + } - // If the group can't be determined from the URL (e.g. on internal or - // external pages), fall back to the currently selected group in the UI. - if ( groupId == GroupId::NoGroupId || isInternalPage() ) { - groupId = currentGroupId; - } - if ( Utils::Url::hasQueryItem( ref, "dictionaries" ) ) { - QStringList dictsList = Utils::Url::queryItemValue( ref, "dictionaries" ).split( ",", Qt::SkipEmptyParts ); - showDefinition( selectedText, dictsList, groupId, false ); - } - else { - showDefinition( selectedText, groupId, getCurrentArticle() ); - } - } + // Do some checks to make sure there's a sensible selection indeed + if ( Folding::applyWhitespaceOnly( selectedText.toStdU32String() ).size() && selectedText.size() < 60 ) { + // Send signal to MainWindow to handle translation + emit translateSelectedText( selectedText, webview->url(), getCurrentArticle() ); } } } diff --git a/src/ui/articleview.hh b/src/ui/articleview.hh index 96e780a9ba..8689082c16 100644 --- a/src/ui/articleview.hh +++ b/src/ui/articleview.hh @@ -177,6 +177,7 @@ public: void syncBackgroundColorWithCfgDarkReader() const; QString getCurrentWord(); + void setCurrentWord( const QString & word ); /// Returns whether this view is an internal page (welcome, untitled, etc.) bool isInternalPage() const @@ -346,6 +347,9 @@ signals: void saveBookmarkSignal( const QString & bookmark ); + /// Signal that the user has double-clicked a word and wants to translate it + void translateSelectedText( const QString & word, const QUrl & url, const QString & currentArticle ); + public slots: /// Opens the search (Ctrl+F) @@ -414,12 +418,14 @@ private slots: void dictionaryClear( const ActiveDictIds & ad ); -private: +public: /// Deduces group from the url. If there doesn't seem to be any group, /// returns 0. unsigned getGroup( const QUrl & ); +private: + /// Returns current article in the view, in the form of "gdfrom-xxx" id. QString getCurrentArticle(); @@ -452,12 +458,6 @@ private: bool eventFilter( QObject * obj, QEvent * ev ) override; void performFindOperation( bool backwards ); - - /// Returns the comma-separated list of dictionary ids which should be muted - /// for the given group. If there are none, returns empty string. - QString getMutedForGroup( unsigned group ); - - QStringList getMutedDictionaries( unsigned group ); }; class ResourceToSaveHandler: public QObject diff --git a/src/ui/articlewebpage.cc b/src/ui/articlewebpage.cc index e670004095..7badb24332 100644 --- a/src/ui/articlewebpage.cc +++ b/src/ui/articlewebpage.cc @@ -3,8 +3,9 @@ #include "common/globalbroadcaster.hh" #include -ArticleWebPage::ArticleWebPage( QObject * parent ): - QWebEnginePage{ parent } +ArticleWebPage::ArticleWebPage( QObject * parent, bool isPopup_ ): + QWebEnginePage( parent ), + isPopup( isPopup_ ) { } bool ArticleWebPage::acceptNavigationRequest( const QUrl & resUrl, NavigationType type, bool isMainFrame ) @@ -18,7 +19,9 @@ bool ArticleWebPage::acceptNavigationRequest( const QUrl & resUrl, NavigationTyp auto [ valid, word ] = Utils::Url::getQueryWord( resUrl ); urlQuery.addQueryItem( "word", word ); urlQuery.addQueryItem( "group", lastReq.group ); - urlQuery.addQueryItem( "muted", lastReq.mutedDicts ); + if ( lastReq.isPopup ) { + urlQuery.addQueryItem( "popup", "1" ); + } url.setQuery( urlQuery ); // Use singleShot to avoid synchronous navigation request within acceptNavigationRequest, @@ -30,7 +33,14 @@ bool ArticleWebPage::acceptNavigationRequest( const QUrl & resUrl, NavigationTyp //save current gdlookup's values. if ( url.scheme() == "gdlookup" ) { lastReq.group = Utils::Url::queryItemValue( url, "group" ); - lastReq.mutedDicts = Utils::Url::queryItemValue( url, "muted" ); + // Use the parameter if present, otherwise fall back to our own field + QString popupParam = Utils::Url::queryItemValue( url, "popup" ); + if ( !popupParam.isEmpty() ) { + lastReq.isPopup = popupParam == "1"; + } + else { + lastReq.isPopup = isPopup; + } } if ( type == QWebEnginePage::NavigationTypeLinkClicked ) { diff --git a/src/ui/articlewebpage.hh b/src/ui/articlewebpage.hh index a7c38bca64..ff9644f1d9 100644 --- a/src/ui/articlewebpage.hh +++ b/src/ui/articlewebpage.hh @@ -5,7 +5,7 @@ struct LastReqInfo { QString group; - QString mutedDicts; + bool isPopup = false; }; class ArticleWebPage: public QWebEnginePage @@ -13,7 +13,11 @@ class ArticleWebPage: public QWebEnginePage Q_OBJECT public: - explicit ArticleWebPage( QObject * parent = nullptr ); + explicit ArticleWebPage( QObject * parent = nullptr, bool isPopup_ = false ); + void setPopup( bool popup ) + { + isPopup = popup; + } signals: void linkClicked( const QUrl & url ); @@ -32,4 +36,5 @@ protected: private: LastReqInfo lastReq; + bool isPopup = false; }; diff --git a/src/ui/articlewebview.cc b/src/ui/articlewebview.cc index f7db25ac8a..6435fc420f 100644 --- a/src/ui/articlewebview.cc +++ b/src/ui/articlewebview.cc @@ -29,6 +29,13 @@ void ArticleWebView::setUp( Config::Class * _cfg ) setZoomFactor( _cfg->preferences.zoomFactor ); } +void ArticleWebView::setPopup( bool isPopup ) +{ + if ( auto page = qobject_cast< ArticleWebPage * >( this->page() ) ) { + page->setPopup( isPopup ); + } +} + QWebEngineView * ArticleWebView::createWindow( QWebEnginePage::WebWindowType type ) { if ( type == QWebEnginePage::WebWindowType::WebDialog ) { diff --git a/src/ui/articlewebview.hh b/src/ui/articlewebview.hh index c15c678758..20b1ee4e21 100644 --- a/src/ui/articlewebview.hh +++ b/src/ui/articlewebview.hh @@ -34,6 +34,7 @@ public: { selectionBySingleClick = set; } + void setPopup( bool isPopup ); bool eventFilter( QObject * obj, QEvent * ev ) override; diff --git a/src/ui/edit_sources_models.cc b/src/ui/edit_sources_models.cc index bbd865521b..851de01900 100644 --- a/src/ui/edit_sources_models.cc +++ b/src/ui/edit_sources_models.cc @@ -731,6 +731,10 @@ QVariant WebSitesModel::data( const QModelIndex & index, int role ) const } if ( role == Qt::ToolTipRole ) { + if ( index.column() == 4 && !GlobalBroadcaster::instance()->getPreference()->openWebsiteInNewTab ) { + return tr( + "This column is disabled because \"Open website dictionary in separate tab\" option is not enabled in Preferences." ); + } return QVariant(); } @@ -749,13 +753,6 @@ QVariant WebSitesModel::data( const QModelIndex & index, int role ) const } } - // Set appropriate background for disabled Script column based on dark mode - if ( role == Qt::BackgroundRole && index.column() == 4 ) { // Script column - if ( !GlobalBroadcaster::instance()->getPreference()->openWebsiteInNewTab ) { - return getScriptColumnBackground(); - } - } - if ( role == Qt::CheckStateRole && !index.column() ) { return webSites[ index.row() ].enabled ? Qt::Checked : Qt::Unchecked; } diff --git a/src/ui/favoritespanewidget.cc b/src/ui/favoritespanewidget.cc index 5a7e015def..f7c6e540b8 100644 --- a/src/ui/favoritespanewidget.cc +++ b/src/ui/favoritespanewidget.cc @@ -58,7 +58,7 @@ void FavoritesPaneWidget::setUp( Config::Class * cfg, std::initializer_list< QAc connect( m_addFolder, &QAction::triggered, this, &FavoritesPaneWidget::addFolder ); m_clearAll = new QAction( this ); - m_clearAll->setText( tr( "Clear All" ) ); + m_clearAll->setText( tr( "Clear" ) ); addAction( m_clearAll ); connect( m_clearAll, &QAction::triggered, this, &FavoritesPaneWidget::clearAllItems ); @@ -304,7 +304,7 @@ void FavoritesPaneWidget::clearAllItems() { QMessageBox::StandardButton reply; reply = QMessageBox::question( this, - tr( "Clear All Items" ), + tr( "Clear Favorites" ), tr( "Are you sure you want to clear all items?" ), QMessageBox::Yes | QMessageBox::No ); if ( reply == QMessageBox::Yes ) { diff --git a/src/ui/favoritespanewidget.hh b/src/ui/favoritespanewidget.hh index e388240dc3..b6b33b54e8 100644 --- a/src/ui/favoritespanewidget.hh +++ b/src/ui/favoritespanewidget.hh @@ -52,6 +52,7 @@ public: void getDataInPlainText( QString & dataStr ); bool setDataFromXml( const QString & dataStr ); bool setDataFromTxt( const QString & dataStr ); + void clearAllItems(); void setFocusOnTree() { @@ -83,7 +84,6 @@ private slots: void folderActivation(); void copySelectedItems(); void addFolder(); - void clearAllItems(); public slots: /// Add if exist, remove if not void addRemoveWordInActiveFav( const QString & word ); diff --git a/src/ui/groupcombobox.cc b/src/ui/groupcombobox.cc index 3d508630df..1d5179ecf0 100644 --- a/src/ui/groupcombobox.cc +++ b/src/ui/groupcombobox.cc @@ -11,6 +11,7 @@ GroupComboBox::GroupComboBox( QWidget * parent ): selectNextAction( this ), selectPreviousAction( this ) { + setIconSize( QSize( 16, 16 ) ); setSizeAdjustPolicy( AdjustToContents ); setToolTip( tr( "Choose a Group (Alt+G)" ) ); @@ -62,6 +63,31 @@ void GroupComboBox::fill( const Instances::Groups & groups ) shortcuts.insert( id, x ); } } + updateGeometry(); +} + +QSize GroupComboBox::sizeHint() const +{ + QSize s = QComboBox::sizeHint(); + if ( count() > 0 ) { + QFontMetrics fm( font() ); + int maxW = 0; + for ( int i = 0; i < count(); ++i ) { + maxW = qMax( maxW, fm.horizontalAdvance( itemText( i ) ) ); + } + + int iconW = iconSize().width(); + if ( iconW > 0 ) { + iconW += 6; // Icon plus some margin + } + + // 35 pixels for the arrow and internal padding + int estimated = iconW + maxW + 35; + if ( s.width() < estimated ) { + s.setWidth( estimated ); + } + } + return s; } bool GroupComboBox::event( QEvent * event ) diff --git a/src/ui/groupcombobox.hh b/src/ui/groupcombobox.hh index b7ce0b38ec..c8d3f53387 100644 --- a/src/ui/groupcombobox.hh +++ b/src/ui/groupcombobox.hh @@ -34,11 +34,13 @@ public: protected: /// We handle shortcut events here. - virtual bool event( QEvent * event ); + virtual bool event( QEvent * event ) override; + virtual QSize sizeHint() const override; - /// Work around the never-changing QComboBox::minimumSizeHint(), which prevents - /// reducing the width of a group combobox beyond the value at application start. - // virtual QSize minimumSizeHint() const { return sizeHint(); } + virtual QSize minimumSizeHint() const override + { + return sizeHint(); + } private slots: diff --git a/src/ui/maintabwidget.hh b/src/ui/maintabwidget.hh index 31d83c20c4..d72a76a556 100644 --- a/src/ui/maintabwidget.hh +++ b/src/ui/maintabwidget.hh @@ -14,6 +14,7 @@ class MainTabWidget: public QTabWidget Q_PROPERTY( bool hideSingleTab READ isHideSingleTab WRITE setHideSingleTab ) public: + using QTabWidget::tabBar; MainTabWidget( QWidget * parent = 0 ); bool isHideSingleTab() const diff --git a/src/ui/mainwindow.cc b/src/ui/mainwindow.cc index 7c15759313..479e1f924f 100644 --- a/src/ui/mainwindow.cc +++ b/src/ui/mainwindow.cc @@ -12,6 +12,7 @@ #include "edit_dictionaries.hh" #include "dict/loaddictionaries.hh" #include "preferences.hh" +#include "globalregex.hh" #include "about.hh" #include "mruqmenu.hh" #include "gestures.hh" @@ -157,11 +158,7 @@ MainWindow::MainWindow( Config::Class & cfg_ ): history( cfg_.preferences.maxStringsInHistory, cfg_.maxHeadwordSize ), dictionaryBar( this, configEvents, cfg.preferences.maxDictionaryRefsInContextMenu ), articleMaker( dictionaries, groupInstances, cfg.preferences ), - articleNetMgr( this, - dictionaries, - articleMaker, - cfg.preferences.disallowContentFromOtherSites, - cfg.preferences.hideGoldenDictHeader ), + articleNetMgr( this, dictionaries, articleMaker, cfg.preferences.disallowContentFromOtherSites ), dictNetMgr( this ), audioPlayerFactory( cfg.preferences.useInternalPlayer, cfg.preferences.internalPlayerBackend, cfg.preferences.audioPlaybackProgram ), @@ -193,11 +190,6 @@ MainWindow::MainWindow( Config::Class & cfg_ ): QWebEngineProfile::defaultProfile()->installUrlSchemeHandler( localScheme.toLatin1(), localSchemeHandler ); } - iframeSchemeHandler = new IframeSchemeHandler( this ); - QWebEngineProfile::defaultProfile()->installUrlSchemeHandler( ( Config::WEBSITE_PROXY_PREFIX + "http" ).toUtf8(), - iframeSchemeHandler ); - QWebEngineProfile::defaultProfile()->installUrlSchemeHandler( ( Config::WEBSITE_PROXY_PREFIX + "https" ).toUtf8(), - iframeSchemeHandler ); QStringList localSchemes = { "gdau", "gico", "qrcx", "bres", "gdprg", "gdvideo", "gdtts" }; resourceSchemeHandler = new ResourceSchemeHandler( articleNetMgr, this ); @@ -207,11 +199,11 @@ MainWindow::MainWindow( Config::Class & cfg_ ): QWebEngineProfile::defaultProfile()->setUrlRequestInterceptor( new WebUrlRequestInterceptor( this ) ); - if ( !cfg.preferences.hideGoldenDictHeader ) { - QWebEngineProfile::defaultProfile()->setHttpUserAgent( QWebEngineProfile::defaultProfile()->httpUserAgent() - + " GoldenDict/WebEngine" ); - } + // Identify as GoldenDict, but avoid standard "QtWebEngine/..." identifier which some sites might block + QString userAgent = QWebEngineProfile::defaultProfile()->httpUserAgent(); + userAgent.replace( RX::qtWebEngineUserAgent, "" ); + QWebEngineProfile::defaultProfile()->setHttpUserAgent( userAgent ); #ifdef EPWING_SUPPORT Epwing::initialize(); #endif @@ -246,11 +238,11 @@ MainWindow::MainWindow( Config::Class & cfg_ ): groupListInToolbar->setObjectName( "groupListToolbar" ); groupListInToolbar->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::MinimumExpanding ); groupListInToolbar->setSizeAdjustPolicy( QComboBox::AdjustToContents ); - translateBoxLayout->addWidget( groupListInToolbar ); + translateBoxLayout->addWidget( groupListInToolbar, 0 ); translateBox = new TranslateBox( navToolbar ); translateBox->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::MinimumExpanding ); - translateBoxLayout->addWidget( translateBox ); + translateBoxLayout->addWidget( translateBox, 1 ); translateBoxToolBarAction = navToolbar->addWidget( translateBoxWidget ); // popup @@ -761,8 +753,6 @@ MainWindow::MainWindow( Config::Class & cfg_ ): this, &MainWindow::proxyAuthentication ); - setupNetworkCache( cfg.preferences.maxNetworkCacheSize ); - makeDictionaries(); // After we have dictionaries and groups, we can populate history @@ -811,26 +801,11 @@ MainWindow::MainWindow( Config::Class & cfg_ ): } // Scanpopup related - scanPopup = new ScanPopup( nullptr, cfg, articleNetMgr, history ); - - scanPopup->setStyleSheet( styleSheet() ); - - connect( scanPopup, &ScanPopup::editGroupRequest, this, &MainWindow::editDictionaries, Qt::QueuedConnection ); - - connect( scanPopup, &ScanPopup::sendPhraseToMainWindow, this, [ this ]( const QString & word ) { - wordReceived( word ); - } ); - - connect( scanPopup, &ScanPopup::inspectSignal, this, &MainWindow::inspectElement ); - connect( scanPopup, &ScanPopup::forceAddWordToHistory, this, &MainWindow::forceAddWordToHistory ); - connect( scanPopup, &ScanPopup::showDictionaryInfo, this, &MainWindow::showDictionaryInfo ); - connect( scanPopup, &ScanPopup::openDictionaryFolder, this, &MainWindow::openDictionaryFolder ); - connect( scanPopup, &ScanPopup::sendWordToHistory, this, &MainWindow::addWordToHistory ); - connect( this, &MainWindow::setPopupGroupByName, scanPopup, &ScanPopup::setGroupByName ); - connect( scanPopup, - &ScanPopup::sendWordToFavorites, - ui.favoritesPaneWidget, - &FavoritesPaneWidget::addRemoveWordInActiveFav ); + // Deferred initialization until first use or if scanning is enabled + // Use a delayed call to avoid blocking the main window's initial show-up + if ( cfg.preferences.startWithScanPopupOn ) { + QTimer::singleShot( 1000, this, &MainWindow::ensureScanPopup ); + } clipboardListener = clipboardListener::get_impl( this ); connect( clipboardListener, &BaseClipboardListener::changed, this, &MainWindow::clipboardChange ); @@ -868,7 +843,7 @@ MainWindow::MainWindow( Config::Class & cfg_ ): updateSearchPaneAndBar( cfg.preferences.searchInDock ); ui.searchPane->setVisible( cfg.preferences.searchInDock ); - trayIconUpdateOrInit(); + QTimer::singleShot( 1000, this, &MainWindow::trayIconUpdateOrInit ); // Update zoomers adjustCurrentZoomFactor(); @@ -878,7 +853,7 @@ MainWindow::MainWindow( Config::Class & cfg_ ): setAutostart( cfg.preferences.autoStart ); // Initialize global hotkeys - installHotKeys(); + QTimer::singleShot( 2000, this, &MainWindow::installHotKeys ); if ( cfg.preferences.alwaysOnTop ) { on_alwaysOnTop_triggered( true ); @@ -890,7 +865,10 @@ MainWindow::MainWindow( Config::Class & cfg_ ): } // makeDictionaries() didn't do deferred init - we do it here, at the end. - doDeferredInit( dictionaries ); + // Use a delay to let the UI breathe first + QTimer::singleShot( 3000, this, [ this ]() { + doDeferredInit( dictionaries ); + } ); updateStatusLine(); @@ -913,7 +891,7 @@ MainWindow::MainWindow( Config::Class & cfg_ ): navForward->setIcon( QIcon( ":/icons/previous.svg" ) ); } - inspector.reset( new ArticleInspector( this ) ); + // inspector.reset( new ArticleInspector( this ) ); // Moved to lazy initialization in inspectElement() #ifdef Q_OS_WIN // Regiser and update URL Scheme for windows @@ -934,10 +912,40 @@ MainWindow::MainWindow( Config::Class & cfg_ ): iconSizeActionTriggered( nullptr ); if ( cfg.preferences.checkForNewReleases ) { - QTimer::singleShot( 0, this, &MainWindow::checkNewRelease ); + QTimer::singleShot( 10000, this, &MainWindow::checkNewRelease ); } } + +void MainWindow::ensureScanPopup() +{ + if ( scanPopup ) { + return; + } + + // Scanpopup related + scanPopup = new ScanPopup( nullptr, cfg, articleNetMgr, history ); + + scanPopup->setStyleSheet( styleSheet() ); + + connect( scanPopup, &ScanPopup::editGroupRequest, this, &MainWindow::editDictionaries, Qt::QueuedConnection ); + + connect( scanPopup, &ScanPopup::sendPhraseToMainWindow, this, [ this ]( const QString & word ) { + wordReceived( word ); + } ); + + connect( scanPopup, &ScanPopup::inspectSignal, this, &MainWindow::inspectElement ); + connect( scanPopup, &ScanPopup::forceAddWordToHistory, this, &MainWindow::forceAddWordToHistory ); + connect( scanPopup, &ScanPopup::showDictionaryInfo, this, &MainWindow::showDictionaryInfo ); + connect( scanPopup, &ScanPopup::openDictionaryFolder, this, &MainWindow::openDictionaryFolder ); + connect( scanPopup, &ScanPopup::sendWordToHistory, this, &MainWindow::addWordToHistory ); + connect( this, &MainWindow::setPopupGroupByName, scanPopup, &ScanPopup::setGroupByName ); + connect( scanPopup, + &ScanPopup::sendWordToFavorites, + ui.favoritesPaneWidget, + &FavoritesPaneWidget::addRemoveWordInActiveFav ); +} + void MainWindow::prefixMatchUpdated() { updateMatchResults( false ); @@ -1010,13 +1018,14 @@ void MainWindow::refreshTranslateLine() // Visually mark the input line to mark if there's no results bool setMark = wordFinder.getResults().empty() && !wordFinder.wasSearchUncertain(); Utils::Widget::setNoResultColor( translateLine, setMark ); + if ( !cfg.preferences.searchInDock ) { + translateBox->setNoResults( setMark ); + } } void MainWindow::clipboardChange( QClipboard::Mode m ) { - if ( !scanPopup ) { - return; - } + ensureScanPopup(); #if defined( WITH_X11 ) if ( m == QClipboard::Clipboard ) { @@ -1222,12 +1231,6 @@ void MainWindow::removeGroupComboBoxActionsFromDialog( QDialog * dialog, GroupCo void MainWindow::commitData() { - if ( cfg.preferences.clearNetworkCacheOnExit ) { - if ( QAbstractNetworkCache * cache = articleNetMgr.cache() ) { - cache->clear(); - } - } - //if the dictionaries is empty ,large chance that the config has corrupt. if ( cfg.preferences.removeInvalidIndexOnExit && !dictMap.isEmpty() ) { const QDir dir( Config::getIndexDir() ); @@ -1433,6 +1436,9 @@ void MainWindow::updateAppearances( const QString & addonStyle, if ( !css.isEmpty() ) { setStyleSheet( css ); + if ( scanPopup ) { + scanPopup->setStyleSheet( css ); + } } } @@ -1493,33 +1499,37 @@ void MainWindow::wheelEvent( QWheelEvent * ev ) void MainWindow::closeEvent( QCloseEvent * ev ) { - if ( cfg.preferences.enableTrayIcon && cfg.preferences.closeToTray ) { - if ( !cfg.preferences.searchInDock ) { - translateBox->setPopupEnabled( false ); - } + // If tray icon is disabled or closing to tray is not enabled, quit the application + if ( !cfg.preferences.enableTrayIcon || !cfg.preferences.closeToTray ) { + ev->accept(); + quitApp(); + return; + } + + // Hide translation popup if necessary + if ( !cfg.preferences.searchInDock ) { + translateBox->setPopupEnabled( false ); + } #ifdef Q_OS_MACOS - if ( !ev->spontaneous() || !isVisible() ) { - return; - } + // On macOS, ignore non-spontaneous events or already hidden windows to avoid redundant logic + if ( !ev->spontaneous() || !isVisible() ) { + return; + } #endif + + // Handle window hiding based on platform characteristics #if defined( Q_OS_UNIX ) && !defined( Q_OS_MACOS ) - // Don't ignore the close event, because doing so cancels session logout if - // the main window is visible when the user attempts to log out. - // The main window will be only hidden, because QApplication::quitOnLastWindowClosed - // property is false and Qt::WA_DeleteOnClose widget is not set. - Q_ASSERT( !QApplication::quitOnLastWindowClosed() ); - Q_ASSERT( !testAttribute( Qt::WA_DeleteOnClose ) ); + // On Linux/Unix, do not call ignore() as it blocks session logout. + // The window is hidden instead of closed because quitOnLastWindowClosed is false. + Q_ASSERT( !QApplication::quitOnLastWindowClosed() ); + Q_ASSERT( !testAttribute( Qt::WA_DeleteOnClose ) ); #else - // Ignore the close event because closing the main window breaks global hotkeys on Windows. - ev->ignore(); - hide(); + // On Windows and macOS (manual close), ignore the event and hide the window. + // This ensures global hotkey hooks remain valid on Windows. + ev->ignore(); + hide(); #endif - } - else { - ev->accept(); - quitApp(); - } } void MainWindow::quitApp() @@ -1575,33 +1585,6 @@ void MainWindow::applyProxySettings() QNetworkProxy::setApplicationProxy( proxy ); } -void MainWindow::setupNetworkCache( int maxSize ) -{ - // x << 20 == x * 2^20 converts mebibytes to bytes. - const qint64 maxCacheSizeInBytes = maxSize <= 0 ? qint64( 0 ) : static_cast< qint64 >( maxSize ) << 20; - - if ( QAbstractNetworkCache * abstractCache = articleNetMgr.cache() ) { - QNetworkDiskCache * const diskCache = qobject_cast< QNetworkDiskCache * >( abstractCache ); - Q_ASSERT_X( diskCache, Q_FUNC_INFO, "Unexpected network cache type." ); - diskCache->setMaximumCacheSize( maxCacheSizeInBytes ); - return; - } - if ( maxCacheSizeInBytes == 0 ) { - return; // There is currently no cache and it is not needed. - } - - QString cacheDirectory = Config::getCacheDir(); - if ( !QDir().mkpath( cacheDirectory ) ) { - cacheDirectory = QStandardPaths::writableLocation( QStandardPaths::CacheLocation ); - qWarning( "Cannot create a cache directory %s. use default cache path.", cacheDirectory.toUtf8().constData() ); - } - - QNetworkDiskCache * const diskCache = new QNetworkDiskCache( this ); - diskCache->setMaximumCacheSize( maxCacheSizeInBytes ); - diskCache->setCacheDirectory( cacheDirectory ); - articleNetMgr.setCache( diskCache ); -} - void MainWindow::makeDictionaries() { @@ -1839,6 +1822,7 @@ ArticleView * MainWindow::createNewTab( bool switchToIt, const QString & name ) connect( view, &ArticleView::zoomOut, this, &MainWindow::zoomout ); connect( view, &ArticleView::saveBookmarkSignal, this, &MainWindow::addBookmarkToFavorite ); + connect( view, &ArticleView::translateSelectedText, this, &MainWindow::handleTranslateSelectedText ); connect( ui.searchInPageAction, &QAction::triggered, view, [ this, view ]() { #ifdef Q_OS_MACOS @@ -1874,6 +1858,9 @@ ArticleView * MainWindow::createNewTab( bool switchToIt, const QString & name ) void MainWindow::inspectElement( QWebEnginePage * page ) { + if ( !inspector ) { + inspector.reset( new ArticleInspector( this ) ); + } inspector->triggerAction( page ); } @@ -2247,7 +2234,9 @@ void MainWindow::editDictionaries( unsigned editDictionaryGroup ) } } - scanPopup->refresh(); + if ( scanPopup ) { + scanPopup->refresh(); + } installHotKeys(); } @@ -2303,10 +2292,6 @@ void MainWindow::editPreferences() ui.favoritesPaneWidget->setSaveInterval( p.favoritesStoreInterval ); } - if ( cfg.preferences.maxNetworkCacheSize != p.maxNetworkCacheSize ) { - setupNetworkCache( p.maxNetworkCacheSize ); - } - bool needReload = ( cfg.preferences.displayStyle != p.displayStyle || cfg.preferences.addonStyle != p.addonStyle || cfg.preferences.darkReaderMode != p.darkReaderMode @@ -2316,8 +2301,6 @@ void MainWindow::editPreferences() || p.darkReaderMode == Config::Dark::Auto // We cannot know if a reload is needed, just do it regardless. ); - // This line must be here because the components below require cfg's value to reconfigure - // After this point, p must not be accessed. cfg.preferences = p; // Loop through all tabs and reload pages due to ArticleMaker's change. @@ -2367,11 +2350,16 @@ void MainWindow::editPreferences() Config::save( cfg ); } - scanPopup->refresh(); + if ( scanPopup ) { + scanPopup->refresh(); + } installHotKeys(); ftsIndexing.setDictionaries( dictionaries ); - ftsIndexing.doIndexing(); + // Delay indexing to avoid high IO load during startup + QTimer::singleShot( 5000, this, [ this ]() { + ftsIndexing.doIndexing(); + } ); } void MainWindow::currentGroupChanged( int ) @@ -2475,6 +2463,9 @@ void MainWindow::updateSuggestionList( const QString & newValue ) // Reset the noResults mark if it's on right now Utils::Widget::setNoResultColor( translateLine, false ); + if ( !cfg.preferences.searchInDock ) { + translateBox->setNoResults( false ); + } return; } @@ -2816,6 +2807,42 @@ void MainWindow::showDefinitionInNewTab( const QString & word, createNewTab( !cfg.preferences.newTabsOpenInBackground, word )->showDefinition( word, group, fromArticle, contexts ); } +void MainWindow::handleTranslateSelectedText( const QString & word, const QUrl & url, const QString & currentArticle ) +{ + // Initiate translation + Qt::KeyboardModifiers kmod = QApplication::keyboardModifiers(); + if ( kmod & ( Qt::ControlModifier | Qt::ShiftModifier ) ) { // open in new tab + // Create a new tab and show definition there + ArticleView * newView = createNewTab( !cfg.preferences.newTabsOpenInBackground, word ); + auto groupId = newView->getGroup( url ); + if ( groupId == GroupId::NoGroupId ) { + groupId = groupList->getCurrentGroup(); + } + newView->showDefinition( word, groupId, currentArticle, Contexts() ); + } + else { + // Get the current active ArticleView + ArticleView * currentView = getFirstNonWebSiteArticleView(); + if ( currentView ) { + // Get group ID from the URL or fall back to current group + auto groupId = currentView->getGroup( url ); + if ( groupId == GroupId::NoGroupId || currentView->isInternalPage() ) { + groupId = groupList->getCurrentGroup(); + } + + // If the URL has dictionaries query parameter, use those dictionaries + if ( Utils::Url::hasQueryItem( url, "dictionaries" ) ) { + QStringList dictsList = Utils::Url::queryItemValue( url, "dictionaries" ).split( ",", Qt::SkipEmptyParts ); + currentView->showDefinition( word, dictsList, groupId, false ); + } + else { + // Otherwise show definition in current tab + currentView->showDefinition( word, groupId, currentArticle ); + } + } + } +} + void MainWindow::activeArticleChanged( const ArticleView * view, const QString & id ) { if ( view != getCurrentArticleView() || view->isWebsite() ) { @@ -2872,8 +2899,6 @@ void MainWindow::mutedDictionariesChanged() void MainWindow::showHistoryItem( const QString & word ) { - // qDebug() << "Showing history item" << word; - history.enableAdd( false ); setInputLineText( word, WildcardPolicy::EscapeWildcards, DisablePopup ); @@ -2884,6 +2909,8 @@ void MainWindow::showHistoryItem( const QString & word ) void MainWindow::showTranslationFor( const QString & word, unsigned inGroup, const QString & scrollTo ) { + GlobalBroadcaster::instance()->is_popup = false; + ArticleView * view = getFirstNonWebSiteArticleView(); navPronounce->setEnabled( false ); @@ -2989,7 +3016,7 @@ void MainWindow::toggleMainWindow( bool ensureShow ) void MainWindow::installHotKeys() { #if defined( WITH_X11 ) - if ( !qEnvironmentVariableIsEmpty( "GOLDENDICT_FORCE_WAYLAND" ) || Utils::isWayland() ) { + if ( QGuiApplication::platformName() != "xcb" ) { return; } #endif @@ -3028,9 +3055,12 @@ void MainWindow::installHotKeys() void MainWindow::hotKeyActivated( int hk ) { if ( !hk ) { + GlobalBroadcaster::instance()->is_popup = false; toggleMainWindow( false ); } - else if ( scanPopup ) { + else { + ensureScanPopup(); + GlobalBroadcaster::instance()->is_popup = true; #if defined( Q_OS_UNIX ) && !defined( Q_OS_MACOS ) // When the user requests translation with the Ctrl+C+C hotkey in certain apps // on some GNU/Linux systems, GoldenDict appears to handle Ctrl+C+C before the @@ -3119,6 +3149,7 @@ void MainWindow::trayIconActivated( QSystemTrayIcon::ActivationReason r ) case QSystemTrayIcon::MiddleClick: // Middle mouse click on Tray translates selection // it is functional like as stardict + ensureScanPopup(); scanPopup->translateWordFromSelection(); break; default: @@ -3207,7 +3238,9 @@ void MainWindow::iconSizeActionTriggered( QAction * /*action*/ ) dictionaryBar.setDictionaryIconSize( getIconSizeLogical() ); - scanPopup->setDictionaryIconSize(); + if ( scanPopup ) { + scanPopup->setDictionaryIconSize(); + } } void MainWindow::toggleMenuBarTriggered( bool announce ) @@ -3256,8 +3289,20 @@ void MainWindow::toggleMenuBarTriggered( bool announce ) void MainWindow::on_clearHistory_triggered() { - history.clear(); - history.save(); + QMessageBox::StandardButton reply; + reply = QMessageBox::question( this, + tr( "Clear History" ), + tr( "Are you sure you want to clear all history items?" ), + QMessageBox::Yes | QMessageBox::No ); + if ( reply == QMessageBox::Yes ) { + history.clear(); + history.save(); + } +} + +void MainWindow::on_clearFavorites_triggered() +{ + ui.favoritesPaneWidget->clearAllItems(); } void MainWindow::on_newTab_triggered() @@ -3387,7 +3432,9 @@ void MainWindow::on_rescanFiles_triggered() updateGroupList(); - scanPopup->refresh(); + if ( scanPopup ) { + scanPopup->refresh(); + } installHotKeys(); updateSuggestionList(); @@ -3492,7 +3539,9 @@ void MainWindow::scaleArticlesByCurrentZoomFactor() view.setZoomFactor( cfg.preferences.zoomFactor ); } - scanPopup->applyZoomFactor(); + if ( scanPopup ) { + scanPopup->applyZoomFactor(); + } } void MainWindow::messageFromAnotherInstanceReceived( const QString & message ) @@ -3514,7 +3563,8 @@ void MainWindow::messageFromAnotherInstanceReceived( const QString & message ) if ( message.left( 15 ) == "translateWord: " ) { auto word = message.mid( 15 ); - if ( ( consoleWindowOnce == "popup" ) && scanPopup ) { + if ( consoleWindowOnce == "popup" ) { + ensureScanPopup(); scanPopup->translateWord( word ); } else if ( consoleWindowOnce == "main" ) { @@ -4207,8 +4257,12 @@ void MainWindow::showFTSIndexingName( const QString & name ) } } -void MainWindow::openWebsiteInNewTab( QString name, QString url, QString dictId ) +void MainWindow::openWebsiteInNewTab( QString name, QString url, QString dictId, bool isPopup, QString word ) { + if ( isPopup ) { + return; + } + auto view = findArticleViewByDictId( dictId ); if ( view == nullptr ) { view = createNewTab( false, name ); @@ -4217,6 +4271,11 @@ void MainWindow::openWebsiteInNewTab( QString name, QString url, QString dictId view->setActiveArticleId( dictId ); } + // Set the current word for the website view + if ( !word.isEmpty() ) { + view->setCurrentWord( word ); + } + view->load( url, name ); } @@ -4330,6 +4389,7 @@ void MainWindow::setGroupByName( const QString & name, bool main_window ) } } else { + ensureScanPopup(); emit setPopupGroupByName( name ); } } diff --git a/src/ui/mainwindow.hh b/src/ui/mainwindow.hh index 5dc0092904..e44cc0df3a 100644 --- a/src/ui/mainwindow.hh +++ b/src/ui/mainwindow.hh @@ -24,7 +24,6 @@ #include "base_type.hh" #include "hotkey/hotkeywrapper.hh" #include "resourceschemehandler.hh" -#include "iframeschemehandler.hh" #ifdef WITH_X11 #include #endif @@ -164,7 +163,6 @@ private: QIcon starIcon, blueStarIcon; LocalSchemeHandler * localSchemeHandler; - IframeSchemeHandler * iframeSchemeHandler; ResourceSchemeHandler * resourceSchemeHandler; BaseClipboardListener * clipboardListener; @@ -174,6 +172,9 @@ private: // On macOS, this will be just Fusion. QString defaultInterfaceStyle; #endif + /// Ensures the scan popup is created and connected + void ensureScanPopup(); + /// Applies Qt stylesheets, use Windows dark palette etc.... void updateAppearances( const QString & addonStyle, const QString & displayStyle, @@ -192,7 +193,6 @@ private: void closeEvent( QCloseEvent * ); void applyProxySettings(); - void setupNetworkCache( int maxSize ); void makeDictionaries(); void updateStatusLine(); void updateGroupList( bool reload = true ); @@ -283,7 +283,7 @@ private slots: void openDictionaryFolder( const QString & id ); void showFTSIndexingName( const QString & name ); - void openWebsiteInNewTab( QString name, QString url, QString dictId ); + void openWebsiteInNewTab( QString name, QString url, QString dictId, bool isPopup, QString word = QString() ); void handleAddToFavoritesButton(); @@ -396,6 +396,7 @@ private slots: void toggleMenuBarTriggered( bool announce = true ); void on_clearHistory_triggered(); + void on_clearFavorites_triggered(); void on_newTab_triggered(); @@ -441,6 +442,9 @@ private slots: void closeHeadwordsDialog(); + /// Handle translate selected text from ArticleView + void handleTranslateSelectedText( const QString & word, const QUrl & url, const QString & currentArticle ); + void focusHeadwordsDialog(); void focusArticleView(); diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index 9565f50b06..4286bac699 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -128,6 +128,8 @@ + + @@ -559,6 +561,11 @@ Ctrl+E + + + &Clear + + diff --git a/src/ui/preferences.cc b/src/ui/preferences.cc index 000c11778f..aebf45e323 100644 --- a/src/ui/preferences.cc +++ b/src/ui/preferences.cc @@ -168,11 +168,6 @@ Preferences::Preferences( QWidget * parent, Config::Class & cfg_ ): ui.InterfaceStyle->hide(); #endif -#ifdef Q_OS_WIN32 - // 1 MB stands for 2^20 bytes on Windows. "MiB" is never used by this OS. - ui.maxNetworkCacheSize->setSuffix( " MB" ); -#endif - ui.maxNetworkCacheSize->setToolTip( ui.maxNetworkCacheSize->toolTip().arg( Config::getCacheDir() ) ); ui.newTabsOpenAfterCurrentOne->setChecked( p.newTabsOpenAfterCurrentOne ); ui.newTabsOpenInBackground->setChecked( p.newTabsOpenInBackground ); @@ -365,9 +360,6 @@ Preferences::Preferences( QWidget * parent, Config::Class & cfg_ ): ui.checkForNewReleases->setChecked( p.checkForNewReleases ); ui.disallowContentFromOtherSites->setChecked( p.disallowContentFromOtherSites ); - ui.hideGoldenDictHeader->setChecked( p.hideGoldenDictHeader ); - ui.maxNetworkCacheSize->setValue( p.maxNetworkCacheSize ); - ui.clearNetworkCacheOnExit->setChecked( p.clearNetworkCacheOnExit ); //Misc ui.removeInvalidIndexOnExit->setChecked( p.removeInvalidIndexOnExit ); @@ -557,9 +549,6 @@ Config::Preferences Preferences::getPreferences() p.checkForNewReleases = ui.checkForNewReleases->isChecked(); p.disallowContentFromOtherSites = ui.disallowContentFromOtherSites->isChecked(); - p.hideGoldenDictHeader = ui.hideGoldenDictHeader->isChecked(); - p.maxNetworkCacheSize = ui.maxNetworkCacheSize->value(); - p.clearNetworkCacheOnExit = ui.clearNetworkCacheOnExit->isChecked(); p.removeInvalidIndexOnExit = ui.removeInvalidIndexOnExit->isChecked(); p.enableApplicationLog = ui.enableApplicationLog->isChecked(); @@ -673,10 +662,6 @@ void Preferences::customProxyToggled( bool ) ui.customSettingsGroup->setEnabled( ui.customProxy->isChecked() && ui.useProxyServer->isChecked() ); } -void Preferences::on_maxNetworkCacheSize_valueChanged( int value ) -{ - ui.clearNetworkCacheOnExit->setEnabled( value != 0 ); -} void Preferences::on_collapseBigArticles_toggled( bool checked ) { diff --git a/src/ui/preferences.hh b/src/ui/preferences.hh index 75b66b6952..6dcdf0b95e 100644 --- a/src/ui/preferences.hh +++ b/src/ui/preferences.hh @@ -48,7 +48,6 @@ private slots: void on_useExternalPlayer_toggled( bool enabled ); void customProxyToggled( bool ); - void on_maxNetworkCacheSize_valueChanged( int value ); void on_collapseBigArticles_toggled( bool checked ); void on_limitInputPhraseLength_toggled( bool checked ); diff --git a/src/ui/preferences.ui b/src/ui/preferences.ui index 58e460d89e..c76a4e3a3b 100644 --- a/src/ui/preferences.ui +++ b/src/ui/preferences.ui @@ -1343,70 +1343,6 @@ you are browsing. If some site breaks because of this, try disabling this. - - - - Some sites detect GoldenDict via HTTP headers and block the requests. -Enable this option to workaround the problem. - - - Do not identify GoldenDict in HTTP headers - - - - - - - - - Maximum network cache size: - - - - - - - Maximum disk space occupied by GoldenDict's network cache in -%1 -If set to 0 the network disk cache will be disabled. - - - MiB - - - 2000 - - - 50 - - - - - - - When this option is enabled, GoldenDict -clears its network cache from disk during exit. - - - Clear network cache on exit - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - @@ -1948,7 +1884,7 @@ from Stardict, Babylon and GLS dictionaries - Open website dictionary in seperate tab + Open website dictionary in separate tab diff --git a/src/ui/scanpopup.cc b/src/ui/scanpopup.cc index 85979b666f..696b9fa2c0 100644 --- a/src/ui/scanpopup.cc +++ b/src/ui/scanpopup.cc @@ -58,6 +58,7 @@ ScanPopup::ScanPopup( QWidget * parent, openSearchAction( this ), wordFinder( this ), dictionaryBar( this, configEvents, cfg.preferences.maxDictionaryRefsInContextMenu ), + articleNetMgr( articleNetMgr ), hideTimer( this ) { // Init UI @@ -83,7 +84,7 @@ ScanPopup::ScanPopup( QWidget * parent, foundBar->setAllowedAreas( Qt::LeftToolBarArea | Qt::RightToolBarArea ); // UI style - searchBar->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Maximum ); + searchBar->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Maximum ); searchBar->setMovable( false ); toolBar->setFloatable( false ); dictionaryBar.setFloatable( false ); @@ -107,8 +108,19 @@ ScanPopup::ScanPopup( QWidget * parent, mainStatusBar = new MainStatusBar( this ); + tabWidget = new MainTabWidget( this ); + tabWidget->setTabsClosable( true ); + tabWidget->setHideSingleTab( true ); + tabWidget->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Expanding ); + connect( tabWidget, &QTabWidget::tabCloseRequested, this, [ this ]( int index ) { + if ( index > 0 ) { + auto widget = tabWidget->widget( index ); + tabWidget->removeTab( index ); + widget->deleteLater(); + } + } ); - definition = new ArticleView( this, + definition = new ArticleView( tabWidget, articleNetMgr, true, cfg, @@ -116,8 +128,22 @@ ScanPopup::ScanPopup( QWidget * parent, dictionaryBar.toggleViewAction(), cfg.lastPopupGroupId ); + tabWidget->addTab( definition, tr( "Definition" ) ); + tabWidget->tabBar()->setTabButton( 0, QTabBar::RightSide, nullptr ); + tabWidget->tabBar()->setTabButton( 0, QTabBar::LeftSide, nullptr ); + resize( 247, 400 ); + // Set maximum width based on screen size + QScreen * screen = QGuiApplication::primaryScreen(); + if ( screen ) { + int maxWidth = screen->availableGeometry().width() * 0.8; // 80% of screen width + setMaximumWidth( maxWidth ); + } + + translateBox->setMaximumWidth( 200 ); + groupList->setMaximumWidth( 200 ); + connect( definition, &ArticleView::inspectSignal, this, &ScanPopup::inspectElementWhenPinned ); connect( definition, &ArticleView::forceAddWordToHistory, this, &ScanPopup::forceAddWordToHistory ); connect( this, &ScanPopup::closeMenu, definition, &ArticleView::closePopupMenu ); @@ -142,7 +168,7 @@ ScanPopup::ScanPopup( QWidget * parent, translateLineDefaultFont = translateBox->font(); groupListDefaultFont = groupList->font(); - setCentralWidget( definition ); + setCentralWidget( tabWidget ); translateBox->translateLine()->installEventFilter( this ); definition->installEventFilter( this ); @@ -279,6 +305,17 @@ ScanPopup::ScanPopup( QWidget * parent, connect( definition, &ArticleView::statusBarMessage, this, &ScanPopup::showStatusBarMessage ); connect( definition, &ArticleView::titleChanged, this, &ScanPopup::titleChanged ); + connect( definition, &ArticleView::activeArticleChanged, this, &ScanPopup::activeArticleChanged ); + connect( definition, &ArticleView::sendWordToInputLine, this, &ScanPopup::translateWord ); + + connect( GlobalBroadcaster::instance(), + &GlobalBroadcaster::websiteDictionarySignal, + this, + &ScanPopup::openWebsiteInNewTab ); + + connect( tabWidget, &QTabWidget::currentChanged, this, [ this ]( int ) { + updateBackForwardButtons(); + } ); #ifdef Q_OS_MAC connect( &MouseOver::instance(), &MouseOver::hovered, this, &ScanPopup::handleInputWord ); @@ -304,18 +341,20 @@ ScanPopup::ScanPopup( QWidget * parent, #endif #ifdef WITH_X11 - scanFlag = new ScanFlag( this ); + if ( QGuiApplication::platformName() == "xcb" ) { + scanFlag = new ScanFlag( this ); - connect( scanFlag, &ScanFlag::requestScanPopup, this, [ this ] { - translateWordFromSelection(); - } ); + connect( scanFlag, &ScanFlag::requestScanPopup, this, [ this ] { + translateWordFromSelection(); + } ); - // Use delay show to prevent popup from showing up while selection is still in progress - // Only certain software has this problem (e.g. Chrome) - selectionDelayTimer.setSingleShot( true ); - selectionDelayTimer.setInterval( cfg.preferences.selectionChangeDelayTimer ); + // Use delay show to prevent popup from showing up while selection is still in progress + // Only certain software has this problem (e.g. Chrome) + selectionDelayTimer.setSingleShot( true ); + selectionDelayTimer.setInterval( cfg.preferences.selectionChangeDelayTimer ); - connect( &selectionDelayTimer, &QTimer::timeout, this, &ScanPopup::translateWordFromSelection ); + connect( &selectionDelayTimer, &QTimer::timeout, this, &ScanPopup::translateWordFromSelection ); + } #endif applyZoomFactor(); @@ -327,6 +366,14 @@ void ScanPopup::onActionTriggered() if ( action != nullptr ) { auto dictId = action->data().toString(); qDebug() << "Action triggered:" << dictId; + + if ( auto otherView = findArticleViewByDictId( dictId ) ) { + tabWidget->setCurrentWidget( otherView ); + return; + } + + tabWidget->setCurrentWidget( definition ); + definition->jumpToDictionary( dictId, true ); } } @@ -402,7 +449,9 @@ void ScanPopup::refresh() connect( groupList, &GroupComboBox::currentIndexChanged, this, &ScanPopup::currentGroupChanged ); #ifdef WITH_X11 - selectionDelayTimer.setInterval( cfg.preferences.selectionChangeDelayTimer ); + if ( scanFlag ) { + selectionDelayTimer.setInterval( cfg.preferences.selectionChangeDelayTimer ); + } #endif } @@ -434,7 +483,11 @@ void ScanPopup::inspectElementWhenPinned( QWebEnginePage * page ) void ScanPopup::applyZoomFactor() const { - definition->setZoomFactor( cfg.preferences.zoomFactor ); + for ( int i = 0; i < tabWidget->count(); ++i ) { + if ( auto view = qobject_cast< ArticleView * >( tabWidget->widget( i ) ) ) { + view->setZoomFactor( cfg.preferences.zoomFactor ); + } + } } Qt::WindowFlags ScanPopup::unpinnedWindowFlags() const @@ -459,6 +512,7 @@ void ScanPopup::editGroupRequested() void ScanPopup::translateWordFromClipboard( QClipboard::Mode m ) { + GlobalBroadcaster::instance()->is_popup = true; QString subtype = QStringLiteral( "plain" ); QString str = QApplication::clipboard()->text( subtype, m ); qDebug( "Translate from clipboard %d -> %s", qToUnderlying( m ), str.toStdString().c_str() ); @@ -608,7 +662,7 @@ void ScanPopup::engagePopup( bool forcePopup, bool giveFocus ) showTranslationFor( pendingWord ); } -QString ScanPopup::elideInputWord() +QString ScanPopup::elideInputWord() const { return pendingWord.size() > 32 ? pendingWord.mid( 0, 32 ) + "..." : pendingWord; } @@ -669,8 +723,7 @@ void ScanPopup::updateSuggestionList( const QString & text ) if ( !req.size() ) { // An empty request always results in an empty result wordFinder.cancel(); - - + translateBox->setNoResults( false ); return; } @@ -690,6 +743,8 @@ void ScanPopup::showTranslationFor( const QString & word ) const unsigned groupId = groupList->getCurrentGroup(); definition->showDefinition( word, groupId ); definition->focus(); + // definition is the first tab + tabWidget->setTabText( 0, elideInputWord() ); } const vector< sptr< Dictionary::Class > > & ScanPopup::getActiveDicts() @@ -934,9 +989,7 @@ void ScanPopup::prefixMatchFinished() } // Reset the noResults mark if it's on right now - auto translateLine = translateBox->translateLine(); - - Utils::Widget::setNoResultColor( translateLine, _results.isEmpty() ); + translateBox->setNoResults( _results.isEmpty() ); translateBox->setModel( _results ); } } @@ -1007,7 +1060,9 @@ void ScanPopup::focusTranslateLine() void ScanPopup::stopAudio() const { - definition->stopSound(); + if ( auto view = qobject_cast< ArticleView * >( tabWidget->currentWidget() ) ) { + view->stopSound(); + } } void ScanPopup::dictionaryBar_visibility_changed( bool visible ) @@ -1140,18 +1195,24 @@ void ScanPopup::switchExpandOptionalPartsMode() void ScanPopup::updateBackForwardButtons() const { - ui.goBackButton->setEnabled( definition->canGoBack() ); - ui.goForwardButton->setEnabled( definition->canGoForward() ); + if ( auto view = qobject_cast< ArticleView * >( tabWidget->currentWidget() ) ) { + ui.goBackButton->setEnabled( view->canGoBack() ); + ui.goForwardButton->setEnabled( view->canGoForward() ); + } } void ScanPopup::goBackButton_clicked() const { - definition->back(); + if ( auto view = qobject_cast< ArticleView * >( tabWidget->currentWidget() ) ) { + view->back(); + } } void ScanPopup::goForwardButton_clicked() const { - definition->forward(); + if ( auto view = qobject_cast< ArticleView * >( tabWidget->currentWidget() ) ) { + view->forward(); + } } void ScanPopup::setDictionaryIconSize() @@ -1204,11 +1265,96 @@ void ScanPopup::alwaysOnTopClicked( bool checked ) } } -void ScanPopup::titleChanged( ArticleView *, const QString & title ) const +void ScanPopup::titleChanged( ArticleView * view, const QString & title ) const { - // Set icon for "Add to Favorites" button ui.sendWordToFavoritesButton->setIcon( isWordPresentedInFavorites( title ) ? blueStarIcon : starIcon ); + + if ( view->isWebsite() ) { + int index = tabWidget->indexOf( view ); + if ( index != -1 ) { + tabWidget->setTabText( index, title ); + tabWidget->setTabToolTip( index, title ); + } + } +} + +void ScanPopup::activeArticleChanged( const ArticleView * view, const QString & id ) +{ + if ( view != tabWidget->currentWidget() || view->isWebsite() ) { + return; + } +} + +ArticleView * ScanPopup::findArticleViewByDictId( const QString & dictId ) +{ + if ( cfg.preferences.openWebsiteInNewTab ) { + for ( int i = 0; i < tabWidget->count(); i++ ) { + auto * view = qobject_cast< ArticleView * >( tabWidget->widget( i ) ); + if ( view && view->isWebsite() && view->getActiveArticleId() == dictId ) { + return view; + } + } + } + return nullptr; +} + +void ScanPopup::openWebsiteInNewTab( QString name, QString url, QString dictId, bool isPopup, QString word ) +{ + if ( !isVisible() ) { + return; + } + + if ( !isPopup ) { + return; + } + + // Look for an existing tab with the same dictionary id + for ( int i = 0; i < tabWidget->count(); ++i ) { + if ( auto view = qobject_cast< ArticleView * >( tabWidget->widget( i ) ) ) { + if ( view->isWebsite() && view->getActiveArticleId() == dictId ) { + // Set the current word for the existing website view + if ( !word.isEmpty() ) { + view->setCurrentWord( word ); + } + view->load( url, name ); + tabWidget->setTabText( i, name ); + return; + } + } + } + + auto view = new ArticleView( tabWidget, + articleNetMgr, + true, + cfg, + translateBox->translateLine(), + dictionaryBar.toggleViewAction(), + groupList->getCurrentGroup() ); + + view->setWebsite( true ); + view->setWebsiteHost( QUrl( url ).host() ); + view->setActiveArticleId( dictId ); + // Set the current word for the new website view + if ( !word.isEmpty() ) { + view->setCurrentWord( word ); + } + + // Connect vital signals + connect( view, &ArticleView::inspectSignal, this, &ScanPopup::inspectElementWhenPinned ); + connect( view, &ArticleView::forceAddWordToHistory, this, &ScanPopup::forceAddWordToHistory ); + connect( this, &ScanPopup::closeMenu, view, &ArticleView::closePopupMenu ); + connect( view, &ArticleView::sendWordToHistory, this, &ScanPopup::sendWordToHistory ); + connect( view, &ArticleView::typingEvent, this, &ScanPopup::typingEvent ); + connect( view, &ArticleView::statusBarMessage, this, &ScanPopup::showStatusBarMessage ); + connect( view, &ArticleView::pageLoaded, this, &ScanPopup::pageLoaded ); + connect( view, &ArticleView::titleChanged, this, &ScanPopup::titleChanged ); + connect( view, &ArticleView::sendWordToInputLine, this, &ScanPopup::translateWord ); + + int index = tabWidget->addTab( view, name ); + tabWidget->setCurrentIndex( index ); + + view->load( url, name ); } bool ScanPopup::isWordPresentedInFavorites( const QString & word ) const diff --git a/src/ui/scanpopup.hh b/src/ui/scanpopup.hh index 57ef329371..ebac0b6324 100644 --- a/src/ui/scanpopup.hh +++ b/src/ui/scanpopup.hh @@ -17,6 +17,7 @@ #include #include "groupcombobox.hh" #include "translatebox.hh" +#include "maintabwidget.hh" #ifdef WITH_X11 #include "scanflag.hh" #endif @@ -93,6 +94,7 @@ public slots: void editGroupRequested(); void setGroupByName( const QString & name ) const; + void openWebsiteInNewTab( QString name, QString url, QString dictId, bool isPopup, QString word = QString() ); #ifdef WITH_X11 void showEngagePopup(); @@ -138,11 +140,13 @@ private: QToolBar * foundBar; QActionGroup * actionGroup = nullptr; MainStatusBar * mainStatusBar; + MainTabWidget * tabWidget; + ArticleNetworkAccessManager & articleNetMgr; /// Fonts saved before words zooming is in effect, so it could be reset back. QFont wordListDefaultFont, translateLineDefaultFont, groupListDefaultFont; #ifdef WITH_X11 - ScanFlag * scanFlag; + ScanFlag * scanFlag = nullptr; #endif bool mouseEnteredOnce = false; @@ -181,7 +185,7 @@ private: virtual void moveEvent( QMoveEvent * ); /// Returns inputWord, chopped with appended ... if it's too long/ - QString elideInputWord(); + QString elideInputWord() const; void updateBackForwardButtons() const; @@ -189,6 +193,7 @@ private: void updateSuggestionList(); void updateSuggestionList( const QString & text ); + ArticleView * findArticleViewByDictId( const QString & dictId ); private slots: void currentGroupChanged( int ); void prefixMatchFinished(); @@ -231,6 +236,7 @@ private slots: void alwaysOnTopClicked( bool checked ); void titleChanged( ArticleView *, const QString & title ) const; + void activeArticleChanged( const ArticleView *, const QString & id ); void updateFoundInDictsList(); void onActionTriggered(); }; diff --git a/src/ui/translatebox.cc b/src/ui/translatebox.cc index 4a9b4aa676..96afc6aadc 100644 --- a/src/ui/translatebox.cc +++ b/src/ui/translatebox.cc @@ -10,6 +10,7 @@ #include #include #include +#include TranslateBox::TranslateBox( QWidget * parent ): QWidget( parent ), @@ -18,7 +19,7 @@ TranslateBox::TranslateBox( QWidget * parent ): { completer = new QCompleter( words, this ); resize( 200, 90 ); - QSizePolicy sizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ); + QSizePolicy sizePolicy( QSizePolicy::Maximum, QSizePolicy::Preferred ); setSizePolicy( sizePolicy ); setFocusProxy( translate_line ); @@ -32,7 +33,7 @@ TranslateBox::TranslateBox( QWidget * parent ): layout->setContentsMargins( 0, 0, 0, 0 ); layout->addWidget( translate_line ); - auto dropdown = new QAction( QIcon( ":/icons/1downarrow.svg" ), tr( "Drop-down" ), this ); + dropdown = new QAction( QIcon( ":/icons/1downarrow.svg" ), tr( "Drop-down" ), this ); connect( dropdown, &QAction::triggered, this, &TranslateBox::rightButtonClicked ); translate_line->addAction( dropdown, QLineEdit::TrailingPosition ); @@ -91,6 +92,22 @@ void TranslateBox::setModel( QStringList & _words ) } ); } +void TranslateBox::setNoResults( bool noResults ) +{ + if ( noResults ) { + QIcon icon( ":/icons/1downarrow.svg" ); + QPixmap pixmap = icon.pixmap( 32, 32 ); + QPainter painter( &pixmap ); + painter.setCompositionMode( QPainter::CompositionMode_SourceIn ); + painter.fillRect( pixmap.rect(), QColor( 255, 0, 0, 200 ) ); + painter.end(); + dropdown->setIcon( QIcon( pixmap ) ); + } + else { + dropdown->setIcon( QIcon( ":/icons/1downarrow.svg" ) ); + } +} + void TranslateBox::showPopup() { if ( m_popupEnabled ) { diff --git a/src/ui/translatebox.hh b/src/ui/translatebox.hh index 272d0a8b53..62845a6c8e 100644 --- a/src/ui/translatebox.hh +++ b/src/ui/translatebox.hh @@ -22,6 +22,7 @@ public: void setSizePolicy( QSizePolicy::Policy hor, QSizePolicy::Policy ver ); void setModel( QStringList & _words ); + void setNoResults( bool noResults ); public slots: void setPopupEnabled( bool enable ); @@ -35,6 +36,7 @@ private slots: private: QLineEdit * translate_line; + QAction * dropdown; bool m_popupEnabled; QCompleter * completer; QStringList words; diff --git a/src/weburlrequestinterceptor.cc b/src/weburlrequestinterceptor.cc index 86abfbe7c0..eb5e2f7174 100644 --- a/src/weburlrequestinterceptor.cc +++ b/src/weburlrequestinterceptor.cc @@ -10,9 +10,6 @@ WebUrlRequestInterceptor::WebUrlRequestInterceptor( QObject * p ): void WebUrlRequestInterceptor::interceptRequest( QWebEngineUrlRequestInfo & info ) { auto url = info.requestUrl(); - if ( url.scheme().startsWith( Config::WEBSITE_PROXY_PREFIX ) ) { - url.setScheme( url.scheme().mid( 7 ) ); - } // When content is loaded inside GoldenDict's article view, we might face CORS issues. // Setting Origin and Referer headers can help bypass some CORS restrictions. @@ -20,15 +17,21 @@ void WebUrlRequestInterceptor::interceptRequest( QWebEngineUrlRequestInfo & info info.setHttpHeader( "origin", Utils::Url::getSchemeAndHost( url ).toUtf8() ); info.setHttpHeader( "referer", url.url().toUtf8() ); } + if ( GlobalBroadcaster::instance()->getPreference()->disallowContentFromOtherSites && Utils::isExternalLink( url ) ) { // Block file:// links to prevent local file access if ( url.scheme() == "file" ) { info.block( true ); return; } - auto hostBase = Utils::Url::extractBaseDomain( url.host() ); - if ( GlobalBroadcaster::instance()->existedInWhitelist( hostBase ) ) { - //whitelist url does not block + + if ( info.resourceType() == QWebEngineUrlRequestInfo::ResourceTypeMainFrame ) { + return; + } + if ( GlobalBroadcaster::instance()->existedInHostWhitelist( Utils::Url::extractBaseDomain( url.host() ) ) + || GlobalBroadcaster::instance()->existedInRefererWhitelist( + Utils::Url::extractBaseDomain( info.firstPartyUrl().host() ) ) ) { + // Target host or referring site is in respective whitelist - do not block return; } if ( info.resourceType() == QWebEngineUrlRequestInfo::ResourceTypeImage diff --git a/website/docs/manage_sources.md b/website/docs/manage_sources.md index 8dd3bc0fb7..6e46a87efd 100644 --- a/website/docs/manage_sources.md +++ b/website/docs/manage_sources.md @@ -55,6 +55,18 @@ The query word can be inserted into the URL using the following placeholders: | %GDWORD% | UTF-8 | +### Open in New Tab + +By default, website dictionaries are embedded directly into the article view using an iframe. If you prefer to open a website in a separate tab within GoldenDict-ng: + +1. Go to **Preferences -> Interface**. +2. Enable **Open websites in a new tab**. + +When this option is enabled: +- Websites will load in their own dedicated tabs instead of inside the article definition page. +- [Website Scripting](./topic_website_scripting.md) can be used to customize these pages. +- The layout is often cleaner as it bypasses iframe-related styling issues. + ## DICT servers Here you can add servers which use the DICT protocol. To add such a server, you should set its URL, name for the dictionaries list, server bases list, search strategies list, and set a mark in the "Enabled" column. If the bases list is empty, GoldenDict will use all server bases. If the search strategies list is empty, GoldenDict will use the "prefix" strategy (comparing the first part of the word). diff --git a/website/docs/topic_wayland.md b/website/docs/topic_wayland.md index a15d7615f7..6a4450ceee 100644 --- a/website/docs/topic_wayland.md +++ b/website/docs/topic_wayland.md @@ -1,16 +1,53 @@ -Environment variable `GOLDENDICT_FORCE_WAYLAND` can be used to force GD to run in Wayland mode, like `env GOLDENDICT_FORCE_WAYLAND=1 goldendict`. +# Wayland Support and Configuration -!!! danger "Don't use unless you know!" - This flag only guarantees GD to run in wayland mode and won't crash, but nothing more. +GoldenDict-ng supports running both natively on **Wayland** and via **XWayland (X11)**. - Enable this will break popup, global hotkeys and probably other things. +Since version 25.12.0, the application defaults to native Wayland on Wayland sessions to provide the best HiDPI and fractional scaling experience. However, due to Wayland's security design, certain features like global hotkeys and screen-grabbing popups may require switching back to X11 mode. -## Current reality +## Mode Selection Hardware -!!! note "Help wanted" - Need help to redesign popup for wayland. +The display mode is determined by environment variables at startup. You can specify your preference using the following flags: -Popup is implemented with `querying mouse cursor's position` and `setting a window's absolute global position`. -Wayland does not support both by design and philosophy. +| Mode | Environment Variable | Best For | +| :--- | :--- | :--- | +| **Native Wayland** (Default) | (None) or `GOLDENDICT_FORCE_WAYLAND=1` | HiDPI screens, smooth scaling, security. | +| **XWayland (X11)** | `GOLDENDICT_FORCE_XCB=1` | Global hotkeys, advanced ScanPopup (ScanFlag). | -Wayland does not support registering global hotkeys until very recently, but a reasonable wayland desktop environment should provide some way to bind keys to commands globally. \ No newline at end of file +### How to Switch + +#### 1. Native Wayland (Default) +By default, the app will try to run as a native Wayland client. If you want to force it explicitly: +```bash +env GOLDENDICT_FORCE_WAYLAND=1 goldendict +``` + +#### 2. XWayland / X11 Mode (Recommended for Hotkeys) +If you need global hotkeys (`Ctrl+C+C` etc.) or the "Scan Flag" feature to work across windows, run the app in X11 mode: +```bash +env GOLDENDICT_FORCE_XCB=1 goldendict +``` + +### Flatpak Configuration +If you are using the Flatpak version, you can use **Flatseal** or the command line to set these variables: +```bash +# Force X11 mode for Flatpak +flatpak override --env=GOLDENDICT_FORCE_XCB=1 io.github.xiaoyifang.goldendict_ng +``` + +--- + +## Technical Comparison + +| Feature | Native Wayland | XWayland (X11) | +| :--- | :---: | :---: | +| **HiDPI / Sharp Text** | ⭐ Excellent | ⚠️ May be blurry | +| **Global Hotkeys** | ❌ Not Supported | ✅ Fully Supported | +| **Scan Flag (Small Flag)** | ❌ Disabled | ✅ Enabled | +| **Window Positioning** | ⚠️ Limited by compositor | ✅ Precise | +| **Input Method (IME)** | ✅ Supported (Qt 6) | ✅ Supported | + +!!! danger "Global Hotkeys on Wayland" + Native Wayland does not allow applications to listen to keyboard events globally. If you rely on `Ctrl+C+C` to trigger lookups from other apps, you **must** use X11 mode (`GOLDENDICT_FORCE_XCB=1`). + +!!! tip "Workaround for Wayland Hotkeys" + Users on KDE or GNOME can manually bind a custom system shortcut to a command that sends a word to GoldenDict, for example: `goldendict "selection"`. \ No newline at end of file diff --git a/website/docs/topic_website_whitelist.md b/website/docs/topic_website_whitelist.md new file mode 100644 index 0000000000..7c060217eb --- /dev/null +++ b/website/docs/topic_website_whitelist.md @@ -0,0 +1,33 @@ +# Website Whitelist + +GoldenDict-ng by default blocks external content (like cross-domain scripts, IFrames, etc.) from websites loaded in the article view for security reasons. However, some websites require these resources to function correctly (e.g., Google Translate loading fonts or scripts from `gstatic.com`). + +The `whitelist` parameter allows you to tell GoldenDict-ng to trust a specific website and allow it to load its sub-resources. + +## How it works + +When you add the `whitelist` parameter to a website's URL template: + +1. GoldenDict-ng adds the website's host to a **Referer Whitelist**. +2. Any request initiated by this website (where the `Referer` matches the whitelisted host) will be allowed by the internal WebEngine interceptor. + + +## How to enable + +Append `whitelist=1` (or any value) to your website URL template in the **Edit | Dictionaries -> Websites** tab. + +!!! tip "Display Modes" + The `whitelist` feature is particularly useful when websites are **embedded** in the article view (default behavior). In this mode, GoldenDict-ng's security policy is most restrictive. If you encounter blocked resources, the whitelist can resolve them. + + If you use the **Open in New Tab** mode (configured in Preferences), the website has more freedom, but the whitelist still helps GoldenDict-ng identify trusted domains. + +### Examples + +| Dictionary Name | URL Template | +|-----------------|------------------------------------------------------------------------------| +| Google Translate| `https://translate.google.com/?sl=auto&tl=zh-CN&text=%GDWORD%&op=translate&whitelist=1` | +| Wikipedia | `https://en.wikipedia.org/wiki/%GDWORD%?whitelist=true` | + +## Security Note + +Only use the `whitelist` parameter for websites you trust. Enabling it allows the website to load third-party scripts and resources that would otherwise be blocked by GoldenDict-ng's security policies. diff --git a/website/mkdocs.yml b/website/mkdocs.yml index 4aaec8ab3d..8bdd071f0a 100644 --- a/website/mkdocs.yml +++ b/website/mkdocs.yml @@ -41,6 +41,7 @@ nav: - External Programs as Dict: howto/how to add a program as dictionary.md - Custom Stylesheet & JavaScript: topic_userstyle.md - Website Scripting: topic_website_scripting.md + - Website Whitelist: topic_website_whitelist.md - Portable Mode: topic_portablemode.md - Custom transliteration: topic_transliteration.md - Customize Dictionary: custom_dictionary.md