From c404b231c2128e75ca929be3e01c020ae2831860 Mon Sep 17 00:00:00 2001 From: Salvo 'LtWorf' Tomaselli Date: Fri, 17 Jan 2025 10:20:46 +0100 Subject: [PATCH 1/1] Import kalgebra_24.12.1.orig.tar.xz [dgit import orig kalgebra_24.12.1.orig.tar.xz] --- .flatpak-manifest.json | 64 + .flatpak-manifest.json.license | 2 + .git-blame-ignore-revs | 1 + .gitignore | 29 + .gitlab-ci.yml | 11 + .kde-ci.yml | 24 + CMakeLists.txt | 102 ++ CMakePresets.json | 83 + COPYING | 339 ++++ COPYING.DOC | 397 +++++ COPYING.LIB | 481 +++++ LICENSES/CC0-1.0.txt | 121 ++ LICENSES/GPL-2.0-or-later.txt | 117 ++ Mainpage.dox | 5 + TODO | 17 + android/AndroidManifest.xml | 35 + android/res/drawable/icon.png | Bin 0 -> 1734 bytes android/res/values/strings.xml | 4 + calgebra/CMakeLists.txt | 19 + calgebra/main.cpp | 161 ++ calgebra/test_calgebra.py | 18 + cmake/COPYING-CMAKE-SCRIPTS | 22 + cmake/FindReadline.cmake | 12 + doc/CMakeLists.txt | 4 + doc/commands.docbook | 429 +++++ doc/index.docbook | 540 ++++++ doc/kalgebra-2dgraph-window.png | Bin 0 -> 41762 bytes doc/kalgebra-3dgraph-window.png | Bin 0 -> 54228 bytes doc/kalgebra-console-window.png | Bin 0 -> 48997 bytes doc/kalgebra-dictionary-window.png | Bin 0 -> 60041 bytes doc/kalgebra-main-window.png | Bin 0 -> 46156 bytes doc/view-fullscreen.png | Bin 0 -> 514 bytes icons/64-apps-kalgebra.png | Bin 0 -> 1734 bytes icons/CMakeLists.txt | 5 + icons/sc-apps-kalgebra.svgz | 335 ++++ logo.png | Bin 0 -> 4912 bytes mobile/CMakeLists.txt | 39 + mobile/Messages.sh | 2 + mobile/clipboard.cpp | 129 ++ mobile/clipboard.h | 56 + mobile/content/resources/kde-edu-logo.png | Bin 0 -> 16041 bytes mobile/content/ui/About.qml | 11 + mobile/content/ui/Console.qml | 204 +++ mobile/content/ui/Dictionary.qml | 77 + mobile/content/ui/Plot2D.qml | 81 + mobile/content/ui/Plot3D.qml | 69 + mobile/content/ui/TableResultPage.qml | 23 + mobile/content/ui/Tables.qml | 97 + mobile/content/ui/VariablesView.qml | 23 + mobile/content/ui/controls/AddButton.qml | 39 + mobile/content/ui/controls/AddPlotDialog.qml | 143 ++ .../content/ui/controls/ExpressionInput.qml | 120 ++ mobile/content/ui/controls/RealInput.qml | 29 + mobile/content/ui/main.qml | 158 ++ mobile/kalgebramobile.cpp | 90 + mobile/kalgebramobile.h | 64 + mobile/main.cpp | 64 + mobile/org.kde.kalgebramobile.appdata.xml | 160 ++ mobile/org.kde.kalgebramobile.desktop | 158 ++ mobile/resources.qrc | 20 + plasmoids/CMakeLists.txt | 1 + .../graphsplasmoid/contents/ui/config.ui | 28 + plasmoids/graphsplasmoid/contents/ui/main.qml | 73 + plasmoids/graphsplasmoid/metadata.json | 137 ++ po/ar/kalgebra.po | 899 ++++++++++ po/ar/kalgebramobile.po | 300 ++++ po/ast/kalgebra.po | 437 +++++ po/ast/kalgebramobile.po | 293 +++ po/be/kalgebra.po | 547 ++++++ po/bg/kalgebra.po | 441 +++++ po/bg/kalgebramobile.po | 297 ++++ po/bs/kalgebra.po | 505 ++++++ po/ca/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/ca/docs/kalgebra/index.docbook | 907 ++++++++++ .../docs/kalgebra/kalgebra-2dgraph-window.png | Bin 0 -> 58801 bytes .../docs/kalgebra/kalgebra-3dgraph-window.png | Bin 0 -> 53845 bytes .../kalgebra/kalgebra-dictionary-window.png | Bin 0 -> 76811 bytes po/ca/docs/kalgebra/kalgebra-main-window.png | Bin 0 -> 69564 bytes po/ca/kalgebra.po | 442 +++++ po/ca/kalgebramobile.po | 297 ++++ po/ca@valencia/kalgebra.po | 442 +++++ po/ca@valencia/kalgebramobile.po | 297 ++++ po/cs/kalgebra.po | 438 +++++ po/cs/kalgebramobile.po | 293 +++ po/csb/kalgebra.po | 851 +++++++++ po/da/kalgebra.po | 1120 ++++++++++++ po/de/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/de/docs/kalgebra/index.docbook | 937 ++++++++++ po/de/docs/kalgebra/kalgebra-main-window.png | Bin 0 -> 16345 bytes po/de/kalgebra.po | 1183 +++++++++++++ po/de/kalgebramobile.po | 302 ++++ po/el/kalgebra.po | 1147 ++++++++++++ po/el/kalgebramobile.po | 300 ++++ po/en_GB/kalgebra.po | 1165 ++++++++++++ po/en_GB/kalgebramobile.po | 326 ++++ po/eo/kalgebra.po | 438 +++++ po/eo/kalgebramobile.po | 294 ++++ po/es/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/es/docs/kalgebra/index.docbook | 941 ++++++++++ po/es/docs/kalgebra/kalgebra-main-window.png | Bin 0 -> 30407 bytes po/es/kalgebra.po | 485 +++++ po/es/kalgebramobile.po | 328 ++++ po/et/docs/kalgebra/commands.docbook | 1478 ++++++++++++++++ po/et/docs/kalgebra/index.docbook | 729 ++++++++ po/et/kalgebra.po | 1169 ++++++++++++ po/et/kalgebramobile.po | 317 ++++ po/eu/kalgebra.po | 849 +++++++++ po/eu/kalgebramobile.po | 302 ++++ po/fa/kalgebra.po | 437 +++++ po/fi/kalgebra.po | 1020 +++++++++++ po/fi/kalgebramobile.po | 325 ++++ po/fr/kalgebra.po | 1063 +++++++++++ po/fr/kalgebramobile.po | 330 ++++ po/ga/kalgebra.po | 999 +++++++++++ po/gl/kalgebra.po | 501 ++++++ po/gl/kalgebramobile.po | 322 ++++ po/he/kalgebra.po | 438 +++++ po/he/kalgebramobile.po | 294 ++++ po/hi/kalgebra.po | 865 +++++++++ po/hne/kalgebra.po | 837 +++++++++ po/hr/kalgebra.po | 948 ++++++++++ po/hu/kalgebra.po | 498 ++++++ po/hu/kalgebramobile.po | 293 +++ po/ia/kalgebra.po | 437 +++++ po/ia/kalgebramobile.po | 293 +++ po/it/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/it/docs/kalgebra/index.docbook | 943 ++++++++++ po/it/kalgebra.po | 1134 ++++++++++++ po/it/kalgebramobile.po | 318 ++++ po/ja/kalgebra.po | 450 +++++ po/ja/kalgebramobile.po | 290 +++ po/ka/kalgebra.po | 438 +++++ po/ka/kalgebramobile.po | 300 ++++ po/kk/kalgebra.po | 1035 +++++++++++ po/km/kalgebra.po | 530 ++++++ po/ko/kalgebra.po | 493 ++++++ po/ko/kalgebramobile.po | 299 ++++ po/lt/kalgebra.po | 473 +++++ po/lt/kalgebramobile.po | 294 ++++ po/lv/kalgebra.po | 1086 ++++++++++++ po/mai/kalgebra.po | 554 ++++++ po/ml/kalgebra.po | 731 ++++++++ po/ml/kalgebramobile.po | 294 ++++ po/mr/kalgebra.po | 465 +++++ po/nb/kalgebra.po | 440 +++++ po/nds/kalgebra.po | 1202 +++++++++++++ po/nl/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/nl/docs/kalgebra/index.docbook | 903 ++++++++++ po/nl/kalgebra.po | 1134 ++++++++++++ po/nl/kalgebramobile.po | 332 ++++ po/nn/kalgebra.po | 440 +++++ po/nn/kalgebramobile.po | 294 ++++ po/oc/kalgebra.po | 553 ++++++ po/pa/kalgebra.po | 640 +++++++ po/pa/kalgebramobile.po | 311 ++++ po/pl/kalgebra.po | 1151 ++++++++++++ po/pl/kalgebramobile.po | 323 ++++ po/pt/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/pt/docs/kalgebra/index.docbook | 711 ++++++++ po/pt/kalgebra.po | 435 +++++ po/pt/kalgebramobile.po | 307 ++++ po/pt_BR/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/pt_BR/docs/kalgebra/index.docbook | 730 ++++++++ .../docs/kalgebra/kalgebra-main-window.png | Bin 0 -> 46236 bytes po/pt_BR/kalgebra.po | 442 +++++ po/pt_BR/kalgebramobile.po | 325 ++++ po/ro/kalgebra.po | 1069 +++++++++++ po/ru/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/ru/docs/kalgebra/index.docbook | 985 +++++++++++ po/ru/docs/kalgebra/kalgebra-main-window.png | Bin 0 -> 27722 bytes po/ru/kalgebra.po | 1133 ++++++++++++ po/ru/kalgebramobile.po | 302 ++++ po/se/kalgebra.po | 439 +++++ po/si/kalgebra.po | 441 +++++ po/sk/kalgebra.po | 464 +++++ po/sk/kalgebramobile.po | 318 ++++ po/sl/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/sl/docs/kalgebra/index.docbook | 935 ++++++++++ po/sl/kalgebra.po | 469 +++++ po/sl/kalgebramobile.po | 301 ++++ po/sv/docs/kalgebra/commands.docbook | 1566 ++++++++++++++++ po/sv/docs/kalgebra/index.docbook | 935 ++++++++++ po/sv/kalgebra.po | 1139 ++++++++++++ po/sv/kalgebramobile.po | 326 ++++ po/te/kalgebra.po | 478 +++++ po/tg/kalgebra.po | 883 ++++++++++ po/tr/kalgebra.po | 462 +++++ po/tr/kalgebramobile.po | 294 ++++ po/ug/kalgebra.po | 563 ++++++ po/uk/docs/kalgebra/commands.docbook | 1568 +++++++++++++++++ po/uk/docs/kalgebra/index.docbook | 915 ++++++++++ .../docs/kalgebra/kalgebra-2dgraph-window.png | Bin 0 -> 16499 bytes .../docs/kalgebra/kalgebra-3dgraph-window.png | Bin 0 -> 19571 bytes .../docs/kalgebra/kalgebra-console-window.png | Bin 0 -> 15938 bytes .../kalgebra/kalgebra-dictionary-window.png | Bin 0 -> 17276 bytes po/uk/docs/kalgebra/kalgebra-main-window.png | Bin 0 -> 14995 bytes po/uk/kalgebra.po | 1175 ++++++++++++ po/uk/kalgebramobile.po | 337 ++++ po/zh_CN/kalgebra.po | 439 +++++ po/zh_CN/kalgebramobile.po | 293 +++ po/zh_TW/kalgebra.po | 445 +++++ po/zh_TW/kalgebramobile.po | 300 ++++ snapcraft.yaml | 103 ++ src/CMakeLists.txt | 37 + src/Messages.sh | 2 + src/askname.h | 58 + src/consolehtml.cpp | 253 +++ src/consolehtml.h | 123 ++ src/consolemodel.cpp | 201 +++ src/consolemodel.h | 91 + src/dictionary.cpp | 123 ++ src/dictionary.h | 68 + src/functionedit.cpp | 326 ++++ src/functionedit.h | 147 ++ src/kalgebra.cpp | 769 ++++++++ src/kalgebra.h | 135 ++ src/kalgebra.xml | 174 ++ src/main.cpp | 52 + src/org.kde.kalgebra.appdata.xml | 200 +++ src/org.kde.kalgebra.desktop | 183 ++ src/varedit.cpp | 135 ++ src/varedit.h | 73 + src/variablesdelegate.cpp | 41 + src/variablesdelegate.h | 35 + src/viewportwidget.cpp | 77 + src/viewportwidget.h | 49 + utils/CMakeLists.txt | 2 + utils/main.cpp | 58 + 228 files changed, 94251 insertions(+) create mode 100644 .flatpak-manifest.json create mode 100644 .flatpak-manifest.json.license create mode 100644 .git-blame-ignore-revs create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 .kde-ci.yml create mode 100644 CMakeLists.txt create mode 100644 CMakePresets.json create mode 100644 COPYING create mode 100644 COPYING.DOC create mode 100644 COPYING.LIB create mode 100644 LICENSES/CC0-1.0.txt create mode 100644 LICENSES/GPL-2.0-or-later.txt create mode 100644 Mainpage.dox create mode 100644 TODO create mode 100644 android/AndroidManifest.xml create mode 100644 android/res/drawable/icon.png create mode 100644 android/res/values/strings.xml create mode 100644 calgebra/CMakeLists.txt create mode 100644 calgebra/main.cpp create mode 100644 calgebra/test_calgebra.py create mode 100644 cmake/COPYING-CMAKE-SCRIPTS create mode 100644 cmake/FindReadline.cmake create mode 100644 doc/CMakeLists.txt create mode 100644 doc/commands.docbook create mode 100644 doc/index.docbook create mode 100644 doc/kalgebra-2dgraph-window.png create mode 100644 doc/kalgebra-3dgraph-window.png create mode 100644 doc/kalgebra-console-window.png create mode 100644 doc/kalgebra-dictionary-window.png create mode 100644 doc/kalgebra-main-window.png create mode 100644 doc/view-fullscreen.png create mode 100644 icons/64-apps-kalgebra.png create mode 100644 icons/CMakeLists.txt create mode 100644 icons/sc-apps-kalgebra.svgz create mode 100644 logo.png create mode 100644 mobile/CMakeLists.txt create mode 100755 mobile/Messages.sh create mode 100644 mobile/clipboard.cpp create mode 100644 mobile/clipboard.h create mode 100644 mobile/content/resources/kde-edu-logo.png create mode 100644 mobile/content/ui/About.qml create mode 100644 mobile/content/ui/Console.qml create mode 100755 mobile/content/ui/Dictionary.qml create mode 100755 mobile/content/ui/Plot2D.qml create mode 100755 mobile/content/ui/Plot3D.qml create mode 100644 mobile/content/ui/TableResultPage.qml create mode 100644 mobile/content/ui/Tables.qml create mode 100644 mobile/content/ui/VariablesView.qml create mode 100644 mobile/content/ui/controls/AddButton.qml create mode 100755 mobile/content/ui/controls/AddPlotDialog.qml create mode 100644 mobile/content/ui/controls/ExpressionInput.qml create mode 100644 mobile/content/ui/controls/RealInput.qml create mode 100644 mobile/content/ui/main.qml create mode 100644 mobile/kalgebramobile.cpp create mode 100644 mobile/kalgebramobile.h create mode 100644 mobile/main.cpp create mode 100644 mobile/org.kde.kalgebramobile.appdata.xml create mode 100644 mobile/org.kde.kalgebramobile.desktop create mode 100644 mobile/resources.qrc create mode 100644 plasmoids/CMakeLists.txt create mode 100644 plasmoids/graphsplasmoid/contents/ui/config.ui create mode 100644 plasmoids/graphsplasmoid/contents/ui/main.qml create mode 100644 plasmoids/graphsplasmoid/metadata.json create mode 100644 po/ar/kalgebra.po create mode 100644 po/ar/kalgebramobile.po create mode 100644 po/ast/kalgebra.po create mode 100644 po/ast/kalgebramobile.po create mode 100644 po/be/kalgebra.po create mode 100644 po/bg/kalgebra.po create mode 100644 po/bg/kalgebramobile.po create mode 100644 po/bs/kalgebra.po create mode 100644 po/ca/docs/kalgebra/commands.docbook create mode 100644 po/ca/docs/kalgebra/index.docbook create mode 100644 po/ca/docs/kalgebra/kalgebra-2dgraph-window.png create mode 100644 po/ca/docs/kalgebra/kalgebra-3dgraph-window.png create mode 100644 po/ca/docs/kalgebra/kalgebra-dictionary-window.png create mode 100644 po/ca/docs/kalgebra/kalgebra-main-window.png create mode 100644 po/ca/kalgebra.po create mode 100644 po/ca/kalgebramobile.po create mode 100644 po/ca@valencia/kalgebra.po create mode 100644 po/ca@valencia/kalgebramobile.po create mode 100644 po/cs/kalgebra.po create mode 100644 po/cs/kalgebramobile.po create mode 100644 po/csb/kalgebra.po create mode 100644 po/da/kalgebra.po create mode 100644 po/de/docs/kalgebra/commands.docbook create mode 100644 po/de/docs/kalgebra/index.docbook create mode 100644 po/de/docs/kalgebra/kalgebra-main-window.png create mode 100644 po/de/kalgebra.po create mode 100644 po/de/kalgebramobile.po create mode 100644 po/el/kalgebra.po create mode 100644 po/el/kalgebramobile.po create mode 100644 po/en_GB/kalgebra.po create mode 100644 po/en_GB/kalgebramobile.po create mode 100644 po/eo/kalgebra.po create mode 100644 po/eo/kalgebramobile.po create mode 100644 po/es/docs/kalgebra/commands.docbook create mode 100644 po/es/docs/kalgebra/index.docbook create mode 100644 po/es/docs/kalgebra/kalgebra-main-window.png create mode 100644 po/es/kalgebra.po create mode 100644 po/es/kalgebramobile.po create mode 100644 po/et/docs/kalgebra/commands.docbook create mode 100644 po/et/docs/kalgebra/index.docbook create mode 100644 po/et/kalgebra.po create mode 100644 po/et/kalgebramobile.po create mode 100644 po/eu/kalgebra.po create mode 100644 po/eu/kalgebramobile.po create mode 100644 po/fa/kalgebra.po create mode 100644 po/fi/kalgebra.po create mode 100644 po/fi/kalgebramobile.po create mode 100644 po/fr/kalgebra.po create mode 100644 po/fr/kalgebramobile.po create mode 100644 po/ga/kalgebra.po create mode 100644 po/gl/kalgebra.po create mode 100644 po/gl/kalgebramobile.po create mode 100644 po/he/kalgebra.po create mode 100644 po/he/kalgebramobile.po create mode 100644 po/hi/kalgebra.po create mode 100644 po/hne/kalgebra.po create mode 100644 po/hr/kalgebra.po create mode 100644 po/hu/kalgebra.po create mode 100644 po/hu/kalgebramobile.po create mode 100644 po/ia/kalgebra.po create mode 100644 po/ia/kalgebramobile.po create mode 100644 po/it/docs/kalgebra/commands.docbook create mode 100644 po/it/docs/kalgebra/index.docbook create mode 100644 po/it/kalgebra.po create mode 100644 po/it/kalgebramobile.po create mode 100644 po/ja/kalgebra.po create mode 100644 po/ja/kalgebramobile.po create mode 100644 po/ka/kalgebra.po create mode 100644 po/ka/kalgebramobile.po create mode 100644 po/kk/kalgebra.po create mode 100644 po/km/kalgebra.po create mode 100644 po/ko/kalgebra.po create mode 100644 po/ko/kalgebramobile.po create mode 100644 po/lt/kalgebra.po create mode 100644 po/lt/kalgebramobile.po create mode 100644 po/lv/kalgebra.po create mode 100644 po/mai/kalgebra.po create mode 100644 po/ml/kalgebra.po create mode 100644 po/ml/kalgebramobile.po create mode 100644 po/mr/kalgebra.po create mode 100644 po/nb/kalgebra.po create mode 100644 po/nds/kalgebra.po create mode 100644 po/nl/docs/kalgebra/commands.docbook create mode 100644 po/nl/docs/kalgebra/index.docbook create mode 100644 po/nl/kalgebra.po create mode 100644 po/nl/kalgebramobile.po create mode 100644 po/nn/kalgebra.po create mode 100644 po/nn/kalgebramobile.po create mode 100644 po/oc/kalgebra.po create mode 100644 po/pa/kalgebra.po create mode 100644 po/pa/kalgebramobile.po create mode 100644 po/pl/kalgebra.po create mode 100644 po/pl/kalgebramobile.po create mode 100644 po/pt/docs/kalgebra/commands.docbook create mode 100644 po/pt/docs/kalgebra/index.docbook create mode 100644 po/pt/kalgebra.po create mode 100644 po/pt/kalgebramobile.po create mode 100644 po/pt_BR/docs/kalgebra/commands.docbook create mode 100644 po/pt_BR/docs/kalgebra/index.docbook create mode 100644 po/pt_BR/docs/kalgebra/kalgebra-main-window.png create mode 100644 po/pt_BR/kalgebra.po create mode 100644 po/pt_BR/kalgebramobile.po create mode 100644 po/ro/kalgebra.po create mode 100644 po/ru/docs/kalgebra/commands.docbook create mode 100644 po/ru/docs/kalgebra/index.docbook create mode 100644 po/ru/docs/kalgebra/kalgebra-main-window.png create mode 100644 po/ru/kalgebra.po create mode 100644 po/ru/kalgebramobile.po create mode 100644 po/se/kalgebra.po create mode 100644 po/si/kalgebra.po create mode 100644 po/sk/kalgebra.po create mode 100644 po/sk/kalgebramobile.po create mode 100644 po/sl/docs/kalgebra/commands.docbook create mode 100644 po/sl/docs/kalgebra/index.docbook create mode 100644 po/sl/kalgebra.po create mode 100644 po/sl/kalgebramobile.po create mode 100644 po/sv/docs/kalgebra/commands.docbook create mode 100644 po/sv/docs/kalgebra/index.docbook create mode 100644 po/sv/kalgebra.po create mode 100644 po/sv/kalgebramobile.po create mode 100644 po/te/kalgebra.po create mode 100644 po/tg/kalgebra.po create mode 100644 po/tr/kalgebra.po create mode 100644 po/tr/kalgebramobile.po create mode 100644 po/ug/kalgebra.po create mode 100644 po/uk/docs/kalgebra/commands.docbook create mode 100644 po/uk/docs/kalgebra/index.docbook create mode 100644 po/uk/docs/kalgebra/kalgebra-2dgraph-window.png create mode 100644 po/uk/docs/kalgebra/kalgebra-3dgraph-window.png create mode 100644 po/uk/docs/kalgebra/kalgebra-console-window.png create mode 100644 po/uk/docs/kalgebra/kalgebra-dictionary-window.png create mode 100644 po/uk/docs/kalgebra/kalgebra-main-window.png create mode 100644 po/uk/kalgebra.po create mode 100644 po/uk/kalgebramobile.po create mode 100644 po/zh_CN/kalgebra.po create mode 100644 po/zh_CN/kalgebramobile.po create mode 100644 po/zh_TW/kalgebra.po create mode 100644 po/zh_TW/kalgebramobile.po create mode 100644 snapcraft.yaml create mode 100644 src/CMakeLists.txt create mode 100755 src/Messages.sh create mode 100644 src/askname.h create mode 100644 src/consolehtml.cpp create mode 100644 src/consolehtml.h create mode 100644 src/consolemodel.cpp create mode 100644 src/consolemodel.h create mode 100644 src/dictionary.cpp create mode 100644 src/dictionary.h create mode 100644 src/functionedit.cpp create mode 100644 src/functionedit.h create mode 100644 src/kalgebra.cpp create mode 100644 src/kalgebra.h create mode 100644 src/kalgebra.xml create mode 100644 src/main.cpp create mode 100644 src/org.kde.kalgebra.appdata.xml create mode 100755 src/org.kde.kalgebra.desktop create mode 100644 src/varedit.cpp create mode 100644 src/varedit.h create mode 100644 src/variablesdelegate.cpp create mode 100644 src/variablesdelegate.h create mode 100644 src/viewportwidget.cpp create mode 100644 src/viewportwidget.h create mode 100644 utils/CMakeLists.txt create mode 100644 utils/main.cpp diff --git a/.flatpak-manifest.json b/.flatpak-manifest.json new file mode 100644 index 0000000..40dde2f --- /dev/null +++ b/.flatpak-manifest.json @@ -0,0 +1,64 @@ +{ + "id": "org.kde.kalgebra", + "runtime": "org.kde.Platform", + "runtime-version": "6.7", + "sdk": "org.kde.Sdk", + "base": "io.qt.qtwebengine.BaseApp", + "base-version": "6.6", + "command": "kalgebra", + "rename-icon": "kalgebra", + "copy-icon": true, + "finish-args": [ + "--share=ipc", + "--socket=fallback-x11", + "--socket=wayland", + "--device=dri" + ], + "separate-locales": false, + "modules": [ + { + "name": "analitza", + "buildsystem": "cmake-ninja", + "sources": [ + { + "type": "git", + "url": "https://invent.kde.org/education/analitza", + "branch": "master" + } + ], + "modules": [ + { + "name": "eigen", + "buildsystem": "cmake-ninja", + "builddir": true, + "sources": [ + { + "type": "archive", + "url": "https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.bz2", + "sha256": "b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626", + "x-checker-data": { + "type": "anitya", + "project-id": 666, + "stable-only": true, + "url-template": "https://gitlab.com/libeigen/eigen/-/archive/$version/eigen-$version.tar.bz2" + } + } + ] + } + ] + }, + { + "name": "kalgebra", + "buildsystem": "cmake-ninja", + "sources": [ + { + "type": "dir", + "path": "." + } + ], + "post-install": [ + "install -D /usr/share/icons/breeze/apps/48/kalgebra.svg /app/share/icons/hicolor/scalable/apps/kalgebra.svg" + ] + } + ] +} diff --git a/.flatpak-manifest.json.license b/.flatpak-manifest.json.license new file mode 100644 index 0000000..66f78fc --- /dev/null +++ b/.flatpak-manifest.json.license @@ -0,0 +1,2 @@ +# SPDX-FileCopyrightText: None +# SPDX-License-Identifier: CC0-1.0 diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..0b7e966 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1 @@ +69c4d87479370e90fb195b39f15303a5f4568960 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f8a1913 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +# Ignore the following files +*~ +*.[oa] +*.diff +*.kate-swp +*.kdev4 +.kdev_include_paths +*.kdevelop.pcs +*.moc +*.moc.cpp +*.orig +*.user +.*.swp +.swp.* +Doxyfile +Makefile +avail +random_seed +/build*/ +CMakeLists.txt.user* +*.unc-backup* +.cmake/ +/.clang-format +/compile_commands.json +.clangd +.cache +.idea +/cmake-build* +/.vscode/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..d1e80a5 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2021 Laurent Montel +# SPDX-License-Identifier: CC0-1.0 + +include: + - project: sysadmin/ci-utilities + file: + - /gitlab-templates/linux-qt6.yml + - /gitlab-templates/freebsd-qt6.yml + - /gitlab-templates/android-qt6.yml + - /gitlab-templates/flatpak.yml + - /gitlab-templates/clang-format.yml diff --git a/.kde-ci.yml b/.kde-ci.yml new file mode 100644 index 0000000..1bfc20c --- /dev/null +++ b/.kde-ci.yml @@ -0,0 +1,24 @@ +# SPDX-FileCopyrightText: None +# SPDX-License-Identifier: CC0-1.0 + +Dependencies: +- 'on': ['Linux/Qt6', 'FreeBSD/Qt6', 'Android/Qt6'] + 'require': + 'frameworks/extra-cmake-modules': '@latest-kf6' + 'frameworks/ki18n': '@latest-kf6' + 'frameworks/kcoreaddons': '@latest-kf6' + 'education/analitza': '@same' +- 'on': ['Linux/Qt6', 'FreeBSD/Qt6'] + 'require': + 'frameworks/kconfigwidgets': '@latest-kf6' + 'frameworks/kwidgetsaddons': '@latest-kf6' + 'frameworks/kdoctools': '@latest-kf6' + 'frameworks/kio': '@latest-kf6' + 'frameworks/kxmlgui': '@latest-kf6' + 'plasma/libplasma': '@latest-kf6' +- 'on': ['Android/Qt6'] + 'require': + 'frameworks/kirigami': '@latest-kf6' + +Options: + require-passing-tests-on: [ '@all' ] diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..65bb3ff --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,102 @@ +cmake_minimum_required(VERSION 3.16) + +# KDE Application Version, managed by release script +set(RELEASE_SERVICE_VERSION_MAJOR "24") +set(RELEASE_SERVICE_VERSION_MINOR "12") +set(RELEASE_SERVICE_VERSION_MICRO "1") +set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") + +project(kalgebra VERSION ${RELEASE_SERVICE_VERSION}) +set(KF_MIN_VERSION "6.3.0") +set(KDE_COMPILERSETTINGS_LEVEL "6.3.0") +find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${ECM_MODULE_PATH}) + +include(KDEInstallDirs) +include(KDECompilerSettings NO_POLICY_SCOPE) +include(KDECMakeSettings) +include(ECMInstallIcons) +include(ECMSetupVersion) +include(FeatureSummary) +include(ECMAddAppIcon) +include(ECMDeprecationSettings) +if (NOT ANDROID) + include(KDEClangFormat) + include(KDEGitCommitHooks) +endif() +set(QT_REQUIRED_VERSION "6.5.0") + +find_package(Qt6 ${QT_REQUIRED_VERSION} REQUIRED NO_MODULE COMPONENTS Qml Quick Xml Svg PrintSupport Test OpenGLWidgets) +find_package(Analitza6 REQUIRED) + +ecm_set_disabled_deprecation_versions(QT 6.8.0 + KF 6.5.0 +) + + +set(MOBILE_BACKEND "kde" CACHE STRING "Backend to install, currently. Check /mobile/plugins/widgets/*") + +include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}) + +set(CURSES_NEED_NCURSES TRUE) +find_package(Curses) +find_package(Readline) + +ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX KALGEBRA VERSION_HEADER kalgebra_version.h) + +set_package_properties(Readline PROPERTIES TYPE OPTIONAL + PURPOSE "Allows KAlgebra to provide a console interface." + URL "https://tiswww.case.edu/php/chet/readline/rltop.html") +set_package_properties(Curses PROPERTIES TYPE OPTIONAL + PURPOSE "Allows KAlgebra to provide a console interface." + URL "https://www.gnu.org/software/ncurses/") + +add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) +add_definitions(-DQT_NO_URL_CAST_FROM_STRING) +add_definitions(-DQT_NO_CAST_TO_ASCII) + +find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS I18n CoreAddons) +find_package(KF6 ${KF_MIN_VERSION} OPTIONAL_COMPONENTS ConfigWidgets WidgetsAddons KIO DocTools XmlGui) +find_package(Plasma) +find_package(Qt6WebEngineWidgets) + +if(KF6DocTools_FOUND AND Qt6WebEngineWidgets_FOUND AND KF6ConfigWidgets_FOUND AND KF6WidgetsAddons_FOUND AND KF6KIO_FOUND AND NOT CMAKE_SYSTEM MATCHES Android*) + add_subdirectory(src) +endif() + +if (Plasma_FOUND AND NOT CMAKE_SYSTEM MATCHES Android*) + add_subdirectory(plasmoids) +endif() + +add_subdirectory(icons) +add_subdirectory(mobile) + +if(READLINE_FOUND AND CURSES_FOUND) + add_subdirectory(calgebra) +endif() + +if(KF6DocTools_FOUND) + add_subdirectory(utils) + + add_custom_target(commandsdoc + ${CMAKE_CURRENT_BINARY_DIR}/utils/docbook_analitzacommands commands.docbook + DEPENDS docbook_analitzacommands + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/doc/ + COMMENT "Generating commands docbook information" + ) + + add_subdirectory(doc) +endif() + +ki18n_install(po) +if (KF6DocTools_FOUND) + kdoctools_install(po) +endif() +feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) + +if (NOT ANDROID) + file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES src/*.cpp src/*.h mobile/*.cpp mobile/*.h utils/*.cpp utils/*.h) + kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) + + kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) +endif() diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..22e3de7 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,83 @@ +{ + "version": 2, + "configurePresets": [ + { + "name": "dev", + "displayName": "Build as debug", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + } + }, + { + "name": "asan", + "displayName": "Build with Asan support.", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-asan", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "ECM_ENABLE_SANITIZERS" : "'address;undefined'", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + } + }, + { + "name": "unity", + "displayName": "Build with CMake unity support.", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-unity", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_UNITY_BUILD": "ON", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + } + }, + { + "name": "release", + "displayName": "Build as release mode.", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release" + } + }, + { + "name": "profile", + "displayName": "profile", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-profile", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + } + }, + { + "name": "clazy", + "displayName": "clazy", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-clazy", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + }, + "environment": { + "CXX": "clazy", + "CCACHE_DISABLE": "ON" + } + } + ], + "buildPresets": [ + { + "name": "dev", + "configurePreset": "dev" + }, + { + "name": "clazy", + "configurePreset": "clazy", + "environment": { + "CLAZY_CHECKS" : "level0,level1,detaching-member,ifndef-define-typo,isempty-vs-count,qrequiredresult-candidates,reserve-candidates,signal-with-return-value,unneeded-cast,function-args-by-ref,function-args-by-value,returning-void-expression,no-ctor-missing-parent-argument,isempty-vs-count,qhash-with-char-pointer-key,raw-environment-function,qproperty-type-mismatch,old-style-connect,qstring-allocations,container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,qstring-varargs,level2,detaching-member,heap-allocated-small-trivial-type,isempty-vs-count,qstring-varargs,qvariant-template-instantiation,raw-environment-function,reserve-candidates,signal-with-return-value,thread-with-slots,no-ctor-missing-parent-argument,no-missing-typeinfo", + "CCACHE_DISABLE" : "ON" + } + } + ] +} diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/COPYING.DOC b/COPYING.DOC new file mode 100644 index 0000000..71ec2c4 --- /dev/null +++ b/COPYING.DOC @@ -0,0 +1,397 @@ + GNU Free Documentation License + Version 1.2, November 2002 + + + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (Thus, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +https://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/COPYING.LIB b/COPYING.LIB new file mode 100644 index 0000000..5bc8fb2 --- /dev/null +++ b/COPYING.LIB @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/LICENSES/CC0-1.0.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/LICENSES/GPL-2.0-or-later.txt b/LICENSES/GPL-2.0-or-later.txt new file mode 100644 index 0000000..17cb286 --- /dev/null +++ b/LICENSES/GPL-2.0-or-later.txt @@ -0,0 +1,117 @@ +GNU GENERAL PUBLIC LICENSE +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. + + c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. + + one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author + + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. + +signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice diff --git a/Mainpage.dox b/Mainpage.dox new file mode 100644 index 0000000..0322cd8 --- /dev/null +++ b/Mainpage.dox @@ -0,0 +1,5 @@ +/** @mainpage KAlgebra + +Here you will find the API documentation both for KAlgebra's Analitza library and KAlgebra code. + +*/ diff --git a/TODO b/TODO new file mode 100644 index 0000000..1fa5c2c --- /dev/null +++ b/TODO @@ -0,0 +1,17 @@ + +Analitza: +- Partial derivatives +- Simplification for x^3*3/x-> 3*x^2 + +Expression: +- Copy on write for m_tree + +2D: +- Shared functions Console <-> 2D +- Sort 2D functions +- Moving on small viewport step is too large. +- Review keyBindings for zooming out. + +Doc: +- Document about piecewise +- Document about anything else diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml new file mode 100644 index 0000000..ca3c9bb --- /dev/null +++ b/android/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/res/drawable/icon.png b/android/res/drawable/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a3c63ebace1df58abd88fcc946f364535713534 GIT binary patch literal 1734 zcmV;%208hOP)UO`O_!)M*pjGxxB#Gvh~`%(XpsEaAU2 zvVAji=G=SF|GZ`bV~jDz82@9axDy_K_W9FcC^9HK{qD)*%l@8@6ClE;#`uUa$!RqN zD6P>t6?uHTUl_riz5rHNNrnQ5 z6?Ew5dGcE=8a5S;S1OQc8XFZH`guF~M0^0&3i4EWbf@7}{gR<}RAKT?yr&&D_NiLm z<#4XE6P!?W?#?zC<5z`hwnlDt^xVjVsyjPDCkj|TnHGVOZy3QSAYzC@K@8%ZU=kW# z5fY?8m9vKdm6({M>|d`N7QRoSA8$V+>OPquZaRcl2M==GVJee za#$`ppMM!X_~?@!u9D=UK$Hicb1I$227sRAyX)rU1EReD{4F}JaweOLzE95-m|wgV zt4K47yPLc{IgakrH3IWbrWoo$iKUghl=pY=yc#E!BW|zXCwpzu`TAP5N;Z3~%e%J1 zRc|*6NDx~)RD+$&ER{;JytcvCi@y*t>}>wa`n~s@m0w(51J)Y%=@M2~w`-k>Awe+G zYWAV%_ObA|v9LleKMlaqVUgFz2N#~3^kH>%qkvN$8wra1LHwbB)!X+X8QYuxAja=X zM$bpH&iyVxqpFgwcOpMM%WUB$0B5IfD7|_)6blGAn~Vj7SzxcxZe{J=s5!Z}{T$D$ z_a>+dG>jo33UrVhSw);VW-?h87Og|`ygJ357ek?dE1aDmB5h_C{N3TWxpIe0CJR7m ze}~i4lfhCT&^a**gp=~1~lLs~qdMMyLXgn2;AfwNi86&A_mX8?G8 zd_d)>G(Z}(_AV}ib4Tbh(|21$gE4;eTj_LPR(0vUaCd@EPlj5gM!%b!paaVL+nk-g z0bs7MNPcRjYlr2GF2p)J!G3i0y*kC0oA!n}#p3FE@4_5lEjFoQC~|_PXA11?yukPE zv&Dtw+e~D#12ccCn{jr6?i7GF3UHnl9dLGf!a;c#fJ`RK{KD$sOuq*>QNV4-8xO5CC{6ndZX$+*QW4*)1sm@cxt!k*kalx#E{28x z0kqO6Z71Kn`(g|ST%UKpAO@4U>0n~v7pDV-)?ZrOPST47DVtx$7LggWK{T~vd8K?J4SIByK)(r#ntvGcdP z?+2>I>*n-+!02S|7Uw3f6iNr53KR;1TNlfX0>%UlA!!;8yTyZF9--m$!^wN~S~O-^ zVa;BNwnk~(tkb*Pmw@d`G!iX>ASe)nawv)%DR8yB|K{Y#Y3FU4U^yTdTNK5> ztsIuCjRo1v1R}!OX*G88HXvH3?V__|ISjOQSQ`1ka26(;nE-@Z)gv^1p<(t-aRLme zu!f02?7z%Bc=$-XdJW_Iai%TGI4l(# z{eTgH)*6jQ!jKnH)Gmp&TIKZIE1m+rzulL%1AuP~Mroyjkk_bugM=kq7;khoZHzI- c7-J;yA25tVlylgUTmS$707*qoM6N<$f + + KAlgebra + diff --git a/calgebra/CMakeLists.txt b/calgebra/CMakeLists.txt new file mode 100644 index 0000000..a630bc1 --- /dev/null +++ b/calgebra/CMakeLists.txt @@ -0,0 +1,19 @@ +include(CheckFunctionExists) +include(CMakePushCheckState) + +include_directories(${READLINE_INCLUDE_DIR} ${CURSES_INCLUDE_DIR}) + +# check if we have recent version of Readline +cmake_push_check_state(RESET) +set(CMAKE_REQUIRED_LIBRARIES ${READLINE_LIBRARY} ${CURSES_LIBRARIES}) +check_function_exists(free_history_entry HAVE_FREE_HISTORY_ENTRY) +cmake_pop_check_state() +if(HAVE_FREE_HISTORY_ENTRY) + add_definitions(-DHAVE_FREE_HISTORY_ENTRY) +endif() + +add_executable(calgebra main.cpp) +target_link_libraries(calgebra Qt::Core ${READLINE_LIBRARY} KF6::Analitza) + +install(TARGETS calgebra ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + diff --git a/calgebra/main.cpp b/calgebra/main.cpp new file mode 100644 index 0000000..050e5f7 --- /dev/null +++ b/calgebra/main.cpp @@ -0,0 +1,161 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include +#include + +#include +#include +#include +#include + +using namespace std; + +using Analitza::Expression; + +Analitza::Analyzer a; + +enum CalcType { + Evaluate, + Calculate +}; + +static const char *prompt = ">>> "; +static const char *insidePrompt = "... "; + +struct Config { + CalcType calcType; + bool showElapsedType; +}; +static Config configuration; + +void calculate(const Expression &e, CalcType t) +{ + Expression ans; + a.setExpression(e); + if (e.isCorrect()) { + QElapsedTimer time; + if (configuration.showElapsedType) + time.start(); + + if (t == Calculate) + ans = a.calculate(); + else + ans = a.evaluate(); + + if (configuration.showElapsedType) + qDebug() << "Ellapsed time: " << time.elapsed(); + } + + if (a.isCorrect()) { + qDebug() << qPrintable(ans.toString()); + a.insertVariable(QStringLiteral("ans"), ans); + } else { + const QStringList errors = a.errors(); + qDebug() << "Error:"; + for (const QString &err : errors) + qDebug() << " -" << qPrintable(err); + } +} + +int main(int argc, char *argv[]) +{ + configuration.calcType = Evaluate; + configuration.showElapsedType = false; + + for (int i = 1; i < argc; ++i) { + QByteArray arg = argv[i]; + if (arg == "--print-time") + configuration.showElapsedType = true; + else if (arg == "--calculate") + configuration.calcType = Calculate; + else if (arg == "--evaluate") + configuration.calcType = Evaluate; + else if (arg == "--help" || arg == "-h") { + qDebug() << "This is KAlgebra console version"; + qDebug() << "Use: " << argv[0] << "[Options] ..."; + qDebug() << "\t--evaluate:\tTries to simplify symbolically before calculating"; + qDebug() << "\t--calculate:\tCalculates straight away. If some symbol is missing, it will fail"; + qDebug() << "\t--print-time:\tOutputs the ellapsed time of an operation"; + qDebug() << "\t--help:\t\twill print this help"; + qDebug() << "\t...\t\tfiles that will be executed first"; + return 0; + } else { + QFile f(QString::fromUtf8(arg)); + if (!f.open(QIODevice::ReadOnly)) { + qWarning() << "File not found: " << arg; + return 1; + } + + QTextStream str(&f); + a.importScript(&str); + + if (!a.isCorrect()) { + const QStringList errors = a.errors(); + qDebug() << "Error:"; + for (const QString &err : errors) + qDebug() << " -" << qPrintable(err); + } + } + } + + bool done = false; + bool inside = false; + + using_history(); + QString entry; + while (!done) { + char *expr; + if (inside) + expr = readline(insidePrompt); + else + expr = readline(prompt); + + if (!expr) + done = true; + else if (*expr == 0) { + inside = false; + entry.clear(); + } else { + add_history(expr); + entry += QString::fromUtf8(expr); + + if (Expression::isCompleteExpression(entry)) { + Expression e(entry); + // qDebug() << entry << e.toString(); + calculate(e, configuration.calcType); + inside = false; + entry.clear(); + } else { + inside = true; + } + } + } + + for (int i = 0; i < history_get_history_state()->length; i++) { + HIST_ENTRY *he = remove_history(i); +#ifdef HAVE_FREE_HISTORY_ENTRY + free_history_entry(he); +#else + free((void *)he->line); + free(he); +#endif + } + qDebug("\nExit."); + return 0; +} diff --git a/calgebra/test_calgebra.py b/calgebra/test_calgebra.py new file mode 100644 index 0000000..1506785 --- /dev/null +++ b/calgebra/test_calgebra.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +import subprocess + +input="fib:=n->piecewise { eq(n,0)?0, eq(n,1)?1, ?fib(n-1)+fib(n-2) }\n" + +i=15 +for a in range(i,29): + input += "fib(%d)\n" % (a) +p = subprocess.Popen(["calgebra", "--calculate", "--print-time"], shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + +output=p.communicate(input) +for line in output[1].split('\n'): + theLine = line.split('time:') + if len(theLine)>1: + #print str(i)+", "+theLine[1] + print theLine[1] + i+=1 + diff --git a/cmake/COPYING-CMAKE-SCRIPTS b/cmake/COPYING-CMAKE-SCRIPTS new file mode 100644 index 0000000..4b41776 --- /dev/null +++ b/cmake/COPYING-CMAKE-SCRIPTS @@ -0,0 +1,22 @@ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/cmake/FindReadline.cmake b/cmake/FindReadline.cmake new file mode 100644 index 0000000..844f0a1 --- /dev/null +++ b/cmake/FindReadline.cmake @@ -0,0 +1,12 @@ +# GNU Readline library finder +if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY) + set(READLINE_FOUND TRUE) +else(READLINE_INCLUDE_DIR AND READLINE_LIBRARY) + FIND_PATH(READLINE_INCLUDE_DIR readline/readline.h) + + FIND_LIBRARY(READLINE_LIBRARY NAMES readline) + include(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG READLINE_INCLUDE_DIR READLINE_LIBRARY ) + + MARK_AS_ADVANCED(READLINE_INCLUDE_DIR READLINE_LIBRARY) +endif(READLINE_INCLUDE_DIR AND READLINE_LIBRARY) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt new file mode 100644 index 0000000..67e1bd7 --- /dev/null +++ b/doc/CMakeLists.txt @@ -0,0 +1,4 @@ +########### install files ############### +# + +kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kalgebra) diff --git a/doc/commands.docbook b/doc/commands.docbook new file mode 100644 index 0000000..4e05137 --- /dev/null +++ b/doc/commands.docbook @@ -0,0 +1,429 @@ + +Commands supported by KAlgebra + plus + Name: plus + Description: Addition + Parameters: plus(... parameters, ...) + Example: x->x+2 + + times + Name: times + Description: Multiplication + Parameters: times(... parameters, ...) + Example: x->x*2 + + minus + Name: minus + Description: Subtraction. Will remove all values from the first one. + Parameters: minus(... parameters, ...) + Example: x->x-2 + + divide + Name: divide + Description: Division + Parameters: divide(par1, par2) + Example: x->x/2 + + quotient + Name: quotient + Description: Quotient + Parameters: quotient(par1, par2) + Example: x->quotient(x, 2) + + power + Name: power + Description: Power + Parameters: power(par1, par2) + Example: x->x^2 + + root + Name: root + Description: Root + Parameters: root(par1, par2) + Example: x->root(x, 2) + + factorial + Name: factorial + Description: Factorial. factorial(n)=n! + Parameters: factorial(par1) + Example: x->factorial(x) + + and + Name: and + Description: Boolean and + Parameters: and(... parameters, ...) + Example: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Name: or + Description: Boolean or + Parameters: or(... parameters, ...) + Example: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Name: xor + Description: Boolean xor + Parameters: xor(... parameters, ...) + Example: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Name: not + Description: Boolean not + Parameters: not(par1) + Example: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Name: gcd + Description: Greatest common divisor + Parameters: gcd(... parameters, ...) + Example: x->gcd(x, 3) + + lcm + Name: lcm + Description: Least common multiple + Parameters: lcm(... parameters, ...) + Example: x->lcm(x, 4) + + rem + Name: rem + Description: Remainder + Parameters: rem(par1, par2) + Example: x->rem(x, 5) + + factorof + Name: factorof + Description: The factor of + Parameters: factorof(par1, par2) + Example: x->factorof(x, 3) + + max + Name: max + Description: Maximum + Parameters: max(... parameters, ...) + Example: x->max(x, 4) + + min + Name: min + Description: Minimum + Parameters: min(... parameters, ...) + Example: x->min(x, 4) + + lt + Name: lt + Description: Less than. lt(a,b)=a<b + Parameters: lt(par1, par2) + Example: x->piecewise { x<4 ? 1, ? 0 } + + gt + Name: gt + Description: Greater than. gt(a,b)=a>b + Parameters: gt(par1, par2) + Example: x->piecewise { x>4 ? 1, ? 0 } + + eq + Name: eq + Description: Equal. eq(a,b) = a=b + Parameters: eq(par1, par2) + Example: x->piecewise { x=4 ? 1, ? 0 } + + neq + Name: neq + Description: Not equal. neq(a,b)=a≠b + Parameters: neq(par1, par2) + Example: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Name: leq + Description: Less or equal. leq(a,b)=a≤b + Parameters: leq(par1, par2) + Example: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Name: geq + Description: Greater or equal. geq(a,b)=a≥b + Parameters: geq(par1, par2) + Example: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Name: implies + Description: Boolean implication + Parameters: implies(par1, par2) + Example: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Name: approx + Description: Approximation. approx(a)=a±n + Parameters: approx(par1, par2) + Example: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Name: abs + Description: Absolute value. abs(n)=|n| + Parameters: abs(par1) + Example: x->abs(x) + + floor + Name: floor + Description: Floor value. floor(n)=⌊n⌋ + Parameters: floor(par1) + Example: x->floor(x) + + ceiling + Name: ceiling + Description: Ceil value. ceil(n)=⌈n⌉ + Parameters: ceiling(par1) + Example: x->ceiling(x) + + sin + Name: sin + Description: Function to calculate the sine of a given angle + Parameters: sin(par1) + Example: x->sin(x) + + cos + Name: cos + Description: Function to calculate the cosine of a given angle + Parameters: cos(par1) + Example: x->cos(x) + + tan + Name: tan + Description: Function to calculate the tangent of a given angle + Parameters: tan(par1) + Example: x->tan(x) + + sec + Name: sec + Description: Secant + Parameters: sec(par1) + Example: x->sec(x) + + csc + Name: csc + Description: Cosecant + Parameters: csc(par1) + Example: x->csc(x) + + cot + Name: cot + Description: Cotangent + Parameters: cot(par1) + Example: x->cot(x) + + sinh + Name: sinh + Description: Hyperbolic sine + Parameters: sinh(par1) + Example: x->sinh(x) + + cosh + Name: cosh + Description: Hyperbolic cosine + Parameters: cosh(par1) + Example: x->cosh(x) + + tanh + Name: tanh + Description: Hyperbolic tangent + Parameters: tanh(par1) + Example: x->tanh(x) + + sech + Name: sech + Description: Hyperbolic secant + Parameters: sech(par1) + Example: x->sech(x) + + csch + Name: csch + Description: Hyperbolic cosecant + Parameters: csch(par1) + Example: x->csch(x) + + coth + Name: coth + Description: Hyperbolic cotangent + Parameters: coth(par1) + Example: x->coth(x) + + arcsin + Name: arcsin + Description: Arc sine + Parameters: arcsin(par1) + Example: x->arcsin(x) + + arccos + Name: arccos + Description: Arc cosine + Parameters: arccos(par1) + Example: x->arccos(x) + + arctan + Name: arctan + Description: Arc tangent + Parameters: arctan(par1) + Example: x->arctan(x) + + arccot + Name: arccot + Description: Arc cotangent + Parameters: arccot(par1) + Example: x->arccot(x) + + arccosh + Name: arccosh + Description: Hyperbolic arc cosine + Parameters: arccosh(par1) + Example: x->arccosh(x) + + arccsc + Name: arccsc + Description: Arc cosecant + Parameters: arccsc(par1) + Example: x->arccsc(x) + + arccsch + Name: arccsch + Description: Hyperbolic arc cosecant + Parameters: arccsch(par1) + Example: x->arccsch(x) + + arcsec + Name: arcsec + Description: Arc secant + Parameters: arcsec(par1) + Example: x->arcsec(x) + + arcsech + Name: arcsech + Description: Hyperbolic arc secant + Parameters: arcsech(par1) + Example: x->arcsech(x) + + arcsinh + Name: arcsinh + Description: Hyperbolic arc sine + Parameters: arcsinh(par1) + Example: x->arcsinh(x) + + arctanh + Name: arctanh + Description: Hyperbolic arc tangent + Parameters: arctanh(par1) + Example: x->arctanh(x) + + exp + Name: exp + Description: Exponent (e^x) + Parameters: exp(par1) + Example: x->exp(x) + + ln + Name: ln + Description: Base-e logarithm + Parameters: ln(par1) + Example: x->ln(x) + + log + Name: log + Description: Base-10 logarithm + Parameters: log(par1) + Example: x->log(x) + + conjugate + Name: conjugate + Description: Conjugate + Parameters: conjugate(par1) + Example: x->conjugate(x*i) + + arg + Name: arg + Description: Arg + Parameters: arg(par1) + Example: x->arg(x*i) + + real + Name: real + Description: Real + Parameters: real(par1) + Example: x->real(x*i) + + imaginary + Name: imaginary + Description: Imaginary + Parameters: imaginary(par1) + Example: x->imaginary(x*i) + + sum + Name: sum + Description: Summatory + Parameters: sum(par1 : var=from..to) + Example: x->x*sum(t*t:t=0..3) + + product + Name: product + Description: Productory + Parameters: product(par1 : var=from..to) + Example: x->product(t+t:t=1..3) + + diff + Name: diff + Description: Differentiation + Parameters: diff(par1 : var) + Example: x->(diff(x^2:x))(x) + + card + Name: card + Description: Cardinal + Parameters: card(par1) + Example: x->card(vector { x, 1, 2 }) + + scalarproduct + Name: scalarproduct + Description: Scalar product + Parameters: scalarproduct(... parameters, ...) + Example: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Name: selector + Description: Select the par1-th element of par2 list or vector + Parameters: selector(par1, par2) + Example: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Name: union + Description: Joins several items of the same type + Parameters: union(... parameters, ...) + Example: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Name: forall + Description: For all + Parameters: forall(par1 : var) + Example: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Name: exists + Description: Exists + Parameters: exists(par1 : var) + Example: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Name: map + Description: Applies a function to every element in a list + Parameters: map(par1, par2) + Example: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Name: filter + Description: Removes all elements that don't fit a condition + Parameters: filter(par1, par2) + Example: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Name: transpose + Description: Transpose + Parameters: transpose(par1) + Example: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/doc/index.docbook b/doc/index.docbook new file mode 100644 index 0000000..a54471a --- /dev/null +++ b/doc/index.docbook @@ -0,0 +1,540 @@ + + + + MathML"> + + +]> + + + + +The &kalgebra; Handbook + + + +Aleix +Pol + +
&Aleix.Pol.mail;
+
+
+ +
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +2020-12-17 +Applications 20.12 + + + +&kalgebra; is an application that can replace your graphing calculator. +It has numerical, logical, symbolic, and analysis features that let you calculate +mathematical expressions on the calculator and graphically plot the results +in 2D or 3D. &kalgebra; is rooted in the Mathematical Markup Language +(&MathML;); however, one does not need to know &MathML; to use &kalgebra;. + + + + +KDE +kdeedu +graph +mathematics +2D +3D +MathML + + +
+ + +Introduction + + +&kalgebra; has numerous features that allow the user to perform all sorts +of mathematical operations and show graphically. At one time, this +program was &MathML; oriented. Now it can be used by anyone with a little +mathematical knowledge to solve simple and advanced problems alike. + + + +It includes such features as: + + + + + +A calculator for quick and easy evaluation of math +functions. + + +Scripting capability for advanced series of calculations. + + +Language capabilities including function definition and syntax autocompletion. + + +Calculus functions including symbolic differentiation, vector calculus, +and list manipulation. + + +Function plotting with live cursor for graphical root finding and other +types of analysis. + + +3D plotting for useful visualization of 3D functions. + + +A built-in operator dictionary for quick reference to the many available +functions. + + + + +Below is a screenshot of the &kalgebra; application in action: + + + +Here's a screenshot of &kalgebra; main window + + + + + + &kalgebra; main window + + + + + +When the user begins a &kalgebra; session, they are presented with a +single window consisting of a Calculator tab, +a 2D Graph tab, +a 3D Graph tab and a +Dictionary tab. Within each tab, you will find an +input field to enter your functions or calculations, and a display field +which shows the results. + + +At any time the user may manage their session with the main menu +Session options: + + + + + +&Ctrl; +N +SessionNew + +Opens a new &kalgebra; window. + + + + +&Ctrl;&Shift; +F +SessionFull Screen Mode + +Toogle full screen mode for &kalgebra; window. The full +screen mode can also be switched on and off using + + button at the top right part of +&kalgebra; window. + + + + +&Ctrl; +Q +SessionQuit + +Shuts the program down. + + + + + + + +Syntax + +&kalgebra; uses an intuitive algebraic syntax for entering user functions, +similar to that used on most modern graphing calculators. This section +lists the fundamental built-in operators available in &kalgebra;. The +author of &kalgebra; modeled this syntax after +Maxima and +Maple for users +that may be familiar with these programs. + + + +For users that are interested in the inner workings of &kalgebra;, user +entered expressions are converted to &MathML; on the backend. A rudimentary +understanding of the capabilities supported by &MathML; will go a long way +toward revealing the inner capabilities of &kalgebra;. + + +Here is a list of the available operators we have by now: + ++ - * / : Addition, subtraction, multiplication and +division. +^, ** : Power, you can use them both. Also it is possible to use +the unicode ² characters. Powers are one way to make roots too, you can do it +like: a**(1/b) +-> : lambda. It is the way to specify one or more free +variables that will be bound in a function. For example, in the expression, +length:=(x,y)->(x*x+y*y)^0.5, the lambda operator is used to denote +that x and y will be bound when the length function is used. + +x=a..b : This is used when we need to delimit a range +(bounded variable+uplimit+downlimit). This means that x goes from a +to b. +() : It is used to specify a higher priority. +abc(params) : Functions. When the parser finds a function, it checks +if abc is an operator. If it is, it will be treated as an operator, if it is +not, it will be treated as a user function. +:= : Definition. It is used to define a variable value. You can +do things like x:=3, x:=y being y defined +or not or perimeter:=r->2*pi*r. + +? : Piecewise condition definition. Piecewise is the way we can define +conditional operations in &kalgebra;. Put another way, this is a way of +specifying an if, elseif, else condition. If we introduce the condition before the '?' it will +use this condition only if it is true, if it finds a '?' without any condition, it will +enter in the last instance. +Example: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } + +{ } : &MathML; container. It can be used to define a container. Mainly +useful for working with piecewise. + += > >= < <= : Value comparators for equal, +greater, greater or equal, less and less or equal respectively. + + +Now you could ask me, why should the user mind about &MathML;? That’s easy. +With this, we can operate with functions like cos(), sin(), any other +trigonometrical functions, sum() or product(). It does not matter what kind it is. +We can use plus(), times() and everything which has its operator. Boolean +functions are implemented as well, so we can do something like or(1,0,0,0,0). + + + + +Using the Calculator +&kalgebra;'s calculator is useful as a calculator on steroids. The +user may enter expressions for evaluation in Calculate +or Evaluate mode, depending on the Calculator +menu selection. + + +In evaluation mode &kalgebra; simplifies the expression even if it sees an undefined variable. +When in calculation mode &kalgebra;, calculates everything and if it finds an undefined +variable shows an error. + + +In addition to displaying the user entered equations and results in the +Calculator display, all variables that are declared are displayed in a +persistent frame to the right. By double clicking on a variable you will see a +dialog that lets you change their values (just a way to trick the log). + + + +The ans variable is special, every time you enter an expression, the +ans variable value will be changed to the last result. + + +The following are example functions that can be entered in +the input field of the calculator window: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + + +The following shows a screenshot of the calculator window after entering +the above example expressions: + + +Screenshot of &kalgebra; calculator window with example expressions + + + + + + &kalgebra; calculator window + + + + + +A user can control the execution of a series of calculations +using the Calculator menu options: + + + + + +&Ctrl; +L +CalculatorLoad Script... + +Executes the instructions in a file sequentially. +Useful if you want to define some libraries or resume some previous work. + + + + +CalculatorRecent Scripts + +Displays a submenu that will allow you to choose the recently executed scripts. + + + + +&Ctrl; +G +CalculatorSave Script... + +Saves the instructions you have typed since the session began to be able to reuse. Generates text files so it should be easy to fix +using any text editor, like &kate;. + + + + +&Ctrl; +S +CalculatorExport Log... + +Saves the log with all results into an &HTML; file to be able to print or publish. + + + + +F3 +CalculatorInsert ans... + +Insert the ans variable and makes it easier to reuse older values. + + + + +CalculatorCalculate + +A radio button to set the Execution Mode to calculation. + + + + +CalculatorEvaluate + +A radio button to set the Execution Mode to evaluation. + + + + + + +2D Graphs +To add a new 2D graph on &kalgebra;, select the 2D +Graph tab and click the Add tab to add +a new function. Your focus will go to an input text box where you can +type your function. + + +Syntax +If you want to use a typical f(x) function it is not +necessary to specify it, but if you want a f(y) or a polar +function, you will have to add y-> and q-> +as the bounded variables. + +Examples: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +If you have entered the function click on the OK button to display the graph in the main window. + + + + +Features +You can set several graphs on the same view. Just use the Add button when +you are in List mode. You can set each graph its own color. + +The view can be zoomed and moved with the mouse. Using the wheel +you can zoom in and out. You can also select an area with the &LMB; and this +area will be zoomed in. Move the view with the keyboard arrow keys. + + + The viewport of 2D graphs can be explicitly defined using the Viewport tab on a 2D Graph tab. + + +In the List tab at the bottom right part, you can open an Editing tab to edit or remove a function with double-click and check or uncheck the check box next to the function name to show or hide it. +In the 2D Graph menu you find these options: + +Grid: Show or hide the grid +Keep Aspect Ratio: Keep the aspect ratio while zooming +Save: Save (&Ctrl; +S) the graph as image file +Zoom in/out: Zoom in (&Ctrl; ++) and zoom out (&Ctrl; +-) +Actual Size: Reset the view to the original zoom +Resolution: Followed by a list of radio buttons to select a resolution for the graphs + + + + Below is a screenshot of a user who's cursor is at the rightmost root + of the function, sin(1/x). The user who graphed + it used very fine resolution to make this graph (as it oscillates at + higher and higher frequency near the origin). There is also a live + cursor feature where whenever you move your cursor over a spot, it + shows you the x and y values in + the bottom left corner of the screen. A live tangent line + is plotted on the function at the live cursor location. + + + +Here's a screenshot of &kalgebra; 2D Graph window + + + + + + &kalgebra; 2D Graph window + + + + + + + + + + +3D Graphs + +To draw a 3D graph with &kalgebra; select the 3D Graph tab +and you will see an input field at the bottom where you will type your function. +Z cannot be defined yet. For the moment &kalgebra; only supports +3D graphs explicitly dependent only on the x and y, +such as (x,y)->x*y, where z=x*y. + + +Examples: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +The view can be zoomed and moved with the mouse. Using the wheel +you can zoom in and out. Hold the &LMB; and move the mouse to rotate the graph. + +The &Left; and &Right; arrow keys rotate the graph around the z axis, the &Up; and &Down; arrow keys rotate around the horizontal axis of the view. Press W to zoom in the plot and S to zoom it out. + +In the 3D Graph menu you find these options: + + +Save: Save (&Ctrl; +S) the graph as image file or supported document +Reset View: Reset the view to the original zoom in the 3D Graph menu +You can draw the graphs with Dots, Lines or Solid styles in the 3D Graph menu + + + +Below is a screenshot of the so-called sombrero function. This particular +graph is shown using the 3D graph line-style. + + + +Here's a screenshot of &kalgebra; 3D Graph window + + + + + + &kalgebra; 3D Graph window + + + + + + + +Dictionary + + + The dictionary provides a list of all &kalgebra; built in functions. It can be +used to find the definition of an operation and its input parameters. It's a useful +place to go to find the many capabilities of &kalgebra;. + + + + Below is a screenshot of the &kalgebra; dictionary lookup of the cosine function. + + + +Here's a screenshot of the &kalgebra; dictionary window + + + + + + &kalgebra; dictionary window + + + + + + + +&commands; + + +Credits and License + + +Program copyright 2005-2009 &Aleix.Pol; + + + + +Documentation copyright 2007 &Aleix.Pol; &Aleix.Pol.mail; + + + +&underFDL; +&underGPL; + + + +&documentation.index; +
+ + diff --git a/doc/kalgebra-2dgraph-window.png b/doc/kalgebra-2dgraph-window.png new file mode 100644 index 0000000000000000000000000000000000000000..2e49ea162e3e447890dc83019f2122c15351fdc6 GIT binary patch literal 41762 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 z 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

DNh|@Lv%cbwn(&INWuq`LjyyW* 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 literal 0 HcmV?d00001 diff --git a/doc/kalgebra-console-window.png b/doc/kalgebra-console-window.png new file mode 100644 index 0000000000000000000000000000000000000000..3da827731db9d2b3afc8a592eeb4d9bed36f9b87 GIT binary patch literal 48997 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 literal 0 HcmV?d00001 diff --git a/doc/kalgebra-dictionary-window.png b/doc/kalgebra-dictionary-window.png new file mode 100644 index 0000000000000000000000000000000000000000..eebbb0825cfe8c400b23e79d24b4ccea1272f047 GIT binary patch literal 60041 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%0A4p;Hz$%*AKN|j;L##UhD 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∓M~eT^r&vsVNO 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 Ly;6GVdh~w*+&Ac| literal 0 HcmV?d00001 diff --git a/doc/view-fullscreen.png b/doc/view-fullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..f004b1d1ebe83b690fcf7430d69929b3e44f0be1 GIT binary patch literal 514 zcmV+d0{#7oP) zM6G~#0G@)xJ~u7A7%d6sc>NB5fE#cqjapS|)k{*5_ENi+@Xx`q03}Y=Lh@!LAM73P z%Fz=n`ZM-Zs6o}%xq)Gz8~NR<>UV%*RBaxW zr_Wz_`sDG3oCi#{q45LBW<+2THh|+gOr}#>UOoQ>)0-Py*Tu4|ybWiwpPZdv5XW&X z1{$tQr_-jUO`O_!)M*pjGxxB#Gvh~`%(XpsEaAU2 zvVAji=G=SF|GZ`bV~jDz82@9axDy_K_W9FcC^9HK{qD)*%l@8@6ClE;#`uUa$!RqN zD6P>t6?uHTUl_riz5rHNNrnQ5 z6?Ew5dGcE=8a5S;S1OQc8XFZH`guF~M0^0&3i4EWbf@7}{gR<}RAKT?yr&&D_NiLm z<#4XE6P!?W?#?zC<5z`hwnlDt^xVjVsyjPDCkj|TnHGVOZy3QSAYzC@K@8%ZU=kW# z5fY?8m9vKdm6({M>|d`N7QRoSA8$V+>OPquZaRcl2M==GVJee za#$`ppMM!X_~?@!u9D=UK$Hicb1I$227sRAyX)rU1EReD{4F}JaweOLzE95-m|wgV zt4K47yPLc{IgakrH3IWbrWoo$iKUghl=pY=yc#E!BW|zXCwpzu`TAP5N;Z3~%e%J1 zRc|*6NDx~)RD+$&ER{;JytcvCi@y*t>}>wa`n~s@m0w(51J)Y%=@M2~w`-k>Awe+G zYWAV%_ObA|v9LleKMlaqVUgFz2N#~3^kH>%qkvN$8wra1LHwbB)!X+X8QYuxAja=X zM$bpH&iyVxqpFgwcOpMM%WUB$0B5IfD7|_)6blGAn~Vj7SzxcxZe{J=s5!Z}{T$D$ z_a>+dG>jo33UrVhSw);VW-?h87Og|`ygJ357ek?dE1aDmB5h_C{N3TWxpIe0CJR7m ze}~i4lfhCT&^a**gp=~1~lLs~qdMMyLXgn2;AfwNi86&A_mX8?G8 zd_d)>G(Z}(_AV}ib4Tbh(|21$gE4;eTj_LPR(0vUaCd@EPlj5gM!%b!paaVL+nk-g z0bs7MNPcRjYlr2GF2p)J!G3i0y*kC0oA!n}#p3FE@4_5lEjFoQC~|_PXA11?yukPE zv&Dtw+e~D#12ccCn{jr6?i7GF3UHnl9dLGf!a;c#fJ`RK{KD$sOuq*>QNV4-8xO5CC{6ndZX$+*QW4*)1sm@cxt!k*kalx#E{28x z0kqO6Z71Kn`(g|ST%UKpAO@4U>0n~v7pDV-)?ZrOPST47DVtx$7LggWK{T~vd8K?J4SIByK)(r#ntvGcdP z?+2>I>*n-+!02S|7Uw3f6iNr53KR;1TNlfX0>%UlA!!;8yTyZF9--m$!^wN~S~O-^ zVa;BNwnk~(tkb*Pmw@d`G!iX>ASe)nawv)%DR8yB|K{Y#Y3FU4U^yTdTNK5> ztsIuCjRo1v1R}!OX*G88HXvH3?V__|ISjOQSQ`1ka26(;nE-@Z)gv^1p<(t-aRLme zu!f02?7z%Bc=$-XdJW_Iai%TGI4l(# z{eTgH)*6jQ!jKnH)Gmp&TIKZIE1m+rzulL%1AuP~Mroyjkk_bugM=kq7;khoZHzI- c7-J;yA25tVlylgUTmS$707*qoM6N<$f + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..41977facfc0d942830626082609c280208a343de GIT binary patch literal 4912 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 + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "clipboard.h" +#include +#include +#include +#include + +Clipboard::Clipboard(QObject *parent) + : QObject(parent) + , m_clipboard(QGuiApplication::clipboard()) + , m_mode(QClipboard::Clipboard) +{ + connect(m_clipboard, &QClipboard::changed, this, &Clipboard::clipboardChanged); +} + +void Clipboard::setMode(QClipboard::Mode mode) +{ + m_mode = mode; + Q_EMIT modeChanged(m_mode); +} + +void Clipboard::clipboardChanged(QClipboard::Mode m) +{ + if (m == m_mode) { + Q_EMIT contentChanged(); + } +} + +void Clipboard::clear() +{ + m_clipboard->clear(m_mode); +} + +QClipboard::Mode Clipboard::mode() const +{ + return m_mode; +} + +QVariant Clipboard::contentFormat(const QString &format) const +{ + const QMimeData *data = m_clipboard->mimeData(m_mode); + QVariant ret; + if (format == QStringLiteral("text/uri-list")) { + QVariantList retList; + const auto urls = data->urls(); + for (const QUrl &url : urls) + retList += url; + ret = retList; + } else if (format.startsWith(QStringLiteral("text/"))) { + ret = data->text(); + } else if (format.startsWith(QStringLiteral("image/"))) { + ret = data->imageData(); + } else + ret = data->data(format.isEmpty() ? data->formats().first() : format); + + return ret; +} + +QVariant Clipboard::content() const +{ + return contentFormat(m_clipboard->mimeData(m_mode)->formats().first()); +} + +void Clipboard::setContent(const QVariant &content) +{ + QMimeData *mimeData = new QMimeData; + switch (content.userType()) { + case QMetaType::QString: + mimeData->setText(content.toString()); + break; + case QMetaType::QColor: + mimeData->setColorData(content.toString()); + break; + case QMetaType::QPixmap: + case QMetaType::QImage: + mimeData->setImageData(content); + break; + default: + if (content.userType() == QMetaType::QVariantList) { + const QVariantList list = content.toList(); + QList urls; + bool wasUrlList = true; + for (const QVariant &url : list) { + if (url.userType() != QMetaType::QUrl) { + wasUrlList = false; + break; + } + urls += url.toUrl(); + } + if (wasUrlList) { + mimeData->setUrls(urls); + break; + } + } + if (content.canConvert()) { + mimeData->setText(content.toString()); + } else { + mimeData->setData(QStringLiteral("application/octet-stream"), content.toByteArray()); + qWarning() << "Couldn't figure out the content type, storing as application/octet-stream"; + } + break; + } + m_clipboard->setMimeData(mimeData, m_mode); +} + +QStringList Clipboard::formats() const +{ + return m_clipboard->mimeData(m_mode)->formats(); +} + +#include "moc_clipboard.cpp" diff --git a/mobile/clipboard.h b/mobile/clipboard.h new file mode 100644 index 0000000..9302eab --- /dev/null +++ b/mobile/clipboard.h @@ -0,0 +1,56 @@ +// SPDX-FileCopyrightText: 2014 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifndef CLIPBOARD_H +#define CLIPBOARD_H + +#include +#include + +class ClipboardPrivate; + +class Clipboard : public QObject +{ + Q_OBJECT + /** + * Controls the state this object will be monitoring and extracting its contents from. + */ + Q_PROPERTY(QClipboard::Mode mode READ mode WRITE setMode NOTIFY modeChanged) + + /** + * Provides the contents currently in the clipboard and lets modify them. + */ + Q_PROPERTY(QVariant content READ content WRITE setContent NOTIFY contentChanged) + + /** + * Figure out the nature of the contents in the clipboard. + */ + Q_PROPERTY(QStringList formats READ formats NOTIFY contentChanged) + +public: + explicit Clipboard(QObject *parent = nullptr); + + QClipboard::Mode mode() const; + void setMode(QClipboard::Mode mode); + + Q_SCRIPTABLE QVariant contentFormat(const QString &format) const; + QVariant content() const; + void setContent(const QVariant &content); + + QStringList formats() const; + + Q_SCRIPTABLE void clear(); + +Q_SIGNALS: + void modeChanged(QClipboard::Mode mode); + void contentChanged(); + +private Q_SLOTS: + void clipboardChanged(QClipboard::Mode m); + +private: + QClipboard *m_clipboard; + QClipboard::Mode m_mode; +}; + +#endif diff --git a/mobile/content/resources/kde-edu-logo.png b/mobile/content/resources/kde-edu-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f652c4003b4455cba1c16171ba47689aee07f927 GIT binary patch literal 16041 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 +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtQuick 2.0 +import org.kde.kirigamiaddons.formcard 1.0 as FormCard +import org.kde.analitza 1.0 +import org.kde.kalgebra.mobile 1.0 + +FormCard.AboutPage { + aboutData: About +} diff --git a/mobile/content/ui/Console.qml b/mobile/content/ui/Console.qml new file mode 100644 index 0000000..765cead --- /dev/null +++ b/mobile/content/ui/Console.qml @@ -0,0 +1,204 @@ +// SPDX-FileCopyrightText: 2015 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtCore +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls as QQC2 +import QtQml.Models +import QtQuick.Dialogs +import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.delegates as Delegates +import org.kde.kirigamiaddons.formcard as FormCard +import org.kde.analitza +import org.kde.kalgebra.mobile + +Kirigami.ScrollablePage { + id: page + + title: i18n("Calculator") + ListModel { id: itemModel } + + // This content is only available in the desktop version of Kalgebra. + // Don't put any information here that can't be accessed by another + // part of Kalgebra. + readonly property Item drawerContent : ColumnLayout { + visible: true + width: 300 + spacing: 0 + + QQC2.ToolBar { + Layout.fillWidth: true + Layout.preferredHeight: applicationWindow().pageStack.globalToolBar.preferredHeight + + leftPadding: Kirigami.Units.smallSpacing + rightPadding: Kirigami.Units.smallSpacing + topPadding: Kirigami.Units.smallSpacing + bottomPadding: Kirigami.Units.smallSpacing + + contentItem: Kirigami.Heading { + text: i18n("KAlgebra") + } + } + + QQC2.ScrollView { + Layout.fillWidth: true + Layout.fillHeight: true + + ListView { + model: VariablesModel { variables: App.variables } + delegate: Delegates.RoundedItemDelegate { + required property string whatsThis + required property int index + + text: whatsThis + } + } + } + } + + actions: [ + Kirigami.Action { + text: i18nc("@action:button", "Load Script") + onTriggered: { + fileDialog.title = text + fileDialog.proceed = function() { consoleModel.loadScript(fileDialog.fileUrl) } + fileDialog.nameFilters = [ i18n("Script (*.kal)") ] + fileDialog.fileMode = FileDialog.OpenFile + fileDialog.open() + } + }, + Kirigami.Action { + text: i18nc("@action:button", "Save Script") + onTriggered: { + fileDialog.title = text + fileDialog.proceed = function() { consoleModel.saveScript(fileDialog.fileUrl) } + fileDialog.nameFilters = [ i18n("Script (*.kal)") ] + fileDialog.fileMode = FileDialog.SaveFile + fileDialog.open() + } + }, + //TODO: Recent scripts + Kirigami.Action { + text: i18nc("@action:button", "Export Log") + onTriggered: { + fileDialog.title = text + fileDialog.proceed = function() { consoleModel.saveLog(fileDialog.fileUrl) } + fileDialog.nameFilters = [ i18n("HTML (*.html)") ] + fileDialog.fileMode = FileDialog.SaveFile + fileDialog.open() + } + }, + // -- + Kirigami.Action { + text: consoleModel.mode === 1 ? i18nc("@action:button", "Evaluate") : i18nc("@action:button", "Calculate") + onTriggered: consoleModel.mode = consoleModel.mode === 1 ? 0 : 1 + }, + // -- + Kirigami.Action { + icon.name: "edit-clear-history" + text: i18nc("@action:button", "Clear Log") + onTriggered: itemModel.clear() + enabled: itemModel.count !== 0 + } + ] + + ListView { + id: view + model: itemModel + + bottomMargin: Kirigami.Units.largeSpacing + topMargin: Kirigami.Units.largeSpacing + spacing: Kirigami.Units.largeSpacing + + delegate: FormCard.FormCard { + width: ListView.view.width + FormCard.AbstractFormDelegate { + background: null + contentItem: RowLayout { + QQC2.Label { + text: model.result + onLinkActivated: { + input.remove(input.selectionStart, input.selectionEnd) + input.insert(input.cursorPosition, consoleModel.readContent(link)) + } + + Layout.fillWidth: true + } + + QQC2.ToolButton { + visible: App.functionsModel().canAddFunction(expression, 2, App.variables) + text: i18n("2D Plot") + onClicked: { + App.functionsModel().addFunction(expression, 2, App.variables) + show2dPlotAction.trigger(); + } + } + + QQC2.ToolButton { + visible: App.functionsModel().canAddFunction(expression, 4, App.variables) + text: i18n("3D Plot") + onClicked: { + App.functionsModel().addFunction(expression, 4, App.variables) + show3dPlotAction.trigger(); + } + } + + QQC2.ToolButton { + readonly property string value: result.replace(/<[^>]*>/g, ''); + text: i18n("Copy \"%1\"", value) + icon.name: "edit-copy" + display: QQC2.ToolButton.IconOnly + onClicked: { + clipboard.content = value + } + + QQC2.ToolTip.text: text + QQC2.ToolTip.visible: hovered + QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay + } + } + } + } + Clipboard { + id: clipboard + } + + ConsoleModel { + id: consoleModel + variables: App.variables + onMessage: (msg, operation, result) => { + itemModel.append({ result: msg, expression: result.toString() }) + input.selectAll() + view.currentIndex = view.count-1 + view.positionViewAtIndex(view.currentIndex, ListView.Contain) + } + } + + FileDialog { + id: fileDialog + currentFolder: StandardPaths.standardLocations(StandardPaths.HomeLocation)[0] + onAccepted: proceed() + + property var proceed + } + + Kirigami.PlaceholderMessage { + text: i18nc("@info", "Empty console history") + visible: view.count === 0 + anchors.centerIn: parent + width: parent.width - Kirigami.Units.gridUnit * 4 + } + } + + footer: ExpressionInput { + id: input + focus: true + + width: page.width + + onAddOperation: (content) => { + consoleModel.addOperation(content) + } + } +} diff --git a/mobile/content/ui/Dictionary.qml b/mobile/content/ui/Dictionary.qml new file mode 100755 index 0000000..ae45356 --- /dev/null +++ b/mobile/content/ui/Dictionary.qml @@ -0,0 +1,77 @@ +// SPDX-FileCopyrightText: 2015 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtQuick +import QtQuick.Layouts +import org.kde.analitza +import org.kde.kirigami as Kirigami +import org.kde.kalgebra.mobile +import QtQuick.Controls + +Kirigami.Page { + id: page + + title: i18nc("@title:window", "Dictionary") + + function updateGraph() { + view.model.clear(); + view.resetViewport(); + view.addFunction(operators.data(operators.index(chosebox.currentIndex,3)), App.variables); + } + ColumnLayout { + anchors.fill: parent + spacing: 15 + + Kirigami.FormLayout { + id: layout + + ComboBox { + id: chosebox + Kirigami.FormData.label: i18n("Name:") + textRole: "display" + + model: OperatorsModel { + id: operators + } + + onCurrentIndexChanged: { + page.updateGraph(); + } + } + Label { + text: operators.data(operators.index(chosebox.currentIndex,0)) + Kirigami.FormData.label: i18n("%1:", operators.headerData(0,Qt.Horizontal)) + } + Label { + text: operators.data(operators.index(chosebox.currentIndex,1)) + Kirigami.FormData.label: i18n("%1:", operators.headerData(1,Qt.Horizontal)) + } + Label { + text: operators.data(operators.index(chosebox.currentIndex,2)) + Kirigami.FormData.label: i18n("%1:", operators.headerData(2,Qt.Horizontal)) + } + Label { + text: operators.data(operators.index(chosebox.currentIndex,3)) + Kirigami.FormData.label: i18n("%1:", operators.headerData(3,Qt.Horizontal)) + } + } + Rectangle { + color: 'white' + Layout.fillWidth: true + Layout.fillHeight: true + + Graph2D { + id: view + anchors { + fill: parent + } + model: PlotsModel { + id: plotsModel + } + Component.onCompleted: { + page.updateGraph(); + } + } + } + } +} diff --git a/mobile/content/ui/Plot2D.qml b/mobile/content/ui/Plot2D.qml new file mode 100755 index 0000000..07fe898 --- /dev/null +++ b/mobile/content/ui/Plot2D.qml @@ -0,0 +1,81 @@ +// SPDX-FileCopyrightText: 2015 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtCore +import QtQuick +import QtQuick.Layouts +import QtQuick.Dialogs +import QtQuick.Controls as QQC2 +import org.kde.kirigami as Kirigami +import org.kde.analitza +import org.kde.kalgebra.mobile + +Kirigami.Page { + id: page + + leftPadding: 0 + rightPadding: 0 + topPadding: 0 + bottomPadding: 0 + + title: i18nc("@title:window", "2D Plot") + + FileDialog { + id: fileDialog + currentFolder: StandardPaths.standardLocations(StandardPaths.HomeLocation)[0] + onAccepted: proceed() + + property var proceed + } + + actions: [ + QQC2.Action { + icon.name: 'list-add' + text: i18n('Add Plot') + onTriggered: plotDialog.open() + }, + QQC2.Action { + text: i18n("Save") + icon.name: 'document-save' + onTriggered: { + fileDialog.title = text + fileDialog.proceed = function() { + var ret = view.save(fileDialog.fileUrl) + console.log("saved 2D", fileDialog.fileUrl, ret) + } + fileDialog.nameFilters = view.filters + fileDialog.selectExisting = false + fileDialog.open() + } + }, + QQC2.Action { + text: i18n("View Grid") + icon.name: 'view-grid' + checkable: true + checked: view.showGrid + onToggled: view.showGrid = checked + }, + QQC2.Action { + icon.name: 'view-restore' + text: i18n("Reset Viewport") + onTriggered: view.resetViewport() + } + //custom viewport? + ] + + Rectangle { + anchors.fill: parent + color: 'white' + + Graph2D { + id: view + anchors.fill: parent + model: App.functionsModel() + AddPlotDialog { + id: plotDialog + text: "sin x" + dimension: 2 + } + } + } +} \ No newline at end of file diff --git a/mobile/content/ui/Plot3D.qml b/mobile/content/ui/Plot3D.qml new file mode 100755 index 0000000..7e4b256 --- /dev/null +++ b/mobile/content/ui/Plot3D.qml @@ -0,0 +1,69 @@ +// SPDX-FileCopyrightText: 2015 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtCore +import QtQuick +import QtQuick.Layouts +import QtQuick.Dialogs +import QtQuick.Controls +import org.kde.kirigami as Kirigami +import org.kde.analitza +import org.kde.kalgebra.mobile + +Kirigami.Page { + id: page + + leftPadding: 0 + rightPadding: 0 + topPadding: 0 + bottomPadding: 0 + + title: i18nc("@title:window", "3D Plot") + + FileDialog { + id: fileDialog + currentFolder: StandardPaths.standardLocations(StandardPaths.HomeLocation)[0] + onAccepted: proceed() + + property var proceed + } + + actions: [ + Kirigami.Action { + icon.name: 'list-add' + text: i18n('Add Plot') + onTriggered: plotDialog.open() + }, + Kirigami.Action { + text: i18n("Save") + icon.name: 'document-save' + onTriggered: { + fileDialog.title = text + fileDialog.proceed = function() { + var ret = view.save(fileDialog.fileUrl) + console.log("saved 3D", fileDialog.fileUrl, ret) + } + fileDialog.nameFilters = view.filters + fileDialog.selectExisting = false + fileDialog.open() + } + }, + Kirigami.Action { + icon.name: 'view-restore' + text: i18n("Reset Viewport") + onTriggered: view.resetViewport() + } + ] + + + Graph3D { + id: view + anchors.fill: parent + model: App.functionsModel() + AddPlotDialog { + id: plotDialog + text: "sin x*sin y" + dimension: 4 + } + } +} diff --git a/mobile/content/ui/TableResultPage.qml b/mobile/content/ui/TableResultPage.qml new file mode 100644 index 0000000..572e7f2 --- /dev/null +++ b/mobile/content/ui/TableResultPage.qml @@ -0,0 +1,23 @@ +// SPDX-FileCopyrightText: Carl Schwan +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtQuick +import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.delegates as Delegates + +Kirigami.ScrollablePage { + title: i18n("Results") + + required property var results + + ListView { + currentIndex: -1 + model: results + delegate: Delegates.RoundedItemDelegate { + required property int index + required property string element + + text: element + } + } +} diff --git a/mobile/content/ui/Tables.qml b/mobile/content/ui/Tables.qml new file mode 100644 index 0000000..e02098d --- /dev/null +++ b/mobile/content/ui/Tables.qml @@ -0,0 +1,97 @@ +// SPDX-FileCopyrightText: 2015 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtQuick +import QtQuick.Layouts +import org.kde.analitza +import QtQuick.Controls as QQC2 +import org.kde.kirigami as Kirigami +import org.kde.kalgebra.mobile + +Kirigami.ScrollablePage { + title: i18n("Value tables") + + property ListModel resultsModel: ListModel {} + + function calculateTable() { + resultsModel.clear(); + + var tmp = a.unusedVariableName() + var ret = a.insertVariable(tmp, a.dependenciesToLambda(input.text)) + var ffrom = from.realValue, fto=to.realValue, fstep=step.realValue; +// console.log("chancho (" + ffrom + ", " + fto + " : " + fstep + ") " + ret); + if((fto-ffrom>0)!=(fstep>0)) { + fstep *= -1; + step.value = fstep + } +// console.log("chancho2 (" + ffrom + ", " + fto + " : " + fstep + ") " + ret); + + if(fstep===0) { + resultsModel.append( { element: i18n("Errors: The step cannot be 0") } ); + } else if(ffrom === fto) { + resultsModel.append( { element: i18n("Errors: The start and end are the same") } ); + } else if(!a.isCorrect) { + resultsModel.append( { element: i18n("Errors: %1", ret ? ret : a.errors) } ); + } else { + for (var i=ffrom; i<=fto && i>=ffrom && a.isCorrect; i+=fstep) { + var args = new Array(); + args[0]=i; + var expr = a.executeFunc(tmp, args); + resultsModel.append( { element: i +" = "+ expr.expression } ); + } + } + + a.removeVariable(tmp); + applicationWindow().pageStack.push("qrc:/TableResultPage.qml", { + 'results': resultsModel + }); + } + + actions: QQC2.Action { + icon.name: 'dialog-ok' + text: i18nc("@action:button Run table", "Run") + onTriggered: calculateTable() + } + + Analitza { + id: a + variables: App.variables + } + + Kirigami.FormLayout { + QQC2.TextField { + Kirigami.FormData.label: i18n("Input") + id: input + text: "sin x"; + Layout.fillWidth: true + onAccepted: calculateTable(); + } + RealInput { + id: from; + text: "0"; + Kirigami.FormData.label: i18n("From:") + Layout.fillWidth: true; + onAccepted: calculateTable() + } + RealInput { + id: to; + text: "10"; + Kirigami.FormData.label: i18n("To:") + Layout.fillWidth: true; + onAccepted: calculateTable() + } + + RealInput { + id: step; + Kirigami.FormData.label: i18n("Step") + text: "1"; + Layout.fillWidth: true; + onAccepted: calculateTable() + } + QQC2.Button { + text: i18n("Run") + onClicked: calculateTable() + visible: !Kirigami.Settings.isMobile + } + } +} diff --git a/mobile/content/ui/VariablesView.qml b/mobile/content/ui/VariablesView.qml new file mode 100644 index 0000000..99188de --- /dev/null +++ b/mobile/content/ui/VariablesView.qml @@ -0,0 +1,23 @@ +// SPDX-FileCopyrightText: 2015 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtQuick +import org.kde.analitza +import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.delegates as Delegates +import org.kde.kalgebra.mobile + +Kirigami.ScrollablePage { + title: i18n("Variables") + + ListView { + model: VariablesModel { variables: App.variables } + currentIndex: -1 + delegate: Delegates.RoundedItemDelegate { + required property int index + required property string whatsThis + + text: whatsThis + } + } +} diff --git a/mobile/content/ui/controls/AddButton.qml b/mobile/content/ui/controls/AddButton.qml new file mode 100644 index 0000000..63dee72 --- /dev/null +++ b/mobile/content/ui/controls/AddButton.qml @@ -0,0 +1,39 @@ +/************************************************************************************* + * Copyright (C) 2015 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +import org.kde.kirigami 2.0 as Kirigami +import QtQuick 2.1 + +Item +{ + id: root + signal clicked + + readonly property var act: Kirigami.Action { + id: action + icon.name: "list-add" + onTriggered: root.clicked() + } + + Component.onCompleted: { + var page = parent + for (; page && page.title === undefined; page = page.parent) {} + + page.mainAction = action + } +} diff --git a/mobile/content/ui/controls/AddPlotDialog.qml b/mobile/content/ui/controls/AddPlotDialog.qml new file mode 100755 index 0000000..405cf6a --- /dev/null +++ b/mobile/content/ui/controls/AddPlotDialog.qml @@ -0,0 +1,143 @@ +// SPDX-FileCopyrightText: 2021 Swapnil Tripathi +// SPDX-FileCopyrightText: 2023 Carl Schwan +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtQuick +import QtQuick.Controls as QQC2 +import QtQuick.Layouts + +import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.delegates as Delegates +import org.kde.kirigamiaddons.components as Components + +import org.kde.analitza +import org.kde.kalgebra.mobile + +QQC2.Dialog { + id: root + + property alias text: input.text + required property int dimension + + width: Math.min(parent.width - Kirigami.Units.gridUnit * 2, Kirigami.Units.gridUnit * 30) + height: Math.min(parent.height - Kirigami.Units.gridUnit * 2, Kirigami.Units.gridUnit * 30) + + x: Math.round((parent.width - width) / 2) + y: Math.round((parent.height - height) / 2) + z: Kirigami.OverlayZStacking.z + + parent: applicationWindow().QQC2.Overlay.overlay + + background: Components.DialogRoundedBackground {} + + padding: 0 + modal: true + + contentItem: ColumnLayout { + spacing: 0 + RowLayout { + Layout.fillWidth: true + Layout.margins: Kirigami.Units.smallSpacing + spacing: Kirigami.Units.smallSpacing + + QQC2.TextField { + id: input + Layout.fillWidth: true + focus: true + Component.onCompleted: selectAll() + Keys.onReturnPressed: { + input.selectAll() + App.functionsModel().addFunction(input.text, root.dimension, App.variables) + } + } + + QQC2.Button { + icon.name: "list-add" + text: i18nc("@action:button", "Add") + display: QQC2.Button.IconOnly + onClicked: { + input.selectAll() + App.functionsModel().addFunction(input.text, root.dimension, App.variables) + } + + QQC2.ToolTip.text: text + QQC2.ToolTip.visible: hovered + QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay + } + + QQC2.Button { + text: i18nc("@action:button", "Clear All") + onClicked: { + App.functionsModel().clear(); + view.resetViewport(); + } + + QQC2.ToolTip.text: text + QQC2.ToolTip.visible: hovered + QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay + } + + QQC2.ToolButton { + icon.name: "dialog-close" + text: i18nc("@action:button", "Close dialog") + display: QQC2.Button.IconOnly + onClicked: { + root.close() + } + + QQC2.ToolTip.text: text + QQC2.ToolTip.visible: hovered + QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay + } + } + + Kirigami.Separator { + Layout.fillWidth: true + } + + QQC2.ScrollView { + Layout.fillWidth: true + Layout.fillHeight: true + + ListView { + id: plotView + + model: App.functionsModel() + delegate: Delegates.RoundedItemDelegate { + id: plotDelegate + + required property int index + required property string description + + text: description + + contentItem: RowLayout { + Delegates.DefaultContentItem { + itemDelegate: plotDelegate + Layout.fillWidth: true + } + + QQC2.ToolButton { + icon.name: "list-remove" + text: i18nc("@action:button", "Remove plot") + display: QQC2.Button.IconOnly + + onClicked: App.functionsModel().removeRows(plotDelegate.index, 1); + + QQC2.ToolTip.text: text + QQC2.ToolTip.visible: hovered + QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay + } + } + } + + Kirigami.PlaceholderMessage { + width: parent.width - Kirigami.Units.gridUnit * 4 + anchors.centerIn: parent + text: i18nc("@info", "No plot available") + visible: plotView.count === 0 + } + } + } + } +} diff --git a/mobile/content/ui/controls/ExpressionInput.qml b/mobile/content/ui/controls/ExpressionInput.qml new file mode 100644 index 0000000..ba73d23 --- /dev/null +++ b/mobile/content/ui/controls/ExpressionInput.qml @@ -0,0 +1,120 @@ +/************************************************************************************* + * Copyright (C) 2015 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +import QtQuick +import QtQuick.Window +import QtQuick.Controls as QQC2 +import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.delegates as Delegates +import org.kde.analitza +import QtQuick.Layouts +import org.kde.kalgebra.mobile + +ColumnLayout { + spacing: 0 + + property alias text: field.text + + signal addOperation(operation: string) + + function selectAll(): void { + field.selectAll(); + } + + function remove(start: int, end: int): void { + field.remove(start, end); + } + + function insert(start: int, text: string): void { + field.insert(start, text); + } + + Kirigami.Separator { + Layout.fillWidth: true + } + + ListView { + id: view + currentIndex: -1 + keyNavigationWraps: true + Layout.fillWidth: true + Layout.preferredHeight: Math.min(contentHeight, Kirigami.Units.gridUnit * 10) + clip: true + model: field.currentWord.length > 0 ? filterModel : [] + + QSortFilterProxyModel { + id: filterModel + sourceModel: OperatorsModel { id: operators } + filterRegularExpression: new RegExp("^" + field.currentWord) + filterCaseSensitivity: Qt.CaseInsensitive + } + + delegate: Delegates.RoundedItemDelegate { + required property int index + required property string description + required property string name + required property bool isVariable + + text: name + " - " + description + highlighted: view.currentIndex === index + width: ListView.view.width + + function complete() { + let toInsert = name.substr(field.currentWord.length); + if(isVariable) + toInsert += '('; + field.insert(field.cursorPosition, toInsert) + } + + onClicked: complete() + Keys.onReturnPressed: complete() + } + } + + Kirigami.Separator { + Layout.fillWidth: true + visible: view.count > 0 + } + + QQC2.TextField { + id: field + + focus: true + + readonly property string currentWord: operators.lastWord(field.cursorPosition, field.text) + + Layout.minimumWidth: parent.width + Layout.preferredHeight: Kirigami.Units.gridUnit * 2 + + background: null + + placeholderText: i18n("Expression to calculate...") + inputMethodHints: /*Qt.ImhPreferNumbers |*/ Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase + + Keys.forwardTo: view.visible && view.currentIndex >= 0 ? [ view.currentItem ] : null + Keys.onTabPressed: view.incrementCurrentIndex() + Keys.onUpPressed: view.decrementCurrentIndex() + Keys.onDownPressed: view.incrementCurrentIndex() + Keys.onReturnPressed: { + view.currentIndex = -1; + addOperation(text); + field.text = ''; + } + } +} + diff --git a/mobile/content/ui/controls/RealInput.qml b/mobile/content/ui/controls/RealInput.qml new file mode 100644 index 0000000..76cad02 --- /dev/null +++ b/mobile/content/ui/controls/RealInput.qml @@ -0,0 +1,29 @@ +/************************************************************************************* + * Copyright (C) 2015 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +import QtQuick.Controls 2.0 +import QtQuick 2.0 + +TextField +{ + id: input + + readonly property real realValue: Number.fromLocaleString(locale, text) + validator: DoubleValidator {} + inputMethodHints: Qt.ImhPreferNumbers +} diff --git a/mobile/content/ui/main.qml b/mobile/content/ui/main.qml new file mode 100644 index 0000000..d2df8f4 --- /dev/null +++ b/mobile/content/ui/main.qml @@ -0,0 +1,158 @@ +// SPDX-FileCopyrightText: 2015 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls as QQC2 +import QtQuick.Templates as T +import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.delegates as Delegates +import org.kde.analitza +import org.kde.kalgebra.mobile + +Kirigami.ApplicationWindow +{ + id: rootItem + height: 800 + width: Kirigami.Units.gridUnit * 70 + visible: true + + readonly property int columnWidth: Kirigami.Units.gridUnit * 13 + wideScreen: width > columnWidth * 5 + + Kirigami.PagePool { + id: mainPagePool + } + + globalDrawer: Kirigami.OverlayDrawer { + id: drawer + + edge: Qt.application.layoutDirection === Qt.RightToLeft ? Qt.RightEdge : Qt.LeftEdge + + modal: !rootItem.wideScreen + onModalChanged: drawerOpen = !modal + handleVisible: modal + width: contentItem ? columnWidth : 0 + + leftPadding: 0 + rightPadding: 0 + topPadding: 0 + bottomPadding: 0 + + Kirigami.Theme.colorSet: Kirigami.Theme.View + Kirigami.Theme.inherit: false + + drawerOpen: true + + readonly property list actions: [ + Kirigami.PagePoolAction { + icon.name: "utilities-terminal" + text: i18n("Calculator") + page: "qrc:/Console.qml" + pagePool: mainPagePool + }, + Kirigami.PagePoolAction { + id: show2dPlotAction + icon.name: "draw-bezier-curves" + text: i18n("Graph 2D") + page: "qrc:/Plot2D.qml" + pagePool: mainPagePool + }, + Kirigami.PagePoolAction { + id: show3dPlotAction + icon.name: "adjustrgb" + text: i18n("Graph 3D") + page: "qrc:/Plot3D.qml" + pagePool: mainPagePool + }, + Kirigami.PagePoolAction { + icon.name: "kspread" + text: i18n("Value Tables") + page: "qrc:/Tables.qml" + pagePool: mainPagePool + }, + Kirigami.PagePoolAction { + icon.name: "document-properties" + text: i18n("Variables") + page: "qrc:/VariablesView.qml" + pagePool: mainPagePool + }, + Kirigami.PagePoolAction { + icon.name: "documentation" + text: i18n("Dictionary") + page: "qrc:/Dictionary.qml" + pagePool: mainPagePool + }, + Kirigami.PagePoolAction { + icon.name: "help-about" + text: i18n("About KAlgebra") + page: "qrc:/About.qml" + pagePool: mainPagePool + } + ] + + contentItem: ColumnLayout { + spacing: 0 + + QQC2.ToolBar { + Layout.fillWidth: true + Layout.preferredHeight: rootItem.pageStack.globalToolBar.preferredHeight + Layout.bottomMargin: Math.round(Kirigami.Units.smallSpacing / 2) + + leftPadding: Kirigami.Units.smallSpacing + rightPadding: Kirigami.Units.smallSpacing + topPadding: Kirigami.Units.smallSpacing + bottomPadding: Kirigami.Units.smallSpacing + + contentItem: Kirigami.Heading { + text: i18n("KAlgebra") + } + } + + Repeater { + delegate: Delegates.RoundedItemDelegate { + required property var modelData + action: modelData + Layout.fillWidth: true + } + model: drawer.actions + } + + Item { + Layout.fillHeight: true + } + } + } + + readonly property Component customDrawer: Kirigami.OverlayDrawer { + leftPadding: 0 + rightPadding: 0 + topPadding: 0 + bottomPadding: 0 + + edge: Qt.application.layoutDirection == Qt.RightToLeft ? Qt.LeftEdge : Qt.RightEdge + modal: !rootItem.wideScreen + onModalChanged: drawerOpen = !modal + drawerOpen: true + onContentItemChanged: if (contentItem) { + contentItem.visible = (mainPagePool.lastLoadedItem.drawerContent !== undefined); + } + width: mainPagePool.lastLoadedItem.drawerContent ? columnWidth : 0 + + contentItem: mainPagePool.lastLoadedItem.drawerContent ?? null + handleVisible: mainPagePool.lastLoadedItem.drawerContent !== undefined + + Kirigami.Theme.colorSet: Kirigami.Theme.View + Kirigami.Theme.inherit: false + } + + readonly property Component normalDrawer: Kirigami.ContextDrawer {} + + Component.onCompleted: if (Kirigami.Settings.isMobile) { + contextDrawer = normalDrawer.createObject(rootItem); + } else { + contextDrawer = customDrawer.createObject(rootItem); + } + + pageStack.initialPage: mainPagePool.loadPage("qrc:/Console.qml") +} diff --git a/mobile/kalgebramobile.cpp b/mobile/kalgebramobile.cpp new file mode 100644 index 0000000..00cea0c --- /dev/null +++ b/mobile/kalgebramobile.cpp @@ -0,0 +1,90 @@ +// SPDX-FileCopyrightText: 2010 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "kalgebramobile.h" + +#include +#include + +#include "../src/consolemodel.h" + +#include "clipboard.h" +#include +#include +#include + +using namespace Analitza; + +KAlgebraMobile *KAlgebraMobile::s_self = nullptr; +KAlgebraMobile *KAlgebraMobile::self() +{ + return s_self; +} + +Q_DECLARE_METATYPE(QSharedPointer) + +KAlgebraMobile::KAlgebraMobile(QObject *parent) + : QObject(parent) + , m_functionsModel(nullptr) + , m_vars(new Analitza::Variables) +{ + Q_ASSERT(s_self == nullptr); + s_self = this; + + const auto uri = "org.kde.kalgebra.mobile"; + qmlRegisterType("org.kde.kalgebra.mobile", 1, 0, "ConsoleModel"); + qmlRegisterType("org.kde.kalgebra.mobile", 1, 0, "QSortFilterProxyModel"); + qmlRegisterUncreatableType("org.kde.kalgebra.mobile", 1, 0, "QAbstractItemModel", QStringLiteral("no")); + qmlRegisterType(uri, 1, 0, "Clipboard"); + + qmlRegisterAnonymousType("Kalgebra", 1); + qmlRegisterUncreatableType("org.kde.kalgebra.mobile", 1, 0, "Expression", QStringLiteral("because")); + qRegisterMetaType>("QSharedPointer"); +} + +PlotsModel *KAlgebraMobile::functionsModel() +{ + if (!m_functionsModel) { + m_functionsModel = new Analitza::PlotsModel(this); + connect(m_functionsModel, &QAbstractItemModel::rowsRemoved, this, &KAlgebraMobile::functionRemoved); + connect(m_functionsModel, &QAbstractItemModel::rowsInserted, this, &KAlgebraMobile::functionInserted); + connect(m_functionsModel, &QAbstractItemModel::dataChanged, this, &KAlgebraMobile::functionModified); + } + + return m_functionsModel; +} + +void KAlgebraMobile::functionInserted(const QModelIndex &parent, int start, int end) +{ + Q_ASSERT(!parent.isValid()); + for (int i = start; i <= end; i++) { + QModelIndex idx = functionsModel()->index(i, 1); + m_vars->modify(idx.sibling(i, 0).data().toString(), Analitza::Expression(idx.data().toString())); + } +} + +void KAlgebraMobile::functionRemoved(const QModelIndex &parent, int start, int end) +{ + Q_ASSERT(!parent.isValid()); + for (int i = start; i <= end; i++) { + QModelIndex idx = functionsModel()->index(i); + m_vars->remove(functionsModel()->data(idx, Qt::DisplayRole).toString()); + } +} + +void KAlgebraMobile::functionModified(const QModelIndex &idxA, const QModelIndex &idxB) +{ + if (idxB.column() == 1) { + for (int i = idxA.row(); i < idxB.row(); ++i) { + QModelIndex idx = functionsModel()->index(i, 1); + m_vars->modify(idx.sibling(i, 0).data().toString(), Analitza::Expression(idx.data().toString())); + } + } // else TODO: figure out how to control a "rename" +} + +QSharedPointer KAlgebraMobile::variables() const +{ + return m_vars; +} + +#include "moc_kalgebramobile.cpp" diff --git a/mobile/kalgebramobile.h b/mobile/kalgebramobile.h new file mode 100644 index 0000000..d56df95 --- /dev/null +++ b/mobile/kalgebramobile.h @@ -0,0 +1,64 @@ +/************************************************************************************* + * Copyright (C) 2010 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef KALGEBRAMOBILE_H +#define KALGEBRAMOBILE_H + +#include +#include +#include + +class QModelIndex; +namespace Analitza +{ +class PlotsModel; +} + +class KAlgebraMobile : public QObject +{ + Q_OBJECT + Q_PROPERTY(QSharedPointer variables READ variables NOTIFY variablesChanged) +public: + explicit KAlgebraMobile(QObject *parent = nullptr); + + static KAlgebraMobile *self(); + void notifyVariablesChanged() + { + variablesChanged(); + } + +public Q_SLOTS: + Analitza::PlotsModel *functionsModel(); + QSharedPointer variables() const; + +private Q_SLOTS: + void functionRemoved(const QModelIndex &parent, int start, int end); + void functionModified(const QModelIndex &idxA, const QModelIndex &idxB); + void functionInserted(const QModelIndex &parent, int start, int end); + +Q_SIGNALS: + void variablesChanged(); + +private: + static KAlgebraMobile *s_self; + + Analitza::PlotsModel *m_functionsModel; + QSharedPointer m_vars; +}; + +#endif // KALGEBRAMOBILE_H diff --git a/mobile/main.cpp b/mobile/main.cpp new file mode 100644 index 0000000..b0fd7cc --- /dev/null +++ b/mobile/main.cpp @@ -0,0 +1,64 @@ +// SPDX-FileCopyrightText: 2010 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +#include +#ifdef Q_OS_ANDROID +#include +#else +#include +#endif + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "kalgebra_version.h" +#include "kalgebramobile.h" + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ +#ifdef Q_OS_ANDROID + QQuickStyle::setStyle(QStringLiteral("Material")); +#endif +#ifdef Q_OS_ANDROID + QGuiApplication app(argc, argv); +#else + QApplication app(argc, argv); +#endif + KLocalizedString::setApplicationDomain("kalgebramobile"); + KAboutData about(QStringLiteral("kalgebramobile"), + QStringLiteral("KAlgebra"), + QStringLiteral(KALGEBRA_VERSION_STRING), + i18n("A portable calculator"), + KAboutLicense::GPL, + i18n("(C) 2006-2023 Aleix Pol i Gonzalez")); + about.addAuthor(i18n("Aleix Pol i Gonzalez"), i18nc("@info:credit", "Maintainer"), QStringLiteral("aleixpol@kde.org")); + about.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails")); + KAboutData::setApplicationData(about); + QGuiApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("kalgebra"))); + + { + QCommandLineParser parser; + about.setupCommandLine(&parser); + parser.process(app); + about.processCommandLine(&parser); + } + + KAlgebraMobile widget; + + QQmlApplicationEngine engine; + + qmlRegisterSingletonInstance("org.kde.kalgebra.mobile", 1, 0, "App", &widget); + qmlRegisterSingletonType("org.kde.kalgebra.mobile", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue { + return engine->toScriptValue(KAboutData::applicationData()); + }); + engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); + engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); + return app.exec(); +} diff --git a/mobile/org.kde.kalgebramobile.appdata.xml b/mobile/org.kde.kalgebramobile.appdata.xml new file mode 100644 index 0000000..6b99663 --- /dev/null +++ b/mobile/org.kde.kalgebramobile.appdata.xml @@ -0,0 +1,160 @@ + + + org.kde.kalgebramobile + CC0-1.0 + GPL-2.0-or-later + KAlgebra Mobile + جبرك للمحمول + KAlgebra - мобилна версия + KAlgebra mòbil + KAlgebra mòbil + Mobilní KAlgebra + KAlgebra Mobile + KAlgebra Mobile + KAlgebra Mobile + KAlgebra Mobile + KAlgebra Mobile + KAlgebra Mobile + KAlgebra Mobile + KAlgebra mugikorra + KAlgebra Mobile + KAlgebra Mobile + KAlgebra Mobile + KAlgebra לניידים + KAlgebra Mobile + KAlgebra Mobile + KAlgebra Mobile + KAlgebra Mobile + მობილური KAlgebra + KAlgebra 모바일 + KAlgebra-mobiel + KAlgebra mobil + ਕੇ-ਐਲਜਬਰਾ ਮੋਬਾਇਲ + Przenośna KAlgebra + KAlgebra Móvel + KAlgebra Móvel + Мобильная KAlgebra + KAlgebra Mobile + KAlgebra Mobile + Mobil Kalgebra + K Cebir Cep + Мобільна KAlgebra + xxKAlgebra Mobilexx + KAlgebra 移动版 + KAlgebra 行動版 +

Graph Calculator + حاسبة رسومية + Графичен калкулатор + Calculadora gràfica + Calculadora gràfica + Kalkulačka grafů + Graphenrechner + Υπολογιστής γραφημάτων + Graph Calculator + Grafea Kalkulilo + Calculadora gráfica + Graafide arvutaja + Kalkulagailu grafikoa + Kaaviolaskin + Calculatrice graphique + Calculadora gráfica + מחשבון תרשימים + Számológép + Calculator Graphic + Kalkulator Grafik + Calcolatrice grafica + გრაფიკული კალკულატორი + 그래핑 계산기 + Rekenmachine met grafieken + Grafkalkulator + ਗਰਾਫ਼ ਕੈਲਕੂਲਟਰ + Kalkulator wykresów + Calculadora de Grafos + Calculadora gráfica + Графический калькулятор + Grafická kalkulačka + Kalkulator grafov + Grafräknare + Grafik Hesap Makinesi + Графічний калькулятор + xxGraph Calculatorxx + 图形计算器 + 圖形計算機 + +

KAlgebra is an application that can replace your graphing calculator. It has numerical, logical, symbolic, and analysis features that let you calculate mathematical expressions on the console and graphically plot the results in 2D or 3D.

+

هو أحد التطبيقات التي يمكن أن تحل محل آلة حاسبة الرسوم البيانية الخاصة بك. يحتوي على ميزات عددية ومنطقية ورمزية وتحليلية تتيح لك حساب التعبيرات الرياضية على وحدة التحكم ورسم النتائج بيانياً ثنائي الأبعاد أو ثلاثي الأبعاد.

+

KAlgebra е приложение, което може да замени вашия графичен калкулатор. То разполага с числени, логически, символни и аналитични функции, които ви позволяват да изчислявате математически изрази на конзолата и да изобразявате графично резултатите в 2D или 3D.

+

El KAlgebra és una aplicació que pot substituir la calculadora gràfica. Té característiques numèriques, lògiques, simbòliques, i analítiques que permeten calcular expressions matemàtiques a la consola i dibuixar gràficament els resultats en 2D o 3D.

+

KAlgebra és una aplicació que pot substituir la calculadora gràfica. Té característiques numèriques, lògiques, simbòliques, i analítiques que permeten calcular expressions matemàtiques en la consola i dibuixar gràficament els resultats en 2D o 3D.

+

KAlgebra ist eine Anwendung, die Ihren grafischen Taschenrechner ersetzt. Es hat numerische, logische, symbolische und analytische Fähigkeiten, mit denen Sie mathematische Ausdrücke im Rechner auswerten und die Ergebnisse zwei- oder dreidimensional darstellen können.

+

Η KAlgebra είναι μία εφαρμογή αντικατάστασης του υπολογιστή για τα γραφικά σας. Έχει αριθμητικές, λογικές, συμβολικές και αναλυτικές λειτουργίες για να υπολογίζετε μαθηματικές εκφράσεις στην κονσόλα και να αναπαριστάτε γραφικά τα αποτελέσματα σε 2 ή 3 διαστάσεις.

+

KAlgebra is an application that can replace your graphing calculator. It has numerical, logical, symbolic, and analysis features that let you calculate mathematical expressions on the console and graphically plot the results in 2D or 3D.

+

KAlgebra estas aplikaĵo, kiu povas anstataŭigi vian grafikan kalkulilon. Ĝi havas nombrajn, logikajn, simbolajn kaj analizajn funkciojn, kiuj ebligas al vi kalkuli matematikajn esprimojn sur la konzolo kaj grafike kalkuli la rezultojn en 2D aŭ 3D.

+

KAlgebra es una aplicación que puede sustituir a su calculadora gráfica. Posee funciones numéricas, lógicas, simbólicas y de análisis que le permiten calcular expresiones matemáticas en la consola y representar gráficamente el resultado en 2 o 3 dimensiones.

+

KAlgebra on rakendus, mis võib asendada su senist graafikalkulaatorit Sel on arvulisi, loogilisi, sümbolilisi ja analüüsiomadusi, mis võimaldavad arvutada matemaatilisi avaldisi konsoolis ja lasta tulemusi kujutada graafiliselt nii tasapinnaliselt (2D) kui ka ruumiliselt (3D).

+

KAlgebra zure kalkulagailu grafikoa ordezka dezakeen aplikazio bat da. Kontsolan adierazpen matematikoak kalkulatzen eta emaitzak 2D edo 3Dtan grafikoki trazatzen uzten dizuten ezaugarriak ditu, zenbakizkoak, logikoak, sinbolikoak, eta analisikoak.

+

KAlgebra on sovellus, joka voi korvata kaaviolaskimesi. Siinä on numeeriset, loogiset, symboliset ja analyysiominaisuudet, joiden avulla voit laskea matemaattisia lausekkeita konsolissa ja graafisesti kuvata tulokset kaksi- tai kolmiulotteisena.

+

KAlgebra est une application qui peut remplacer votre calculatrice graphique. Elle fournit des fonctions pour le calcul numérique, logique, symbolique et l'analyse qui vous permettent de calculer des expressions mathématiques dans la console et tracer graphiquement les résultats en 2D ou 3D.

+

KAlgebra é unha aplicación que pode substituír as calculadoras gráficas. Ten funcionalidades numéricas, lóxicas, simbólicas e de análise que permiten calcular expresións matemáticas na consola e trazar graficamente os resultados en 2D ou 3D.

+

KAlgebra הוא יישום שיכול להחליף את מחשבון התרשימים שלך. יש לו יכולות מספריות, לוגיות, סמליות וניתוח שיאפשרו לך לחשב ביטויים מתמטיים במסוף ולשרטט את התוצאות בצורה גרפית בדו־ממד או תלת־ממד.

+

A KAlgebra egy olyan alkalmazás, amely helyettesítheti a grafikus számológépet. Numerikus, logikai, szimbolikus és analízis funkciókkal rendelkezik, amelyek segítségével matematikai kifejezéseket számolhat a konzolon, és az eredményeket grafikusan ábrázolhatja 2D-ben vagy 3D-ben.

+

KAlgebra es un application que pote reimplaciare tu calculator graphic. Il ha characteristicas numeric, logic, symbolic, e de analysis que te permitte calcular expressiones mathematic expressions sur le consolle e traciar graphicamente le resultatos in 2D o 3D.

+

KAlgebra adalah aplikasi yang dapat menggantikan kalkulator grafikmu. Ini memiliki fitur numerik, logis, simbolis, dan analisis yang memungkinkanmu menghitung ekspresi matematis pada konsol dan secara grafik memplot hasilnya dalam 2D atau 3D.

+

KAlgebra è un'applicazione che può sostituire la tua calcolatrice grafica. Ha funzionalità numeriche, logiche, simboliche e di analisi che ti permettono di calcolare le espressioni matematiche sulla console e di visualizzarne il grafico in 2D o 3D.

+

KAlgebra აპლიკაციაა, რომელსაც თქვენი კალკულატორის ჩანაცვლება შეუძლია. მას გააჩნია რიცხვითი, ლოგიკური, სიმბოლური და ანალიზის თვისებები, რომლებიც საშუალებას გაძლევთ, მათემატიკური გამოსახულებები კონსოლში გამოთვალოთ და მათი გრაფიკები 2 ან 3 განზომილებიან სივრცეში დახატოთ.

+

KAlgebra는 그래핑 계산기를 대체할 수 있는 앱입니다. 수학, 논리, 기호, 분석 기능이 있으며 콘솔에서 수식을 계산하고 2D나 3D로 결과를 플롯할 수 있습니다.

+

KAlgebra is een toepassing die uw grafische rekenmachine kan vervangen. Het heeft numerieke, logische, symbolische en analyse functies die u mathematische expressies op de console laar berekenen en de resultaten grafisch plot in 2D of 3D.

+

KAlgebra er eit program du kan bruka som ein grafkalkulator. Programmet støttar tal, logiske operatorar, symbol og analyse­funksjonar som lèt deg rekna ut matematiske uttrykk og visa dei grafisk, både i 2D og 3D.

+

KAlgebra jest programem, który może zastąpić twój kalkulator graficzny. Ma możliwość przeprowadzania analiz numerycznych, logicznych i symbolicznych, które umożliwiają obliczanie wyrażeń matematycznych w konsoli i rysowanie wyników w 2D lub 3D.

+

O KAlgebra é uma aplicação que poderá substituir a sua calculadora gráfica. Tem funcionalidades numéricas, lógicas, simbólicas e analíticas que lhe permitem calcular expressões matemáticas na consola e lhe permite desenhar de forma gráfica os resultados em 2D e 3D.

+

KAlgebra é um aplicativo que poderá substituir a sua calculadora gráfica. Tem funcionalidades numéricas, lógicas, simbólicas e analíticas que lhe permitem calcular expressões matemáticas no console e também desenhar de forma gráfica os resultados em 2D e 3D.

+

KAlgebra — программа-калькулятор с функцией построения графиков. Позволяет вычислять значения выражений и строить двумерные и трёхмерные графики функций.

+

KAlgebra je aplikácia, ktorá vie nahradiť vašu grafickú kalkulačku. Má numerické, logické, symbolické a analytické funkcie, ktoré vám umožnia vypočítať matematické výrazy na konzole a graficky znázorniť výsledky v 2D alebo 3D.

+

KAlgebra je aplikacija, ki lahko nadomesti vaš grafični kalkulator. Ima numerične, logične, simbolične in analizne funkcije, ki omogočajo izračunavanje matematičnih izrazov na konzoli in rezultate narišejo v 2D ali 3D grafu.

+

Kalgebra är en applikation som kan ersätta en grafräknare. Den har numeriska, logiska, symboliska och analytiska funktioner som låter dig beräkna matematiska uttryck i terminalen och rita upp resultaten grafiskt med två eller tre dimensioner.

+

K Cebir, grafik hesap makinenızın yerine geçebilecek bir uygulamadır. Sayısal, mantıksal, sembolik ve analiz özellikleriyle, uçbirim üzerinden matematiksel ifadeleri hesaplayabilir ve sonuçları 2B veya 3B olarak olarak grafik olarak çizdirebilirsiniz.

+

KAlgebra — програма, яка може замінити вам графічний калькулятор. У ній ви знайдете можливості з числового, логічного, символічного аналізу, які нададуть вам змогу обчислювати математичні вирази у консолі і графічно будувати результати на площині або у просторі.

+

xxKAlgebra is an application that can replace your graphing calculator. It has numerical, logical, symbolic, and analysis features that let you calculate mathematical expressions on the console and graphically plot the results in 2D or 3D.xx

+

KAlgebra可以代替您的其他图形计算器。它包含数值计算、逻辑计算、符号计算,以及分析功能,能让您在控制台中计算数学表达式,并将函数结果绘制为2D或3D图像。

+

KAlgebra 是個能替代繪圖計算機的應用程式,它包含數字、邏輯、符號以及分析功能,讓您能在終端計算數學表達式,並用圖形化的方式以 2D 或 3D 繪製結果。

+
+ https://apps.kde.org/kalgebra + https://bugs.kde.org/enter_bug.cgi?format=guided&product=kalgebra + https://docs.kde.org/?application=kalgebra + https://www.kde.org/community/donations/?app=kalgebra&source=appdata + + + https://cdn.kde.org/screenshots/kalgebra/kalgebra.png + + + https://cdn.kde.org/screenshots/kalgebra/kalgebra-plot2d.png + + + https://cdn.kde.org/screenshots/kalgebra/kalgebra-mobile.png + + + org.kde.kalgebramobile.desktop + KDE + + kalgebramobile + + + https://play.google.com/store/apps/details?id=org.kde.kalgebramobile + + + + + + + + + + + + + + + + + + diff --git a/mobile/org.kde.kalgebramobile.desktop b/mobile/org.kde.kalgebramobile.desktop new file mode 100644 index 0000000..ae2d1fa --- /dev/null +++ b/mobile/org.kde.kalgebramobile.desktop @@ -0,0 +1,158 @@ +[Desktop Entry] +Name=KAlgebra Mobile +Name[ar]=جبرك للمحمول +Name[bg]=KAlgebra (мобилен) +Name[bs]=KAlgebra Mobile +Name[ca]=KAlgebra mòbil +Name[ca@valencia]=KAlgebra mòbil +Name[cs]=Mobilní KAlgebra +Name[da]=KAlgebra Mobile +Name[de]=KAlgebra Mobile +Name[el]=KAlgebra Mobile +Name[en_GB]=KAlgebra Mobile +Name[eo]=KAlgebra-Mobila +Name[es]=KAlgebra móvil +Name[et]=KAlgebra mobiilis +Name[eu]=KAlgebra mugikorra +Name[fa]=KAlgebra تلفن همراه +Name[fi]=KAlgebra mobiililaitteille +Name[fr]=KAlgebra Mobile +Name[ga]=KAlgebra Soghluaiste +Name[gl]=KAlgebra Mobile +Name[he]=KAlgebra לנייד +Name[hu]=KAlgebra Mobile +Name[ia]=KAlgebra Mobile +Name[is]=KAlgebra fyrir farsíma +Name[it]=KAlgebra Mobile +Name[ja]=KAlgebra モバイル +Name[ka]=მობილური KAlgebra +Name[kk]=KAlgebra Mobile +Name[km]=KAlgebra Mobile +Name[ko]=KAlgebra 모바일 +Name[lt]=KAlgebra Mobile +Name[lv]=KAlgebra Mobile +Name[mr]=के-एल्जिब्रा मोबाईल +Name[nb]=KAlgebra mobil +Name[nds]=KAlgebra för Mobilreedschappen +Name[nl]=KAlgebra-mobiel +Name[nn]=KAlgebra mobil +Name[pa]=ਕੇ-ਐਲਜਬਰਾ ਮੋਬਾਇਲ +Name[pl]=Przenośna KAlgebra +Name[pt]=KAlgebra Móvel +Name[pt_BR]=KAlgebra Móvel +Name[ru]=Мобильная KAlgebra +Name[sk]=KAlgebra Mobile +Name[sl]=KAlgebra Mobile +Name[sv]=Kalgebra för mobil +Name[te]=కె అల్జీబ్రా మొబైలు +Name[tr]=K Cebir Cep +Name[ug]=كۆچمە ئۈسكۈنىلەر ئۈچۈن KAlgebra +Name[uk]=Мобільна KAlgebra +Name[x-test]=xxKAlgebra Mobilexx +Name[zh_CN]=KAlgebra 移动 +Name[zh_TW]=KAlgebra 行動版 +GenericName=Pocket Graph Calculator +GenericName[ar]=حاسبة رسومية للجيب +GenericName[bg]=Джобен графичен калкулатор +GenericName[bs]=Džepni graf kalkulator +GenericName[ca]=Calculadora gràfica de butxaca +GenericName[ca@valencia]=Calculadora gràfica de butxaca +GenericName[cs]=Kapesní grafická kalkulačka +GenericName[da]=Graflommeregner +GenericName[de]=Graphen-Taschenrechner +GenericName[el]=Φορητός γραφικός υπολογιστής +GenericName[en_GB]=Pocket Graph Calculator +GenericName[eo]=Poŝa Grafeokalkulilo +GenericName[es]=Calculadora gráfica de bolsillo +GenericName[et]=Graafikute arvutaja taskus +GenericName[eu]=Sakelako grafikoen kalkulagailua +GenericName[fa]=ماشین حساب جیبی گراف +GenericName[fi]=Graafinen laskin mobiililaitteille +GenericName[fr]=Calculatrice graphique de poche +GenericName[ga]=Áireamhán Grafach Póca +GenericName[gl]=Calculadora gráfica de peto +GenericName[he]=מחשבון גרפי נייד +GenericName[hu]=Zsebszámológép +GenericName[ia]=Calculator Graphic de Tasca +GenericName[is]=Vasareiknir fyrir gröf +GenericName[it]=Calcolatrice grafica tascabile +GenericName[ja]=ポケットグラフ計算機 +GenericName[ka]=ჯიბის გრაფიკული კალკულატორი +GenericName[kk]=Ықшам график калькуляторы +GenericName[km]=ម៉ាស៊ីន​គិត​លេខ​ក្រាហ្វិក​ដែល​ដាក់​តាម​ខ្លួន​បាន +GenericName[ko]=포켓 그래핑 계산기 +GenericName[lt]=Kišeninis grafinis skaičiuotuvas +GenericName[lv]=Kabatas grafiskais kalkulators +GenericName[mr]=पाकिट आलेख गणकयंत्र +GenericName[nb]=Grafikk-lommekalkulator +GenericName[nds]=Taschenreekner för Diagrammen +GenericName[nl]=Zakrekenmachine met grafieken +GenericName[nn]=Grafisk lommereknar +GenericName[pa]=ਪਾਕਟ ਗਰਾਫ਼ ਕੈਲਕੂਲੇਟਰ +GenericName[pl]=Kieszonkowy kalkulator graficzny +GenericName[pt]=Calculadora Gráfica Portátil +GenericName[pt_BR]=Calculadora gráfica portátil +GenericName[ru]=Карманный графический калькулятор +GenericName[sk]=Vrecková grafická kalkulačka +GenericName[sl]=Žepno računalo z grafi +GenericName[sv]=Grafminiräknare +GenericName[te]=జేబులొ పట్టే రేఖాచిత్రం గనన యంత్రము +GenericName[tr]=Cep Grafik Hesap Makinesi +GenericName[uk]=Кишеньковий графічний калькулятор +GenericName[x-test]=xxPocket Graph Calculatorxx +GenericName[zh_CN]=口袋图形计算器 +GenericName[zh_TW]=行動版圖形計算器 +Comment=Pocket Math Expression Solver and Plotter +Comment[ar]=حلّال ورسّام التعابير الرياضية للجيب +Comment[bg]=Джобен инструмент за решаване на математически задачи +Comment[bs]=Matematski sistem za rješavanje i crtač +Comment[ca]=Solucionador i representador gràfic de butxaca d'expressions matemàtiques +Comment[ca@valencia]=Solucionador i representador gràfic de butxaca d'expressions matemàtiques +Comment[cs]=Kapesní řešitel a souřadnicový zapisovač matematických výrazů +Comment[da]=Lommeregner til at løse og plotte matematiske udtryk +Comment[de]=Mathematischer Taschengleichungslöser und -zeichner +Comment[el]=Φορητός σχεδιαστής και επιλυτής μαθηματικών εκφράσεων +Comment[en_GB]=Pocket Maths Expression Solver and Plotter +Comment[eo]=Poŝa Esprimsolvilo kaj Desegnilo +Comment[es]=Resuelve y dibuja expresiones matemáticas +Comment[et]=Matemaatiliste avaldiste lahendaja ja joonistaja taskus +Comment[eu]=Sakelako matematika adierazpenen ebazlea edo trazatzailea +Comment[fa]=حل‌کننده جیبی عبارت ریاضی و رسام +Comment[fi]=Matemaattisten yhtälöiden ratkaisut ja kuvaajat mobiililaitteille +Comment[fr]=Traceur et résolveur de poche d'expressions mathématiques +Comment[ga]=Réiteoir agus Breacaire Matamaiticiúil don Phóca +Comment[gl]=Resolve e debuxa expresións matemáticas +Comment[he]=פותר ומשרטט ביטויים מתמטיים לנייד +Comment[hu]=Zsebszámológép matematikai kifejezések megoldására, görberajzolásra +Comment[ia]=Resolvitor e traciator de expression mathematic de tasca +Comment[is]=Stærðfræðilausnir og plottun í vasann +Comment[it]=Risolutore e disegnatore tascabile di espressioni matematiche +Comment[ja]=ポケット数式ソルバー&プロッタ +Comment[ka]=პატარა მათემატიკური გამოსახულებების ამომხსნელი და გრაფიკების მხატავი +Comment[kk]=Математикалық теңеуді шешіп графигін салу +Comment[km]=ឧបករណ៍​គូស​ក្រាហ្វិក និង​កម្មវិធី​ដោះស្រាយ​កន្សោម​​​គណិត​ដែល​ដាក់​តាម​ខ្លួន​បាន​ +Comment[ko]=포켓 수식 계산기와 그래핑 도구 +Comment[lt]=Matematinių reiškinių sprendikas ir grafikų braižiklis +Comment[lv]=Kabatas matemātisko izteiksmju risinātājs un attēlotājs +Comment[nb]=Matematisk uttrykksløser og plotter i lomma +Comment[nds]=Taschenreekner för't Lösen un Utdrucken vun Diagrammen +Comment[nl]=Op zak oplossen en plotten van wiskundige uitdrukkingen +Comment[nn]=Berbar matteoppgåveløysar og grafplottar +Comment[pl]=Kieszonkowe rozwiązywanie równań i rysowanie wykresów +Comment[pt]=Resolução e Desenho de Expressões Matemáticas Portátil +Comment[pt_BR]=Solucionador e visualizador portátil de expressões matemáticas +Comment[ru]=Карманное решение и построение графиков математических выражений +Comment[sk]=Vreckový riešiteľ a zapisovač matematických výrazov +Comment[sl]=Žepni reševalnik matematičnih enačb in risalnik grafov +Comment[sv]=Lösning och uppritning av matematiska uttryck i fickformat +Comment[tr]=Cep Matematiksel İfade Çözücü ve Çizici +Comment[ug]=كۆچمە ئۈسكۈنىلەر ئۈچۈن ماتېماتىكىلىق ئىپادىلەرنى يېشىش ۋە سىزىش قورالى +Comment[uk]=Кишеньковий розв’язувач математичних рівнянь та графопобудовник +Comment[x-test]=xxPocket Math Expression Solver and Plotterxx +Comment[zh_CN]=口袋数学式解决与绘图工具 +Comment[zh_TW]=行動版數學解題與繪圖 +Exec=kalgebramobile %u +MimeType=application/x-kalgebra; +Icon=kalgebra +Type=Application +Categories=Qt;KDE;Education;Math;Science; diff --git a/mobile/resources.qrc b/mobile/resources.qrc new file mode 100644 index 0000000..a77fca4 --- /dev/null +++ b/mobile/resources.qrc @@ -0,0 +1,20 @@ + + + content/resources/kde-edu-logo.png + ../icons/64-apps-kalgebra.png + ../icons/sc-apps-kalgebra.svgz + content/ui/main.qml + content/ui/About.qml + content/ui/TableResultPage.qml + content/ui/Console.qml + content/ui/Dictionary.qml + content/ui/Plot2D.qml + content/ui/Plot3D.qml + content/ui/Tables.qml + content/ui/VariablesView.qml + content/ui/controls/RealInput.qml + content/ui/controls/ExpressionInput.qml + content/ui/controls/AddButton.qml + content/ui/controls/AddPlotDialog.qml + + diff --git a/plasmoids/CMakeLists.txt b/plasmoids/CMakeLists.txt new file mode 100644 index 0000000..c43218f --- /dev/null +++ b/plasmoids/CMakeLists.txt @@ -0,0 +1 @@ +plasma_install_package(graphsplasmoid org.kde.graphsplasmoid) diff --git a/plasmoids/graphsplasmoid/contents/ui/config.ui b/plasmoids/graphsplasmoid/contents/ui/config.ui new file mode 100644 index 0000000..22ecd73 --- /dev/null +++ b/plasmoids/graphsplasmoid/contents/ui/config.ui @@ -0,0 +1,28 @@ + + + nowplayingConfig + + + + 0 + 0 + 351 + 341 + + + + + + + Function + + + + + + + + + + + diff --git a/plasmoids/graphsplasmoid/contents/ui/main.qml b/plasmoids/graphsplasmoid/contents/ui/main.qml new file mode 100644 index 0000000..0549b3d --- /dev/null +++ b/plasmoids/graphsplasmoid/contents/ui/main.qml @@ -0,0 +1,73 @@ +/* + * Copyright 2012 Aleix Pol Gonzalez + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick +import org.kde.plasma.plasmoid +import org.kde.plasma.components as PlasmaComponents +import org.kde.kirigami as Kirigami +import org.kde.analitza + +PlasmoidItem { + width: Kirigami.Units.gridUnit * 15 + height: Kirigami.Units.gridUnit * 15 + + property Component compactRepresentation: Component { + PlasmaComponents.Button { + icon.source: "kalgebra" + onClicked: plasmoid.togglePopup() + } + } + property string displayedFunction + onDisplayedFunctionChanged: { + plots.clear() + view.addFunction(displayedFunction) + } + + PlasmaComponents.TextField { + id: input + anchors { + top: parent.top + left: parent.left + right: parent.right + } + onAccepted: { + displayedFunction = text + plasmoid.writeConfig("function", text) + } + } + + Component.onCompleted: { + plasmoid.addEventListener('ConfigChanged', function() { + displayedFunction = plasmoid.readConfig("function") + input.text = displayedFunction + }); + } + + Graph2D { + id: view + anchors { + fill: parent + topMargin: input.height + } + + model: PlotsModel { id: plots } + + ticksShown: false + } +} diff --git a/plasmoids/graphsplasmoid/metadata.json b/plasmoids/graphsplasmoid/metadata.json new file mode 100644 index 0000000..f86f9d9 --- /dev/null +++ b/plasmoids/graphsplasmoid/metadata.json @@ -0,0 +1,137 @@ +{ + "KPlugin": { + "Authors": [ + { + "Email": "aleixpol@kde.org", + "Name": "Aleix Pol Gonzalez", + "Name[ar]": "ألكس بول غنزالز", + "Name[ast]": "Aleix Pol i Gonzàlez", + "Name[bg]": "Aleix Pol Gonzalez", + "Name[ca@valencia]": "Aleix Pol Gonzalez", + "Name[ca]": "Aleix Pol Gonzalez", + "Name[cs]": "Aleix Pol Gonzalez", + "Name[de]": "Aleix Pol Gonzalez", + "Name[en_GB]": "Aleix Pol Gonzalez", + "Name[eo]": "Aleix Pol Gonzalez", + "Name[es]": "Aleix Pol Gonzalez", + "Name[eu]": "Aleix Pol Gonzalez", + "Name[fi]": "Aleix Pol Gonzalez", + "Name[fr]": "Aleix Pol Gonzalez", + "Name[gl]": "Aleix Pol Gonzalez", + "Name[he]": "אלש פול גונזלז", + "Name[hu]": "Aleix Pol Gonzalez", + "Name[ia]": "Aleix Pol Gonzalez", + "Name[is]": "Aleix Pol Gonzalez", + "Name[it]": "Aleix Pol Gonzalez", + "Name[ka]": "Aleix Pol Gonzalez", + "Name[ko]": "Aleix Pol Gonzalez", + "Name[nl]": "Aleix Pol Gonzalez", + "Name[nn]": "Aleix Pol Gonzalez", + "Name[pl]": "Aleix Pol Gonzalez", + "Name[pt]": "Aleix Pol Gonzalez", + "Name[pt_BR]": "Aleix Pol Gonzalez", + "Name[ru]": "Aleix Pol Gonzalez", + "Name[sl]": "Aleix Pol Gonzalez", + "Name[sv]": "Aleix Pol Gonzalez", + "Name[tr]": "Aleix Pol Gonzalez", + "Name[uk]": "Aleix Pol Gonzalez", + "Name[x-test]": "xxAleix Pol Gonzalezxx", + "Name[zh_TW]": "Aleix Pol Gonzalez" + } + ], + "Category": "Education", + "Description": "Put the weirdest plots on your desktop!", + "Description[ar]": "ضع أغرب الرسوم على سطح مكتبك!", + "Description[bg]": "Поставете най-яките графики на работния си плот!", + "Description[ca@valencia]": "Poseu les gràfiques més estranyes al vostre escriptori!", + "Description[ca]": "Poseu les gràfiques més estranyes al vostre escriptori!", + "Description[cs]": "Přidejte na svou plochu ty nejdivnější grafy.", + "Description[de]": "Erstellt Plots für Ihre Arbeitsfläche.", + "Description[el]": "Βάλτε τις πιο περίεργες γραφικές απεικονίσεις στην επιφάνεια εργασίας σας!", + "Description[en_GB]": "Put the weirdest plots on your desktop!", + "Description[eo]": "Metu la plej diboĉajn grafeojn sur via labortablo!", + "Description[es]": "Traza las gráficas más retorcidas en su escritorio", + "Description[eu]": "Ipini zure mahaigainean trazatu bitxienak!", + "Description[fi]": "Pane mitä ihmeellisimpiä kuvaajia työpöydällesi!", + "Description[fr]": "Placez les tracés les plus étranges sur votre bureau !", + "Description[gl]": "Poña as gráficas máis charramangueiras no seu escritorio!", + "Description[he]": "יצירת שרטוטים הזויים לשולחן העבודה שלך!", + "Description[hu]": "Tegye a legfurább görbéket az asztalára!", + "Description[ia]": "Pone le tracias plus bizzarre su tu scriptorio!", + "Description[is]": "Settu skrítnustu gröfin þín á skjáborðið!", + "Description[it]": "Metti i grafici più strani sul tuo desktop!", + "Description[ka]": "დადეთ უცნაური გრაფიკები სამუშაო მაგიდის ფონად!", + "Description[ko]": "데스크톱에 재미있는 플롯을 그리십시오!", + "Description[nl]": "Zet de wonderlijkste plots op uw bureaublad!", + "Description[nn]": "Lag dei merkelegast tenkjelege plotta!", + "Description[pl]": "Rysuj najdziwniejsze wykresy na swoim pulpicie!", + "Description[pt]": "Coloque os gráficos mais estranhos no seu ecrã!", + "Description[pt_BR]": "Coloque os gráficos mais estranhos na sua área de trabalho!", + "Description[ru]": "Разместите на рабочем столе причудливые графики!", + "Description[sl]": "Postavite najbolj čudaške grafe na vaše namizje!", + "Description[sv]": "Rita riktigt konstiga diagram på skrivbordet.", + "Description[tr]": "Masaüstüne en tuhaf çizimleri koy!", + "Description[uk]": "Розташуйте на вашій стільниці найвигадливіше креслення!", + "Description[x-test]": "xxPut the weirdest plots on your desktop!xx", + "Description[zh_TW]": "把您所想得到的詭異繪圖放在桌面上吧!", + "EnabledByDefault": true, + "Icon": "kalgebra", + "Id": "org.kde.graphsplasmoid", + "License": "GPL", + "Name": "2D Plots", + "Name[ar]": "رسوم ثنائية البعد", + "Name[bg]": "Двумерни графики", + "Name[bs]": "2D crtanja", + "Name[ca@valencia]": "Gràfiques en 2D", + "Name[ca]": "Gràfiques en 2D", + "Name[cs]": "2D grafy", + "Name[da]": "2D-plot", + "Name[de]": "2D-Plots", + "Name[el]": "2D Γραφικές απεικονίσεις", + "Name[en_GB]": "2D Plots", + "Name[eo]": "2D-desegnaĵoj", + "Name[es]": "Gráficas 2D", + "Name[et]": "2D joonised", + "Name[eu]": "2Dko trazatuak", + "Name[fa]": "نمودار دو بعدی", + "Name[fi]": "2D-kuvaajat", + "Name[fr]": "Tracés 2D", + "Name[gl]": "Gráficas en 2D", + "Name[he]": "שרטוטים דו־ממדיים", + "Name[hu]": "2D görbék", + "Name[ia]": "2Plots (Tracias)", + "Name[is]": "Tvívítt graf", + "Name[it]": "Grafici 2D", + "Name[ka]": "2D გრაფიკები", + "Name[kk]": "2D графиктер", + "Name[km]": "ការ​គ្រោង​ធ្វេមាត្រ", + "Name[ko]": "2차원 플롯", + "Name[lt]": "2D grafikai", + "Name[nb]": "2D-plott", + "Name[nds]": "2D-Plots", + "Name[nl]": "2d-plots", + "Name[nn]": "2D-plott", + "Name[pa]": "2ਡੀ ਪਲਾਟ", + "Name[pl]": "Wykresy 2D", + "Name[pt]": "Gráficos 2D", + "Name[pt_BR]": "Gráficos em 2D", + "Name[ru]": "Двумерный график", + "Name[sk]": "2D zákresy", + "Name[sl]": "2D grafi", + "Name[sv]": "Tvådimensionella diagram", + "Name[te]": "2D ప్లాట్", + "Name[tr]": "2B Çizimler", + "Name[uk]": "Плоскі графіки", + "Name[x-test]": "xx2D Plotsxx", + "Name[zh_CN]": "二维绘图", + "Name[zh_TW]": "2D 繪圖", + "ServiceTypes": [ + "Plasma/Applet" + ], + "Version": "1.0", + "Website": "https://edu.kde.org/kalgebra" + }, + "X-Plasma-API": "declarativeappletscript", + "X-Plasma-API-Minimum-Version": "6.0", + "X-Plasma-MainScript": "ui/main.qml" +} diff --git a/po/ar/kalgebra.po b/po/ar/kalgebra.po new file mode 100644 index 0000000..17b2a4b --- /dev/null +++ b/po/ar/kalgebra.po @@ -0,0 +1,899 @@ +# translation of kalgebra.po to +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Youssef Chahibi , 2007. +# Safa Alfulaij , 2015. +# Zayed Al-Saidi , 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-18 19:23+0400\n" +"Last-Translator: Zayed Al-Saidi \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid "
%2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "خيارات: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "ألصق \"%1\" إلى الدَّخْل" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "ألصق إلى الدَّخْل" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    خطأ: %1‎
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "استُورد: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    خطأ: تعذّر تحميل %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "معلومات" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "أضف/حرّر دالةً" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "عاين" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "من:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "إلى:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "خيارات" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "حسنًا" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "أزل" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "الخيارات الّتي حدّدتها غير صحيحة" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "لا يمكن أن يكون الحدّ الأدنى أكبر من الحدّ الأعلى" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "ارسم ثنائيّ أبعاد" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "ارسم ثلاثيّ أبعاد" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "جلسة" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "المتغيّرات" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "ال&حاسبة" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "ال&حاسبة" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&حمّل سكرِبتًا..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "السّكرِبتات الحديثة" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "ا&حفظ السّكرِبت..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&صدّر السجلّ..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "أ&درج إجابة..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "وضع التّنفيذ" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "احسب" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "قدّر" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "الدّوال" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "القائمة" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "أ&ضف" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "منفذ العرض" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "مبيان ثنا&ئيّ أبعاد" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "مبيان ث&نائيّ أبعاد" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "ال&شّبكة" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "أ&بقِ النّسبة الباعيّة" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "الدّقّة" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "فقيرة" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "عاديّة" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "جيّدة" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "جيّدة جدًّا" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "مبيان ثلا&ثيّ أبعاد" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "مبيان ثلاث&يّ أبعاد" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&صفّر العرض" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "نقاط" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "خطوط" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "صلب" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "العمليّات" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "ال&قاموس" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "ابحث عن:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "ح&رّر" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "اختر سكرِبتًا" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "سكرِبت (‎*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "ملفّ HTML ‏(‎*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "، " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "الأخطاء: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "حدّد أين تريد وضع الرسم المصيّر" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "ملف صورة (*.png);;ملف اس في جي (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "جاهز" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "أضف متغيّرًا" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "أدخِل اسم المتغيّر الجديد" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "حاسبة متنقلة" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Mohamed SAAD محمد سعد" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "metehyi@free.fr" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "أضف/حرّر متغيّرًا" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "أزل المتغيّر" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "حرّر المتغيّر '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "غير متوفّر" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "‎%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "خاطئة" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "اليسار:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "الأعلى:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "العرض:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "الارتفاع:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "طبّق" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document\n" +#~| "*.x3d|X3D Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|ملفّ PNG\n" +#~ "*.pdf|مستند PDF\n" +#~ "*.x3d|مستند X3D" + +#~ msgid "C&onsole" +#~ msgstr "مع&راض" + +#~ msgid "KAlgebra" +#~ msgstr "الجبر.ك" + +#~ msgid "&Console" +#~ msgstr "م&عراض" + +#, fuzzy +#~ msgid "Formula" +#~ msgstr "%1" + +#, fuzzy +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "تم" + +#, fuzzy +#~ msgid "Error: %1" +#~ msgstr "الخطأ: %1" + +#, fuzzy +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "امسح" + +#, fuzzy +#~ msgid "*.png|PNG File" +#~ msgstr "PNG ملف" + +#, fuzzy +#~ msgid "&Transparency" +#~ msgstr "شفافية" + +#, fuzzy +#~ msgid "Type" +#~ msgstr "النوع" + +#, fuzzy +#~ msgid "To Expression" +#~ msgstr "إلى تعبير" + +#, fuzzy +#~ msgid "To MathML" +#~ msgstr "إلى" + +#, fuzzy +#~ msgid "Simplify" +#~ msgstr "بسّط" + +#, fuzzy +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "الاسم" + +#, fuzzy +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "الوظيفة" + +#, fuzzy +#~ msgid "%1 function added" +#~ msgstr "الدالة" + +#, fuzzy +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "الوصف" + +#, fuzzy +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "معاملات" + +#, fuzzy +#~ msgid "%1(" +#~ msgstr "%1" + +#, fuzzy +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "البارامترات" + +#, fuzzy +#~ msgid "par%1" +#~ msgstr "1" + +#, fuzzy +#~ msgid "Addition" +#~ msgstr "جمع" + +#, fuzzy +#~ msgid "Multiplication" +#~ msgstr "ضرب" + +#, fuzzy +#~ msgid "Division" +#~ msgstr "قسمة" + +#, fuzzy +#~ msgid "Power" +#~ msgstr "الطاقة" + +#, fuzzy +#~ msgid "Remainder" +#~ msgstr "البقيّة" + +#, fuzzy +#~ msgid "Quotient" +#~ msgstr "خارج القسمة" + +#, fuzzy +#~ msgid "The factor of" +#~ msgstr "الـ من" + +#, fuzzy +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "عاملي n n!" + +#, fuzzy +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "الوظيفة إلى حساب من a زاوية" + +#, fuzzy +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "الوظيفة إلى حساب من a زاوية" + +#, fuzzy +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "الوظيفة إلى حساب من a زاوية" + +#, fuzzy +#~ msgid "Secant" +#~ msgstr "القاطع" + +#, fuzzy +#~ msgid "Cosecant" +#~ msgstr "زاوية التّمام" + +#, fuzzy +#~ msgid "Cotangent" +#~ msgstr "ظل التمام" + +#, fuzzy +#~ msgid "Hyperbolic sine" +#~ msgstr "الجيب الزائد" + +#, fuzzy +#~ msgid "Hyperbolic cosine" +#~ msgstr "جيب التمام الزائد" + +#, fuzzy +#~ msgid "Hyperbolic tangent" +#~ msgstr "الظل الزائد" + +#, fuzzy +#~ msgid "Hyperbolic secant" +#~ msgstr "إطنابي" + +#, fuzzy +#~ msgid "Hyperbolic cosecant" +#~ msgstr "إطنابي" + +#, fuzzy +#~ msgid "Hyperbolic cotangent" +#~ msgstr "إطنابي" + +#, fuzzy +#~ msgid "Arc sine" +#~ msgstr "قوس الجيب" + +#, fuzzy +#~ msgid "Arc cosine" +#~ msgstr "قوس جيب التمام" + +#, fuzzy +#~ msgid "Arc tangent" +#~ msgstr "قوس الظل" + +#, fuzzy +#~ msgid "Arc cotangent" +#~ msgstr "قوس" + +#, fuzzy +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "إطنابي قوس" + +#, fuzzy +#~ msgid "For all" +#~ msgstr "عادي" + +#, fuzzy +#~ msgid "Exists" +#~ msgstr "قائمة" + +#, fuzzy +#~ msgid "Differentiation" +#~ msgstr "التفاضل" + +#, fuzzy +#~ msgid "Hyperbolic arc sine" +#~ msgstr "إطنابي قوس" + +#, fuzzy +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "إطنابي قوس" + +#, fuzzy +#~ msgid "Arc cosecant" +#~ msgstr "قوس" + +#, fuzzy +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "إطنابي قوس" + +#, fuzzy +#~ msgid "Arc secant" +#~ msgstr "قوس" + +#, fuzzy +#~ msgid "Hyperbolic arc secant" +#~ msgstr "إطنابي قوس" + +#, fuzzy +#~ msgid "Exponent (e^x)" +#~ msgstr "القوَة e x" + +#, fuzzy +#~ msgid "Base-e logarithm" +#~ msgstr "الأساس e خوارزمية" + +#, fuzzy +#~ msgid "Base-10 logarithm" +#~ msgstr "الأساس خوارزمية" + +#, fuzzy +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "مطلق :: حتمي :: خالص :: كامل :: مُطبق قيمة n n" + +#, fuzzy +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "الأرضية قيمة n n" + +#, fuzzy +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "سقّف قيمة n n" + +#, fuzzy +#~ msgid "Minimum" +#~ msgstr "الأدنى" + +#, fuzzy +#~ msgid "Maximum" +#~ msgstr "الأقصى" + +#, fuzzy +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "مرحب a b a b" + +#, fuzzy +#~ msgid "Less than. lt(a,b)=a%1(" +#~ msgstr " الخطأ" + +#, fuzzy +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "1" + +#, fuzzy +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr "، " + +#, fuzzy +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "القيمة" + +#, fuzzy +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "، " + +#, fuzzy +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "إحسب تعبير" + +#, fuzzy +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "إحسب تعبير" + +#, fuzzy +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "إحسب تعبير" + +#, fuzzy +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "إحسب تعبير" + +#, fuzzy +#~ msgid "Subtraction" +#~ msgstr "طرح" + +#, fuzzy +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "الخطأ: %1" + +#, fuzzy +#~ msgid "Generating... Please wait" +#~ msgstr "التوليد رجاء أنتطر" + +#, fuzzy +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "احفظ لغ" + +#, fuzzy +#~ msgid "File" +#~ msgstr "دقيق" + +#, fuzzy +#~ msgid "Mode" +#~ msgstr "الوضع" + +#, fuzzy +#~ msgid "Save the expression" +#~ msgstr "احفظ تعبير" + +#, fuzzy +#~ msgid "Calculate the expression" +#~ msgstr "إحسب تعبير" + +#, fuzzy +#~ msgid "%1:=%2" +#~ msgstr "2" + +#, fuzzy +#~ msgid "%1" +#~ msgstr " الخطأ" + +#, fuzzy +#~ msgid "From parser:" +#~ msgstr "من:" + +#, fuzzy +#~ msgid "%1, " +#~ msgstr "، " + +#, fuzzy +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "إطنابي قوس" + +#, fuzzy +#~ msgid "Real" +#~ msgstr "حقيقي" + +#, fuzzy +#~ msgid "Conjugate" +#~ msgstr "صرفي" + +#, fuzzy +#~ msgid "Imaginary" +#~ msgstr "خيالي" + +#, fuzzy +#~ msgctxt "@item:inmenu" +#~ msgid "&New" +#~ msgstr "&جديد" + +#, fuzzy +#~ msgctxt "@item:inmenu" +#~ msgid "&Quit" +#~ msgstr "ا&خرج" + +#, fuzzy +#~ msgid "&Save" +#~ msgstr "ا&حفظ" + +#, fuzzy +#~ msgctxt "Parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" diff --git a/po/ar/kalgebramobile.po b/po/ar/kalgebramobile.po new file mode 100644 index 0000000..480d26e --- /dev/null +++ b/po/ar/kalgebramobile.po @@ -0,0 +1,300 @@ +# Copyright (C) 2024 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2022, 2024 Zayed Al-Saidi +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-02-12 12:25+0400\n" +"Last-Translator: Zayed Al-Saidi \n" +"Language-Team: ar\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"X-Generator: Lokalize 23.08.5\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "آلة حاسبة" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "جبرك" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "حمّل سكرِبتًا" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "سكرِبت (‎*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "احفظ السكربت" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "صدّر السجلّ" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "اتش ام ال (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "قدّر" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "احسب" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "امحُ السجل" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "رسم ثنائيّ الأبعاد" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "رسم ثلاثي الأبعاد" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "انسخ \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "أفرغ تأريخ الطرفية" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "أضِف" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "امسح الكلّ" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "أغلق حواري" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "أزل الرسمة" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "لا يوجد رسمة" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "التعبير لحسابه..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "القاموس" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "الاسم:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "‏%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "رسم ثنائي الأبعد" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "رسم ثلاثي الأبعاد" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "جداول القيمة" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "المتغيّرات" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "القاموس" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "عن جبرك" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "رسم ثنائيّ الأبعاد" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "احفظ" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "اعرض الشبكة" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "صفّر العرض" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "رسم ثلاثي الأبعاد" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "النّتائج" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "جداول القيمة" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "خطأ: لا يمكن أن تكون الخطوة 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "خطأ: البداية والنهاية نفس الشيء" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "الأخطاء: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "شغّل" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "الدّخل" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "من:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "إلى:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "خطوة" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "شغّل" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "حاسبة متنقلة" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "المشرف" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "زايد السعيدي" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "zayed.alsaidi@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "جبرك للمحمول" + +#~ msgid "A simple scientific calculator" +#~ msgstr "حاسبة علمية بسيطة" diff --git a/po/ast/kalgebra.po b/po/ast/kalgebra.po new file mode 100644 index 0000000..2b78c53 --- /dev/null +++ b/po/ast/kalgebra.po @@ -0,0 +1,437 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2023 Enol P. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2023-11-07 21:26+0100\n" +"Last-Translator: Enol P. \n" +"Language-Team: \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 23.08.2\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" diff --git a/po/ast/kalgebramobile.po b/po/ast/kalgebramobile.po new file mode 100644 index 0000000..808843b --- /dev/null +++ b/po/ast/kalgebramobile.po @@ -0,0 +1,293 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2023 Enol P. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-11-07 21:26+0100\n" +"Last-Translator: Enol P. \n" +"Language-Team: \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 23.08.2\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" diff --git a/po/be/kalgebra.po b/po/be/kalgebra.po new file mode 100644 index 0000000..eeb7600 --- /dev/null +++ b/po/be/kalgebra.po @@ -0,0 +1,547 @@ +# translation of kalgebra.po to Belarusian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Darafei Praliaskouski , 2007. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2007-06-22 20:25+0300\n" +"Last-Translator: Darafei Praliaskouski \n" +"Language-Team: Belarusian \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n" +"%100>=11 && n%100<=14 ? 2 : 3);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, fuzzy, kde-format +#| msgid "Functions" +msgid "Options: %1" +msgstr "Функцыі" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, fuzzy, kde-format +#| msgid "Functions" +msgid "Options" +msgstr "Функцыі" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Добра" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, fuzzy, kde-format +msgid "Variables" +msgstr "Пераменныя" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "" + +#: kalgebra.cpp:215 +#, fuzzy, kde-format +#| msgid "Value" +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Значэнне" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Функцыі" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Спіс" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Дадаць" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, fuzzy, kde-format +msgid "Resolution" +msgstr "Распазнаванне" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "" + +#: kalgebra.cpp:298 +#, fuzzy, kde-format +#| msgid "Normal" +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Звычайны" + +#: kalgebra.cpp:299 +#, fuzzy, kde-format +#| msgid "Lines" +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Лініі" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Лініі" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Працяглы" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Слоўнік" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "" + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Errors: %1" +msgstr "Памылка: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" + +#: kalgebra.cpp:692 +#, fuzzy, kde-format +#| msgid "Ready" +msgctxt "@info:status" +msgid "Ready" +msgstr "Гатовы" + +#: kalgebra.cpp:726 +#, fuzzy, kde-format +msgid "Add variable" +msgstr "Пераменныя" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Дарафей Праляскоўскі" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "komzpa@licei2.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "" + +#: varedit.cpp:40 +#, fuzzy, kde-format +msgid "Remove Variable" +msgstr "Пераменныя" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" + +#~ msgid "Error: %1" +#~ msgstr "Памылка: %1" + +#, fuzzy +#~| msgid "Clear" +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Ачысціць" + +#~ msgid "Type" +#~ msgstr "Тып" + +#, fuzzy +#~| msgid "Name" +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Назва" + +#, fuzzy +#~| msgid "Function" +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Функцыя" + +#, fuzzy +#~| msgid "Description" +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Апісанне" + +#, fuzzy +#~| msgid "Parameters" +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Параметры" + +#, fuzzy +#~| msgid "&Quit" +#~ msgid "Quotient" +#~ msgstr "&Выхад" + +#, fuzzy +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "Звычайны" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "Спіс" + +#, fuzzy +#~| msgid "Description" +#~ msgid "Differentiation" +#~ msgstr "Апісанне" + +#~ msgid "Root" +#~ msgstr "Корань" + +#, fuzzy +#~| msgid "Value" +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Значэнне" + +#, fuzzy +#~| msgid "Function" +#~ msgid "Subtraction" +#~ msgstr "Функцыя" + +#, fuzzy +#~| msgid "Error: %1" +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "Памылка: %1" + +#, fuzzy +#~| msgid "&Save" +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Запісаць" + +#, fuzzy +#~| msgid "Lines" +#~ msgid "File" +#~ msgstr "Лініі" + +#~ msgid "Mode" +#~ msgstr "Рэжым" + +#, fuzzy +#~| msgid "&New" +#~ msgctxt "@item:inmenu" +#~ msgid "&New" +#~ msgstr "&Новы" + +#~ msgid "&Save" +#~ msgstr "&Запісаць" diff --git a/po/bg/kalgebra.po b/po/bg/kalgebra.po new file mode 100644 index 0000000..d424455 --- /dev/null +++ b/po/bg/kalgebra.po @@ -0,0 +1,441 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Svetoslav Alexandrov AKA Zvezdichko , 2008. +# Zlatko Popov , 2008. +# Yasen Pramatarov , 2009, 2012. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-11-21 15:39+0200\n" +"Last-Translator: Светослав Стефанов \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Poedit 3.1.1\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Настройки: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Поставете \"%1\" за вход" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Поставете за въвеждане" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Грешка: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Внесени: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Грешка: Не може да се зареди %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Информация" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Добавяне/Редактиране на функция" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Преглед" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "От:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "До:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Настройки" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "ОК" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Премахване" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Зададените настройки не са правилни" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Долната граница не може да бъде по-голяма от горната" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Двумерно изчертаване" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Тримерно изчертаване" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Сесия" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Променливи" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Калкулатор" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "К@алкулатор" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Зареждане на скрипт..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Скорошни скриптове" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Запис на скрипт..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Изнасяне на журнал..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Вмъкване на отговор..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Режим на изпълнение" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Изчисляване" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Оценяване" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Функции" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Списък" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Добавяне" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Изглед" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D диаграма" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D диаграма" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Координатна мрежа" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Запазване на пропорциите" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Разделителна способност" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Слабо" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Нормално" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Добре" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Много добре" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D диаграма" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &диаграма" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Анулиране на изгледа" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Точки" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Линии" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Плътно" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Операции" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Речник" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Търсене:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Редактиране" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Изберете скрипт" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Скрипт (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Файл HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Грешки: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Изберете къде да бъде поставена визуализираната графика" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Файл с изображение(*.png);;файл SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Готово" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Добавяне на променлива" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Въведете име за новата променлива" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Джобен калкулатор" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Ясен Праматаров,Александър Шопов,Златко Попов,Светослав Стефанов" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" +"yasen@lindeas.com,ash@contact.bg,zlatkopopov@fsa-bg.org,svetlisashkov@yahoo." +"com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Добавяне/Редактиране на променлива" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Премахване на променлива" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Редактиране на \"%1\"" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "не е налично" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ГРЕШНО" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Отляво:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Отгоре:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Широчина:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Височина:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Прилагане" diff --git a/po/bg/kalgebramobile.po b/po/bg/kalgebramobile.po new file mode 100644 index 0000000..3dc1aa1 --- /dev/null +++ b/po/bg/kalgebramobile.po @@ -0,0 +1,297 @@ +# Bulgarian translations for kalgebra package. +# Copyright (C) 2022 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# Automatically generated, 2022. +# SPDX-FileCopyrightText: 2023 Mincho Kondarev +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-16 00:08+0100\n" +"Last-Translator: Mincho Kondarev \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 23.08.4\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Калкулатор" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Зареждане на скрипт" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Скрипт (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Запазване на скрипт" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Експортиране на журнал" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Оценяване" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Изчисляване" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Изчистване на журнала" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Двумерна графика" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Тримерна графика" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Копиране на \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Изчистване историята на конзолата" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Добавяне" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Изчистване на всичко" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Затваряне на диалоговия прозорец" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Премахване на плот" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Няма наличен плот" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Изрази за изчисляване..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Речник" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Име:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Двумерно изчертаване" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Тримерно изчертаване" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Таблици със стойности" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Променливи" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Речник" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Относно KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Двумерна графика" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Запазване" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Показване на мрежата" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Възстановяване на изгледа" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Тримерна графика" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Резултати" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Таблици със стойности" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Грешки: Стъпката не може да бъде 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Грешки: Началото и края са едни и същи" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Грешки: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Изпълнение" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Вход" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "От:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "До:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Стъпка" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Изпълнение" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Джобен калкулатор" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Поддръжка" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Ясен Праматаров,Александър Шопов,Златко Попов,Светослав Стефанов" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" +"yasen@lindeas.com,ash@contact.bg,zlatkopopov@fsa-bg.org,svetlisashkov@yahoo." +"com" diff --git a/po/bs/kalgebra.po b/po/bs/kalgebra.po new file mode 100644 index 0000000..80a09ac --- /dev/null +++ b/po/bs/kalgebra.po @@ -0,0 +1,505 @@ +# Bosnian translation for kdeedu +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the kdeedu package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: kdeedu\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2013-11-03 08:42+0000\n" +"Last-Translator: Samir Ribić \n" +"Language-Team: Bosnian \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 16820)\n" +"X-Launchpad-Export-Date: 2013-11-04 05:58+0000\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opcije: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Umetni \"%1\" na ulaz" + +#: consolemodel.cpp:95 +#, fuzzy, kde-format +#| msgid "Paste \"%1\" to input" +msgid "Paste to Input" +msgstr "Umetni \"%1\" na ulaz" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Greška: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Uvezeno: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Greška: Ne mogu učitati %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informacija" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Dodaj/Izmijeni funkciju" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Pregled" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Od:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Do:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opcije" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "U redu" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Ukloni" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Opcije koje ste podesili nisu tačne" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Donja granica ne može biti veća od gornje granice" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2D prikaz" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3D prikaz" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sesija" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Promjenljive" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "Izračunaj" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "Izračunaj" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Učitaj Skriptu..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Posljednje skripte" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Snimi skriptu..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Eksportuj izvještaj..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Režim izvršenja" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Izračunaj" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Procijeni" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkcije" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Dodaj" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Tačka gledišta" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D Grafik" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D Grafik" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Mreža" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Zadrži omjer ekrana" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Rezolucija" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Slabo" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normalan" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fin" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Veoma fino" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D Grafik" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &Grafik" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Resetuj Pogled" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Tačke" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linije" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Čvrsto" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacije" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Rječnik" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Traži:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Izmjena" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Izaberite skriptu" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skripta(*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML datoteka (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Greške: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Slikovna datoteka\n" +"*.svg|SVG datoteka" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Spreman" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Dodaj promjenljivu" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Unesite ime za novu promjenljivu" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "Kalkulator" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2010 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2010 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Samir Ribić" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "samir.ribic@etf.unsa.ba" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Dodaj/Izmijeni promjenljivu" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Ukloni Promjenljivu" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Izmijeni '%1' vrijednost" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "nije dostupno" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "POGREŠNO" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Lijevo:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Vrh:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Širina:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Visina:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Primijeni" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|PNG datoteka\n" +#~ "*.pdf|PDF Dokument" + +#~ msgid "C&onsole" +#~ msgstr "K&onzola" + +#~ msgid "&Console" +#~ msgstr "&Konzola" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Razvijen funkcija za crtanje implicitnih krivih . Poboljšanja za crtanje " +#~ "funkcija." + +#~ msgid "Formula" +#~ msgstr "Formula" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Greška: Pogrešan tip funkcije" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Završeno: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Greška: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Očisti" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG datoteka" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." diff --git a/po/ca/docs/kalgebra/commands.docbook b/po/ca/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..e0ee275 --- /dev/null +++ b/po/ca/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Ordres admeses pel &kalgebra; + plus (suma) + Nom: plus + Descripció: Suma + Paràmetres: plus(... paràmetres, ...) + Exemple: x->x+2 + + times (multiplicació) + Nom: times + Descripció: Multiplicació + Paràmetres: times(... paràmetres, ...) + Exemple: x->x*2 + + minus (resta) + Nom: minus + Descripció: Resta. Eliminarà tots els valors des del primer. + Paràmetres: minus(... paràmetres, ...) + Exemple: x->x-2 + + divide (divisió) + Nom: divide + Descripció: Divisió + Paràmetres: divide(par1, par2) + Exemple: x->x/2 + + quotient (quocient) + Nom: quotient + Descripció: Quocient + Paràmetres: quotient(par1, par2) + Exemple: x->quotient(x, 2) + + power (potència) + Nom: power + Descripció: Potència + Paràmetres: power(par1, par2) + Exemple: x->x^2 + + root (arrel) + Nom: root + Descripció: Arrel + Paràmetres: root(par1, par2) + Exemple: x->root(x, 2) + + factorial + Nom: factorial + Descripció: Factorial. factorial(n)=n! + Paràmetres: factorial(par1) + Exemple: x->factorial(x) + + and (i) + Nom: and + Descripció: Booleà «and» (i) + Paràmetres: and(... paràmetres, ...) + Exemple: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or (o) + Nom: or + Descripció: Booleà «or» (o) + Paràmetres: or(... paràmetres, ...) + Exemple: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor (xo) + Nom: xor + Descripció: Booleà «xor» + Paràmetres: xor(... paràmetres, ...) + Exemple: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not (no) + Nom: not + Descripció: Booleà «not» + Paràmetres: not(par1) + Exemple: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd (màxim comú divisor) + Nom: gcd + Descripció: Màxim comú divisor + Paràmetres: gcd(... paràmetres, ...) + Exemple: x->gcd(x, 3) + + lcm (mínim comú múltiple) + Nom: lcm + Descripció: Mínim comú múltiple + Paràmetres: lcm(... paràmetres, ...) + Exemple: x->lcm(x, 4) + + rem (restant) + Nom: rem + Descripció: Restant + Paràmetres: rem(par1, par2) + Exemple: x->rem(x, 5) + + factorof (factor de) + Nom: factorof + Descripció: El factor «of» (de) + Paràmetres: factorof(par1, par2) + Exemple: x->factorof(x, 3) + + max (màxim) + Nom: max + Descripció: Màxim + Paràmetres: max(... paràmetres, ...) + Exemple: x->max(x, 4) + + min (mínim) + Nom: min + Descripció: Mínim + Paràmetres: min(... paràmetres, ...) + Exemple: x->min(x, 4) + + lt (més petit que) + Nom: lt + Descripció: Més petit que. lt(a,b)=a<b + Paràmetres: lt(par1, par2) + Exemple: x->piecewise { x<4 ? 1, ? 0 } + + gt (Més gran que) + Nom: gt + Descripció: Més gran que. gt(a,b)=a>b + Paràmetres: gt(par1, par2) + Exemple: x->piecewise { x>4 ? 1, ? 0 } + + eq (igual que) + Nom: eq + Descripció: Igual que. eq(a,b) = a=b + Paràmetres: eq(par1, par2) + Exemple: x->piecewise { x=4 ? 1, ? 0 } + + neq (no és igual) + Nom: neq + Descripció: No és igual. neq(a,b)=a≠b + Paràmetres: neq(par1, par2) + Exemple: x->piecewise { x!=4 ? 1, ? 0 } + + leq (més petit o igual que) + Nom: leq + Descripció: Més petit o igual que. leq(a,b)=a≤b + Paràmetres: leq(par1, par2) + Exemple: x->piecewise { x<=4 ? 1, ? 0 } + + geq (més gran o igual que) + Nom: geq + Descripció: Més gran o igual que. geq(a,b)=a≥b + Paràmetres: geq(par1, par2) + Exemple: x->piecewise { x>=4 ? 1, ? 0 } + + implies (implicació lògica) + Nom: implies + Descripció: Implicació lògica + Paràmetres: implies(par1, par2) + Exemple: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx (aproximació) + Nom: approx + Descripció: Aproximació. approx(a)=a±n + Paràmetres: approx(par1, par2) + Exemple: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs (valor absolut) + Nom: abs + Descripció: Valor absolut. abs(n)=|n| + Paràmetres: abs(par1) + Exemple: x->abs(x) + + floor (enter inferior) + Nom: floor + Descripció: Enter inferior. floor(n)=⌊n⌋ + Paràmetres: floor(par1) + Exemple: x->floor(x) + + ceiling (enter superior) + Nom: ceiling + Descripció: Enter superior. ceil(n)=⌈n⌉ + Paràmetres: ceiling(par1) + Exemple: x->ceiling(x) + + sin (sinus) + Nom: sin + Descripció: Funció per a calcular el sinus d'un angle donat + Paràmetres: sin(par1) + Exemple: x->sin(x) + + cos (cosinus) + Nom: cos + Descripció: Funció per a calcular el cosinus d'un angle donat + Paràmetres: cos(par1) + Exemple: x->cos(x) + + tan (tangent) + Nom: tan + Descripció: Funció per a calcular la tangent d'un angle donat + Paràmetres: tan(par1) + Exemple: x->tan(x) + + sec (secant) + Nom: sec + Descripció: Secant + Paràmetres: sec(par1) + Exemple: x->sec(x) + + csc (cosecant) + Nom: csc + Descripció: Cosecant + Paràmetres: csc(par1) + Exemple: x->csc(x) + + cot (cotangent) + Nom: cot + Descripció: Cotangent + Paràmetres: cot(par1) + Exemple: x->cot(x) + + sinh (sinus hiperbòlic) + Nom: sinh + Descripció: Sinus hiperbòlic + Paràmetres: sinh(par1) + Exemple: x->sinh(x) + + cosh (cosinus hiperbòlic) + Nom: cosh + Descripció: Cosinus hiperbòlic + Paràmetres: cosh(par1) + Exemple: x->cosh(x) + + tanh (tangent hiperbòlica) + Nom: tanh + Descripció: Tangent hiperbòlica + Paràmetres: tanh(par1) + Exemple: x->tanh(x) + + sech (secant hiperbòlica) + Nom: sech + Descripció: Secant hiperbòlica + Paràmetres: sech(par1) + Exemple: x->sech(x) + + csch (cosecant hiperbòlica) + Nom: csch + Descripció: Cosecant hiperbòlica + Paràmetres: csch(par1) + Exemple: x->csch(x) + + coth (cotangent hiperbòlica) + Nom: coth + Descripció: Cotangent hiperbòlica + Paràmetres: coth(par1) + Exemple: x->coth(x) + + arcsin (arcsinus) + Nom: arcsin + Descripció: Arcsinus + Paràmetres: arcsin(par1) + Exemple: x->arcsin(x) + + arccos (arccosinus) + Nom: arccos + Descripció: Arccosinus + Paràmetres: arccos(par1) + Exemple: x->arccos(x) + + arctan (arctangent) + Nom: arctan + Descripció: Arctangent + Paràmetres: arctan(par1) + Exemple: x->arctan(x) + + arccot (arccotangent) + Nom: arccot + Descripció: Arccotangent + Paràmetres: arccot(par1) + Exemple: x->arccot(x) + + arccosh (arccosinus hiperbòlic) + Nom: arccosh + Descripció: Arccosinus hiperbòlic + Paràmetres: arccosh(par1) + Exemple: x->arccosh(x) + + arccsc (arccosecant) + Nom: arccsc + Descripció: Arccosecant + Paràmetres: arccsc(par1) + Exemple: x->arccsc(x) + + arccsch (arccosecant hiperbòlica) + Nom: arccsch + Descripció: Arccosecant hiperbòlica + Paràmetres: arccsch(par1) + Exemple: x->arccsch(x) + + arcsec (arcsecant) + Nom: arcsec + Descripció: Arcsecant + Paràmetres: arcsec(par1) + Exemple: x->arcsec(x) + + arcsech (arcsecant hiperbòlica) + Nom: arcsech + Descripció: Arcsecant hiperbòlica + Paràmetres: arcsech(par1) + Exemple: x->arcsech(x) + + arcsinh (arcsinus hiperbòlic) + Nom: arcsinh + Descripció: Arcsinus hiperbòlic + Paràmetres: arcsinh(par1) + Exemple: x->arcsinh(x) + + arctanh (arctangent hiperbòlic) + Nom: arctanh + Descripció: Arctangent hiperbòlic + Paràmetres: arctanh(par1) + Exemple: x->arctanh(x) + + exp (exponent) + Nom: exp + Descripció: Exponent (e^x) + Paràmetres: exp(par1) + Exemple: x->exp(x) + + ln (base e) + Nom: ln + Descripció: Logaritme en base e + Paràmetres: ln(par1) + Exemple: x->ln(x) + + log (base 10) + Nom: log + Descripció: Logaritme en base 10 + Paràmetres: log(par1) + Exemple: x->log(x) + + conjugate + Nom: conjugate + Descripció: Conjugate + Paràmetres: conjugate(par1) + Exemple: x->conjugate(x*i) + + arg + Nom: arg + Descripció: Arg + Paràmetres: arg(par1) + Exemple: x->arg(x*i) + + real + Nom: real + Descripció: Real + Paràmetres: real(par1) + Exemple: x->real(x*i) + + imaginary + Nom: imaginary + Descripció: Imaginary + Paràmetres: imaginary(par1) + Exemple: x->imaginary(x*i) + + sum (suma) + Nom: sum + Descripció: Suma + Paràmetres: sum(par1 : var=des_de..a) + Exemple: x->x*sum(t*t:t=0..3) + + product (producte) + Nom: product + Descripció: Producte + Paràmetres: product(par1 : var=des_de..a) + Exemple: x->product(t+t:t=1..3) + + diff (diferenciació) + Nom: diff + Descripció: Diferenciació + Paràmetres: diff(par1 : var) + Exemple: x->(diff(x^2:x))(x) + + card (cardinal) + Nom: card + Descripció: Cardinal + Paràmetres: card(par1) + Exemple: x->card(vector { x, 1, 2 }) + + scalarproduct (producte escalar) + Nom: scalarproduct + Descripció: Producte escalar + Paràmetres: scalarproduct(... paràmetres, ...) + Exemple: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Nom: selector + Descripció: Selecciona l'element par1-è de la llista o vector par2 + Paràmetres: selector(par1, par2) + Exemple: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union (unió) + Nom: union + Descripció: Uneix diversos ítems del mateix tipus + Paràmetres: union(... paràmetres, ...) + Exemple: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall (per a tots) + Nom: forall + Descripció: Per a tots + Paràmetres: forall(par1 : var) + Exemple: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists (existeix) + Nom: exists + Descripció: Existeix + Paràmetres: exists(par1 : var) + Exemple: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Nom: map + Descripció: Aplica una funció a cada element d'una llista + Paràmetres: map(par1, par2) + Exemple: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter (filtre) + Nom: filter + Descripció: Elimina tots els elements que no verifiquin certa condició + Paràmetres: filter(par1, par2) + Exemple: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose (transposa) + Nom: transpose + Descripció: Transposa + Paràmetres: transpose(par1) + Exemple: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/ca/docs/kalgebra/index.docbook b/po/ca/docs/kalgebra/index.docbook new file mode 100644 index 0000000..808de61 --- /dev/null +++ b/po/ca/docs/kalgebra/index.docbook @@ -0,0 +1,907 @@ + + + + MathML"> + + +]> + + + + +El manual del &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+&traductor.Antoni.Bella; +
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +17 de desembre de 2020 +Aplicacions 20.12 + + +El &kalgebra; és una aplicació que pot substituir la calculadora gràfica. Té característiques numèriques, lògiques, simbòliques i d'anàlisi que us permetran calcular expressions matemàtiques a la calculadora i traçar gràfiques dels resultats en 2D o 3D. El &kalgebra; té les seves arrels en el llenguatge de marques matemàtic (Mathematical Markup Language -&MathML;-). Però un no us caldrà saber &MathML; per a emprar el &kalgebra;. + + + +KDE +kdeedu +gràfica +matemàtiques +2D +3D +MathML + + +
+ + +Introducció + +El &kalgebra; té nombroses característiques que permeten a l'usuari realitzar tota mena d'operacions matemàtiques i mostrar-les gràficament. Alhora, aquest programa ha estat orientat a &MathML;. Ara el pot utilitzar qualsevol persona amb una mica de coneixements matemàtics per a resoldre problemes senzills i avançats per igual. + +Inclou característiques com: + + + +Una calculadora per a l'avaluació ràpida i fàcil de les funcions matemàtiques. +Capacitat de crear scripts per a sèries de càlculs avançats. +Capacitats de llenguatge, incloent-hi la compleció automàtica de la definició i sintaxi de les funcions. +Funcions de càlcul, incloent-hi els derivats de càlcul simbòlic, càlcul vectorial, manipulació de les llistes. +Gràfiques de les funcions amb cursor dinàmic per a trobar l'arrel gràfica i altres tipus d'anàlisi. +Gràfiques en 3D per a una visualització útil de les funcions en 3D. +Un diccionari integrat en construir d'operadors per a una referència ràpida de les funcions disponibles. + + +A continuació es mostra una captura de pantalla de l'aplicació &kalgebra; en acció: + + +Aquí hi ha una captura de pantalla de la finestra principal del &kalgebra; + + + + + + La finestra principal del &kalgebra; + + + + +Quan l'usuari inicia una sessió del &kalgebra;, es presentarà amb una sola finestra que consisteix en les pestanyes Calculadora, Gràfica en 2D, Gràfica en 3D i Diccionari. Dins de cada pestanya, trobareu un camp d'entrada per a introduir les vostres funcions o càlculs, i un camp de vista que mostrarà els resultats. + +En qualsevol moment l'usuari pot gestionar la seva sessió amb les opcions en el menú principal Sessió: + + + + +&Ctrl; N SessióNou +Obre una finestra nova del &kalgebra;. + + + +&Ctrl;&Maj; F SessióMode de pantalla completa +Alterna el mode de pantalla completa per a la finestra del &kalgebra;. El mode de pantalla completa també es pot activar i desactivar utilitzant el botó a la part superior dreta de la finestra del &kalgebra;. + + + +&Ctrl; Q SessióSurt +Surt del programa. + + + + + + + +Sintaxi +El &kalgebra; utilitza una sintaxi algebraica intuïtiva per a la introducció de funcions d'usuari, similar a la utilitzada en les calculadores gràfiques més modernes. En aquesta secció s'enumeren els operadors fonamentals integrats en construir que hi ha disponibles en el &kalgebra;. L'autor del &kalgebra; modela aquesta sintaxi basant-se en el Maxima i el Maple per als usuaris que estiguin familiaritzats amb aquests programes. + +Per als usuaris que estiguin interessats en el funcionament intern del &kalgebra;, les expressions introduïdes per l'usuari es converteixen a &MathML; sobre el dorsal. Una comprensió rudimentària de les capacitats de suport de &MathML; donen un gran avenç a les capacitats internes del &kalgebra;. + +Aquí hi ha una llista dels operadors disponibles que tenim per ara: + ++ - * / : Suma, resta, multiplicació i divisió. +^, ** : Potència, pot utilitzar ambdós. També és possible utilitzar caràcters Unicode ². Les potències són una manera de calcular arrels, podeu fer-ho com: a**(1/b) +-> : lambda. És la manera d'especificar una o més variables lliures que seran acotades a una funció. Per exemple, en l'expressió, length:=(x,y)->(x*x+y*y)^0.5, l'operador «lambda» s'utilitza per a indicar que «x» i «y» s'acoten quan s'utilitza la funció de longitud («length»). +x=a..b : S'utilitza quan necessitem delimitar un abast (variable acotada+límit superior+límit inferior). Això vol dir que «x» anirà des de «a» a «b». +() : S'utilitza per a especificar una prioritat més alta. +abc(params) : Funcions. Quan l'analitzador troba una funció, comprovarà si «abc» és un operador. Si ho és, el tractarà com a tal, si no ho és, el tractarà com una funció d'usuari. +:= : Definició. S'utilitza per a definir un valor variable. Podeu fer coses com x:=3, x:=y, la «y» es pot definir o no, o perimeter:=r->2*pi*r. +? : Definició de condicions. Aquesta és la manera com podem definir les operacions condicionals al &kalgebra;. Dit d'una altra manera, aquesta és una forma d'especificar una condició «if», «elseif», «else». Si presentem la condició abans del caràcter «?» només s'utilitzarà aquesta condició si és veritat, si troba un caràcter «?» sense cap condició, introduirà l'última instància. Exemple: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } +{} : Contenidor de &MathML;. Es pot utilitzar per a definir un contenidor. Principalment útil per a treballar amb les definicions d'operacions condicionals. += > >= < <= : Comparadors de valor per a «igual que», «més gran que», «més gran o igual que», «més petit que» i «més petit o igual que», respectivament. + + +Ara us podeu preguntar, què fa llavors el &MathML;? És molt senzill. Amb ell, podem operar amb funcions com cos(), sin(), altres funcions trigonomètriques, sum() o product(). No importa de quin tipus siguin. Podem utilitzar plus(), times() i tot el que té el seu operador. Les funcions booleanes també s'apliquen, de manera que no podem fer quelcom semblant a or(1,0,0,0,0). + + + + +Ús de la calculadora +La calculadora del &kalgebra; és útil com una calculadora amb esteroides. L'usuari pot introduir expressions per a avaluar en el mode Calcula o Avalua, depenent de la selecció al menú Calculadora. +En el mode avaluació, el &kalgebra; simplifica l'expressió fins i tot si veu una variable sense definir. En el mode càlcul, el &kalgebra; ho calcula tot i si troba una variable sense definir, mostrarà un error. +A més de mostrar a la pantalla de la calculadora les equacions i resultats introduïts per l'usuari, totes les variables que es declaren es mostren en un quadre persistent de la dreta. Fent doble clic sobre una variable, veureu un diàleg que us permetrà canviar els seus valors (només una manera d'enganyar al registre). + +La variable «ans» és especial, cada vegada que introduïu una expressió, el valor de la variable «ans» canviarà el resultat final. + +Els següents exemples són de funcions que es poden introduir en el camp d'entrada de la finestra de la calculadora: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +A continuació es mostra una captura de pantalla de la finestra de la calculadora després d'introduir les expressions d'exemple de dalt: + +Captura de pantalla de la finestra «Calculadora» del &kalgebra; amb expressions d'exemple + + + + + + La finestra «Calculadora» del &kalgebra; + + + + + +Un usuari pot controlar l'execució d'una sèrie de càlculs utilitzant les opcions del menú Calculadora: + + + + +&Ctrl; L CalculadoraCarrega un script... +Executa les instruccions en un fitxer seqüencial. Útil si es volen definir algunes biblioteques o reprendre algun treball anterior. + + + +CalculadoraScripts recents +Mostra un submenú que permetrà triar entre els scripts executats recentment. + + + +&Ctrl; G CalculadoraDesa un script... +Desa les instruccions que heu escrit des que es va iniciar la sessió per a poder-les tornar a utilitzar. Genera fitxers de text de manera que siguin fàcils de corregir utilitzant qualsevol editor de text, com el &kate;. + + + +&Ctrl; S CalculadoraExporta el registre... +Desa el registre amb tots els resultats en un fitxer &HTML; per a poder-lo imprimir o publicar. + + + +F3 CalculadoraInsereix «ANS»... +Insereix la variable «ans» i facilita la reutilització dels valors més antics. + + + +CalculadoraCalcula +Un botó d'opció per a establir el Mode d'execució a càlcul. + + + +CalculadoraAvalua +Un botó d'opció per a establir el Mode d'execució a avaluació. + + + + + + +Gràfiques en 2D +Per a afegir una nova gràfica en 2D en el &kalgebra;, seleccioneu la pestanya Gràfica en 2D i feu clic a la pestanya Afegeix per a afegir una nova funció. El vostre focus anirà a un quadre de text des d'on podreu escriure la funció. + + +Sintaxi +Si voleu utilitzar una funció típica f(x), no és necessari especificar-la, però si voleu f(y) o una funció polar, haureu d'afegir y-> i q-> com en les variables acotades. + +Exemples: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Si heu introduït la funció, feu clic al botó D'acord per a visualitzar la gràfica a la finestra principal. + + + + +Característiques +Podeu ajustar diverses gràfiques en la mateixa vista. Només heu d'utilitzar el botó Afegeix quan es troba en mode de llista. Podeu ajustar cada gràfica amb el seu propi color. + +La vista es pot apropar i moure amb el ratolí. Utilitzant la roda podeu apropar i allunyar. També podeu seleccionar una zona amb el &BER; i aquesta àrea serà ampliada. Moureu la vista amb les tecles de fletxa del teclat. + + + L'àrea de visualització de les gràfiques en 2D es pot definir de forma explícita utilitzant la pestanya Àrea de visualització sobre una pestanya Gràfica en 2D. + + +A la pestanya Llista a la part inferior dreta, podreu obrir una pestanya Editant per a editar o eliminar una funció amb doble clic i marcar o desmarcar la casella de selecció al costat del nom de la funció per a mostrar-la o ocultar-la. +Al menú Gràfica en 2D trobareu aquestes opcions: + +Quadrícula: Mostra o oculta la quadrícula +Mantén la relació d'aspecte: Mantén la relació d'aspecte mentre es fa zoom +Desa: Desa (&Ctrl; S) la gràfica com un fitxer d'imatge +Apropa/Allunya: Apropa (&Ctrl; +) i allunya (&Ctrl; -) +Mida real: Reinicia la vista a l'apropament original +Resolució: Seguit d'una llista de botons d'opció per a seleccionar una resolució per a les gràfiques + + +A continuació es mostra una captura de pantalla d'un usuari en què el cursor es troba en l'arrel a la dreta de la funció, sin(1/x). L'usuari utilitza una resolució molt alta per a crear aquesta gràfica (atès que una funció amb una freqüència cada vegada major acaba oscil·lant al voltant de les coordenades d'origen). També hi ha una funció de cursor en viu, on cada vegada que moveu el cursor sobre un punt, es mostren els valors de «x» i «y» a la cantonada inferior esquerra de la pantalla. També s'ha dibuixat una «línia tangent» sobre la funció a la posició on es troba el cursor. + + +Aquí hi ha una captura de pantalla de la finestra «Gràfica en 2D» del &kalgebra; + + + + + + La finestra «Gràfica en 2D» del &kalgebra; + + + + + + + + + + +Gràfiques en 3D + +Per a dibuixar una gràfica en 3D amb el &kalgebra;, seleccioneu la pestanya Gràfica en 3D i veureu un camp d'entrada a la part inferior on escriureu la funció. Z encara no es pot definir. De moment, el &kalgebra; només admet gràfiques en 3D explícitament que depenen únicament de la «x» i «y», com ara (x,y)->x*y, on z=x*y. + +Exemples: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +La vista es pot apropar i moure amb el ratolí. Utilitzant la roda podeu apropar i allunyar. Manteniu premut el &BER; i moveu el ratolí per a fer girar la gràfica. + +Les tecles &Left; i &Right; giren la gràfica al voltant de l'eix «z», les tecles &Up; i &Down; la giren al voltant de l'eix horitzontal de la vista. Premeu W per a ampliar i S per a allunyar dins de la gràfica. + +Al menú Gràfica en 3D trobareu aquestes opcions: + + +Desa: Desa (&Ctrl;S) la gràfica com un fitxer d'imatge o document admès +Restableix la vista: Reinicia la vista a l'apropament original al menú Gràfica en 3D +Podeu dibuixar les gràfiques amb els estils Punts, Línies o Sòlid al menú Gràfica en 3D + + +A continuació es mostra una captura de pantalla de l'anomenada funció «sombrero». En aquesta gràfica en particular es mostra la gràfica en 3D utilitzant l'estil de línies. + + +Aquí hi ha una captura de pantalla de la finestra «Gràfica en 3D» del &kalgebra; + + + + + + La finestra «Gràfica en 3D» del &kalgebra; + + + + + + + +Diccionari + +El diccionari conté una llista de totes les funcions integrades en construir el &kalgebra;. Es pot utilitzar per a trobar la definició d'una operació i els seus paràmetres d'entrada. És un lloc útil per a cercar les moltes capacitats del &kalgebra;. + + A continuació es mostra una captura de pantalla de la cerca al diccionari del &kalgebra; de la funció cosinus. + + +Aquí hi ha una captura de pantalla de la finestra «Diccionari» del &kalgebra; + + + + + + La finestra «Diccionari» del &kalgebra; + + + + + + + +&commands; + + +Crèdits i llicència + + +Copyright del programa 2005-2009 &Aleix.Pol; + + + +Copyright de la documentació 2007 &Aleix.Pol; &Aleix.Pol.mail; + +Traductor/Revisor de la documentació: &credits.Antoni.Bella; &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/ca/docs/kalgebra/kalgebra-2dgraph-window.png b/po/ca/docs/kalgebra/kalgebra-2dgraph-window.png new file mode 100644 index 0000000000000000000000000000000000000000..92be6a0a0843aae686d565aff5782f932e118c2d GIT binary patch literal 58801 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 JWt~$(69BCF0k!}D literal 0 HcmV?d00001 diff --git a/po/ca/docs/kalgebra/kalgebra-3dgraph-window.png b/po/ca/docs/kalgebra/kalgebra-3dgraph-window.png new file mode 100644 index 0000000000000000000000000000000000000000..052a41dc0b8f0d8116ece67a9c2c2bd915c27ff4 GIT binary patch literal 53845 zcmbTdWmp?s)HX^>vEr1X!J&nsfdavc7pJ&ekm3Y)T4-^CQ=C%V8z^qY60A_%HMqOW zNuT$7&v$;GxiXWvX7*m|UiXqcGkYdNT~!|cIn{GCG&FpL_c9u2Xy^#kiiwShI{yYhBk_&AS0>eJ-atEfZs(=Dl-CltdQ{k|HsybkA|ifhQk~}j)wL-F69Xx8k!ks;0gl`jVId*8yyXe zVvsjUAY9g##h^$WG_+qYg!1zc)$xFF zN_oft&|wSJPSTh!JukHSbIX>Ykw|EaDGF?lcO}h$$yxy%awh`d57t!VMjdP~9`O&= zodKCxQ%n)AhL1EK-cqBXUFDovO)cuoh5lfT6u(?NOBvVJ93V>xq0;Pqd^E)6lwJF6 ztzfTIy~jo|?7NWYK^DFR%T=Z~RiIF#>~@16k&YN@PvD{)isn-ozQtzY6QTYp?nT@B zk7?6zJ|>Wew_rxmw|}QkEW_Nb-%>}p+A+WAEyDo^v0PYy2v)|I15iAp#o6UiQx8+Z zGGVV?^pf928^l;__PNVp+h81SyZfR%gGR5W^WNrJ&FPszjAgdI>9mCdM^A}l`PZLx zEyh!=L*sS(C~MHn{!}|#a_66$4dGeYC|FCjg|l+8DINc%7m(5;ST2#OvrVr@HT%s! zfa4_gqty%wp7C*AAhcxk(T40*^>pRw5n6D5ImdqG^aSPW)3~3E&)Fq zdMsecqv8au+{lWg(|}-$0hUSE@5_A4UQO4_0mm^1RP?BlQcH5cf71R|9i)v##Qu}3 zsOnI*QVy>s?$==6Wp@Sia`f8#q@cEk5%;JPA%FnPqwv3C0D>GXl`;Q+xmej3=jWrY zj=KWrM)h$*_2I=mkqv{<_V^O*0s*ovL~X9i2bZ_p$V^o0Psww!yl=~sT`GNl=}k)O z$5=k~;fL&n!J5e~gF(@&tlrA^Q{IB2nL$3r+@XJ zQu+~VfvnW*)ug@MFk*xgg`Yi2U56q76GGf2g^l$D&|OJeEkR4$W^Fs?`Hxo)w$nEJ z5W}c#p3FQmF0ek~dSFp;{9aXWApHvj?pN5+7vXRV4;HSF2D;7X=g|=@{qRbTB7TVSqj6;1Mow%i&9=M-xn(&b4mY4TIm=S6f!~Ajj z(J?$^lNRieUd>B;^MkCzG%CmxTxWs{;-R!GWBMwD7l)Rl7&bk?XrIQ%EUql{-c0I#weB6n-=` z+tFo{7sEz8iR#w6R#bg36^pVx{IxB$XS}Od?Rd!h59LX|{Nz0sf`JSNm6P2rZ$8z_ zR8{LJtf^@J*S|$(G{aj-rl?b&YQR$4nryvIk|Z9`WaZ3EN8B5Z#CUuYUGM=A0wV5V z4(}5l?B;pV;ef{7QvsAK($d!cm#Jv;dF4!;J9c}=Myg#fJV!W=l?($Ivr=B#?|_QsUEgK7 zk6Ul79FnGL6PvWOGnW5_G@41V=TN$cuYXYD_gBOfe#h`wL5T>f53FPFX^ZQPnEBXw zeWLs=>Bru0tYpDJ(btzfmYlCXC_mnw&9Y7!n8Fz{H&uWXIxE){p1LL2Wbn$IH%e0~ zwvJ2xkuhJ>DB{Cbp62puL^&i4?z$BM;f@Xwa_^aa55@0lk$=U`dr6>A)$1LE;+v@} z)z4H}JXclbIB}5TRGs4SyWL}POVHrlg|xcRCG6KlqEq_t>=n19`JJwI{nC&A#zQgt zpl1cO5?Bl0kK3o4{U%w1K~Utf(oceLSFZ-I?_OqFM+|cN37u;{f{!g^60z%aW?6$v z{GZGgf6cEs%OxtWcqaMOlL~i?(!z`9fcq${r;&Oi6wtWV)`Qi(=ak5Kk#RkIP;%EY z=K51ZtcGP^h-^LM0r7lDA#l;V<60~1%>=I4Ky?&~$=|AqKG0g5Wf>$qyUz^_&t8ZT zo13d?%f796QjSwjTuvEDlUw-{uI^kcGEO(ixI=OtAuQYa!)cqWZ&Eb(T}mJ(FC>!) zz5-IEE4b*IHs!2iCHr&oOw*#y2Dzgyk@kyn{9;gLlr#Mt$?~rTqlGwG6xM3Ip`nC**!^p= zmMW-Ugjr35$iCt^*o=h9!oEU^fOZR_J*_?Kt`&<8oaMuVoI?LPQn>$_Ty^$PhHzKw zow`4_++KQ)s^47{h})YQJHP`J;+@oFLQ!zgV!$yw&y~L7Jj5yduirGM;)GpSx?BLV zg3*s@^89zW$CXI$y@6N?Lj>}ShfE?GsS|xZK=>8b`gL~kT?PK(SOvy^P@82Jr4ZwM zU+WF9(DlpHd~w&#j_p>b6U9{**rE&OXuD4oC6 zZ8wN-U9L-RkB$>>kKO(_Iz7C+H+(G0*-p*3XNOMkJz`Zi6&cc(eG@*Eytt%O+VSRx zWVTF!L{(cC%*!(noqBI-XScKh-DJ~Rw`sX0AXPaMZrrA=;RSB)m6iYU#teJD_40SX zecjINzGpae1SV$Mu2Di$UkHQGw7nyU(M2F&c(Q<^SS>`XrXhtAYqVny1huKvqnn(> z&yRJq(MP^(G!O&w`wjFoxH~Sk`rIy71U{^`RozD>=bWl;?))6 z?w0Tod}!pG9{vOEj&DA7diJ?v@xe&WGCKLQ&*2?d47L_LADL6H^ujaJi*fUS=D9$K zBu9ajfroiyiSl>CNIhC&CEKU~bc@c^pP->M%U9CQre=~dPL2jFwY3{H7+`ArT z8A?XS$jvc$bn9`$r007C?2k3CKF4bx(+fUF@(%WB zNg!2ljKy=30phEZW6m$HG4MwoX*co$9j1t$k#CIBVWQxQCm<&)X$z!R3B#4;*Vd1y zdpAzPM=u`NLGOpd>9H;7c-Fi_wX%Yodpml$hv@OcH7RyGz|-(vzRBgrls);PzcyNu za>H!omS?$&C`!Arc{k5??CL!kg(~gFQ(uDf{j-4L@7H+hDFlHQ4z&icX=~qhjQj+T zT$*Y%i5EJRi6(IsSl3_B2hx64_Qe5zwQ$n5mW_%(hLHb{H!Wft3i}~Tjs==PVj>2T z`%u$6%b|N1AdI}L${g(W;y}W;+*xy7FKYijUwDLfo~3HY5M!GYF5k;juv^gU-50rVu2wE(bZ7&^pX*?iw6(Mu&PrK-3!s6(xwrT`@<>7%4?lg zu$UfgZd?-8L7%?jbDjO#=AU3nX(PL1H5jX44Mz{ z4Src-{1KGTxov9YjlbC%`Qo36?pz0VW|jx!EpkI!;GPyKdY7CNHwj?E0hTb3OP7EK!ge}{p- zT{`WqwE>#jrD~hE$9vPh<-w5=K-Z&@58Y3V6r*#hDG^W9Zsr~VO)kJ~9=||lZQXBU zzYBbCtiKzNxYW(Yt;r=BYiMhS`VohiQ-mH9!O9Yj3#9LLCH$me1HSU&CAq`YZA9y5 z^G_KnKO9Hw_+A$S@>;}$@*wxesk@Yo)G~MZXAY3N^(oztm+}QWH}kSUcW0Nl$fd>7 z)$?=0@8#1ci&$s-St37L=wHzuTSi0r{A-9zH?EBN@Q~W1NiAQO9IwXP1kMHKW5wRS zWoDTwpbwLi(+vMi0%i}-9U~)KyTSFxG-1M^Y(qc%{20yDYj;LLyKdrJd&{m{1EAh= zUa))#)^&9t1CJHMNWjYCUSweU9*S+Ot@jTP9T%^kqCZlRG^V^XIB zu2T6BRG2Vp$d$X7P#RLuKn|n`HK!mvHn2F^3QSO8ENH4JqdtWq#wFkIX=Fq#`pN^s zxT15j+X8)qrcAVpT6VA}CIrJzMCR%=)tu@2BW0Cd$cR)GSt0eJNeJ=9eiyACBN1m0 zL#=NXd*D^-I{D?pFMy0>2=pX~lQK=T6rH$^biJ@J!_<3(oKfHuUY9q`b&r(R@%GL< zH|^ZLz^fE+IHWifu=~p@^{D2E(i{Iy?m2G@LO*UrUL)>L9>QAElLbL0IXOQYvF;t5 zWEay2cdAfzR4q!eaL9Z_7Y@#}i5@aPi~Il#G>ACGlOw^&ba369J2#s^gFc*(OOZS4Ln=u9@j9(8C4ld`A)S{M2;?>mxi~+O=tb zbU$zh%}o?zv^@TV=4A#ebj zVZCEJVJz$@3AO34$*1pfTNXK@O*6r#3nuS~&8N>8D_hWOHSjxt&0y(6`8TNy*QejW z-$lYsi(x+5uo?E-QfkPeT=dJg7uA;l^7$f;zxVbA@=HX6DU)|pR zbql%iGbpLNK=W8?3I@v>o|2Exgt`f0Bq#sBaRGB*r#dcRIyfhVw7l`4!4G;AOTM!& zD|Nfx;TMLS;8iFOX|0i^gx_jZFOqune*u^ht(V`$oE@!558}d)KhB>QbBoIkvQKRx zU(~W1#vNk<2%bmyYiEVHGgVNnyY#}?vagK{JlljXhdCd=0#2K)Dd6^f+>6W@B>wKLg?s_5;XH+zXKuLwo4#n(7`H?9#! zY`WVMN8DxfhUd(VnW;pBU%5@yi8}8e1-`(Bf_U2@Rs>!i!upiH+H{PaNN@5rAUA?o&N3-ua zZ~B!W+!j1|T|BfF3Y~WT+rQ_*9t3WFhf8!Mo2!W$J**HZ*U)v7a*~+Fe%5c=w84Np zyxf;e2>zlWjloD}gSJ=3j(tzAlE+4)P(|11>H2+bN z`Ew!hTGZlW?fRi}&=Ya=s?STm-B7_4l!>9=lpxefC0_7srga1yAS8gicXfCPz7L35 zSQ?ua%AyiF*N6^yDmPjZL-FAHgv%Z93A%PjclIj|d4yu8QRuYfmph%uRFGV&G3WTi zh)lf!HRrFTE5!)N*aWxj)X+Y>)jYfdMT~bi3%lGp2CfTwfc4qr))26d=g6+dy=^W?J4vEuL^ow>#9T%kp=Vm`(X|R)>MTSGW_=yig z7H+r9&Oh87v`zQp3YZjtfwUUN!th}M!F+dzetqV+tt6tecz_=wJ%$p8IwUeP|b*4g{k*z-#gYJkKiUb-!gHze6bTG`QnSK$M8(#N8ubY8uxOd(W1oojar7RsUL~E*gL(9Y zQcyTWWraM0#=Q#x{5sp?-Yf4Z{gIDc5Vo#e+b<(Y9J<+WD1T9 z_an!w=GfidcGk#rztqy!;Xmb~B}qu9Dt5Cw9={D(f?QhwY;HF)MZ6CBeLsY0+HjLC z`3KZr-8MT%1wGt&2p7;VJzj^cKBz5`x8I+Dk0%zmqmpaL8^egC!fA%E>IK4VjZK1- zhNZC?JlPI|{EH&!`C8(0Y|lg(H;0gX-uQtbo691TLD5(}$!8R5o!|YJ>JKL}f6GN0wRIN? z*EH#juUN7*U_mR#t+%IB^M;RW=266S6NEgN4N(SO9jz2UUYhubj@vsg{;eUF!v3JR z=X*Q?-&}7zyOcvbeYjkHa^&?8^N38>x%4bREdMWm-h>Y!SS!*3nYe1t$H4xj0lpkU zPMnBb3c+L~55F}78^+J^=~r4cM;Rp$RlB{71m>FY>2A#WDz+4`*p z*bFFguo+}@!@-Xv;vrMZg0Fg0XpxdvL?&P8Rulvpse)$Hjk45sP==@CG9$q0h45T} zV4AwI$)kI1CY7GIQjDM2X4g0f8s^8zubQwT*$4Y4@e9$9DA(v=J>TffFWW$I%WYt` z<&fq2gl$*f1WJHHtXB*mgS4Kqd*aLptQ4c)%fo-*vjko#D*;k74UlcjFzcxPnR+Rp z0k8?XvGx7H{q6rqRqD3&#mVWgKcZ%@g8LoOi592RA{DMQQfZOeDYR1(mksx3TyX&1 zHScCgBXhgKRb|DPimB=DRAFDTMc0qgj@2zDg6%> zBP^I)hCMb%RCk!e9bOz_@Q@>hT`_p#5z7n9U9s#WTBNDDuc#7K(iM=TNu5j4mCrUI zs-B1}Y=v`J@bg>eX1T>jK!$}Ll>yELa0gPmU}vOj1TyD564QiZj`JLoIF((}tfH?bzhy?J^C{9@c*X>soKRwdu8nNuEjpmWh>Pl^UheO|0<|L%Tsav~QbH z$1V_V>H^Cd4J31)Djw#xq6AG_>Hqcf>L~b#vIRa0_QyKx2s)y7V^oSgW@)k2vGwpS z*GwGUX>!GDmV-(IL-!R+&2<#`arrCqXEne(TV*AX_8cxf1%7H4N&>A~jE$RGo|i}g-3zb|e;`OS!L&wIlRDnoJ)c7A;#t zG>E_$Y%dckwPe7#8s$lhwhF5f-hZ~&IJ?{_q`C*XYrN@sh&qiDMBRp3a*`d2;9)U( zj}Un~(P`g+QV)_C4Jgk4FeRA;zQSw449wdGwqQM=69y9sje)NcM8poF{M0Hg3{M;8 zHlZ(*!3CS^dOdpU4Pz{scW)+smuXa#0DaGf#=UdQXG0n|cEbzdTWi#?ZlZ(gUnV&O zvVRmzjQ)qExKH?NO=$n;zBZk7+!*t0h0NANU>M*9-Ja zGK9jUvs~xx-ur%-vWv@u5P;3sgJHhWO2i_~g2$S)wE4S?Ro&0cAt#9#4(^Mfe5eJ>OsxyOnd344jDO`(fYoy&4S8EFXD+B7%-e7G6of%AI4=Xb|RnHJJ4kN0~C zgq2k6OY^J!#Q-}&{<@+jt6A4f+{v$h<4*Q*C|it@s#GrP(m7OO6&M4Iv#TDj&~pmd z*sF5hZ+A_$w=dO+E0!E7znSI^x^GRd*5Oio(AKVdtmi(tY2p}`NNDWQF7a`29&dYJ zpp}Gm-7?S3(R-U5Nt(mezv=jZc5u?lQ9p$Ley1PzdUC$GwXKd`(9KrJtfyx>=!5lU zk(K*L#Yk%3Hq1}o10LUs_bu%Gw6rPHIJ^nisdi`Lj8Jl`?mNvSl6r5WB(%Pax@5bG zDMTF6{&z2uzYP?{XGDC*B|oO6oMh z1Kk~RR_`>ynRpHM76ULJ4Nauy`LZ%A2_50%4}hRR%KBoh0;N!TQtAwM-?+X|P%XXl zZu=qO%FciY@9EJ3ZR4~*AJYq@=1GIWx17B!TTLxpDnxs~G6~T~DhB%a2slMF)i+QC zFr|bSn4X%}SEvo+<(qlSKJx~`t8ete52GoA#)|lv<&xDB6;-;^R%qKF!7G)VlowRN z#++nrW(QG0$x2IpgraIW!tJ+rIc}4yt6ImPtzu55;e-ei=XW;Mac;HghN|t)5to|c zg7=)-q?`IYRA)vb89au#Y$f|PqjU;@uoBMRBG=!|cZV!h*$nmHN=hiL3o&i&wydNY z2Y^G$f3Qi(wPPF4>z~A0ltjhZO-MnB*vzsNF}VbxB)X$5#XL$mfVstrCrb9dWi#@3?WYiH(@9|e7P+Ynr9NjYr3EjOl00!?NUC^z^BGFvLWqfmOc7CHp7MA zXMB_RzTuWQIOLV&rY9KDNTgD^$oq1~hAgg>u<&fauM`<$b4pqf^Xa+!C+(o?+O%Cq zbUeaKjS7*z$t%RQSI^*6fW4PnVN2}dgSc=;87#{$2R&#c;pU{ueXx=fM26-g$?|7oVzP3HePqitWOLWt2@&Lw77C2pCaLw3}F)7!SB*1#qCmk#dY zbDN5k00jGdlKp-cBws{(fVWw62?PLy8I&?@3#O#lt>h8bYGGjuYctFKTmlJTBh+ND zyxgK@Xn)a*lGa>yQ2dEc*8RH!s&NzxO7MpOCj`UV)fSmKIIGFWk@S;29?)rp-NPu9qijBf6%lpE;@X7C!-- z!~3~5pR(SF;qfOYGQq6|UsY9SLDP-!7+lJg3CFZd-ldFuTC`+o|B-AyY=o`688^q% zueXWsihc@W{ zs;c9LPwM4+JY(M{U{s{rS-M(S-xfXZ@WMAFZE#+(X`Z+xUwu!@hMH|V+xQds$v|RM z)wznNx+O1`tFLczn}o?5iCMY5NzJv`8yrGK5$`v7=}o3;)qY6dUtwH-%LYfSeRIe! z9hvw)C>iw&5Cq0aSE>DWeMvd&%pm?sPRk8_6mz5SgQ%dm<=9P-*?H(7c@CY;RAE@e zSYcei6zOMbC29EAty(Se2BU^+-sG;;XBo&n>}~-8 z$O}KUyTO7>uOIgTPVJiI6FuMGXrqcpQ$?`{gc~^NF`d!QiVxULh8!3j$G zs#r6UqO>@H*(49Abo2f2^fH@j8|Q8zVooH)?^m*g8`;!tKpAP6xsxRon_bRx>agTk zF9AKFy2;pqTkg+D{ZKoHEytI?@Ku)Gg(>!GK0tKMthBtfLsF6OrL3Y=R2ywHjg$_*{Os$5G2vxI$?XLTDY@*8&lg62(~Rrkq0S&PzNN$NU7%w3@)g# zI45BBoD(0O;7TnEKS9VJvakh6_hbe>eE1cMy3XN_(K_=Zdswnv@jej{FHe(wm~%Lt z+ItV`jSUF2rsnhJ-9|Iz=h)ZGU_Pz26lizM3wqUZt_ra}Rn(w*9a%``NO0Qq@NBf_ zsSo~d81IB+{G!yK@W;yX+82MWDHNNI?@+amqHI{w^zWP7*9AJ52&Do%mjz2?VKLs# z!Y@*apOZpT2b;Obou`1?P`lo@DXs%A?9%pgyOVli7%*@$ng$hpTUW{wXr`3c>KoK` z*a^0OwbZNow!A8QF z-D8j2o#amd>@U&)D$2-;&R(>E#Gr(=bDVPAXqAk>%o_gDcoG8W{jY%f*l8Ndw^x(c zfZN$CS6#;8yXg?;ht09Q+iU@=uP)_h&%~>&c3*pV2gMeM5h+!CK_0<$$iMt|Y4Qde z0Yf|+mQk?x_~iCO`UZ-Dg+rS#X@`S2dH>qBqHV#e+_>&g??~_C(y<1JOk>3x2cX2- zHfC)kWquR$Z6=z1h0ulLDGT#$%r}G5^=o);id{V3YK4Nk(Y&=!9fV##IAw<(P&Foc zzxhsM!H+vVtnCe-Y1Z^Gyqgp7;G9)#y%4&jhd;ZfMZ3sTwZ=TzaLaasib zQ^Z$ac7D$wJ&No)FAZajPZJgl0~Rb}mhb90{@!eH@g?YsF_NWS5+KCMTk(@g*JpeC z>k=IMq^g?5O!OT&ceTmH!1Vgu<4 zv^%JDb+0ZWQSzjuNwkJkLK;#;`F(+2cpCKcPM0mH$PJ(_ za-dt3hDqdHRQPnK{ca*Nchh77jy}{>Dds&f+&?<|fXiTa02mmM ziAeN1UhyDT^ad54&$V`opTAVGe+CuPwwbOL=NS&w`jewD-SOI^ExF@ZnetGyI$M`> zENWw)n$A&{Y2yMFA1ivv{|2DGyi5~fQKkmDqnKrY&jxInu0!&_!RMp}SunY?^$7E- zRB@cwrFi5>gWCUoiYHKq4n@y!Yj#^WB^*2C7z&7)i z04!r25)yKTXHTE?Qasap>i#4bH{qQWd7REQrkZ=SfPoT64Z{jPYL1vXcIJ9GTVn8G z$Y)6Cx(y6%R9tB&wPc<03_t+TPgYW^==cGenspSQjZnxwYO0|mhqidbuymVOebUm@ zhox#s?*gFWk;kDl6nWIC*{F0b9at_q7z7`-Gk#&-U+^Sw=sqERYCv^&wy+Gc*d_5Mi~8L_dr}GE=pHpYO-3@TU$_9$ z|3-y?mB8-bIb74P%GKAY;`&H(r>6e z?1sI#Ea2tiTW&|yiJ?%}iSCfqm1$4(qUU{YM^@(w%9akK{6#=R38w{Q$>bE}dpL$3 zPXlzRe>zKOU$(!r+8uETpiqFhI6M%^6S%rK!0BRXyJd}^-?h&XHl*Sr41&S`y|LbH zxUMxRB`R$s?cWuG%z5!hghfnvTrttDB(g8E5$YQ88N4ci1C{Lrw!Q;)HL%k6xZF9m zL-cLiffyOiB||<(Ifdmo*9Vu*0!4xebP`^K>1+cDhR8GfCM}6A*%+_y1x>V5gSK&B zkN>1IHIzq11}A?xrvqsR(3-xS^O&JO$dUMBBSD3bi>OF1pHs`L^};ngf34~FTSsN~ zlZ{@?1sAmx<>$!Esi$Amz@Nuq8C_2TpsZ1QCQcNOTEBW z_F@;Z=OH9Lb;&gDik8G_jrnwlgT_8xivG0Dj%B8_=IPHgS(g@M-;RUl%eu;i5U_B) zmrTfo6LrcM3cU*xd7QD68=H z@4c#6e}=?o{s-d~5c+^=jx0uddS>p!)SD5P!O)i=-7M#>=_kxPRRFn(3zz6COX}>Z z(yk0;iaisT%JLnTl1hU1c9AE|U;%EdQ0E8C>b#1r=$9S9ijGmE;Jxl8GX-)I>IXmP z@0lUs$*+doI=RR2x1%lj!KDSSoXg0fYo8(h``{p=y}#tE_Xgw~wB)7SB0VpCCk>Dh z?XK5(!JT|Y^X=sgG-@T4*_xGHAs9U3(t-o;bm0($Ntk znaP?!e=B;*P%bs!{qLVek!)G;X*}pEcm?*eH&W4SLaMqncN& zV+Q_fBWqDk+!4OgLz6Sm1b0OL@b7f{pU?Yw!NTKr61ao zu;dM<6jbu#TC+{rD;R_jv-WwhFZ?K6$4+*ND5jEenJPqesN56Vw5p;a zj~!4yEi1cnMqt0%oOc=e^ZQ3bq-OR0G6;8SUl+1G?r|pDoBT8QScJ1!f__m)1qY{V zA~8PLi%`rvKsu?c!tUt&7zh;$ScC3UMffh z_p?ape*53I?Zw^V1W>jVub`;XysErEdmXOcI4?>G{~8%aJdbQND`zpR{qG|g-=|R2 z14yDNq9vkDqC=MeM7LzOw7)(7u?A!b2+=-n1Fv$g@~q?V<_==9HTOaH0gqRAW%U+W!~iHw?K^xv1M;CmDi## zVc63SfG)?)zux7Tw*znJMJB)0(0P~z8k><@&k};?STb#kC56N`lf58wil1Qh7tw`a zrJwrITk7nR=-)qbYS^^X45X<f&h)ApAsOQl1Q zA6u-xzmGSJ1%Z}yr>$B-M62(ctIhWAvB>@-W?T2v+@Y+hycyjNW}ZgKh?TQXa-5Tan&a=43Y~eN|YA1B3KX`?gLoL*_#g(^iom67S+neB045Q@zr|cUhVCZS=KtM&bfszbxcJN$O--inP8vTZd4A0&oBg9 z<_uF`mKhlQs&f=s!HrwCo+|6leTbJ=RzgtgcZq!Gggu4e&J%PrU4I+3&5nq-Ee}Q5 zKZGK90-6b%L8lfqDF9rCFW4^rvAM&4?Y9J1=7D12;+Aw3h1@fZU?r#$*E%nk%>a;% z86o59&eKE=bQOJywl8J?xAZ} zUrZ|TA0eeS3}2>$Z`JZE3|8NuW?dba17cz8(>Sh(Guj(MlsXyiA9N#$TS_S9t&xFN zYpILcdeAban29>T*lFE&z-C>%g{wn12nvwTD9y7nl7mj!l?wQP1%A%>AZ0pjH{zd8 znF5ShJMK-h9&7|->6sHt%GdN0O8hp0?L8E9+L(~0k3X%m$fDs z+;(UehwZsg)42WeUy*pDHe38>)V|O@nz5iQ$ukDu`1t>Hu0gwECVCVbmBAjFyP47G zicqCEu(-Mslu2b`gqN%6BPDs5<7P~~Nb>FcOVrD|!vhdI`Kgmt1*`kv%r(7#bJ433 zeqL2`Z%IQTcRHWO6_kZPbYl|-3$3#I&r5ywV`s=x=gS+_AbW;u{#B#l8B$(M&BJ{S zBqtd^e;3w1TcP0&xYnIHRFZM*hKar~;!AK_qiK|Xh!0uIy=n#flmxQs3R3oKi@|0= zI?K~MPLas09+0XRz>h-r#lKA?xZTu7fr&XhnJ`kn*-J8&;jY59$A@x3uo7Hr6|)>uOJ*Y|H8#zmo^~^rKV*q*9ZwBgwqO<*uu_6vyst%TE+{T79Ny*UNvld4s-1jJBbA_6ZS|qt`)dj)IvCH3P34{ z2Mk0h8*~A_I?W>h-Sq?%C6+=xR)OeYeBIi35WTUBJ~0zT{6qv6kqF19SRFTUxG|15$7V%7_iu*69AD| zirQgZra=kTrVY)7lt2E+Bt(wpZc98v{D;?_(k1h&hw2G*{>6&-R<6;a2ZtafB3q9J zsdrG?3CqNUena7Of`Y3ciY`XY$Z7k`Xry~gB4p1T#alM&)!tJS*b?8Pt*40f+|||p zfd24YX}FvP5wuZKB2WxiqR9OQF{&NvYlfD&l#{JY?`ERB`WcD&FDR%H9wI27XF(S{ zmCq2_T8@C&Dy#d=<<#(h%WOEC zDrApeRU6bcOEVt{F?tXmXTmT+t|?6D2MIydg0f!bwEJ^H)x=-Q)2V$_X-!kT2Iy?v zuY_6fE^uGGN?bJ)$iv*One`LlB#4CyNwaGO>h6eWE@jRCBqAOu*hdVHtuAyZUmDsg z1ntiGn`GWUXhwmr<%S}rgsfcEgHiGR9C4!k61onP1ziZgcDbX2?9m`RKo?LXDGDMf zayqe86R^8}MuAA*OR)+e&pJ`p2KXss@!IhQwCp|#_n)S>GlqzYLcxuE^;uA!Z$6ge;;SU+&`P%1hSm!h* zq6q@PK?oz0hR9VwaH2XKM2S}5oA@DB>cuP3J{D*Mcr{fv>a|)l5PnnFGwWwt-R$FW?1Xf=*!Oe=?dM3T8182Qgp?z%Cqy1(nY_ zR6{B{qWFqVJUxE{Q3kv~M1x*IDNz=OgoC~1HZ$izp&`o*4ZZ*5Tyz0ZPfb^@NFfg0 zkX&_;WeE5Z4k7vn1{aa0{E+z?syRc6f`gKPlEnw70Gqo29)W*AszT6Xlu5|1;4HW2 zoj?HDOT-Z!q(uqj=|s5FZ)@%nJ&=^)($Wg?zmk9spo~HF{%0179fwk`$)|LQgQ$1y z#eDb9Ddvk}aoq-aKwMoyO&$&?%SbU1F64KzfI~*;OL*%tD89D<9fD%&0R&gSSZ{?N zpL{Fg^>H^kXtCW3*|h5|n<4H~(_Y(sw|v#?Uuu-N3d3pC= zec|TgUBGN}$n`!8$6zW88nz zaa@0G$SW$qbb3w`1iiB7=nLsHZ+v_CAteHgVgh|$iU+#DL-5q~2#D^2H+8k5x0%_w zOtH9wfp~7Y3VH<~6cTiit>poE1`0gHwu%Hr?(Cd`9t4$D{)}s>{LxJ7Hak?Q5zP1$ z9{l~sM=eG!Ni8FAIO9kIZUe@Tk231-WGt5?1tcx)eIpdytJNs!UJoE6PjCG|J|Exx zKG2a&^f@5Rkvb5|obxzr)V^H5JQG{x-$;x=wq00g)XThBMMfG`zAHR^cd%!TrFK75;GP*C8P3e|!e5%yj> z^>54K{tuRl<2OWP4)52iuTgW`00dcO0jH#Zd+S`G$CTdJYB2EIh! zF}Fo5fg5i}pqEBmb;#NeE*ykL{`+{wbvjxEA+30I+IW|IkJ@p$89US5Y(Fki5A@!< zml%L+iesYy3d9GIy*}a&`tUe5uzXcfzgGI_?m8NYQBKnVOAX>CgJ-`7P#f|^WED!$ z+|i2gov@Xb|HxnFU=z{o-T(O>l&uBGC{{9rejAO6YY@xdOi|a-mt5&_%YR)IH}Mfd zF-`MFHC&eFm|k z$|$ZX+i-OfjsT8*D6#notVc)YFJA%cxhfF4>k2ZR3X$o4M4P{ADn9=xci3s)^`e-T zcs!!s4hCYN+79 z_CMdR_Yc^`Tu}K6h#-{B%ld=(LJ|yho|AY@E@;#H2i2R6ABwt98}temx+W8JAc3;?)&tWo1XEHN(ksmF{H>u z0B(h3KUuk(vQTpR?vt$KXv4_ZXOaE7p;xDf?;9^;oQss1-*b0MXTI}uVVA#Go{vrDAc4s#OOy4t9_$&vE@}L>S~Nn%T9Wyh&Pe<2lRHZc?Lj!~3Vp|UsYKRhw0Gss)rEm(&H4sliAv*%fP3D$9`?|`#KVuq z(PBl0FOP6Nf@QoiUd6r|KDMq_{HVlNLUz6H`bkfp)~>oNx9hIcqqWl2q^sT?KbPkQ zbbCV631-t*e}Gxhd#(p&N=83ul=bL%d);5paqtVIzR?YJA{!8+KLS(_KJ5hn91~)-+x|V>5b;#r8(no*n*1{;I$fXxpVv_#TECufR;QXt%Ehw~5D947j9KuoSc(o8`u_JzTM zor^Lu(ZGGr3gwKe@&46g^HClygk#@y8!;4z6!z%A1t>_xO50e6#r2@C%Rwa0U*}jD z+@tqK(nsY~{=t2jWkyyycQm+@-w5#9?8T>YI=qgz`ljuy#V@9n1Y`w<*XMCJga%kS zaq=aVyC~Uc&2>m}g3KP)n&1Bv1=Juo92H;LBwn?4WsNQ7>8kz2?%CJMr=b zPu8Qn&AuLZJjdR4yW~C$9`j7)!O8V5%iGUxf@pKPBX*oYm(TU_)b@P9;?loIEV~e0 zp10i`ny^X#N%>HRopt_E;h9p~zx=4M!R+Kn>i6i456y7Wv5@z0&JDZ9@is_MfMm)W zx3tsBrk6%}Z0xE`F1V&wpPCV!4!YimkM}#DptL*{?E2jl1mqmK_%@^yx&DO$m^PRa z#MQWtRZjfikA)$5p#03&u39wR@77N%t&g){!H<}JOD1& zV@GTTuASO+74bODUBS(2T|0K1J?%7zKgA&8+RD4Zmt*BMq88=O+|8QlpXK+w7mq60 zeT=2z6lX8f?g5F^Lse3ZR`=S_B?26n2Agy`szLZtK~X zLyw6fj`~AH{;&*NrSbw1AlVR|_qP2k63tY9aj;WcuZm|@6JPFBBA6K;h-|NtN)UZ% zx^Yy+1SHAzsna<2!=?1F5GkKA6D00C6Ux<6a@CNkf8-U-;a0}I_pYFn1CD0-#@MBc zq+P($u~wykYq^Bc%oCwKE470~-sdii>KE69_?v)o9$$Rj_x(kzs*rV0Y zKZQa}J~?=&E{|dJ%!o~b{;+{4m{{{$(R0tjyR{*SB7YqIJtUEZm1m!j?k?0r@}6Gt z!6oBCQ_NCi1J;zOr|GhQJQboRZaLNxw$lPq^4U+~;ZmdR(y|XQ21HltJ#?}B?3Eyx z_d#l7XLaJfI=H?-CdZA#hbPgQr83s4f+s1V>7_Dgi1$GqS-Brgj*m-oTOnL`yPmnqDN5A?NWrb3g@3dB=lA1a;1Iq{=_ zO1#V!ez?mK*BjYcZ?nJuM0j(8Gsgt8LFl|1zGsL|uF|;gcWNRghK2`Y5*)ZP>D5N8 z^DRl-#6uT$n#hm!fbPc8l5n73_OzizL0iL6nZy_V#^#;V%185?`{uGNdOBW}d?nmtjbGFGz0dUR!TX(#3hd>p_2k~Q z=Brw|@=7EAgXQBpOIN18F9nHF&83{1Hx{Ej0-iixKGplphBp*;;f_dKdpziNNsJQf z`CezSmueP}=@wY*YA5w`px^E*WI6kVgC*XPK<!;DJBU^dqCN{u$bUm#wHM_O!a zF&v?e%|@E@I=VU2t#)ssqkOaSc+(%gz|~(=^gmQw5WyX~`#LngQ;wCM#V{pCbQA}K z!z~{{){h1rCG=3xb}N_kI=sF(=7F5^AVkgYkd^i}i1hoKIOlfe)!U%(eIWGeP8n9$ z%o{^PAdT~GN30xngvsA;-iN~`KdT-j1Pq+0b;o4S`pHP5@C9%ACA$v4)TkXg(wv_h zmg8uShbu3dcct`O5lTE{b`BNYJ{#$}2zNO-pmFbPT%OnwwY(LFOPo=4)$i3nnb{c1 z+&NV7i{msELASZiPhX(sYYNs4cWGa)4R_ucJ&6i_b4D-P(IAHlPkMs4NfSP=5)MnJ z^)ygLfy3vGj)8szt~q)1rr^zGI=-)i`S3%#-Qz(Z7W@Ls$jiNYFWYy3@Ufvl{s6qn z|>b3SJ{J#xrSf7a~cqGyY8I)u+qY@qGW6ic+_#Tx0DzxVPn_w3)(+h|1k z(w1GE)-XJ8%g2KkpH)~D7BbV7H+d&zs`3KDJ(km7fAtAVblbBre?1U?fuNXySjJO! z_X$FT#_;W7pHIbw0zmOj4hMg5U>o#V-e{vBN;fZ{;v=isXRoLg@xh0dHW>SSbN$IT zGrnsW$aHP0)_Xrif5q^eCbcBoD|i`VErQ7W;UqU^$YGQ9`_d)8!9|bWP0>dFfOyiC z7o&qYKF5;c$0;Yzjh9d6$fED(VXa~=u=lqJDrwe8DzQ0E+~9T5%W)g2Q$AQD#Hpf^ zr+DnMVqP~J$~88Skwv0JCA^vN5?NZgOeIg^U0pNQk|ADxHa-q#Jx;HQf#{)%Jqjr8 zH_$uGYPfmb6i*71`+^o7<+%IP>iB!qp@H;Jy7ta?LQdiH~ z081Q>mN31qw?Um`<5sNkeFE3FJKr6g*fn1wEYuC$RPtPPIp5%qOy-_pLv{ z17<*Qznxk9BJKh>=;Q^}mz_Uz-=v>zpGK<>*4}ras@NN{JY0Q6y>@l}y;Ho~evbNU zSpjBo9x+8pIdAiGURC{2j-0cK>&XVuMh;C(f2s=goHspvSHYe`Z33EM+*4r!yNMyK z7Fl{&yidvwzCcrnHAmpXGyOMC7OAXr7^Ba72gcI zMGqI)qz)sYfpFA;>AupVI|eB2^^4t+@-OqMy$U$-A1yvwaiBJjLj;#J#ije}YC8(} z@gi29$;b0Cp#>>>GP4l&<|-P|i`PD{dS4qpE`=j?>~>^#-^m?((ZNsInw5Uo$U!)(k@s`njNDniciFPvhA^_uW*w%UHwrt^^nqy9PSYIl^R90Tj1dDlz5~#!D#ZLEnZkQZDi;?^ z>&zy?imWxyfHd!(yQiK7&m9;5r9)yj9v(CzSHs{ zrO7Yn*yMQe*d=FL<%uJZZ}}tBmy=YaexRj(;J>XD`tZMEmb3sRi}7dk@BAScd2DXO ze}lO^C^o%oB2s-A=E2CK$`@BSNMmEY$& zZS%74S9c>)WRvdyu=4)$`{mL3>tPZ^5jI%+G_g^NC!L009UBdf&02 z0c!`bcAug*48gdk@gp3UMIqAr?FDc+4~%vq7yhI1#~UBb8mM77tZqI02{NZ+T$&kW zHhcs!0^w|8LYW2O;Gg8|j}JWs<9OkgL#NQN!4rcgr&Qo;YD1B|EaIs`t1Ls-Ki#_npB5>Gkir{wQVoT{{iyu%r1Is zbxFqK^ugPs5B^7&)%7IE;`E7!j=yMZ^*Vp6!BjJ4oduHir@8yPC;O`j+Nr-dX_Xm! za)12~{}s1dLGX3XhVPcz$->!|ufO+vQs1pzC+Y$*`h4wLXIOQV@m0C61#JP{?{wH4 zinwg#W(|qDteb^@8+!o(jaaX8ayVzdP;sa5()+&flUmf`8q@`CByl?S;SAGzI;C z51RShXm8ND^Ea1ZrlC&mKQwk6!j~}pmf?W<5QLks{glrCFM+^JcT&-KeV{C$XZO~F za*Vz>sa%lxH*0%@#}+yp8DoDjxb?W$OBrRt`0f{hKWd?`Z}CT{J;DWE=T5oo_$?TH z0T_sA`KWhwS--q+bfzUXL-a zx5(L1^5BK*yqAQo9hvH_L4@BG4B#hmGqdbstuCDQ#NK|!v468qi;c2?HQn`}wKs0^ zaY-CS$L^L5>45(2nExOA){9jBk;lll25UR5ei2jdqt6L|Ho%=6# z9Ob|{{>2eJnlL1D-Exn6Rm6nL?-(ZgE2c1Ndql3DSd9LE0YfSdxcQ$wL_mjEi0+pXi+xBsaCofwl13Z6)_$Lb37t7dI@%)9+U&*#Z z7r|ML_rCze>BdK&6MxnDk7NwuapdWBmH%R%9uAzvUm^Z4=J|*3*TsSUtp6E!#y38e z9r@3ayNM1r`JqT<|TYS0KOb4nI&gH}b!laj&Sxq2N`k?*bWXhI#ed6>YI zKG~;(;Md}~H;D9Ac(laSbr5rbwAv*ZK3pn2tZ~*e@{Y}}-X`m9BOZM1ODMY;D& zsm9yHmBn$DR@{xpVku>)ePAnm_LB?;4gCu@izs6O4ZZEN8@&ECEK9UT4|7%u8-iFkkA!gzh#<1#p80nf=U+V5{8$fAa;>GKu>EG-; z${6kQ=uAzXek}blKtrZ8GX1^G{lN6Alp)gLcNYMNOX=q37rlSx>Gw|CS#LK7XD#+=T z7>&X$lko7GVn3(~YIIa}8v^0$3pX05Q$xtu`n9V7S_}l zF%9W$nDZRi7T3*bO&vsPgt(dP1N=bY|3ejJ>$h>!BvT(Sh@Mx>J zTU2hfxz!o4Tur~TttA>zjbn9;n{bR-J(G{8&RXTr@?ojj&XWuK7?{^T)HuvkSytBR zezazz-xoNI!t2tjR=WA7NdkDqMnB`3ct;a9(=ac10MalGGC8 z0iU$WGt&ckifDR(L3vtEw3cAB{%DH%^SN}@K&KbQ-JU}OJ>=lkDMSZ^%@?Eqe1r@b zR6Bw2isH^zg;l6p_CJ`tcjIW|v1Riy#i@yCsSbK1#6VD^@$jl%^Yzc>;d0ZpTP9$x z`g(HO6HTs>$-wb|7bc1PJU|&lg$?!+lFmm4%GA6AxF(?EHIaW{2d>N651hZqGn6%8 zpmG{DT7HPY{Lv>Zya8TY?6(%^yz7ri+aD9-xFfqUp)P6N~QwtQ!Y zwG}5`ja>HaI(&Yj04%3!OgCv&AGhGlrxOu?$I%I;@BMGc98HYarpy}N-&%%9{aRcT z6q^N)2DowTc?(MDtEn&21hY_ug=W_Y79UT zMWX7#12&Z=8`a>}7^&K+D)=!Jy3f3iWmXv-MVYQmcmOYXQ^AR!>ZKnE%cUvO3cM$s zuN-II$}k?&*D;$eL3zq016967>?PitT?T=k#cscl%zH*k@1xH}5Wb>>j<$a6GZpYT1 znOCqeXOF9j{R-M`WkoInmxF@``e7tl;DJt6UZC)3Q<~`}xFCF`_-g$26z;|*vYuz2 zyj&2CG(3FEyT5FeH%?PWPg%66EIY370!o3+6U80hbFF z=17|rn@bs9{XTa=3eJ0GS8RJ@(0~UI9xgN#WKTOiJz;K<(L=7zkz=@TPUP)<&X%t# zO}>0^US9&(SMLm`G$xKKqb@`P0nQ6c>ViVJMyU>ZJs|iCOugtbnXW+49AA!2%Rn## z505+~cmwky3etmC2GfI!yi3aOG+g7f;$fCBI=-XTx_Rf^j!BnprQujm^?n6+m)KVr zA+52@&@#QpuU3_7tn=i&Mq^V!LTLO$O6OaN#)VEkd~%->kU|x$NeHKGwu^ z4q;x{@d6kXLM;r>af$sx(&0Vo@)TAJ06I02`!0 zyr&_;_~{*1tTzipCGj8Ta6!4<6w{efp*+DJ*zn^kg@{k~RzB&&WLP^NQyh%K3%x{d z(nzpHT(A@w3D9fmh;{Sv9Sdu@mGT}pT?My9&AsZdj#FWcfM>`NV~n(hI~DLk-LT=; zRgY6{K^)y5_Ycrb%Jh4kco>sYDC)lIXx1s0P&-07Hz2mi ze?x5t6J6uK4966}qnDZR&L+u}q-x^t`t2m2{3WRuet~^4KzUM&n^P>!Ka%PKMa7tC z?J_fZY>5zJV_WFk=27eENv7`k zoW1_8k(~UG=(EEq`#RiScc&^y3*(D-neBRA_L`R`5jHs7c`1jkyP)RlzNc=v|&GiKiiAB5Ix$IG7H=pzCipQYnDiAGDJuc@k4^Xpd1656o zgYoB;ESf@3>7O7(9%os+b~8B9hF#;YC2zl#LT%m?O6ngnaIvfEim?me&opsXjy0;3 z#Oy?X`0|J?*xQ;hnnL_ps1|JH*QQH3Ptp-aY0bvV&xBcyms12$8~o;fO>r;mHDqP; zNz)3)oiDO^|P8WL}m zX!%zv{84XHDijM zdnrqUgKv0O5ulxAnl#hhP&}7iCT!9>me~envwyb!LIP||5Wmi?;TDkLW&JI=`K=8p z34cjbkfgBXU`%z1rt6;~e0AQKHY{yy}K0v;DWm<0+bo}@c%F?H_H#`jd?qI^D){Kp2 z?X}5h(qFa0DW;ld7$r4f2UO&bcYTbrt97?AY zWqB&91DKqBh@2#Gf?i)EHPFFy$#)xNJMP)Eo~9LV(8+u=#3kxw#t03N|h6*TLDnXVU;#W&ItD ztaJ1BxJ_JOq_rPP_zi;Lh~mCSpt8pNN%AHXLWp4NnF4iq!C~{x+9?&RJY>EsZ+;tk`L!ZJohd;1304dL?qu%)Ew&fVdt^3V4 zE@7guv5ctB^i%UPd<~iN>EQ5^)hWXL{e`5yK3zM^-B`M6%0UW7DE&;sp8JdMk2 z>qyN;LWyL76MewdIE&PBib1X&sA@v3Mvna-l}+1W0$RCUTjyk@G#166JV1*TEZLws ziymw;5iWZXVUmrz?Jxwmuw7L$sHJ^erw^9ZF*W{`8<0x6>T^El7qGVVza#V7s!S%A z?}rYy+4Vqi!a;pyqnNgQ_%1^FL@_A$JKDj zP6xM3BjzjEAg@~)LDQ=J=nhxE}Hu}wpw5%p7wUYvwp6JNx*ld5;?riYtdU)inRRI8U!aD|ErmO0# zVq=OvuuX9{MW*yVvR6C#Yi!SzM@TTS0(S~uag-cFgcnLAfs4DjDI0c^x>-a8z`Py$ zO}E?#l`st#C-7gve#=oBi2++bYnlTw(F>?w#Rk)^3zw#VVUobvgBpv+Dbv!2VP?)4 zy)5ZCz(9jdQ5$}rmxlm9TWtPK@I(k`!9g2)3>Ox_2UIB@(fF&(=N6f7hPAC-9i#~# zmRDe0_KiGjT(BuV9s>4@%Hr;>BnrFG0ST{P&`Tm7VH)hZa{86RjAa|EhtnQSoCLOmxH4^;V2vLd8w%a!@ zmwX-OvG9+wySDRe+|UwDM%nOneLQ8=|1gS8AwY264EoQk_tO#H53$#RRCMyrSbW$CBpQXy5ovCWDwnDS9l znsoBN_^(|a3>Vr->s<2(9D}AG(yl7*x*&f5te0UFel3!2b87#tE*`)D%B`U)*!C-O zuX<(|uRt&73S32gHhnH@t9Q90&#;RomP(d<=8h=Arzj|qBD{BciE&G#L`7!RSeg!2MTIJf7$y8rD{?oN?SF$spqPW@YkH zROuv+H+fa{2G^k{(HPo|3LI;OQ6>U(9MOyQ&xKeG)mQ;*-XMC=xtd2$h@u76Rc_As z#B}J2EbCwBbVl-y+R%2J$kLGcAFe?24*_SPB^f5GAs}V;x~9W0*cH!Y5Pyh^;h7Re z6_&@@$XhCB88va8UPWV6O>d_gmQIS^=k^@)h_rVYDPJ zh+JmyD>$4Y=mnanvMxTZJf5&XVEVmh6U8&Vng!5mIM%2Bx$(~S%`_$YA}IuIaoiYN z2dg~5cMbJ~%}%)nG@62VqeRcZ{1JpE)1SD!gq}^PVer8v-`$Lub?r3H!k&;Gdhl#C zV$~*;Hj{Gm$3kCPPq}bS+%mMo=#V7E)`(PL1LPaDNf5n+q1V%rPNEWoA zm!Bxo1C?QuTOv){qKV0v0HY?B;kNl7%H!U?y%?_dnqCWfXlEFmK&&nOptm{tr15i; zdkbZnNF)^Js+}^alpcqC=|6n>D;%zP+zvT?yIStOs;_jezqIh*m6^4{shDS$O^DrQ zO%0}%ICl20a*IlM{Y#^!yUH^{0~DnWjjSy#2*9{twa7J!C#u*Vv>@CEIEP>cWA-^b zZXf=KP5!(rQSaxLHuSQ$${Kay^OfOFPKuvVj6VT>vk9(R+|5JDR$(SAAjXa}Gxpjp zRs53Wp~KmSR_y|m1$kU?Tx*WcF2?YS;01R1lI<|=II$2AO?0{?M7MmXW;G=DNZne^SBu-fLPd+NEix>z#hXNvx$u>tfOyJ(%iWz zzVf?#g~4f~J&itTQcyR{K)M(Lm^3$q+Gv^_ zL&WY!{H)wN`(;v4f$igGpq{6`G$}`T%S)I)ONo<-2mMA@=%r~d9YdXQ!1IeJPDF{KHxWmc3C3aNowL5x2gJw)18@;zyTD*T=Bs~>t7%{%SZR+U)_9pvmM zs8}>eGLy?_9~?Fxw@8#SZbWoYdHSbB_JTh&(8!UxD zRh@|6GDD}3+UDBaBc8|Eq!JR62uqtY25-zLv*;$u$I<`H(j7!49tuQb2jtSk4+Bz^ zvVDk38hKZFhh@8AxL=8C3zVJ$=H_@A^?Ah=_;@xC-uvE{o_E4-B%fp7pbQFPdzQCa@@EY)vPD2Xg3j`-!a zu3g_8y|PKYsC5^j zZ!oz&ap?IJea|!5LTziCLMZEs&^?Yc=jH{#Rz|ueXlJ24&UPQ^PYhGz@ z-CMlwm40ls_M7(E?JzQHa4c9*+5*`m_)~QwUPn)azAXXFp=pj5ap8vmU+DxOpbsuh zFlRSc5^eV~mhLL1#V-&TA^%m?O&E|Z3YCfoj17RG)x5_0al3E!W@Z?g;c;Y4p3Djoy ztxQ@3mk-iUIEMfD_7`f;B_nb}dST_45&+?*pki?I*+jApTL>?Mxw>(oc^8*@&o2R7 zKtEaR2vA7G+D%Hk1`j0BbE69@A|3v^xH-(%<#@#3Ik$q=7szt>J(q$qT~xf%NBcJ` z9@w9|R4!e@JNhX)c{FfRFYhW>h^5)Y2l@tvQbq*cZ&WOGt*Uvqdd>N|Gm?~gTr1B3 zwc3GlXZg_$nGFuG;7G-BJ4_R}E&CvpxXaABRIBx^u$BM~q~lz`I$9&Gq#nb-(@o=2 zVUHsJQRMVSxq^fnXL@D&`uzKgG4Zfl-3D<$P>kt}0jY1(u9-B_OCA-)F(7^O>WIo=M5DjYf4u9C6*_o2NOd%5*@vV(xk5S75Z7D z|IDh~Y`MH%P1O1I;w(}y7d=~JmGE*!gkzZ5lRzuKxlpYg)w|BM|oWK5jxr*fvvzv~i z#7DhlPtNS0As%aTY69$(dn)IIef!Y`vYZh;sJkh-_Ai*;)r24Evx{Gry?^SEmVE+< z`A+D&@TUjgraPqd+Aa+E7YH}(23s4%O}qpF-TrPY?fQ>Evps)aWuyrh+v`PP?lL6X~ z^OG$rR|47x3RJ;+e$99aV!p5oI-R*uwqo%H0-0Ol+y&l89eTV8`~Hbc1}5+;uT<54 zF(i%`CXAUr-`Ke@@H%$AFGhdN$0|x+vgsi;eSVd7e4$5Pc-uxy$WLMm`H%d!G4SVZUT2Q$fi2z zOz=A9x^HP2JOnD;Aw&3iPv$!xZA~y5i~QlG!RDvB*?wVk#oC$akFIdg<;fzFo$QN^ zwuR7sq(>^Jn({8}9kn*l#i?cx=wuFQap>)+@&x@ouXM3;E9AoopYr09IPJiDpoCv^ zHBd_5^o~Y%u={<}SFt<<)PY=XzGEVtBnph!E*HNH>Kk4m+dmCmpJ1Wz(iKLZbKq*x z3&K}&ZBRiBbzyD~y%Eksam@K@7&Ajv&c0Fz?mqFV;{=ZBw@FMd#!Y^=IW7p6x2i$2$^i;A!}L9<#U}x#cA<*j<12243OcmWgIX1i8$tXuQ}! zsGI}4#Z0}h4$g=XM>~qG*aW8G$t3cy9C?n9+_NMY0sd{JJsAl=_Rj?(M3>#&rrIgR zeeUxy;DKGQe;Nx$C)AHX2irvP(UHLlLBh6?!dkzEt#ZqbtJs6x5X#TPACA08!(M(= zyBTC6uTAZpyJo|RqkX18esqLxY9Gh_W-S4BQ&{zsk3G9t%qlI;nG;o@Mkb{_wC|Vt zGVm-o@ytd*-?K0IR>2{K!E|Z1lom5OM^XzOUo1IhrUJ8MH;dwD_R}u*3p`57MFyhn zlxLqsEQ5Si1+aUpD^RR}(KKw{5>5Q+caY%{dl4(N?=gPsH=hXx>G6-hK!V*cD~=e= zIMQ8L7Qmkn0wOP10*_^@OqjMvaw?d7$Ud6qwh9#&)q&STbRSXImgj1RXD^#T+-kH6 z^p{uU^;R7ZF#vexD$1X%rgOwxA7pD6G}j zc57{I#nUAbPm7-rS|EPqm|L%BCn*$0e>XwgD3c!=bvn8LZ>HQK1V)^!qtfLN&oh`Od-P(fr#Oy`n(#sm;8Qxk_h_DW^CF`6fMeF>Iv z*%?GSYoU~e>=$qkeBZCMDD%o=^W)0RDX}eJKaH?9;GnVUJ)yR+2));JZ~pNvGU+;D zZ`9FaS+B~5*W_l94)2RazQu|X2aIK_rbGUC+x=U^kb%rJS?^2SfH>YlHoH28M4&-G zlyf~=+qgdYCEQn^TzBrME-KWMjPu*WVAg6c!s_E5drrhDJ4*uZXFT7W>blSReA}u9 z`!Tm-$8_3FlCN65r-A8(u*Jh5@C?I;T3G3zDLlG>zOGP0d4B*|cntQ{`n(;@L0w2J z63%8LSnwD=>}RJJ!SDyuYjONJjxPOi>(As1AGS`K;d0WjpM0tVmS^3ufsdR~GhN~3 z>5f&W($7aOyg6(A&2KA=+}|dD8L3-5P1{c(xGG1ise!*=XF8 zv^3iyQ%d1{?Q>gZf}~RuSZ>{46X+AgH99Nu&B75vA(6y6`lrLUj( zky<1HklED^oU&8amq||cKN{C2D|&p{7@)%E5FyBNO#JThJk6qoLPr$Ya4Qh2$F%|Y zk%qu$yb7ltsTs;dUiLrwxJ?b{$hjea&{L2RKqUSU%hNhSRNE$|&5wB&z;$+Ic+DhX zC{dP1$9Ln?SfL`n8EE~}*3UYL6w}Q8)pvztx5TpgR9BcXb{eOPT6H-fdy)L~Xb}?K z^$jDA{}2PC{~rFg)8CU&6*LPjEd!6ko~nvWz#3Jf+}-4RPvlw1w(8Prr$2)_YD`B< z(W*}TpUi4we!Ky~unCYG?ajp)s<9Lb;}zur==Si=CC-MNN7q~L*n!%SE3_kO z!!fOqe*VJ{GR25g+-)wufnj6BQv!T-{T?QYlSOMmbW|0w|D*Y%eMr$0>(-`Zhw*UG zAE*9a6|m58Qgd0wOiVoOeOy!r`^X;G`?8te`iqry|Pgd=FR5z8}L>&Orb^fEpR@? zNZtdQ=}}9BWuAaJP7=Qu9{F-b-*svd>}5UkC;i|1n2}YLwE`sQ&yGlwvq$YuK|69~ z=kI0_zrZpx5339#ofokdwV9_0*fh7MWBA`$nXaHzc@KDx2|eXmHYsLjisIcDKq_NR zo=W1GP4IWdE0KQ^syMz5#a~9Z{}as3w6wE+6$NP_{!mffIxq8^L= zAbrH;g+85c{@S)*rQ;!CY3$BWTA}b}xo+I{YU(_92nM}x?K|f;gaB_Bla@0<#M)w< zOhIMM16D?AjSw!4?aEB&Zh&+w!kfH#YrT2Z0Pn2Kx}|l)xE{Z&+eF#8DV-6;t(}uL zLCATYsij#lq-X2W@~jN9_=dhNie61_`Sa%l_nKw#NUCVbw<{^dkBevKR5eVJFm;xB zPdjXmi?&!Uq~shl;~`Vt4tpNhV&i$e!;%TO9|)Ro>_CRR^4tHZquFd(Rm(9s$D(LF za?_&Herg+5(@XFktqL786vxOs{_M@5$ zy(Sa>T0uM!D06MiwY2!QVRj!0w@5@{^%Ff0|Ea{(!&}WX0=NlRYQ2dG#RC|qntiOQ zT8L=TwiDDH2w0ser9I;UCEp@`N`}fhcAPHIVz7E59!N}>`$pOy15B9_@p5?Z85HGD zsg?k{Cv0&W`%=6NGvkwvQc8l<;kj^}L zl-B5BhKlH^K3mQrv41{8p}OzcU!e$asugj=*DuHZ)_g{(O3}{hc*d0bhWio9i$9dB zrxLh&VeTI$tIPMy?_sF?L(IU*Z$%;geY+;6#_&gVs;&HbzxZxt#st{+wB_l_nUY=w zd4H`DfxdJsDEUUxeweSVi~PvZmUZ0Mi33}uf8A^dW=51`isIEljw(I{qqlt(b1e?& zT=QMXtuxJ6@V;N3;y=9;$--b@m{KN;Y8h?R_Z6KR=NPh#=XqVhJWJSiEdf@FuNWC<^4b~{mD6Cdu#qbwzZ1c_6W*so-?J1vd(d7r= zt&?wc5AK7OmM#T6$-gPHjQVi|$2eV?a9uzsAfR-`GCiO}RV|rs>)^gRXth&x;4>bx zY$+SCvB5Z<{}i2>nW;h^0r;uqmzGh}bF@8M1n#K|S|_008%Fttd%m8CVH^$o?AMl5 zeExn>BhS(zwX1D8@I^QM9TNDT*ZZyo0ZDS%fe!P0-G&8&#juAAZkd|hn2^(xH8=H3 z7s~a}gGHGic^PjMsP*oxz-}yqWV;RhS33Rqwnb#}S}l8tPIa4@yKXHTmOEIDC3%W& z)A}C1d;n4z;BXFj_320W_@B3eqG8`XuC9|_E32uce2HP6DA_o2-r<}mO>)b8$s(#WHt45t^W(vLtWFL-22o!S|rR((tgDvx(9iq*8VQp4O5) z;o{}Ep{xf#@cZ!Mf#>(0r3~iQH#IeNP0f1>Fm&pw@EDq&kdQEE{g+pDe~@=-3w`AB zx+R=(aPwaHehO$t$sFeFf$*#C^$I$)4J1f_@MsxZ=H@0MH3{j9nYjI_tGM>BTEY)f z)|SmMw(ObfsU)+pR=>p?yo>{~&%vlUN4fqWNAiZB?oUo~oK0qgY_}|-E^K3V zq8*atOr4%s=$;)Z6OP&O`*iG%Pfa~NJ>1SeXS-qj@p1v{ySL81)*WN+DkoOo%{NP3 zZ7cuF(V{@nr5V2y1

x^+EWUuBkX>6QW|SI{vQ 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 literal 0 HcmV?d00001 diff --git a/po/ca/docs/kalgebra/kalgebra-main-window.png b/po/ca/docs/kalgebra/kalgebra-main-window.png new file mode 100644 index 0000000000000000000000000000000000000000..250c5b4ba0c6b5b3ae805a7350bbb74b0d75fdc7 GIT binary patch literal 69564 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%0DV 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 literal 0 HcmV?d00001 diff --git a/po/ca/kalgebra.po b/po/ca/kalgebra.po new file mode 100644 index 0000000..6db113d --- /dev/null +++ b/po/ca/kalgebra.po @@ -0,0 +1,442 @@ +# Translation of kalgebra.po to Catalan +# Copyright (C) 2007-2022 This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Orestes Mas Casals , 2007, 2008, 2009, 2010, 2011, 2012, 2013. +# Aleix Pol , 2007, 2008, 2009. +# Josep M. Ferrer , 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022. +# Antoni Bella Pérez , 2014, 2020, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-09-21 16:17+0200\n" +"Last-Translator: Antoni Bella Pérez \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 22.08.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opcions: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Enganxa «%1» a l'entrada" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Enganxa a l'entrada" + +#: consolemodel.cpp:99 +#, kde-format +msgid "

    Error: %1
  • %2
" +msgstr "
    Error: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importades: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Error: No s'ha pogut carregar %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informació" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Afegeix/Edita una funció" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Vista prèvia" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Des de:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "A:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opcions" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "D'acord" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Elimina" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Les opcions que heu especificat no són correctes" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "El límit inferior no pot ser més gran que el superior" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Gràfic 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Gràfic 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sessió" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calculadora" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "C&alculadora" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Carrega un script..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Scripts recents" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Desa un script..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exporta el registre..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Insereix «ANS»..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Mode d'execució" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calcula" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Avalua" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funcions" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Llista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Afegeix" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Àrea de visualització" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Gràfica en &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Gràfica en 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Quadrícula" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Mantén la relació d'aspecte" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolució" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Pobre" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fina" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Molt fina" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Gràfica en &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Gràfica en 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Restableix la vista" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punts" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Línies" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Sòlid" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacions" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Diccionari" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Cerca:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Editant" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Escull un script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Fitxer HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Errors: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Seleccioneu a on situar el gràfic renderitzat" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Fitxer PNG (*.png);;Fitxer SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Llest" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Afegeix una variable" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Introduïu un nom per a la variable nova" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Una calculadora portàtil" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Orestes Mas Casals" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "orestes@tsc.upc.edu" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Afegir/Editar una variable" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Elimina variable" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Edita el valor «%1»" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "no disponible" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "INCORRECTE" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Esquerra:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Dalt:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Amplada:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Alçada:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Aplica" diff --git a/po/ca/kalgebramobile.po b/po/ca/kalgebramobile.po new file mode 100644 index 0000000..c7efa62 --- /dev/null +++ b/po/ca/kalgebramobile.po @@ -0,0 +1,297 @@ +# Translation of kalgebramobile.po to Catalan +# Copyright (C) 2018-2023 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Aleix , 2018. +# Antoni Bella Pérez , 2018, 2020, 2021. +# Josep M. Ferrer , 2018, 2019, 2022, 2023. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-04 12:38+0100\n" +"Last-Translator: Josep M. Ferrer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 22.12.3\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calculadora" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Carrega un script" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Desa l'script" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exporta el registre" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Avalua" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calcula" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Neteja el registre" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Gràfica en 2D" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Gràfica en 3D" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copia «%1»" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Buida l'historial de la consola" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Afegeix" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Neteja-ho tot" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Tanca el diàleg" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Elimina la gràfica" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "No hi ha cap gràfica disponible" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Expressió a calcular..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Diccionari" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nom:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Gràfica en 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Gràfica en 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Taules de valors" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Diccionari" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Quant al KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Gràfica en 2D" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Desa" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Veure la quadrícula" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Restableix l'àrea de visualització" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Gràfica en 3D" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Resultats" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Taules de valors" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Errors: El pas no pot ser 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Errors: L'inici i el final és el mateix" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Errors: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Executa" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Entrada" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "De:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "A:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Pas" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Executa" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Una calculadora portàtil" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Mantenidor" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "aleixpol@kde.org" diff --git a/po/ca@valencia/kalgebra.po b/po/ca@valencia/kalgebra.po new file mode 100644 index 0000000..808540b --- /dev/null +++ b/po/ca@valencia/kalgebra.po @@ -0,0 +1,442 @@ +# Translation of kalgebra.po to Catalan (Valencian) +# Copyright (C) 2007-2022 This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Orestes Mas Casals , 2007, 2008, 2009, 2010, 2011, 2012, 2013. +# Aleix Pol , 2007, 2008, 2009. +# Josep M. Ferrer , 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022. +# Antoni Bella Pérez , 2014, 2020, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-09-21 16:17+0200\n" +"Last-Translator: Antoni Bella Pérez \n" +"Language-Team: Catalan \n" +"Language: ca@valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 22.08.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opcions: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Apega «%1» a l'entrada" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Apega a l'entrada" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Error: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importades: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Error: No s'ha pogut carregar %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informació" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Afig/Edita una funció" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Vista prèvia" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Des de:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "A:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opcions" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "D'acord" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Elimina" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Les opcions que heu especificat no són correctes" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "El límit inferior no pot ser més gran que el superior" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Gràfic 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Gràfic 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sessió" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calculadora" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "C&alculadora" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Carrega un script…" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Scripts recents" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Guar&da un script…" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exporta el registre…" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Inserix «ANS»…" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Mode d'execució" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calcula" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Avalua" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funcions" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Llista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "Afi&g" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Àrea de visualització" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Gràfica en &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Gràfica en 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Quadrícula" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Man&tín la relació d'aspecte" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolució" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Pobre" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fina" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Molt fina" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Gràfica en &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Gràfica en 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Restablix la vista" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punts" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Línies" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Sòlid" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacions" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Diccionari" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Busca:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Editant" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Trieu un script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Fitxer HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Errors: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Seleccioneu a on s'ha de situar el gràfic renderitzat" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Fitxer PNG (*.png);;Fitxer SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Llest" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Afig una variable" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Introduïu un nom per a la variable nova" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Una calculadora portàtil" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Orestes Mas Casals" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "orestes@tsc.upc.edu" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Afegir/Editar una variable" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Elimina variable" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Edita el valor «%1»" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "no disponible" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "INCORRECTE" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Esquerra:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Dalt:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Amplària:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Alçària:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Aplica" diff --git a/po/ca@valencia/kalgebramobile.po b/po/ca@valencia/kalgebramobile.po new file mode 100644 index 0000000..c3acec3 --- /dev/null +++ b/po/ca@valencia/kalgebramobile.po @@ -0,0 +1,297 @@ +# Translation of kalgebramobile.po to Catalan (Valencian) +# Copyright (C) 2018-2023 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Aleix , 2018. +# Antoni Bella Pérez , 2018, 2020, 2021. +# Josep M. Ferrer , 2018, 2019, 2022, 2023. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-04 12:38+0100\n" +"Last-Translator: Josep M. Ferrer \n" +"Language-Team: Catalan \n" +"Language: ca@valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 22.12.3\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calculadora" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Carrega un script" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Guarda l'script" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exporta el registre" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Avalua" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calcula" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Neteja el registre" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Gràfica en 2D" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Gràfica en 3D" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copia «%1»" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Buida l'historial de la consola" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Afig" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Neteja-ho tot" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Tanca el diàleg" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Elimina la gràfica" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "No hi ha cap gràfica disponible" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Expressió que s'ha de calcular…" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Diccionari" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nom:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Gràfica en 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Gràfica en 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Taules de valors" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Diccionari" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Quant a KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Gràfica en 2D" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Guarda" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Veure la quadrícula" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Restablix l'àrea de visualització" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Gràfica en 3D" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Resultats" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Taules de valors" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Errors: El pas no pot ser 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Errors: L'inici i el final és el mateix" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Errors: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Executa" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Entrada" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "De:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "A:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Pas" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Executa" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Una calculadora portàtil" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Mantenidor" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "aleixpol@kde.org" diff --git a/po/cs/kalgebra.po b/po/cs/kalgebra.po new file mode 100644 index 0000000..50188a0 --- /dev/null +++ b/po/cs/kalgebra.po @@ -0,0 +1,438 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Vít Pelčák , 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2019. +# Vit Pelcak , 2021. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2021-08-13 09:35+0200\n" +"Last-Translator: Vit Pelcak \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Lokalize 21.04.3\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Možnosti: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Vložit \"%1\" do vstupu" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Vložit do vstupu" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Chyba: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importováno: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Chyba: Nelze načíst %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informace" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Přidat/Upravit funkci" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Náhled" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Od: " + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Komu: " + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Možnosti" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Odstranit" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Dolní mez nemůže být vyšší než horní mez" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Vykreslit dvojrozměrně" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Vykreslit trojrozměrně" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sezení" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Proměnné" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Kalkulačka" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "K&alkulačka" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Načíst skript..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Nedávné skripty" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Uložit skript..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exportovat záznam..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Režim spuštění" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Vypočíst" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Vyhodnotit" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkce" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Seznam" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "Přid&at" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D graf" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D graf" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Mřížka" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Dodržet poměr stran" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Rozlišení" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Nízké" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normální" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Skvělé" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Vysoké" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D graf" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &graf" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Obnovit pohled" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Tečky" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Čáry" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Plný" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operace" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "S&lovník" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Hledat:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Úpravy" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Vyberte skript" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Soubor HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Chyby: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Soubor obrázku (*.png);;Soubor SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Připraven" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Přidat proměnnou" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Zadejte název nové proměnné" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Přenosná kalkulačka" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Vít Pelčák" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "vit@pelcak.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Přidat/Upravit proměnnou" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Odstranit proměnnou" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Upravit hodnotu '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "Nedostupné" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "CHYBNÉ" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Vlevo:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Nahoře:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Šířka:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Výška:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Použít" diff --git a/po/cs/kalgebramobile.po b/po/cs/kalgebramobile.po new file mode 100644 index 0000000..a4f7a93 --- /dev/null +++ b/po/cs/kalgebramobile.po @@ -0,0 +1,293 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# SPDX-FileCopyrightText: 2018, 2019, 2020, 2021, 2023, 2024 Vit Pelcak +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-04-30 15:47+0200\n" +"Last-Translator: Vit Pelcak \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Lokalize 24.02.2\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Kalkulačka" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Načíst skript" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Uložit skript" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exportovat záznam" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Vyhodnotit" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Spočítat" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Vyprázdnit záznam" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D graf" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D graf" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Kopírovat \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Vyprázdnit historii konzole" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Přidat" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Smazat vše" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Zavřít dialog" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Odstranit graf" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Není dostupný žádný graf" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Výraz pro výpočet..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Slovník" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Název:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Graf 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Graf 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tabulky hodnot" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Proměnné" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Slovník" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "O aplikaci KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D graf" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Uložit" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Zobrazit mřížku" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D graf" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Výsledky" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tabulky hodnot" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Chyby: Krok nemůže být 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Chyba: Začátek a konec jsou stejné" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Chyby: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Spustit" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Vstup" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Od:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Do:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Krok" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Spustit" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Přenosná kalkulačka" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Správce" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Vít Pelčák" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "vit@pelcak.org" diff --git a/po/csb/kalgebra.po b/po/csb/kalgebra.po new file mode 100644 index 0000000..29ba4ae --- /dev/null +++ b/po/csb/kalgebra.po @@ -0,0 +1,851 @@ +# translation of kalgebra.po to Kashubian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Michôł Òstrowsczi , 2008. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2008-01-02 18:44+0100\n" +"Last-Translator: Michôł Òstrowsczi \n" +"Language-Team: Kashubian\n" +"Language: csb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2)\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, fuzzy, kde-format +#| msgid "Functions" +msgid "Options: %1" +msgstr "Fùnkcje" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Wëdowiédza" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Dodôj/Editëjë fùnkcjã" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, fuzzy, kde-format +#| msgid "Functions" +msgid "Options" +msgstr "Fùnkcje" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, fuzzy, kde-format +#| msgid "To Expression" +msgid "Session" +msgstr "Do wësłowù" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Zmieniwne" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "&Calculator" +msgstr "Kalkùlatora" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "C&alculator" +msgstr "Kalkùlatora" + +#: kalgebra.cpp:196 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Load Script" +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Wladëjë skript" + +#: kalgebra.cpp:200 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgid "Recent Scripts" +msgstr "&Zapiszë skript" + +#: kalgebra.cpp:205 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Zapiszë skript" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, fuzzy, kde-format +#| msgid "A calculator" +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Kalkùlatora" + +#: kalgebra.cpp:215 +#, fuzzy, kde-format +#| msgctxt "@title:column" +#| msgid "Value" +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Wôrtnota" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Fùnkcje" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lësta" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Dodôj" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Graf &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Graf 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Mrzéżka" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Rozdzelnota" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Lëchô" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normalnô" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Dobrô" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Barô dobrô" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Graf &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Graf 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Wëczëszczë wëzdrzatk" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Pùnktë" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linie" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Nieprzeriwnô" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Słowôrz" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Editowanié" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Wëbiérzë skript" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, fuzzy, kde-format +#| msgid "Text File (*)" +msgid "HTML File (*.html)" +msgstr "Tekstowi lopk (*)" + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgctxt "Function parameter separator" +#| msgid ", " +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Errors: %1" +msgstr "Fela: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Lopk òbrazu\n" +"*.svg|Lopk SVG" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Parôt" + +#: kalgebra.cpp:726 +#, fuzzy, kde-format +#| msgid "Add/Edit a variable" +msgid "Add variable" +msgstr "Dodôj/Editëjë zmieniwną" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "Kalkùlatora" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Michôł Òstrowsczi" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "michol@linuxcsb.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Dodôj/Editëjë zmieniwną" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "Zmieniwne" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Editëjë wôrtnotã '%1'" + +#: varedit.cpp:67 +#, fuzzy, kde-format +#| msgid "Add/Edit a variable" +msgid "not available" +msgstr "Dodôj/Editëjë zmieniwną" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "LËCHÒ" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" + +#~ msgid "C&onsole" +#~ msgstr "Kò&nsola" + +#~ msgid "&Console" +#~ msgstr "&Kònsola" + +#, fuzzy +#~| msgid "%1" +#~ msgid "Formula" +#~ msgstr "%1" + +#, fuzzy +#~| msgid "Done: %1ms" +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Parôt: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Fela: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Wëczëszczë" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|Lopk PNG" + +#~ msgid "&Transparency" +#~ msgstr "Przezérnota" + +#~ msgid "Type" +#~ msgstr "Ôrt" + +#~ msgid "To Expression" +#~ msgstr "Do wësłowù" + +#~ msgid "To MathML" +#~ msgstr "Do MathML" + +#~ msgid "Simplify" +#~ msgstr "Ùproszczë" + +#~ msgid "center" +#~ msgstr "wëstrzódk" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Miono" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Fùnkcja" + +#~ msgid "%1 function added" +#~ msgstr "Fùnkcjô %1 dodónô" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "òpisënk" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Paramétrë" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#, fuzzy +#~| msgid "%1... parameters, ...)" +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... paramétrë, ...)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Dodôwanié" + +#~ msgid "Multiplication" +#~ msgstr "Wielenié" + +#~ msgid "Division" +#~ msgstr "Dzelenié" + +#~ msgid "Power" +#~ msgstr "Zwielëna" + +#~ msgid "Remainder" +#~ msgstr "Reszta" + +#~ msgid "Quotient" +#~ msgstr "Dzél" + +#~ msgid "The factor of" +#~ msgstr "Dzélnik" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Sëlnia, sëlnia(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Fùnkcjô do rëchòwaniô synusa dónégò nórtu" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Fùnkcjô do rëchòwaniô kòsynusa dónégò nórtu" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Fùnkcjô do rëchòwaniô tangenta dónégò nórtu" + +#~ msgid "Secant" +#~ msgstr "Sekans" + +#~ msgid "Cosecant" +#~ msgstr "Kòsekans" + +#~ msgid "Cotangent" +#~ msgstr "Kòtangens" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Hiperbòlikòwi synus" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hiperbòlikòwi kòsynus" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hiperbòlikòwi tangens" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Hiperbòlikòwi sekans" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Hiperbòlikòwi kòsekans" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Hiperbòlikòwi kòtangtens" + +#~ msgid "Arc sine" +#~ msgstr "Arkùs synus" + +#~ msgid "Arc cosine" +#~ msgstr "Arkùs kòsynus" + +#~ msgid "Arc tangent" +#~ msgstr "Arkùs tangens" + +#~ msgid "Arc cotangent" +#~ msgstr "Arkùs kòtangens" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Hiperbòlikòwi arkùs tangens" + +#~ msgid "Summatory" +#~ msgstr "Pòdrëchùjący" + +#~ msgid "Productory" +#~ msgstr "Wielący" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "Normalnô" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "Lësta" + +#~ msgid "Differentiation" +#~ msgstr "Òdprôwôdnô" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Hiperbòlikòwi arkùs synus" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Hiperbòlikòwi arkùs kòsynus" + +#~ msgid "Arc cosecant" +#~ msgstr "Arkùs kòsekans" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Hiperbòlikòwi arkùs kòsekans" + +#~ msgid "Arc secant" +#~ msgstr "Arkùs sekans" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Hiperbòlikòwi arkùs kòsekans" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Pòkôzywôczowô fùnkcjô (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Naturalny logaritm" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Dzesãtny logaritm" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Absolutnô wôrtnota. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Zaòkrãglënié w dół. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Zaòkrãglënié w górã. ceil(n)=⌊n⌋" + +#~ msgid "Minimum" +#~ msgstr "Minimum" + +#~ msgid "Maximum" +#~ msgstr "Maksimum" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Wiksze jak. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#, fuzzy +#~| msgctxt "Current parameter is the bounding" +#~| msgid "bounds" +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr "greńce" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Wôrtnota" + +#, fuzzy +#~| msgctxt "Function parameter separator" +#~| msgid ", " +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr ", " + +#, fuzzy +#~| msgid "Calculate the expression" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Rachùjë wësłów" + +#, fuzzy +#~| msgid "Calculate the expression" +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Rachùjë wësłów" + +#, fuzzy +#~| msgid "Calculate the expression" +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Rachùjë wësłów" + +#, fuzzy +#~| msgid "Calculate the expression" +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Rachùjë wësłów" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "Subtraction" +#~ msgstr "Òdjimanié" + +#, fuzzy +#~| msgid "Error: %1" +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "Fela: %1" + +#~ msgid "Generating... Please wait" +#~ msgstr "Generowanié... Proszã żdac" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Zapiszë log" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "Dobrô" + +#~ msgid "Mode" +#~ msgstr "Trib" + +#~ msgid "Save the expression" +#~ msgstr "Zapiszë wësłów" + +#~ msgid "Calculate the expression" +#~ msgstr "Rachùjë wësłów" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#, fuzzy +#~| msgid "WRONG" +#~ msgid "%1" +#~ msgstr "LËCHÒ" + +#~ msgid "From parser:" +#~ msgstr "Òd parsera:" + +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "Hiperbòlikòwi arkùs kòtangens" + +#~ msgid "Real" +#~ msgstr "Realné" + +#~ msgid "%1, " +#~ msgstr "%1, " + +#~ msgid "Conjugate" +#~ msgstr "Sprzëgłé" + +#~ msgid "Imaginary" +#~ msgstr "Mëkcëznô" diff --git a/po/da/kalgebra.po b/po/da/kalgebra.po new file mode 100644 index 0000000..c700a0b --- /dev/null +++ b/po/da/kalgebra.po @@ -0,0 +1,1120 @@ +# Danish translation of kalgebra. +# Copyright (C) 2010 kalgebra's COPYRIGHT HOLDER +# This file is distributed under the same license as the kdeedu package. +# +# Martin Schlander , 2008, 2009, 2011, 2012, 2013, 2015. +# Jan Madsen , 2009. +# Torben Helligsø , 2010. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2015-12-08 19:54+0100\n" +"Last-Translator: Martin Schlander \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 2.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Indstillinger: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Indsæt \"%1\" som input" + +#: consolemodel.cpp:95 +#, fuzzy, kde-format +#| msgid "Paste \"%1\" to input" +msgid "Paste to Input" +msgstr "Indsæt \"%1\" som input" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Fejl: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importeret: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Fejl: Kunne ikke indlæse %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Information" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Tilføj/redigér en funktion" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Forhåndsvisning" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Fra:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Til:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Indstillinger" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Fjern" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Dine indstillinger er forkerte" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Den nedre må ikke være større end den øvre grænse." + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Plot 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Plot 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Session" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variabler" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Regnemaskine" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgid "&Calculator" +msgid "C&alculator" +msgstr "&Regnemaskine" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Indlæs script..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Nylige scripts" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Gem script..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Eksportér log..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Kørselstilstand" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Beregn" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Evaluér" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funktioner" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Liste" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Tilføj" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Visningsområde" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D-graf" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D-graf" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Gitter" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Behold aspektforhold" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Opløsning" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Grov" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fin" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Meget fin" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D-graf" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D-&graf" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Nulstil visning" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Prikker" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linjer" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Massiv" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operationer" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Ordbog" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Kig efter:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Redigering" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Vælg et script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-fil (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Fejl: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Vælg hvor det renderede plot skal placeres" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Billedfil\n" +"*.svg|SVG-fil" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Klar" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Tilføj variabel" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Angiv et navn på den ny variabel" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "En regnemaskine" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2010 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2010 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Martin Schlander" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "mschlander@opensuse.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Tilføj/Redigér en variabel" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Fjern variabler" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Redigér \"%1\"-værdi" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ikke tilgængelig" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "FORKERT" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Venstre:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Øverst:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Bredde:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Højde:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Anvend" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document\n" +#~| "*.x3d|X3D Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|PNG-fil\n" +#~ "*.pdf|PDF-dokument *.x3d|X3D-dokument" + +#~ msgid "C&onsole" +#~ msgstr "K&onsol" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Konsol" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Udviklede funktion til tegning af implicitte kurver. Forbedring af " +#~ "plotning af funktioner." + +#~ msgid "Formula" +#~ msgstr "Formel" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Fejl: Forkert funktionstype" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Færdig: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Fejl: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Ryd" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG-fil" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Gennemsigtighed" + +#~ msgid "Type" +#~ msgstr "Type" + +#~ msgid "Result: %1" +#~ msgstr "Resultat: %1" + +#~ msgid "To Expression" +#~ msgstr "Til udtryk" + +#~ msgid "To MathML" +#~ msgstr "Til MathML" + +#~ msgid "Simplify" +#~ msgstr "Forenkl" + +#~ msgid "Examples" +#~ msgstr "Eksempler" + +#~ msgid "We can only draw Real results." +#~ msgstr "Kun reelle resultater kan tegnes." + +#~ msgid "The expression is not correct" +#~ msgstr "Udtrykket er ikke korrekt" + +#~ msgid "Function type not recognized" +#~ msgstr "Funktionstype ikke genkendt" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Funktionstype ikke korrekt for funktioner der afhænger af %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Implicit funktion udefineret i planet" + +#~ msgid "center" +#~ msgstr "centreret" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Navn" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funktion" + +#~ msgid "%1 function added" +#~ msgstr "Funktionen %1 tilføjet" + +#~ msgid "Hide '%1'" +#~ msgstr "Skjul \"%1\"" + +#~ msgid "Show '%1'" +#~ msgstr "Vis \"%1\"" + +#~ msgid "Selected viewport too small" +#~ msgstr "Det valgte visningsområde er for småt" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Beskrivelse" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parametre" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Eksempel" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=fra..til" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parametre, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Addition" + +#~ msgid "Multiplication" +#~ msgstr "Multiplikation" + +#~ msgid "Division" +#~ msgstr "Division" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Subtraktion. Vil fjerne alle værdier fra den første." + +#~ msgid "Power" +#~ msgstr "Potens" + +#~ msgid "Remainder" +#~ msgstr "Rest" + +#~ msgid "Quotient" +#~ msgstr "Kvotient" + +#~ msgid "The factor of" +#~ msgstr "Faktor af" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Fakultet. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funktion til at beregne sinus af en given vinkel" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funktion til at beregne cosinus af en given vinkel" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funktion til at beregne tangens af en given vinkel" + +#~ msgid "Secant" +#~ msgstr "Sekant" + +#~ msgid "Cosecant" +#~ msgstr "Cosekant" + +#~ msgid "Cotangent" +#~ msgstr "Cotangens" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Hyberbolsk sinus" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hyberbolsk cosinus" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hyberbolsk tangens" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Hyberbolsk sekant" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Hyperbolsk cosekant" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Hyperbolsk cotangens" + +#~ msgid "Arc sine" +#~ msgstr "Invers sinus" + +#~ msgid "Arc cosine" +#~ msgstr "Invers cosinus" + +#~ msgid "Arc tangent" +#~ msgstr "Invers tangens" + +#~ msgid "Arc cotangent" +#~ msgstr "Invers cotangens" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Invers hyperbolsk tangens" + +#~ msgid "Summatory" +#~ msgstr "Summation" + +#~ msgid "Productory" +#~ msgstr "Produkt" + +#~ msgid "For all" +#~ msgstr "For alle" + +#~ msgid "Exists" +#~ msgstr "Findes" + +#~ msgid "Differentiation" +#~ msgstr "Differentiering" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Invers hyperbolsk sinus" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Invers hyperbolsk cosinus" + +#~ msgid "Arc cosecant" +#~ msgstr "Invers cosekant" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Invers hyperbolsk cosekant" + +#~ msgid "Arc secant" +#~ msgstr "Invers sekant" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Invers hyperbolsk sekant" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Eksponent (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Naturlig logaritme" + +#~ msgid "Base-10 logarithm" +#~ msgstr "10-talslogaritme" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Absolut værdi. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Rund ned. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Rund op. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimum" + +#~ msgid "Maximum" +#~ msgstr "Maksimum" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Større end. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : grænser" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Værdi" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Skal specificere en korrekt handling" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr ", " + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Ukendt identifikator: \"%1\"" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Kunne ikke finde et passende valg til en betingelsessætning." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Der kan ikke sættes grænser for denne type." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Den nedre grænse er større end den øvre grænse" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Forkert nedre eller øvre grænse." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Definerede en selvrefererende variabel" + +#~ msgid "The result is not a number" +#~ msgstr "Resultatet er ikke et tal" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Nåede uventet til afslutningen af inputtet" + +#~ msgid "Unknown token %1" +#~ msgstr "Ukendt symbol %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 behøver mindst 2 parametre" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 kræver %2 parametre" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Manglende grænse for \"%1\"" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Uventet grænse for \"%1\"" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 manglende grænser for \"%2\"" + +#~ msgid "Wrong declare" +#~ msgstr "Forkert erklæring" + +#~ msgid "Empty container: %1" +#~ msgstr "Tom beholder: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Betingelser er kun tilladt i afsnitsvise strukturer." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Kan ikke have to parametre med samme navn såsom \"%1\"." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Parametret otherwise skal være det sidste" + +# Edit en gyldig? +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 er ikke en gyldig betingelse indeni den afsnitsvise struktur" + +#~ msgid "We can only declare variables" +#~ msgstr "Kun variabler kan erklæres" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Der kan kun sættes grænser for variabler" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Fejl under fortolkning: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Ukendt beholder: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Kan ikke kodificere værdien %1." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Operatoren %1 kan ikke have underkontekster." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Elementet \"%1\" er ikke en operator." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Vil ikke have tomme vektorer" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Ikke understøttet/ukendt: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Forventede %1 i stedet for %2" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Mangler højre parentes" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Ikke-afbalanceret højre parentes" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Uventet symbol %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Uventet symbol %1" + +#, fuzzy +#~| msgid "Could not calculate the derivative for '%1'" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Kunne ikke udregne den afledte værdi for \"%1\"" + +#, fuzzy +#~| msgid "The domain should be either a vector or a list." +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "Domænet skal enten være en vektor eller en liste." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Ugyldigt antal parametre for \"%2\". Skal have 1 parameter." +#~ msgstr[1] "Ugyldigt antal parametre for \"%2\". Skal have %1 parametre." + +#~ msgid "Could not call '%1'" +#~ msgstr "Kunne ikke kalde \"%1\"" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Kunne ikke løse \"%1\"" + +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Usammenhængende type for variablen \"%1\"" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Kunne ikke bestemme typen for afsnitsvis" + +#~ msgid "Unexpected type" +#~ msgstr "Uventet type" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Kan ikke konvertere \"%1\" til \"%2\"" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Ukendt symbol %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Kan ikke udregne resten for 0." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Kan ikke udregne faktoren for 0." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Kan ikke udregne lcm for 0." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Kunne ikke udregne værdien af %1" + +#~ msgid "Invalid index for a container" +#~ msgstr "Ugyldigt indeks i en beholder" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Kan ikke behandle vektorer af forskellig størrelse." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Kunne ikke beregne %1 for en vektor" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Kunne ikke beregne %1 for en liste" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Kunne ikke udregne den afledte værdi for \"%1\"" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Kunne ikke reducere \"%1\" og \"%2\"." + +#~ msgid "Incorrect domain." +#~ msgstr "Forkert domæne." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Den parametriske funktion giver ikke en vektor" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Der kræves en todimensional vektor" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Elementerne i den parametriske funktion skal være skalarer" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "%1-afledningen er ikke blevet implementeret." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Forstod ikke den reelle værdi: %1" + +#~ msgid "Subtraction" +#~ msgstr "Subtraktion" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Fejl: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Vælg et element fra en beholder" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Fejl: Værdier er nødvendige for at tegne en graf" + +#~ msgid "Generating... Please wait" +#~ msgstr "Genererer graf. Vent..." + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Forkert antal parametre. Havde %1 parameter til \"%2\"" +#~ msgstr[1] "Forkert antal parametre. Havde %1 parametre til \"%2\"" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Gem log" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "Fin" + +#~ msgid "We can only call functions" +#~ msgstr "Kun funktioner kan kaldes" + +#~ msgid "Wrong parameter count" +#~ msgstr "Antallet af parametre er forkert" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~| msgid "Wrong parameter count" +#~ msgid "Invalid parameter count." +#~ msgstr "Antallet af parametre er forkert" + +#~ msgid "Mode" +#~ msgstr "Tilstand" + +#~ msgid "Save the expression" +#~ msgstr "Gem udtrykket" + +#~ msgid "Calculate the expression" +#~ msgstr "Beregn udtrykket" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Kan ikke have nedre grænse ≥ øvre grænse" diff --git a/po/de/docs/kalgebra/commands.docbook b/po/de/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..59f1d25 --- /dev/null +++ b/po/de/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Referenz der Funktionen für &kalgebra; + plus + Name: plus + Beschreibung: Addition + Parameter: plus(... Parameter, ...) + Beispiel: x->x+2 + + times + Name: times + Beschreibung: Multiplikation + Parameter: times(... Parameter, ...) + Beispiel: x->x*2 + + minus + Name: minus + Beschreibung: Subtraktion. Subtrahiert alle Werte vom ersten Wert. + Parameter: minus(... Parameter, ...) + Beispiel: x->x-2 + + divide + Name: divide + Beschreibung: Division + Parameter: divide(par1, par2) + Beispiel: x->x/2 + + quotient + Name: quotient + Beschreibung: Quotient + Parameter: quotient(par1, par2) + Beispiel: x->quotient(x, 2) + + power + Name: power + Beschreibung: Potenz + Parameter: power(par1, par2) + Beispiel: x->x^2 + + root + Name: root + Beschreibung: Wurzel + Parameter: root(par1, par2) + Beispiel: x->root(x, 2) + + factorial + Name: factorial + Beschreibung; Fakultät. factorial(n)=n! + Parameter: factorial(par1) + Beispiel: x->factorial(x) + + and + Name: and + Beschreibung: Boolesches Und + Parameter: and(... Parameter, ...) + Beispiel: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Name: or + Beschreibung: Boolesches Oder + Parameter: or(... Parameter, ...) + Beispiel: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Name: xor + Beschreibung: Boolesches exclusives Oder + Parameter: xor(... Parameter, ...) + Beispiel: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Name: not + Beschreibung: Boolesches Nicht + Parameter: not(par1) + Beispiel: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Name: gcd + Beschreibung: Größter gemeinsamer Teiler + Parameter: gcd(... Parameter, ...) + Beispiel: x->gcd(x, 3) + + lcm + Name: lcm + Beschreibung: Kleinstes gemeinsames Vielfaches + Parameter: lcm(... Parameter, ...) + Beispiel: x->lcm(x, 4) + + rem + Name: rem + Beschreibung: Rest + Parameter: rem(par1, par2) + Beispiel: x->rem(x, 5) + + factorof + Name: factorof + Beschreibung: Faktor von + Parameter: factorof(par1, par2) + Beispiel: x->factorof(x, 3) + + max + Name: max + Beschreibung: Maximum + Parameter: max(... Parameter, ...) + Beispiel: x->max(x, 4) + + min + Name: min + Beschreibung: Minimum + Parameter: min(... Parameter, ...) + Beispiel: x->min(x, 4) + + lt + Name: lt + Beschreibung: Kleiner als. lt(a,b)=a<b + Parameter: lt(par1, par2) + Beispiel: x->piecewise { x<4 ? 1, ? 0 } + + gt + Name: gt + Beschreibung: Größer als. gt(a,b)=a>b + Parameter: gt(par1, par2) + Beispiel: x->piecewise { x>4 ? 1, ? 0 } + + eq + Name: eq + Beschreibung: Gleich. eq(a,b) = a=b + Parameter: eq(par1, par2) + Beispiel: x->piecewise { x=4 ? 1, ? 0 } + + neq + Name: neq + Beschreibung: Ungleich. neq(a,b) = a≠b + Parameter: neq(par1, par2) + Beispiel: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Name: leq + Beschreibung: Kleiner-Gleich. leq(a,b) = a≤b + Parameter: leq(par1, par2) + Beispiel: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Name: geq + Beschreibung: Größer-Gleich. geq(a,b) = a≥b + Parameter: geq(par1, par2) + Beispiel: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Name: implies + Beschreibung: Boolesche Implikation + Parameter: implies(par1, par2) + Beispiel: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Name: approx + Beschreibung: Näherungswert. approx(a) = a±n + Parameter: approx(par1, par2) + Beispiel: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Name: abs + Beschreibung: Absoluter Wert. abs(n)=|n| + Parameter: abs(par1) + Beispiel: x->abs(x) + + floor + Name: floor + Beschreibung: Abrunden floor(n) = ⌊n⌋ + Parameter: floor(par1) + Beispiel: x->floor(x) + + ceiling + Name: ceiling + Beschreibung: Aufrunden. ceil(n) = ⌈n⌉ + Parameter: ceiling(par1) + Beispiel: x->ceiling(x) + + sin + Name: sin + Beschreibung: Funktion, um den Sinus eines gegebenen Winkels auszurechnen + Parameter: sin(par1) + Beispiel: x->sin(x) + + cos + Name: cos + Beschreibung: Funktion, um den Kosinus eines gegebenen Winkels auszurechnen + Parameter: cos(par1) + Beispiel: x->cos(x) + + tan + Name: tan + Beschreibung: Funktion, um den Tangens eines gegebenen Winkels auszurechnen + Parameter: tan(par1) + Beispiel: x->tan(x) + + sec + Name: sec + Beschreibung: Sekans + Parameter: sec(par1) + Beispiel: x->sec(x) + + csc + Name: csc + Beschreibung: Kosekans + Parameter: csc(par1) + Beispiel: x->csc(x) + + cot + Name: cot + Beschreibung: Kotangens + Parameter: cot(par1) + Beispiel: x->cot(x) + + sinh + Name: sinh + Beschreibung: Sinus Hyperbolicus + Parameter: sinh(par1) + Beispiel: x->sinh(x) + + cosh + Name: cosh + Beschreibung: Kosinus Hyperbolicus + Parameter: cosh(par1) + Beispiel: x->cosh(x) + + tanh + Name: tanh + Beschreibung: Tangens Hyperbolicus + Parameter: tanh(par1) + Beispiel: x->tanh(x) + + sech + Name: sech + Beschreibung: Sekans Hyperbolicus + Parameter: sech(par1) + Beispiel: x->sech(x) + + csch + Name: csch + Beschreibung: Kosekans Hyperbolicus + Parameter: csch(par1) + Beispiel: x->csch(x) + + coth + Name: coth + Beschreibung: Kotangens Hyperbolicus + Parameter: coth(par1) + Beispiel: x->coth(x) + + arcsin + Name: arcsin + Beschreibung: Arkussinus + Parameter: arcsin(par1) + Beispiel: x->arcsin(x) + + arccos + Name: arccos + Beschreibung: Arkuskosinus + Parameter: arccos(par1) + Beispiel: x->arccos(x) + + arctan + Name: arctan + Beschreibung: Arkustangens + Parameter: arctan(par1) + Beispiel: x->arctan(x) + + arccot + Name: arccot + Beschreibung: Arkuskotangens + Parameter: arccot(par1) + Beispiel: x->arccot(x) + + arccosh + Name: arccosh + Beschreibung: Arkuskosinus Hyperbolicus + Parameter: arccosh(par1) + Beispiel: x->arccosh(x) + + arccsc + Name: arccsc + Beschreibung: Arkuskosekans + Parameter: arccsc(par1) + Beispiel: x->arccsc(x) + + arccsch + Name: arccsch + Beschreibung: Arkuskosekans Hyperbolicus + Parameter: arccsch(par1) + Beispiel: x->arccsch(x) + + arcsec + Name: arcsec + Beschreibung: Arkussekans + Parameter: arcsec(par1) + Beispiel: x->arcsec(x) + + arcsech + Name: arcsech + Beschreibung: Arkussekans Hyperbolicus + Parameter: arcsech(par1) + Beispiel: x->arcsech(x) + + arcsinh + Name: arcsinh + Beschreibung: Arkussinus Hyperbolicus + Parameter: arcsinh(par1) + Beispiel: x->arcsinh(x) + + arctanh + Name: arctanh + Beschreibung: Arkustangens Hyperbolicus + Parameter: arctanh(par1) + Beispiel: x->arctanh(x) + + exp + Name: exp + Beschreibung: Exponent (e^x) + Parameter: exp(par1) + Beispiel: x->exp(x) + + ln + Name: ln + Beschreibung: Natürlicher Logarithmus zur Basis e + Parameter: ln(par1) + Beispiel: x->ln(x) + + log + Name: log + Beschreibung: Dekadischer Logarithmus + Parameter: log(par1) + Beispiel: x->log(x) + + conjugate + Name: conjugate + Beschreibung: konjugiert-komplexe Zahl + Parameter: conjugate(par1) + Beispiel: x->conjugate(x*i) + + arg + Name: arg + Beschreibung: Polarwinkel einer komplexen Zahl + Parameter: arg(par1) + Beispiel: x->arg(x*i) + + real + Name: real + Beschreibung: Realteil einer komplexen Zahl + Parameter: real(par1) + Beispiel: x->real(x*i) + + imaginary + Name: imaginary + Beschreibung: Imaginärteil einer komplexen Zahl + Parameter: imaginary(par1) + Beispiel: x->imaginary(x*i) + + sum + Name: sum + Beschreibung: Summe + Parameter: sum(par1 : var=von..bis) + Beispiel: x->x*sum(t*t:t=0..3) + + product + Name: product + Beschreibung: Produkt + Parameter: product(par1 : var=von..bis) + Beispiel: x->product(t+t:t=1..3) + + diff + Name: diff + Beschreibung: Differentiation + Parameter: diff(par1 : var) + Beispiel: x->(diff(x^2:x))(x) + + card + Name: card + Beschreibung: Kardinal + Parameter: card(par1) + Beispiel: x->card(vector { x, 1, 2 }) + + scalarproduct + Name: scalarproduct + Beschreibung: Skalarprodukt + Parameter: scalarproduct(... Parameter, ...) + Beispiel: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Name: selector + Beschreibung: Wählt das par1-te Element aus der Liste oder dem Vektor par2. + Parameter: selector(par1, par2) + Beispiel: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Name: union + Beschreibung: Verbindet mehrere Einträge desselben Typs + Parameter: union(... Parameter, ...) + Beispiel: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Name: forall + Beschreibung: Für alle + Parameter: forall(par1 : var) + Beispiel: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Name: exists + Beschreibung: Existenz + Parameter: exists(par1 : var) + Beispiel: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Name: map + Beschreibung: Wendet eine Funktion auf jedes Element einer Liste an + Parameter: map(par1, par2) + Beispiel: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Name: filter + Beschreibung: Entfernt alle Elemente, die nicht einer Bedingung entsprechen + Parameter: filter(par1, par2) + Beispiel: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Name: transpose + Beschreibung: Transpose + Parameter: transpose(par1) + Beispiel: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/de/docs/kalgebra/index.docbook b/po/de/docs/kalgebra/index.docbook new file mode 100644 index 0000000..a9b7456 --- /dev/null +++ b/po/de/docs/kalgebra/index.docbook @@ -0,0 +1,937 @@ + + + + MathML"> + + +]> + + + + +Das Handbuch zu &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+BurkhardLück
lueck@hube-lueck.de
Übersetzung
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +2020-12-17 +Anwendungen 20.12 + + +&kalgebra; ist eine Anwendung, die Ihren grafischen Taschenrechner ersetzt. &kalgebra; hat numerische, logische, symbolische und analytische Fähigkeiten mit denen Sie mathematische Ausdrücke im Rechnerauswerten und die Ergebnisse zwei- oder dreidimensional darstellen können. &kalgebra; basiert auf der Sprache „Mathematical Markup Language“ (&MathML;), es sind jedoch keine Kenntnisse von &MathML; erforderlich, um &kalgebra; erfolgreich einsetzen zu können. + + + +KDE +kdeedu +graph +Mathematik +2D +3D +MathML + + +
+ + +Einführung + +&kalgebra; bietet zahlreiche Möglichkeiten, um alle Arten von mathematischen Operationen auszuführen und deren Ausgaben graphisch darzustellen. Früher war dieses Programm stark an &MathML; ausgerichtet, heute kann es von Personen mit ein wenig mathematischem Verständnis benutzt werden, um sowohl einfache als auch schwierige mathematische Aufgaben zu lösen. + +Das Programm bietet folgende Funktionsmerkmale: + + + +Ein Rechner für die schnelle und leichte Auswertung von mathematischen Funktionen. +Skript-Fähigkeiten für erweiterte Folgen von Berechnungen. +Funktionsdefinitionen und automatische Syntax-Vervollständigung +Kalkülfunktionen einschließlich symbolischer Differentiation, Vektorkalkül und Listenbearbeitung. +Grafische Darstellung von Funktionen mit der Möglichkeit, mit dem Cursor die Nullstellen zu finden und weitere Arten von Analysen. +3D-Grafik zur Visualisierung von dreidimensionalen Funktionen. +Ein Funktionsverzeichnis für die schnelle Referenz zu allen vorhandenen Funktionen. + + +Hier sehen Sie ein Bildschirmfoto vom &kalgebra;-Programm: + + +Hier sehen Sie ein Bildschirmfoto vom &kalgebra;-Hauptfenster + + + + + + &kalgebra;-Hauptfenster + + + + +Das Hauptfenster von &kalgebra; besteht aus den Karteikarten Rechner, 2D-Graph, 3D-Graph und Funktionen. Auf jeder Karteikarte befindet sich ein Textfeld zur Eingabe von Funktionen oder Berechnungen und ein Bereich für die Anzeige der Ergebnisse. + +Sitzungen können jederzeit mit den Aktionen im Menü Sitzungen verwaltet werden: + + + + +&Ctrl; N SitzungNeu +Öffnet ein neues &kalgebra;-Hauptfenster + + + +&Ctrl;&Shift; F SitzungVollbildmodus +Schaltet den Vollbildmodus für das &kalgebra;-Fenster ein und aus. Dies kann auch mit dem Knopf rechts oben im &kalgebra;-Fenster ausgeführt werden. + + + +&Ctrl; Q SitzungBeenden +Beendet das Programm. + + + + + + + +Syntax +&kalgebra; verwendet eine intuitive algebraische Syntax für die Eingabe von benutzerdefinierten Funktionen, Eine ähnliche Syntax wird für die meisten modernen grafischen Rechner verwendet. In diesem Abschnitt werden alle in &kalgebra; verfügbaren eingebauten Operatoren aufgeführt. Die Syntax von &kalgebra; wurde in Anlehnung an die mathematischen Anwendungen Maxima und Maple entwickelt und sollte daher allen Benutzern dieser Programme vertraut sein. + +In &kalgebra; werden die eingegebenen Ausdrücke in &MathML; für das Hintergrundprogramm umgewandelt. Ein grundsätzliches Verständnis der durch &MathML; unterstützten Fähigkeiten ist hilfreich, um die Möglichkeiten von &kalgebra; zu entdecken. + +Folgende Operatoren sind in dieser Version enthalten: + ++ - * / : Addition, Subtraktion, Multiplikation und Division. +^, ** : Potenzen, beide Schreibweisen und auch das Unicodezeichen ² sind erlaubt. Potenzen können auch als Wurzel benutzt werden, zum Beispiel: a**(1/b) +-> : Lambda-Funktion. Die Möglichkeit, eine oder mehrere freie Variablen zu definieren, die an eine Funktion gebunden werden. Im Ausdruck length:=(x,y)->(x*x+y*y)^0.5 zum Beispiel wird der Lambda-Operator zur Kennzeichnung benutzt, dass x und y als gebundene Variablen bei der Funktion „length“ verwendet werden. +x=a..b : Einschränkung eines Wertebereichs (beschränkte Variable mit unterer und oberer Grenze). Die Variable x kann in diesem Beispiel nur Werte von a bis b annehmen. +() : Klammern bestimmen den Vorrang einer auszuführenden Rechenoperation vor anderen in der Rechenreihenfolge. +abc(parameter) : Funktionen. Beim Einlesen von Funktionen wird überprüft, ob abc ein Operator ist. Wenn ja, dann wird es als Operator behandelt, ansonsten als benutzerdefinierte Funktion. +:= : Definition des Wertes einer Variablen. Definitionen wie x:=3, x:=y sind möglich, auch wenn y noch nicht definiert ist, oder zum Beispiel umfang:=r->2*pi*r. +? : Abschnittsweise definierte Bedingungen. Damit können bedingte Operationen in &kalgebra; definiert werden. Anders ausgedrückt ist das eine Möglichkeit „if, elseif, else“ -Bedingungen zu definieren. Das Ergebnis einer abschnittsweise definierten Funktion ist der Ausdruck nach dem ? der ersten wahre Bedingung. Trifft keine Bedingung zu, wird der Ausdruck nach dem letzten ? ohne vorangestellte Bedingung zurückgegeben. Beispiel: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ } : Damit werden &MathML;-Container definiert, die hauptsächlich bei abschnittsweise definierten Bedingungen verwendet werden. += > >= < <= : Vergleichsoperatoren für gleich, größer, größer oder gleich, kleiner und kleiner oder gleich. + + +Mit diese &MathML;-ähnlichen Syntax kann mit Funktionen wie cos(), sin(), jeder beliebigen trigonometrischen Funktion, sum() oder product() gearbeitet werden. Sie können Funktionen wie plus(), mal() und jede beliebige Funktion mit Operator verwenden. Auch Boolesche Funktionen sind implementiert, Sie können zum Beispiel mit Ausdrücken wie or(1,0,0,0,0) arbeiten. + + + + +Arbeiten mit dem Rechner +&kalgebra;s Rechner hat erweiterten Fähigkeiten. Es können Ausdrücke im Modus Berechnen oder Auswerten eingeben werden, je nach Auswahl im Menü Rechner. +Im Auswertungsmodus vereinfacht &kalgebra; Ausdrücke, auch wenn sie eine nicht definierte Variable enthalten. Im Berechnungsmodus wird alles berechnet und bei einer nicht definierte Variablen eine Fehlermeldung angezeigt. +Zusätzlich zur Anzeige der vom Benutzer eingegebenen Ausdrücke und deren Ergebnissen in der Karteikarte Rechner werden alle deklarierten Variablen in einer Liste rechts angezeigt. Durch Doppelklicken auf eine Variable in der Liste öffnen Sie einen Dialog, in dem Sie den Wert der Variablen ändern oder Sie entfernen können. + +ans ist eine besondere Variable, sie enthält immer das Ergebnis der Auswertung des zuletzt eingegeben Ausdrucks. + +Als Beispiel folgen einige Funktionen, die in das Eingabefeld der Karteikarte Rechner eingetragen werden können: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +Das folgende Bildschirmfoto zeigt die Karteikarte Rechner nach der Eingabe der oben genannten Beispiel-Ausdrücke: + +Bildschirmfoto des &kalgebra;-Rechners mit den Beispiel-Ausdrücken + + + + + + &kalgebra;-Karteikarte Rechner + + + + + +Mit den Aktionen für Skripte im Menü Rechner kann die Ausführung einer Folge von Berechnungen gesteuert werden: + + + + +&Ctrl; L RechnerSkript laden +Führt alle Anweisungen in der Skriptdatei nacheinander aus. Damit können Sie zum Beispiel mathematische Funktionen aus Bibliotheken oder Ihre vorher erstellte Arbeit wieder laden. + + + +RechnerZuletzt geöffnete Skripte +Zeigt eine Untermenü zur Auswahl der zuletzt geöffneten Skripte an. + + + +&Ctrl; G RechnerSkript speichern +Speichert alle Anweisungen, die seit Beginn der Sitzung eingegeben wurden, in eine Datei. Diese Textdatei kann dann zum Beispiel mit einem Editor wie &kate; korrigiert oder bearbeitet werden. + + + +&Ctrl; S RechnerProtokoll speichern +Speichert das Protokoll mit allen Ergebnissen in einer &HTML;-Datei, um sie ausdrucken oder weiterzugeben. + + + +F3 RechnerANS einfügen ... +Fügt die Variable ANS ein, damit können vorher berechnete Werte wiederverwendet werden. + + + +RechnerBerechnen +Setzt den Ausführungsmodus auf Berechnen. + + + +RechnerAuswerten +Setzt den Ausführungsmodus auf Auswerten. + + + + + + +2D-Graphen +Um einen neuen 2D-Graphen in &kalgebra; einzugeben, wechseln Sie zur Karteikarte 2D-Graph. Klicken Sie dann auf den Karteireiter Hinzufügen und geben Sie im Textfeld oben die neue Funktion ein. + + +Syntax +Eine Funktion des Typs f(x) können Sie direkt so eingeben. Für Funktionen des Typs f(y) oder für polare Funktionen müssen Sie y-> und q-> als die gebundenen Variablen hinzufügen. + +Beispiele: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Wenn Sie eine Funktion eingegeben haben, klicken Sie auf den Knopf OK, um den Graphen der Funktion auf der Karteikarte anzuzeigen. + + + + +Eigenschaften +Mehrere Graphen können in derselben Ansicht angezeigt werden. Wechseln Sie dazu auf die Karteikarte Hinzufügen. Jeder Graph kann in einer eigenen Farbe dargestellt werden. + +Die Ansicht kann mit dem Mausrad vergrößert oder verkleinert werden. Mit der &LMBn; können Sie Bereiche in der Ansicht zur Vergrößerung auswählen. Mit den Pfeiltasten kann die Ansicht verschoben werden. + + + Das Darstellungsfeld für einen 2D-Graph kann auf der Karteikarte Darstellungsfeld definiert werden. + + +Auf der Karteikarte Liste können Sie unten rechts mit Doppelklick auf eine Funktion die Karteikarte Bearbeiten öffnen. Dort kann die Funktion geändert werden. Verwenden Sie das Ankreuzfeld links neben dem Funktionsnamen, um die Anzeige der Funktion ein- und auszuschalten. +Im Menü 2D-Graph sind diese Einträge vorhanden: + +Gitter: Zeigt die Gitternetzlinien an oder blendet sie aus +Seitenverhältnis beibehalten: Seitenverhältnis bei Größenänderung beibehalten +Speichern: Den Graphen als Bilddatei speichern (&Ctrl; S) +Vergrößern/Verkleinern: Vergrößern (&Ctrl; +) und Verkleinern (&Ctrl; -) der Ansicht +Originalgröße: Ansicht wieder auf die Originalgröße zurücksetzen +Auflösung: Auflösung des Graphen auswählen + + +Das folgende Bildschirmfoto zeigt die Funktion sin(1/x) mit dem Cursor an der rechten Nullstelle der Funktion. Es wird eine sehr hohe Auflösung zur Anzeige verwendet, da die Funktion mit immer höherer Frequenz in der Nähe des Koordinatenursprungs schwingt. Folgen Sie mit dem Cursor dem Verlauf der Funktion, dann wird für jeden Punkt der x- und y-Wert der Funktion links unten angezeigt und diese Anzeige laufend aktualisiert. Gleichzeitig wird die Tangente der Funktion am aktuellen Schnittpunkt mit dem Cursor gezeichnet. + + +Hier sehen Sie ein Bildschirmfoto von der &kalgebra;-Karteikarte „2D-Graph“ + + + + + + &kalgebra;-Karteikarte „2D-Graph“ + + + + + + + + + + +3D-Graphen + +Wechseln Sie zur Karteikarte 3D-Graph und geben Sie im Textfeld unten eine Funktion ein. Zurzeit kann noch kein Funktionswert für die Z-Achse eingegeben werden. &kalgebra; erlaubt nur 3D-Funktionen abhängig von x und y, wie (x,y)->x*y, dabei ist z=x*y. + +Beispiele: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +Die Ansicht kann mit dem Mauszeiger verschoben und mit dem Mausrad vergrößert oder verkleinert werden. Mit der &LMBn; können Bereiche in der Ansicht zur Vergrößerung ausgewählt werden. + +Die Tasten &Left; und &Right; drehen die Grafik um die senkrechte z-Achse, die Tasten &Up; und &Down; drehen die Grafik um die horizontale Achse der Ansicht. Drücken Sie die Taste W zum Vergrößern und die Taste S zum Verkleinern der Ansicht. + +Im Menü 3D-Graph sind diese Einträge vorhanden: + + +Speichern: Den Graphen als Bilddatei oder unterstütztes Dokument speichern (&Ctrl; S) +Ansicht zurücksetzen: Ansicht wieder auf die Originalgröße in der Karteikarte 3D-Graph zurücksetzen +Anzeige der Grafik als Gitternetz aus Punkten, Linien oder als gefüllte Fläche mit einem Liniengitter in der Karteikarte 3D-Graph. + + +Hier sehen Sie ein Bildschirmfoto der sogenannten Sombrero-Funktion, die 3D-Grafik wird im Liniengitter-Stil angezeigt. + + +Hier sehen Sie ein Bildschirmfoto von der &kalgebra;-Karteikarte „3D-Graph“ + + + + + + &kalgebra;-Karteikarte „3D-Graph“ + + + + + + + +Funktionen + +Auf der Karteikarte Funktionen finden Sie eine Liste aller in &kalgebra; verfügbaren Funktionen. Wählen Sie eine Funktion aus der Liste oder im Suchfeld, dann wird die Beschreibung, die Parameter und ein Beispiel dieser Funktion mit dem Graphen links angezeigt. + + Hier sehen Sie ein Bildschirmfoto der &kalgebra;-Karteikarte „Funktionen“ mit der Anzeige der Cosinus-Funktion. + + +Hier sehen Sie ein Bildschirmfoto von der &kalgebra;-Karteikarte „Funktionen“ + + + + + + &kalgebra;-Karteikarte „Funktionen“ + + + + + + + +&commands; + + +Danksagungen und Lizenz + + +Program copyright 2005-2009 &Aleix.Pol; + + + +Dokumentation Copyright 2007 &Aleix.Pol; &Aleix.Pol.mail; + +Übersetzung Burkhard Lücklueck@hube-lueck.de &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/de/docs/kalgebra/kalgebra-main-window.png b/po/de/docs/kalgebra/kalgebra-main-window.png new file mode 100644 index 0000000000000000000000000000000000000000..2cff14ac8c2e0d4c8c81d07f69f9c50f6060a6d2 GIT binary patch literal 16345 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 KkxC)`U;h_8m8#PK literal 0 HcmV?d00001 diff --git a/po/de/kalgebra.po b/po/de/kalgebra.po new file mode 100644 index 0000000..cb37274 --- /dev/null +++ b/po/de/kalgebra.po @@ -0,0 +1,1183 @@ +# Martin Ereth , 2007, 2008. +# Thomas Reitelbach , 2007, 2008. +# Thorsten Mürell , 2007. +# Burkhard Lück , 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2021. +# Frederik Schwarzer , 2009, 2010, 2011, 2013, 2016, 2022. +# Panagiotis Papadopoulos , 2010. +# Peter Rüthemann , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-15 11:18+0200\n" +"Last-Translator: Frederik Schwarzer \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 22.04.1\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Optionen: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "„%1“ in Eingabe einfügen" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "In Eingabe einfügen" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Fehler: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importiert: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Fehler: %1 kann nicht geladen werden.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informationen" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Hinzufügen/Bearbeiten einer Funktion" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Vorschau" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Von:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Bis:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Optionen" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Entfernen" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Die angegebenen Optionen sind nicht richtig." + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Die untere Grenze kann nicht größer als die obere Grenze sein." + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Plot 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Plot 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sitzung" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variablen" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Rechner" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "&Rechner" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Skript &laden ..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Zuletzt geöffnete Skripte" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Skript speichern ..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "Protokoll &exportieren ..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&ANS einfügen ..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Ausführungsmodus" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Berechnen" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Auswerten" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funktionen" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Liste" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Hinzufügen" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Darstellungsfeld" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D-Graph" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D-Graph" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Gitter" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Seitenverhältnis beibehalten" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Auflösung" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Grob" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fein" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Sehr fein" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D-Graph" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D-&Graph" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Ansicht &zurücksetzen" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punktgitter" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Liniengitter" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Einfarbig mit Liniengitter" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operationen" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Funktionen" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Suchen nach:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Bearbeiten" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Wählen Sie ein Skript aus" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-Datei (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Fehler: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Wählen Sie aus, wo der gerenderte Plot abgelegt wird" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Bilddatei (*.png);;SVG-Datei (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Bereit" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Variable hinzufügen" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Geben Sie einen Namen für die neue Variable ein" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Ein tragbarer Rechner" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "Copyright © 2006–2016 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Martin Ereth" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "martin.ereth@arcor.de" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Hinzufügen/Bearbeiten einer Variable" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Variable entfernen" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Den Wert „%1“ bearbeiten" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "nicht verfügbar" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "FALSCH" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Links:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Oben:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Breite:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Höhe:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Anwenden" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "PNG-Datei (*.png);;PDF-Dokument(*.pdf);;X3D-Dokument (*.x3d);;STL-" +#~ "Dokument (*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "&Rechner" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Konsole" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Entwickelte Funktion zum Zeichnen von impliziten Kurven. Verbesserungen " +#~ "für Zeichnungsfunktionen." + +#~ msgid "Formula" +#~ msgstr "Formel" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Fehler: Falscher Funktionstyp" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Fertig: %1 ms" + +#~ msgid "Error: %1" +#~ msgstr "Fehler: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Leeren" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG-Bilddatei" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1 ..." + +#~ msgid "&Transparency" +#~ msgstr "&Transparenz" + +#~ msgid "Type" +#~ msgstr "Typ" + +#~ msgid "Result: %1" +#~ msgstr "Ergebnis: %1" + +#~ msgid "To Expression" +#~ msgstr "Als Ausdruck" + +#~ msgid "To MathML" +#~ msgstr "Als MathML" + +#~ msgid "Simplify" +#~ msgstr "Vereinfachen" + +#~ msgid "Examples" +#~ msgstr "Beispiele" + +#~ msgid "We can only draw Real results." +#~ msgstr "Es können nur Reelle Ergebnisse gezeichnet werden." + +#~ msgid "The expression is not correct" +#~ msgstr "Der Ausdruck ist nicht richtig" + +#~ msgid "Function type not recognized" +#~ msgstr "Der Funktionstyp kann nicht erkannt werden" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Der Funktionstyp ist falsch für Funktionen, die von %1 abhängen" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Undefinierte implizite Funktion in der Ebene" + +#~ msgid "center" +#~ msgstr "Zentrieren" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Name" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funktion" + +#~ msgid "%1 function added" +#~ msgstr "Funktion %1 hinzugefügt" + +#~ msgid "Hide '%1'" +#~ msgstr "„%1“ ausblenden" + +#~ msgid "Show '%1'" +#~ msgstr "„%1“ anzeigen" + +#~ msgid "Selected viewport too small" +#~ msgstr "Ausgewähltes Darstellungsfeld zu klein" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Beschreibung" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parameter" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Beispiel" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=von..bis" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... Parameter, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Addition" + +#~ msgid "Multiplication" +#~ msgstr "Multiplikation" + +#~ msgid "Division" +#~ msgstr "Division" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Subtraktion. Entfernt alle Werte vom ersten." + +#~ msgid "Power" +#~ msgstr "Potenz" + +#~ msgid "Remainder" +#~ msgstr "Rest" + +#~ msgid "Quotient" +#~ msgstr "Quotient" + +#~ msgid "The factor of" +#~ msgstr "Der Faktor von" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Fakultät. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funktion, um den Sinus eines gegebenen Winkels auszurechnen" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funktion, um den Kosinus eines gegebenen Winkels auszurechnen" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funktion, um den Tangens eines gegebenen Winkels auszurechnen" + +#~ msgid "Secant" +#~ msgstr "Sekans" + +#~ msgid "Cosecant" +#~ msgstr "Kosekans" + +#~ msgid "Cotangent" +#~ msgstr "Kotangens" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Sinus Hyperbolicus" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Kosinus Hyperbolicus" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Tangens Hyperbolicus" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Sekans Hyperbolicus" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Kosekans Hyperbolicus" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Kotangens Hyperbolicus" + +#~ msgid "Arc sine" +#~ msgstr "Arkussinus" + +#~ msgid "Arc cosine" +#~ msgstr "Arkuskosinus" + +#~ msgid "Arc tangent" +#~ msgstr "Arkustangens" + +#~ msgid "Arc cotangent" +#~ msgstr "Arkuskotangens" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Arkustangens Hyperbolicus" + +#~ msgid "Summatory" +#~ msgstr "Summe" + +#~ msgid "Productory" +#~ msgstr "Produkt" + +#~ msgid "For all" +#~ msgstr "Für alle" + +#~ msgid "Exists" +#~ msgstr "Existiert" + +#~ msgid "Differentiation" +#~ msgstr "Differentiation" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Arkussinus Hyperbolicus" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Arkuskosinus Hyperbolicus" + +#~ msgid "Arc cosecant" +#~ msgstr "Arkuskosekans" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Arkuskosekans Hyperbolicus" + +#~ msgid "Arc secant" +#~ msgstr "Arkussekans" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Arkussekans Hyperbolicus" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Exponent (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Natürlicher Logarithmus" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Dekadischer Logarithmus" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Absoluter Wert. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Abrunden floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Aufrunden. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimum" + +#~ msgid "Maximum" +#~ msgstr "Maximum" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Größer als. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : Grenzen" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Wert" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Bitte geben Sie eine gültige Operation an" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "„, “" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Unbekannter Bezeichner: „%1“" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "" +#~ "Es kann keine passende Wahl für eine Bedingungsbeschreibung gefunden " +#~ "werden." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Dieser Typ kann nicht begrenzt werden." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Die untere Grenze ist größer als die obere Grenze" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Ungültige untere oder obere Grenze" + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Eine Variable wurde als Zirkelbezug definiert" + +#~ msgid "The result is not a number" +#~ msgstr "Das Ergebnis ist keine Nummer" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Unerwartetes Ende der Eingabe" + +#~ msgid "Unknown token %1" +#~ msgstr "Unbekanntes Trennzeichen %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 benötigt mindestens 2 Parameter" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 benötigt %2 Parameter" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Fehlende Grenze für „%1“" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Unerwartete Begrenzung für „%1“" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 fehlende Grenzen für „%2“" + +#~ msgid "Wrong declare" +#~ msgstr "Falsche Deklaration" + +#~ msgid "Empty container: %1" +#~ msgstr "Leerer Container: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "" +#~ "Es sind nur Bedingungen in einer abschnittsweise definierten Funktion " +#~ "erlaubt." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "" +#~ "Es ist nicht möglich zwei Parameter mit demselben Namen wie „%1“ zu haben." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Der sonstige-Parameter sollte der letzte sein" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "" +#~ "%1 ist keine korrekt definierte Bedingung in einer abschnittsweise " +#~ "definierten Funktion" + +#~ msgid "We can only declare variables" +#~ msgstr "Es können nur Variablen deklariert werden" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Es können nur gebundene Variablen deklariert werden" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Fehler beim Verarbeiten: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "unbekannter Container: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Wert %1 kann nicht verschlüsselt werden." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Der Operator „%1“ kann keinen Kind-Kontext haben." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Das Element „%1“ ist kein Operator." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Keine leeren Vektoren erwünscht" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Nicht unterstützt/unbekannt: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Es wurde %1 anstatt „%2“ erwartet" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Fehlende schließende Klammer" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Unausgeglichene schließende Klammern" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Unerwartetes Trennzeichen %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Unerwartetes Trennzeichen %1" + +#, fuzzy +#~| msgid "Could not calculate the derivative for '%1'" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Die Ableitung von %1 kann nicht berechnet werden" + +#, fuzzy +#~| msgid "The domain should be either a vector or a list." +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "" +#~ "Der Definitionsbereich muss entweder ein Vektor oder eine Liste sein." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "" +#~ "Falsche Parameteranzahl für „%2“: Es sollte einen Parameter haben." +#~ msgstr[1] "Falsche Parameteranzahl für „%2“: Es sollte %1 Parameter haben." + +#~ msgid "Could not call '%1'" +#~ msgstr "„%1“ kann nicht aufgerufen werden." + +#~ msgid "Could not solve '%1'" +#~ msgstr "„%1“ kann nicht berechnet werden." + +#, fuzzy +#~| msgid "Enter a name for the new variable" +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Geben Sie einen Namen für die neue Variable ein" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "" +#~ "Der Typ der abschnittsweise definierten Funktion kann nicht ermittelt " +#~ "werden." + +#~ msgid "Unexpected type" +#~ msgstr "Unerwarteter Typ" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "„%1“ kann nicht in „%2“ umgewandelt werden." + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Unbekanntes Trennzeichen %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Der Rest für eine Division durch 0 kann nicht berechnet werden." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Für „0“ kann kein Teiler berechnet werden." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "" +#~ "Das kleinste gemeinsame Vielfache von „0“ kann nicht berechnet werden." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Ein Wert %1 kann nicht berechnet werden" + +#~ msgid "Invalid index for a container" +#~ msgstr "Ungültiger Index für einen Container" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Vektoren unterschiedlicher Größe können nicht verarbeitet werden." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "%1 eines Vektors kann nicht berechnet werden" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "%1 einer Liste kann nicht berechnet werden" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Die Ableitung von %1 kann nicht berechnet werden" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "„%1“ und „%2“ können nicht gekürzt werden." + +#~ msgid "Incorrect domain." +#~ msgstr "Fehlerhafte Domäne." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Die parametrische Funktion gibt keinen Vektor zurück." + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Es wird ein zweidimensionaler Vektor benötigt." + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Die Elemente der parametrischen Funktion sollten Skalare sein." + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "Die %1te Ableitung wurde noch nicht implementiert." + +# real = reelle Zahl? +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Der reelle Wert kann nicht nachvollzogen werden: %1" + +#~ msgid "Subtraction" +#~ msgstr "Subtraktion" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Fehler: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Ein Element aus einem Container auswählen" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "" +#~ "Fehler: Es werden Werte benötigt, um einen Graphen zeichnen zu können" + +#~ msgid "Generating... Please wait" +#~ msgstr "Erzeugen ... Bitte warten" + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Falsche Parameteranzahl: 1 Parameter für „%2“" +#~ msgstr[1] "Falsche Parameteranzahl: %1 Parameter für „%2“" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Protokoll speichern" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "Fein" + +#~ msgid "We can only call functions" +#~ msgstr "Es können nur Funktionen aufgerufen werden" + +#~ msgid "Wrong parameter count" +#~ msgstr "Falsche Parameteranzahl" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Invalid parameter count." +#~ msgstr "Ungültige Parameteranzahl." + +#~ msgid "Mode" +#~ msgstr "Modus" + +#~ msgid "Save the expression" +#~ msgstr "Den Ausdruck speichern" + +#~ msgid "Calculate the expression" +#~ msgstr "Den Ausdruck berechnen" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Die untere Grenze kann nicht ≥ der oberen Grenze sein" + +#, fuzzy +#~| msgid "Trying to call an empty or invalid function" +#~ msgid "Trying to call an invalid function" +#~ msgstr "Aufruf einer leeren oder ungültigen Funktion" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Die Funktion %1 existiert nicht" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Die Variable %1 existiert nicht" + +#~ msgid "Need a var name and a value" +#~ msgstr "Es wird ein Variablenname und ein Wert erwartet" + +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "" +#~ "Es können nur Containerwerte nach dem Ganzzahlindex ausgewählt werden" + +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~| msgid "The first parameter in a function construction should be the name" +#~ msgid "The first parameter in a function should be the name" +#~ msgstr "Der erste Parameter einer Funktion muss der Name sein" + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Unbekannte gebundene Variable: %1" + +#~ msgid "From parser:" +#~ msgstr "Verarbeitungsausgabe:" + +#, fuzzy +#~ msgid "piece or otherwise in the wrong place" +#~ msgstr "Stück oder sonstiges an der falschen Stelle" + +#~ msgid "Missing bounding limits on a sum operation" +#~ msgstr "Fehlende Grenzwerte für einen Summenoperation" + +#~ msgctxt "" +#~ "%1 the operation name, %2 and %3 is the opearation we wanted to calculate" +#~ msgid "Cannot calculate the %1(%2, %3)" +#~ msgstr "%1(%2, %3) kann nicht berechnet werden." + +#~ msgctxt "Error message" +#~ msgid "Trying to codify an unknown value: %1" +#~ msgstr "Es wurde versucht, einen unbekannten Wert zu kodieren: %1" + +#~ msgid "%1, " +#~ msgstr "%1, " + +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "Arkuskotangens Hyperbolicus" + +#, fuzzy +#~| msgctxt "@info:status" +#~| msgid "Ready" +#~ msgid "Real" +#~ msgstr "Bereit" diff --git a/po/de/kalgebramobile.po b/po/de/kalgebramobile.po new file mode 100644 index 0000000..5caa9b4 --- /dev/null +++ b/po/de/kalgebramobile.po @@ -0,0 +1,302 @@ +# Copyright (C) 2024 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# Burkhard Lück , 2018, 2019, 2020, 2021. +# Alois Spitzbart , 2020. +# Frederik Schwarzer , 2022. +# SPDX-FileCopyrightText: 2024 Johannes Obermayr +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-09-28 20:20+0200\n" +"Last-Translator: Johannes Obermayr \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 25.03.70\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Rechner" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Skript laden" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Skript speichern" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Protokoll exportieren" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Auswerten" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Berechnen" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Protokoll leeren" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D-Plot" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D-Plot" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "„%1“ kopieren" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Konsolenverlaufsspeicher leeren" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Hinzufügen" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Alles löschen" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Dialog schließen" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Plot entfernen" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Kein Plot verfügbar" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Zu berechnender Ausdruck ..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Wörterbuch" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Name:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "2D-Grafik" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "3D-Grafik" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Wertetabellen" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variablen" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Wörterbuch" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Über KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D-Plot" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Speichern" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Gitter anzeigen" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Ansicht zurücksetzen" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D-Plot" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Ergebnisse" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Wertetabellen" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Fehler: Die Schrittweite darf nicht 0 sein" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Fehler: Der Start und das Ende sind identisch." + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Fehler: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Ausführen" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Eingabe" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Von:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Bis:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Schrittweite" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Ausführen" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Ein tragbarer Rechner" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© 2006–2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Betreuer" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Alois Spitzbart" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "spitz234@hotmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobil" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Ein einfacher wissenschaftlicher Rechner" diff --git a/po/el/kalgebra.po b/po/el/kalgebra.po new file mode 100644 index 0000000..f03aa0a --- /dev/null +++ b/po/el/kalgebra.po @@ -0,0 +1,1147 @@ +# translation of kalgebra.po to greek +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Spiros Georgaras , 2007. +# Toussis Manolis , 2007, 2008, 2009. +# Yannis Kaskamanidis , 2010. +# Petros , 2010. +# Antonis Geralis , 2012. +# Dimitrios Glentadakis , 2012. +# Dimitris Kardarakos , 2012, 2013, 2014. +# Stelios , 2017, 2020, 2023. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2023-01-05 09:36+0200\n" +"Last-Translator: Stelios \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 21.12.3\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Επιλογές: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Επικόλληση \"%1\" στην είσοδο" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Επικόλληση στην είσοδο" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Σφάλμα: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Εισάχθηκε: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Σφάλμα: Αδυναμία φόρτωσης του %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Πληροφορίες" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Προσθήκη/επεξεργασία μιας συνάρτησης" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Προεπισκόπηση" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Από:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Προς:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Επιλογές" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Εντάξει" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Αφαίρεση" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Οι επιλογές που καθορίσατε δεν είναι σωστές" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Το κατώτατο όριο δεν μπορεί να είναι μεγαλύτερο από το ανώτατο όριο." + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Γραφική απεικόνιση 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Γραφική απεικόνιση 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Συνεδρία" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Μεταβλητές" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "Αρι&θμομηχανή" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "Αριθμομηχ&ανή" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Φόρτωση σεναρίου..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Πρόσφατα σενάρια" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Αποθήκευση σεναρίου..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Εξαγωγή καταγραφής..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "Ε&ισαγωγή απάν..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Τρόπος εκτέλεσης" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Υπολογισμός" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Αποτίμηση" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Συναρτήσεις" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Λίστα" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Προσθήκη" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Παράθυρο προβολής" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D γράφημα" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D γράφημα" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Κάνναβος" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Διατήρηση αναλογιών" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Ανάλυση" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Φτωχή" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Κανονική" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Λεπτομερής" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Πολύ λεπτομερής" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D γράφημα" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &γράφημα" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Επαναφορά προβολής" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Τελείες" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Γραμμές" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Συμπαγές" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Λειτουργίες" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Λεξικό" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Αναζήτηση για:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Επεξεργασία" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Επιλέξτε ένα σενάριο" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Σενάριο (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Αρχείο HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Σφάλματα: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Επιλέξτε τη θέση του σχεδίου" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Αρχείο εικόνας (*.png);;SVG αρχείο (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Έτοιμο" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Προσθήκη μεταβλητής" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Εισάγετε όνομα για τη νέα μεταβλητή" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Ένας συμβατός υπολογιστής" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Τούσης Μανώλης, Σπύρος Γεωργαράς" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "manolis@koppermind.homelinux.org, sng@hellug.gr" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Προσθήκη/επεξεργασία μιας μεταβλητής" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Αφαίρεση μεταβλητής" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Επεξεργασία τιμής της '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "μη διαθέσιμο" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ΛΑΘΟΣ" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Αριστερά:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Επάνω:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Πλάτος:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Ύψος:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Εφαρμογή" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|Αρχείο PNG\n" +#~ "*.pdf|Έγγραφο PDF" + +#~ msgid "C&onsole" +#~ msgstr "Κ&ονσόλα" + +#~ msgid "&Console" +#~ msgstr "&Κονσόλα" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Ανάπτυξη χαρακτηριστικού για την σχεδίαση πεπλεγμένων καμπυλών. " +#~ "Βελτιώσεις στη γραφική απεικόνιση των συναρτήσεων." + +#~ msgid "Formula" +#~ msgstr "Μαθηματική σχέση" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Σφάλμα: Λανθασμένος τύπος της συνάρτησης" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Ολοκληρώθηκε: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Σφάλμα: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Καθαρισμός" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|Αρχείο PNG" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Διαφάνεια" + +#~ msgid "Type" +#~ msgstr "Τύπος" + +#~ msgid "Result: %1" +#~ msgstr "Αποτέλεσμα: %1" + +#~ msgid "To Expression" +#~ msgstr "Σε έκφραση" + +#~ msgid "To MathML" +#~ msgstr "Σε MathML" + +#~ msgid "Simplify" +#~ msgstr "Απλοποίηση" + +#, fuzzy +#~ msgid "Examples" +#~ msgstr "Παράδειγμα" + +#~ msgid "We can only draw Real results." +#~ msgstr "Μπορείτε να σχεδιάσετε μόνο αποτελέσματα πραγματικών." + +#~ msgid "The expression is not correct" +#~ msgstr "Η έκφραση δεν είναι σωστή" + +#~ msgid "center" +#~ msgstr "κέντρο" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Όνομα" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Συνάρτηση" + +#~ msgid "%1 function added" +#~ msgstr "Προστέθηκε %1 συνάρτηση" + +#~ msgid "Hide '%1'" +#~ msgstr "Απόκρυψη '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Εμφάνιση '%1'" + +#~ msgid "Selected viewport too small" +#~ msgstr "Η επιλεγμένη προβολή είναι πολύ μικρή" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Περιγραφή" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Παράμετροι" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Παράδειγμα" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... παράμετροι, ... %2)" + +#~ msgid "par%1" +#~ msgstr "παρ%1" + +#~ msgid "Addition" +#~ msgstr "Πρόσθεση" + +#~ msgid "Multiplication" +#~ msgstr "Πολλαπλασιασμός" + +#~ msgid "Division" +#~ msgstr "Διαίρεση" + +#~ msgid "Power" +#~ msgstr "Δύναμη" + +#~ msgid "Remainder" +#~ msgstr "Υπόλοιπο" + +#~ msgid "Quotient" +#~ msgstr "Πηλίκο" + +#~ msgid "The factor of" +#~ msgstr "Ο διαιρέτης του" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Παραγοντικό. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Συνάρτηση υπολογισμού του ημιτονίου μιας δοσμένης γωνίας" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Συνάρτηση υπολογισμού του συνημιτόνου μιας δοσμένης γωνίας" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Συνάρτηση υπολογισμού της εφαπτομένης μιας δοσμένης γωνίας" + +#~ msgid "Secant" +#~ msgstr "Τέμνουσα" + +#~ msgid "Cosecant" +#~ msgstr "Συντέμνουσα" + +#~ msgid "Cotangent" +#~ msgstr "Συνεφαπτομένη" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Υπερβολικό ημίτονο" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Υπερβολικό συνημίτονο" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Υπερβολική εφαπτομένη" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Υπερβολική τέμνουσα" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Υπερβολική συντέμνουσα" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Υπερβολική συνεφαπτομένη" + +#~ msgid "Arc sine" +#~ msgstr "Τόξο ημίτονου" + +#~ msgid "Arc cosine" +#~ msgstr "Τόξο συνημιτόνου" + +#~ msgid "Arc tangent" +#~ msgstr "Τόξο εφαπτομένης" + +#~ msgid "Arc cotangent" +#~ msgstr "Τόξο συνεφαπτομένης" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Υπερβολικό τόξο εφαπτομένης" + +#~ msgid "Summatory" +#~ msgstr "Άθροισμα" + +#~ msgid "Productory" +#~ msgstr "Γινόμενο" + +#, fuzzy +#~ msgid "For all" +#~ msgstr "Κανονική" + +#, fuzzy +#~ msgid "Exists" +#~ msgstr "Λίστα" + +#~ msgid "Differentiation" +#~ msgstr "Διαφορικό" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Υπερβολικό τόξο ημιτονίου" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Υπερβολικό τόξο συνημιτόνου" + +#~ msgid "Arc cosecant" +#~ msgstr "Τόξο συντέμνουσας" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Υπερβολικό τόξο συντέμνουσας" + +#~ msgid "Arc secant" +#~ msgstr "Τόξο συντέμνουσας" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Υπερβολικό τόξο τέμνουσας" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Φυσικός εκθέτης (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Φυσικός λογάριθμος" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Δεκαδικός λογάριθμος" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Απόλυτη τιμή. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Κατώτερη τιμή. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Τιμή οροφής. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Ελάχιστο" + +#~ msgid "Maximum" +#~ msgstr "Μέγιστο" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Μεγαλύτερο από. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., παρ%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "παρ%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : όρια" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Τιμή" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Πρέπει να καθορίσετε μια σωστή λειτουργία" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Άγνωστο αναγνωριστικό: '%1'" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Αδυναμία εύρεσης μιας κατάλληλης επιλογής για μια δήλωση συνθήκης." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Ο τύπος δεν υποστηρίζεται για περιορισμό." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Το κατώτατο όριο είναι μεγαλύτερο από το ανώτατο όριο." + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Λανθασμένο κατώτατο ή ανώτατο όριο." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Ορίστηκε ένας κύκλος μεταβλητής" + +#~ msgid "The result is not a number" +#~ msgstr "Το αποτέλεσμα δεν είναι αριθμός" + +#~ msgid "Unknown token %1" +#~ msgstr "Άγνωστο ενδεικτικό %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "Η %1 απαιτεί τουλάχιστον 2 παραμέτρους" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "Η %1 απαιτεί %2 παραμέτρους" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Λείπει όριο για το '%1'" + +#, fuzzy +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Μη αναμενόμενο ενδεικτικό %1" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 λείπουν όρια στο '%2'" + +#~ msgid "Wrong declare" +#~ msgstr "Λανθασμένη δήλωση" + +#~ msgid "Empty container: %1" +#~ msgstr "Κενός υποδοχέας: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Συνθήκες μπορούν να υπάρχουν μόνο σε δομές piecewise." + +#, fuzzy +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Μόνο μία διαφορετικά οι παράμετροι είναι αρκετοί" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "Το %1 δεν είναι μια σωστή συνθήκη μέσα στην piecewise" + +#~ msgid "We can only declare variables" +#~ msgstr "Μπορείτε να δηλώσετε μόνο μεταβλητές." + +#~ msgid "We can only have bounded variables" +#~ msgstr "Μπορούμε να έχουμε μόνο περιορισμένες μεταβλητές" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Σφάλμα κατά την ανάλυση: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Άγνωστος υποδοχέας: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Αδυναμία κωδικοποίησης της τιμής %1." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Ο τελεστής %1 δεν μπορεί να έχει υποπεριεχόμενο." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Το στοιχείο '%1' δεν είναι τελεστής." + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Μη υποστηριζόμενο/άγνωστο: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Αναμενόταν %1 αντί για το %2" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Λείπει δεξιά παρένθεση" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Δεξιά παρένθεση χωρίς ισορροπία" + +#, fuzzy +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Μη αναμενόμενο ενδεικτικό %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Μη αναμενόμενο ενδεικτικό %1" + +#, fuzzy +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Αδυναμία υπολογισμού της τιμής %1" + +#, fuzzy +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Λανθασμένη μέτρηση παραμέτρου, είχε 1 παράμετρο για '%2'" +#~ msgstr[1] "Λανθασμένη μέτρηση παραμέτρου, είχε %1 παραμέτρους για '%2'" + +#, fuzzy +#~ msgid "Could not call '%1'" +#~ msgstr "Αδυναμία κλήσης '%1'" + +#, fuzzy +#~ msgid "Could not solve '%1'" +#~ msgstr "Αδυναμία υπολογισμού της τιμής %1" + +#, fuzzy +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Εισάγετε όνομα για τη νέα μεταβλητή" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Αδυναμία καθορισμού του τύπου της τμηματικής συνάρτησης" + +#, fuzzy +#~ msgid "Unexpected type" +#~ msgstr "Μη αναμενόμενο ενδεικτικό %1" + +#, fuzzy +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Αδυναμία μετατροπής %1 σε %2" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Άγνωστο σύμβολο %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Αδυναμία υπολογισμού του υπολοίπου στο 0." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Αδυναμία υπολογισμού του παράγοντα στο 0." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Αδυναμία υπολογισμού του ελάχιστου κοινού πολλαπλάσιου του 0." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Αδυναμία υπολογισμού της τιμής %1" + +#~ msgid "Invalid index for a container" +#~ msgstr "Μη έγκυρος δείκτης ενός υποδοχέα" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Αδυναμία τέλεσης σε διανύσματα διαφορετικού μεγέθους." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Αδυναμία υπολογισμού του %1 ενός διανύσματος" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Αδυναμία υπολογισμού μιας λίστας %1" + +#, fuzzy +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Αδυναμία υπολογισμού της τιμής %1" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Αδυναμία αλλαγής μεγέθους '%1' και '%2'." + +#~ msgid "Incorrect domain." +#~ msgstr "Λανθασμένος τομέας." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Η παραμετρική συνάρτηση δεν επέστρεψε ένα διάνυσμα" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Ένα δισδιάστατο διάνυσμα είναι απαραίτητο" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Τα αντικείμενα της παραμετρικής συνάρτησης πρέπει να έχουν μέγεθος" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "Η παράγωγος %1 δεν έχει υλοποιηθεί." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Αδυναμία υπολογισμού της πραγματικής τιμής: %1" + +#~ msgid "Subtraction" +#~ msgstr "Αφαίρεση" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Σφάλμα: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Επιλέξτε ένα στοιχείο από έναν υποδοχέα" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Σφάλμα: απαιτούνται τιμές για τη σχεδίαση ενός γραφήματος" + +#~ msgid "Generating... Please wait" +#~ msgstr "Δημιουργία... παρακαλώ περιμένετε" + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Λανθασμένη μέτρηση παραμέτρου, είχε 1 παράμετρο για '%2'" +#~ msgstr[1] "Λανθασμένη μέτρηση παραμέτρου, είχε %1 παραμέτρους για '%2'" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Αποθήκευση καταγραφής" + +#, fuzzy +#~ msgid "File" +#~ msgstr "Λεπτομερής" + +#~ msgid "We can only call functions" +#~ msgstr "Μπορούμε να καλέσουμε μόνο μεταβλητές." + +#~ msgid "Wrong parameter count" +#~ msgstr "Λανθασμένη μέτρηση παραμέτρου" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "αληθές" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "ψευδές" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~ msgid "Invalid parameter count." +#~ msgstr "Λανθασμένη μέτρηση παραμέτρου" + +#~ msgid "Mode" +#~ msgstr "Λειτουργία" + +#~ msgid "Save the expression" +#~ msgstr "Αποθήκευση της έκφρασης" + +#~ msgid "Calculate the expression" +#~ msgstr "Υπολογισμός της έκφρασης" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot apply '%1' to '%2'" +#~ msgstr "Αδυναμία εφαρμογής '%1' στο '%2'" + +#~ msgid "Cannot operate '%1'" +#~ msgstr "Αδυναμία χειρισμού '%1'" + +#~ msgid "Cannot check '%1' type" +#~ msgstr "Αδυναμία ελέγχου του '%1' τύπου" + +#~ msgid "Wrong number of parameters when calling '%1'" +#~ msgstr "Λανθασμένος αριθμός παραμέτρων κατά την κλήση του '%1'" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Δεν μπορεί να είναι το κάτω όριο ≥ πάνω όριο" + +#, fuzzy +#~ msgid "Trying to call an invalid function" +#~ msgstr "Προσπάθεια κλήσης μιας κενής ή μη έγκυρης συνάρτησης" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Η συνάρτηση %1 δεν υπάρχει" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Η μεταβλητή %1 δεν υπάρχει" + +#~ msgid "Need a var name and a value" +#~ msgstr "Απαιτείται όνομα μεταβλητής και μια τιμή" + +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "Μπορεί να επιλεγεί μια τιμή υποδοχέα μόνο με τον ακέραιο δείκτη της" + +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~ msgid "The first parameter in a function should be the name" +#~ msgstr "Η πρώτη παράμετος σε μια κατασκευή συνάρτησης είναι το όνομα" + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Άγνωστη περιορισμένη μεταβλητή: %1" + +#~ msgid "From parser:" +#~ msgstr "Από τον αναλυτή:" + +#~ msgid "" +#~ "Wrong parameter count in a selector, should have 2 parameters, the " +#~ "selected index and the container." +#~ msgstr "" +#~ "Εσφαλμένο πλήθος παραμέτρων σε έναν επιλογέα, θα έπρεπε να είναι 2 " +#~ "παράμετροι, το επιλεγμένο ευρετήριο και ο υποδοχέας." + +#~ msgid "piece or otherwise in the wrong place" +#~ msgstr "piece ή otherwise σε λανθασμένη θέση" + +#~ msgid "No bounding variables for this sum" +#~ msgstr "Χωρίς περιοριστικές μεταβλητές για αυτό το άθροισμα" + +#~ msgid "Missing bounding limits on a sum operation" +#~ msgstr "Λείπουν περιοριστικές τιμές σε μια λειτουργία άθροισης" + +#~ msgctxt "Error message" +#~ msgid "Trying to codify an unknown value: %1" +#~ msgstr "Προσπάθεια κωδικοποίησης μιας άγνωστης τιμής: %1" + +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "Υπερβολικό τόξο συνεφαπτομένης" + +#~ msgid "Real" +#~ msgstr "Πραγματικός" + +#~ msgid "%1, " +#~ msgstr "%1, " diff --git a/po/el/kalgebramobile.po b/po/el/kalgebramobile.po new file mode 100644 index 0000000..1eb09d9 --- /dev/null +++ b/po/el/kalgebramobile.po @@ -0,0 +1,300 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# Stelios , 2020, 2021, 2023. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-01-05 09:38+0200\n" +"Last-Translator: Stelios \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 21.12.3\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Αριθμομηχανή" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Φόρτωση σεναρίου" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Σενάριο (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Αποθήκευση σεναρίου" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Εξαγωγή καταγραφής" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Αξιολόγηση" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Υπολογισμός" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Καθαρισμός καταγραφής" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D γραφική παράσταση" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D γραφική παράσταση" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Αντιγραφή «%1»" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Καθαρισμός όλων" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Έκφραση για υπολογισμό..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Λεξικό" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Όνομα:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Γράφος 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Γράφος 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Πίνακες τιμών" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Μεταβλητές" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Λεξικό" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Σχετικά με το KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D γραφική παράσταση" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Αποθήκευση" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Προβολή πλέγματος" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Επαναφορά viewport" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D γραφική παράσταση" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Αποτελέσματα" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Πίνακες τιμών" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Σφάλματα: το βήμα δεν γίνεται να είναι 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Σφάλματα: η αρχή και το τέλος είναι ίδια" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Σφάλματα: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Εκτέλεση" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Είσοδος" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Από:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Σε:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Βήμα" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Εκτέλεση" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Μια φορητή αριθμομηχανή" + +#: main.cpp:40 +#, fuzzy, kde-format +#| msgid "(C) 2006-2020 Aleix Pol i Gonzalez" +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2020 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Stelios" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sstavra@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Μια απλή επιστημονική αριθμομηχανή" diff --git a/po/en_GB/kalgebra.po b/po/en_GB/kalgebra.po new file mode 100644 index 0000000..defd7f4 --- /dev/null +++ b/po/en_GB/kalgebra.po @@ -0,0 +1,1165 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Andrew Coles , 2009, 2010, 2011. +# Steve Allewell , 2014, 2015, 2016, 2017, 2019, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-07-22 14:30+0100\n" +"Last-Translator: Steve Allewell \n" +"Language-Team: British English \n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 22.04.3\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Options: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Paste \"%1\" to input" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Paste to Input" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Error: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Imported: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Error: Could not load %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Information" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Add/Edit a function" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Preview" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "From:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "To:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Options" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Remove" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "The options you specified are not correct" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Downlimit cannot be greater than uplimit" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Plot 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Plot 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Session" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calculator" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "C&alculator" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Load Script..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Recent Scripts" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Save Script..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Export Log..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Insert ans..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Execution Mode" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calculate" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Evaluate" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Functions" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "List" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Add" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Viewport" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D Graph" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D Graph" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Grid" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Keep Aspect Ratio" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolution" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Poor" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fine" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Very Fine" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D Graph" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &Graph" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Reset View" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Dots" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Lines" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Solid" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operations" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Dictionary" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Look for:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Editing" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Choose a script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML File (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Errors: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Select where to put the rendered plot" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Image File (*.png);;SVG File (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Ready" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Add variable" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Enter a name for the new variable" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "A portable calculator" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Steve Allewell" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "steve.allewell@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Add/Edit a variable" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Remove Variable" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Edit '%1' value" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "not available" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "WRONG" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Left:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Top:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Width:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Height:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Apply" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "C&onsole" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Console" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." + +#~ msgid "Formula" +#~ msgstr "Formula" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Error: Wrong type of function" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Done: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Error: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Clear" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG File" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Transparency" + +#~ msgid "Type" +#~ msgstr "Type" + +#~ msgid "Result: %1" +#~ msgstr "Result: %1" + +#~ msgid "To Expression" +#~ msgstr "To Expression" + +#~ msgid "To MathML" +#~ msgstr "To MathML" + +#~ msgid "Simplify" +#~ msgstr "Simplify" + +#~ msgid "Examples" +#~ msgstr "Examples" + +#~ msgid "We can only draw Real results." +#~ msgstr "We can only draw Real results." + +#~ msgid "The expression is not correct" +#~ msgstr "The expression is not correct" + +#~ msgid "Function type not recognized" +#~ msgstr "Function type not recognised" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Function type not correct for functions depending on %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Implicit function undefined in the plane" + +#~ msgid "center" +#~ msgstr "centre" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Name" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Function" + +#~ msgid "%1 function added" +#~ msgstr "%1 function added" + +#~ msgid "Hide '%1'" +#~ msgstr "Hide '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Show '%1'" + +#~ msgid "Selected viewport too small" +#~ msgstr "Selected viewport too small" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Description" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parameters" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Example" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=from..to" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parameters, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Addition" + +#~ msgid "Multiplication" +#~ msgstr "Multiplication" + +#~ msgid "Division" +#~ msgstr "Division" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Subtraction. Will remove all values from the first one." + +#~ msgid "Power" +#~ msgstr "Power" + +#~ msgid "Remainder" +#~ msgstr "Remainder" + +#~ msgid "Quotient" +#~ msgstr "Quotient" + +#~ msgid "The factor of" +#~ msgstr "The factor of" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Factorial. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Function to calculate the sine of a given angle" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Function to calculate the cosine of a given angle" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Function to calculate the tangent of a given angle" + +#~ msgid "Secant" +#~ msgstr "Secant" + +#~ msgid "Cosecant" +#~ msgstr "Cosecant" + +#~ msgid "Cotangent" +#~ msgstr "Cotangent" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Hyperbolic sine" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hyperbolic cosine" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hyperbolic tangent" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Hyperbolic secant" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Hyperbolic cosecant" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Hyperbolic cotangent" + +#~ msgid "Arc sine" +#~ msgstr "Arc sine" + +#~ msgid "Arc cosine" +#~ msgstr "Arc cosine" + +#~ msgid "Arc tangent" +#~ msgstr "Arc tangent" + +#~ msgid "Arc cotangent" +#~ msgstr "Arc cotangent" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Hyperbolic arc tangent" + +#~ msgid "Summatory" +#~ msgstr "Summatory" + +#~ msgid "Productory" +#~ msgstr "Productory" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "Normal" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "List" + +#~ msgid "Differentiation" +#~ msgstr "Differentiation" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Hyperbolic arc sine" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Hyperbolic arc cosine" + +#~ msgid "Arc cosecant" +#~ msgstr "Arc cosecant" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Hyperbolic arc cosecant" + +#~ msgid "Arc secant" +#~ msgstr "Arc secant" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Hyperbolic arc secant" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Exponent (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Base-e logarithm" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Base-10 logarithm" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Absolute value. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Floor value. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Ceil value. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimum" + +#~ msgid "Maximum" +#~ msgstr "Maximum" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Greater than. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : bounds" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Value" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Must specify a correct operation" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Unknown identifier: '%1'" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Could not find a proper choice for a condition statement." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Type not supported for bounding." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "The downlimit is greater than the uplimit" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Incorrect uplimit or downlimit." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Defined a variable cycle" + +#~ msgid "The result is not a number" +#~ msgstr "The result is not a number" + +#~ msgid "Unknown token %1" +#~ msgstr "Unknown token %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 needs at least 2 parameters" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 requires %2 parameters" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Missing boundary for '%1'" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Unexpected bounding for '%1'" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 missing bounds on '%2'" + +#~ msgid "Wrong declare" +#~ msgstr "Wrong declare" + +#~ msgid "Empty container: %1" +#~ msgstr "Empty container: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "We can only have conditionals inside piecewise structures." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Cannot have two parameters with the same name like '%1'." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "The otherwise parameter should be the last one" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 is not a proper condition inside the piecewise" + +#~ msgid "We can only declare variables" +#~ msgstr "We can only declare variables" + +#~ msgid "We can only have bounded variables" +#~ msgstr "We can only have bounded variables" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Error while parsing: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Container unknown: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Cannot codify the %1 value." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "The %1 operator cannot have child contexts." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "The element '%1' is not an operator." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Do not want empty vectors" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Not supported/unknown: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Expected %1 instead of '%2'" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Missing right bracket" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Unbalanced right bracket" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Unexpected token %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Unexpected token %1" + +#, fuzzy +#~| msgid "Could not calculate the derivative for '%1'" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Could not calculate the derivative for '%1'" + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgstr[1] "Invalid parameter count for '%2'. Should have %1 parameters." + +#~ msgid "Could not call '%1'" +#~ msgstr "Could not call '%1'" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Could not solve '%1'" + +#, fuzzy +#~| msgid "Enter a name for the new variable" +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Enter a name for the new variable" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Could not determine the type for piecewise" + +#, fuzzy +#~| msgid "Unexpected bounding for '%1'" +#~ msgid "Unexpected type" +#~ msgstr "Unexpected bounding for '%1'" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Cannot convert '%1' to '%2'" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Unknown token %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Cannot calculate the remainder on 0." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Cannot calculate the factor on 0." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Cannot calculate the lcm of 0." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Could not calculate a value %1" + +#~ msgid "Invalid index for a container" +#~ msgstr "Invalid index for a container" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Cannot operate on different sized vectors." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Could not calculate a vector's %1" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Could not calculate a list's %1" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Could not calculate the derivative for '%1'" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Could not reduce '%1' and '%2'." + +#~ msgid "Incorrect domain." +#~ msgstr "Incorrect domain." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "The parametric function does not return a vector" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "A two-dimensional vector is needed" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "The parametric function items should be scalars" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "The %1 derivative has not been implemented." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Did not understand the real value: %1" + +#~ msgid "Subtraction" +#~ msgstr "Subtraction" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Error: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Select an element from a container" + +#~ msgid " Plot 3D" +#~ msgstr " Plot 3D" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Error: We need values to draw a graph" + +#~ msgid "Generating... Please wait" +#~ msgstr "Generating... Please wait" + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Wrong parameter count, had 1 parameter for '%2'" +#~ msgstr[1] "Wrong parameter count, had %1 parameters for '%2'" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Save Log" + +#~ msgid "File" +#~ msgstr "File" + +#~ msgid "We can only call functions" +#~ msgstr "We can only call functions" + +#~ msgid "Wrong parameter count" +#~ msgstr "Wrong parameter count" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Invalid parameter count." +#~ msgstr "Invalid parameter count." + +#~ msgid "Mode" +#~ msgstr "Mode" + +#~ msgid "Save the expression" +#~ msgstr "Save the expression" + +#~ msgid "Calculate the expression" +#~ msgstr "Calculate the expression" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot apply '%1' to '%2'" +#~ msgstr "Cannot apply '%1' to '%2'" + +#~ msgid "Cannot operate '%1'" +#~ msgstr "Cannot operate '%1'" + +#~ msgid "Cannot check '%1' type" +#~ msgstr "Cannot check '%1' type" + +#~ msgid "Wrong number of parameters when calling '%1'" +#~ msgstr "Wrong number of parameters when calling '%1'" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Cannot have downlimit ≥ uplimit" + +#~ msgid "Trying to call an invalid function" +#~ msgstr "Trying to call an invalid function" + +#~ msgid "Unfulfilled dependencies for: '%1'" +#~ msgstr "Unfulfilled dependencies for: '%1'" + +#, fuzzy +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "We want a 2 dimension vector" +#~ msgstr "We want a 2 dimension vector" + +#~ msgid "The function %1 does not exist" +#~ msgstr "The function %1 does not exist" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "The variable %1 does not exist" + +#~ msgid "Need a var name and a value" +#~ msgstr "Need a var name and a value" + +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "We can only select a container's value with its integer index" + +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~| msgid "The first parameter in a function construction should be the name" +#~ msgid "The first parameter in a function should be the name" +#~ msgstr "The first parameter in a function construction should be the name" + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Unknown bounded variable: %1" + +#~ msgid "From parser:" +#~ msgstr "From parser:" + +#~ msgid "" +#~ "Wrong parameter count in a selector, should have 2 parameters, the " +#~ "selected index and the container." +#~ msgstr "" +#~ "Wrong parameter count in a selector, should have 2 parameters, the " +#~ "selected index and the container." + +#~ msgid "piece or otherwise in the wrong place" +#~ msgstr "piece or otherwise in the wrong place" + +#~ msgid "No bounding variables for this sum" +#~ msgstr "No bounding variables for this sum" + +#~ msgid "Missing bounding limits on a sum operation" +#~ msgstr "Missing bounding limits on a sum operation" diff --git a/po/en_GB/kalgebramobile.po b/po/en_GB/kalgebramobile.po new file mode 100644 index 0000000..a919966 --- /dev/null +++ b/po/en_GB/kalgebramobile.po @@ -0,0 +1,326 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# SPDX-FileCopyrightText: 2018, 2019, 2020, 2021, 2022, 2024 Steve Allewell +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-05-23 19:25+0100\n" +"Last-Translator: Steve Allewell \n" +"Language-Team: British English\n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 24.02.2\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calculator" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Load Script" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Save Script" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Export Log" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Evaluate" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calculate" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Clear Log" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D Plot" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D Plot" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copy \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Empty console history" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Add" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Clear All" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Close dialog" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Remove plot" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "No plot available" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Expression to calculate..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Dictionary" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Name:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Graph 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Graph 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Value Tables" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Dictionary" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "About KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D Plot" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Save" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "View Grid" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Reset Viewport" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D Plot" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Results" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Value tables" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Errors: The step cannot be 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Errors: The start and end are the same" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Errors: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Run" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Input" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "From:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "To:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Step" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Run" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "A portable calculator" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Maintainer" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Steve Allewell" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "steve.allewell@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "A simple scientific calculator" + +#~ msgid "Results:" +#~ msgstr "Results:" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." diff --git a/po/eo/kalgebra.po b/po/eo/kalgebra.po new file mode 100644 index 0000000..90d60a4 --- /dev/null +++ b/po/eo/kalgebra.po @@ -0,0 +1,438 @@ +# Translation of kalgebra into esperanto. +# Copyright (C) 2009 Free Software Foundation, Inc. +# Axel Rousseau , 2009. +# Oliver Kellogg , 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2024-01-05 21:16+0100\n" +"Last-Translator: Oliver Kellogg \n" +"Language-Team: esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: translate-po (https://github.com/zcribe/translate-po)\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "%2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opcioj: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Alglui \"%1\" al enigo" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Alglui al Enigo" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Eraro: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importita: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Eraro: Ne eblis ŝargi %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informo" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Aldoni/Redakti funkcion" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Antaŭrigardo" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "De:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Al:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opcioj" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Bone" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Forigi" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "La opcioj kiujn vi specifis ne estas ĝustaj" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Malsuprenlimo ne povas esti pli granda ol suprenlimo" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Grafiki 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Grafiki 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Seanco" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variabloj" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Kalkulilo" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "K&alkulilo" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Ŝar&gi skripton..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Lastatempaj Skriptoj" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Kon&servi skripton..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Eksporti Protokolon..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "En&igi ans..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Rulreĝimo" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Kalkuli" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Taksi" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkcioj" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Listo" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Aldoni" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Vidfenestro" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D-Grafeo" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D-Grafeo" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Krado" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Konservi Bildformaton" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Difino" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Subnorma" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normala" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Bona" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Tre Bona" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D-Grafeo" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D-&Grafeo" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Restarigi Vidon" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punktoj" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linioj" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Plenstreko" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacioj" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Vortaro" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Serĉi:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "R&edaktado" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Elekti skripton" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skripto (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-dosiero (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Eraroj: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Elekti kien meti la bilditan grafikon" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Bilddosiero (*.png);;SVG-dosiero (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Preta" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Aldoni variablon" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Enigi nomon por la nova variablo" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Portebla kalkulilo" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Axel Rousseau,Oliver Kellogg" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "axel@esperanto-jeunes.org,olivermkellogg@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Aldoni/Redakti variablon" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Forigi Variablon" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Redakti valoron '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ne disponebla" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "MALĝusta" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Maldekstra:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Supre:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Larĝeco:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Alteco:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Apliki" diff --git a/po/eo/kalgebramobile.po b/po/eo/kalgebramobile.po new file mode 100644 index 0000000..176dad9 --- /dev/null +++ b/po/eo/kalgebramobile.po @@ -0,0 +1,294 @@ +# Translation of kalgebramobile.pot into esperanto. +# Copyright (C) 2018 Free Software Foundation, Inc. +# This file is distributed under the same license as the kalgebra package. +# Oliver Kellogg , 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-12-28 17:41+0100\n" +"Last-Translator: Oliver Kellogg \n" +"Language-Team: esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: translate-po (https://github.com/zcribe/translate-po)\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Kalkulilo" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Ŝargi Skripton" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skripto (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Konservi Skripton" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Eksporti Protokolon" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Taksi" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Kalkuli" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Viŝi Protokolon" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D-Grafiko" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D-Grafiko" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Kopii \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Malplena konzol-historio" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Aldoni" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Viŝi Ĉion" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Fermi dialogon" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Forigi grafikon" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Neniu grafiko disponebla" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Esprimo kalkulenda..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Vortaro" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nomo:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Grafeo 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Grafeo 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Valortabeloj" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variabloj" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Vortaro" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Pri KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D-Grafiko" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Konservi" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Vidi Kradon" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Restarigi Vidujon" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D-Grafiko" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Rezulto" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Valortabeloj" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Eraroj: La paŝo ne povas esti 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Eraroj: La komenco kaj fino estas la samaj" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Eraroj: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Ruli" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Enigo" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "De:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Al:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Paŝi" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Ruli" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Portebla kalkulilo" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Prizorganto" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Oliver Kellogg" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "olivermkellogg@gmail.com" diff --git a/po/es/docs/kalgebra/commands.docbook b/po/es/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..3bd55de --- /dev/null +++ b/po/es/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Órdenes permitidas por KAlgebra + más + Nombre: más + Descripción: adición + Parámetros: más(... parámetros, ...) + Ejemplo: x->x+2 + + veces + Nombre: veces + Descripción: multiplicación + Parámetros: veces(... parámetros, ...) + Ejemplo: x->x*2 + + menos + Nombre: menos + Descripción: Sustracción. Eliminará todos los valores desde el primero. + Parámetros: menos(... parámetros, ...) + Ejemplo: x->x-2 + + dividir + Nombre: dividir + Descripción: división + Parámetros: dividir(par1, par2) + Ejemplo: x->x/2 + + cociente + Nombre: cociente + Descripción: cociente + Parámetros: cociente(par1, par2) + Ejemplo: x->quotient(x, 2) + + potencia + Nombre: potencia + Descripción: potenciación + Parámetros: potencia(par1, par2) + Ejemplo: x->x^2 + + radicación + Nombre: radicación + Descripción: radicación + Parámetros: radicación(par1, par2) + Ejemplo: x->root(x, 2) + + factorial + Nombre: factorial + Descripción: factorial. factorial(n)=n! + Parámetros: factorial(par1) + Ejemplo: x->factorial(x) + + y + Nombre: y + Descripción: y lógico + Parámetros: y(... parámetros, ...) + Ejemplo: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + o + Nombre: o + Descripción: o lógico + Parámetros: o(... parámetros, ...) + Ejemplo: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Nombre: xor + Descripción: xor lógico + Parámetros: xor(... parámetros, ...) + Ejemplo: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + negación + Nombre: negación + Descripción: negación lógica + Parámetros: negación(par1) + Ejemplo: x->piecewise { not(x>0) ? 1, ? 0 } + + mcd + Nombre: mcd + Descripción: máximo común divisor + Parámetros: mcd(... parámetros, ...) + Ejemplo: x->mcd(x, 3) + + mcm + Nombre: mcm + Descripción: mínimo común múltiplo + Parámetros: mcm(... parámetros, ...) + Ejemplo: x->mcm(x, 4) + + resto + Nombre: resto + Descripción: resto + Parámetros: resto(par1, par2) + Ejemplo: x->resto(x, 5) + + factorof + Nombre: factorof + Descripción: el factor de + Parámetros: factorof(par1, par2) + Ejemplo: x->factorof(x, 3) + + max + Nombre: max + Descripción: máximo + Parámetros: max(... parámetros, ...) + Ejemplo: x->max(x, 4) + + min + Nombre: min + Descripción: mínimo + Parámetros: min(... parámetros, ...) + Ejemplo: x->min(x, 4) + + lt + Nombre: lt + Descripción: menor que. lt(a,b)=a<b + Parámetros: lt(par1, par2) + Ejemplo: x->piecewise { x<4 ? 1, ? 0 } + + gt + Nombre: gt + Descripción: mayor que. gt(a,b)=a>b + Parámetros: gt(par1, par2) + Ejemplo: x->piecewise { x>4 ? 1, ? 0 } + + eq + Nombre: eq + Descripción: igual. eq(a,b) = a=b + Parámetros: eq(par1, par2) + Ejemplo: x->piecewise { x=4 ? 1, ? 0 } + + neq + Nombre: neq + Descripción: no igual. neq(a,b)=a≠b + Parámetros: neq(par1, par2) + Ejemplo: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Nombre: leq + Descripción: menor o igual. leq(a,b)=a≤b + Parámetros: leq(par1, par2) + Ejemplo: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Nombre: geq + Descripción: mayor o igual. geq(a,b)=a≥b + Parámetros: geq(par1, par2) + Ejemplo: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Nombre: implies + Descripción: implicación lógica + Parámetros: implies(par1, par2) + Ejemplo: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Nombre: approx + Descripción: aproximación. approx(a)=a±n + Parámetros: approx(par1, par2) + Ejemplo: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Nombre: abs + Descripción: valor absoluto. abs(n)=|n| + Parámetros: abs(par1) + Ejemplo: x->abs(x) + + floor + Nombre: floor + Descripción: función piso. floor(n)=⌊n⌋ + Parámetros: floor(par1) + Ejemplo: x->floor(x) + + ceiling + Nombre: ceiling + Descripción: función techo. ceil(n)=⌈n⌉ + Parámetros: ceiling(par1) + Ejemplo: x->ceiling(x) + + sin + Nombre: sin + Descripción: función para calcular el seno del ángulo indicado + Parámetros: sin(par1) + Ejemplo: x->sin(x) + + cos + Nombre: cos + Descripción: función para calcular el coseno del ángulo indicado + Parámetros: cos(par1) + Ejemplo: x->cos(x) + + tan + Nombre: tan + Descripción: función para calcular la tangente del ángulo indicado + Parámetros: tan(par1) + Ejemplo: x->tan(x) + + sec + Nombre: sec + Descripción: secante + Parámetros: sec(par1) + Ejemplo: x->sec(x) + + csc + Nombre: csc + Descripción: cosecante + Parámetros: csc(par1) + Ejemplo: x->csc(x) + + cot + Nombre: cot + Descripción: cotangente + Parámetros: cot(par1) + Ejemplo: x->cot(x) + + sinh + Nombre: sinh + Descripción: seno hiperbólico + Parámetros: sinh(par1) + Ejemplo: x->sinh(x) + + cosh + Nombre: cosh + Descripción: coseno hiperbólico + Parámetros: cosh(par1) + Ejemplo: x->cosh(x) + + tanh + Nombre: tanh + Descripción: tangente hiperbólica + Parámetros: tanh(par1) + Ejemplo: x->tanh(x) + + sech + Nombre: sech + Descripción: secante hiperbólica + Parámetros: sech(par1) + Ejemplo: x->sech(x) + + csch + Nombre: csch + Descripción: cosecante hiperbólica + Parámetros: csch(par1) + Ejemplo: x->csch(x) + + coth + Nombre: coth + Descripción: cotangente hiperbólica + Parámetros: coth(par1) + Ejemplo: x->coth(x) + + arcsin + Nombre: arcsin + Descripción: arcoseno + Parámetros: arcsin(par1) + Ejemplo: x->arcsin(x) + + arccos + Nombre: arccos + Descripción: arcocoseno + Parámetros: arccos(par1) + Ejemplo: x->arccos(x) + + arctan + Nombre: arctan + Descripción: arcotangente + Parámetros: arctan(par1) + Ejemplo: x->arctan(x) + + arccot + Nombre: arccot + Descripción: arcocotangente + Parámetros: arccot(par1) + Ejemplo: x->arccot(x) + + arccosh + Nombre: arccosh + Descripción: arcocoseno hiperbólico + Parámetros: arccosh(par1) + Ejemplo: x->arccosh(x) + + arccsc + Nombre: arccsc + Descripción: arcocosecante + Parámetros: arccsc(par1) + Ejemplo: x->arccsc(x) + + arccsch + Nombre: arccsch + Descripción: arcocosecante hiperbólica + Parámetros: arccsch(par1) + Ejemplo: x->arccsch(x) + + arcsec + Nombre: arcsec + Descripción: arcosecante + Parámetros: arcsec(par1) + Ejemplo: x->arcsec(x) + + arcsech + Nombre: arcsech + Descripción: arcosecante hiperbólica + Parámetros: arcsech(par1) + Ejemplo: x->arcsech(x) + + arcsinh + Nombre: arcsinh + Descripción: arcoseno hiperbólico + Parámetros: arcsinh(par1) + Ejemplo: x->arcsinh(x) + + arctanh + Nombre: arctanh + Descripción: arcotangente hiperbólica + Parámetros: arctanh(par1) + Ejemplo: x->arctanh(x) + + exp + Nombre: exp + Descripción: exponente (e^x) + Parámetros: exp(par1) + Ejemplo: x->exp(x) + + ln + Nombre: ln + Descripción: logaritmo con base e + Parámetros: ln(par1) + Ejemplo: x->ln(x) + + log + Nombre: log + Descripción: logaritmo con base 10 + Parámetros: log(par1) + Ejemplo: x->log(x) + + conjugate + Nombre: conjugate + Descripción: Conjugar + Parámetros: conjugate(par1) + Ejemplo: x->conjugate(x*i) + + arg + Nombre: arg + Descripción: Arg + Parámetros: arg(par1) + Ejemplo: x->arg(x*i) + + real + Name: real + Description: Real + Parámetros: real(par1) + Ejemplo: x->real(x*i) + + imaginary + Nombre: imaginary + Descripción: imaginario + Parámetros: imaginary(par1) + Ejemplo: x->imaginary(x*i) + + sum + Nombre: sum + Descripción: suma + Parámetros: sum(par1 : var=desde..hasta) + Ejemplo: x->x*sum(t*t:t=0..3) + + product + Nombre: product + Descripción: producto + Parámetros: product(par1 : var=desde..hasta) + Ejemplo: x->product(t+t:t=1..3) + + diff + Nombre: diff + Descripción: diferenciación + Parámetros: diff(par1 : var) + Ejemplo: x->(diff(x^2:x))(x) + + card + Nombre: card + Descripción: cardinal + Parámetros: card(par1) + Ejemplo: x->card(vector { x, 1, 2 }) + + scalarproduct + Nombre: scalarproduct + Descripción: producto escalar + Parámetros: scalarproduct(... parámetros, ...) + Ejemplo: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Nombre: selector + Descripción: selección del elemento de orden par1 de la lista o vector par2 + Parámetros: selector(par1, par2) + Ejemplo: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Nombre: union + Descripción: une varios elementos del mismo tipo + Parámetros: union(... parámetros, ...) + Ejemplo: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Nombre: forall + Descripción: para todo + Parámetros: forall(par1 : var) + Ejemplo: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Nombre: exists + Descripción: existe + Parámetros: exists(par1 : var) + Ejemplo: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Nombre: map + Descripción: aplica una función a cada elemento de una lista + Parámetros: map(par1, par2) + Ejemplo: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Nombre: filter + Descripción: elimina todos los elementos que no cumplen una condición + Parámetros: filter(par1, par2) + Ejemplo: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transponer + Nombre: transponer + Descripción: transponer + Parámetros: transponer(par1) + Ejemplo: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/es/docs/kalgebra/index.docbook b/po/es/docs/kalgebra/index.docbook new file mode 100644 index 0000000..d45a38d --- /dev/null +++ b/po/es/docs/kalgebra/index.docbook @@ -0,0 +1,941 @@ + + + + MathML"> + + +]> + + + + +Manual de &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+LeticiaMartín Hernández
leticia.martin@gmail.com
Traductor
EloyCuadra
ecuadra@eloihr.net
Traductor
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +2020-12-17 +Aplicaciones 20.12 + + +&kalgebra; es una aplicación que puede sustituir su calculadora gráfica. Posee funciones numéricas, lógicas, simbólicas y de análisis que le permiten calcular expresiones matemáticas en la calculadora y trazar gráficamente el resultado en 2D o 3D. &kalgebra; está arraigada al lenguaje de marcas matemáticas (&MathML;); no obstante, no es necesario saber &MathML; para usar &kalgebra;. + + + +KDE +kdeedu +gráfica +matemáticas +2D +3D +MathML + + +
+ + +Introducción + +&kalgebra; contiene numerosas funciones que permiten al usuario realizar todo tipo de operaciones matemáticas y mostrarlas gráficamente. Originalmente, este programa estaba orientado a &MathML;. En la actualidad lo puede usar cualquier persona con pocos conocimientos matemáticos para resolver problemas sencillos o avanzados. + +Incluye funcionalidades como las siguientes: + + + +Una calculadora para una fácil y rápida evaluación de funciones matemáticas. +Posibilidad de usar guiones para series avanzadas de cálculos. +Posibilidades lingüísticas, como la definición de funciones y la terminación automática. +Funciones de cálculo, como la diferenciación simbólica, cálculo vectorial y manipulación de listas. +Trazado de funciones con cursor activo para encontrar raíces gráficas y otros tipos de análisis. +Trazado en 3D para la visualización útil de funciones en 3D. +Un diccionario de operadores integrado para la rápida referencia de las diversas funciones disponibles. + + +A continuación se muestra una imagen de la aplicación &kalgebra; en acción: + + +Aquí se muestra una captura de la ventana principal de &kalgebra;. + + + + + + Ventana principal de &kalgebra; + + + + +Cuando el usuario comienza una sesión con &kalgebra; se le muestra una única ventana que contiene cuatro pestañas: Calculadora, Gráfica 2D, Gráfica 3D y Diccionario. Dentro de estas pestañas encontrará un campo de entrada donde podrá introducir sus funciones o cálculos, y un campo de visualización que muestra el resultado. + +El usuario puede gestionar la sesión en cualquier momento con las opciones del menú principal Sesión: + + + + +&Ctrl; N SesiónNueva +Abre una nueva ventana de &kalgebra; + + + +&Ctrl;&Shift; F SesiónModo de pantalla completa +Conmuta el modo de pantalla completa para la ventana de &kalgebra;. El modo de pantalla completa también se puede activar o desactivar mediante el botón situado en la parte superior derecha de la ventana de &kalgebra;. + + + +&Ctrl; Q SesiónSalir +Cierra el programa. + + + + + + + +Sintaxis +&kalgebra; usa una sintaxis algebraica intuitiva para introducir las funciones del usuario de forma similar a la que usan la mayor parte de las calculadoras gráficas modernas. Esta sección lista las operaciones fundamentales que proporciona &kalgebra;. El autor de &kalgebra; ha modelado la sintaxis según Maxima y Maple para los usuarios que estén familiarizados con estos programas. + +Para los usuarios interesados en el funcionamiento interno de &kalgebra;, las funciones introducidas por el usuario se convierten a &MathML; en el motor. Un conocimiento rudimentario de las posibilidades proporcionadas por &MathML; le servirá de ayuda para revelar las funcionalidades internas de &kalgebra;. + +Aquí tiene una lista de los operadores disponibles hasta el momento: + ++ - * / : suma, resta, multiplicación y división. +^, ** : potencia, puede usar cualquiera de las dos formas. Asimismo, puede usar los caracteres unicode ². Las potencias son también una forma de expresar raíces, lo que puede hacer de la siguiente forma: a**(1/b) +-> : lambda. Es el modo de especificar una o más variables libres que estarán ligadas a una función. Por ejemplo, en la expresión length:=(x,y)->(x*x+y*y)^0.5, el operador lambda se usa para indicar que x e y estarán ligadas cuando se usa la función «length». +x=a..b : se usa cuando necesitamos delimitar un intervalo (variable limitada + límite superior + límite inferior). Esto significa que x va de a a b. +() : se usa para especificar una prioridad mayor. +abc(parámetros) : funciones. Cuando el analizador sintáctico encuentra una función, comprueba si abc es un operador. Si lo es, lo trata como un operador; si no lo es, lo trata como una función de usuario. +:= : definición. Se usa para definir el valor de una variable. Puede escribir cosas como x:=3, x:=y, donde y puede estar definido o no, o como perímetro:=r->2*pi*r. +? : definición de condiciones en funciones definidas a trozos («piecewise»). Permite definir operaciones condicionales en &kalgebra;. Dicho de otro modo, es otra forma de especificar una condición «if, elseif, else». Cuando introducimos la condición antes del símbolo ?, se utilizará dicha condición solo si es verdadera; en cambio, si encuentra un símbolo ? sin ninguna condición, se tendrá en cuenta el último caso. Por ejemplo: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ } : contenedor &MathML;. Puede usarse para definir un contenedor. Es muy útil a la hora de trabajar con funciones definidas a trozos. += > >= < <= : operadores relacionales que indican «igual», «mayor», «mayor o igual», «menor» o «menor o igual», respectivamente. + + +Ahora puede preguntarme por qué debería el usuario preocuparse por &MathML;. La respuesta es fácil. Con esto podremos realizar operaciones con funciones como cos(), sin() (o cualquier otra función trigonométrica), sum() o product(). No importa el tipo de función que sea. Podremos usar plus(), times() y cualquier cosa a la que le corresponda un operador. También se han implementado funciones lógicas, por lo que podremos hacer cosas como or(1,0,0,0,0). + + + + +Uso de la calculadora +La calculadora de &kalgebra; es útil como una calculadora a lo grande. El usuario puede introducir expresiones a evaluar en los modos Calcular y Evaluar, según la selección del menú Calculadora. +En el modo de evaluación, &kalgebra; simplifica la expresión incluso si se encuentra una variable indefinida. Cuando está en modo de cálculo, &kalgebra; calcula todo y si encuentra una variable indefinida muestra un error. +Además de mostrar las ecuaciones introducidas por el usuario y el resultado en la pantalla de la calculadora, también se muestran todas las variables declaradas en un cuadro persistente en la parte de la derecha. Si hace doble clic sobre una variable se mostrará un diálogo que le permitirá modificar su valor (solo es un modo de engañar al registro). + +La variable «ans» es especial; cada vez que introduzca una expresión, la variable «ans» cambiará su valor al del último resultado. + +A continuación se muestran funciones de ejemplo que se pueden introducir en el campo de entrada de la ventana de la calculadora: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +A continuación se muestra una captura de la ventana de la calculadora tras introducir las expresiones de ejemplo anteriores: + +Captura de la ventana de la calculadora de &kalgebra; con expresiones de ejemplo + + + + + + Ventana de la calculadora de &kalgebra; + + + + + +El usuario puede controlar la ejecución de una serie de cálculos usando las opciones del menú Calculadora: + + + + +&Ctrl; L CalculadoraCargar guion... +Ejecuta las instrucciones de un archivo de forma secuencial. Es útil si desea definir bibliotecas o reanudar un trabajo anterior. + + + +CalculadoraGuiones recientes +Muestra un submenú que le permitirá escoger los guiones usados recientemente. + + + +&Ctrl; G CalculadoraGuardar guion... +Guarda las instrucciones que ha introducido desde que comenzó la sesión, con lo que podrá reutilizarlas. Genera un archivo de texto que podrá corregir usando cualquier editor de texto, por ejemplo &kate;. + + + +&Ctrl; S CalculadoraExportar registro... +Guarda el registro con todos los resultados en un archivo &HTML; que podrá imprimir o publicar. + + + +F3 CalculadoraInsertar ans... +Insertar la variable «ans» y facilitar la reutilización de valores anteriores. + + + +CalculadoraCalcular +Un botón de opción para definir el Modo de ejecución a cálculo. + + + +CalculadoraEvaluar +Un botón de opción para definir el Modo de ejecución a evaluación. + + + + + + +Gráficas 2D +Para añadir un gráfica 2D en &kalgebra;, seleccione la pestaña Gráfica 2D y pulse la pestaña Añadir, que le permitirá añadir una nueva función. A continuación tendrá dirigirse al cuadro de texto de entrada, donde podrá introducir la función. + + +Sintaxis +Si quiere usar una función f(x) típica, no es necesario que la especifique; en cambio, si quiere usar una función f(y) o una función polar, tendrá que añadir y-> y q-> como variables limitadas. + +Ejemplos: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Después de haber introducido la función, pulse el botón Aceptar para dibujar la gráfica en la ventana principal. + + + + +Características +Es posible dibujar varias gráficas en la misma vista. Para esto use simplemente el botón Añadir cuando se encuentre en el modo Lista. Puede ajustar el color de cada gráfica. + +Puede ampliar la vista y desplazarla con el ratón. Con la rueda del ratón podrá ampliar o reducir la vista. Puede también seleccionar un área con el &LMB;, y el área se ampliará. Desplace la vista con las teclas de dirección del teclado. + + + La ventana de gráficos 2D se puede definir de manera explícita mediante la pestaña Ventana en una pestaña Gráfico 2D. + + +En la pestaña Lista de la parte inferior derecha puede abrir una pestaña de Edición para editar o eliminar una función mediante doble clic y poner o quitar la marca de la casilla de verificación situada junto al nombre de la función para mostrarla u ocultarla. +En el menú Gráfica 2D dispone de las siguientes opciones: + +Cuadrícula: Mostrar u ocultar la cuadrícula. +Mantener las proporciones: Mantener las proporciones mientras amplía o reduce la vista. +Guardar: Guardar (&Ctrl; S) la gráfica como un archivo de imagen. +Ampliar/reducir: Ampliar (&Ctrl; +) y reducir (&Ctrl; -). +Tamaño real: Reiniciar la vista a la ampliación original. +Resolución: Seguida por una lista de botones de opciones para seleccionar una resolución para los gráficos. + + +A continuación se muestra una captura de pantalla de un usuario cuyo cursor está en la raíz del extremo derecho de la función, sen(1/x). El usuario ha utilizado una resolución muy alta para mostrar el grafo (ya que oscila al frecuencias muy altas cerca del origen). También dispone de la funcionalidad de cursor vivo, mediante la cual se muestran los valores x e y en la esquina inferior izquierda de la pantalla cada vez que mueva el cursor a un nuevo punto. Se traza una «línea tangente» viva sobre la función en la posición del cursor vivo. + + +Aquí se muestra una captura de la ventana gráfica 2D de &kalgebra; + + + + + + Ventana gráfica 2D de &kalgebra; + + + + + + + + + + +Gráficas 3D + +Para dibujar una grafica 3D con &kalgebra;, seleccione la pestaña Gráfica 3D, donde verá un campo de entrada en la parte inferior que le permitirá introducir la función. Aún no podrá definir Z. Por ahora, &kalgebra; solo admite gráficas 3D que dependen de x e y, como (x,y)->x*y, donde z=x*y. + +Ejemplos: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +Puede ampliar o reducir la vista con el ratón. Use la rueda del ratón para ampliarla o reducirla. Si mantiene pulsado el &LMB; y se desplaza con el ratón, la gráfica rotará. + +Las teclas de las flechas &Left; y &Right; rotan el grafo alrededor del eje z. Las teclas de las flechas &Up; y &Down; rotan la vista alrededor del eje horizontal. Pulse W para ampliar el gráfico y S para reducirlo. + +En el menú Gráfica 3D dispone de las siguientes opciones: + + +Guardar: Guardar (&Ctrl; S) la gráfica como un archivo de imagen o un documento permitido. +Reiniciar la vista: Reiniciar la vista a la ampliación original en el menú Gráfico 3D. +Puede dibujar los gráficos con los estilos de Puntos, Líneas o Sólido en el menú Gráfico 3D. + + +A continuación se muestra una captura de la función denominada «sombrero». Esta gráfica particular se muestra usando el estilo 3D. + + +Aquí se muestra una captura de la ventana gráfica 3D de &kalgebra; + + + + + + Ventana gráfica 3D de &kalgebra; + + + + + + + +Diccionario + +El diccionario proporciona una lista de todas las funciones integradas en &kalgebra;. Se puede usar para encontrar la definición de una operación y sus parámetros de entrada. Es un lugar útil para encontrar las muchas funcionalidades que posee &kalgebra;. + + A continuación se muestra una captura de la ventana de la búsqueda de la función coseno en el diccionario de &kalgebra;. + + +Aquí se muestra una captura de la ventana del diccionario de &kalgebra; + + + + + + Ventana del diccionario de &kalgebra; + + + + + + + +&commands; + + +Créditos y licencia + + +Derechos de autor del programa 2005-2009 &Aleix.Pol;. + + + +Derechos de autor de la documentación 2007 &Aleix.Pol; &Aleix.Pol.mail;. + +Traducido por Leticia Martín Hernández leticia.martin@gmail.com y Eloy Cuadra ecuadra@eloihr.net. &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/es/docs/kalgebra/kalgebra-main-window.png b/po/es/docs/kalgebra/kalgebra-main-window.png new file mode 100644 index 0000000000000000000000000000000000000000..40857a707d4413cd589ecf1435847818beedac66 GIT binary patch literal 30407 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 UTCnJA=$ix-7nTt!7tr(lU%XN$B>(^b literal 0 HcmV?d00001 diff --git a/po/es/kalgebra.po b/po/es/kalgebra.po new file mode 100644 index 0000000..34d648b --- /dev/null +++ b/po/es/kalgebra.po @@ -0,0 +1,485 @@ +# Translation of kalgebra to Spanish +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2007, 2008 Santiago Fernández Sancho +# SPDX-FileCopyrightText: 2007, 2009 Enrique Matias Sanchez (Quique) +# SPDX-FileCopyrightText: 2008 Jaime Robles +# SPDX-FileCopyrightText: 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2022 Eloy Cuadra +# SPDX-FileCopyrightText: 2013 Rocío Gallego +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-13 00:49+0200\n" +"Last-Translator: Eloy Cuadra \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 22.04.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opciones: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Pegar «%1» en la entrada" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Pegar en la entrada" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Error: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importado: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Error: no se puede cargar %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Información" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Añadir/editar una función" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Vista previa" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Desde:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Hasta:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opciones" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Aceptar" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Eliminar" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Las opciones que ha especificado no son correctas" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "El límite inferior no puede ser mayor que el límite superior" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Gráfica 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Gráfica 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sesión" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calculadora" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "C&alculadora" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Cargar un guion..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Guiones recientes" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Guardar el guion..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exportar registro..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Insertar ans..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Modo de ejecución" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calcular" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Evaluar" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funciones" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Añadir" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Área de visualización" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Gráfica &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Gráfica 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "Re&jilla" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Mantener las proporciones" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolución" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Pobre" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Buena" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Muy buena" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Gráfica &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Gráfica 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Reiniciar la vista" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Puntos" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Líneas" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Sólido" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operaciones" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Diccionario" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Buscar:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Edición" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Elija un guion" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Guion (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Archivo HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Errores: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Seleccione dónde situar la gráfica dibujada" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Archivo de imagen (*.png);;Archivo SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Preparado" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Añadir variable" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Introduzca un nombre para la nueva variable" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Una calculadora portátil" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Eloy Cuadra" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "ecuadra@eloihr.net" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Añadir/editar una variable" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Eliminar variable" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Editar el valor de «%1»" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "no disponible" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "INCORRECTO" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Izquierda:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Arriba:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Anchura:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Altura:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Aplicar" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "Archivo PNG (*.png);;Documento PDF (*.pdf);;Documento X3D (*.x3d);;" +#~ "Documento STL (*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "C&onsola" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Consola" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Desarrollo de la funcionalidad para dibujar curvas implícitas. Mejoras en " +#~ "las funciones de trazado." + +#~ msgid "Formula" +#~ msgstr "Fórmula" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Error: tipo de función incorrecto" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Hecho: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Error: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Borrar" diff --git a/po/es/kalgebramobile.po b/po/es/kalgebramobile.po new file mode 100644 index 0000000..677dfb4 --- /dev/null +++ b/po/es/kalgebramobile.po @@ -0,0 +1,328 @@ +# Spanish translations for kalgebramobile.po package. +# Copyright (C) 2018 This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Automatically generated, 2018. +# SPDX-FileCopyrightText: 2018, 2019, 2020, 2021, 2022, 2023 Eloy Cuadra +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-05 02:05+0100\n" +"Last-Translator: Eloy Cuadra \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 23.08.3\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calculadora" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Cargar guion" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Guion (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Guardar guion" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exportar registro" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Evaluar" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calcular" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Borrar registro" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Gráfico en 2D" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Gráfico en 3D" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copiar «%1»" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Vaciar el historial de la consola" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Añadir" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Borrar todo" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Cerrar diálogo" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Eliminar gráfico" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Ningún gráfico disponible" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Expresión a calcular..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Diccionario" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nombre:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Gráfico en 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Gráfico en 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tablas de valores" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Diccionario" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Acerca de KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Gráfico en 2D" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Guardar" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Ver la cuadrícula" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Reiniciar el área visible" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Gráfico en 3D" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Resultado" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tablas de valores" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Errores: el paso no puede ser 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Errores: el inicio y el final son idénticos" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Errors: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Ejecutar" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Entrada" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Desde:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Hasta:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Paso" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Ejecutar" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Calculadora portable" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Responsable" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Eloy Cuadra" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "ecuadra@eloihr.net" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Una sencilla calculadora científica" + +#~ msgid "Results:" +#~ msgstr "Resultado:" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "La encantadora comunidad de KDE y de KDE Edu le proporcionan KAlgebra desde un " +#~ "entorno de Software Libre." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "Si desea saber más sobre KAlgebra, puede encontrar más información en el " +#~ "sitio " +#~ "oficial y en la wiki de " +#~ "sus usuarios.
Si tiene algún problema con este software, " +#~ "díganoslo mediante nuestro sistema de " +#~ "seguimiento de errores." diff --git a/po/et/docs/kalgebra/commands.docbook b/po/et/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..ceaabe8 --- /dev/null +++ b/po/et/docs/kalgebra/commands.docbook @@ -0,0 +1,1478 @@ + +KAlgebra toetatud käsud + plus + Nimi: plus + Kirjeldus: liitmine + Parameetrid: plus(... parameetrid, ...) + Näide: x->x+2 + + times + Nimi: times + Kirjeldus: korrutamine + Parameetrid: times(... parameetrid, ...) + Näide: x->x*2 + + minus + Nimi: minus + Kirjeldus: lahutamine. Arvab kõik väärtused esimesest väärtusest maha. + Parameetrid: minus(... parameetrid, ...) + Näide: x->x-2 + + divide + Nimi: divide + Kirjeldus: jagamine + Parameetrid: divide(par1, par2) + Näide: x->x/2 + + quotient + Nimi: quotient + Kirjeldus: jagatis + Parameetrid: quotient(par1, par2) + Näide: x->quotient(x, 2) + + power + Nimi: power + Kirjeldus: astendamine + Parameetrid: power(par1, par2) + Näide: x->x^2 + + root + Nimi: root + Kirjeldus: juurimine + Parameetrid: root(par1, par2) + Näide: x->root(x, 2) + + factorial + Nimi: factorial + Kirjeldus: faktoriaal. factorial(n)=n! + Parameetrid: factorial(par1) + Näide: x->factorial(x) + + and + Nimi: and + Kirjeldus: loogiline JA + Parameetrid: and(... parameetrid, ...) + Näide: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Nimi: or + Kirjeldus: loogiline VÕI + Parameetrid: or(... parameetrid, ...) + Näide: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Nimi: xor + Kirjeldus: loogiline välistav VÕI + Parameetrid: xor(... parameetrid, ...) + Näide: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Nimi: not + Kirjeldus: loogiline EI + Parameetrid: not(par1) + Näide: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Nimi: gcd + Kirjeldus: suurim ühistegur + Parameetrid: gcd(... parameetrid, ...) + Näide: x->gcd(x, 3) + + lcm + Nimi: lcm + Kirjeldus: vähim ühiskordne + Parameetrid: lcm(... parameetrid, ...) + Näide: x->lcm(x, 4) + + rem + Nimi: rem + Kirjeldus: jääk + Parameetrid: rem(par1, par2) + Näide: x->rem(x, 5) + + factorof + Nimi: factorof + Kirjeldus: tegur + Parameetrid: factorof(par1, par2) + Näide: x->factorof(x, 3) + + max + Nimi: max + Kirjeldus: maksimum + Parameetrid: max(... parameetrid, ...) + Näide: x->max(x, 4) + + min + Nimi: min + Kirjeldus: miinimum + Parameetrid: min(... parameetrid, ...) + Näide: x->min(x, 4) + + lt + Nimi: lt + Kirjeldus: väiksem kui. lt(a,b)=a<b + Parameetrid: lt(par1, par2) + Näide: x->piecewise { x<4 ? 1, ? 0 } + + gt + Nimi: gt + Kirjeldus: suurem kui. gt(a,b)=a>b + Parameetrid: gt(par1, par2) + Näide: x->piecewise { x>4 ? 1, ? 0 } + + eq + Nimi: eq + Kirjeldus: võrdub. eq(a,b) = a=b + Parameetrid: eq(par1, par2) + Näide: x->piecewise { x=4 ? 1, ? 0 } + + neq + Nimi: neq + Kirjeldus: ei võrdu. neq(a,b)=a≠b + Parameetrid: neq(par1, par2) + Näide: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Nimi: leq + Kirjeldus: väiksem kui või võrdub. leq(a,b)=a≤b + Parameetrid: leq(par1, par2) + Näide: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Nimi: geq + Kirjeldus: suurem kui või võrdub. geq(a,b)=a≥b + Parameetrid: geq(par1, par2) + Näide: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Nimi: implies + Kirjeldus: loogiline implikatsioon + Parameetrid: implies(par1, par2) + Näide: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Nimi: approx + Kirjeldus: lähendus. approx(a)=a±n + Parameetrid: approx(par1, par2) + Näide: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Nimi: abs + Kirjeldus: absoluutväärtus. abs(n)=|n| + Parameetrid: abs(par1) + Näide: x->abs(x) + + floor + Nimi: floor + Kirjeldus: alumine piirväärtus. floor(n)=⌊n⌋ + Parameetrid: floor(par1) + Näide: x->floor(x) + + ceiling + Nimi: ceiling + Kirjeldus: ülemine piirväärtus. ceil(n)=⌈n⌉ + Parameetrid: ceiling(par1) + Näide: x->ceiling(x) + + sin + Nimi: sin + Kirjeldus: antud nurga siinuse arvutamise funktsioon + Parameetrid: sin(par1) + Näide: x->sin(x) + + cos + Nimi: cos + Kirjeldus: antud nurga koosinuse arvutamise funktsioon + Parameetrid: cos(par1) + Näide: x->cos(x) + + tan + Nimi: tan + Kirjeldus: antud nurga tangensi arvutamise funktsioon + Parameetrid: tan(par1) + Näide: x->tan(x) + + sec + Nimi: sec + Kirjeldus: seekans + Parameetrid: sec(par1) + Näide: x->sec(x) + + csc + Nimi: csc + Kirjeldus: koosekans + Parameetrid: csc(par1) + Näide: x->csc(x) + + cot + Nimi: cot + Kirjeldus: kootangens + Parameetrid: cot(par1) + Näide: x->cot(x) + + sinh + Nimi: sinh + Kirjeldus: hüperboolne siinus + Parameetrid: sinh(par1) + Näide: x->sinh(x) + + cosh + Nimi: cosh + Kirjeldus: hüperboolne koosinus + Parameetrid: cosh(par1) + Näide: x->cosh(x) + + tanh + Nimi: tanh + Kirjeldus: hüperboolne tangens + Parameetrid: tanh(par1) + Näide: x->tanh(x) + + sech + Nimi: sech + Kirjeldus: hüperboolne seekans + Parameetrid: sech(par1) + Näide: x->sech(x) + + csch + Nimi: csch + Kirjeldus: hüperboolne koosekans + Parameetrid: csch(par1) + Näide: x->csch(x) + + coth + Nimi: coth + Kirjeldus: hüperboolne kootangens + Parameetrid: coth(par1) + Näide: x->coth(x) + + arcsin + Nimi: arcsin + Kirjeldus: arkussiinus + Parameetrid: arcsin(par1) + Näide: x->arcsin(x) + + arccos + Nimi: arccos + Kirjeldus: arkuskoosinus + Parameetrid: arccos(par1) + Näide: x->arccos(x) + + arctan + Nimi: arctan + Kirjeldus: arkustangens + Parameetrid: arctan(par1) + Näide: x->arctan(x) + + arccot + Nimi: arccot + Kirjeldus: arkuskootangens + Parameetrid: arccot(par1) + Näide: x->arccot(x) + + arccosh + Nimi: arccosh + Kirjeldus: hüperboolne arkuskoosinus + Parameetrid: arccosh(par1) + Näide: x->arccosh(x) + + arccsc + Nimi: arccsc + Kirjeldus: arkuskoosekans + Parameetrid: arccsc(par1) + Näide: x->arccsc(x) + + arccsch + Nimi: arccsch + Kirjeldus: hüperboolne arkuskoosekans + Parameetrid: arccsch(par1) + Näide: x->arccsch(x) + + arcsec + Nimi: arcsec + Kirjeldus: arkusseekans + Parameetrid: arcsec(par1) + Näide: x->arcsec(x) + + arcsech + Nimi: arcsech + Kirjeldus: hüperboolne arkusseekans + Parameetrid: arcsech(par1) + Näide: x->arcsech(x) + + arcsinh + Nimi: arcsinh + Kirjeldus: hüperboolne arkussiinus + Parameetrid: arcsinh(par1) + Näide: x->arcsinh(x) + + arctanh + Nimi: arctanh + Kirjeldus: hüperboolne arkustangens + Parameetrid: arctanh(par1) + Näide: x->arctanh(x) + + exp + Nimi: exp + Kirjeldus: astendaja (e^x) + Parameetrid: exp(par1) + Näide: x->exp(x) + + ln + Nimi: ln + Kirjeldus: naturaallogaritm + Parameetrid: ln(par1) + Näide: x->ln(x) + + log + Nimi: log + Kirjeldus: kümnendlogaritm + Parameetrid: log(par1) + Näide: x->log(x) + + sum + Nimi: sum + Kirjeldus: summa + Parameetrid: sum(par1 : muutuja=alates..kuni) + Näide: x->x*sum(t*t:t=0..3) + + product + Nimi: product + Kirjeldus: korrutis + Parameetrid: product(par1 : muutuja=alates..kuni) + Näide: x->product(t+t:t=1..3) + + diff + Nimi: diff + Kirjeldus: diferents + Parameetrid: diff(par1 : muutuja) + Näide: x->(diff(x^2:x))(x) + + card + Nimi: card + Kirjeldus: kardinaalarv + Parameetrid: card(par1) + Näide: x->card(vector { x, 1, 2 }) + + scalarproduct + Nimi: scalarproduct + Kirjeldus: skalaarkorrutis + Parameetrid: scalarproduct(... parameetrid, ...) + Näide: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Nimi: selector + Kirjeldus: par1-nda elemendi valimine par2 loendist või vektorist + Parameetrid: selector(par1, par2) + Näide: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Nimi: union + Kirjeldus: mitme samatüübiline elemendi ühendamine + Parameetrid: union(... parameetrid, ...) + Näide: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Nimi: forall + Kirjeldus: kõigi kohta + Parameetrid: forall(par1 : muutuja) + Näide: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Nimi: exists + Kirjeldus: on olemas + Parameetrid: exists(par1 : muutuja) + Näide: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Nimi: map + Kirjeldus: funktsiooni rakendamine loendi kõigile elementidele + Parameetrid: map(par1, par2) + Näide: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Nimi: filter + Kirjeldus: kõigi elementide eemaldamine, mis ei vasta tingimusele + Parameetrid: filter(par1, par2) + Näide: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Nimi: transpose + Kirjeldus: transponeerimine + Parameetrid: transpose(par1) + Näide: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/et/docs/kalgebra/index.docbook b/po/et/docs/kalgebra/index.docbook new file mode 100644 index 0000000..71ad4f0 --- /dev/null +++ b/po/et/docs/kalgebra/index.docbook @@ -0,0 +1,729 @@ + + + + + + + + +]> + + + + +&kalgebra; käsiraamat + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+MarekLaane
bald@smail.ee
Tõlge eesti keelde
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +2013-06-27 +0.11 (&kde; 4.11) + + +&kalgebra; on rakendus, mis võib asendada su senist graafikalkulaatorit. Sel on arvulisi, loogilisi, sümbolilisi ja analüüsiomadusi, mis võimaldavad arvutada matemaatilisi avaldisi konsoolis ja lasta tulemusi kujutada graafiliselt nii tasapinnaliselt (2D) kui ka ruumiliselt (3D). &kalgebra; juured on matemaatilises märkekeeles (MathML), kuid &kalgebra; kasutamiseks ei ole MathML-i tundmine sugugi vajalik. + + + +KDE +kdeedu +diagramm +matemaatika +2D +3D +mathML + + +
+ + +Sissejuhatus + +&kalgebra;l on arvukalt omadusi, mis lubavad kasutajal ette võtta kõikvõimalikke matemaatilisi tehteid ja neid graafiliselt kujutada. Algselt oli rakendus orienteeritud MathMl-i kasutamisele. Praegu aga võivad ka väheste matemaatiliste teadmistega inimesed selle abil lahendada nii lihtsamaid kui ka päris keerulisi probleeme. + +Kasutada saab selliseid võimalusi: + + + +Konsool matemaatiliste funktsioonide kiireks ja lihtsaks hindamiseks +Skriptimisvõimalused pikemateks arvutusteks +Keelevõimalused, sealhulgas funktsiooni definitsiooni ja süntaksi automaatne lõpetamine +Arvutusvõimalused, sealhulgas algebra, vektorarvutus ja loendite käsitlemine +Funktsioonide joonistamine, sealhulgas mittelineaarsetele võrranditele ja muudele +Ruumiliste graafide loomine 3D funktsioonide kuvamiseks +Sisseehitatud operandide sõnaraamat paljude funktsioonide kohta kiire abi leidmiseks + + +Allpool on pilt &kalgebra;st töös: + + +&kalgebra; peaaken + + + + + + &kalgebra; peaaken + + + + +&kalgebra; seanssi käivitades näeb üht akent mitmest kaardiga: Konsool, 2D graafik, 3D graafik ja Sõnaraamat. Kõigil kaartidel leiab sisestusvälja, kus saab sisestada funktsioone või arvutusi, ning kuvavälja, kus näeb tulemusi. + +Kasutaja saab alati võtta midagi ette oma seansiga menüü Seanss käskude vahendusel: + + + + +&Ctrl; N SeanssUus +Avab uue &kalgebra; akna. + + + +&Ctrl;&Shift; F SeanssTäisekraanirežiim +Võimaldab lülitada &kalgebra; akna täisekraanirežiimi. Samuti saab sellesse režiimi lülituda ja sellest väljuda nupu abil, mille leiab &kalgebra; akna ülemisest parempoolsest osast. + + + +&Ctrl; Q SeanssVälju +Lõpetab rakenduse töö. + + + + + + + +Süntaks +&kalgebra; kasutab kasutaja funktsioonide sisestamiseks intuitiivset algebralist süntaksi, mis sarnaneb enamikus tänapäeva graafikalkulaatorites kasutusel oleva süntaksiga. Allpool loetletakse tähtsaimad &kalgebra;s saadaolevad operandid. &kalgebra; autor võttis süntaksi loomisel eeskuju programmidest Maxima ja maple, pidades silmas kasutajaid, kes võivad olla nendega juba tuttavad. + +Kui kedagi peaks huvitama &kalgebra; siseelu, siis kasutaja sisestatud avaldised teisendab taustaprogramm MathML-i. See tähendab, et &kalgebra; sisemiste omaduste korralikuks mõistmiseks on vajalik vähemalt pinnapealnegi arusaam MathML-o toetatud võimalustest. + +Nimekiri praegu kasutada olevatest tehetest: + ++ - * / : liitmine, lahutamine, korrutamine ja jagamine. +^, **: astendamine, kasutada võib mõlemat viisi. Samuti võib kasutada Unicode ² märki. Astmemärkide abil saab ka juurida, näiteks nii: a**(1/b)a +-> : lambda. Sellega saab määrata ühe või rohkem vabu muutujaid, mis on funktsioonis piiratud. Näiteks avaldises length:=(x,y)->(x*x+y*y)^0.5 kasutatakse lambdaoperandi märkimaks, et x ja y on piiratud, kui kasutatakse funktsioon length. +x=a..b : seda saab kasutada vajaduse korral määrata kindlaks vahemik (piiratud muutuja+ülemraja+alamraja). See tähendab, et x on vahemikud a kuni b. +() : sellega saab määrata kõrgema prioriteedi. +abc(parameetrid) : funktsioonid. Kui parser leiab funktsiooni, kontrollib ta, kas abc on operaator. Kui jah, siis nii seda käsitletaksegi, kui ei, siis võetakse seda kui kasutaja funktsiooni. +:= : definitsioon. Nii saab defineerida muutuja väärtuse. Saab teha selliseid asju nagu x:=3, x:=y, kus y on defineeritud või defineerimata, või ümbermõõt:=r->2*pi*r. +? : tükiti (piecewise) tingimuse definitsioon. Sel moel saab &kalgebra;s defineerida tingimuslikke tehteid. Või kui teisiti öelda, siis saab nii määrata if, elseif ja else tingimust. Kui lisame tingimuse '?' ette, kasutatakse seda tingimust ainult siis, kui see on tõene, kui leitakse '?' ilma tingimuseta, lisatakse see viimasena. Näide: kui on tõene kui a iga asukohas Näide: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ } : MathML konteiner. Nii saab defineerida konteineri. Peamiselt on sellest kasu tükiti tehete puhul. += > >= < <= : väärtuste võrdlejad vastavalt võrdse, suurema, suurema või võrdse, väiksema ning väiksema või võrdse jaoks + + +Võib tekkida küsimus, milleks peaks üldse MathML-i peale mõtlema? Vastus on lihtne: nii saab kasutada selliseid fuktsioone nagu cos(), sin() või muid trigonomeetrilisi funktsioone, sum() or product(). Pole vahet, mis tüüpi see on. Kasutada saab plus(), times() ja kõike muud, millel on oma operaator. Võimalikud on ka tõeväärtustega funktsioonid, nii et kasutada saab ka sellist asja nagu or(1,0,0,0,0). + + + + +Konsooli kasutamine +&kalgebra; konsool on tõeliselt võimas kalkulaator. Kasutaja saab avaldisi hindamiseks sisestada arvutamise või hindamise režiimis sõltuvalt sellest, milline režiim on valitud menüüs Konsool. +Hindamisrežiimis lihtsustab &kalgebra; avaldist, isegi kui selles esineb defineerimata muutuja. Arvutamisrežiimis arvutab &kalgebra; kõik välja ja kui leiab defineerimata muutuja, annab teada veast. +Lisaks kasutaja sisestatud võrrandite ja tulemuste kuvamisele konsoolis näeb paremal asuvas paneelis kõiki deklareeritud muutujaid. Topeltklõpsuga mõnele muutujale ilmub dialoog, kus saab muuta nende väärtust. + +Muutuja "ans" on eriline: iga kord, kui see avaldisse sisestada, antakse sellele viimase tulemuse väärtus. + +Järgnevalt mõned näitefunktsioonid, mida saab sisestada konsooliakna sisendiväljale: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +Nüüd ka pilt konsooliaknast pärast ülal toodud näidisavaldiste sisestamist: + +&kalgebra; konsooliaken näidisavaldistega + + + + + + &kalgebra; konsooliaken + + + + + +Kasutaja saab arvutuste jada täitmist juhtida menüü Konsool käskudega: + + + + +&Ctrl; L KonsoolLaadi skript +Käivitab järgemööda failis antud juhised. Sellest on abi, kui on vaja defineerida teeke või taastada varasemat tegevust. + + + +&Ctrl; G KonsoolSalvesta skript +Salvestab juhised, mida oled alates seansi algusest sisestanud, et neid saaks uuesti kasutada. Loob tekstifailid, mida saab vajaduse korral hõlpsasti parandada suvalises tekstiredaktoris, näiteks Kates. + + + +&Ctrl; S KonsoolEkspordi logi +Salvestab logi koos kõigi tulemustega &HTML;-failina, mida saab trükkida või avaldada. + + + + + + + +2D graafikud +Uue 2D graafiku lisamiseks &kalgebra;s tuleb valida kaart 2D graafik ja klõpsata uue funktsiooni lisamiseks Lisa. Seejärel saab nähtavale ilmunud sisestuskasti kirjutada vajaliku funktsiooni. + + +Süntaks +Kui soovid kasutada tüüpilist f(x) funktsiooni, ei ole seda tingimata vaja määrata, aga kui soovid f(y) või polaarfunktsiooni, peab lisama tõkestatud muutujatena y-> ja q->. + +Näited: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Kui oled funktsiooni sisestanud, klõpsa OK ja näedki graafikut peaaknas. + + + + +Võimalused +Samasse vaatesse saab paigutada mitu graafikut. Kasuta lihtsalt nuppu Lisa. Igale graafikule võib anda oma värvi. + +Vaadet saab hiirega suurendada ja liigutada. Hiirerattaga saab suurendada ja vähendada. Samuti võib hiire vasaku nupuga valida piirkonnaga, mida siis näidatakse suurendatult. Vaadet saab liigutada nooleklahvidega. + + + 2D graafide vaateava saab otseselt määrata kaardi 2D graaf alamkaardil Vaateava. + + +Kaardil Nimekiri saab avada kaardi Redigeerimine funktsiooni muutmiseks või eemaldamiseks topeltklõpsuga. Samuti saab seal lasta funktsiooni nime näidata või see peita, kui märkida kastike või eemaldada märge kastikesest funktsiooni nime ees. +Menüüs 2D graafik leiab järgmised valikud: + +Alusvõrgu näitamine või peitmine +Proportsioonide säilitamine suurendamisel/vähendamisel +Suurendamine (&Ctrl;+) ja vähendamine (&Ctrl;-) +Graafiku salvestamine pildina (&Ctrl;S) +Vaate algse suurenduse lähtestamine +Graafiku eraldusvõime valimine + + +Allpool on näide kasutajast, kelle kursor asub paremas servas, otse funktsiooni sin(1/x) peal. Kasutaja on tarvitanud graafi loomisel väga suurt lahutust (ostsillatsioon toimub kõrgetel sagedustel allika lähedal). Kasutada saab ka reaalajas kursori võimalust, mis tähendab, et kui viid kursori mõne punkti peale, näed ekraani alumises vasakus nurgas X- ja Y-väärtusi. Reaalajas kursori asukohta on funktsioonile tõmmatud "puutuja". + + +&kalgebra; 2D graafiku aken + + + + + + &kalgebra; 2D graafiku aken + + + + + + + + + + +3D graafikud + +3D graafiku loomiseks &kalgebra;s tuleb valida kaart 3D graafik, mille allosas on sisestusväli, kuhu saab kirjutada funktsiooni. Z ei ole veel defineeritav, praegu toetab &kalgebra; ainult 3D graafikuid, mis sõltuvad ainult x-ist ja y-st, näiteks (x,y)->x*y, kus z=x*y. + +Näited: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +Vaadet saab hiirega suurendada ja vähendada ning liigutada. Hiirerattaga saab suurendada ja vähendada. Kui hoida all &HPN; ja liigutada hiirt, saab graafikut pöörata. + + Nool vasakule ja paremale pööravad graafikut Z-telje ümber, nool üles ja alla ümber vaate rõhttelje. Joonise suurendamiseks vajuta klahvi W ja vähendamiseks klahvi S. + +Menüüs 3D graafik leiab järgmised valikud: + + +Graafiku salvestamine pildina (&Ctrl;S) +Vaate algse suurenduse lähtestamine +Graafiku esitamine punktide, joonte või ühtlasena + + +Allpool on niinimetatud sombreerofunktsiooni näide. Siinsel graafil on kasutatud ruumiliselt jooni. + + +&kalgebra; 3D graafiku aken + + + + + + &kalgebra; 3D graafiku aken + + + + + + + +Sõnaraamat + +Sõnaraamat sisaldab kõiki &kalgebra;s saadaolevaid funktsioone. Väga mõistlik on sõnaraamatus üle kontrollida, milleks mõnda tehet kasutada saab ja kui palju parameetreid funktsioonid vajavad. Samuti saab siin tõeliselt aimu, milleks on &kalgebra; võimeline. + + Allpool on näide &kalgebra; sõnaraamatust, kus on otsitud teavet koosinuse kohta. + + +&kalgebra; sõnaraamatu aken + + + + + + &kalgebra; sõnaraamatu aken + + + + + + + +&commands; + + +Autorid ja litsents + + +Rakenduse autoriõigus 2005-2009: &Aleix.Pol; + + + +Dokumentatsiooni autoriõigus 2007: &Aleix.Pol; &Aleix.Pol.mail; + +Tõlge eesti keelde: Marek Laane bald@smail.ee +&underFDL; &underGPL; + + + +Paigaldamine + + +&kalgebra; hankimine +&install.intro.documentation; + + +Kompileerimine ja paigaldamine +&install.compile.documentation; + + +&documentation.index; +
+ + diff --git a/po/et/kalgebra.po b/po/et/kalgebra.po new file mode 100644 index 0000000..efa5bde --- /dev/null +++ b/po/et/kalgebra.po @@ -0,0 +1,1169 @@ +# translation of kalgebra.po to Estonian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Marek Laane , 2007-2009, 2010, 2011, 2012, 2014, 2016, 2019. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2019-11-22 12:11+0200\n" +"Last-Translator: Marek Laane \n" +"Language-Team: Estonian \n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 19.08.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Valikud: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Aseta \"%1\" sisendisse" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Aseta sisendisse" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Viga: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Imporditi: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Tõrge: %1 laadimine nurjus.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Info" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Lisa/muuda funktsiooni" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Eelvaatlus" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Alates:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Kuni:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Valikud" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Eemalda" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Määratud valikud ei ole korrektsed" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Alumine raja ei saa olla suurem kui ülemine" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2D joonis" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3D joonis" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Seanss" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Muutujad" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Kalkulaator" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "&Kalkulaator" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Laadi skript..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Viimati kasutatud skriptid" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Salvesta skript..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Ekspordi logi..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "L&isa ans ..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Täitmise režiim" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Arvutamine" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Hindamine" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funktsioonid" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Nimekiri" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Lisa" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Vaateava" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D graafik" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D graafik" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Alusvõrk" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Proportsiooni säilitamine" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Lahutus" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Kehv" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normaalne" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Korralik" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Väga korralik" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D graafik" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &graafik" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Lähtesta vaade" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punktid" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Jooned" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Ühtlane" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Tehted" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Sõnaraamat" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Otsitakse:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "R&edigeerimine" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Skripti valik" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-fail (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Vead: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Vali, kuhu paigutada renderdatud joonis" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Pildifail (*.png);;SVG-fail (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Valmis" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Lisa muutuja" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Sisesta uue muutuja nimi" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Kalkulaator" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016: Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Marek Laane" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "qiilaq69@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Lisa/muuda muutujat" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Eemalda muutuja" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Väärtuse '%1' muutmine" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "pole saadaval" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "VÄÄR" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Vasak:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Ülemine:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Laius:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Kõrgus:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Rakenda" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "PNG-fail (*.png);;PDF-dokument(*.pdf);;X3D-dokument (*.x3d);;STL-dokument " +#~ "(*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "K&onsool" + +#~ msgid "&Console" +#~ msgstr "&Konsool" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Määramata funktsioonide kõverate esitamise võimaluse väljatöötamine, " +#~ "funktsioonide esitamise parandused." + +#~ msgid "Formula" +#~ msgstr "Valem" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Viga: väär funktsiooni tüüp" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Tehtud: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Viga: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Puhasta" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG-fail" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "Läbipais&tvus" + +#~ msgid "Type" +#~ msgstr "Tüüp" + +#~ msgid "Result: %1" +#~ msgstr "Tulemus: %1" + +#~ msgid "To Expression" +#~ msgstr "Avaldisena" + +#~ msgid "To MathML" +#~ msgstr "MathML-ina" + +#~ msgid "Simplify" +#~ msgstr "Lihtsustatult" + +#~ msgid "Examples" +#~ msgstr "Näited" + +#~ msgid "We can only draw Real results." +#~ msgstr "Joonistada saab ainult tegelikke tulemusi." + +#~ msgid "The expression is not correct" +#~ msgstr "Avaldis ei ole korrektne" + +#~ msgid "Function type not recognized" +#~ msgstr "Funktsiooni tüüp on tundmatu" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "" +#~ "Funktsiooni tüüp ei ole õige funktsioonide puhul, mille sõltuvuseks on %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Määramata funktsioon on defineerimata" + +#~ msgid "center" +#~ msgstr "keskpunkt" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Nimi" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funktsioon" + +#~ msgid "%1 function added" +#~ msgstr "%1 funktsioon lisatud" + +#~ msgid "Hide '%1'" +#~ msgstr "Peida '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Näita '%1'" + +#~ msgid "Selected viewport too small" +#~ msgstr "Valitud vaateava on liiga väike" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Kirjeldus" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parameetrid" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Näide" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : muutuja" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=alates..kuni" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parameetrid, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Liitmine" + +#~ msgid "Multiplication" +#~ msgstr "Korrutamine" + +#~ msgid "Division" +#~ msgstr "Jagamine" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Lahutamine. Arvab kõik väärtused esimesest maha." + +#~ msgid "Power" +#~ msgstr "Astendamine" + +#~ msgid "Remainder" +#~ msgstr "Jääk" + +#~ msgid "Quotient" +#~ msgstr "Jagatis" + +#~ msgid "The factor of" +#~ msgstr "Tegur" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Faktoriaal factorial(n)=n" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Antud nurga siinuse arvutamise funktsioon" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Antud nurga koosinuse arvutamise funktsioon" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "antud nurga tangensi arvutamise funktsioon" + +#~ msgid "Secant" +#~ msgstr "Seekans" + +#~ msgid "Cosecant" +#~ msgstr "Koosekans" + +#~ msgid "Cotangent" +#~ msgstr "Kootangens" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Hüperboolsiinus" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hüperboolkoosinus" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hüperbooltangens" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Hüperboolseekans" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Hüperboolkoosekans" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Hüperboolkootangens" + +#~ msgid "Arc sine" +#~ msgstr "Arkussiinus" + +#~ msgid "Arc cosine" +#~ msgstr "Arkuskoosinus" + +#~ msgid "Arc tangent" +#~ msgstr "Arkustangens" + +#~ msgid "Arc cotangent" +#~ msgstr "Arkuskootangens" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Hüperboolne arkustangens" + +#~ msgid "Summatory" +#~ msgstr "Summa" + +#~ msgid "Productory" +#~ msgstr "Korrutis" + +#~ msgid "For all" +#~ msgstr "Üldisus" + +#~ msgid "Exists" +#~ msgstr "Olemasolu" + +#~ msgid "Differentiation" +#~ msgstr "Diferents" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Hüperboolne arkussiinus" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Hüperboolne arkuskoosinus" + +#~ msgid "Arc cosecant" +#~ msgstr "Arkuskoosekans" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Hüperboolne arkuskoosekans" + +#~ msgid "Arc secant" +#~ msgstr "Arkusseekans" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Hüperboolne arkusseekans" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Eksponent (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Naturaallogaritm" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Kümnendlogaritm" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Absoluutväärtus abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Alumine piirväärtus floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Ülemine piirväärtus ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Miinimum" + +#~ msgid "Maximum" +#~ msgstr "Maksimum" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Suurem kui gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : piirav" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Väärtus" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Määrata tuleb korrektne tehe" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Tundmatu identifikaator: '%1'" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Tingimuslausele ei leitud sobivat valikut." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Tüüp ei sobi piiramiseks." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Alumine raja on suurem kui ülemine" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Vigane ülemine või alumine raja." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Defineeriti muutuja tsükkel" + +#~ msgid "The result is not a number" +#~ msgstr "Tulemus ei ole arv" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Jõuti ootamatult sisendi lõppu" + +#~ msgid "Unknown token %1" +#~ msgstr "Tundmatu märgis %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 vajab vähemalt 2 parameetrit" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 vajab %2 parameetrit" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Puuduv raja '%1' puhul" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Ootamatu raja '%1' puhul" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 puuduvad rajad '%2' jaoks" + +#~ msgid "Wrong declare" +#~ msgstr "Vale deklaratsioon" + +#~ msgid "Empty container: %1" +#~ msgstr "Tühi konteiner: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Tingimused saavad olla ainult piecewise'i struktuuride sees." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Korraga ei tohi olla kaht parameetrit sama nimega, näiteks \"%1\"." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Parameeter otherwise peab olema viimane" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 ei ole sobiv tingimus piecewise'i sees" + +#~ msgid "We can only declare variables" +#~ msgstr "Deklareerida saab ainult muutujaid" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Deklareerida saab ainult piiratud muutujaid" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Viga parsimisel: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Tundmatu konteiner: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "%1 väärtuse muutmine koodiks nurjus." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "%1 tehtemärgil ei saa olla järglaskonteksti." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Element '%1' ei ole operaator." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Tühje vektoreid ei tohi olla" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Toetamata/tundmatu: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Oodati %1, aga saadi \"%2\"" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Parem sulg puudub" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Üleliigne parem sulg" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Ootamatu märgis %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Ootamatu märgis %1" + +#, fuzzy +#~| msgid "Could not calculate the derivative for '%1'" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "%1 tuletist ei saa arvutada" + +#, fuzzy +#~| msgid "The domain should be either a vector or a list." +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "Domeen peab olema vektor või loend." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Vigane parameetrite arv '%2' jaoks. Peab olema 1 parameeter." +#~ msgstr[1] "Vigane parameetrite arv '%2' jaoks. Peab olema %1 parameetrit." + +#~ msgid "Could not call '%1'" +#~ msgstr "\"%1\" väljakutsumine nurjus" + +#~ msgid "Could not solve '%1'" +#~ msgstr "\"%1\" lahendamine nurjus" + +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Tüüp ei ole muutujaga \"%1\" kooskõlas" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Tükiti tüübi määramine nurjus" + +#~ msgid "Unexpected type" +#~ msgstr "Ootamatu tüüp" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Teisendamine \"%1\" -> \"%2\" nurjus" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Tundmatu märgis %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "0 jääki ei saa arvutada." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "0 tegurit ei saa arvutada." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "0 vähimat ühiskordset ei saa arvutada." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Väärtust %1 ei saa arvutada" + +#~ msgid "Invalid index for a container" +#~ msgstr "Vigane konteineri indeks" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Eri suuruses vektoreid ei saa kasutada." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Vektori %1 ei saa arvutada" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Loendi %1 ei saa arvutada" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "%1 tuletist ei saa arvutada" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "'%1' ja '%2' taandamine nurjus." + +#~ msgid "Incorrect domain." +#~ msgstr "Vigane ring." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Parameeterfunktsioon ei tagasta vektorit" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Vajalik on kahemõõtmeline vektor" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Parameeterfunktsiooni elemendid peavad olema skalaarid" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "%1 tuletis ei ole veel võimalik." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Reaalväärtust ei mõistetud: %1" + +#~ msgid "Subtraction" +#~ msgstr "Lahutamine" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Viga: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Vali konteinerist element" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Viga: graafiku joonistamiseks on vaja väärtusi" + +#~ msgid "Generating... Please wait" +#~ msgstr "Luuakse... Palun oota" + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Vigane parameetrite arv, 1 parameeter '%2' jaoks" +#~ msgstr[1] "Vigane parameetrite arv, %1 parameetrit '%2' jaoks" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Salvesta logi" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "Korralik" + +#~ msgid "We can only call functions" +#~ msgstr "Välja kutsuda saab ainult funktsioone" + +#~ msgid "Wrong parameter count" +#~ msgstr "Vale parameetrite arv" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~| msgid "Wrong parameter count" +#~ msgid "Invalid parameter count." +#~ msgstr "Vale parameetrite arv" + +#~ msgid "Mode" +#~ msgstr "Režiim" + +#~ msgid "Save the expression" +#~ msgstr "Avaldise salvestamine" + +#~ msgid "Calculate the expression" +#~ msgstr "Avaldise arvutamine" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot apply '%1' to '%2'" +#~ msgstr "\"%1\" rakendamine \"%2\"-le nurjus" + +#~ msgid "Cannot operate '%1'" +#~ msgstr "Tehe \"%1\" abil nurjus" + +#~ msgid "Cannot check '%1' type" +#~ msgstr "\"%1\" tüübi kontrollimine nurjus" + +#~ msgid "Wrong number of parameters when calling '%1'" +#~ msgstr "Vale parameetrite arv \"%1\" väljakutsumisel" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Alumine raja ei saa olla ≥ ülemisest rajast" + +#~ msgid "Trying to call an invalid function" +#~ msgstr "Püüti välja kutsuda vigast funktsiooni" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "We want a 2 dimension vector" +#~ msgstr "Me soovime kahemõõtmelist vektorit" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Funktsiooni %1 ei ole olemas" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Muutujat %1 ei ole olemas" + +#~ msgid "Need a var name and a value" +#~ msgstr "Vajalik on muutuja nimi ja väärtus" + +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "Valida saab ainult konteineri väärtuse selle täisarvulise indeksiga" + +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "The first parameter in a function should be the name" +#~ msgstr "Funktsiooni esimene parameeter peab olema nimi" + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Tundmatu tõkestatud muutuja: %1" + +#~ msgid "From parser:" +#~ msgstr "Parserist:" + +#~ msgid "" +#~ "Wrong parameter count in a selector, should have 2 parameters, the " +#~ "selected index and the container." +#~ msgstr "" +#~ "Vale parameetrite arv valijas, peab olema 2 parameetrit, valitud indeks " +#~ "ja konteiner." + +#~ msgid "piece or otherwise in the wrong place" +#~ msgstr "piece või otherwise on vales kohas" + +#~ msgid "No bounding variables for this sum" +#~ msgstr "Sel summal puuduvad piiravad muutujad" + +#~ msgid "Missing bounding limits on a sum operation" +#~ msgstr "Summeerimistehtel puuduavd piiravad rajad" + +#~ msgctxt "Error message" +#~ msgid "Trying to codify an unknown value: %1" +#~ msgstr "Püüti kodifitseerida tundmatut väärtust: %1" + +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "Hüperboolne arkuskootangens" + +#~ msgid "Real" +#~ msgstr "Reaalarv" diff --git a/po/et/kalgebramobile.po b/po/et/kalgebramobile.po new file mode 100644 index 0000000..fbf9b1f --- /dev/null +++ b/po/et/kalgebramobile.po @@ -0,0 +1,317 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# Marek Laane , 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2020-03-02 14:10+0200\n" +"Last-Translator: Marek Laane \n" +"Language-Team: Estonian \n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 19.08.1\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, fuzzy, kde-format +#| msgid "Calculate..." +msgid "Calculator" +msgstr "Arvuta ..." + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, fuzzy, kde-format +#| msgid "KAlgebra Mobile" +msgid "KAlgebra" +msgstr "KAlgebra Mobile" + +#: content/ui/Console.qml:62 +#, fuzzy, kde-format +#| msgid "Load Script..." +msgctxt "@action:button" +msgid "Load Script" +msgstr "Skripti laadimine ..." + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: content/ui/Console.qml:72 +#, fuzzy, kde-format +#| msgid "Save Script..." +msgctxt "@action:button" +msgid "Save Script" +msgstr "Skripti salvestamine ..." + +#: content/ui/Console.qml:83 +#, fuzzy, kde-format +#| msgid "Export Log..." +msgctxt "@action:button" +msgid "Export Log" +msgstr "Logi eksport ..." + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, fuzzy, kde-format +#| msgid "Evaluate..." +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Hinda ..." + +#: content/ui/Console.qml:94 +#, fuzzy, kde-format +#| msgid "Calculate..." +msgctxt "@action:button" +msgid "Calculate" +msgstr "Arvuta ..." + +#: content/ui/Console.qml:100 +#, fuzzy, kde-format +#| msgid "Clear Log" +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Puhasta logi" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D joonis" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D joonis" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "kopeeri \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, fuzzy, kde-format +#| msgid "Clear All" +msgctxt "@action:button" +msgid "Clear All" +msgstr "Puhasta kõik" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Arvutatav avaldis ..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "" + +#: content/ui/Plot2D.qml:21 +#, fuzzy, kde-format +#| msgid "2D Plot" +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D joonis" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, fuzzy, kde-format +#| msgid "Save..." +msgid "Save" +msgstr "Salvesta ..." + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Alusvõrgu näitamine" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Lähtesta vaatepunkt" + +#: content/ui/Plot3D.qml:21 +#, fuzzy, kde-format +#| msgid "3D Plot" +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D joonis" + +#: content/ui/TableResultPage.qml:9 +#, fuzzy, kde-format +#| msgid "Results:" +msgid "Results" +msgstr "Tulemused:" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Vead: samm ei saa olla 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Vead: algus ja lõpp on samad" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Vead:%1" + +#: content/ui/Tables.qml:52 +#, fuzzy, kde-format +#| msgid "Run" +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Käivita" + +#: content/ui/Tables.qml:63 +#, fuzzy, kde-format +#| msgid "Input:" +msgid "Input" +msgstr "Sisend:" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Alates:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Kuni:" + +#: content/ui/Tables.qml:86 +#, fuzzy, kde-format +#| msgid "Step:" +msgid "Step" +msgstr "Samm:" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Käivita" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Kaasaskantav kalkulaator" + +#: main.cpp:40 +#, fuzzy, kde-format +#| msgid "(C) 2006-2020 Aleix Pol i Gonzalez" +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2020: Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, fuzzy, kde-format +#| msgid "(C) 2006-2020 Aleix Pol i Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "(C) 2006-2020: Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Marek Laane" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "qiilaq69@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Lihtne teaduskalkulaator" diff --git a/po/eu/kalgebra.po b/po/eu/kalgebra.po new file mode 100644 index 0000000..f1853a3 --- /dev/null +++ b/po/eu/kalgebra.po @@ -0,0 +1,849 @@ +# Translation for kalgebra.po to Basque/Euskera (eu). +# Copyright (C) 2011-2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# KDE euskaratzeko proiektuko arduraduna . +# +# Translators: +# Iñigo Salvador Azurmendi , 2011, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-12-09 22:01+0100\n" +"Last-Translator: Iñigo Salvador Azurmendi \n" +"Language-Team: Basque\n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 22.08.3\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Aukerak: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Itsatsi \"%1\" sarreran" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Itsatsi sarreran" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Akatsa: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Inportatuta: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Errorea: Ezin izan du %1 zamatu.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informazioa" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Gehitu/Editatu funtzio bat" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Aurreikusi" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Nondik:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Nora:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Aukerak" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Ados" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Kendu" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Zehaztu dituzun aukerak ez dira zuzenak" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Beheko muga ezin da goiko muga baino handiagoa izan" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2Dko trazua" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3Dko trazua" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Saioa" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Aldagaiak" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Kalkulagailua" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "K&alkulagailua" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Zamatu gidoia..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Azkenaldiko gidoiak" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Gorde gidoia..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Esportatu egunkaria..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Txertatu «ANS»..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Exekuzio modua" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Kalkulatu" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Ebaluatu" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funtzioak" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Zerrenda" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Gehitu" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Ikuspegi azalera" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2Dko grafikoa" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&Dko grafikoa" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Sareta" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Mantendu itxura-erlazioa" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Bereizmena" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Kaskarra" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Arrunta" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Ona" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Oso ona" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3Dko grafikoa" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3Dko &grafikoa" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Be&rrezarri ikuspegia" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Puntuak" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Lerroak" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Solidoa" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Eragiketak" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Hiztegia" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Bilatu:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Editatzea" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Hautatu gidoi bat" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Gidoia (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML fitxategia (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Erroreak: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Hautatu errendatutako trazuak non ipini" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Irudi fitxategia (*.png);;SVG fitxategia (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Prest" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Gehitu aldagaia" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Sartu aldagai berriarentzako izen bat" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Kalkulagailu eramangarri bat" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Iñigo Salvador Azurmendi" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "xalba@ni.eus" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Gehitu/Editatu aldagai bat" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Kendu aldagaia" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Editatu '%1' balioa" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ez eskuragarri" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "OKER" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Ezkerra:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Goia:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Zabalera:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Altuera:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Ezarri" + +#~ msgid "C&onsole" +#~ msgstr "K&ontsola" + +#~ msgid "&Console" +#~ msgstr "&Kontsola" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "Formula" +#~ msgstr "Formula" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Akatsa: Funtzio mota okerra" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Eginda: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Akatsa: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Garbitu" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG fitxategia" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Gardentasuna" + +#~ msgid "Type" +#~ msgstr "Mota" + +#~ msgid "Result: %1" +#~ msgstr "Emaitza: %1" + +#~ msgid "To MathML" +#~ msgstr "MathML-ra" + +#~ msgid "Simplify" +#~ msgstr "Sinplifikatu" + +#~ msgid "Examples" +#~ msgstr "Adibideak" + +#~ msgid "We can only draw Real results." +#~ msgstr "Emaitza errealak baino ezin ditugu marraztu." + +#~ msgid "The expression is not correct" +#~ msgstr "Adierazpena ez da zuzena" + +#~ msgid "Function type not recognized" +#~ msgstr "Funtzio mota ez da ezagutzen" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Izena" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funtzioa" + +#~ msgid "%1 function added" +#~ msgstr "%1 funtzioa erantsita" + +#~ msgid "Hide '%1'" +#~ msgstr "Ezkutatu '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Erakutsi '%1'" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Deskribapena" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parametroak" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Adibidea" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=hontatik..hontara" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parametroak, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Batuketa" + +#~ msgid "Multiplication" +#~ msgstr "Biderkaketa" + +#~ msgid "Division" +#~ msgstr "Zatiketa" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Kenketa. Balio guztiak lehenengotik kenduko ditu." + +#~ msgid "Power" +#~ msgstr "Berreketa" + +#~ msgid "Remainder" +#~ msgstr "Hondarra" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Faktoriala. faktoriala(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Emandako angeluaren sinua kalkulatzeko funtzioa" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Emandako angeluaren kosinua kalkulatzeko funtzioa" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Emandako angeluaren tangentea kalkulatzeko funtzioa" + +#~ msgid "Secant" +#~ msgstr "Sekantea" + +#~ msgid "Cosecant" +#~ msgstr "Kosekantea" + +#~ msgid "Cotangent" +#~ msgstr "Kotangentea" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Sinu hiperbolikoa" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Kosinu hiperbolikoa" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Tangente hiperbolikoa" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Sekante hiperbolikoa" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Kosekante hiperbolikoa" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Kotangente hiperbolikoa" + +#~ msgid "Arc sine" +#~ msgstr "Ark sinua" + +#~ msgid "Arc cosine" +#~ msgstr "Ark kosinua" + +#~ msgid "Arc tangent" +#~ msgstr "Ark tangentea" + +#~ msgid "Arc cotangent" +#~ msgstr "Ark kotangentea" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Ark tangente hiperbolikoa" + +#~ msgid "Summatory" +#~ msgstr "Batukaria" + +#~ msgid "Exists" +#~ msgstr "Existitzen da" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Ark sinu hiperbolikoa" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Ark kosinu hiperbolikoa" + +#~ msgid "Arc cosecant" +#~ msgstr "Ark kosekantea" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Ark kosekante hiperbolikoa" + +#~ msgid "Arc secant" +#~ msgstr "Ark sekantea" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Ark sekante hiperbolikoa" + +#~ msgid "Base-e logarithm" +#~ msgstr "Logaritmoa e oinarrian" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Logaritmoa 10 oinarrian" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Balio absolutua. abs(n)=|n|" + +#~ msgid "Minimum" +#~ msgstr "Gutxienezkoa" + +#~ msgid "Maximum" +#~ msgstr "Gehienezkoa" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Handiago baino. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Balioa" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Eragiketa zuzen bat zehaztu behar da" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Identifikatzaile ezezaguna: '%1'" + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Beheko muga goiko muga baino handiago da" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Goi muga edo behe muga okerra." + +#~ msgid "The result is not a number" +#~ msgstr "Emaitza ez da zenbaki bat" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1-(e)k gutxienez 2 parametro behar ditu" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1-(e)k %2 parametro behar ditu" + +#~ msgid "Wrong declare" +#~ msgstr "Deklarazio okerra" + +#~ msgid "Empty container: %1" +#~ msgstr "Edukitzaile hutsa: %1" + +#~ msgid "We can only declare variables" +#~ msgstr "Solik aldagaiak deklaratu ditzakegu" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Akatsa azterketa sintaktikoan: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Edukitzaile ezezaguna: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Ezin da %1 balioa kodetu." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "'%1' elementua ez da eragile bat." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Ez da bektore hutsik nahi" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Ez onartua/ezezaguna: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "%1 espero zen '%2' ordez" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Eskuineko parentesia falta da" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Orekatu gabeko eskuin parentesia" + +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "Domeinua bektore bat edo zerrenda bat izan beharko litzateke" + +#~ msgid "Could not call '%1'" +#~ msgstr "Ezin izan da '%1' deitu" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Ezin izan da '%1' ebatzi" + +#~ msgid "Unexpected type" +#~ msgstr "Ustekabeko mota" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Ezin bihurtu '%1' '%2'-ra" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Ezin kalkulatu 0-ren hondarra." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Ezin da 0-rekiko faktorea kalkulatu." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Ezin kalkulatu 0-ren multiplo komunetako txikiena." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Ezin kalkulatu %1 balio bat" + +#~ msgid "Invalid index for a container" +#~ msgstr "Indize baliogabea edukitzaile batentzako" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Ezin eragiketa egin neurri ezberdineko bektoreetan." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Ezin kalkulatu bektore baten %1" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Ezin kalkulatu zerrenda baten %1" diff --git a/po/eu/kalgebramobile.po b/po/eu/kalgebramobile.po new file mode 100644 index 0000000..9949ae0 --- /dev/null +++ b/po/eu/kalgebramobile.po @@ -0,0 +1,302 @@ +# Translation for kalgebramobile.po to Euskara/Basque (eu). +# Copyright (C) 2022-2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# SPDX-FileCopyrightText: 2023 KDE euskaratzeko proiektuko arduraduna +# +# Translators: +# Iñigo Salvador Azurmendi , 2022, 2023. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-07 19:53+0100\n" +"Last-Translator: Iñigo Salvador Azurmendi \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 23.08.3\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Kalkulagailua" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Zamatu gidoia" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Gidoia (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Gorde gidoia" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Esportatu egunkaria" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Ebaluatu" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Kalkulatu" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Garbitu egunkaria" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2Dko trazua" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3Dko trazua" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Kopiatu \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Hustu kontsolako historia" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Gehitu" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Garbitu dena" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Itxi elkarrizketa-koadroa" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Kendu trazua" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Ez dago trazurik erabilgarri" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Kalkulatu beharreko adierazpena..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Hiztegia" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Izena:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Grafikoa 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Grafikoa 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Balio taulak" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Aldagaiak" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Hiztegia" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "KAlgebrari buruz" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2Dko trazua" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Gorde" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Erakutsi sareta" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Berrezarri ikuspegi azalera" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3Dko trazua" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Emaitzak" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Balio taulak" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Erroreak: Urratsa ezin da 0 izan" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Erroreak: Hasiera eta bukaera bera dira" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Erroreak: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Exekutatu" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Sarrera" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Nondik:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Nora:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Urratsa" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Exekutatu" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Kalkulagailu eramangarri bat" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Mantentzailea" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Iñigo Salvador Azurmendi" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "xalba@ni.eus" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra mugikorra" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Kalkulagailu zientifiko erraz bat" diff --git a/po/fa/kalgebra.po b/po/fa/kalgebra.po new file mode 100644 index 0000000..09e20b0 --- /dev/null +++ b/po/fa/kalgebra.po @@ -0,0 +1,437 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2023 Alosra +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2023-10-08 19:42+0300\n" +"Last-Translator: Alosra \n" +"Language-Team: fa\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 23.08.1\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "گزینه‌ها: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "جایگذاری «‎%1» در ورودی" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "جایگذاری در ورودی" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    خطا: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "درون‌ریزی شد: ‎%1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    خطا: ناتوانی در بار کردن ‎%1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "اطلاعات" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "افزودن/ویرایش یک تابع" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "پیش‌نمایش" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "از:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "تا:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "گزینه‌ها" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "تأیید" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "برداشتن" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "گزینه‌هایی که مشخص کرده‌اید نادرستند" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "حد پایین نمی‌تواند بزرگ‌تر از حد بالا باشد" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "رسم ۲بعدی" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "رسم ۳بعدی" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "نشست" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "متغیرها" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&ماشین‌حساب" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "م&اشین‌حساب" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&بار کردن کدنوشته…" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "کدنوشته‌های اخیر" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&ذخیرهٔ کدنوشته…" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&برون‌ریزی گزارش…" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&درج پاسخ…" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "حالت اجرا" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "محاسبه" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "ارزیابی" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "تابع‌ها" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "فهرست" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&افزودن" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "نمایشگر" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "نمودار &۲بعدی" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "نمودار ۲&بعدی" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&توری" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&حفظ نسبت ابعاد" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "وضوح" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "ضعیف" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "معمولی" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "خوب" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "عالی" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "نمودار &۳بعدی" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&نمودار ۳بعدی" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&بازنشانی نما" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "نقاط" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "خطوط" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "یک‌پارچه" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "عملیات" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&واژه‌نامه" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "یافتن:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&ویرایش" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "انتخاب یک کدنوشته" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "کدنوشته (‎*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "پروندهٔ HTML ‏(‎*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "،" + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "خطاها: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "مکان قرار دادن نمودار پردازش شده را برگزینید" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "پروندهٔ تصویری (‎*.png);;پروندهٔ svg ‏(‎*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "آماده" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "افزودن متغیر" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "نامی برای متغیر جدید وارد کنید" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "ماشین‌حسابی قابل حمل" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "محمدصالح کامیاب" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "mskf1383@envs.net" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "افزودن/ویرایش یک متغیر" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "برداشتن متغیر" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "ویرایش مقدار «%1»" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "موجود نیست" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "‎%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "اشتباه" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "چپ:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "بالا:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "پهنا:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "بلندا:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "اعمال" diff --git a/po/fi/kalgebra.po b/po/fi/kalgebra.po new file mode 100644 index 0000000..4373063 --- /dev/null +++ b/po/fi/kalgebra.po @@ -0,0 +1,1020 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Tommi Nieminen , 2011, 2018, 2020, 2023. +# Lasse Liehu , 2011, 2012, 2013, 2014, 2015, 2016, 2017. +# +# KDE Finnish translation sprint participants: +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2023-02-26 19:23+0200\n" +"Last-Translator: Tommi Nieminen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Asetukset: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Liitä ”%1” syötteeseen" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Liitä syötteeseen" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Virhe: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Tuotiin: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Virhe: ei voitu ladata: %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Tietoja" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Lisää funktio tai muokkaa funktiota" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Esikatselu" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Alaraja:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Yläraja:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Asetukset" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Poista" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Määrittämäsi asetukset eivät ole oikein" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Alaraja ei voi olla ylärajaa suurempi" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2D-kaavio" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3D-kaavio" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Istunto" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Muuttujat" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Laskin" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "&Laskin" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Avaa skripti…" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Viimeaikaiset skriptit" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Tallenna skripti…" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Vie loki…" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "L&isää vastaus…" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Laskutapa" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Laske" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Sievennä" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funktiot" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Luettelo" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Lisää" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Näkymä" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D-kuvaaja" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D-kuvaaja" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Ruudukko" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Säilytä kuvasuhde" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Tarkkuus" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Huono" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Tavallinen" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Hyvä" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Erittäin hyvä" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D-kuvaaja" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D-&kuvaaja" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Alusta näkymä" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Pisteet" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Viivat" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Tasainen" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Toiminnot" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Sanasto" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Etsi:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Muokkaus" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Valitse skripti" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skripti (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-tiedosto (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Virheet: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Valitse minne piirretty kaavio laitetaan" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Kuvatiedosto (*.png);;SVG-tiedosto (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Valmis" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Lisää muuttuja" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Anna uuden muuttujan nimi" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Kannettava laskin" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006–2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Lasse Liehu,Tommi Nieminen" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "lasse.liehu@gmail.com,translator@legisign.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Lisää muuttuja tai muokkaa muuttujaa" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Poista muuttuja" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Muokkaa arvoa: ”%1”" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ei käytettävissä" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "VÄÄRIN" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Vasen:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Ylä:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Leveys:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Korkeus:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Käytä" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "PNG-tiedosto (*.png);;PDF-tiedosto (*.pdf);;X3D-tiedosto (*.x3d);;STL-" +#~ "tiedosto (*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "K&onsoli" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Konsoli" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Kehitti implisiittisten käyrien piirtämisominaisuuden. Parannuksia " +#~ "kaavionpiirtofunktioihin." + +#~ msgid "Formula" +#~ msgstr "Kaava" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Virhe: Väärä funktiotyyppi" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Valmis: %1 ms" + +#~ msgid "Error: %1" +#~ msgstr "Virhe: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Tyhjennä" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG-tiedosto" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Läpinäkyvyys" + +#~ msgid "Type" +#~ msgstr "Tyyppi" + +#~ msgid "Result: %1" +#~ msgstr "Tulos: %1" + +#~ msgid "To Expression" +#~ msgstr "Lausekkeeksi" + +#~ msgid "To MathML" +#~ msgstr "MathML:ksi" + +#~ msgid "Simplify" +#~ msgstr "Sievennä" + +#~ msgid "Examples" +#~ msgstr "Esimerkit" + +#~ msgid "We can only draw Real results." +#~ msgstr "Vain reaalituloksia voi piirtää." + +#~ msgid "The expression is not correct" +#~ msgstr "Lauseke ei ole oikein" + +#~ msgid "Function type not recognized" +#~ msgstr "Funktiotyyppiä ei tunnistettu" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Funktiotyyppi ei ole oikein funktioille, jonka riippuvuuksina on %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Tason implisiittinen funktio määrittelemättä" + +#~ msgid "center" +#~ msgstr "keskusta" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Nimi" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funktio" + +#~ msgid "%1 function added" +#~ msgstr "Lisätty funktio %1" + +#~ msgid "Hide '%1'" +#~ msgstr "Piilota ”%1”" + +#~ msgid "Show '%1'" +#~ msgstr "Näytä ”%1”" + +#~ msgid "Selected viewport too small" +#~ msgstr "Valittu näkymä on liian pieni" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Kuvaus" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parametrit" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Esimerkki" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : muuttuja" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=mistä..mihin" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parametrit, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Summa" + +#~ msgid "Multiplication" +#~ msgstr "Tulo" + +#~ msgid "Division" +#~ msgstr "Jako" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Vähennys. Vähentää kaikki arvot ensimmäisestä." + +#~ msgid "Power" +#~ msgstr "Potenssi" + +#~ msgid "Remainder" +#~ msgstr "Jakojäännös" + +#~ msgid "Quotient" +#~ msgstr "Osamäärä" + +#~ msgid "The factor of" +#~ msgstr "Tekijä" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Kertoma. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funktio annetun kulman sinin laskemiseksi" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funktio annetun kulman kosinin laskemiseksi" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funktio annetun kulman tangentin laskemiseksi" + +#~ msgid "Secant" +#~ msgstr "Sekantti" + +#~ msgid "Cosecant" +#~ msgstr "Kosekantti" + +#~ msgid "Cotangent" +#~ msgstr "Kotangentti" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Hyperbolinen sini" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hyperbolinen kosini" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hyperbolinen tangentti" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Hyperbolinen sekantti" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Hyperbolinen kosekantti" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Hyperbolinen kotangentti" + +#~ msgid "Arc sine" +#~ msgstr "Arkussini" + +#~ msgid "Arc cosine" +#~ msgstr "Arkuskosini" + +#~ msgid "Arc tangent" +#~ msgstr "Arkustangentti" + +#~ msgid "Arc cotangent" +#~ msgstr "Arkuskotangentti" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Hyperbolinen arkustangentti" + +#~ msgid "Summatory" +#~ msgstr "Summamerkintä" + +#~ msgid "Productory" +#~ msgstr "Tulomerkintä" + +#~ msgid "For all" +#~ msgstr "Kaikille" + +#~ msgid "Exists" +#~ msgstr "On olemassa" + +#~ msgid "Differentiation" +#~ msgstr "Derivaatta" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Hyperbolinen arkussini" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Hyperbolinen arkuskosini" + +#~ msgid "Arc cosecant" +#~ msgstr "Arkuskosekantti" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Hyperbolinen arkuskosekantti" + +#~ msgid "Arc secant" +#~ msgstr "Arkussekantti" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Hyperbolinen arkussekantti" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Eksponentti (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "e-kantainen logaritmi" + +#~ msgid "Base-10 logarithm" +#~ msgstr "10-kantainen logaritmi" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Itseisarvo: abs(n) = |n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Lattia-arvo. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Katto-arvo. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimi" + +#~ msgid "Maximum" +#~ msgstr "Maksimi" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Suurempi kuin: gt(a,b) = a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : rajat" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Arvo" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Vaaditaan kelvollinen toiminnot" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "”, ”" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Tuntematon tunniste: ”%1”" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Ehtolauseesta ei löytynyt sopivaa vaihtoehtoa." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Tyyppiä ei tueta rajana" + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Alaraja on ylärajaa suurempi" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Väärä ala- tai yläraja." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Muuttujan kehämäärittely" + +#~ msgid "The result is not a number" +#~ msgstr "Tulos ei ole luku" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Odottamaton syötteen loppu" + +#~ msgid "Unknown token %1" +#~ msgstr "Virheellinen merkki %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 tarvitsee vähintään 2 parametria" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 tarvitsee %2 parametria" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Puuttuva raja funktiossa %1" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Odottamaton raja funktiossa %1" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 puuttuvat rajat funktiossa %2" + +#~ msgid "Wrong declare" +#~ msgstr "Väärä esittely" + +#~ msgid "Empty container: %1" +#~ msgstr "Tyhjä tietorakenne: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Vain piecewise-rakenteissa voi olla ehtoja." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Kahdella parametrilla ei voi olla samaa nimeä, esim. ”%1”." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "otherwise-parametrin tulee olla viimeisenä" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 ei ole kelvollinen ehto piecewise-rakenteessa" + +#~ msgid "We can only declare variables" +#~ msgstr "Vain muuttujia voi esitellä" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Tietorakenteessa voi olla vain rajamuuttujia" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Virhe jäsennettäessä: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Tuntematon tietorakenne: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Arvoa %1 ei voida koodata." + +# En tajua itsekään mitä tämä tarkoittaa. Liittyy MathML:n jäsentämiseen (lähdekoodi). +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Operaattorilla %1 ei voi olla lapsikonteksteja." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Elementti ”%1” ei ole operaattori." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Ei halua tyhjiä vektoreita" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Ei tuettu/tuntematon: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Odotettiin %1 eikä ”%2”" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Oikea sulje puuttuu" + +# Merkitys tarkistettu lähdekoodista. +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Ylimääräinen oikea sulje" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Odottamaton merkki %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Odottamaton merkki %1" + +#, fuzzy +#~| msgid "Could not calculate the derivative for '%1'" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Arvon ”%1” derivaattaa ei voi laskea." + +#, fuzzy +#~| msgid "The domain should be either a vector or a list." +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "Määrittelyjoukon tulee olla joko vektori tai luettelo." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Väärä parametrien määrä (”%2”). Tulisi olla 1 parametri." +#~ msgstr[1] "Väärä parametrien määrä (”%2”). Tulisi olla %1 parametria." + +#~ msgid "Could not call '%1'" +#~ msgstr "Ei voi kutsua: ”%1”" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Ei voi ratkaista: ”%1”" + +#, fuzzy +#~| msgid "Enter a name for the new variable" +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Anna uuden muuttujan nimi" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "piecewise-rakenteen tyyppiä ei voitu selvittää" + +#~ msgid "Unexpected type" +#~ msgstr "Odottamaton tyyppi" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Ei voi muuntaa ”%1” -> ”%2”" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Virheellinen merkki %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Nollalla jakamisen jakojäännöstä ei voi laskea." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Ei voi laskea, onko luku nollan tekijä." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "" +#~ "Toisen luvuista ollessa nolla, ei pienintä yhteistä jaettavaa voi laskea." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Arvoa %1 ei voi laskea" + +#~ msgid "Invalid index for a container" +#~ msgstr "Virheellinen tietorakenteen indeksi" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Ei voi käsitellä erikokoisia vektoreita." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Toiminnon %1 suorittaminen vektorille ei onnistunut." + +# ”Toiminto” ei liene kovin matemaattista kieltä. +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Toiminnon %1 suorittaminen luettelolle ei onnistunut." + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Arvon ”%1” derivaattaa ei voi laskea." + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Arvoja ”%1” ja ”%2” ei voi sieventää." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Parametrinen funktio ei palauta vektoria" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Kaksiulotteista vektoria tarvitaan" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Parametrisen funktion kohtien tulee olla skalaareja" diff --git a/po/fi/kalgebramobile.po b/po/fi/kalgebramobile.po new file mode 100644 index 0000000..7bf519b --- /dev/null +++ b/po/fi/kalgebramobile.po @@ -0,0 +1,325 @@ +# Copyright (C) 2024 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# SPDX-FileCopyrightText: 2018, 2020, 2023, 2024 Tommi Nieminen +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-10-29 19:55+0200\n" +"Last-Translator: Tommi Nieminen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 23.08.5\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Laskin" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Lataa skripti" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Komentojono (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Tallenna skripti" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Vie loki" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Suorita" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Laske" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Tyhjennä loki" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Kaksiulotteinen kaavio" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Kolmiulotteinen kaavio" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Kopioi ”%1”" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Tyhjennä konsolin historia" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Lisää" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Tyhjennä kaikki" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Sulje ikkuna" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Poista kaavio" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Kaavioita ei ole" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Laskettava lauseke…" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Sanasto" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nimi:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Kaksiulotteinen kaavio" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Kolmiulotteinen kaavio" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Arvotaulukot" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Muuttujat" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Sanasto" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Tietoa KAlgebrasta" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Kaksiulotteinen kaavio" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Tallenna" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Näytä ruudukko" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Tyhjennä ikkuna" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Kolmiulotteinen kaavio" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Tulokset" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Arvotaulukot" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Virheitä: askel ei voi olla 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Virheet: alku ja loppu ovat samat" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Virheitä: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Suorita" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Syöte" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Mistä:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Mihin:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Askel" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Suorita" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Siirrettävissä oleva laskin" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© 2006–2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Ylläpitäjä" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Tommi Nieminen" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "translator@legisign.org" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Yksinkertainen tieteellinen laskin" + +#~ msgid "Results:" +#~ msgstr "Tulokset:" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "KAlgebran toi sinulle vapaiden ohjelmistojen ympäristön ihana KDE-yhteisö ja KDE Edu." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "Jos haluat lisätietoa KAlgebrasta, löydät sitä viralliselta sivustolta ja käyttäjien wikistä.
Jos " +#~ "kohtaat ohjelmassa ongelmia, ilmoita niistä vikajäljittimeemme." diff --git a/po/fr/kalgebra.po b/po/fr/kalgebra.po new file mode 100644 index 0000000..51f2a6d --- /dev/null +++ b/po/fr/kalgebra.po @@ -0,0 +1,1063 @@ +# translation of kalgebra.po to Français +# translation of kalgebratrad.po to +# translation of kalgebra.po to +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Delannoy Nicolas , 2007. +# Ludovic Grossard , 2007, 2008. +# Mickael Sibelle , 2008. +# Sébastien Renard , 2008. +# Joëlle Cornavin , 2009, 2010, 2012, 2013. +# Thomas Vergnaud , 2015, 2016. +# Simon Depiets , 2018, 2019. +# Xavier Besnard , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-12 20:56+0200\n" +"Last-Translator: Xavier Besnard \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 22.04.2\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Options : %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Coller « %1 » dans la saisie" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Coller dans la saisie" + +# unreviewed-context +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Erreur : %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importé : %1" + +# unreviewed-context +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Erreur : impossible de charger %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informations" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +# unreviewed-context +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Ajouter / Modifier une fonction" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Aperçu" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Depuis :" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Vers :" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Options" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Ok" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Supprimer" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Les options que vous avez spécifiées ne sont pas correctes" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" +"Impossible que la limite inférieure soit plus grande que la limite supérieure" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Graphe 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Graphe 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Session" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calculatrice" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "&Calculatrice" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Charger &le script..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Scripts récents" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Enregistrer le &script..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exporter le journal..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Insérer ans..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Mode d'exécution" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calculer" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Évaluer" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Fonctions" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Liste" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Ajouter" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Fenêtre d'affichage" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Graphe &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Graphe 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Grille" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Conserver le rapport hauteur / largeur" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Résolution" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Pauvre" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normale" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Précise" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Très précise" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Graphique &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Graphique 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Ré-initialiser l'affichage" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Points" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Lignes" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Trait continu" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Opérations" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Dictionnaire" + +# unreviewed-context +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Chercher :" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Modification" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Choisir un script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Fichier HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Erreurs : %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Indiquez où enregistrer le rendu du tracé" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "fichier d'image (*.png);;fichier SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Prêt" + +# unreviewed-context +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Ajouter une variable" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Saisissez le nom de la nouvelle variable" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Une calculatrice portable" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Joëlle Cornavin, Simon Depiets" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "jcorn@free.fr, sdepiets@gmail.com" + +# unreviewed-context +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Ajouter / Modifier une variable" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Supprimer une variable" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Modifier la valeur « %1 »" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "Non disponible" + +# unreviewed-context +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "INCORRECT" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Gauche :" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Haut :" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Largeur :" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Hauteur :" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Appliquer" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "fichier PNG (*.png);;document PDF (*.pdf);;document X3D (*.x3d)::" +#~ "document STL (*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "C&onsole" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Console" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Développement d'une fonctionnalité permettant le dessin de courbes " +#~ "implicites. Amélioration des fonctions de traçage." + +#~ msgid "Formula" +#~ msgstr "Formule" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Erreur : type erroné de fonction" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Terminé : %1 ms" + +#~ msgid "Error: %1" +#~ msgstr "Erreur : %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Effacer" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|Fichier « PNG »" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Transparence" + +#~ msgid "Type" +#~ msgstr "Type" + +#~ msgid "Result: %1" +#~ msgstr "Résultat : %1" + +#~ msgid "To Expression" +#~ msgstr "Vers une expression" + +#~ msgid "To MathML" +#~ msgstr "Vers MathML" + +#~ msgid "Simplify" +#~ msgstr "Simplifier" + +#~ msgid "Examples" +#~ msgstr "Exemples" + +#~ msgid "We can only draw Real results." +#~ msgstr "On peut tracer uniquement des résultats réels." + +#~ msgid "The expression is not correct" +#~ msgstr "L'expression n'est pas correcte" + +#~ msgid "Function type not recognized" +#~ msgstr "Type de fonction non reconnu" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Type de fonction non correct pour les fonctions dépendant de %1" + +#, fuzzy +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Fonction implicite non définie dans le plan" + +#~ msgid "center" +#~ msgstr "centre" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Nom" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Fonction" + +#~ msgid "%1 function added" +#~ msgstr "Fonction %1 ajoutée" + +# unreviewed-context +#~ msgid "Hide '%1'" +#~ msgstr "Masquer « %1 »" + +# unreviewed-context +#~ msgid "Show '%1'" +#~ msgstr "Afficher « %1 »" + +#~ msgid "Selected viewport too small" +#~ msgstr "La fenêtre d'affichage sélectionnée est trop petite" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Description" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Paramètres" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Exemple" + +#, fuzzy +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : variable" + +#, fuzzy +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=de..à" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... paramètres, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Addition" + +#~ msgid "Multiplication" +#~ msgstr "Multiplication" + +#~ msgid "Division" +#~ msgstr "Division" + +#~ msgid "Power" +#~ msgstr "Puissance" + +#~ msgid "Remainder" +#~ msgstr "Reste" + +#~ msgid "Quotient" +#~ msgstr "Quotient" + +#~ msgid "The factor of" +#~ msgstr "Le facteur de" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Factorielle. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Fonction pour calculer le sinus d'un angle donné" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Fonction pour calculer le cosinus d'un angle donné" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Fonction pour calculer la tangente d'un angle donné" + +#~ msgid "Secant" +#~ msgstr "Sécante" + +#~ msgid "Cosecant" +#~ msgstr "Cosécante" + +#~ msgid "Cotangent" +#~ msgstr "Cotangente" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Sinus hyperbolique" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Cosinus hyperbolique" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Tangente hyperbolique" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Sécante hyperbolique" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Cosécante hyperbolique" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Cotangente hyperbolique" + +#~ msgid "Arc sine" +#~ msgstr "Arc sinus" + +#~ msgid "Arc cosine" +#~ msgstr "Arc cosinus" + +#~ msgid "Arc tangent" +#~ msgstr "Arc tangente" + +#~ msgid "Arc cotangent" +#~ msgstr "Arc cotangente" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Arc tangente hyperbolique" + +#~ msgid "Summatory" +#~ msgstr "Somme" + +#~ msgid "Productory" +#~ msgstr "Produit" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "Normale" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "Liste" + +#~ msgid "Differentiation" +#~ msgstr "Différentiation" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Arc sinus hyperbolique" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Arc cosinus hyperbolique" + +#~ msgid "Arc cosecant" +#~ msgstr "Arc cosécante" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Arc cosécante hyperbolique" + +#~ msgid "Arc secant" +#~ msgstr "Arc sécante hyperbolique" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Arc sécante hyperbolique" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Exposant (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Logarithme de base-e" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Logarithme de base 10" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Valeur absolue. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Valeur plancher. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Valeur plafond. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimum" + +#~ msgid "Maximum" +#~ msgstr "Maximum" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Supérieur à. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, etc.)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : limites" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Valeur" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Doit spécifier une opération correcte" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Identifiant inconnu : « %1 »" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "" +#~ "Impossible de trouver un choix approprié pour une instruction " +#~ "conditionnelle." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Type non pris en charge pour une limitation." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "La limite inférieure est plus grande que la limite supérieure" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Limite supérieure ou limite inférieure incorrecte." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Un cycle de variable a été défini" + +#~ msgid "The result is not a number" +#~ msgstr "Le résultat n'est pas un nombre" + +#~ msgid "Unknown token %1" +#~ msgstr "Jeton inconnu %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 nécessite au moins 2 paramètres" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 requiert %2 paramètres" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Frontière absente pour « %1 »" + +#, fuzzy +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Limitation inattendue pour « %1 »" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 limites absentes sur « %2 »" + +#~ msgid "Wrong declare" +#~ msgstr "Déclaration incorrecte" + +#~ msgid "Empty container: %1" +#~ msgstr "Conteneur vide : %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "" +#~ "On peut avoir uniquement des conditions à l'intérieur des structures en " +#~ "morceaux (piecewise)." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Il est impossible d'avoir deux paramètres du même nom comme « %1 »." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Le paramètre sinon devra être le dernier" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "" +#~ "%1 n'est pas une condition appropriée à l'intérieur du morceau (piecewise)" + +#~ msgid "We can only declare variables" +#~ msgstr "On peut déclarer uniquement des variables" + +#~ msgid "We can only have bounded variables" +#~ msgstr "On ne peut déclarer que des variables bornées" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Erreur lors de l'analyse syntaxique : %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Conteneur inconnu : %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Impossible de codifier la valeur %1." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Impossible que l'opérateur %1 ait des contextes fils." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "L'élément « %1 » n'est pas un opérateur." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Ne pas vouloir de vecteurs vides" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Non pris en charge / inconnu : %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "On attendait %1 au lieu de « %2 »" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Il manque la parenthèse droite" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "La parenthèse droite n'est pas équilibrée" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Jeton inattendu %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Jeton inattendu %1" + +#, fuzzy +#~| msgid "Could not calculate a value %1" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Impossible de calculer une valeur %1" + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "" +#~ "Nombre de paramètres incorrect pour « %2 » . Il ne doit y avoir qu'un " +#~ "seul paramètre." +#~ msgstr[1] "" +#~ "Nombre de paramètres incorrect, on a %1 paramètres pour « %2 ». Il " +#~ "devrait y avoir %1 paramètres." + +#~ msgid "Could not call '%1'" +#~ msgstr "Impossible d'appeler « %1 »" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Impossible de résoudre « %1 »" + +#, fuzzy +#~| msgid "Enter a name for the new variable" +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Saisissez le nom de la nouvelle variable" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Impossible de déterminer le type du morceau (piecewise)" + +#, fuzzy +#~| msgid "Unexpected bounding for '%1'" +#~ msgid "Unexpected type" +#~ msgstr "Limitation inattendue pour « %1 »" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Impossible de convertir « %1 » en « %2 »" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Jeton inattendu %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Impossible de calculer le reste sur 0." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Impossible de calculer le facteur sur 0." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Impossible de calculer le PPCM de 0." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Impossible de calculer une valeur %1" + +#~ msgid "Invalid index for a container" +#~ msgstr "Indice incorrect pour un conteneur" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Impossible d'opérer sur des vecteurs de taille différente." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Impossible de calculer le %1 du vecteur" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Impossible de calculer le %1 d'une liste" + +#, fuzzy +#~| msgid "Could not calculate a value %1" +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Impossible de calculer une valeur %1" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Impossible de réduire « %1 » et « %2 »." + +#~ msgid "Incorrect domain." +#~ msgstr "Domaine incorrect." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "La fonction paramétrique ne retourne pas de vecteur" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Un vecteur bidimensionnel est nécessaire" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Les éléments de la fonction paramétrique doivent être scalaires" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "La dérivée %1 n'a pas été mise en œuvre." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Impossible de comprendre la valeur réelle : %1" + +#~ msgid "Subtraction" +#~ msgstr "Soustraction" diff --git a/po/fr/kalgebramobile.po b/po/fr/kalgebramobile.po new file mode 100644 index 0000000..ee43680 --- /dev/null +++ b/po/fr/kalgebramobile.po @@ -0,0 +1,330 @@ +# SPDX-FileCopyrightText: 2020, 2021, 2022, 2023, 2024 Xavier Besnard +# Simon Depiets , 2018, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-05 11:53+0100\n" +"Last-Translator: Xavier BESNARD \n" +"Language-Team: French >\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Accelerator-Marker: &\n" +"X-Environment: kde\n" +"X-Generator: Lokalize 24.12.0\n" +"X-Text-Markup: kde4\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calculateur" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Charger un script" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Enregistrer un script" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exporter un journal" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Évaluer" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calculer" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Effacer un journal" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Tracé 2D" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Tracé 3D" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copier « %1 »" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Historique vide de console" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Ajouter" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Tout effacer" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Fermer la boîte de dialogue" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Supprimer un tracé" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Aucune tracé disponible" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Expressions à calculer..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Dictionnaire" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nom :" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1 :" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Graphe 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Graphe 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tables de valeurs" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Dictionnaire" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "À propos de KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Tracé en 2D" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Enregistrer" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Afficher la grille" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Réinitialiser l'affichage" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Tracé en 3D" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Résultats" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tables de valeurs" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Erreur : le pas doit être différent de 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Erreur : le départ et l'arrivée sont identiques" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Erreur : %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Exécuter" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Entrée" + +# unreviewed-context +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "De :" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "À :" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Pas" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Exécuter" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Une calculatrice portable" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Mainteneur" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Geoffray Levasseur, Matthieu Robin, Simon Depiets" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" +"geoffray.levasseurbrandin@numericable.fr, kde@macolu.org, sdepiets@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Une calculatrice scientifique simple" + +#~ msgid "Results:" +#~ msgstr "Résultats :" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "KAlgebra est développé par la communauté chaleureuse de KDE et KDE Edu qui " +#~ "soutient le logiciel libre." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "Si vous souhaitez en apprendre davantage au sujet de KAlgebra, vous " +#~ "pourrez trouver davantage d'informations sur notre site officiel et sur le " +#~ "wiki des utilisateurs.
Si vous rencontrez le moindre problème avec votre logiciel, veuillez le " +#~ "signaler sur notre système de suivi de " +#~ "bogues." diff --git a/po/ga/kalgebra.po b/po/ga/kalgebra.po new file mode 100644 index 0000000..98594f5 --- /dev/null +++ b/po/ga/kalgebra.po @@ -0,0 +1,999 @@ +# Irish translation of kalgebra +# Copyright (C) 2009 This_file_is_part_of_KDE +# This file is distributed under the same license as the kalgebra package. +# Kevin Scannell , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kdeedu/kalgebra.po\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2007-06-27 10:27-0500\n" +"Last-Translator: Kevin Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " +"3 : 4\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Roghanna: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Earráid: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Iompórtáilte: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Earráid: Níorbh fhéidir %1 a luchtú.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Eolas" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Cuir feidhm leis/in eagar" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Réamhamharc" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Ó:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Go:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Roghanna" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, fuzzy, kde-format +#| msgid "Remove '%1'" +msgctxt "@action:button" +msgid "Remove" +msgstr "Bain '%1'" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Seisiún" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Athróga" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "&Calculator" +msgstr "Áireamhán" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "C&alculator" +msgstr "Áireamhán" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Luchtaigh Script..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Scripteanna Le Déanaí" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Sábháil Script..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Easpórtáil Logchomhad..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Luacháil" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Feidhmeanna" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Liosta" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Cuir Leis" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Graf &2T" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Graf 2&T" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Greille" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Caomhnaigh an Cóimheas Treoíochta" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Taifeach" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Garbh" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Gnáth" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Mín" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "An-Mhín" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Graf &3T" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Graf 3T" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Athshoc&raigh an tAmharc" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Poncanna" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Línte" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Soladach" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Oibríochtaí" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Foclóir" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Lorg:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Eagarthóireacht" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Roghnaigh script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Comhad HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Earráidí: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "Image File (*.png)" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Comhad Íomhá (*.png)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Réidh" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Cuir athróg leis" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Iontráil ainm na hathróige nuaí" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2010 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006-2010 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Kevin Scannell" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kscanne@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Cuir athróg leis/in eagar" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "Athróga" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Cuir luach '%1' in eagar" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "níl ar fáil" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "MÍCHEART" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Ar Chlé:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Barr:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Leithead:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Airde:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Cuir i bhFeidhm" + +#~ msgid "C&onsole" +#~ msgstr "C&onsól" + +#~ msgid "&Console" +#~ msgstr "&Consól" + +#~ msgid "" +#~ "*.png|Image File\n" +#~ "*.svg|SVG File" +#~ msgstr "" +#~ "*.png|Comhad Íomhá\n" +#~ "*.svg|Comhad SVG" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "Formula" +#~ msgstr "Foirmle" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Críochnaithe: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Earráid: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Glan" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|Comhad PNG" + +#~ msgid "&Transparency" +#~ msgstr "&Trédhearcacht" + +#~ msgid "Type" +#~ msgstr "Cineál" + +#~ msgid "Result: %1" +#~ msgstr "Toradh: %1" + +#~ msgid "To Expression" +#~ msgstr "Go Slonn" + +#~ msgid "To MathML" +#~ msgstr "Go MathML" + +#~ msgid "Simplify" +#~ msgstr "Simpligh" + +#~ msgid "Examples" +#~ msgstr "Samplaí" + +#~ msgid "We can only draw Real results." +#~ msgstr "Ní féidir ach torthaí Réadacha a thaispeáint." + +#~ msgid "center" +#~ msgstr "lár" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Ainm" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Feidhm" + +#~ msgid "%1 function added" +#~ msgstr "Feidhm %1 curtha leis" + +#~ msgid "Hide '%1'" +#~ msgstr "Folaigh '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Taispeáin '%1'" + +#~ msgid "Selected viewport too small" +#~ msgstr "Tá an t-amharc roghnaithe róbheag" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Cur Síos" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Paraiméadair" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Sampla" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... paraiméadair, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Suimiú" + +#~ msgid "Multiplication" +#~ msgstr "Iolrú" + +#~ msgid "Division" +#~ msgstr "Roinnt" + +#~ msgid "Power" +#~ msgstr "Cumhacht" + +#~ msgid "Remainder" +#~ msgstr "Fuílleach" + +#~ msgid "Quotient" +#~ msgstr "Líon" + +#~ msgid "The factor of" +#~ msgstr "An fachtóir de" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Iolrán. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Feidhm a áiríonn síneas den uillinn thugtha" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Feidhm a áiríonn comhshíneas den uillinn thugtha" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Feidhm a áiríonn tangant den uillinn thugtha" + +#~ msgid "Secant" +#~ msgstr "Seiceant" + +#~ msgid "Cosecant" +#~ msgstr "Comhsheiceant" + +#~ msgid "Cotangent" +#~ msgstr "Comhthangant" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Síneas hipearbóileach" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Comhshíneas hipearbóileach" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Tangant hipearbóileach" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Seiceant hipearbóileach" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Comhsheiceant hipearbóileach" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Comhthangant hipearbóileach" + +#~ msgid "Arc sine" +#~ msgstr "Arcshíneas" + +#~ msgid "Arc cosine" +#~ msgstr "Arc-chomhshíneas" + +#~ msgid "Arc tangent" +#~ msgstr "Arcthangant" + +#~ msgid "Arc cotangent" +#~ msgstr "Arc-chomhthangant" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Arcthangant hipearbóileach" + +#~ msgid "Summatory" +#~ msgstr "Feidhm Shuimithe" + +#~ msgid "Productory" +#~ msgstr "Feidhm Iolraithe" + +#~ msgid "Differentiation" +#~ msgstr "Difreáil" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Arcshíneas hipearbóileach" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Arc-chomhshíneas hipearbóileach" + +#~ msgid "Arc cosecant" +#~ msgstr "Arc-chomhsheiceant" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Arc-chomhsheiceant hipearbóileach" + +#~ msgid "Arc secant" +#~ msgstr "Arcsheiceant" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Arcsheiceant hipearbóileach" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Easpónant (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Logartam aiceanta" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Logartam le bunuimhir 10" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Luach uimhriúil. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Luach urláir. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Luach síleála. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Íosmhéid" + +#~ msgid "Maximum" +#~ msgstr "Uasmhéid" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Níos mó ná. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : teorainn" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Luach" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Caithfidh tú oibríocht cheart a shonrú" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "" +#~ "Níorbh fhéidir rogha oiriúnach a aimsiú le haghaidh ráitis choinníollaigh." + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Uasteorainn nó íosteorainn mhícheart." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Sainíodh ciogal athróg" + +#~ msgid "Unknown token %1" +#~ msgstr "Teaghrán anaithnid comharthach %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "Tá dhá pharaiméadar ar a laghad de dhíth ar %1" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "Tá %2 paraiméadar de dhíth ar %1" + +#~ msgid "Empty container: %1" +#~ msgstr "Coimeádán folamh: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Ní cheadaítear coinníollacha ach laistigh de bhreacstruchtúir." + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "Ní coinníoll oiriúnach laistigh den bhreacstruchtúr é %1" + +#~ msgid "We can only declare variables" +#~ msgstr "Ní féidir ach athróga a fhógairt" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Earráid le linn parsála: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Coimeádán anaithnid: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Ní féidir an luach %1 a chódú." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Ní féidir mac-chomhthéacsanna a bheith ag oibreoir %1." + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Gan tacaíocht/anaithnid: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Bhíothas ag súil le %1 in ionad '%2'" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Lúibín deas ar iarraidh" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Lúibín deas neamhchothrom" + +#~ msgid "Unexpected token %1" +#~ msgstr "Teaghrán comharthach %1 gan súil leis" + +#~ msgid "Could not call '%1'" +#~ msgstr "Níorbh fhéidir '%1' a ghlao" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Níorbh fhéidir '%1' a réiteach" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Teaghrán anaithnid comharthach %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Ní féidir fuílleach ar 0 a áireamh." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Ní féidir an fachtóir ar 0 a áireamh." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Ní féidir an comhiolrú is lú de 0 a áireamh." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Níorbh fhéidir luach %1 a áireamh" + +#~ msgid "Invalid index for a container" +#~ msgstr "Innéacs neamhbhailí ar choimeádán" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Ní féidir oibriú le veicteoirí de mhéideanna éagsúla." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Níorbh fhéidir %1 an veicteora a áireamh" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "Níl an díorthach %1 ar fáil." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Níor tuigeadh an luach réadach: %1" + +#~ msgid "Subtraction" +#~ msgstr "Dealú" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Earráid: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Roghnaigh eilimint ó choimeádán" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Earráid: Luachanna de dhíth chun graf a dhearadh" + +#~ msgid "Generating... Please wait" +#~ msgstr "Á ghiniúint... fan go fóill" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Sábháil Logchomhad" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Mode" +#~ msgstr "Mód" + +#~ msgid "Save the expression" +#~ msgstr "Sábháil an slonn" + +#~ msgid "Calculate the expression" +#~ msgstr "Áirigh an slonn" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Ní cheadaítear íosteorainn ≥ uasteorainn" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Níl feidhm %1 ann" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Níl athróg %1 ann" + +#~ msgid "Need a var name and a value" +#~ msgstr "Ainm athróige agus luach de dhíth" + +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "" +#~ "Is féidir luach coimeádáin a roghnú trína innéacs slánuimhreach amháin" + +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Athróg anaithnid chuimsithe: %1" + +#~ msgid "From parser:" +#~ msgstr "Ón pharsálaí:" + +#~ msgid "" +#~ "Wrong parameter count in a selector, should have 2 parameters, the " +#~ "selected index and the container." +#~ msgstr "" +#~ "Tá líon na bparaiméadar mícheart i roghnóir; ba chóir dhá pharaiméadar a " +#~ "bheith ann, an t-innéacs roghnaithe agus an coimeádán." + +#~ msgid "piece or otherwise in the wrong place" +#~ msgstr "píosa nó otherwise san áit mhícheart" + +#~ msgid "No bounding variables for this sum" +#~ msgstr "Níl athróga teorantacha ag an tsuim seo" + +#~ msgid "Missing bounding limits on a sum operation" +#~ msgstr "Teorainneacha ar iarraidh ar oibríocht suimithe" + +#~ msgid "Real" +#~ msgstr "Fíor" + +#~ msgid "%1, " +#~ msgstr "%1, " + +#~ msgctxt "Parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@item:inmenu" +#~ msgid "&New" +#~ msgstr "&Nua" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Quit" +#~ msgstr "&Scoir" + +#~ msgid "&Save" +#~ msgstr "&Sábháil" + +#~ msgid "Sine" +#~ msgstr "Síneas" + +#~ msgid "Cosine" +#~ msgstr "Comhshíneas" + +#~ msgid "Tangent" +#~ msgstr "Tangant" diff --git a/po/gl/kalgebra.po b/po/gl/kalgebra.po new file mode 100644 index 0000000..1a7e839 --- /dev/null +++ b/po/gl/kalgebra.po @@ -0,0 +1,501 @@ +# translation of kalgebra.po to galician +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Miguel Branco , 2008. +# mvillarino , 2008, 2009. +# Marce Villarino , 2008. +# Manuel A. Vazquez , 2009. +# Xosé , 2009, 2010, 2011, 2013. +# Marce Villarino , 2009, 2013. +# Adrián Chaves Fernández , 2015, 2016, 2017. +# Adrián Chaves (Gallaecio) , 2017, 2018, 2019, 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2023-05-01 11:04+0200\n" +"Last-Translator: Adrián Chaves (Gallaecio) \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 23.04.0\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opcións: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Pegar «%1» na entrada" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Pegar na entrada" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Erro: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importado: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Erro: Non se puido cargar %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Información" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Engadir/Editar unha función" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Previsualización" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "De:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Ata:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opcións" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Aceptar" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Retirar" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "As opcións indicadas non son correctas" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "O límite inferior non pode ser máis grande que o límite superior" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Representar en 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Representar en 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sesión" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variábeis" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calculadora" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "C&alculadora" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Cargar un guión…" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Scripts recentes" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Gardar o guión…" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exportar o rexistro…" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Inserir…" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Modo de execución" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calcular" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Avaliar" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funcións" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "Eng&adir" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Área de visualización" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&Gráfico 2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Gráfico 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Grade" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Manter as proporcións" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolución" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Mala" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Boa" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Excelente" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Gráfico &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "Gráfico 3&D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Reiniciar a vista" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Puntos" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Liñas" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Sólido" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacións" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Dicionario" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Buscar:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Editar" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Escoller un guión" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Ficheiro HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Erros: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Selecciona onde colocar o gráfico xerado." + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Ficheiro de imaxe (*.png);;Ficheiro SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Listo" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Engadir unha variábel" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Insire un nome para a nova variábel" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Unha calculadora portátil" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Xosé Calvo" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "xosecalvo@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Engadir/Editar unha variábel" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Retirar a variábel" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Editar o valor «%1»" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "non dispoñíbel" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "FALSO" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Esquerda:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Arriba:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Anchura:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Altura:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Aplicar" + +#, fuzzy +#~| msgid "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d)" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "Ficheiro PNG (*.png);;Documento PDF (*.pdf);;Documento X3D (*.x3d)" + +#~ msgid "C&onsole" +#~ msgstr "C&onsola" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Consola" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Creou a funcionalidade que permite deseñar curvas implícitas. Melloras " +#~ "nas funcións de representación." + +#~ msgid "Formula" +#~ msgstr "Fórmula" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Erro: O tipo de función é erróneo" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Feito: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Erro: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Limpar" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|Ficheiro PNG" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Transparencia" + +#~ msgid "Type" +#~ msgstr "Tipo" diff --git a/po/gl/kalgebramobile.po b/po/gl/kalgebramobile.po new file mode 100644 index 0000000..690a95d --- /dev/null +++ b/po/gl/kalgebramobile.po @@ -0,0 +1,322 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# SPDX-FileCopyrightText: 2023, 2024 Adrián Chaves (Gallaecio) +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-05 08:06+0100\n" +"Last-Translator: Adrián Chaves (Gallaecio) \n" +"Language-Team: Proxecto Trasno (proxecto@trasno.gal)\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 24.12.0\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calculadora" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Cargar un guión" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Guión (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Gardar o guión" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exportar o rexistro" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Avaliar" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calcular" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Baleirar o rexistro" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Gráfica en 2D" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Gráfica en 3D" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copiar «%1»" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Baleirar o historial da consola" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Engadir" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Borralo todo" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Pechar o diálogo" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Retirar a gráfica" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Non hai ningunha gráfica dispoñíbel" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Expresión para calcular…" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Dicionario" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nome:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Gráfico en 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Gráfico en 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Táboas de valores" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variábeis" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Dicionario" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Sobre KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Gráfica en 2D" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Gardar" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Ver a grade" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Restabelecer a área de visualización" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Gráfica en 3D" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Resultados" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Táboas de valores" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Erros: o paso non pode ser 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Erros: O inicio e o final son o mesmo" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Erros: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Executar" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Entrada" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "De:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "A:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Paso" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Executar" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Unha calculadora portátil" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Mantemento." + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Adrian Chaves (Gallaecio)" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "adrian@chaves.io" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Unha calculadora científica sinxela" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "KAlgebra fornécello a encantadora comunidade de KDE e KDE Edu desde un " +#~ "ambiente de Software Libre." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "Se quere aprender máis sobre KAlgebra, atopará máis información no sitio " +#~ "web oficial e no wiki de " +#~ "usuarios.
Se ten calquera problema co software, informe del no noso sistema de seguimento de fallos." diff --git a/po/he/kalgebra.po b/po/he/kalgebra.po new file mode 100644 index 0000000..03bd04d --- /dev/null +++ b/po/he/kalgebra.po @@ -0,0 +1,438 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2023 Yaron Shahrabani +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2023-10-03 08:27+0300\n" +"Last-Translator: \n" +"Language-Team: צוות התרגום של KDE ישראל\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " +"n % 10 == 0) ? 2 : 3));\n" +"X-Generator: Poedit 3.3.2\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "אפשרויות: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "הדבקת „%1” לקלט" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "הדבקה לקלט" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    שגיאה: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "ייובא: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    שגיאה: לא ניתן לטעון את %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "מידע" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "הוספת/עריכת פונקציה" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "תצוגה מקדימה" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "מ־:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "עד:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "אפשרויות" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "אישור" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "הסרה" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "האפשרויות שציינת לא נכונות" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "הגבול התחתון לא יכול להיות גדול מהגבול העליון" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "שרטוט דו־ממדי" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "שרטוט תלת־ממדי" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "הפעלה" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "משתנים" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "מ&חשבון" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "מח&שבון" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&טעינת סקריפט…" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "סקריפטים אחרונים" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&שמירת סקריפט…" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "יי&צוא יומן…" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "ה&עברת התשובה…" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "מצב הפעלה" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "חישוב" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "שערוך" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "פונקציות" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "רשימה" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "הו&ספה" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "חרך תצוגה" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "תרשים &דו־ממדי" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "ת&רשים דו־ממדי" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&רשת" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&שימור יחס תצוגה" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "רזולוציה" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "גרועה" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "רגילה" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "מעודנת" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "מעודנת מאוד" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "תרשים &תלת־ממדי" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "תר&שים תלת־ממדי" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&איפוס תצוגה" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "נקודות" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "קווים" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "אחיד" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "פעולות" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&מילון" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "חיפוש אחר:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&עריכה" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "בחירת סקריפט" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "סקריפט (‎*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "קובץ HTML‏ (‎*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "שגיאות: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "נא לבחור איפה לשים את השרטוט שצויר" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "קובץ תמונה (‎*.png);;קובץ SVG‏ (‎*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "מוכן" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "הוספת משתנה" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "נא למלא שם למשתנה החדש" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "מחשבון כיס" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 אלש פול י גונזלז" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "אלש פול י גונזלז" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "צוות התרגום של KDE ישראל" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde-l10n-he@kde.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "הוספת/עריכת משתנה" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "הסרת משתנה" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "עריכת הערך ‚%1’" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "לא זמין" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "שגוי" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "שמאל:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "למעלה:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "רוחב:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "גובה:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "החלה" diff --git a/po/he/kalgebramobile.po b/po/he/kalgebramobile.po new file mode 100644 index 0000000..870a4d6 --- /dev/null +++ b/po/he/kalgebramobile.po @@ -0,0 +1,294 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2023 Yaron Shahrabani +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-04 22:33+0200\n" +"Last-Translator: Yaron Shahrabani \n" +"Language-Team: צוות התרגום של KDE ישראל\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 23.08.3\n" +"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " +"n % 10 == 0) ? 2 : 3));\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "מחשבון" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "טעינת סקריפט" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "סקריפט (‎*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "שמירת סקריפט" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "ייצוא יומן" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "שערוך" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "חישוב" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "ניקוי יומן" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "שרטוט דו־ממדי" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "שרטוט תלת־ממדי" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "העתקת „%1”" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "פינוי ההיסטוריה במסוף" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "הוספה" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "לפנות הכול" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "סגירת החלונית" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "הסרת שרטוט" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "אין שרטוט זמין" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "ביטוי לחישוב…" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "מילון" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "שם:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "רישום בדו־ממד" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "רישום בתלת־ממד" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "טבלאות ערכים" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "משתנים" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "מילון" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "על KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "שרטוט דו־ממדי" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "שמירה" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "הצגת רשת" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "איפוס חרך תצוגה" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "שרטוט תלת־ממדי" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "תוצאות" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "טבלאות ערכים" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "שגיאות: הצעד לא יכול להיות 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "שגיאות: ההתחלה והסיום זהים" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "שגיאות: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "הרצה" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "קלט" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "מ־:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "עד:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "צעד" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "הרצה" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "מחשבון כיס" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006‏-2023 אלש פול י גונזלז" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "אלש פול י גונזלז" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "מתחזק" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "צוות התרגום של KDE ישראל" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde-l10n-he@kde.org" diff --git a/po/hi/kalgebra.po b/po/hi/kalgebra.po new file mode 100644 index 0000000..aff2441 --- /dev/null +++ b/po/hi/kalgebra.po @@ -0,0 +1,865 @@ +# translation of kalgebra.po to Hindi +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Ravishankar Shrivastava , 2007. +# Raghavendra Kamath , 2021. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2021-09-17 20:07+0530\n" +"Last-Translator: Raghavendra Kamath \n" +"Language-Team: kde-hindi\n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.08.1\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, fuzzy, kde-format +#| msgid "Functions" +msgid "Options: %1" +msgstr "फंक्शन्स" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "जानकारी" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "फंक्शन जोड़ें/संपादित करें" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, fuzzy, kde-format +#| msgid "Functions" +msgid "Options" +msgstr "फंक्शन्स" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "ठीक है" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, fuzzy, kde-format +#| msgid "To Expression" +msgid "Session" +msgstr "को एक्सप्रेशन" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "चर" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "&Calculator" +msgstr "एक गणक" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "C&alculator" +msgstr "एक गणक" + +#: kalgebra.cpp:196 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Load Script" +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "स्क्रिप्ट लोड करें (&L)" + +#: kalgebra.cpp:200 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgid "Recent Scripts" +msgstr "स्क्रिप्ट सहेजें (&S)" + +#: kalgebra.cpp:205 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "स्क्रिप्ट सहेजें (&S)" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, fuzzy, kde-format +#| msgid "A calculator" +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "एक गणक" + +#: kalgebra.cpp:215 +#, fuzzy, kde-format +#| msgctxt "@title:column" +#| msgid "Value" +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "मान" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "फंक्शन्स" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "सूची" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "जोड़ें (&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2डी ग्राफ " + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2डी ग्राफ (&D)" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "ग्रिड (&G)" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "रिसॉल्यूशन" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "खराब" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "सामान्य" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "बढ़िया" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "बहुत बढ़िया" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3डी ग्राफ" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "३डी ग्राफ (&G)" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "दृश्य रीसेट करें (&R)" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "बिन्दुएँ" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "पंक्तियाँ" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "ठोस" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "शब्दकोष (&D)" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "संपादन (&E)" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "स्क्रिप्ट चुनें" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "स्क्रिप्ट (*.kal)" + +#: kalgebra.cpp:560 +#, fuzzy, kde-format +#| msgid "Text File (*)" +msgid "HTML File (*.html)" +msgstr "पाठ फ़ाइल (*)" + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgctxt "Function parameter separator" +#| msgid ", " +msgid ", " +msgstr "," + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Errors: %1" +msgstr "त्रुटि: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|छवि फ़ाइल\n" +"*.svg|एसवीजी फ़ाइल" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "तैयार" + +#: kalgebra.cpp:726 +#, fuzzy, kde-format +#| msgid "Add/Edit a variable" +msgid "Add variable" +msgstr "कोई चर जोड़ें/संपादित करें" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "एक गणक" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006 अलेक्स पोल गोंजालेज" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "एलेक्स पोल गोंजालेज" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "रविशंकर श्रीवास्तव, जी. करूणाकर" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "raviratlami@aol.in," + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "कोई चर जोड़ें/संपादित करें" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "चर" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "मूल्य '%1' संपादित करें" + +#: varedit.cpp:67 +#, fuzzy, kde-format +#| msgid "Add/Edit a variable" +msgid "not available" +msgstr "कोई चर जोड़ें/संपादित करें" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "गलत" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" + +#~ msgid "C&onsole" +#~ msgstr "कंसोल (&o)" + +#~ msgid "&Console" +#~ msgstr "कंसोल (&C)" + +#, fuzzy +#~| msgctxt "Current parameter in function prototype" +#~| msgid "par%1" +#~ msgid "Formula" +#~ msgstr "par%1" + +#, fuzzy +#~| msgid "Done: %1ms" +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "सम्पन्न: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "त्रुटि: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "साफ करें" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|पीएनजी फ़ाइल" + +#~ msgid "&Transparency" +#~ msgstr "पारदर्शिता (&T)" + +#~ msgid "Type" +#~ msgstr "क़िस्म" + +#~ msgid "To Expression" +#~ msgstr "को एक्सप्रेशन" + +#~ msgid "To MathML" +#~ msgstr "को मैथएमएल" + +#~ msgid "Simplify" +#~ msgstr "सरल करें" + +#~ msgid "center" +#~ msgstr "बीच में" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "नाम" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "फंक्शन" + +#~ msgid "%1 function added" +#~ msgstr "%1 फंक्शन जोड़े" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "वर्णन" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "पैरामीटर्स" + +#, fuzzy +#~| msgctxt "Parameter in function prototype" +#~| msgid "%1" +#~ msgid "%1(" +#~ msgstr "%1" + +#, fuzzy +#~| msgid "%1(..., parameters, ...)" +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1(..., पैरामीटर्स, ...)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "जोड़ें" + +#~ msgid "Multiplication" +#~ msgstr "गुणा" + +#~ msgid "Division" +#~ msgstr "भाग" + +#~ msgid "Power" +#~ msgstr "पावर" + +#~ msgid "Remainder" +#~ msgstr "शेषफल" + +#~ msgid "Quotient" +#~ msgstr "भागफल" + +#~ msgid "The factor of" +#~ msgstr "का फ़ैक्टर है" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "फैक्टोरियल. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "दिए गए कोण के ज्या का गणन करने का फंक्शन" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "दिए गए कोण के कोज्या का गणन करने का फंक्शन" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "दिए गए कोण के स्पर्शज्या का गणन करने का फंक्शन" + +#~ msgid "Secant" +#~ msgstr "सीकेण्ट" + +#~ msgid "Cosecant" +#~ msgstr "कोसीकेण्ट" + +#~ msgid "Cotangent" +#~ msgstr "कोस्पर्शज्या" + +#~ msgid "Hyperbolic sine" +#~ msgstr "हाइपरबोलिक ज्या" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "हाइपरबोलिक कोज्या" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "हाइपरबोलिक स्पर्शज्या" + +#~ msgid "Hyperbolic secant" +#~ msgstr "हाइपरबोलिक सीकेण्ट" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "हाइपरबोलिक कोसीकेण्ट" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "हाइपरबोलिक कोटिस्पर्शज्या" + +#~ msgid "Arc sine" +#~ msgstr "आर्क ज्या" + +#~ msgid "Arc cosine" +#~ msgstr "आर्क कोज्या" + +#~ msgid "Arc tangent" +#~ msgstr "आर्क स्पर्शज्या" + +#~ msgid "Arc cotangent" +#~ msgstr "आर्क कोटिस्पर्शज्या" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "अतिपरवलय चाप स्पर्शज्या" + +#~ msgid "Summatory" +#~ msgstr "समेटरी" + +#~ msgid "Productory" +#~ msgstr "प्रोडक्टरी" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "सामान्य" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "सूची" + +#~ msgid "Differentiation" +#~ msgstr "अवकलन" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "अतिपरवलय चाप ज्या" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "अतिपरवलय चाप कोज्या" + +#~ msgid "Arc cosecant" +#~ msgstr "चाप कोसीकेण्ट" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "अतिपरवलय चाप कोसीकेण्ट" + +#~ msgid "Arc secant" +#~ msgstr "चाप सीकेण्ट" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "अतिपरवलय चाप सीकेण्ट" + +#~ msgid "Exponent (e^x)" +#~ msgstr "एक्सपोनेंट (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "बेस-e का लघुगणक" + +#~ msgid "Base-10 logarithm" +#~ msgstr "बेस-10 का लघुगणक" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "निरपेक्ष मूल्य. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "फ्लोर मूल्य. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "सील मूल्य. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "न्यूनतम" + +#~ msgid "Maximum" +#~ msgstr "अधिकतम" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "से बड़ा है. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#, fuzzy +#~| msgctxt "Uncorrect function name in function prototype" +#~| msgid "%1(" +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr "," + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "मान" + +#, fuzzy +#~| msgctxt "Function parameter separator" +#~| msgid ", " +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "," + +#, fuzzy +#~| msgid "Calculate the expression" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "एक्सप्रेशन की गणना करें" + +#, fuzzy +#~| msgid "Calculate the expression" +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "एक्सप्रेशन की गणना करें" + +#, fuzzy +#~| msgid "Calculate the expression" +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "एक्सप्रेशन की गणना करें" + +#, fuzzy +#~| msgid "Calculate the expression" +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "एक्सप्रेशन की गणना करें" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "Subtraction" +#~ msgstr "ऋण" + +#, fuzzy +#~| msgid "Error: %1" +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "त्रुटि: %1" + +#~ msgid "Generating... Please wait" +#~ msgstr "बनाया जा रहा है... कृपया इंतजार करें." + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "लॉग सहेजें...(&S)" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "बढ़िया" + +#~ msgid "Mode" +#~ msgstr "मोड" + +#~ msgid "Save the expression" +#~ msgstr "एक्सप्रेशन सहेजें" + +#~ msgid "Calculate the expression" +#~ msgstr "एक्सप्रेशन की गणना करें" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#, fuzzy +#~| msgid "WRONG" +#~ msgid "%1" +#~ msgstr "गलत" + +#~ msgid "From parser:" +#~ msgstr "पारसर से:" + +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "अतिपरवलय चाप कोस्पर्शज्या" + +#~ msgid "Real" +#~ msgstr "रीयल" + +#, fuzzy +#~| msgctxt "Function parameter separator" +#~| msgid ", " +#~ msgid "%1, " +#~ msgstr "," + +#~ msgid "Conjugate" +#~ msgstr "कॉन्जुगेट" + +#~ msgid "Imaginary" +#~ msgstr "इमेजिनरी" + +#~ msgctxt "@item:inmenu" +#~ msgid "&New" +#~ msgstr "नया (&N)" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Quit" +#~ msgstr "बाहर जाएँ (&Q)" + +#~ msgid "&Save" +#~ msgstr "सहेजें (&S)" diff --git a/po/hne/kalgebra.po b/po/hne/kalgebra.po new file mode 100644 index 0000000..5cae1be --- /dev/null +++ b/po/hne/kalgebra.po @@ -0,0 +1,837 @@ +# translation of kalgebra.po to Hindi +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Ravishankar Shrivastava , 2007. +# Ravishankar Shrivastava , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2009-02-21 19:55+0530\n" +"Last-Translator: Ravishankar Shrivastava \n" +"Language-Team: Hindi \n" +"Language: hne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.2\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, fuzzy, kde-format +#| msgid "Functions" +msgid "Options: %1" +msgstr "फंक्सन्स" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "जानकारी" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "फंक्सन जोड़व/संपादित करव" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, fuzzy, kde-format +#| msgid "Functions" +msgid "Options" +msgstr "फंक्सन्स" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "ठीक" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, fuzzy, kde-format +#| msgid "To Expression" +msgid "Session" +msgstr "को एक्सप्रेसन" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "चर" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "&Calculator" +msgstr "एक गनक" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "C&alculator" +msgstr "एक गनक" + +#: kalgebra.cpp:196 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Load Script" +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "स्क्रिप्ट लोड करव (&L)" + +#: kalgebra.cpp:200 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgid "Recent Scripts" +msgstr "स्क्रिप्ट सहेजव (&S)" + +#: kalgebra.cpp:205 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "स्क्रिप्ट सहेजव (&S)" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, fuzzy, kde-format +#| msgid "A calculator" +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "एक गनक" + +#: kalgebra.cpp:215 +#, fuzzy, kde-format +#| msgctxt "@title:column" +#| msgid "Value" +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "मान" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "फंक्सन्स" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "सूची" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "जोड़व (&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2डी ग्राफ " + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2डी ग्राफ (&D)" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "ग्रिड (&G)" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "रिसाल्यूसन" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "खराब" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "सामान्य" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "बढ़िया" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "बहुत बढ़िया" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3डी ग्राफ" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "३डी ग्राफ (&G)" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "दृस्य रीसेट करव (&R)" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "बिन्दुव" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "पंक्तियाँ" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "ठोस" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "सब्दकोस (&D)" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "संपादन (&E)" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "स्क्रिप्ट चुनव" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "स्क्रिप्ट (*.kal)" + +#: kalgebra.cpp:560 +#, fuzzy, kde-format +#| msgid "Text File (*)" +msgid "HTML File (*.html)" +msgstr "पाठ फाइल (*)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "," + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Errors: %1" +msgstr "गलती: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|फोटू फाइल\n" +"*.svg|एसवीजी फाइल" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "तैयार" + +#: kalgebra.cpp:726 +#, fuzzy, kde-format +msgid "Add variable" +msgstr "कोई चर जोड़व/संपादित करव" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "एक गनक" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2008 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2008 अलेक्स पोल गोंजालेज" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "एलेक्स पोल गोंजालेज" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "रविसंकर सिरीवास्तव, जी. करूनाकर" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "raviratlami@aol.in," + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "कोई चर जोड़व/संपादित करव" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "चर" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "मूल्य '%1' संपादित करव" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "नइ मिलत" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "गलत" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" + +#~ msgid "C&onsole" +#~ msgstr "कंसोल (&o)" + +#~ msgid "&Console" +#~ msgstr "कंसोल (&C)" + +#~ msgid "Formula" +#~ msgstr "सूत्र" + +#, fuzzy +#~| msgctxt "3D graph done in x miliseconds" +#~| msgid "Done: %1ms" +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "पूरा: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "गलती: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "साफ करव" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|पीएनजी फाइल" + +#~ msgid "&Transparency" +#~ msgstr "पारदर्सिता (&T)" + +#~ msgid "Type" +#~ msgstr "किसिम" + +#~ msgid "To Expression" +#~ msgstr "को एक्सप्रेसन" + +#~ msgid "To MathML" +#~ msgstr "को मैथएमएल" + +#~ msgid "Simplify" +#~ msgstr "सरल करव" + +#~ msgid "center" +#~ msgstr "बीच में" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "नाम" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "फंक्सन" + +#~ msgid "%1 function added" +#~ msgstr "%1 फंक्सन जोड़े" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "वर्नन" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "पैरामीटर्स" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... पैरामीटर्स, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "जोड़व" + +#~ msgid "Multiplication" +#~ msgstr "गुना" + +#~ msgid "Division" +#~ msgstr "भाग" + +#~ msgid "Power" +#~ msgstr "पावर" + +#~ msgid "Remainder" +#~ msgstr "सेसफल" + +#~ msgid "Quotient" +#~ msgstr "भागफल" + +#~ msgid "The factor of" +#~ msgstr "का फैक्टर हे" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "फैक्टोरियल. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "दे गे कोन के ज्या के गनन करे के फंक्सन" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "दे गे कोन के कोज्या के गनन करे के फंक्सन" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "दे गे कोन के स्पर्सज्या के गनन करे के फंक्सन" + +#~ msgid "Secant" +#~ msgstr "सीकेन्ट" + +#~ msgid "Cosecant" +#~ msgstr "कोसीकेन्ट" + +#~ msgid "Cotangent" +#~ msgstr "कोस्पर्सज्या" + +#~ msgid "Hyperbolic sine" +#~ msgstr "हाइपरबोलिक ज्या" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "हाइपरबोलिक कोज्या" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "हाइपरबोलिक स्पर्सज्या" + +#~ msgid "Hyperbolic secant" +#~ msgstr "हाइपरबोलिक सीकेन्ट" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "हाइपरबोलिक कोसीकेन्ट" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "हाइपरबोलिक कोटिस्पर्सज्या" + +#~ msgid "Arc sine" +#~ msgstr "आर्क ज्या" + +#~ msgid "Arc cosine" +#~ msgstr "आर्क कोज्या" + +#~ msgid "Arc tangent" +#~ msgstr "आर्क स्पर्सज्या" + +#~ msgid "Arc cotangent" +#~ msgstr "आर्क कोटिस्पर्सज्या" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "अतिपरवलय चाप स्पर्सज्या" + +#~ msgid "Summatory" +#~ msgstr "समेटरी" + +#~ msgid "Productory" +#~ msgstr "प्रोडक्टरी" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "सामान्य" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "सूची" + +#~ msgid "Differentiation" +#~ msgstr "अवकलन" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "अतिपरवलय चाप ज्या" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "अतिपरवलय चाप कोज्या" + +#~ msgid "Arc cosecant" +#~ msgstr "चाप कोसीकेन्ट" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "अतिपरवलय चाप कोसीकेन्ट" + +#~ msgid "Arc secant" +#~ msgstr "चाप सीकेन्ट" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "अतिपरवलय चाप सीकेन्ट" + +#~ msgid "Exponent (e^x)" +#~ msgstr "एक्सपोनेंट (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "बेस-e के लघुगनक" + +#~ msgid "Base-10 logarithm" +#~ msgstr "बेस-10 के लघुगनक" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "निरपेक्छ मूल्य. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "फ्लोर मूल्य. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "सील मूल्य. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "सबसे कम" + +#~ msgid "Maximum" +#~ msgstr "सबसे अधिक" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "से बड़ा हे. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr "," + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "मान" + +#, fuzzy +#~| msgid ", " +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "," + +#, fuzzy +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "एक्सप्रेसन के गनना करव" + +#, fuzzy +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "एक्सप्रेसन के गनना करव" + +#, fuzzy +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "एक्सप्रेसन के गनना करव" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "Subtraction" +#~ msgstr "रिन" + +#, fuzzy +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "गलती: %1" + +#~ msgid "Generating... Please wait" +#~ msgstr "बनात हे... किरपा करके, अगोरव." + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "लाग सहेजव...(&S)" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "बढ़िया" + +#~ msgid "Mode" +#~ msgstr "मोड" + +#~ msgid "Save the expression" +#~ msgstr "एक्सप्रेसन सहेजव" + +#~ msgid "Calculate the expression" +#~ msgstr "एक्सप्रेसन के गनना करव" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "From parser:" +#~ msgstr "पारसर से:" + +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "अतिपरवलय चाप कोस्पर्सज्या" + +#~ msgid "Real" +#~ msgstr "रीयल" + +#, fuzzy +#~| msgctxt "Function parameter separator" +#~| msgid ", " +#~ msgid "%1, " +#~ msgstr "," + +#~ msgid "Conjugate" +#~ msgstr "कान्जुगेट" + +#~ msgid "Imaginary" +#~ msgstr "इमेजऊनरी" + +#~ msgctxt "@item:inmenu" +#~ msgid "&New" +#~ msgstr "नवा (&N)" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Quit" +#~ msgstr "बाहिर जाव (&Q)" + +#~ msgid "&Save" +#~ msgstr "सहेजव (&S)" diff --git a/po/hr/kalgebra.po b/po/hr/kalgebra.po new file mode 100644 index 0000000..be87f24 --- /dev/null +++ b/po/hr/kalgebra.po @@ -0,0 +1,948 @@ +# Translation of kalgebra to Croatian +# +# Andrej Dundovic , 2010. +# Ivo Ugrina , 2010. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2010-02-25 21:28+0100\n" +"Last-Translator: Ivo Ugrina \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.0\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, fuzzy, kde-format +#| msgid "Options" +msgid "Options: %1" +msgstr "Opcije" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, fuzzy, kde-format +#| msgid "
    Error: %1
  • %2
" +msgid "
    Error: %1
  • %2
" +msgstr "
    Pogreška: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, fuzzy, kde-format +#| msgid "
    Error: %1
  • %2
" +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Pogreška: %1
  • %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informacije" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Dodaj/Editiraj funkciju" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Pretpregled" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Od:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Za:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opcije" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "U redu" + +#: functionedit.cpp:115 +#, fuzzy, kde-format +#| msgid "Remove '%1'" +msgctxt "@action:button" +msgid "Remove" +msgstr "Ukloni '%1'" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Opcije koje ste podesili nisu točne" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Varijable" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "&Calculator" +msgstr "Kalkulator" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "C&alculator" +msgstr "Kalkulator" + +#: kalgebra.cpp:196 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Load Script" +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Učitaj skriptu" + +#: kalgebra.cpp:200 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgid "Recent Scripts" +msgstr "&Spremi skriptu" + +#: kalgebra.cpp:205 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Spremi skriptu" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, fuzzy, kde-format +#| msgid "A calculator" +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Kalkulator" + +#: kalgebra.cpp:215 +#, fuzzy, kde-format +#| msgctxt "@title:column" +#| msgid "Value" +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Vrijednost" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkcije" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Dodaj" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Točka gledišta" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D graf" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D graf" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Rezolucija" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Siromašno" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normalno" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fino" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Vrlo fino" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D graf" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &graf" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Točke" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linije" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Čvrto" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacije" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Rječnik" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Traži: " + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Uređivanje" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Izaberi skriptu" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: kalgebra.cpp:560 +#, fuzzy, kde-format +#| msgid "Text File (*)" +msgid "HTML File (*.html)" +msgstr "Tekstualna datoteka (*)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "" + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Errors: %1" +msgstr "Pogreška: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|PNG datoteka\n" +"*.svg|SVG datoteka" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Spremno" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Dodaj varijablu" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Unesi ime za novu varijablu" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "Kalkulator" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2009 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006–2009 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Dodaj/Uredi varijablu" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "Varijable" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Uredi '%1' vrijednost" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "nije dostupno" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "Pogrešno" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Lijevo:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Vrh:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Širina:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Visina:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Primijeni" + +#~ msgid "C&onsole" +#~ msgstr "K&onzola" + +#~ msgid "&Console" +#~ msgstr "&Konzola" + +#~ msgid "Formula" +#~ msgstr "Formula" + +#~ msgid "&Transparency" +#~ msgstr "&Transparentnost" + +#~ msgid "Type" +#~ msgstr "Tip" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG datoteka" + +#~ msgid "Result: %1" +#~ msgstr "Rezultati: %1" + +#~ msgid "To MathML" +#~ msgstr "U MathML" + +#~ msgid "Simplify" +#~ msgstr "Pojednostavni" + +#, fuzzy +#~| msgctxt "@title:column" +#~| msgid "Example" +#~ msgid "Examples" +#~ msgstr "Primjeri" + +#~ msgid "We can only draw Real results." +#~ msgstr "Jedino se mogu crtati realni rezultati." + +#~ msgid "The expression is not correct" +#~ msgstr "Izraz je netočan" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Očisti" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1…" + +#~ msgid "center" +#~ msgstr "centar" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Ime" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funkcija" + +#~ msgid "Hide '%1'" +#~ msgstr "Sakrij '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Prikaži '%1'" + +#~ msgid "Selected viewport too small" +#~ msgstr "Izabrana točka gledišta je premala" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Opis" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parametri" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Primjeri" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1… parametri, …%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Zbrajanje" + +#~ msgid "Multiplication" +#~ msgstr "Množenje" + +#~ msgid "Division" +#~ msgstr "Dijeljenje" + +#~ msgid "Power" +#~ msgstr "Eksponent" + +#~ msgid "Remainder" +#~ msgstr "Ostatak" + +#~ msgid "Quotient" +#~ msgstr "Kvocijent" + +#~ msgid "The factor of" +#~ msgstr "Faktor od" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Faktorijela. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funkcija za računanje sinusa danog kuta" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funkcija za računanje kosinusa danog kuta" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funkcija za računanje tangensa danog kuta" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Sinus hiperbolni" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hiperbolički kosinus" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hiperbolički tangens" + +#~ msgid "Arc sine" +#~ msgstr "Arkus sinus" + +#~ msgid "Arc cosine" +#~ msgstr "Arkus kosinus" + +#~ msgid "Arc tangent" +#~ msgstr "Arkus tangens" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "Normalno" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "Lista" + +#~ msgid "Differentiation" +#~ msgstr "Deriviranje" + +#~ msgid "Base-e logarithm" +#~ msgstr "prirodni logaritam (baza e)" + +#~ msgid "Base-10 logarithm" +#~ msgstr "logaritam s bazom 10" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Apsolutna vrijednost. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Najveće cijelo (pod). floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Najmanje cijelo (strop). ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimum:" + +#~ msgid "Maximum" +#~ msgstr "Maksimum:" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Veći od. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(…, par%2, …)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : granice" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Vrijednost" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Morate specifirati ispravnu operaciju" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Nepoznat identifikator: %1" + +#~ msgid "The result is not a number" +#~ msgstr "Rezultat nije broj" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 treba barem 2 parametra" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 treba %2 parametra" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Nedostaje granica za '%1'" + +#, fuzzy +#~| msgid "Missing boundary for '%1'" +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Nedostaje granica za '%1'" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 nedostaju granice na '%2'" + +#~ msgid "Wrong declare" +#~ msgstr "Pogrešna deklaracija" + +#~ msgid "Empty container: %1" +#~ msgstr "Prazan spremnik: %1" + +#~ msgid "We can only declare variables" +#~ msgstr "Deklarirati se mogu samo varijable" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Samo su ograničene varijable dopuštene" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Pogreška pri parsiranju: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Spremnik nepoznat: %1" + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Element '%1' nije operator." + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Nepodržan/nepoznat: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Očekivao %1 umjesto '%2'" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Nedostaje desna zagrada" + +#, fuzzy +#~| msgid "Cannot calculate the remainder on 0." +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Ne mogu izračunati ostatak na 0." + +#, fuzzy +#~| msgid "Wrong parameter count, had 1 parameter for '%2'" +#~| msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Pogrešan broj parametara. Dobio %1 parametar za '%2'" +#~ msgstr[1] "Pogrešan broj parametara. Dobio %1 parametra za '%2'" +#~ msgstr[2] "Pogrešan broj parametara. Dobio %1 parametara za '%2'" + +#, fuzzy +#~| msgid "Cannot call '%1'" +#~ msgid "Could not call '%1'" +#~ msgstr "Neuspješno pozivanje '%1'" + +#, fuzzy +#~| msgid "Cannot call '%1'" +#~ msgid "Could not solve '%1'" +#~ msgstr "Neuspješno pozivanje '%1'" + +#, fuzzy +#~| msgid "Enter a name for the new variable" +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Unesi ime za novu varijablu" + +#, fuzzy +#~| msgid "Missing boundary for '%1'" +#~ msgid "Unexpected type" +#~ msgstr "Nedostaje granica za '%1'" + +#, fuzzy +#~| msgid "Cannot convert %1 to %2" +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Ne mogu konvertirati %1 u %2." + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~| msgctxt "html representation of an operator" +#~| msgid "%1" +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Ne mogu izračunati ostatak na 0." + +#~ msgid "Invalid index for a container" +#~ msgstr "Neispravan indeks za spremnik" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Izvršavanje operacija na vektorima različitih duljina nije moguće." + +#, fuzzy +#~| msgid "Cannot calculate the remainder on 0." +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Ne mogu izračunati ostatak na 0." + +#~ msgid "Incorrect domain." +#~ msgstr "Neispravna domena." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Potreban je dvodimenzionalan vektor" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "%1. derivacija nije implementirana" + +#~ msgid "Subtraction" +#~ msgstr "Oduzimanje" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Pogreška: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Izaberite element iz spremnika" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Pogreška: potebne su vrijednosti za nacrtati graf" + +#~ msgid "Generating... Please wait" +#~ msgstr "Generira se… Molim pričekajte" + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Pogrešan broj parametara. Dobio %1 parametar za '%2'" +#~ msgstr[1] "Pogrešan broj parametara. Dobio %1 parametra za '%2'" +#~ msgstr[2] "Pogrešan broj parametara. Dobio %1 parametara za '%2'" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Spremi dnevnik" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "Fino" + +#~ msgid "We can only call functions" +#~ msgstr "Jedino se funkcije mogu pozivati" + +#~ msgid "Wrong parameter count" +#~ msgstr "Pogrešan broj parametara" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~| msgid "Wrong parameter count" +#~ msgid "Invalid parameter count." +#~ msgstr "Pogrešan broj parametara" + +#~ msgid "Mode" +#~ msgstr "Način rada" + +#~ msgid "Save the expression" +#~ msgstr "Snimi izraz" + +#~ msgid "Calculate the expression" +#~ msgstr "Izračunaj izraz" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot apply '%1' to '%2'" +#~ msgstr "Nije moguće primjeniti '%1'na '%2'." + +#~ msgid "Cannot check '%1' type" +#~ msgstr "Neuspješna provjera tipa '%1'" + +#~ msgid "Wrong number of parameters when calling '%1'" +#~ msgstr "Pogrešan broj parametara pri pozivanju '%1'" diff --git a/po/hu/kalgebra.po b/po/hu/kalgebra.po new file mode 100644 index 0000000..37bf163 --- /dev/null +++ b/po/hu/kalgebra.po @@ -0,0 +1,498 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Kristóf Kiszel , 2011, 2014. +# Balázs Úr , 2012, 2013. +# SPDX-FileCopyrightText: 2024 Kristof Kiszel +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2024-03-04 21:26+0100\n" +"Last-Translator: Kristof Kiszel \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 23.08.5\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Beállítások: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "„%1” beillesztése a bemenetre" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Beillesztés a bemenetre" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Hiba: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importálva: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Hiba: %1 nem tölthető be.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Információ" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Függvény hozzáadása/szerkesztése" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Előnézet" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Ettől:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Eddig:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Beállítások" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Eltávolítás" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "A megadott beállítás helytelen" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Az alsó korlát nem lehet nagyobb mint a felső korlát" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2D-s ábrázolás" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3D-s ábrázolás" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Munkamenet" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Változók" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Számológép" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "S&zámológép" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Szkript betö<ése…" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Legutóbbi szkriptek" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Szkript mentése…" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "Napló &exportálása…" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "Eredmény &beszúrása…" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Végrehajtó mód" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Számolás" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Kiértékelés" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Függvények" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "Hozzá&adás" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Nézőpont" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D-s grafikon" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D-s grafikon" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Rács" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Az arány &megőrzése" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Felbontás" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Alacsony" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normál" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Magas" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Nagyon magas" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D-s grafikon" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3&D-s grafikon" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Alapé&rtelmezett nézet" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Pontok" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Vonalak" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Folytonos" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Műveletek" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Szótár" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Keresés:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "Sz&erkesztés" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Válasszon szkriptet" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Szkript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-fájl (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Hibák: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Válassza ki, hová kerüljön a renderelt ábra" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Képfájl (*.png);;SVG-fájl (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Kész" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Változó hozzáadása" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Adja meg az új változó nevét" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Zsebszámológép" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© Aleix Pol i Gonzalez, 2006-2016." + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Kiszel Kristóf,Úr Balázs" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "ulysses@kubuntu.org,urbalazs@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Változó hozzáadása/szerkesztése" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Változó eltávolítása" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "„%1” érték szerkesztése" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "nem érhető el" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "HIBA" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Balra:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Fent:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Szélesség:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Magasság:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Alkalmazás" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document\n" +#~| "*.x3d|X3D Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|PNG fájl\n" +#~ "*.pdf|PDF dokumentum\n" +#~ "*.x3d|X3D dokumentum" + +#~ msgid "C&onsole" +#~ msgstr "K&onzol" + +#~ msgid "&Console" +#~ msgstr "&Konzol" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Szolgáltatás fejlesztése implicit görbék rajzolásához, javításokok a " +#~ "függvényábrázolásban." + +#~ msgid "Formula" +#~ msgstr "Formula" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Hiba: rossz függvénytípus" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Kész: %1 ms" + +#~ msgid "Error: %1" +#~ msgstr "Hiba: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Törlés" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG-fájl" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1…" + +#~ msgid "&Transparency" +#~ msgstr "Á&tlátszóság" + +#~ msgid "Type" +#~ msgstr "Típus" diff --git a/po/hu/kalgebramobile.po b/po/hu/kalgebramobile.po new file mode 100644 index 0000000..cdd73d8 --- /dev/null +++ b/po/hu/kalgebramobile.po @@ -0,0 +1,293 @@ +# Copyright (C) 2024 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2024 Kristof Kiszel +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-03-04 21:32+0100\n" +"Last-Translator: Kristof Kiszel \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 23.08.5\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Számológép" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Szkript betöltése" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Szkript (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Szkript mentése" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Napló exportálása" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Kiértékelés" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Számolás" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Napló törlése" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D görbe" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D görbe" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "„%1” másolása" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Üres konzolelőzmények" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Hozzáadás" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Összes törlése" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Ablak bezárása" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Ábra eltávolítása" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Nem érhető el ábra" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Számolandó kifejezés…" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Szótár" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Név:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "2D grafikon" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "3D grafikon" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Értéktáblázatok" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Változók" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Szótár" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "A KAlgebra névjegye" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D ábra" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Mentés" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Rács megjelenítése" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Nézet visszaállítása" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D ábra" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Eredmények" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Értéktáblázatok" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Hiba: A lépés nem lehet 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Hiba: A kezdés és a befejezés ugyanaz" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Hibák: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Futtatás" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Bemenet" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Ettől:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Eddig:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Lépés" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Futtatás" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Zsebszámológép" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© Aleix Pol i Gonzalez, 2006-2023." + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Karbantartó" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Kiszel Kristóf" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "ulysses@fsf.hu" diff --git a/po/ia/kalgebra.po b/po/ia/kalgebra.po new file mode 100644 index 0000000..2eac29b --- /dev/null +++ b/po/ia/kalgebra.po @@ -0,0 +1,437 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# giovanni , 2023. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2023-09-29 09:50+0200\n" +"Last-Translator: giovanni \n" +"Language-Team: Interlingua \n" +"Language: ia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 22.12.3\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Optiones: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Colla \"%1\" a ingresso" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Colla a Ingresso" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Error: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "importate: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Error: Non pote cargar %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Information" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Adde/Modifica un function" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Vista preliminar" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Ex:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "A:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Optiones" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Remove" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Le optiones que tu specificava non es correcte" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Limite inferior non pote esser major que le limite superior" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Plot 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Plot 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Session" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variabiles" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calculator" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "C&alculator" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Carga script..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Scripts Recente" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Salveguarda Script..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exporta file de registro..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Inserta ans..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Modo de execution" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calcula" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Evaluta" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Functiones" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Adde" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Viewport" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Graphico &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Graphico 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Grillia" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Mantene rata de aspecto" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolution" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Insufficiente" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Subtil" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Multe Subtil" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Graphico &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Graphico 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Reinitialisa vista" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punctos" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Lineas" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Solido" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operationes" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Dictionario" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Cerca:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Editar" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Selige un script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "File HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Errores: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Selige ubi poner le tracia reproducite" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Filr de Image (*.png);;File SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Preste" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Adde variabile" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Inserta un nomine pro le nove variabile" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Un Calculator portabile" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Giovanni Sora" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "g.sora@tiscali.it" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Adde/Modifica un variabile" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Remove variabile" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Modifica valor '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "Non disponibile" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ERRATE" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Sinistra:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Alto (culmine):" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Largessa:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Altessa:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Applica" diff --git a/po/ia/kalgebramobile.po b/po/ia/kalgebramobile.po new file mode 100644 index 0000000..e66a2a6 --- /dev/null +++ b/po/ia/kalgebramobile.po @@ -0,0 +1,293 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# giovanni , 2023. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-04 10:53+0100\n" +"Last-Translator: giovanni \n" +"Language-Team: Interlingua \n" +"Language: ia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 22.12.3\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calculator" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Carga script" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Salveguarda Script" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exporta file de registro" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Evaluta" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calcula" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Netta registro (log)" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D Plot" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D Plot" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copia \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Vacua Chronologia de consolle" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Adde" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Netta omne" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Claude dialogo" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Remove tracia (plot)" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Nulle traciua (plot) disponibile" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Expression a calcular ..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Dictionario" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nomine:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Graphico 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Graphico 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tabellas de Valor" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variabiles" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Dictionario" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "A proposito de KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D Plot" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Salveguarda" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Vide Grillia" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Reinitialisa viewport" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D Plot" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Resultatos" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tabellas de Valor" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Errore. Le passo non pote esser 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Errores: Le initio e le fin es le mesme" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Errores: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Exeque" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Ingresso" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Ex:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "A:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Passo" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Exeque" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Un Calculator portabile" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Mantenitor" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Giovanni Sora" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "g.sora@tiscali.it" diff --git a/po/it/docs/kalgebra/commands.docbook b/po/it/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..2bd364d --- /dev/null +++ b/po/it/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Comandi supportati da &kalgebra; + plus + Nome: plus + Descrizione: addizione + Parametri: plus(... parametri, ...) + Esempio: x->x+2 + + times + Nome: times + Descrizione: moltiplicazione + Parametri: times(... parametri, ...) + Esempio: x->x*2 + + minus + Nome: minus + Descrizione: sottrazione. Sottrarrà tutti i valori dal primo. + Parametri: minus(... parametri, ...) + Esempio: x->x-2 + + divide + Nome: divide + Descrizione: divisione + Parametri: divide(parametro1, parametro2) + Esempio: x->x/2 + + quotient + Nome: quotient + Descrizione: quoziente + Parametri: quotient(parametro1, parametro2) + Esempio: x->quotient(x, 2) + + power + Nome: power + Descrizione: elevamento a potenza + Parametro: power(parametro1, parametro2) + Esempio: x->x^2 + + root + Nome: root + Descrizione: radice + Parametri: root(parametro1, parametro2) + Esempio: x->root(x, 2) + + factorial + Nome: factorial + Descrizione: fattoriale. factorial(n)=n! + Parametri: factorial(parametro1) + Esempio: x->factorial(x) + + and + Nome: and + Descrizione: AND booleano + Parametro: and(... parametri, ...) + Esempio: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Nome: or + Descrizione: OR booleano + Parametri: or(... parametri, ...) + Esempio: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Nome: xor + Descrizione: XOR booleano + Parametri: xor(... parametri, ...) + Esempio: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Nome: not + Descrizione: NOT booleano + Parametri: not(parametro1) + Esempio: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Nome: gcd + Descrizione: massimo comun divisore (MCD) + Parametri: gcd(... parametri, ...) + Esempio: x->gcd(x, 3) + + lcm + Name: lcm + Descrizione: minimo comune multiplo (MCM) + Parametri: lcm(... parametri, ...) + Esempio: x->lcm(x, 4) + + rem + Nome: rem + Descrizione: resto della divisione + Parametri: rem(parametro1, parametro2) + Esempio: x->rem(x, 5) + + factorof + Nome: factorof + Descrizione: il fattore di + Parametri: factorof(parametro1, parametro2) + Esempio: x->factorof(x, 3) + + max + Nome: max + Descrizione: massimo + Parametri: max(... parametri, ...) + Esempio: x->max(x, 4) + + min + Nome: min + Descrizione: minimo + Parametri: min(... parametri, ...) + Esempio: x->min(x, 4) + + lt + Nome: lt + Descrizione: minore di. lt(a,b)=a<b + Parametri: lt(parametro1, parametro2) + Esempio: x->piecewise { x<4 ? 1, ? 0 } + + gt + Nome: gt + Descrizione: maggiore di. gt(a,b)=a>b + Parametri: gt(parametro1, parametro2) + Esempio: x->piecewise { x>4 ? 1, ? 0 } + + eq + Nome: eq + Descrizione: uguale. eq(a,b) = a=b + Parametri: eq(parametro1, parametro2) + Esempio: x->piecewise { x=4 ? 1, ? 0 } + + neq + Nome: neq + Descrizione: non uguale. neq(a,b) = a≠b + Parametri: neq(parametro1, parametro2) + Esempio: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Nome: leq + Descrizione: minore o uguale. leq(a,b) = a≤b + Parametri: leq(parametro1, parametro2) + Esempio: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Nome: geq + Descrizione: maggiore o uguale. geq(a,b) = a≥b + Parametri: geq(parametro1, parametro2) + Esempio: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Nome: implies + Descrizione: implicazione booleana + Parametri: implies(parametro1, parametro2) + Esempio: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Nome: approx + Descrizione: approssimazione. approx(a) = a≈n + Parametri: approx(parametro1, parametro2) + Esempio: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Nome: abs + Descrizione: valore assoluto. abs(n)=|n| + Parametri: abs(parametro1) + Esempio: x->abs(x) + + floor + Nome: floor + Descrizione: parte intera di un valore. floor(n) = ⌊n⌋ + Parametri: floor(parametro1) + Esempio: x->floor(x) + + ceiling + Nome: ceiling + Descrizione: parte intera superiore di un valore. ceil(n) = ⌈n⌉ + Parametri: ceiling(parametro1) + Esempio: x->ceiling(x) + + sin + Nome: sin + Descrizione: funzione per calcolare il seno di un angolo dato + Parametri: sin(parametro1) + Esempio: x->sin(x) + + cos + Nome: cos + Descrizione: funzione per calcolare il coseno di un angolo dato + Parametri: cos(parametro1) + Esempio: x->cos(x) + + tan + Nome: tan + Descrizione: funzione per calcolare la tangente di un angolo dato + Parametri: tan(parametro1) + Esempio: x->tan(x) + + sec + Nome: sec + Descrizione: secante + Parametri: sec(parametro1) + Esempio: x->sec(x) + + csc + Nome: csc + Descrizione: cosecante + Parametri: csc(parametro1) + Esempio: x->csc(x) + + cot + Nome: cot + Descrizione: cotangente + Parametri: cot(parametro1) + Esempio: x->cot(x) + + sinh + Nome: sinh + Descrizione: seno iperbolico + Parametri: sinh(parametro1) + Esempio: x->sinh(x) + + cosh + Nome: cosh + Descrizione: coseno iperbolico + Parametri: cosh(parametro1) + Esempio: x->cosh(x) + + tanh + Nome: tanh + Descrizione: tangente iperbolica + Parametri: tanh(parametro1) + Esempio: x->tanh(x) + + sech + Nome: sech + Descrizione: secante iperbolica + Parametri: sech(parametro1) + Esempio: x->sech(x) + + csch + Nome: csch + Descrizione: cosecante iperbolica + Parametri: csch(parametro1) + Esempio: x->csch(x) + + coth + Nome: coth + Descrizione: cotangente iperbolica + Parametri: coth(parametro1) + Esempio: x->coth(x) + + arcsin + Nome: arcsin + Descrizione: arcoseno + Parametri: arcsin(parametro1) + Esempio: x->arcsin(x) + + arccos + Nome: arccos + Descrizione: arcocoseno + Parametri: arccos(parametro1) + Esempio: x->arccos(x) + + arctan + Nome: arctan + Descrizione: arcotangente + Parametri: arctan(parametro1) + Esempio: x->arctan(x) + + arccot + Nome: arccot + Descrizione: arcocotangente + Parametri: arccot(parametro1) + Esempio: x->arccot(x) + + arccosh + Nome: arccosh + Descrizione: arcocoseno iperbolico + Parametri: arccosh(parametro1) + Esempio: x->arccosh(x) + + arccsc + Nome: arccsc + Descrizione: arcocosecante + Parametri: arccsc(parametro1) + Esempio: x->arccsc(x) + + arccsch + Nome: arccsch + Descrizione: arcocosecante iperbolica + Parametri: arccsch(parametro1) + Esempio: x->arccsch(x) + + arcsec + Nome: arcsec + Description: arcosecante + Parametri: arcsec(parametro1) + Esempio: x->arcsec(x) + + arcsech + Nome: arcsech + Descrizione: arcosecante iperbolica + Parametri: arcsech(parametro1) + Esempio: x->arcsech(x) + + arcsinh + Nome: arcsinh + Descrizione: arcoseno iperbolico + Parametri: arcsinh(parametro1) + Esempio: x->arcsinh(x) + + arctanh + Nome: arctanh + Descrizione: arcotangente iperbolica + Parametri: arctanh(parametro1) + Esempio: x->arctanh(x) + + exp + Nome: exp + Descrizione: esponenziale (e^x) + Parametri: exp(parametro1) + Esempio: x->exp(x) + + ln + Nome: ln + Descrizione: logaritmo in base e + Parametri: ln(parametro1) + Esempio: x->ln(x) + + log + Nome: log + Descrizione: logaritmo in base 10 + Parametri: log(parametro1) + Esempio: x->log(x) + + conjugate + Nome: conjugate + Descrizione: coniugato + Parametri: conjugate(parametro1) + Esempio: x->conjugate(x*i) + + arg + Nome: arg + Descrizione: arg + Parametri: arg(parametro1) + Esempio: x->arg(x*i) + + real + Nome: real + Descrizione: reale + Parametri: real(parametro1) + Esempio: x->real(x*i) + + imaginary + Nome: imaginary + Descrizione: immaginario + Parametri: imaginary(parametro1) + Esempio: x->imaginary(x*i) + + sum + Nome: sum + Descrizione: sommatoria + Parametri: sum(parametro1 : variabile=da..a) + Esempio: x->x*sum(t*t:t=0..3) + + product + Nome: product + Descrizione: produttoria + Parametri: product(parametro1 : variabile=da..a) + Esempio: x->product(t+t:t=1..3) + + diff + Nome: diff + Descrizione: differenziale + Parametri: diff(parametro1 : variabile) + Esempio: x->(diff(x^2:x))(x) + + card + Nome: card + Descrizione: numero cardinale + Parametri: card(parametro1) + Esempio: x->card(vector { x, 1, 2 }) + + scalarproduct + Nome: scalarproduct + Descrizione: prodotto scalare + Parametri: scalarproduct(... parametri, ...) + Esempio: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Nome: selector + Descrizione: sceglie il parametro1-esimo elemento dalla lista o vettore parametro2 + Parametri: selector(parametro1, parametro2) + Esempio: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Nome: union + Descrizione: unisce diversi elementi aventi lo stesso tipo + Parametri: union(... parametri, ...) + Esempio: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Nome: forall + Descrizione: per tutti + Parametri: forall(parametro1 : variabile) + Esempio: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Nome: exists + Descrizione: esiste + Parametri: esiste(parametro1 : variabile) + Esempio: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Nome: map + Descrizione: applica una funzione a ciascun elemento in una lista + Parametri: map(parametro1, parametro2) + Esempio: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Nome: filter + Descrizione: rimuove tutti gli elementi che non soddisfano una condizione + Parametri: filter(parametro1, parametro2) + Esempio: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Nome: transpose + Descrizione: matrice trasposta + Parametri: transpose(parametro1) + Esempio: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/it/docs/kalgebra/index.docbook b/po/it/docs/kalgebra/index.docbook new file mode 100644 index 0000000..b279ea1 --- /dev/null +++ b/po/it/docs/kalgebra/index.docbook @@ -0,0 +1,943 @@ + + + + MathML"> + + +]> + + + + +Manuale di &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+PinoToscano
toscano.pino@tiscali.it
Traduzione italiana
PaoloZamponi
zapaolo@email.it
Traduzione e manutenzione del documento
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +17/12/2020 +Applications 20.12 + + +&kalgebra; è un'applicazione che può sostituire la tua calcolatrice grafica. Ha funzionalità numeriche, logiche, simboliche e di analisi che ti permettono di calcolare espressioni matematiche e di visualizzarne graficamente i risultati in 2D e 3D. &kalgebra; si basa sul linguaggio a marcatori di matematica («Mathematical Markup Language», &MathML;), tuttavia, non è necessario conoscere &MathML; per usare &kalgebra;. + + + +KDE +kdeedu +grafico +matematica +2D +3D +MathML + + +
+ + +Introduzione + +&kalgebra; ha numerose funzioni che permettono all'utente di effettuare tutti i tipi di operazioni matematiche e di visualizzarle graficamente. Una volta questo programma era orientato su &MathML;. Adesso può essere usato da chiunque con un minimo di conoscenza di matematica per risolvere problemi semplici e complessi. + +Include funzioni quali: + + + +Una calcolatrice per la valutazione semplice e veloce di funzioni matematiche. +Possibilità di usare script per calcoli avanzati. +Funzionalità del linguaggio che includono la definizione di funzioni e il completamento automatico della sintassi +Funzioni per l'analisi che includono la differenziazione simbolica, il calcolo vettoriale e la manipolazione di liste. +Grafico di funzioni con cursore mobile per la ricerca grafica delle radici e altri tipi di analisi. +Grafico 3D per l'utile visualizzazione di funzioni 3D. +Un dizionario integrato degli operatori per un aiuto veloce sulle numerose funzioni disponibili. + + +Qui sotto vi è un'immagine di &kalgebra; in azione: + + +Immagine della finestra principale di &kalgebra; + + + + + + Finestra principale di &kalgebra; + + + + +Quando un utente inizia una sessione di &kalgebra;, viene presentata una finestra composta da una scheda Calcolatrice, una scheda Grafico 2D, una scheda Grafico 3D e una scheda Dizionario. Sotto ciascuna scheda si trovano un campo di inserimento per scrivere le funzioni o fare calcoli e un campo che mostra i risultati. + +In ogni momento l'utente può gestire le sue sessioni usando le opzioni del menu Sessione: + + + + +&Ctrl; N SessioneNuova +Apre una nuova finestra di &kalgebra;. + + + +&Ctrl;&Shift; F SessioneModalità a tutto schermo +Attiva o disattiva la modalità a tutto schermo della finestra di &kalgebra;. La modalità a tutto schermo può essere attivata e disattivata anche usando il pulsante che si trova a destra nella parte alta della finestra di &kalgebra;. + + + +&Ctrl; Q SessioneEsci +Chiude il programma. + + + + + + + +Sintassi +&kalgebra; usa una sintassi algebrica intuitiva per l'inserimento delle funzioni dell'utente, in modo simile a quanto viene fatto nella maggior parte delle moderne calcolatrici grafiche. Questa sezione elenca gli operatori fondamentali forniti in &kalgebra;. Il suo autore ha modellato questa sintassi seguendo Maxima e Maple, per gli utenti che possono avere familiarità con questi programmi. + +Per gli utenti interessati al funzionamento interno di &kalgebra;, le espressioni inserite dall'utente sono convertite in &MathML; nel motore interno. Una conoscenza basilare delle possibilità di &MathML; permetterà di comprendere meglio le funzionalità interne di &kalgebra;. + +Ecco una lista degli operatori disponibili al momento: + ++ - * / : addizione, sottrazione, moltiplicazione e divisione. +^, ** : elevamento a potenza, puoi usare entrambi. È anche possibile usare il carattere Unicode ². Con gli elevamenti a potenza è anche possibile effettuare radici, ad esempio: a**(1/b) +-> : lambda. È il modo di specificare una o più variabili che saranno vincolate in una funzione. Ad esempio, nell'espressione length:=(x,y)->(x*x+y*y)^0.5, l'operatore lambda è usato per denotare che x e y saranno vincolate quando la funzione length verrà usata. +x=a..b : è usato per delimitare un intervallo (variabile limitata + limite superiore + limitare inferiore). Ciò significa che x va da a a b. +() : usato per specificare una priorità più alta. +abc(params) : funzioni. Quando l'analizzatore trova una funzione, controlla se abc è un operatore. Se lo è, sarà trattato come un operatore; se non lo è, sarà trattato come una funzione utente. +:= : definizione. Usata per definire il valore di una variabile. Puoi far cose come x:=3, x:=y con y definita o no, oppure perimetro:=r->2*pi*r. +? : definizione di condizione definita a tratti. Una definizione "a tratti" è il modo in cui possiamo definire operazioni condizionali in &kalgebra;. Per dirla anche in altri termini, questo è un modo di definire una condizione «if, elseif, else». Se introduciamo la condizione prima del ?, questa condizione sarà usata solo se è vera; se viene trovato un ? senza condizione, verrà usato come ultima alternativa. Esempio: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ } : contenitore &MathML;. Può essere usato per definire un contenitore. Utile principalmente per le funzioni definite a tratti. += > >= < <= : comparatori di valori per rispettivamente: uguale, maggiore di, maggiore o uguale a, minore di, minore o uguale a. + + +Adesso potresti chiedermi: perché l'utente dovrebbe conoscere &MathML;? Semplice: con il MathML possiamo operare con funzioni come cos(), sin() e con qualsiasi altra funzione trigonometrica, sum() o product(). Non importa che tipo di funzione sia. Possiamo usare plus(), times() e qualunque cosa che abbia un operatore. Sono implementate anche le funzioni booleane, quindi possiamo usare qualcosa del tipo or(1,0,0,0,0). + + + + +Uso della calcolatrice +La calcolatrice di &kalgebra; è utile come calcolatrice potenziata. L'utente può inserire espressioni da valutare in modalità Calcola o Vàluta, a seconda della scelta del menu Calcolatrice. +In modalità di valutazione &kalgebra; semplifica l'espressione anche se c'è una variabile non definita. In modalità di calcolo &kalgebra; calcola tutto, mostrando un errore se trova una variabile non definita. +Oltre alla visualizzazione nella calcolatrice delle equazioni inserite dall'utente e dei risultati, tutte le variabili che vengono dichiarate sono visualizzate in un pannello fisso a destra. Facendo doppio clic su una variabile vedrai una finestra di dialogo per ti permette di modificarne il valore (un modo per truccare il log). + +La variabile ans è speciale: ogni volta che inserisci un'espressione, questa assumerà il valore dell'ultimo risultato. + +Di seguito vi sono funzioni d'esempio che possono essere inserite nel campo di inserimento della finestra della calcolatrice. + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +Di seguito vi è un'immagine della finestra della calcolatrice dopo aver inserito le espressioni d'esempio elencate sopra: + +Immagine della finestra della calcolatrice di &kalgebra; con le espressioni d'esempio + + + + + + Finestra della calcolatrice di &kalgebra; + + + + + +Un utente può controllare l'esecuzione di una serie di calcoli usando le opzioni del menu Calcolatrice: + + + + +&Ctrl; L CalcolatriceCarica script... +Esegue le istruzioni presenti in un file. Un metodo utile per creare "librerie" o riprendere un lavoro interrotto in precedenza. + + + +CalcolatriceScript recenti +Visualizza un sotto-menu che ti permette di scegliere gli script eseguiti di recente. + + + +&Ctrl; G CalcolatriceSalva script... +Salva le istruzioni che hai digitato dall'inizio della sessione in modo da poterle riusare. Genera file di testo semplice, quindi dovrebbe essere semplice correggerle usando un qualsiasi editor di testo, ad esempio &kate;. + + + +&Ctrl; S CalcolatriceEsporta registro... +Salva il log e tutti i risultati su file &HTML; che può essere stampato o pubblicato. + + + +F3 CalcolatriceInserisci ans... +Inserisce la variabile ans e rende semplice riusare i vecchi valori. + + + +CalcolatriceCalcola +Un pulsante a scelta singola per impostare la Modalità di esecuzione nei calcoli. + + + +CalcolatriceVàluta +Un pulsante a scelta singola per impostare la Modalità di esecuzione nelle valutazioni. + + + + + + +Grafici 2D +Per aggiungere un nuovo grafico 2D in &kalgebra;, seleziona la scheda Grafico 2D e fare clic sulla scheda Aggiungi per aggiungere una nuova funzione. Sarà quindi attivata la casella di testo dove puoi scrivere la funzione. + + +Sintassi +Se vuoi usare una funzione f(x) tipica, non è necessario specificarla. Se però vuoi usare una funzione f(y) oppure una polare, allora devi aggiungere y-> e q-> come variabili vincolate. + +Esempi: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Quando hai inserito la funzione, premi OK per visualizzare il grafico nella finestra principale. + + + + +Funzioni +Puoi avere più grafici nella stessa vista. Usa il pulsante Aggiungi in modalità «lista». Puoi impostare un diverso colore per ogni grafico. + +La vista può essere ingrandita e spostata con il mouse. Puoi ingrandire e rimpicciolire usando la rotellina del mouse. Puoi anche selezionare un'area con il &LMB; e questa sarà ingrandita. Puoi muovere la vista con i tasti freccia della tastiera. + + + L'area di visualizzazione di grafici 2D può essere definita in modo esplicito usando la scheda Area di visualizzazione nella scheda Grafico 2D. + + +Nella parte in basso a destra della scheda Lista puoi aprire una scheda Modifica per modificare o rimuovere una funzione con un doppio clic, oppure marcare o meno la casella accanto al nome della funzione per mostrarla o per nasconderla. +Nel menu Grafico 2D trovi queste opzioni: + +Griglia: mostra o nasconde la griglia +Mantieni proporzioni: mantieni le proporzioni quando ingrandisci o riduci +Salva: salva (&Ctrl; S) il grafico come immagine +Ingrandisci/Rimpicciolisci: ingrandisci (&Ctrl; +) e rimpicciolisci (&Ctrl; -) +Dimensione attuale: ripristina la vista all'ingrandimento originale +Risoluzione: seguito da un elenco di pulsante a scelta singola per selezionare una risoluzione per i grafici + + +Sotto vi è l'immagine di un utente il cui cursore è alla radice più a destra della funzione, sin(1/x). L'utente che ne ha creato il grafico ha usato una risoluzione molto stretta (dato che oscilla a frequenze sempre più alte man mano che si avvicina all'origine). C'è anche un cursore mobile che, ogni volta che sposti il cursore sopra un punto, mostra i valori X e Y nell'angolo in basso a sinistra dello schermo. Una linea di tangente mobile è disegnata sulla funzione alla posizione del cursore mobile. + + +Immagine della finestra del grafico 2D di &kalgebra; + + + + + + Finestra del grafico 2D di &kalgebra; + + + + + + + + + + +Grafici 3D + +Per disegnare un grafico 3D con &kalgebra;, seleziona la scheda Grafico 3D: lì vedrai una casella di inserimento in basso, dove puoi scrivere la funzione. Z non può essere definita ancora, al momento &kalgebra; supporta solo grafici 3D che dipendono esplicitamente solo da x e y, come (x,y)->x*y, dove z=x*y. + +Esempi: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +La vista può essere ingrandita e spostata con il mouse. Puoi ingrandire e rimpicciolire usando la rotellina del mouse. Tieni premuto il &LMB; e muovi il mouse per ruotare il grafico. + +I tasti freccia &Left; e &Right; ruotano il grafico attorno all'asse z, mentre i tasti freccia &Up; e &Down; lo ruotano attorno all'asse orizzontale della vista. Premi W per ingrandire il grafico, e S per rimpicciolirlo. + +Nel menu Grafico 3D trovi queste opzioni: + + +Salva: salva (&Ctrl; S) il grafico come file d'immagine o come documento supportato +Ripristina vista: ripristina la vista all'ingrandimento originale nel menu Grafico 3D +Puoi disegnare il grafico con lo stile Punti, Linee o Pieno nel menu Grafico 3D + + +Sotto vediamo un'immagine della funzione chiamata sombrero. Questo grafico 3D particolare è visualizzato usando lo stile a linee. + + +Immagine della finestra del grafico 3D di &kalgebra; + + + + + + Finestra del grafico 3D di &kalgebra; + + + + + + + +Dizionario + +Il dizionario è una collezione di tutte le funzioni integrate in &kalgebra;. Può essere utile per trovare la definizione di un'operazione e i suoi parametri, e in generale per scoprire le molte funzionalità di &kalgebra;. + + Sotto vi è un'immagine della ricerca della funzione coseno nel dizionario di &kalgebra; + + +Immagine della finestra del dizionario di &kalgebra; + + + + + + Finestra del dizionario di &kalgebra; + + + + + + + +&commands; + + +Riconoscimenti e licenza + + +Copyright del programma 2005-2009 &Aleix.Pol; + + + +Copyright della documentazione 2007 &Aleix.Pol; &Aleix.Pol.mail; + +Traduzione italiana di Pino Toscano toscano.pino@tiscali.it &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/it/kalgebra.po b/po/it/kalgebra.po new file mode 100644 index 0000000..5ae14ba --- /dev/null +++ b/po/it/kalgebra.po @@ -0,0 +1,1134 @@ +# translation of kalgebra.po to Italian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the kalgebra package. +# Pino Toscano , 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2019. +# Paolo Zamponi , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-07-08 17:35+0200\n" +"Last-Translator: Paolo Zamponi \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 22.04.2\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opzioni: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Incolla «%1» per inserirlo" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Incolla per inserirlo" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Errore: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importato: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Errore: impossibile caricare %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informazioni" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Aggiungi/modifica una funzione" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Anteprima" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Da:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "A:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opzioni" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Rimuovi" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Le opzioni specificate non sono corrette" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Il limite inferiore non può essere più grande del limite superiore" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Grafico 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Grafico 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sessione" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variabili" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calcolatrice" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "C&alcolatrice" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Carica script..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Script recenti" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Salva script..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Esporta registro..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Inserisci ans..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Modalità di esecuzione" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calcola" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Vàluta" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funzioni" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Aggiungi" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Area di visualizzazione" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Grafico &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Grafico 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Griglia" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Mantieni proporzioni" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Risoluzione" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Scarsa" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normale" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Buona" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Molto buona" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Grafico &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Grafico 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Ripristina vista" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punti" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linee" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Pieno" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operazioni" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Dizionario" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Cerca:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Modifica" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Scegli uno script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "File HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Errori: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Scegli dove salvare il grafico generato" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Immagine (*.png);;File SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Pronto" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Aggiungi variabile" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Scrivi un nome per la nuova variabile" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Una calcolatrice portabile" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Pino Toscano" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "toscano.pino@tiscali.it" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Aggiungi/modifica una variabile" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Rimuovi variabile" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Modifica il valore '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "non disponibile" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ERRATO" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Sinistra:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Alto:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Larghezza:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Altezza:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Applica" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "File PNG (*.png);;Documento PDF (*.pdf);;Documento X3D (*.x3d);;Documento " +#~ "STL (*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "C&onsole" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Console" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Ha sviluppato il disegno delle curve implicite, e migliorato il grafico " +#~ "delle funzioni." + +#~ msgid "Formula" +#~ msgstr "Formula" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Cancella" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Errore: tipo errato di funzione" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Fatto: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Errore: %1" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|File PNG" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Trasparenza" + +#~ msgid "Type" +#~ msgstr "Tipo" + +#~ msgid "Result: %1" +#~ msgstr "Risultato: %1" + +#~ msgid "To Expression" +#~ msgstr "In espressione" + +#~ msgid "To MathML" +#~ msgstr "In MathML" + +#~ msgid "Simplify" +#~ msgstr "Semplifica" + +#~ msgid "Examples" +#~ msgstr "Esempi" + +#~ msgid "We can only draw Real results." +#~ msgstr "Possiamo disegnare solo risultati reali." + +#~ msgid "Function type not recognized" +#~ msgstr "Tipo di funzione non riconosciuto" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Tipo di funzione non corretto per funzioni che dipendono da %1" + +#~ msgid "The expression is not correct" +#~ msgstr "L'espressione non è corretta" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Funzione implicita non definita nel piano" + +#~ msgid "center" +#~ msgstr "centro" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Nome" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funzione" + +#~ msgid "%1 function added" +#~ msgstr "funzione %1 aggiunta" + +#~ msgid "Hide '%1'" +#~ msgstr "Nascondi '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Mostra '%1'" + +#~ msgid "Selected viewport too small" +#~ msgstr "L'area di visualizzazione è troppo piccola" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Descrizione" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parametri" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Esempio" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=da..a" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parametri, ...%2)" + +#~ msgid "par%1" +#~ msgstr "parametro%1" + +#~ msgid "Addition" +#~ msgstr "Addizione" + +#~ msgid "Multiplication" +#~ msgstr "Moltiplicazione" + +#~ msgid "Division" +#~ msgstr "Divisione" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Sottrazione. Sottrarrà tutti i valori dal primo." + +#~ msgid "Power" +#~ msgstr "Potenza" + +#~ msgid "Remainder" +#~ msgstr "Resto" + +#~ msgid "Quotient" +#~ msgstr "Quoziente" + +#~ msgid "The factor of" +#~ msgstr "Il fattore di" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Fattoriale. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funzione per calcolare il seno dell'angolo dato" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funzione per calcolare il coseno dell'angolo dato" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funzione per calcolare la tangente dell'angolo dato" + +#~ msgid "Secant" +#~ msgstr "Secante" + +#~ msgid "Cosecant" +#~ msgstr "Cosecante" + +#~ msgid "Cotangent" +#~ msgstr "Cotangente" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Seno iperbolico" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Coseno iperbolico" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Tangente iperbolica" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Secante iperbolica" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Cosecante iperbolica" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Cotangente iperbolica" + +#~ msgid "Arc sine" +#~ msgstr "Arcoseno" + +#~ msgid "Arc cosine" +#~ msgstr "Arcocoseno" + +#~ msgid "Arc tangent" +#~ msgstr "Arcotangente" + +#~ msgid "Arc cotangent" +#~ msgstr "Arcocotangente" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Arcotangente iperbolica" + +#~ msgid "Summatory" +#~ msgstr "Sommatoria" + +#~ msgid "Productory" +#~ msgstr "Produttoria" + +#~ msgid "For all" +#~ msgstr "Per tutti" + +#~ msgid "Exists" +#~ msgstr "Esiste" + +#~ msgid "Differentiation" +#~ msgstr "Differenziale" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Arcoseno iperbolico" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Arcocoseno iperbolico" + +#~ msgid "Arc cosecant" +#~ msgstr "Arcocosecante" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Arcocosecante iperbolica" + +#~ msgid "Arc secant" +#~ msgstr "Arcosecante" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Arcosecante iperbolica" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Esponenziale (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Logaritmo in base e" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Logaritmo in base 10" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Valore assoluto. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Parte intera. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Parte intera superiore. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimo" + +#~ msgid "Maximum" +#~ msgstr "Massimo" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Maggiore di. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : vincoli" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Valore" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Deve essere specificata un'operazione corretta." + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Identificatore sconosciuto: «%1»" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Impossibile trovare una scelta opportuna per la condizione." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Il tipo non può essere vincolato." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Il limite inferiore è più grande del limite superiore" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Limite superiore o inferiore non corretto." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Definita una varibile ciclica" + +#~ msgid "The result is not a number" +#~ msgstr "Il risultato non è un numero" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Dati inattesi trovati alla fine dei dati letti" + +#~ msgid "Unknown token %1" +#~ msgstr "Token «%1» sconosciuto" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "Sono necessari almeno 2 parametri per %1" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "Sono necessari almeno %2 parametri per %1" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Vincolo di «%1» mancante" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Vincolo non atteso per «%1»" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 vincoli mancanti per «%2»" + +#~ msgid "Wrong declare" +#~ msgstr "«declare» errata" + +#~ msgid "Empty container: %1" +#~ msgstr "Contenitore vuoto: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Ci possono essere solo condizioni nelle definizioni a tratti." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Non è possibile avere due parametri con lo stesso nome, come «%1»." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Il parametro per otherwise dovrebbe essere l'ultimo" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "«%1» non è una condizione corretta nella definizione a tratti" + +#~ msgid "We can only declare variables" +#~ msgstr "Possiamo solo dichiarare variabili" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Possiamo solo avere variabili vincolate" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Errore durante l'analisi: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Contenitore sconosciuto: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Impossibile codificare il valore %1." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "L'operatore «%1» non può avere contesti figli." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "L'elemento «%1» non è un operatore." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Non è possibile avere vettori vuoti" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Non supportato o sconosciuto: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Era atteso «%1» invece di «%2»" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Parentesi chiusa mancante" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Parentesi chiuse non bilanciate" + +#~ msgid "Unexpected token %1" +#~ msgstr "Token «%1» non atteso" + +#~ msgid "The domain should be either a vector or a list." +#~ msgstr "Il dominio dovrebbe essere un vettore o una lista." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Numero errato di parametri di «%2». Dovrebbe avere 1 parametro." +#~ msgstr[1] "Numero errato di parametri di «%2». Dovrebbe avere %1 parametri." + +#~ msgid "Could not call '%1'" +#~ msgstr "Impossibile chiamare «%1»" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Impossibile risolvere «%1»" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Non è possibile determinare il tipo della definizione a tratti" + +#~ msgid "Unexpected type" +#~ msgstr "Tipo non atteso" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Non è stato possibile convertire «%1» in «%2»." + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Token «%1» sconosciuto" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Impossibile calcolare il resto rispetto a 0." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Impossibile calcolare il fattore rispetto a 0." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Impossibile calcolare il MCM di 0." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Impossibile calcolare un valore %1" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Non è stato possibile ridurre «%1» e «%2»." + +#~ msgid "Invalid index for a container" +#~ msgstr "Indice non valido per un contenitore" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Impossibile operare su vettori di dimensione differente." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Impossibile calcolare l'operazione %1 di un vettore" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Impossibile calcolare l'operazione %1 di una lista" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Impossibile calcolare la derivata di «%1»" + +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Tipo incoerente per la variabile «%1»" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "La funzione parametrica non restituisce un vettore" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "È richiesto un vettore a due dimensioni" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "I parametri della funzione dovrebbero essere scalari" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "La derivata di %1 non è stata implementata." + +#~ msgid "Incorrect domain." +#~ msgstr "Dominio non corretto." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Valore reale non valido: %1" + +#~ msgid "Subtraction" +#~ msgstr "Sottrazione" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Errore: %2" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Errore: sono richiesti valori per disegnare un grafico" + +#~ msgid "Select an element from a container" +#~ msgstr "Seleziona un elemento da un contenitore" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Non è possibile avere un limite inferiore ≥ limite superiore" + +#~ msgid "Generating... Please wait" +#~ msgstr "Generazione... Attendere" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "Salva &log" + +#~ msgid "Mode" +#~ msgstr "Modo" + +#~ msgid "Save the expression" +#~ msgstr "Salva l'espressione" + +#~ msgid "Calculate the expression" +#~ msgstr "Calcola l'espressione" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "We can only call functions" +#~ msgstr "Possiamo chiamare solo funzioni" + +#~ msgid "Wrong parameter count" +#~ msgstr "Numero errato di parametri" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Variabile vincolata sconosciuta: %1" + +#~ msgid "Need a var name and a value" +#~ msgstr "Sono necessari un nome di variabile ed un valore" + +#~ msgid "The function %1 does not exist" +#~ msgstr "La funzione %1 non esiste" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "La variabile %1 non esiste" + +#~ msgid "" +#~ "Wrong parameter count in a selector, should have 2 parameters, the " +#~ "selected index and the container." +#~ msgstr "" +#~ "Numero errato di parametri in un selettore, che dovrebbe avere 2 " +#~ "parametri, l'indice selezionato e il contenitore" + +#~ msgid "piece or otherwise in the wrong place" +#~ msgstr "«piece» o «otherwise» nel posto sbagliato" + +#~ msgid "No bounding variables for this sum" +#~ msgstr "Nessuna variabile vincolata per questa somma" + +#~ msgid "Missing bounding limits on a sum operation" +#~ msgstr "Limiti vincolati mancanti per un'operazione di somma" + +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "" +#~ "Possiamo selezionare il valore di un contenitore solo con il suo indice " +#~ "intero" + +#~ msgid "Trying to call an empty or invalid function" +#~ msgstr "Chiamata di funzione vuota o invalida" + +#~ msgid "From parser:" +#~ msgstr "Dall'analizzatore:" + +#~ msgctxt "" +#~ "%1 the operation name, %2 and %3 is the opearation we wanted to calculate" +#~ msgid "Cannot calculate the %1(%2, %3)" +#~ msgstr "Impossibile calcolare %1(%2, %3)" + +#~ msgctxt "Error message" +#~ msgid "Trying to codify an unknown value: %1" +#~ msgstr "Stai provando a codificare un valore sconosciuto: %1" + +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "Arcocotangente iperbolica" + +#~ msgid "Real" +#~ msgstr "Reale" + +#~ msgid "Conjugate" +#~ msgstr "Coniugata" + +#~ msgid "Imaginary" +#~ msgstr "Immaginario" diff --git a/po/it/kalgebramobile.po b/po/it/kalgebramobile.po new file mode 100644 index 0000000..ab149f7 --- /dev/null +++ b/po/it/kalgebramobile.po @@ -0,0 +1,318 @@ +# translation of kalgebramobile.po to Italian +# SPDX-FileCopyrightText: 2022, 2023 Paolo Zamponi +# This file is distributed under the same license as the kalgebra package. +# Pino Toscano , 2018, 2019, 2020, 2021. +# SPDX-FileCopyrightText: 2023, 2024 Vincenzo Reale +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-12-25 12:40+0100\n" +"Last-Translator: Vincenzo Reale \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 24.12.0\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calcolatrice" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Carica script" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Salva script" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Esporta registro" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Valuta" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calcola" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Cancella registro" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Grafico 2D" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Grafico 3D" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copia \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Svuota la cronologia della console" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Aggiungi" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Cancella tutto" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Chiudi la finestra" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Rimuovi il grafico" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Nessun grafico disponibile" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Espressione da calcolare..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Dizionario" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nome:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Grafico 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Grafico 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tabelle di valori" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variabili" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Dizionario" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Informazioni su KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Grafico 2D" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Salva" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Mostra griglia" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Ripristina area di visualizzazione" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Grafico 3D" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Risultati" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tabelle di valori" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Errori: il passo non può essere 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Errori: l'inizio e la fine sono gli stessi" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Errori: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Esegui" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Ingresso" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Da:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "A:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Passo" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Esegui" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Una calcolatrice portabile" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Responsabile" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Pino Toscano" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "toscano.pino@tiscali.it" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Una semplice calcolatrice scientifica" + +#~ msgid "Results:" +#~ msgstr "Risultati:" + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "Se vuoi sapere di più su KAlgebra, puoi trovare ulteriori informazioni nel sito " +#~ "ufficiale e nel wiki per " +#~ "gli utenti.
Nel caso di problemi con il software, segnalali nel " +#~ "nostro sistema di segnalazione bug." diff --git a/po/ja/kalgebra.po b/po/ja/kalgebra.po new file mode 100644 index 0000000..22e887d --- /dev/null +++ b/po/ja/kalgebra.po @@ -0,0 +1,450 @@ +# Translation of kalgebra into Japanese. +# This file is distributed under the same license as the kdeedu package. +# Yukiko Bando , 2007, 2008, 2009. +# Fumiaki Okushi , 2007, 2011, 2014. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2014-09-21 00:27-0700\n" +"Last-Translator: Fumiaki Okushi \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: KBabel 1.11.4\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "オプション: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    エラー: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" +"
    エラー: %1 を読み込むことができません。
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "情報" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "関数を追加/編集" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "オプション" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "削除" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "セッション" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "変数" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "計算" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "計算" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "スクリプトを読み込み(&L)..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "最近のスクリプト" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "スクリプトを保存(&S)..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "計算" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "評価" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "関数" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "リスト" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "追加(&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "2D グラフ(&2)" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2D グラフ(&D)" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "グリッド(&G)" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "アスペクト比を保つ(&K)" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "解像度" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "低" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "中" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "高" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "超高" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "3D グラフ(&3)" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D グラフ(&G)" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "ビューをリセット(&R)" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "点" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "線" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "実線" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "演算" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "辞書(&D)" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "検索:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "編集(&E)" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "スクリプトを選択" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "スクリプト (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML ファイル (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "エラー: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|画像ファイル\n" +"*.svg|SVG ファイル" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "準備完了" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "変数を追加" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "新しい変数の名前を入力します" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Yukiko Bando" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "ybando@k6.dion.ne.jp" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "変数を追加/編集" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "変数を削除" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "'%1' の値を編集" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ありません" + +# |,no-bad-patterns +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "不正" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" diff --git a/po/ja/kalgebramobile.po b/po/ja/kalgebramobile.po new file mode 100644 index 0000000..1791ec7 --- /dev/null +++ b/po/ja/kalgebramobile.po @@ -0,0 +1,290 @@ +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2018-08-01 23:02-0700\n" +"Last-Translator: Japanese KDE translation team \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" diff --git a/po/ka/kalgebra.po b/po/ka/kalgebra.po new file mode 100644 index 0000000..3f6bd5e --- /dev/null +++ b/po/ka/kalgebra.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2023-11-17 09:22+0100\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian \n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.3.2\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "პარამეტრები: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "%1-ის ჩასმა შესატანად" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "ჩასვით შესატანად" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    შეცდომა: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "შემოტანილია: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    შეცდომა: %1-ის ჩატვირთვა შეუძლებელია.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "ინფორმაცია" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "ფუნქციის დამატება/ჩასწორება" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "ესკიზი" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "ვისგან:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "ვის:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "გამართვა" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "დიახ" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "წაშლა" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "მითითებული პარამეტრები არასწორია" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "ქვედა ზღვარი ზედაზე დიდი არ შეიძლება, ყოს" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2D გრაფიკი" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3D გრაფიკი" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "სესია" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "ცვლადები" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&კალკულატორი" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "&კალკულატორი" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&სკრიპტის ჩატვირთვა..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "უახლესი სკრიპტები" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&სკრიპტის შენახვა..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&სკრიპტის გატანა..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&ჩასმა ans..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "შესრულების რეჟიმი" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "გამოთვლა" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "შეფასება" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "ფუნქციები" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "სია" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&დამატება" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "ჩვენების არე" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D გრაფიკი" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "&2D გრაფიკი" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&ბადე" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "საწყისი ფარდობის &შენარჩუნება" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "გარჩევადობა" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "ცუდი" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "ჩვეულებრივი" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "დაწვრილებით" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "ძალიან ზუსტი" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D გრაფიკი" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&3D გრაფიკი" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "ხედის საწყის მნიშვნელობაზე დაბრუნება" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "წერტილები" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "ხაზები" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "მყარი" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "ოპერაციები" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&ლექსიკონი" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "მოძებნა:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&ჩასწორება" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "აირჩიეთ სკრიპტი" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "სკრიპტი (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML ფაილი (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "შეცდომები: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "დარენდერებული ნახაზების ჩასაწერი საქაღლდე" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "გამოსახულების ფაილი (*.png);;SVG ფაილი (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "მზადაა" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "ცვლადის დამატება" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "შეიყვანეთ ახალი ცვლადის სახელი" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "პატარა კალკულატორი" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Temuri Doghonadze" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "Temuri.doghonadze@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "ცვლადის დამატება/ჩასწორება" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "ცვლადის წაშლა" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "%1 -ის მნიშვნელობის ჩასწორება" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ხელმიუწვდომელია" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "არასწორი" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "მარცხენა:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "ზედა:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "სიგანე:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "სიმაღლე:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "გამოყენება" diff --git a/po/ka/kalgebramobile.po b/po/ka/kalgebramobile.po new file mode 100644 index 0000000..b81dcb0 --- /dev/null +++ b/po/ka/kalgebramobile.po @@ -0,0 +1,300 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-04 06:10+0100\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian \n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.3.2\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "კალკულატორი" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "სკრიპტის ჩატვირთვა" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "სკრიპტი (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "სკრიპტის შენახვა" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "ჟურნალის გატანა" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "შეფასება" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "გამოთვლა" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "ჟურნალის გასუფთავება" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D ნახაზი" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D ნახაზი" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "\"%1\"-ის კოპირება" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "კონსოლის სტორია ცარიელია" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "დამატება" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "ყველას გასუფთავება" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "ფანჯრის დახურვა" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "გრაფიკის წაშლა" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "გრაფიკების გარეშე" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "გამოსათვლელი გამოსახულება..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "ლექსიკონი" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "სახელი:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "2D გრაფიკი" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "3D გრაფიკი" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "მნიშვნელობის ცხრილები" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "ცვლადები" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "ლექსიკონი" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "KAlgebra-ის შესახებ" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D ნახაზი" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "შენახვა" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "ბადის ნახვა" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "ჩვენების არეს საწყის მნიშვნელობაზე დაბრუნება" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D ნახაზი" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "შედეგები" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "მნიშვნელობის ცხრილები" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "შეცდომა: ბიჯი 0-ის ტოლი ვერ იქნება" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "შეცდომა: დასაწყისი და დასასრული ტოლი ვერ ქნება" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "შეცდომები: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "გაშვება" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "შეყვანა" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "ვისგან:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "ვის:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "ბიჯი" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "გაშვება" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "პატარა კალკულატორი" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "წამყვანი პროგრამისტი" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "რუსუდან ცისკრელი" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "Temuri.doghonadze@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "მობილური KAlgebra" + +#~ msgid "A simple scientific calculator" +#~ msgstr "მარტივი სამეცნიერო კალკულატორი" diff --git a/po/kk/kalgebra.po b/po/kk/kalgebra.po new file mode 100644 index 0000000..29f78b5 --- /dev/null +++ b/po/kk/kalgebra.po @@ -0,0 +1,1035 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Sairan Kikkarin , 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2013-09-14 04:31+0600\n" +"Last-Translator: Sairan Kikkarin \n" +"Language-Team: Kazakh \n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Lokalize 1.2\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Амалдар: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "\"%1\" шығысына орналастырылмады" + +#: consolemodel.cpp:95 +#, fuzzy, kde-format +#| msgid "Paste \"%1\" to input" +msgid "Paste to Input" +msgstr "\"%1\" шығысына орналастырылмады" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Қате: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Импортталғаны: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Қате: %1 деген жүктелмеді.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Мәлімет" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Функцияны қосу/өзгерту" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Қарау" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Мынадан:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Мынаған дейін:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Параметрлері" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "ОК" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Өшіру" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Келтірілген параметрлері дұрыс емес" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Төменгі шегі жоғарғыдан асуға тиіс емес" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2 өлшемді график" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3 өлшемді график" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Сеанс" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Айнымалылары" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "Есептеу" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "Есептеу" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Скриптті &жүктеу..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Жуырдағы скрипттер" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Скриптті &сақтау..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "Журналды э&кспорттау..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Орындау режімі" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Есептеу" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Бағалау" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Функциялар" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Тізім" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr " Қ&осу" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Қарау терезесі" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&Екі өлшемді график" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Е&кі өлшемді график" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Тор" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Ара қатынасын &сақтау" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Айырымдылығы" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Шамалы" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Орташа" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Айқын" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Ап-айқын" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&Үш өлшемді график" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "Ү&ш өлшемді график" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Ысырып тастау" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Нүктелі" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Үзінді" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Сызықты" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Амалдар" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Сөздік" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Іздейтіні:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Өңдеу" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Скриптті таңдау" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Скрипт (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML файлы (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Қателер: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Кескін файлы\n" +"*.svg|Сызба файлы" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Дайын" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Айнымалыны қосу" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Жаңа айнымалының атауын келтіру" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "Калькулятор" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2010 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2010 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Сайран Киккарин" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sairan@computer.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Айнымалыны қосу/өзгерту" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Айнымалыны өшіру" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "'%1' мәнің өзгерту" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "жоқ" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr " %1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ҚАТЕ" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Сол жағы:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Жоғары жағы:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Ені:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Биіктігі:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Іске асыру" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|PNG файлы\n" +#~ "*.pdf|PDF құжаты" + +#~ msgid "C&onsole" +#~ msgstr "К&онсоль" + +#~ msgid "&Console" +#~ msgstr "&Консоль" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Айқындалмаған түрде берілген функцияларды салу мүмкіндігін қосқан. " +#~ "Функцияларды сызуын жетілдіріткен." + +#~ msgid "Formula" +#~ msgstr " Формула" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Қате: Функциясы дұрыс емес" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Дайын: %1" + +#~ msgid "Error: %1" +#~ msgstr "Қате: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Тазалау" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG файлы" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Мөлдірлігі" + +#~ msgid "Type" +#~ msgstr "Түрі" + +#~ msgid "Result: %1" +#~ msgstr "Нәтижесі: %1" + +#~ msgid "To Expression" +#~ msgstr "Өрнекке" + +#~ msgid "To MathML" +#~ msgstr "MathML-ге" + +#~ msgid "Simplify" +#~ msgstr "Ықшамдату" + +#~ msgid "Examples" +#~ msgstr "Мысалдар" + +#~ msgid "We can only draw Real results." +#~ msgstr "Тек нақты (real) бөлігін сала аламыз. " + +#~ msgid "The expression is not correct" +#~ msgstr "Өрнегі дұрыс емес" + +#~ msgid "Function type not recognized" +#~ msgstr "Функцияның түрі түсініксіз" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "%1 дегеннен тәуелді функция үшін оның түрі дұрыс емес" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Айқындалмаған функция бұл жазықтыта анықталмаған" + +#~ msgid "center" +#~ msgstr "ортасы" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Атауы" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Функция" + +#~ msgid "%1 function added" +#~ msgstr "%1 функциясы қосылды" + +#~ msgid "Hide '%1'" +#~ msgstr "'%1' дегенді жасыру" + +#~ msgid "Show '%1'" +#~ msgstr "'%1' дегенді көрсету" + +#~ msgid "Selected viewport too small" +#~ msgstr "Қарау терезесі тым тар" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Түсініктеме" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Параметрлер" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Мысал" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=мынадан..мынаған дейін" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... параметpлері, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Қосу" + +#~ msgid "Multiplication" +#~ msgstr "Көбейту" + +#~ msgid "Division" +#~ msgstr "Бөлу" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Азайту. Мәндерін біріншісінен алынып тасталады." + +#~ msgid "Power" +#~ msgstr "Дәреже" + +#~ msgid "Remainder" +#~ msgstr "Қалдық" + +#~ msgid "Quotient" +#~ msgstr "Бөлінді" + +#~ msgid "The factor of" +#~ msgstr "Келесінің көбейткіші" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Факториал, factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Синус" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Косинус" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Тангенс" + +#~ msgid "Secant" +#~ msgstr "Секанс" + +#~ msgid "Cosecant" +#~ msgstr "Косеканс" + +#~ msgid "Cotangent" +#~ msgstr "Котангенс" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Гиперболалық синус" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Гиперболалық косинус" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Гиперболалық тангенс" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Гиперболалық секанс" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Гиперболалық косеканс" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Гиперболалық котангенс" + +#~ msgid "Arc sine" +#~ msgstr "Арксинус" + +#~ msgid "Arc cosine" +#~ msgstr "Арксосинус" + +#~ msgid "Arc tangent" +#~ msgstr "Арктангенс" + +#~ msgid "Arc cotangent" +#~ msgstr "Арккотангенс" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Гиперболалық арктангенс" + +#~ msgid "Summatory" +#~ msgstr "Қосындыны санауыш" + +#~ msgid "Productory" +#~ msgstr "Көбейткіш" + +#~ msgid "For all" +#~ msgstr "Бүкілдеріне" + +#~ msgid "Exists" +#~ msgstr "Бар" + +#~ msgid "Differentiation" +#~ msgstr "Дифференциалдау" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Гиперболалық арксинус" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Гиперболалық арккосинус" + +#~ msgid "Arc cosecant" +#~ msgstr "Арккосеканс" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Гиперболалық арккосеканс" + +#~ msgid "Arc secant" +#~ msgstr "Арксеканс" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Гиперболалық арксеканс" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Экспонента (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Натурал логарифм" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Ондық логарифм" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Модулі, abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Ең жақын кішірек бүтін саны, floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Ең жақын үлкенрек бүтін саны, ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Минимумы" + +#~ msgid "Maximum" +#~ msgstr "Максимумы" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Келесіден артық, gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : шегі" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Мәні" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Дұрыс амалды келтіру керек" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr " ', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Беймәлім идентификатор: '%1'" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Шартқа келетіні табылмады." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Шек үшін қолданбайтын түрі" + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Төменгі шегі жоғарғыдан асып тұр" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Төменгі не жоғарғы шегі дұрыс емес" + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Тұйықтық айнымалының өз-өзінен тәуелдігі" + +#~ msgid "The result is not a number" +#~ msgstr "Нәтижесі сан емес" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Күтпегенде кіріс бітті" + +#~ msgid "Unknown token %1" +#~ msgstr "%1 беймәлім нәрсе" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 кемінде екі параметрді қажет етеді" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 кемінде %2 параметрді қажет етеді" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "'%1' дегеннің шегі келтірілмеген" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "'%1' үшін күтпеген шегі келтірілген" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 дегеннің '%2' дегені шектелмеген" + +#~ msgid "Wrong declare" +#~ msgstr "Анықтама қате" + +#~ msgid "Empty container: %1" +#~ msgstr "Бос контейнер: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Шарттар тек қана құрама құрылымдарында болуға тиіс. " + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "'%1' сияқты бірдей аталған екі параметр болуға тиіс емес." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "otherwise параметрі соңғы болуға тиіс " + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 деген шарт емес, ол бұл құрамада жарамайды" + +#~ msgid "We can only declare variables" +#~ msgstr "Айнымалыларды жариялау ғана болады" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Айнымалылар шектелген ғана болады" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Мынаны талдау қатесі: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Беймәлім контейнер: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "%1 мәні кодтауға келмеді." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "%1 операторы туынды контексттерге ие бола алмайды." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "'%1' элементі оператор емес." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Бос вектор жөнсіз" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Танылмайтын/беймәлім: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "ы'%2' орнында %1 күтілген еді" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Оң жақ жақшасы жетіспейді" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Жабылмаған оң жақ жақшасы" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "%1 деген күтпеген нәрсе" + +#~ msgid "Unexpected token %1" +#~ msgstr "%1 деген күтпеген нәрсе" + +#, fuzzy +#~| msgid "Could not calculate the derivative for '%1'" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "'%1' дегеннің тұындысы есептеуге келмейді" + +#, fuzzy +#~| msgid "The domain should be either a vector or a list." +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "Анықталу аймағы вектор немесе тізім болу керек." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "'%2' дегенде параметр саны дұрыс емес. Ол %1 болуға тиіс." + +#~ msgid "Could not call '%1'" +#~ msgstr "'%1' шақырылмады" + +#~ msgid "Could not solve '%1'" +#~ msgstr "'%1' шешілмеді" + +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "'%1' айнымалының түрі анықсыз" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Құрама функцияның түрі анықталмады" + +#~ msgid "Unexpected type" +#~ msgstr "Күтпеген түрі" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr " '%1' деген'%2' дегенге аударылмады" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "%1 деген беймәлім нәрсе" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "0-ден қалдық есептеуге келмейді" + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "0-дің көбейткіші есептеуге келмейді" + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "0-дің ең кіші ортақ еселігі есептеуге келмейді" + +#~ msgid "Could not calculate a value %1" +#~ msgstr "%1 мәні есептеуге келмейді" + +#~ msgid "Invalid index for a container" +#~ msgstr "Контейнерінің индексі дұрыс емес" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Түрлі өлшмді векторлар бір амалда үйлеспейді." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Вектордың %1 есептеуге келмейді" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Тізімдің %1 есептеуге келмейді" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "'%1' дегеннің тұындысы есептеуге келмейді" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr " '%1' және '%2' ықшамдатуға келмейді." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Параметрлік функция векторды қайтармайды " + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Екі өлшемді векторы керек" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Параметрлік функцияның параметрлері скаляр болуға тиіс" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "%1 туындысы әлі іске асырылмаған" + +#~ msgid "Incorrect domain." +#~ msgstr "Аумағы дұрыс емес." diff --git a/po/km/kalgebra.po b/po/km/kalgebra.po new file mode 100644 index 0000000..89a7d93 --- /dev/null +++ b/po/km/kalgebra.po @@ -0,0 +1,530 @@ +# translation of kalgebra.po to Khmer +# Khoem Sokhem , 2008, 2009, 2011. +# Auk Piseth , 2008. +# Eng Vannak , 2008. +# Morn Met, 2009. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# sutha , 2013. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2013-01-04 14:25+0700\n" +"Last-Translator: sutha \n" +"Language-Team: Khmer \n" +"Language: km\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: WordForge 0.8 RC1\n" +"X-Language: km-KH\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "ជម្រើស​ ៖ %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "បិទ​ភ្ជាប់​ \"%1\" ដើម្បី​បញ្ចូល" + +#: consolemodel.cpp:95 +#, fuzzy, kde-format +#| msgid "Paste \"%1\" to input" +msgid "Paste to Input" +msgstr "បិទ​ភ្ជាប់​ \"%1\" ដើម្បី​បញ្ចូល" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    កំហុស​ ៖ %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "បាន​នាំចូល ៖ %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    កំហុស ៖ មិន​អាច​ផ្ទុក​ %1។

%2" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "ព័ត៌មាន" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "បន្ថែម/កែសម្រួល​អនុគមន៍" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "មើល​ជា​មុន" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "ពី​៖" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "ដល់ ៖" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "ជម្រើស" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "យល់​​ព្រម​" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "ជម្រើស​ដែល​អ្នក​បាន​បញ្ជាក់​មិន​ត្រឹមត្រូវ​ទេ" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "កម្រិត​ទាប​បំផុត​មិន​អាច​ធំ​ជាង​កម្រិត​ខ្ពស់​បំផុត​បាន​ទេ" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "គូស​ក្រាហ្វិក​ទ្វេ​មាត្រ" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "​គូស​ក្រាហ្វិក​ត្រីមាត្រ" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "សម័យ" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "អថេរ" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "គណនា" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "គណនា" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "ផ្ទុក​ស្គ្រីប" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "ស្គ្រីប​បច្ចុប្បន្ន" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "រក្សាទុក​ស្គ្រីប​..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "នាំ​ចេញ​កំណត់​ហេតុ​..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "របៀប​ប្រតិបត្តិ​" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "គណនា" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "វាយ​តម្លៃ" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "អនុគមន៍" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "បញ្ជី" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "បន្ថែម" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "ច្រក​ទិដ្ឋភាព​" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "ក្រាប​​ទ្វេ​មាត្រ" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "ក្រាប​ទ្វេ​មាត្រ" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "ក្រឡា​ចត្រង្គ" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "រក្សា​ទុក​សមាមាត្រ" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "គុណភាព​បង្ហាញ" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "អន់" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "ធម្មតា" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "ល្អ" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "ល្អ​បំផុត​" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "ក្រាប​​​ត្រីមាត្រ" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "ក្រាប​ត្រីមាត្រ" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "កំណត់​ទិដ្ឋភាព​ឡើងវិញ" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "ចំណុច" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "បន្ទាត់" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "តាន់" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "ប្រតិបត្តិការ" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "វចនានុក្រម" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "រក​មើល ៖" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "កែសម្រួល" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "ជ្រើស​ស្គ្រីប" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "ស្គ្រីប (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "ឯកសារ​ HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "កំហុស ៖ %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"ឯកសារ​ *.png|Image\n" +"ឯកសារ​ *.svg|SVG " + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "រួចរាល់" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "បន្ថែម​​អថេរ" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "បញ្ចូល​ឈ្មោះ​សម្រាប់​អថេរ​ថ្មី" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "ម៉ាស៊ីន​គិតលេខ" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2010 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "រក្សា​សិទ្ធិ​ឆ្នាំ​ ២០០៦-២០១០ ដោយ​ Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ខឹម សុខែម, សេង សុត្ថា, សុខ សុភា" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sokhem@open.org.kh,sutha@open.org.kh,sophea@open.org.kh" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "បន្ថែម​/កែសម្រួល​អថេរ" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "អថេរ" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "កែសម្រួល​តម្លៃ '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "មិន​មាន" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 ៖= %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ខុស" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "ឆ្វេង​ ៖" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "លើ​ ៖" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "ទទឹង​​ ៖" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "កម្ពស់​ ៖" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "អនុវត្ត" + +#~ msgid "C&onsole" +#~ msgstr "កុងសូល" + +#~ msgid "&Console" +#~ msgstr "កុងសូល" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "បាន​អភិវឌ្ឍន៍​លក្ខណ​ពិសេស​សម្រាប់​ការ​គូស​ខ្សែ​កោង​អាំប្លីស៊ីត​ ។ ការ​ធ្វើ​ឲ្យ​ប្រសើរ​សម្រាប់​ការ​គូស​ក្រាហ្វិក​" +#~ "អនុគមន៍ ។" + +#~ msgid "Formula" +#~ msgstr "រូបមន្ត" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "កំហុស​ ៖ ប្រភេទ​អនុគមន៍​មិន​ត្រឹម​ត្រូវ" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "ធ្វើ​រួច ៖ %1ms" + +#~ msgid "Error: %1" +#~ msgstr "កំហុស ៖ %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "សម្អាត" + +#~ msgid "*.png|PNG File" +#~ msgstr "ឯកសារ​ *.png|PNG " + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "ភាព​ថ្លា" + +#~ msgid "Type" +#~ msgstr "ប្រភេទ" + +#~ msgid "Result: %1" +#~ msgstr "លទ្ធផល​ ៖ %1" + +#~ msgid "To Expression" +#~ msgstr "ទៅ​កាន់​កន្សោម" + +#~ msgid "To MathML" +#~ msgstr "ទៅ​កាន់ MathML" + +#~ msgid "Simplify" +#~ msgstr "ធ្វើ​ឲ្យ​ធម្មតា" + +#~ msgid "Examples" +#~ msgstr "ឧទាហរណ៍" + +#~ msgid "We can only draw Real results." +#~ msgstr "យើង​អាច​គូរ​តែ​លទ្ធផល​ពិត​ប៉ុណ្ណោះ ។" + +#~ msgid "The expression is not correct" +#~ msgstr "កន្សោម​មិន​ត្រឹម​ត្រូវ" + +#~ msgid "Function type not recognized" +#~ msgstr "មិន​ស្គាល់​ប្រភេទ​អនុគមន៍" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "ប្រភេទ​អនុគមន៍​មិន​ត្រឹម​ត្រូវ​សម្រាប់​អនុគមន៍​ដែល​ផ្អែក​លើ​ %1" diff --git a/po/ko/kalgebra.po b/po/ko/kalgebra.po new file mode 100644 index 0000000..a3ac88b --- /dev/null +++ b/po/ko/kalgebra.po @@ -0,0 +1,493 @@ +# Korean translation for kdeedu +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the kdeedu package. +# FIRST AUTHOR , 2010. +# Shinjo Park , 2011, 2014, 2015, 2020, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: kdeedu\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-07-13 14:14+0200\n" +"Last-Translator: Shinjo Park \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Lokalize 21.12.3\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "옵션: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "\"%1\"을(를) 입력으로 붙여넣기" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "입력으로 붙여넣기" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    오류: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "가져옴: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    오류: %1을(를) 불러올 수 없음.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "정보" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "함수 추가/편집" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "미리 보기" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "시작:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "끝:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "설정" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "확인" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "삭제" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "지정한 옵션이 올바르지 않습니다" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "최솟값이 최댓값보다 클 수 없음" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2차원으로 그리기" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3차원으로 그리기" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "세션" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "변수" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "계산기(&C)" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "계산기(&A)" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "스크립트 열기(&L)..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "최근 스크립트" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "스크립트 저장(&S)..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "로그 내보내기(&E)..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "직전 계산값(ans) 삽입(&I)..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "실행 모드" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "계산" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "평가" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "함수" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "목록" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "추가(&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "뷰포트" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "2D 그래프(&2)" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2D 그래프(&D)" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "격자(&G)" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "가로 세로 비율 유지(&K)" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "해상도" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "나쁨" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "보통" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "좋음" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "매우 좋음" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "3D 그래프(&3)" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D 그래프(&G)" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "보기 초기화(&R)" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "점" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "선" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "실선" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "연산" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "사전(&D)" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "찾을 단어:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "편집(&E)" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "스크립트를 선택하십시오" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "스크립트 (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML 파일 (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "오류: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "렌더링한 결과를 출력할 위치를 선택하십시오" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "그림 파일 (*.png);;SVG 파일 (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "준비" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "변수 추가" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "새 변수 이름을 입력하십시오" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "포터블 계산기" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "박신조" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde@peremen.name" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "변수 추가/편집" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "변수 삭제" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "'%1' 값 편집" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "사용할 수 없음" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "오류" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "왼쪽:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "위:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "넓이:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "높이:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "적용" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document\n" +#~| "*.x3d|X3D Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|PNG 파일\n" +#~ "*.pdf|PDF 문서\n" +#~ "*.x3d|X3D 문서" + +#~ msgid "C&onsole" +#~ msgstr "콘솔(&O)" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "콘솔(&C)" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "음함수 그리기 기능, 작도 함수 개선" + +#~ msgid "Formula" +#~ msgstr "공식" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "오류: 함수 종류가 잘못된" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "완료됨: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "오류: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "지우기" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG 파일" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." diff --git a/po/ko/kalgebramobile.po b/po/ko/kalgebramobile.po new file mode 100644 index 0000000..5e03d44 --- /dev/null +++ b/po/ko/kalgebramobile.po @@ -0,0 +1,299 @@ +# Copyright (C) 2024 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# SPDX-FileCopyrightText: 2020, 2021, 2022, 2023, 2024 Shinjo Park +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-02-09 23:14+0100\n" +"Last-Translator: Shinjo Park \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Lokalize 23.08.5\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "계산기" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "스크립트 열기" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "스크립트 (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "스크립트 저장" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "로그 내보내기" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "평가" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "계산" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "기록 비우기" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D 그래프" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D 그래프" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "\"%1\" 복사" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "콘솔 기록 비우기" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "추가" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "모두 지우기" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "대화 상자 닫기" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "플롯 삭제" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "플롯을 사용할 수 없음" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "계산할 수식..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "사전" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "이름:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "2D 그래프" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "3D 그래프" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "값 표" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "변수" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "사전" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "KAlgebra 정보" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D 플롯" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "저장" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "격자 표시" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "뷰포트 초기화" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D 플롯" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "결과" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "값 표" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "오류: 단계는 0일 수 없음" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "오류: 시작과 끝이 동일함" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "오류: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "실행" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "입력" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "시작:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "끝:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "단계" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "실행" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "포터블 계산기" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "관리자" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "박신조" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde@peremen.name" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra 모바일" + +#~ msgid "A simple scientific calculator" +#~ msgstr "간단한 공학용 계산기" diff --git a/po/lt/kalgebra.po b/po/lt/kalgebra.po new file mode 100644 index 0000000..d31a2cf --- /dev/null +++ b/po/lt/kalgebra.po @@ -0,0 +1,473 @@ +# Lithuanian translations for kalgebra package. +# This file is distributed under the same license as the kalgebra package. +# Andrius Štikonas , 2008. +# Valdas Jankūnas , 2009. +# Remigijus Jarmalavičius , 2011. +# Liudas Ališauskas , 2015. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2015-01-28 07:02+0200\n" +"Last-Translator: Liudas Ališauskas \n" +"Language-Team: Lithuanian \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" +"%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" +"X-Generator: Lokalize 1.5\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Parinktys: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Įdėti „%1“ į įvestį" + +#: consolemodel.cpp:95 +#, fuzzy, kde-format +#| msgid "Paste \"%1\" to input" +msgid "Paste to Input" +msgstr "Įdėti „%1“ į įvestį" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Klaida: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importuota: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Klaida: negalima pakrauti %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informacija" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Pridėti arba keiti funkciją" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Peržiūra" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Nuo:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Iki:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Parinktys" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Gerai" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Pašalinti" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Nurodytos pasirinktys nėra teisingos" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Žemiausia riba negali būti didesnė nei aukščiausia riba" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Brėžti 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Brėžti 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sesija" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Kintamieji" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "Skaičiuoti" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "Skaičiuoti" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Į&kelti scenarijų..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Paskiausi scenarijai" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Įrašyti scenarijų..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "Eksportuoti žurnalą..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Vykdymo režimas" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Skaičiuoti" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Įvertinti" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkcijos" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Sąrašas" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Pridėti" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Matomas plotas" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D grafikas" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D grafikas" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Tinklelis" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Išlaikyti &proporciją" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Skiriamoji geba" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Grubus" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normalus" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Smulkus" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Labai smulkus" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D grafikas" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &grafikas" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Atstatyti rodinį" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Taškai" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linijos" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Vientisas" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacijos" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "Ž&odynas" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Ieškoti:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Keičiama" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Parinkite scenarijų" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Scenarijus (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML failas (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Klaidos: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Nurodykite kur padėti padarytą brėžinį" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Paveikslo failas\n" +"*.svg|SVG failas" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Pasirengęs" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Pridėti kintamąjį" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Įveskite naujo kintamojo pavadinimą" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Pridėti arba keisti kintamąjį" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Pašalinti kintamąjį" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Keisti „%1“ vertę" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "nėra" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "KLAIDINGAS" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Kairė:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Viršus:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Plotis:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Aukštis:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Pritaikyti" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document\n" +#~| "*.x3d|X3D Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|PNG failas\n" +#~ "*.pdf|PDF dokumentas\n" +#~ "*.x3d|X3D dokumentas" + +#~ msgid "C&onsole" +#~ msgstr "P&ultas" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Pultas" diff --git a/po/lt/kalgebramobile.po b/po/lt/kalgebramobile.po new file mode 100644 index 0000000..f190db6 --- /dev/null +++ b/po/lt/kalgebramobile.po @@ -0,0 +1,294 @@ +# Lithuanian translations for kalgebra package. +# Copyright (C) 2019 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# Automatically generated, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2019-03-08 03:26+0100\n" +"Last-Translator: Automatically generated\n" +"Language-Team: lt\n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" +"%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" diff --git a/po/lv/kalgebra.po b/po/lv/kalgebra.po new file mode 100644 index 0000000..7dab651 --- /dev/null +++ b/po/lv/kalgebra.po @@ -0,0 +1,1086 @@ +# translation of kalgebra.po to Latvian +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Maris Nartiss , 2007, 2008. +# Viesturs Zarins , 2008. +# Viesturs Zariņš , 2008. +# Viesturs Zariņš , 2009. +# Einars Sprugis , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2011-07-06 01:24+0300\n" +"Last-Translator: Einars Sprugis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.2\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opcijas: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Ievietot \"%1\" ievadē" + +#: consolemodel.cpp:95 +#, fuzzy, kde-format +#| msgid "Paste \"%1\" to input" +msgid "Paste to Input" +msgstr "Ievietot \"%1\" ievadē" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Kļūda: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importēts: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Kļūda: neizdevās ielādēt %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informācija" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Pielikt/labot funkciju" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Priekšskatījums" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "No:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Līdz:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opcijas" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Labi" + +#: functionedit.cpp:115 +#, fuzzy, kde-format +#| msgid "Remove '%1'" +msgctxt "@action:button" +msgid "Remove" +msgstr "Noņemt '%1'" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Jūsu norādītās opcijas nav pareizas" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Apakšējā robeža nevar būt lielāka nekā augšējā robeža" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Grafiks 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Grafiks 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sesija" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Mainīgie" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "Aprēķināt" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "Aprēķināt" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Ie&lādēt skriptu..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Nesenie skripti" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Saglabāt skriptu..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Eksportēt žurnālu..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Izpildes režīms" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Aprēķināt" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Novērtēt" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkcijas" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Saraksts" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Pievienot" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Skats" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D grafiks" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D grafiks" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Rūtiņas" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Saglabāt &attiecību" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Izšķirtspēja" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Zema" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normāla" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Augsta" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Ļoti augsta" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D grafiks" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &grafiks" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Atiestatīt skatu" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punktu" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Līniju" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Aizpildīts" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Darbības" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "Vār&dnīca" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Meklēt:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "R&ediģēšana" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Izvēlieties skriptu" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skripts (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML fails (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Errors: %1" +msgstr "Kļūda: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Attēla fails\n" +"*.svg|SVG fails" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Gatavs" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Pievienot mainīgo" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Ievadiet jaunā mainīgā nosaukumu" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "Kalkulators" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2010 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2010 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleikss Pols Gozaless (Aleix Pol Gonzalez)" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Pievienot/Labot mainīgo" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "Mainīgie" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Labot '%1' vērtību" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "nav pieejams" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "APLAMI" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "No kreisās:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "No augšas:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Platums:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Augstums:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Pielietot" + +#~ msgid "C&onsole" +#~ msgstr "K&onsole" + +#~ msgid "&Console" +#~ msgstr "&Konsole" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "Formula" +#~ msgstr "Formula" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Kļūda: nepareizs funkcijas tips" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Pabeigts: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Kļūda: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Attīrīt" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG Fails" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Caurspīdīgums" + +#~ msgid "Type" +#~ msgstr "Veids" + +#~ msgid "Result: %1" +#~ msgstr "Rezultāts: %1" + +#~ msgid "To Expression" +#~ msgstr "Uz izteiksmi" + +#~ msgid "To MathML" +#~ msgstr "Uz MathML" + +#~ msgid "Simplify" +#~ msgstr "Vienkāršot" + +#~ msgid "Examples" +#~ msgstr "Piemēri" + +#~ msgid "We can only draw Real results." +#~ msgstr "Mēs mākam zīmēt tikai reālus skaitļus." + +#~ msgid "Function type not recognized" +#~ msgstr "Funkcijas tips nav atpazīts" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Funkcijas tips nav pareizs funkcijām, kas atkarīgas no %1" + +#~ msgid "The expression is not correct" +#~ msgstr "Izteiksme nav pareiza" + +#~ msgid "center" +#~ msgstr "centrs" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Nosaukums" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funkcija" + +#~ msgid "%1 function added" +#~ msgstr "%1 funkcija pielikta" + +#~ msgid "Hide '%1'" +#~ msgstr "Slēpt '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Rādīt '%1'" + +#~ msgid "Selected viewport too small" +#~ msgstr "Izvēlētais skats ir pārāk mazs" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Apraksts" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parametri" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Piemērs" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=no..līdz" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parametri, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Saskaitīšana" + +#~ msgid "Multiplication" +#~ msgstr "Reizināšana" + +#~ msgid "Division" +#~ msgstr "Dalīšana" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Atņemšana. Noņems visas vērtības no pirmās." + +#~ msgid "Power" +#~ msgstr "Kāpināšana" + +#~ msgid "Remainder" +#~ msgstr "Atlikums" + +#~ msgid "Quotient" +#~ msgstr "Kvocients" + +#~ msgid "The factor of" +#~ msgstr "Dalītājs " + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Faktoriāls. faktoriāls(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funkcija sinusa aprēķināšanai dotajam leņķim" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funkcija kosinusa aprēķināšanai dotajam leņķim" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funkcija tangensa aprēķināšanai dotajam leņķim" + +#~ msgid "Secant" +#~ msgstr "Sekants" + +#~ msgid "Cosecant" +#~ msgstr "Kosekants" + +#~ msgid "Cotangent" +#~ msgstr "Kotangenss" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Hiperboliskais sinuss" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hiperboliskais kosinuss" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hiperboliskais tangenss" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Hiperboliskais sekants" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Hiperboliskais kosekants" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Hiperboliskais kotangenss" + +#~ msgid "Arc sine" +#~ msgstr "Arksinuss" + +#~ msgid "Arc cosine" +#~ msgstr "Arkkosīnuss" + +#~ msgid "Arc tangent" +#~ msgstr "Arktangenss" + +#~ msgid "Arc cotangent" +#~ msgstr "Arkkotangenss" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Hiperboliskais arktangenss" + +#~ msgid "Summatory" +#~ msgstr "Summa" + +#~ msgid "Productory" +#~ msgstr "Reizinājums" + +#~ msgid "For all" +#~ msgstr "Visiem" + +#~ msgid "Exists" +#~ msgstr "Pastāv" + +#~ msgid "Differentiation" +#~ msgstr "Diferencēšana" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Hiperboliskais arksinuss" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Hiperboliskais arkkosinuss" + +#~ msgid "Arc cosecant" +#~ msgstr "Arkkosekants" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Hiperboliskais arkkosekants" + +#~ msgid "Arc secant" +#~ msgstr "Arksekants" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Hiperboliskais arksekants" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Eksponente (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Naturāllogaritms" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Decimāllogaritms" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Absolūtā vērtība. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Grīdas funkcija. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Griestu funkcija. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimums" + +#~ msgid "Maximum" +#~ msgstr "Maksimums" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Lielāks par. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Vērtība" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Jānorāda derīga darbība" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Nezināms identifikators: '%1'" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Neizdevās atrast pareizu izvēli nosacījuma izteikumam." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Apakšējā robeža ir lielāka nekā augšējā robeža" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Nekorekta augšējā vai apakšējā robeža." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Definēts mainīgs cikls" + +#~ msgid "The result is not a number" +#~ msgstr "Rezultāts nav skaitlis" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Negaidīti nonāca līdz ievades beigām" + +#~ msgid "Unknown token %1" +#~ msgstr "Nezināms elements %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 nepieciešami vismaz 2 parametri" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 nepieciešami %2 parametri" + +#~ msgid "Wrong declare" +#~ msgstr "Nepareiza deklarācija" + +#~ msgid "Empty container: %1" +#~ msgstr "Tukšs konteiners: %1" + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Nevar būt divi parametri ar vienādu nosaukumu kā '%1'." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Parametram savādāk būtu jābūt pēdējam" + +#~ msgid "We can only declare variables" +#~ msgstr "Mēs mākam deklarēt tikai mainīgos" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Mums var būt tikai piesaistītie mainīgie" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Kļūda analizējot: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Nezināms konteiners: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Neizdevās kodificēt %1 vērtību." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "%1 operatoram nevar būt bērna konteksti." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Elements '%1' nav operators." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Nevēlos tukšus vektorus" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Nav atbalstīts/nezināms: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Gaidīts '%1' nevis '%2'" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Trūkst labās iekavas" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Lieka labā iekava" + +#~ msgid "Unexpected token %1" +#~ msgstr "Negaidīts elements %1" + +#~ msgid "The domain should be either a vector or a list." +#~ msgstr "Definīcijas apgabalam būtu jābūt vai nu vektoram vai sarakstam." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Nederīgs parametru skaits priekš '%2'. Jābūt %1 parametram." +#~ msgstr[1] "Nederīgs parametru skaits priekš '%2'. Jābūt %1 parametriem." +#~ msgstr[2] "Nederīgs parametru skaits priekš '%2'. Jābūt %1 parametriem." + +#~ msgid "Could not call '%1'" +#~ msgstr "Neizdevās izsaukt '%1'" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Neizdevās aprēķināt '%1'" + +#~ msgid "Unexpected type" +#~ msgstr "Negaidīts tips" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Nevar pārveidot '%1' uz '%2'" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Nezināms elements %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Nevar aprēķināt atlikumu nullei (0)." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Nevar aprēķināt reizinātāju nullei (0)." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Nevar aprēķināt nulles (0) mazāko kopīgo dalāmo." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Neizdevās aprēķināt vērtību %1" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Neizdevās reducēt '%1' un '%2'." + +#~ msgid "Invalid index for a container" +#~ msgstr "Nederīgs konteinera indekss" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Nevar darboties uz dažāda izmēra vektoriem." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Nevar aprēķināt vektora %1" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Nevar aprēķināt saraksta %1" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Neizdevās aprēķināt '%1' atvasinājumu" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Parametriskā funkcija neatgriež vektoru" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Vajadzīgs divdimensionālais vektors" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Parametriskās funkcijas punktiem vajadzētu būt skalāriem" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "%1 atvasinājums nav realizēts." + +#~ msgid "Incorrect domain." +#~ msgstr "Nepareizs domēns." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Nesapratu reālo vērtību: %1" + +#~ msgid "Subtraction" +#~ msgstr "Atņemšana" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Kļūda: %2" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Kļūda: nepieciešamas vērtības grafika zīmēšanai" + +#~ msgid "Select an element from a container" +#~ msgstr "Izvēlieties elementu no konteinera" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Nedrīkst apakšējā robeža ≥ augšējā robeža" + +#~ msgid "Generating... Please wait" +#~ msgstr "Ģenerē... Lūdzu gaidiet" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Saglabāt žurnālu" + +#~ msgid "Mode" +#~ msgstr "Režīms" + +#~ msgid "Save the expression" +#~ msgstr "Saglabāt izteiksmi" + +#~ msgid "Calculate the expression" +#~ msgstr "Aprēķināt izteiksmi" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#, fuzzy +#~| msgid "We can only draw Real results." +#~ msgid "We can only call functions" +#~ msgstr "Mēs mākam zīmēt tikai reālus skaitļus." + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "patiess" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "aplams" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Nezināms piesaistītais mainīgais: %1" + +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Need a var name and a value" +#~ msgstr "Nepieciešams mainīgā nosaukums un vērtība" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Funkcija %1 nepastāv" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Mainīgais %1 nepastāv" + +#, fuzzy +#~| msgid "We can only select a containers value with its integer index" +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "" +#~ "Jūs varat izvēlēties vērtību no konteinera ar vesela skaitļa indeksu." + +#~ msgid "From parser:" +#~ msgstr "No parsētāja:" + +#~ msgctxt "" +#~ "%1 the operation name, %2 and %3 is the opearation we wanted to calculate" +#~ msgid "Cannot calculate the %1(%2, %3)" +#~ msgstr "Nevar aprēķināt %1(%2, %3)" + +#~ msgctxt "Error message" +#~ msgid "Trying to codify an unknown value: %1" +#~ msgstr "Mēģina mainīt nezināmu vērtību: %1" + +#, fuzzy +#~| msgid "Hyperbolic arc tangent" +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "Hiperboliskais arktangenss" + +#, fuzzy +#~| msgctxt "@info:status" +#~| msgid "Ready" +#~ msgid "Real" +#~ msgstr "Gatavs" diff --git a/po/mai/kalgebra.po b/po/mai/kalgebra.po new file mode 100644 index 0000000..af65df7 --- /dev/null +++ b/po/mai/kalgebra.po @@ -0,0 +1,554 @@ +# translation of kalgebra.po to Maithili +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Sangeeta Kumari , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2009-04-22 00:01+0530\n" +"Last-Translator: Sangeeta Kumari \n" +"Language-Team: Maithili \n" +"Language: mai\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, fuzzy, kde-format +#| msgid "Operations" +msgid "Options: %1" +msgstr "काजसभ" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "सूचना" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, fuzzy, kde-format +#| msgid "Operations" +msgid "Options" +msgstr "काजसभ" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "बेस" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "चर" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "" + +#: kalgebra.cpp:215 +#, fuzzy, kde-format +#| msgctxt "@title:column" +#| msgid "Value" +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "मान" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "प्रकार्यसभ" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "सूची" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "जोड़ू (&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "विभेदन" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "गरीब" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "सामान्य" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "बिन्दुसभ" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "रेखासभ" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "ठोस" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "काजसभ" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Errors: %1" +msgstr "त्रुटि: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "तैआर" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "चर" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "उपलब्ध नहि" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" + +#~ msgid "Error: %1" +#~ msgstr "त्रुटि: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "खाली" + +#~ msgid "Type" +#~ msgstr "प्रकार" + +#, fuzzy +#~| msgctxt "@title:column" +#~| msgid "Example" +#~ msgid "Examples" +#~ msgstr "उदाहरण" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "नाम" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "फंक्शन" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "विवरण" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "पैरामीटर" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "उदाहरण" + +#~ msgid "Addition" +#~ msgstr "जोड़" + +#~ msgid "Division" +#~ msgstr "विभाजन" + +#~ msgid "Power" +#~ msgstr "घात" + +#~ msgid "Cotangent" +#~ msgstr "कोटान्जेन्ट" + +#, fuzzy +#~| msgid "Cotangent" +#~ msgid "Arc tangent" +#~ msgstr "कोटान्जेन्ट" + +#, fuzzy +#~| msgid "Cotangent" +#~ msgid "Arc cotangent" +#~ msgstr "कोटान्जेन्ट" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "सामान्य" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "सूची" + +#, fuzzy +#~| msgctxt "@title:column" +#~| msgid "Description" +#~ msgid "Differentiation" +#~ msgstr "विवरण" + +#~ msgid "Minimum" +#~ msgstr "न्यूनतम" + +#~ msgid "Maximum" +#~ msgstr "अधिकतम" + +#~ msgid "Root" +#~ msgstr "रूट" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "मान" + +#, fuzzy +#~| msgid ", " +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr ", " + +#~ msgid "Subtraction" +#~ msgstr "घटाव" + +#~ msgid "Mode" +#~ msgstr "मोड" diff --git a/po/ml/kalgebra.po b/po/ml/kalgebra.po new file mode 100644 index 0000000..ccfb3f3 --- /dev/null +++ b/po/ml/kalgebra.po @@ -0,0 +1,731 @@ +# translation of kalgebra.po to +# Copyright (C) 2008 This_file_is_part_of_KDE +# This file is distributed under the same license as the kalgebra package. +# ANI PETER|അനി പീറ്റര്‍ , 2008 +# മണിലാല്‍ കെ.എം|Manilal K M , 2008 +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2019-12-12 21:29+0000\n" +"Last-Translator: Vivek KJ Pazhedath \n" +"Language-Team: Malayalam \n" +"Language: ml\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, fuzzy, kde-format +msgid "Options: %1" +msgstr "പ്രക്രിയകള്‍" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, fuzzy, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    പിശകു്: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, fuzzy, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    പിശകു്: %1
  • %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "വിവരം" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "ഫംഗ്ഷന്‍ ചേര്‍ക്കുക/മാറ്റമാകുക" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, fuzzy, kde-format +msgid "Options" +msgstr "പ്രക്രിയകള്‍" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "ശരി" + +#: functionedit.cpp:115 +#, fuzzy, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "'%1' നീക്കം ചെയ്യുക" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, fuzzy, kde-format +msgid "Session" +msgstr "വാക്ക്യത്തിലേക്കു്" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "വേരിയബിളുകള്‍" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +msgid "&Calculator" +msgstr "ഗണനി" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +msgid "C&alculator" +msgstr "ഗണനി" + +#: kalgebra.cpp:196 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "സ്ക്രിപ്റ്റ് &ലഭ്യമാക്കുക" + +#: kalgebra.cpp:200 +#, fuzzy, kde-format +msgid "Recent Scripts" +msgstr "സ്ക്രിപ്റ്റ് &സൂക്ഷിക്കുക" + +#: kalgebra.cpp:205 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "സ്ക്രിപ്റ്റ് &സൂക്ഷിക്കുക" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "ഗണനി" + +#: kalgebra.cpp:215 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "മൂല്യം" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "ഫംഗ്ഷനുകള്‍" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "പട്ടിക" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&ചേര്‍ക്കുക" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2ഡി ഗ്രാഫ്" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "&2ഡി ഗ്രാഫ്" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&ഗ്രിഡ്" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "ആസ്പെക്ട് റേഷ്യോ &സൂക്ഷിക്കുക" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "റെസൊല്യൂഷന്‍" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "മോശമായത്" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "സാധാരണ" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "നല്ലത്" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "വളരെ നല്ലത്" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "3ഡി &ഗ്രാഫ്" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3ഡി &ഗ്രാഫ്" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "കാഴ്ച &വീണ്ടും ക്രമീകരിക്കുക" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "കുത്തുകള്‍" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "വരികള്‍" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "കട്ടിയുള്ള" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "പ്രക്രിയകള്‍" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&നിഘണ്ടു" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "തെരയുക:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&ചിട്ടപ്പെടുത്തുന്നു" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "ഒരു സ്ക്രിപ്റ്റ് തെരഞ്ഞെടുക്കുക" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "സ്ക്രിപ്റ്റ് (*.kal)" + +#: kalgebra.cpp:560 +#, fuzzy, kde-format +msgid "HTML File (*.html)" +msgstr "വാചക ഫയല്‍ (*)" + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +msgid "Errors: %1" +msgstr "പിശകു്: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Image ഫയല്‍\n" +"*.svg|SVG ഫയല്‍" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "തയ്യാര്‍" + +#: kalgebra.cpp:726 +#, fuzzy, kde-format +msgid "Add variable" +msgstr "ചരം ചേര്‍ക്കുക/മാറ്റുക" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, fuzzy, kde-format +msgid "A portable calculator" +msgstr "ഗണനി" + +#: main.cpp:35 +#, fuzzy, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2008 അലെയിക്സ് പോള്‍ ഗോണ്‍സാലസ്" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "അലെയിക്സ് പോള്‍ ഗോണ്‍സാലസ്" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "അനി പീറ്റര്‍" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "shijualexonline@gmail.com,snalledam@dataone.in,vivekkj2004@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "ചരം ചേര്‍ക്കുക/മാറ്റുക" + +#: varedit.cpp:40 +#, fuzzy, kde-format +msgid "Remove Variable" +msgstr "വേരിയബിളുകള്‍" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "'%1' മൂല്യം ചിട്ടപ്പെടുത്തുക" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ലഭ്യമല്ല" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "തെറ്റു്" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" + +#~ msgid "C&onsole" +#~ msgstr "&കണ്‍സോള്‍" + +#~ msgid "&Console" +#~ msgstr "&കണ്‍സോള്‍" + +#, fuzzy +#~ msgid "Formula" +#~ msgstr "%1" + +#, fuzzy +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "പൂര്‍ത്തിയായി: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "പിശകു്: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "വെടിപ്പാക്കുക" + +#~ msgid "*.png|PNG File" +#~ msgstr "൨" + +#~ msgid "&Transparency" +#~ msgstr "സുതാര്യത" + +#~ msgid "Type" +#~ msgstr "തരം" + +#~ msgid "To Expression" +#~ msgstr "വാക്ക്യത്തിലേക്കു്" + +#~ msgid "To MathML" +#~ msgstr "MathML-ലേക്കു്" + +#~ msgid "Simplify" +#~ msgstr "ലളിതമാക്കുക" + +#, fuzzy +#~ msgid "Examples" +#~ msgstr "ഉദാഹരണം" + +#~ msgid "center" +#~ msgstr "മധ്യം" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "പേരു്" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "ഫംഗ്ഷന്‍" + +#~ msgid "%1 function added" +#~ msgstr "%1 ഫംഗ്ഷന്‍ ചേര്‍ത്തിരിക്കുന്നു" + +#~ msgid "Hide '%1'" +#~ msgstr "'%1' അദൃശ്യമാക്കുക" + +#~ msgid "Show '%1'" +#~ msgstr "'%1' കാണിക്കുക" + +#~ msgid "Selected viewport too small" +#~ msgstr "തെരഞ്ഞെടുത്ത വ്യൂപോര്‍ട്ട് വളരെ ചെറുതാണു്" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "വിവരണം" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "ഉദാഹരണം" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#, fuzzy +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... പരാമീറ്ററുകള്‍, ...)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "സങ്കലനം" + +#~ msgid "Multiplication" +#~ msgstr "ഗുണനം" + +#~ msgid "Division" +#~ msgstr "ഹരണം" + +#~ msgid "Power" +#~ msgstr "ഊര്‍ജ്ജം" + +#~ msgid "Remainder" +#~ msgstr "ശിഷ്ടം" + +#~ msgid "Quotient" +#~ msgstr "ഹരണഫലം" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "തന്നിരിക്കുന്ന കോണിന്റെ സൈന്‍ കണ്ടുപിടിക്കാനുള്ള ഫംഗ്ഷന്‍" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "തന്നിരിക്കുന്ന കോണിന്റെ കൊസൈന്‍ കണ്ടുപിടിക്കാനുള്ള ഫംഗ്ഷന്‍" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "തന്നിരിക്കുന്ന കോണിന്റെ ടാന്‍ജെന്റ് കണ്ടുപിടിക്കാനുള്ള ഫംഗ്ഷന്‍" + +#~ msgid "Secant" +#~ msgstr "സീക്കെന്‍ഡ്" + +#~ msgid "Cosecant" +#~ msgstr "കൊസീക്കെന്‍ഡ്" + +#~ msgid "Cotangent" +#~ msgstr "കൊടാന്‍ജെന്റ്" + +#, fuzzy +#~ msgid "Arc tangent" +#~ msgstr "കൊടാന്‍ജെന്റ്" + +#, fuzzy +#~ msgid "Arc cotangent" +#~ msgstr "കൊടാന്‍ജെന്റ്" + +#, fuzzy +#~ msgid "For all" +#~ msgstr "സാധാരണ" + +#, fuzzy +#~ msgid "Exists" +#~ msgstr "പട്ടിക" + +#, fuzzy +#~ msgid "Differentiation" +#~ msgstr "വിവരണം" + +#, fuzzy +#~ msgid "Arc cosecant" +#~ msgstr "കൊസീക്കെന്‍ഡ്" + +#, fuzzy +#~ msgid "Arc secant" +#~ msgstr "കൊസീക്കെന്‍ഡ്" + +#~ msgid "Minimum" +#~ msgstr "ഏറ്റവും കുറഞ്ഞ" + +#~ msgid "Maximum" +#~ msgstr "ഏറ്റവും കൂടിയ" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "വലുതു്. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "മൂല്യം" + +#, fuzzy +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr ", " + +#, fuzzy +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "വാക്ക്യത്തിന്റെ മൂല്യം കാണുക" + +#, fuzzy +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "വാക്ക്യത്തിന്റെ മൂല്യം കാണുക" + +#, fuzzy +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "വാക്ക്യത്തിന്റെ മൂല്യം കാണുക" + +#, fuzzy +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "വാക്ക്യത്തിന്റെ മൂല്യം കാണുക" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "Subtraction" +#~ msgstr "വ്യവകലനം" + +#, fuzzy +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "പിശകു്: %1" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "പ്രശ്നം: ഗ്രാഫ് വരയ്ക്കാന്‍ വിലകള്‍ വേണം" + +#~ msgid "Generating... Please wait" +#~ msgstr "ലഭ്യമാക്കുന്നു... ദയവായി കാത്തിരിക്കുക" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "ലോഗ് &സൂക്ഷിക്കുക" + +#, fuzzy +#~ msgid "File" +#~ msgstr "നല്ലത്" + +#~ msgid "Save the expression" +#~ msgstr "വാക്ക്യം സൂക്ഷിക്കുക" + +#~ msgid "Calculate the expression" +#~ msgstr "വാക്ക്യത്തിന്റെ മൂല്യം കാണുക" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "From parser:" +#~ msgstr "പാര്‍സറില്‍ നിന്നും:" + +#~ msgid "Real" +#~ msgstr "രേഖീയ സംഖ്യ" + +#~ msgid "%1, " +#~ msgstr "%1, " diff --git a/po/ml/kalgebramobile.po b/po/ml/kalgebramobile.po new file mode 100644 index 0000000..1d24399 --- /dev/null +++ b/po/ml/kalgebramobile.po @@ -0,0 +1,294 @@ +# Malayalam translations for kalgebra package. +# Copyright (C) 2019 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# Automatically generated, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2019-12-12 21:33+0000\n" +"Last-Translator: Vivek KJ Pazhedath \n" +"Language-Team: Swathanthra|സ്വതന്ത്ര Malayalam|മലയാളം Computing|കമ്പ്യൂട്ടിങ്ങ് \n" +"Language: ml\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "shijualexonline@gmail.com,snalledam@dataone.in,vivekkj2004@gmail.com" diff --git a/po/mr/kalgebra.po b/po/mr/kalgebra.po new file mode 100644 index 0000000..cb66977 --- /dev/null +++ b/po/mr/kalgebra.po @@ -0,0 +1,465 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Chetan Khona , 2013. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2013-03-05 17:11+0530\n" +"Last-Translator: Chetan Khona \n" +"Language-Team: Marathi \n" +"Language: mr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Lokalize 1.5\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "पर्याय : %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, fuzzy, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "त्रुटी" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "माहिती" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "पूर्वावलोकन" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "पासून :" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "पर्यंत :" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "पर्याय" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "ठीक आहे" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "सत्र" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "व्हेरिएबल्स" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "गणना करा" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "गणना करा" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "गणना करा" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "कार्ये" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "यादी" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, fuzzy, kde-format +msgid "&Add" +msgstr "जोडा (&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "" + +#: kalgebra.cpp:287 +#, fuzzy, kde-format +msgid "&Grid" +msgstr "जाळे" + +#: kalgebra.cpp:288 +#, fuzzy, kde-format +msgid "&Keep Aspect Ratio" +msgstr "स्वरूपाचे गुणोत्तर ठेवा" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "घनता" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "सामान्य" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "ओळी" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "क्रिया" + +#: kalgebra.cpp:372 +#, fuzzy, kde-format +msgid "&Dictionary" +msgstr "शब्दकोश" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "" + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +msgid "Errors: %1" +msgstr "त्रुटी" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" + +#: kalgebra.cpp:692 +#, fuzzy, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "तयार" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "एलैक्स पोल गोन्झालेझ" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "एलैक्स पोल गोन्झालेझ" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "चेतन खोना" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "chetan@kompkin.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "व्हेरिएबल्स" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "" + +#: varedit.cpp:67 +#, fuzzy, kde-format +msgid "not available" +msgstr "उपलब्ध नाही" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "" + +#: viewportwidget.cpp:46 +#, fuzzy, kde-format +msgid "Left:" +msgstr "डावे :" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "वर :" + +#: viewportwidget.cpp:48 +#, fuzzy, kde-format +msgid "Width:" +msgstr "रुंदी :" + +#: viewportwidget.cpp:49 +#, fuzzy, kde-format +msgid "Height:" +msgstr "उंची :" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "लागू करा" + +#, fuzzy +#~ msgid "C&onsole" +#~ msgstr "कन्सोल" + +#, fuzzy +#~ msgid "&Console" +#~ msgstr "कन्सोल" + +#, fuzzy +#~ msgid "Formula" +#~ msgstr "फोर्म्युला" + +#, fuzzy +#~ msgid "Error: %1" +#~ msgstr "त्रुटी : %1" + +#, fuzzy +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "पुसून टाका" diff --git a/po/nb/kalgebra.po b/po/nb/kalgebra.po new file mode 100644 index 0000000..87405da --- /dev/null +++ b/po/nb/kalgebra.po @@ -0,0 +1,440 @@ +# Translation of kalgebra to Norwegian Bokmål +# +# Bjørn Steensrud , 2008, 2009, 2010, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2013-11-20 12:19+0100\n" +"Last-Translator: Bjørn Steensrud \n" +"Language-Team: Norwegian Bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Valg: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Lim inn «%1» til inndata" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Feil: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importert: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Feil: Klarte ikke laste inn %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informasjon" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Legg til/rediger en funksjon" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Forhåndsvis" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Fra:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Til:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Valg" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Fjern" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Valgene du oppga er ikke riktige" + +# ?? +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Ned-grense kan ikke være større enn opp-grense" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Plott 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Plot 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Økt" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variabler" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Last inn skript …" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Nylige skripter" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Lagre &skript …" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Eksporter logg …" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Kjøremodus" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Beregn" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Evaluer" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funksjoner" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Liste" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Legg til" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Bilderute" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D-graf" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D-graf" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Rutenett" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Be&hold høyde/bredde-forhold" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Oppløsning" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Dårlig" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fin" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Svært fin" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D-graf" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D-&graf" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Tilbakestill visning" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punkter" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linjer" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Heltrukken" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Regneoperasjoner" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Ordliste" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Let etter:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "R&edigering" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Velg et skript" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-fil (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Feil: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Klar" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Legg til variabel" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Skriv et navn på den nye variablen" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Legg til/rediger en variabel" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Fjern variabel" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Rediger verdien «%1»" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ikke tilgjengelig" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "FEIL" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Venstre:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Øverst:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Bredde:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Høyde:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Bruk" diff --git a/po/nds/kalgebra.po b/po/nds/kalgebra.po new file mode 100644 index 0000000..8074b9c --- /dev/null +++ b/po/nds/kalgebra.po @@ -0,0 +1,1202 @@ +# translation of kalgebra.po to Low Saxon +# Translation of kalgebra.po to Low Saxon +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Sönke Dibbern , 2008, 2009. +# Manfred Wiese , 2008, 2009, 2010, 2011, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2014-03-18 21:53+0100\n" +"Last-Translator: Manfred Wiese \n" +"Language-Team: Low Saxon \n" +"Language: nds\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Optschonen: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "\"%1\" na Ingaav infögen" + +#: consolemodel.cpp:95 +#, fuzzy, kde-format +#| msgid "Paste \"%1\" to input" +msgid "Paste to Input" +msgstr "\"%1\" na Ingaav infögen" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Fehler: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importeert: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Fehler: \"%1\" lett sik nich laden.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informatschonen" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "En Funkschoon tofögen/bewerken" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Vöransicht" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Vun:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Na:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Optschonen" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Wegmaken" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "De angeven Optschonen sünd leeg" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Neddergrenz kann nich grötter as Bövergrenz wesen." + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2D-Diagramm" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3D-Diagramm" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Törn" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variabeln" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "Utreken" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "Utreken" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Skript &laden..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Tolest bruukt Skripten" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Skript &sekern..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "Logbook &exporteren..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Utföhrbedrief" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Utreken" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Utweerten" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkschonen" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "List" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Tofögen" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Kiekrebeet" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D-Graph" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D-Graph" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Gadder" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Proportschoon &wohren" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Oplösen" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Groff" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normaal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fien" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Bannig fien" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D-Graph" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D-&Graph" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Ansicht to&rüchsetten" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Pünkt" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Streek" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Vull" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Akschonen" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Wöörbook" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Kieken na:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Bewerken" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "En Skript utsöken" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-Datei (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Fehlers: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Bilddatei\n" +"*.svg|SVG-Datei" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Praat" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Variabel tofögen" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Giff en Naam för de niege Variabel in" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "En Taschenreekner" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2010 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006-2010: Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Sönke Dibbern, Manfred Wiese" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "s_dibbern@web.de, m.j.wiese@web.de" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "En Variabel tofögen/bewerken" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Variabel wegmaken" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Weert \"%1\" bewerken" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "nich verföögbor" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "Falsch" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Linkerhand:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Baven:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Breed:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Hööchd:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Bruken" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|PNG-Datei\n" +#~ "*.pdf|PDF-Dokment" + +#~ msgid "C&onsole" +#~ msgstr "K&onsool" + +#~ msgid "&Console" +#~ msgstr "&Konsool" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Hett de Mööglichkeit för't Teken vun inbett Bagens un Verbetern vun de " +#~ "Diagrammtekenfunkschoon bidragen." + +#~ msgid "Formula" +#~ msgstr "Formel" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Fehler: Typ oder Funkschoon verkehrt" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Afslaten: %1 ms" + +#~ msgid "Error: %1" +#~ msgstr "Fehler: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Leddig maken" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG-Datei" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Dörschienen" + +#~ msgid "Type" +#~ msgstr "Typ" + +#~ msgid "Result: %1" +#~ msgstr "Resultaat: %1" + +#~ msgid "To Expression" +#~ msgstr "Na Utdruck" + +#~ msgid "To MathML" +#~ msgstr "Na MathML" + +#~ msgid "Simplify" +#~ msgstr "Eenfacher" + +#~ msgid "Examples" +#~ msgstr "Bispelen" + +#~ msgid "We can only draw Real results." +#~ msgstr "Bloots rejell Resultaten laat sik teken." + +#~ msgid "The expression is not correct" +#~ msgstr "De Utdruck is leeg." + +#~ msgid "Function type not recognized" +#~ msgstr "Funkschoon-Typ nich begäng" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Verkehrt Funkschoon-Typ för Funkschonen, de vun %1 afhangt" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Inbett Funkschoon in de Evene nich fastleggt" + +#~ msgid "center" +#~ msgstr "In de Merrn" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Naam" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funkschoon" + +#~ msgid "%1 function added" +#~ msgstr "%1-Funkschoon toföögt" + +#~ msgid "Hide '%1'" +#~ msgstr "\"'%1\" versteken" + +#~ msgid "Show '%1'" +#~ msgstr "\"%1\" wiesen" + +#~ msgid "Selected viewport too small" +#~ msgstr "Utsöcht Kiekrebeet to lütt" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Beschrieven" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parameters" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Bispill" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=vun...bet" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... Parameters, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Totellen" + +#~ msgid "Multiplication" +#~ msgstr "Multiplikatschoon" + +#~ msgid "Division" +#~ msgstr "Divischoon" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Aftrecken. Treckt all Weerten vun den eersten Weert af." + +#~ msgid "Power" +#~ msgstr "Hooch" + +#~ msgid "Remainder" +#~ msgstr "Nablievels" + +#~ msgid "Quotient" +#~ msgstr "Quotschent" + +#~ msgid "The factor of" +#~ msgstr "De Fakter vun" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Keden-Multiplikatschoon: factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funkschoon, de den Sinus vun en geven Winkel utreekt" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funkschoon, de den Kosinus vun en geven Winkel utreekt" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funkschoon, de den Tangens vun en geven Winkel utreekt" + +#~ msgid "Secant" +#~ msgstr "Sekans" + +#~ msgid "Cosecant" +#~ msgstr "Kosekans" + +#~ msgid "Cotangent" +#~ msgstr "Kotangens" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Hyperboolsch Sinus" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hyperboolsch Kosinus" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hyperboolsch Tangens" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Hyperboolsch Sekans" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Hyperboolsch Kosekans" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Hyperboolsch Kotangens" + +#~ msgid "Arc sine" +#~ msgstr "Arkussinus" + +#~ msgid "Arc cosine" +#~ msgstr "Arkuskosinus" + +#~ msgid "Arc tangent" +#~ msgstr "Arkustangens" + +#~ msgid "Arc cotangent" +#~ msgstr "Arkuskotangens" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Hyperboolsch Arkustangens" + +#~ msgid "Summatory" +#~ msgstr "Summ" + +#~ msgid "Productory" +#~ msgstr "Produkt" + +#~ msgid "For all" +#~ msgstr "För all" + +#~ msgid "Exists" +#~ msgstr "Vörhannen" + +#~ msgid "Differentiation" +#~ msgstr "Afledden" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Hyperboolsch Arkussinus" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Hyperboolsch Arkuskosinus" + +#~ msgid "Arc cosecant" +#~ msgstr "Arkuskosekans" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Hyperboolsch Arkuskosekans" + +#~ msgid "Arc secant" +#~ msgstr "Arkussekans" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Hyperboolsch Arkussekans" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Exponent (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Euler-Logaritmus" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Teiner-Logaritmus" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Afsoluutweert: abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Afrunnen: floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Oprunnen: ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Lüttst" + +#~ msgid "Maximum" +#~ msgstr "Gröttst" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Grötter as: gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr ": Grenzen" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Weert" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Du muttst en gellen Akschoon angeven" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "\",\"" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Nich begäng Beteker: \"%1\"" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Keen propper Köör för en Tostand-Utdruck funnen." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Typ ünnerstütt keen Ingrenzen." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "De Neddergrenz is grötter as de Bövergrenz." + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Leeg Böver- oder Neddergrenz" + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Variabel-Krink fastleggt" + +#~ msgid "The result is not a number" +#~ msgstr "Dat Resultaat is keen Tall." + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Unverwachtens bi't Enn vun de Ingaav anlangt" + +#~ msgid "Unknown token %1" +#~ msgstr "Beteker %1 nich begäng" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 bruukt tominnst 2 Parameters" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 bruukt %2 Parameters" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Grenzen fehlt bi \"%1\"" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Ingrenzen för \"%1\" nich verwacht" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 Grenzen fehlt bi \"%2\"" + +#~ msgid "Wrong declare" +#~ msgstr "Leeg Verkloren" + +#~ msgid "Empty container: %1" +#~ msgstr "Leddig Gelaats: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Binnen \"piecewise\"-Strukturen sünd bloots Bedingen tolaten." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Twee Parameters mit den sülven Naam as \"%1\" sünd nich tolaten." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "De Parameter anners mutt tolest kamen." + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 is binnen en \"piecewise\"-Element keen propper Beding" + +#~ msgid "We can only declare variables" +#~ msgstr "Bloots Variabeln laat sik verkloren" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Bloots bunnen Variabeln sünd tolaten." + +#~ msgid "Error while parsing: %1" +#~ msgstr "Fehler bi't Inlesen: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Nich begäng Gelaats: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "De %1-Weert lett sik nich fastschrieven." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "De %1-Oprater mutt keen Ünnerkontexten hebben." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Dat Element \"%1\" is keen Oprater" + +#~ msgid "Do not want empty vectors" +#~ msgstr "Leddig Vektoren sünd nich tolaten." + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Nich ünnerstütt oder nich begäng: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "%1 ansteed \"%2\" verwacht" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Klemm rechts fehlt" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Klemm rechts ahn Güntklemm" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Beteker %1 nich verwacht" + +#~ msgid "Unexpected token %1" +#~ msgstr "Beteker %1 nich verwacht" + +#, fuzzy +#~| msgid "Could not calculate the derivative for '%1'" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "De Afledden för \"%1\" lett sik nich utreken." + +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "De Domään mutt en Vektor oder en List wesen." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Leeg Parametertall för \"%2\": Müss een Parameter hebben." +#~ msgstr[1] "Leeg Parametertall för \"%2\": Müss %1 Parameters hebben." + +#~ msgid "Could not call '%1'" +#~ msgstr "\"%1\" lett sik nich opropen." + +#~ msgid "Could not solve '%1'" +#~ msgstr "\"%1\" lett sik nich lösen." + +#, fuzzy +#~| msgid "Enter a name for the new variable" +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Giff en Naam för de niege Variabel in" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "De Typ för \"piecewise\" lett sik nich fastslaan." + +#~ msgid "Unexpected type" +#~ msgstr "Nich verwacht Typ" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "\"%1\" lett sik nich na \"%2\" wanneln." + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Beteker %1 nich begäng" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Nablievel vun 0 lett sik nich utreken." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Faktor vun 0 lett sik nich utreken." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "LgV vun 0 lett sik nich utreken." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Weert %1 lett sik nich utreken" + +#~ msgid "Invalid index for a container" +#~ msgstr "Leeg Gelaats-Index" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Akschoon mit Vektoren vun verscheden Grött nich mööglich" + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "En Vektor sien %1 lett sik nich utreken" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "En List ehr %1 lett sik nich utreken." + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "De Afledden för \"%1\" lett sik nich utreken." + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "\"%1\" un \"%2\" laat sik nich körten." + +#~ msgid "Incorrect domain." +#~ msgstr "Leeg Domään" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "De Parameterfunkschoon gifft keen Vektor torüch" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "En tweedimenschonaal Vektor deit noot." + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "De Elementen vun de Parameterfunkschoon mööt Skalaren wesen" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "De %1. Afleden is nich inbuut." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Rejell Weert lett sik nich verstahn: %1" + +#~ msgid "Subtraction" +#~ msgstr "Aftrecken" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Fehler: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "En Element ut en Gelaats utsöken" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Fehler: Graphen laat sik bloots ut Weerten teken" + +#~ msgid "Generating... Please wait" +#~ msgstr "Bi to opstellen ... Tööv bitte" + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Leeg Parametertall: %1 Parameter för \"%2\"" +#~ msgstr[1] "Leeg Parametertall: %1 Parameters för \"%2\"" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "Logbook &sekern" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "Fien" + +#~ msgid "We can only call functions" +#~ msgstr "Bloots Funkschonen laat sik opropen." + +#~ msgid "Wrong parameter count" +#~ msgstr "Leeg Parametertall" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "Wohr" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "Falsch" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~| msgid "Wrong parameter count" +#~ msgid "Invalid parameter count." +#~ msgstr "Leeg Parametertall" + +#~ msgid "Mode" +#~ msgstr "Bedriefoort" + +#~ msgid "Save the expression" +#~ msgstr "Den Utdruck sekern" + +#~ msgid "Calculate the expression" +#~ msgstr "Den Utdruck utreken" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot apply '%1' to '%2'" +#~ msgstr "\"%1\" lett sik nich op \"%2\" anwennen." + +#~ msgid "Cannot operate '%1'" +#~ msgstr "Akschoon mit \"%1\" nich mööglich" + +#~ msgid "Cannot check '%1' type" +#~ msgstr "Typ \"%1\" lett sik nich pröven." + +#~ msgid "Wrong number of parameters when calling '%1'" +#~ msgstr "Leeg Tall vun Parameters bi Oproop vun \"%1\"" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Neddergrenz mutt lütter as Bövergrenz wesen" + +#~ msgid "Trying to call an invalid function" +#~ msgstr "Oproop vun en leeg Funkschoon" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "We want a 2 dimension vector" +#~ msgstr "Wi bruukt en 2-Dimenschonen-Vektor" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Dat gifft de Funkschoon %1 nich" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Dat gifft de Variabal %1 nich" + +#~ msgid "Need a var name and a value" +#~ msgstr "Variabelnaam un -weert nödig" + +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "" +#~ "En Gelaats sien Weert lett sik bloots över sien Heeltall-Index utsöken" + +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "The first parameter in a function should be the name" +#~ msgstr "De eerste Parameter binnen en Funkschoon mutt ehr Naam wesen" + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Nich begäng bunnen Variabel: %1" + +#~ msgid "From parser:" +#~ msgstr "Vun den Inleser:" + +#~ msgid "" +#~ "Wrong parameter count in a selector, should have 2 parameters, the " +#~ "selected index and the container." +#~ msgstr "" +#~ "En Selektor bargt en leeg Parametertall. Tolaten sünd twee Parameters, " +#~ "den köört Index un dat Gelaats." + +#~ msgid "piece or otherwise in the wrong place" +#~ msgstr "Stück oder sünst an en leeg Steed" + +#~ msgid "No bounding variables for this sum" +#~ msgstr "Keen Grenzweerten för de Summ" + +#~ msgid "Missing bounding limits on a sum operation" +#~ msgstr "Grenzweerten för Tosamentell-Akschoon fehlt" + +#~ msgctxt "Error message" +#~ msgid "Trying to codify an unknown value: %1" +#~ msgstr "Nich begäng Weert lett sik nich fastschrieven: %1" + +#~ msgctxt "An error message" +#~ msgid "The downlimit is greater than the uplimit. Probably should be %1..%2" +#~ msgstr "" +#~ "De Neddergrenz is grötter as de Bövergrenz. Schull wull %1..%2 wesen" + +#~ msgid "Hyperbolic arc cotangent" +#~ msgstr "Hyperboolsch Arkuskotangens" + +#~ msgid "Real" +#~ msgstr "Rejell" + +#~ msgid "%1, " +#~ msgstr "%1, " + +#~ msgid "Conjugate" +#~ msgstr "Konjugatschoon" + +#~ msgid "Imaginary" +#~ msgstr "Imagineer" diff --git a/po/nl/docs/kalgebra/commands.docbook b/po/nl/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..4c91786 --- /dev/null +++ b/po/nl/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Functies in KAlgebra (alleen Engelstalige namen) + plus + Naam: plus + Beschrijving: Optellen + Parameters: plus(... parameters, ...) + Voorbeeld: x->x+2 + + keer + Naam: times + Beschrijving: Vermenigvuldigen + Parameters: times(... parameters, ...) + Voorbeeld: x->x*2 + + min + Naam: minus + Beschrijving: Aftrekken. Alle getallen worden van het eerste afgetrokken. + Parameters: minus(... parameters, ...) + Voorbeeld: x->x-2 + + delen + Naam: divide + Beschrijving: Delen + Parameters: divide(par1, par2) + Voorbeeld: x->x/2 + + quotient + Naam: quotient + Beschrijving: Quotient + Parameters: quotient(par1, par2) + Voorbeeld: x->quotient(x, 2) + + macht + Naam: power + Beschrijving: Machtsverheffen + Parameters: power(par1, par2) + Voorbeeld: x->x^2 + + wortel + Naam: root + Beschrijving: Worteltrekken + Parameters: root(par1, par2) + Voorbeeld: x->root(x, 2) (2e machtswortel uit x) + + faculteit + Naam: factorial + Beschrijving: Faculteit. factorial(n) is "n faculteit" = n!; voorbeeld: 3!=1*2*3=6 + Parameters: factorial(par1) + Voorbeeld: x->factorial(x) + + and + Naam: and + Beschrijving: Booleaanse and, of en + Parameters: and(... parameters, ...) + Voorbeeld: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Naam: or + Beschrijving: Booleaanse or (of) + Parameters: or(... parameters, ...) + Voorbeeld: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Naam: xor + Beschrijving: Booleaanse xor + Parameters: xor(... parameters, ...) + Voorbeeld: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Naam: not + Beschrijving: Booleaanse not, of niet + Parameters: not(par1) + Voorbeeld: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Naam: gcd + Beschrijving: Grootste gemene deler (GGD) (Engels: greatest common divisor) + Parameters: gcd(... parameters, ...) + Voorbeeld: x->gcd(x, 3) + + lcm + Naam: lcm + Beschrijving: Kleinste gemene deler (KGV) (Engels: least common multiple) + Parameters: lcm(... parameters, ...) + Voorbeeld: x->lcm(x, 4) + + rem + Naam: rem + Beschrijving: Rest (na een deling) (Engels: remainder) + Parameters: rem(par1, par2) + Voorbeeld: x->rem(x, 5) + + factorof + Naam: factorof + Beschrijving: Is factor van (Booleaans) + Parameters: factorof(par1, par2) + Beschrijving: x->factorof(x, 3) (Is drie een factor van x?) + + max + Naam: max + Beschrijving: Maximum + Parameters: max(... parameters, ...) + Voorbeeld: x->max(x, 4) + + min + Naam: min + Beschrijving: Minimum + Parameters: min(... parameters, ...) + Voorbeeld: x->min(x, 4) + + lt + Naam: lt + Beschrijving: Kleiner dan (Engels: less than). lt(a,b)=a<b + Parameters: lt(par1, par2) + Voorbeeld: x->piecewise { x<4 ? 1, ? 0 } + + gt + Naam: gt + Beschrijving: Groter dan (Engels: greater than). gt(a,b)=a>b + Parameters: gt(par1, par2) + Voorbeeld: x->piecewise { x>4 ? 1, ? 0 } + + eq + Naam: eq + Beschrijving: Gelijk aan (Engels: equal). eq(a,b) = a=b + Parameters: eq(par1, par2) + Voorbeeld: x->piecewise { x=4 ? 1, ? 0 } + + neq + Naam: neq + Beschrijving: Ongelijk aan (Eng.: Not equal). neq(a,b) = a≠b + Parameters: neq(par1, par2) + Voorbeeld: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Naam: leq + Beschrijving: Kleiner of gelijk aan (Eng.: Less or equal). leq(a,b) = a≤b + Parameters: leq(par1, par2) + Voorbeeld: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Naam: geq + Beschrijving: Groter of gelijk aan (Eng.: Greater or equal). geq(a,b) = a≥b + Parameters: geq(par1, par2) + Voorbeeld: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Naam: implies + Beschrijving: Booleaanse implicatie (als ..., dan ...) + Parameters: implies(par1, par2) + Voorbeeld: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Naam: approx + Beschrijving: Benadering (Eng.: approximation). approx(a)= a±n + Parameters: approx(par1, par2) + Voorbeeld: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Naam: abs + Beschrijving: Absolute waarde. abs(n)=|n| + Parameters: abs(par1) + Voorbeeld: x->abs(x) + + floor + Naam: floor + Beschrijving: Grootste gehele waarde kleiner dan. (Eng.: floor is vloer). Voorbeeld: floor(3.14) = ⌊3.14⌋ = 3 + Parameters: floor(par1) + Beschrijving: x->floor(x) + + ceiling + Naam: ceiling + Beschrijving: Kleinste gehele waarde groter dan (Eng.: ceiling is plafond). Voorbeeld: ceiling(3.14) = ⌈3.14⌉=4 + Parameters: ceiling(par1) + Voorbeeld: x->ceiling(x) + + sin + Naam: sin + Beschrijving: functie berekent de sinus van een gegeven hoek of reëel getal + Parameters: sin(par1) + Voorbeeld: x->sin(x) + + cos + Naam: cos + Beschrijving: functie berekent de cosinus van een gegeven hoek of reëel getal + Parameters: cos(par1) + Voorbeeld: x->cos(x) + + tan + Naam: tan + Beschrijving: functie berekent de tangens van een gegeven hoek of reëel getal + Parameters: tan(par1) + Voorbeeld: x->tan(x) + + sec + Naam: sec + Beschrijving: Secans (dit is 1/cos) + Parameters: sec(par1) + Voorbeeld: x->sec(x) + + csc + Naam: csc + Beschrijving: Cosecans (dit is 1/sin) + Parameters: csc(par1) + Voorbeeld: x->csc(x) + + cot + Naam: cot + Beschrijving: Cotangens (dit is 1/tan) + Parameters: cot(par1) + Voorbeeld: x->cot(x) + + sinh + Naam: sinh + Beschrijving: Sinus hyperbolicus + Parameters: sinh(par1) + Voorbeeld: x->sinh(x) + + cosh + Naam: cosh + Beschrijving: Cosinus hyperbolicus + Parameters: cosh(par1) + Voorbeeld: x->cosh(x) + + tanh + Naam: tanh + Beschrijving: Tangens hyperbolicus + Parameters: tanh(par1) + Voorbeeld: x->tanh(x) + + sech + Naam: sech + Beschrijving: Secans hyperbolicus + Parameters: sech(par1) + Voorbeeld: x->sech(x) + + csch + Naam: csch + Beschrijving: Cosecans hyperbolicus + Parameters: csch(par1) + Voorbeeld: x->csch(x) + + coth + Naam: coth + Beschrijving: Cotangens hyperbolicus + Parameters: coth(par1) + Voorbeeld: x->coth(x) + + arcsin + Naam: arcsin + Beschrijving: arcsinus, boogsinus, inverse sinus (is NIET 1/sin) + Parameters: arcsin(par1) + Voorbeeld: x->arcsin(x) + + arccos + Naam: arccos + Beschrijving: arccosinus, boogcosinus, inverse cosinus (is NIET 1/cos) + Parameters: arccos(par1) + Voorbeeld: x->arccos(x) + + arctan + Naam: arctan + Beschrijving: arctangens, boogtangens, inverse tangens (is NIET 1/tan) + Parameters: arctan(par1) + Voorbeeld: x->arctan(x) + + arccot + Naam: arccot + Beschrijving: arccotangens, boogcotangens, inverse cotangens (is NIET 1/cot) + Parameters: arccot(par1) + Voorbeeld: x->arccot(x) + + arccosh + Naam: arccosh + Beschrijving: arccosinus hyperbolicus + Parameters: arccosh(par1) + Voorbeeld: x->arccosh(x) + + arccsc + Naam: arccsc + Beschrijving: arccosecans + Parameters: arccsc(par1) + Voorbeeld: x->arccsc(x) + + arccsch + Naam: arccsch + Beschrijving: Arccosecans hyperbolicus + Parameters: arccsch(par1) + Voorbeeld: x->arccsch(x) + + arcsec + Naam: arcsec + Beschrijving: Arcsecans + Parameters: arcsec(par1) + Voorbeeld: x->arcsec(x) + + arcsech + Naam: arcsech + Beschrijving: Arcsecans hyperbolicus + Parameters: arcsech(par1) + Voorbeeld: x->arcsech(x) + + arcsinh + Naam: arcsinh + Beschrijving: Arcsinus hyperbolicus + Parameters: arcsinh(par1) + Voorbeeld: x->arcsinh(x) + + arctanh + Naam: arctanh + Beschrijving: Arctangens hyperbolicus + Parameters: arctanh(par1) + Voorbeeld: x->arctanh(x) + + exp + Naam: exp + Beschrijving: Exponent, e-macht (e^x) + Parameters: exp(par1) + Voorbeeld: x->exp(x) + + ln + Naam: ln + Beschrijving: Logaritme met grondtal e, natuurlijke logaritme + Parameters: ln(par1) + Voorbeeld: x->ln(x) + + log + Naam: log + Beschrijving: Logaritme met grondtal 10 + Parameters: log(par1) + Voorbeeld: x->log(x) + + toegevoegd + Naam: toegevoegd + Beschrijving: Toegevoegd + Parameters: conjugate(par1) + Voorbeeld: x->conjugate(x*i) + + arg + Naam: arg + Beschrijving: Arg + Parameters: arg(par1) + Voorbeeld: x->arg(x*i) + + reëel + Naam: reëel + Beschrijving: Reëel + Parameters: real(par1) + Voorbeeld: x->real(x*i) + + imaginair + Naam: imaginair + Beschrijving: Imaginair + Parameters: imaginary(par1) + Voorbeeld: x->imaginary(x*i) + + sum + Naam: sum + Beschrijving: Som getallenbereik berekenen + Parameters: sum(par1 : var=van..tot) + Voorbeeld: x->sum(t*t:t=0..3) + + product + Naam: product + Beschrijving: Product getallenbereik berekenen + Parameters: product(par1 : var=van..tot) + Voorbeeld: x->product(t+t:t=1..3) + + diff + Naam: diff + Beschrijving: Differentiëren + Parameters: diff(par1 : var) + Voorbeeld: x->(diff(x^2:x))(x) + + card + Naam: card + Beschrijving: Kardinaliteit + Parameters: card(par1) + Voorbeeld: x->card(vector { x, 1, 2 }) + + scalarproduct + Naam: scalarproduct + Beschrijving: Scalair product, inproduct (van vectoren) + Parameters: scalarproduct(... parameters, ...) + Voorbeeld: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Naam: selector + Beschrijving: Het par1-de element selecteren uit lijst of vector par2 + Parameters: selector(par1, par2) + Voorbeeld: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Naam: vereniging + Beschrijving: Vereniging van verzamelingen van het zelfde type (lijsten, vectoren) + Parameters: union(... parameters, ...) + Voorbeeld: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + voor alle + Naam: forall + Beschrijving: Voor alle ... + Parameters: forall(par1 : var) + Voorbeeld: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + er is + Naam: exists + Beschrijving: Er is een ... + Parameters: exists(par1 : var) + Voorbeeld: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Naam: map + Beschrijving: Past functie toe op elk element in de lijst + Parameters: map(par1, par2) + Voorbeeld: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Naam: filter + Beschrijving: verwijdert alle elementen die niet aan een voorwaarde voldoen + Parameters: filter(par1, par2) + Voorbeeld: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transponeren + Naam: transponeren + Beschrijving: transponeren + Parameters: transponeren(par1) + Voorbeeld: x->transponeren(matrix { matrixrij { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/nl/docs/kalgebra/index.docbook b/po/nl/docs/kalgebra/index.docbook new file mode 100644 index 0000000..12a7d0e --- /dev/null +++ b/po/nl/docs/kalgebra/index.docbook @@ -0,0 +1,903 @@ + + + + MathML"> + + +]> + + + + +Het handboek van &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+&Jaap.Woldringh; +
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +2020-12-17 +Applicaties 20.12 + + +&kalgebra; kan uw grafische rekenmachine vervangen. Het heeft numerieke, logische, symbolische en analytische functies waarmee u wiskundige uitdrukkingen kunt berekenen, en de resultaten in 2D of 3D kunt plotten. &kalgebra; is gebaseerd op de Mathematical Markup Language (&MathML;), maar kennis daarvan is niet nodig om &kalgebra; te kunnen gebruiken. + + + +KDE +kdeedu +grafiek +wiskunde +2D +3D +MathML + + +
+ + +Inleiding + +&kalgebra; heeft talloze eigenschappen die de gebruiker kan gebruiken voor allerlei wiskundige bewerkingen, en het grafisch weergeven van de resultaten. Aanvankelijk was dit programma op &MathML; gericht. Tegenwoordig kan het door iedereen worden gebruikt met enige wiskundige kennis, voor het oplossen van zowel eenvoudige als minder eenvoudige problemen. + +Het heeft eigenschappen zoals: + + + +Een rekenmachine waarin wiskundige functies snel en eenvoudig kunnen worden berekend. +Scriptmogelijkheden voor gevorderde reeksen van berekeningen +Taalmogelijkheden zoals definiëren van functies en automatisch syntaxisaanvullen. +Analysefuncties, zoals symbolisch differentiëren, vectoranalyse, en manipuleren van lijsten. +Functieplotten met een actieve muisaanwijzer voor het grafisch vinden van nulpunten, en andere. +3D plotten voor het visualiseren van 3D functies. +Een woordenlijst van bewerkingen waarin vlot de vele aanwezige functies kunnen worden gevonden. + + +Hier ziet u een schermbeeld van &kalgebra; in actie: + + +Hier ziet u een schermbeeld van het hoofdvenster van &kalgebra; + + + + + + Hoofdvenster van &kalgebra; + + + + +Bij het starten van &kalgebra; ziet de gebruiker een enkel venster, dat de tabbladen bevat voorRekenmachine, 2D-grafiek , 3D-grafiek en Woordenlijst. In deze tabbladen vindt u een invoerveld waarin u functies kunt typen, en een veld waarin de antwoorden worden getoond. + +Altijd kan de gebruiker een sessie beheren met de opties in het hoofdmenu Sessie options: + + + + +&Ctrl; N SessieNieuw +Opent een nieuw venster van &kalgebra; + + + +&Ctrl;&Shift; F SessieVolledig scherm +Volledig scherm in &kalgebra; aan- en uitzetten. Dit kan ook met de knop rechts boven in het venster van &kalgebra;. + + + +&Ctrl; Q SessieAfsluiten +Sluit het programma af. + + + + + + + +Syntaxis +In &kalgebra; kent een intuïtieve algebraïsche syntaxis voor het invoeren van functies, gelijk aan die van de meeste moderne grafische rekenmachines. U vindt hier een lijst van de fundamentele ingebouwde bewerkingen in &kalgebra;. De auteur van &kalgebra; modelleerde de syntaxis naar Maxima en Maple om tegemoet te komen aan gebruikers van deze programma's. + +Voor hen die belang stellen in hoe &kalgebra; werkt: door de gebruiker ingevoerde expressies worden in de backend geconverteerd naar &MathML;. Een rudimentair begrip van de mogelijkheden van &MathML; kan al veel duidelijk maken van de interne mogelijkheden van &kalgebra;. + +Hier is een lijst van de tot nu toe beschikbare bewerkingen: + ++ - * / : Optellen, aftrekken, vermenigvuldigen en delen. +^, **: Machtverheffen, u kunt ze allebei gebruiken. Het is ook mogelijk de unicode ² -karakters te gebruiken. U kunt machten ook gebruiken voor het berekenen van wortels zoals: a**(1/b) +-> : lambda. Dit is hoe een of meer vrije variabelen worden opgegeven in een functie. Bijvoorbeeld, in de expressie lengte:=(x,y)->(x*x+y*y)^0.5, wordt de bewerking lambda gebruikt om aan te geven dat x en y in de functie lengte zullen worden gebruikt. +x=a..b : Wordt gebruikt wanneer het nodig is om een interval te begrenzen (begrensde variabele+bovengrens+ondergrens). Dit betekent dat x verloopt van a naar b. +() : Wat tussen haakjes staat eerst berekenen. +abc(params) : Functies. Wanneer bij het inlezen een functie wordt gevonden, wordt nagegaan of abc een interne bewerking is. Indien dit zo is, dan wordt het als zodanig beschouwd, en anders als een door de gebruiker gemaakte functie. +:= : Waardetoekenning. Wordt gebruikt om aan een variabele een waarde te geven. U kunt dingen doen als x:=3, x:=y, waarin y al of niet een waarde heeft, of omtrek:=r->2*pi*r. +? : piecewise: voorwaarden in gedeelten. Hiermee kunnen we in &kalgebra; voorwaardelijke bewerkingen definiëren. Anders gezegd: dit iseen andere manier voor het opgeven van voorwaarden dan in de vorm van if, elseif, else. Geven we de voorwaarde op voor het symbool '?' dan geldt die alleen als die waar is. Bij een '?' zonder een voorwaarde, dan wordt die alsnog ingevoerd. Voorbeeld: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ } : plaatshouder in &MathML;. Kan worden gebruikt om een plaatshouder te definiëren. Wordt het meest met piecewise worden gebruikt. += > >= < <= : Vergelijking van getallen, in de genoemde volgorde gelijk aan, groter dan of gelijk aan, kleiner dan en kleiner dan of gelijk aan. + + +U zou mij nu kunnen vragen wat een gebruiker te maken heeft met &MathML;. Nou, dat is eenvoudig te beantwoorden. Hiermee kunnen we werken met functies zoals cos(), sin(), en andere goniometrische functies, sum() of product(). (optellen en vermenigvuldigen). Het doet er niet toe wat. We kunnen plus(), times() (keer) gebruiken, en verder alles waarvoor er een bewerking is. Booleaanse functies zijn ook aanwezig, zodat we zoiets kunnen gebruiken als or(1,0,0,0,0) (de or-functie) + + + + +De rekenmachine gebruiken +De rekenmachine van &kalgebra; is supersnel. De gebruiker kan hierin te berekenen expressies invoeren in de modus Berekenen of Evaluatie, afhankelijk van de keuze in het menu Rekenmachine. +In de evaluatiemodus vereenvoudigt &kalgebra; de uitdrukking, zelfs als er een niet gedefinieerde variabele in voorkomt. In de berekeningsmodus berekent &kalgebra; alles, en geeft het een foutmelding wanneer een variabele niet is gedefinieerd. +Naast het in het rekenmachinescherm tonen van de door de gebruiker ingevoerde vergelijkingen en de antwoorden, worden alle gedeclareerde variabelen getoond in een vast scherm rechts. Na dubbelklikken op een variabele ziet u een dialoog waarin u de waarde ervan kunt wijzigen. + +De variabele ans (van answer, is antwoord) is speciaal. Hierin wordt het antwoord van de laatste berekening bewaard, zodat die daarna gebruikt kan worden. + +Hier volgen wat voorbeelden van functies die in het invoerveld van de rekenmachine kunnen worden ingevoerd: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +Hier volgt een schermafbeelding van het rekenmachinevenster na het invoeren van de bovenstaande voorbeelden: + +Schermbeeld van de rekenmachine van &kalgebra; met voorbeelden van expressies + + + + + + Venster van de rekenmachine van &kalgebra; + + + + + +Een gebruiker kan het uitvoeren van een lijst van berekeningen regelen met de menu-opties in het menu Rekenmachine: + + + + +&Ctrl; L RekenmachineScript lezen... +Voert de instructies in een bestand na elkaar uit. Handig om bijvoorbeeld een aantal bibliotheken te definiëren, of met vorig werk verder te kunnen gaan. + + + +RekenmachineRecente scripts +Toont een submenu waarin u recent gebruikte scripts kunt selecteren. + + + +&Ctrl; G RekenmachineScript opslaan... +Bewaart alle in deze sessie ingetypte instructies voor later hergebruik. Hiervoor wordt een tekstbestand aangemaakt, dat eenvoudig kan worden bewerkt met een tekstverwerker, zoals &kate;. + + + +&Ctrl; S RekenmachineLog exporteren... +Slaat de log (logboek) van alle resultaten op in een &HTML;-bestand, zodat u die kunt afdrukken of publiceren. + + + +F3 Rekenmachineans invoegen... +Voeg de variabele ans in voor het eenvoudiger maken oudere waarden opnieuw te gebruiken. + + + +RekenmachineBerekenen +Een radioknop voor het instellen van de Rekenmethode. + + + +RekenmachineBerekenen +Een radioknop voor het instellen van de Rekenmethode. + + + + + + +2D-grafieken +U kunt een 2D-grafiek in &kalgebra; toevoegen in het tabblad 2D-grafiek. Klik hierin op de knop Toevoegen, u kunt dan een nieuwe functie intypen in het invoerveld. + + +Syntaxis +Indien u een gebruikelijke functie f(x) wilt gebruiken, dan is het niet nodig die nader te omschrijven, maar is het een functie f(y) of een functie in poolcoördinaten, dan is het nodig om y-> en q-> toe te voegen als begrensde variabelen. + +Voorbeelden: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Na het invoeren van een functie klikt u op de knop OK, de grafiek wordt dan in het hoofvenster getoond. + + + + +Eigenschappen +U kunt meerdere grafieken tegelijk plotten. In de Lijst-modus kunt u dit gewoon met de knop Toevoegen doen. U kunt elke grafiek een eigen kleur geven. + +U kunt in de grafieken zoomen en het beeld verplaatsen met behulp van de muis. Met het muiswiel kunt u in- en uitzoomen. Met de &LMB; kunt u ook een gebied selecteren waarna op dit gebied wordt in- en uitgezoomd. Het beeld kan worden verplaatst met behulp van de pijltjes-toetsen. + + + Het afbeeldingsgebied voor 2D-grafieken kan expliciet worden aangegeven in het tabblad Afbeeldingsgebied in het tabblad 2D-grafiek. + + +In het tabblad Lijst rechtsonder, kunt u een tabblad Bewerken openen, waarin u met dubbelklikken een functie kunt bewerken of verwijderen, en middels het keuzevakje het tonen van de functienaam aan of uit zetten. +In het menu 2D-grafiek zijn de volgende opties: + +Rooster: Rooster tonen/verbergen +Aspectverhouding behouden: Bij het zoomen de aspectverhouding behouden. +Opslaan: Slaat (&Ctrl; S) de grafiek op als een afbeeldingsbestand. +Zoom in/uit: Zoom in (&Ctrl; +) en zoom uit (&Ctrl; -) +Actuele grootte: Terug naar beginwaarde zoomen +Resolutie: Gevolgd door een lijst van radioknoppen waarmee u een resolutie kunt selecteren voor de grafieken + + +Hieronder een schermbeeld van een gebruiker waarin zijn muisaanwijzer geplaatst is op het meest rechtse nulpunt van de functie sin(1/x). Deze grafiek werd met een hoge resolutie gemaakt (omdat die steeds sneller op- en neergaat nabij de oorsprong). Er is ook een actieve muisaanwijzer beschikbaar waarvan u, als u die over de plot verplaatst, de bijbehorende x en y-coördinaten kunt aflezen links onder in het scherm. Op de plaats van deze muisaanwijzer wordt ook een actuele raaklijn aan de grafiek van de functie getekend op de plaats van de muisaanwijzer. + + +Hier is een schermbeeld van het 2D-venster van &kalgebra; + + + + + + 2D-venster van &kalgebra; + + + + + + + + + + +3D-grafieken + +In &kalgebra; kunt u 3D-grafieken tekenen. Hiertoe kiest u het tabblad 3D-grafiek. U ziet dan hieronder een invoerveld waarin u de functie kunt typen. Z kan nog niet worden gegeven. Voorlopig kan &kalgebra; alleen nog grafieken tekenen die alleen expliciet afhankelijk zijn van x en y, zoals (x,y)->x*y, waarin z=x*y. + +Voorbeelden: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +U kunt in de grafieken zoomen en het beeld verplaatsen met behulp van de muis. Met het muiswiel kunt u in- en uitzoomen. Als u de &LMB; ingedrukt houdt kunt u de grafiek roteren (draaien) door de muis te verplaatsen. + +Met de pijltoetsen &Left; en &Right; kunt u de grafiek roteren (draaien) om de z-as, met de &Up; en &Down; pijltjestoetsen roteert u de grafiek om de horizontale as. Met de toets W kunt u in de plot inzoomen, en met de toets S uitzoomen. + +In het menu 3D-grafiek zijn deze opties: + + +Opslaan: Slaat (&Ctrl; S) de grafiek op als afbeeldingsbestand, of ondersteund document +Beeld herstellen: Herstelt het beeld tot de originele zoomin het menu van 3D-grafiek +U kunt grafieken tekenen met Puntlijnen, Streepjeslijnen , of Aaneengesloten lijnen, in het menu 3D-Grafiek + + +Hieronder een schermbeeld van de zogenaamde sombrero-functie. In dit geval is de grafiek getekend met de lijnstijl voor 3D-grafieken. + + +Hier een schermbeeld van het 3D-venster van &kalgebra; + + + + + + Venster van &kalgebra; voor 3D-grafieken + + + + + + + +Woordenlijst + +De woordenlijst bevat een lijst van alle bewerkingen die in &kalgebra; mogelijk zijn. U kunt hierin vinden hoe u een bewerking kunt gebruiken en welke parameters een functie nodig heeft. Hierin kunt u de vele mogelijkheden van &kalgebra; ontdekken. + + Hieronder is een schermbeeld van het opzoeken van de functie cosinus in de woordenlijst. + + +Hier ziet u een schermbeeld van de woordenlijst van &kalgebra; + + + + + + Venster van de woordenlijst van &kalgebra; + + + + + + + +&commands; + + +Dankbetuigingen en Licentie + + +Programma copyright 2005-2009 &Aleix.Pol; + + + +Documentatie copyright 2007 &Aleix.Pol; &Aleix.Pol.mail; + +&meld.fouten;&vertaling.jaap; &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/nl/kalgebra.po b/po/nl/kalgebra.po new file mode 100644 index 0000000..6345421 --- /dev/null +++ b/po/nl/kalgebra.po @@ -0,0 +1,1134 @@ +# translation of kalgebraN.po to Nederlands +# KTranslator Generated File +# Nederlandse vertaling van korganizer.po +# Copyright (c) 2000-2007 KDE e.v. +# Copyright (C) 2000-2007 KDE-Nederlands team . +# Niels Reedijk , 2000. +# Wilbert Berendsen , 2003, 2004. +# Bram Schoenmakers , 2004, 2005, 2006, 2007, 2008. +# Tom Albers , 2004. +# Rinse de Vries ,2000-2002, 2003, 2004, 2005, 2006, 2007, 2008. +# Antoon Tolboom , 2008. +# Freek de Kruijf , 2009, 2010, 2014, 2015, 2016. +# Jaap Woldringh , 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebraN\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-12 20:25+0200\n" +"Last-Translator: Jaap Woldringh \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.12.3\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opties: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Plak \"%1\" voor invoer" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Plakken voor invoer" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Fout: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Geïmporteerd: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Fout: Kan %1 niet lezen.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informatie" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Een functie toevoegen/wijzigen" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Voorbeeld" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Van:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Tot:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opties" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Verwijderen" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "De door u opgegeven opties zijn niet goed" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Ondergrens kan niet groter zijn dan de bovengrens" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Plot 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Plot 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sessie" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variabelen" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Rekenmachine" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "Rekenm&achine" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Script in&lezen..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Recente scripts" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Script opslaan..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "Log &exporteren..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "ans &invoegen..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Uitvoeringsmodus" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Berekenen" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Berekenen" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Functies" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lijst" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Toevoegen" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Op in te zoomen gebied" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D-grafiek" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D-grafiek" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Rooster" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Aspectverhouding &behouden" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolutie" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Laag" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normaal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Hoog" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Erg hoog" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D-grafiek" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D-&grafiek" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Beeld he&rstellen" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Stippels" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Lijnen" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Aaneengesloten" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Bewerkingen" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Woordenlijst" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Zoek op:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "B&ewerken" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Kies een script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-bestand (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Fouten: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Selecteer bestemming van de plot" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Afbeeldingsbestand (*.png);;SVG-bestand (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Klaar" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Variabele toevoegen" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Voer een naam in voor de nieuwe variabele" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Een multiplatform rekenmachine" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" +"Niels Reedijk,Wilbert Berendsen,Bram Schoenmakers,Tom Albers,Rinse de Vries," +"Antoon Tolboom,Freek de Kruijf,Jaap Woldringh" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" +"n.reedijk@planet.nl,wbsoft@xs4all.nl,bramschoenmakers@kde.nl,tomalbers@kde." +"nl,rinsedevries@kde.nl,atolboo@gmail.com,freekdekruijf@kde.nl," +"jjhwoldringh@kde.nl" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Een variabele toevoegen/bewerken" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Variabele verwijderen" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "De waarde '%1' bewerken" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "niet beschikbaar" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "FOUT" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Links:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Boven:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Breedte:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Hoogte:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Toepassen" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "C&onsole" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Console" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Ontwikkelde de mogelijkheid impliciete krommen te tekenen. Verbeteringen " +#~ "van het plotten van functies" + +#~ msgid "Formula" +#~ msgstr "Formule" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Fout: verkeerd type functie" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Klaar: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Fout: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Wissen" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG-bestand" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Transparantie" + +#~ msgid "Type" +#~ msgstr "Type" + +#~ msgid "Result: %1" +#~ msgstr "Antwoord: %1" + +#~ msgid "To Expression" +#~ msgstr "Naar expressie" + +#~ msgid "To MathML" +#~ msgstr "Naar MathML" + +#~ msgid "Simplify" +#~ msgstr "Vereenvoudigen" + +#~ msgid "Examples" +#~ msgstr "Voorbeelden" + +#~ msgid "We can only draw Real results." +#~ msgstr "Alleen reële resultaten kunnen worden weergegeven." + +#~ msgid "The expression is not correct" +#~ msgstr "De uitdrukking is niet goed" + +#~ msgid "Function type not recognized" +#~ msgstr "Onbekend functietype" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Onjuist type voor functies afhankelijk van %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Impliciete functie niet gedefinieerd in het vlak" + +#~ msgid "center" +#~ msgstr "midden" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Naam" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Functie" + +#~ msgid "%1 function added" +#~ msgstr "functie %1 toegevoegd" + +#~ msgid "Hide '%1'" +#~ msgstr "'%1' verbergen" + +#~ msgid "Show '%1'" +#~ msgstr "'%1' tonen" + +#~ msgid "Selected viewport too small" +#~ msgstr "Het geselecteerde op in te zoomen gebied is te klein" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Beschrijving" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parameters" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Voorbeeld" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=van..naar" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parameters, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Optellen" + +#~ msgid "Multiplication" +#~ msgstr "Vermenigvuldigen" + +#~ msgid "Division" +#~ msgstr "Delen" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Aftrekken. Trekt alle waarden van de eerste waarde af." + +#~ msgid "Power" +#~ msgstr "Macht" + +#~ msgid "Remainder" +#~ msgstr "Rest" + +#~ msgid "Quotient" +#~ msgstr "Deling" + +#~ msgid "The factor of" +#~ msgstr "De factor van" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Faculteit. factorial(n)=n faculteit=1*2*3*...*n=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Functie voor het berekenen van de sinus van een gegeven hoek" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Functie voor het berekenen van de cosinus van een gegeven hoek" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Functie voor het berekenen van de tangens van een gegeven hoek" + +#~ msgid "Secant" +#~ msgstr "Secans" + +#~ msgid "Cosecant" +#~ msgstr "Cosecans" + +#~ msgid "Cotangent" +#~ msgstr "Cotangens" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Hyperbolische sinus" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hyperbolische cosinus" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hyperbolische tangens" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Hyperbolische secans" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Hyperbolische cosecans" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Hyperbolische cotangens" + +#~ msgid "Arc sine" +#~ msgstr "Arcsinus" + +#~ msgid "Arc cosine" +#~ msgstr "Arccosinus" + +#~ msgid "Arc tangent" +#~ msgstr "Arctangens" + +#~ msgid "Arc cotangent" +#~ msgstr "Arccotangens" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Hyperbolische arctangens" + +#~ msgid "Summatory" +#~ msgstr "Somfunctie" + +#~ msgid "Productory" +#~ msgstr "Productfunctie" + +#~ msgid "For all" +#~ msgstr "Voor alle" + +#~ msgid "Exists" +#~ msgstr "Bestaat" + +#~ msgid "Differentiation" +#~ msgstr "Differentiëren" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Hyperbolische arcsinus" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Hyperbolische arccosinus" + +#~ msgid "Arc cosecant" +#~ msgstr "Arccosecans" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Hyperbolische arccosecans" + +#~ msgid "Arc secant" +#~ msgstr "Arcsecans" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Hyperbolische arcsecans" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Exponent (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Logaritme met grondtal e" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Logaritme met grondtal 10" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Absolute waarde: abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Floor. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Ceil. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimum" + +#~ msgid "Maximum" +#~ msgstr "Maximum" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Groter dan. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : grenzen" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Waarde" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Geef een correcte bewerking op" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Onbekende naam: '%1'" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Kon niet vinden wat te doen na een voorwaarde." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Voor dit type zijn er geen grenzen" + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "De ondergrens is groter dan de bovengrens" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Onder- of bovengrens is niet goed." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Gedefinieerde variabele is cyclisch (afhankleijk van zichzelf)" + +#~ msgid "The result is not a number" +#~ msgstr "Het antwoord is geen getal" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Onverwacht einde aan de invoer" + +#~ msgid "Unknown token %1" +#~ msgstr "Onbekend teken: %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "Voor %1 zijn minstens 2 parameters nodig" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "Voor %1 zijn %2 parameters nodig" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Grens onbreekt voor '%1'" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Onbekende begrenzing voor '%1'" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 grenzen ontbreken voor '%2'" + +#~ msgid "Wrong declare" +#~ msgstr "Foute declaratie" + +#~ msgid "Empty container: %1" +#~ msgstr "Lege plaatshouder: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "" +#~ "Er kunnen alleen voorwaarden voorkomen binnen structuren in gedeelten." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Twee parameters met dezelfde naam zoals '%1' niet toegestaan." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "De parameter anders moet de laatste zijn" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 is geen goede voorwaarde binnen gedeelte van een structuur" + +#~ msgid "We can only declare variables" +#~ msgstr "Er kunnen alleen variabelen worden gedeclareerd" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Alleen begrensde variabelen zijn mogelijk" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Fout bij het inlezen: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Plaatshouder onbekend: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Kan de waarde %1 niet intern weergeven." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Er kunnen geen van %1 afgeleide bewerkingen zijn." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "'%1' is geen bewerking." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Lege vectoren zijn niet toegestaan" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Niet ondersteund/onbekend: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "%1 verwacht en niet '%2'" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Rechterhaakje ontbreekt" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Aantal rechter haakjes klopt niet" + +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Onverwacht teken: %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Onbekend teken %1" + +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Kon geen type vinden voor '%1'" + +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "Het domein moet een vector zijn of een lijst." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Fout aantal parameters voor '%2'. Moet 1 parameter zijn." +#~ msgstr[1] "Fout aantal parameters voor '%2'. Moet %1 parameters zijn." + +#~ msgid "Could not call '%1'" +#~ msgstr "Kan '%1' niet aanroepen" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Kan '%1' niet oplossen" + +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Het type van de variabele '%1' klopt niet" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Kan het type van de structuur in gedeelten niet vaststellen" + +#~ msgid "Unexpected type" +#~ msgstr "Onverwacht type" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Kan '%1' niet naar '%2' omzetten" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Onbekend teken %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Kan de rest van 0 niet berekenen." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Kan 0 niet in factoren ontbinden." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Kan de KGV van 0 niet berekenen." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Kan een waarde %1 niet berekenen" + +#~ msgid "Invalid index for a container" +#~ msgstr "Ongeldige index voor een plaatshouder" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "" +#~ "Kan de bewerking niet uivoeren op vectoren met een verschillend aantal " +#~ "componenten." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Kon de %1 van een vector niet berekenen" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Kon de %1 van een lijst niet berekenen" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Kon de afgeleide van '%1' niet berekenen" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Kon '%1'en '%2' niet vereenvoudigen." + +#~ msgid "Incorrect domain." +#~ msgstr "Domein is niet juist." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "De parametrische functie geeft geen vector terug" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Er is een twee-dimensionale vector nodig" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "" +#~ "De afzonderlijke functies van een parametrische functie moeten scalair " +#~ "zijn" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "De %1 afgeleide is niet geïmplementeerd." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Begrijp de reële waarde niet: %1" + +#~ msgid "Subtraction" +#~ msgstr "Aftrekken" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Fout: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Selecteer een element in een plaatshouder" + +#~ msgid " Plot 3D" +#~ msgstr " Plot 3D" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Fout: Er zijn waarden nodig om een grafiek te kunnen tekenen" + +#~ msgid "Generating... Please wait" +#~ msgstr "Wordt aangemaakt... even geduld alstublieft" + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Fout aantal parameters, 1 parameter voor '%2'" +#~ msgstr[1] "Fout aantal parameters, %1 parameters voor '%2'" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "Log Op&slaan" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "Hoog" + +#~ msgid "We can only call functions" +#~ msgstr "Alleen functies kunnen worden weergegeven." + +#~ msgid "Wrong parameter count" +#~ msgstr "Fout aantal parameters" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "waar" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "onwaar" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Invalid parameter count." +#~ msgstr "Fout aantal parameters." + +#~ msgid "Mode" +#~ msgstr "Modus" + +#~ msgid "Save the expression" +#~ msgstr "De expressie opslaan" + +#~ msgid "Calculate the expression" +#~ msgstr "De expressie berekenen" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot apply '%1' to '%2'" +#~ msgstr "Kan '%1' niet op '%2' toepassen" + +#~ msgid "Cannot operate '%1'" +#~ msgstr "Kan bewerking niet op '%1' toepassen" + +#~ msgid "Cannot check '%1' type" +#~ msgstr "Kan type van '%1' niet controleren" + +#~ msgid "Wrong number of parameters when calling '%1'" +#~ msgstr "Verkeerd aantal parameters bij het aanroepen van '%1'" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Ondergrens mag niet ≥ bovengrens zijn" + +#~ msgid "Trying to call an invalid function" +#~ msgstr "Een ongeldige functie wordt aangeroepen" diff --git a/po/nl/kalgebramobile.po b/po/nl/kalgebramobile.po new file mode 100644 index 0000000..ff37da5 --- /dev/null +++ b/po/nl/kalgebramobile.po @@ -0,0 +1,332 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# SPDX-FileCopyrightText: 2018, 2021, 2023 Freek de Kruijf +# Jaap Woldringh , 2018, 2019, 2020, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-04 11:25+0100\n" +"Last-Translator: Freek de Kruijf \n" +"Language-Team: \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 23.08.3\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Rekenmachine" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Script laden" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Script opslaan" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Log exporteren" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Evalueren" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Berekenen" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Log wissen" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D-plot" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D-plot" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Kopieer \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Geschiedenis va console wissen" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Toevoegen" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Alles wissen" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Dialoog sluiten" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Plot verwijderen" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Geen plot beschikbaar" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Te berekenen expressie..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Woordenboek" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Naam:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Graph 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Graph 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tafels" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variabelen" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Woordenboek" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Over KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D-plot" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Opslaan" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Rooster tonen" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Viewport herstellen" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D-plot" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Antwoorden" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tafels" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Fout: stapgrootte mag niet 0 zijn" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Fout: begin en einde zijn gelijk" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Fout: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Uitvoeren" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Invoer" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Van:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Tot:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Stapgrootte" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Doen" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Een multiplatform rekenmachine" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Onderhouder" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Freek de Kruijf, Jaap Woldringh" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "freekdekruijf@kde.nl, jjhwoldringh@kde.nl" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Een eenvoudige wetenschappelijke rekenmachine" + +#~ msgid "Results:" +#~ msgstr "Antwoorden:" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "KAlgebra wordt u aangeboden door de vriendelijke community van KDE en KDE Edu vanuit een omgeving voor Vrije Software." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "U kunt meer informatie vinden over KAlgebra, als u dit wenst, op de " +#~ "officiële website en in de wiki voor gebruikers.
Mocht u een probleem tegenkomen," +#~ "dan vragen we u dit te melden op onze " +#~ "foutreportagepagina." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information " +#~ msgstr "Indien u meer wilt weten over KAlgebra, vindt u meer informatie" diff --git a/po/nn/kalgebra.po b/po/nn/kalgebra.po new file mode 100644 index 0000000..4c9aa70 --- /dev/null +++ b/po/nn/kalgebra.po @@ -0,0 +1,440 @@ +# Translation of kalgebra to Norwegian Nynorsk +# +# Karl Ove Hufthammer , 2007, 2008, 2009, 2010, 2018, 2019, 2022. +# Eirik U. Birkeland , 2008. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-19 13:55+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 22.04.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Val: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Lim inn «%1» til inndata" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Lim inn til inndata" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Feil: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importert: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Feil: Klarte ikkje lasta %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informasjon" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Legg til / rediger funksjon" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Preview" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Frå:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Til:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Val" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Fjern" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Val du oppgav er ikkje rette" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Nedre grense kan ikkje vera større enn øvre grense" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Plott i 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Plott i 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Økt" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variablar" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Kalkulator" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "K&alkulator" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Opna skript …" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Nyleg brukte skript" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Lagra skript …" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Eksporter logg …" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Set inn svar …" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Køyremodus" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Rekn ut" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Evaluer" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funksjonar" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Liste" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Legg til" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Visingsrute" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D-graf" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D-graf" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Rutenett" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Hald fast på høgd/breidd-forhold" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Oppløysing" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Dårleg" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Vanleg" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Fin" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Veldig fin" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D-graf" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D-&graf" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Nullstill vising" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Prikkar" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linjer" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Heiltrekt" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operasjonar" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Ordliste" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Sjå etter:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Redigering" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Vel eit skript" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-fil (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Feil: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Vel kor plottet skal visast" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Biletfil (*.png);;SVG-fil (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Klar" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Legg til variabel" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Skriv eit namn på den nye variabelen" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Portabel kalkulator" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006–2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Karl Ove Hufthammer" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "karl@huftis.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Legg til / rediger variabel" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Fjern variabel" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Rediger verdien «%1»" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ikkje tilgjengeleg" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "FEIL" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Venstre:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Topp:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Breidd:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Høgd:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Bruk" diff --git a/po/nn/kalgebramobile.po b/po/nn/kalgebramobile.po new file mode 100644 index 0000000..dfec56f --- /dev/null +++ b/po/nn/kalgebramobile.po @@ -0,0 +1,294 @@ +# Translation of kalgebramobile to Norwegian Nynorsk +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-09-27 20:45+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 24.08.1\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Kalkulator" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Opna skript" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Lagra skript" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Eksporter logg" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Evaluer" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Rekn ut" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Tøm logg" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D-plott" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D-plott" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Kopier «%1»" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Tom konsoll-logg" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Legg til" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Tøm alt" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Lukk dialogvindauget" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Fjern plott" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Inkje plott tilgjengeleg" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Uttrykk å rekna ut …" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Ordbok" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Namn:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "2D-graf" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "3D-graf" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Verditabellar" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variablar" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Ordbok" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Om KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D-plott" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Lagra" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Vis rutenett" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Tilbakestill visingsrute" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D-plott" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Resultat" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Verditabellar" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Feil: Steget kan ikkje vera 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Feil: Start- og sluttverdiane er like" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Feil: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Køyr" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Inndata" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Frå:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Til:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Steg" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Køyr" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Portabel kalkulator" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© 2006–2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Vedlikehaldar" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Karl Ove Hufthammer" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "karl@huftis.org" diff --git a/po/oc/kalgebra.po b/po/oc/kalgebra.po new file mode 100644 index 0000000..5d6f8b4 --- /dev/null +++ b/po/oc/kalgebra.po @@ -0,0 +1,553 @@ +# translation of kalgebra.po to Occitan (lengadocian) +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Yannig Marchegay (Kokoyaya) , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2008-08-05 22:26+0200\n" +"Last-Translator: Yannig Marchegay (Kokoyaya) \n" +"Language-Team: Occitan (lengadocian) \n" +"Language: oc\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, fuzzy, kde-format +#| msgid "Operations" +msgid "Options: %1" +msgstr "Operacions" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Entresenhas" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, fuzzy, kde-format +#| msgid "Operations" +msgid "Options" +msgstr "Operacions" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Validar" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variables" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "" + +#: kalgebra.cpp:215 +#, fuzzy, kde-format +#| msgctxt "@title:column" +#| msgid "Value" +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Valor" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Foncions" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Tièra" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Apondre" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolucion" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punts" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linhas" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacions" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "" + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgctxt "Function parameter separator" +#| msgid ", " +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Errors: %1" +msgstr "Error : %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Prèst" + +#: kalgebra.cpp:726 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Add variable" +msgstr "Variables" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Yannig Marchegay (Kokoyaya)" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "yannig@marchegay.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "Variables" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "pas disponible" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" + +#~ msgid "Error: %1" +#~ msgstr "Error : %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Netejar" + +#~ msgid "Type" +#~ msgstr "Tipe" + +#, fuzzy +#~| msgctxt "@title:column" +#~| msgid "Example" +#~ msgid "Examples" +#~ msgstr "Exemple" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Nom" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Foncion" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Descripcion" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Paramètres" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Exemple" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "Addition" +#~ msgstr "Adicion" + +#~ msgid "Multiplication" +#~ msgstr "Multiplicacion" + +#~ msgid "Division" +#~ msgstr "Division" + +#~ msgid "Power" +#~ msgstr "Poténcia" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "Normal" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "Tièra" + +#, fuzzy +#~| msgctxt "@title:column" +#~| msgid "Description" +#~ msgid "Differentiation" +#~ msgstr "Descripcion" + +#~ msgid "Minimum" +#~ msgstr "Minim" + +#~ msgid "Maximum" +#~ msgstr "Maxim" + +#, fuzzy +#~| msgid "Multiplication" +#~ msgid "Boolean implication" +#~ msgstr "Multiplicacion" + +#~ msgid "Root" +#~ msgstr "Raiç" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Valor" + +#, fuzzy +#~| msgctxt "Function parameter separator" +#~| msgid ", " +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr ", " + +#~ msgid "Subtraction" +#~ msgstr "Sostraccion" + +#~ msgid "Mode" +#~ msgstr "Mòde" + +#~ msgid "%1, " +#~ msgstr "%1, " diff --git a/po/pa/kalgebra.po b/po/pa/kalgebra.po new file mode 100644 index 0000000..b37fa32 --- /dev/null +++ b/po/pa/kalgebra.po @@ -0,0 +1,640 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# A S Alam , 2009, 2011, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2021-01-23 15:39-0800\n" +"Last-Translator: A S Alam \n" +"Language-Team: Punjabi \n" +"Language: pa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 20.08.1\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "ਚੋਣਾਂ: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "ਇੰਪੁੱਟ ਲਈ \"%1\" ਚੇਪੋ" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "ਇਨਪੁੱਟ ਲਈ ਚੇਪੋ" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    ਗਲਤੀ: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "ਇੰਪੋਰਟ ਕੀਤੇ: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    ਗਲਤੀ: %1 ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "ਜਾਣਕਾਰੀ" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "ਫੰਕਸ਼ਨ ਸ਼ਾਮਲ ਕਰੋ/ਸੋਧੋ" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "ਝਲਕ" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "ਤੋਂ:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "ਵੱਲ:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "ਚੋਣਾਂ" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "ਠੀਕ ਹੈ" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "ਹਟਾਓ" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2D ਵਾਹੋ" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3D ਵਾਹੋ" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "ਸ਼ੈਸ਼ਨ" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "ਵੇਰੀਬਲ" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "ਕੈਲਕੂਲੇਟਰ(&C)" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "ਕੈਲਕੂਲੇਟਰ(&c)" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "ਸਕ੍ਰਿਪਟ ਲੋਡ ਕਰੋ(&L)..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "ਤਾਜ਼ਾ ਸਕ੍ਰਿਪਟਾਂ" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "ਸਕ੍ਰਿਪਟ ਸੰਭਾਲੋ(&S)..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "ਚਲਾਉਣ ਢੰਗ" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "ਗਣਨਾ" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "ਮੁੱਲਾਂਕਣ" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "ਫੰਕਸ਼ਨ" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "ਲਿਸਟ" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "ਸ਼ਾਮਲ(&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "ਵਿਊਪੋਰਟ" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D ਗਰਾਫ਼" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D ਗਰਾਫ਼" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "ਗਰਿੱਡ(&G)" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "ਅਕਾਰ ਅਨੁਪਾਤ ਰੱਖੋ(&K)" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "ਰੈਜ਼ੋਲੁਸ਼ਨ" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "ਘੱਟ" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "ਸਧਾਰਨ" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "ਵਧੀਆ" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "ਬਹੁਤ ਵਧੀਆ" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D ਗਰਾਫ਼" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D ਗਰਾਫ਼(&G)" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "ਬਿੰਦੀਆਂ" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "ਲਾਈਨਾਂ" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "ਗੂੜ੍ਹਾ" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "ਓਪਰੇਸ਼ਨ" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "ਡਿਕਸ਼ਨਰੀ(&D)" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "ਖੋਜ:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "ਸੋਧ ਜਾਰੀ(&E)" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "ਸਕ੍ਰਿਪਟ ਚੁਣੋ" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "ਸਕ੍ਰਿਪਟ (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML ਫਾਇਲ (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "ਗਲਤੀਆਂ: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "ਚਿੱਤਰ ਫਾਇਲ (*.png);;SVG ਫਾਇਲ (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "ਤਿਆਰ" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "ਵੇਰੀਬਲ ਜੋੜੋ" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "ਨਵਾਂ ਵੇਰੀਬਲ ਲਈ ਨਾਂ ਦਿਓ" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "ਪੋਰਟੇਬਲ ਕੈਲਕੂਲੇਟਰ" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ ੨੦੨੧" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "alam.yellow@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "ਵੇਰੀਬਲ ਨੂੰ ਜੋੜੋ/ਸੋਧੋ" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "ਵੇਰੀਬਲ ਨੂੰ ਹਟਾਓ" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "'%1' ਮੁੱਲ ਸੋਧੋ" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ਉਪਲੱਬਧ ਨਹੀਂ" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "*ਗਲਤ*" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "ਖੱਬਾ:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "ਉੱਤੇ:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "ਚੌੜਾਈ:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "ਉਚਾਈ:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "ਲਾਗੂ ਕਰੋ" + +#~ msgid "C&onsole" +#~ msgstr "ਕਨਸੋਲ(&o)" + +#~ msgid "&Console" +#~ msgstr "ਕਨਸੋਲ(&C)" + +#~ msgid "Formula" +#~ msgstr "ਫਾਰਮੂਲਾ" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "ਮੁਕੰਮਲ: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "ਗਲਤੀ: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "ਸਾਫ਼ ਕਰੋ" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG ਫਾਇਲ" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "ਟਰਾਂਸਪਰੇਸੀ(&T)" + +#~ msgid "Type" +#~ msgstr "ਕਿਸਮ" + +#~ msgid "Result: %1" +#~ msgstr "ਨਤੀਜਾ: %1" + +#~ msgid "To Expression" +#~ msgstr "ਸਮੀਕਰਨ ਲਈ" + +#~ msgid "Simplify" +#~ msgstr "ਸਧਾਰਨ ਕਰੋ" + +#~ msgid "Examples" +#~ msgstr "ਉਦਾਹਰਨਾਂ" + +#~ msgid "center" +#~ msgstr "ਸੈਂਟਰ" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "ਨਾਂ" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "ਫੰਕਸ਼ਨ" + +#~ msgid "%1 function added" +#~ msgstr "%1 ਫੰਕਸ਼ਨ ਸ਼ਾਮਲ ਕੀਤਾ" + +#~ msgid "Hide '%1'" +#~ msgstr "'%1' ਓਹਲੇ" + +#~ msgid "Show '%1'" +#~ msgstr "'%1' ਵੇਖੋ" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "ਵੇਰਵਾ" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "ਪੈਰਾਮੀਟਰ" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "ਉਦਾਹਰਨ" + +#, fuzzy +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "ਪੈਰਾਮੀਟਰ" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "ਜੋੜ" + +#~ msgid "Multiplication" +#~ msgstr "ਗੁਣਾ" + +#~ msgid "Division" +#~ msgstr "ਭਾਗ" + +#~ msgid "Power" +#~ msgstr "ਪਾਵਰ" + +#~ msgid "Hyperbolic sine" +#~ msgstr "ਹਾਈਪਰਬੋਲ ਸਾਈਨ" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hyperbolic cosine" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "ਹਾਈਪਰਬੋਲਿਕ ਟੇਜੈਂਟ" + +#~ msgid "Arc sine" +#~ msgstr "Arc sine" + +#~ msgid "Arc cosine" +#~ msgstr "Arc cosine" + +#~ msgid "Arc tangent" +#~ msgstr "Arc tangent" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "ਸਧਾਰਨ" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "ਬਾਹਰ" + +#~ msgid "Minimum" +#~ msgstr "ਘੱਟੋ-ਘੱਟ" + +#~ msgid "Maximum" +#~ msgstr "ਵੱਧੋ-ਵੱਧ" + +#~ msgid "Root" +#~ msgstr "ਰੂਟ" + +#~ msgctxt "n-ary function prototype" +#~ msgid "%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr ": ਬਾਊਂਡ" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "ਮੁੱਲ" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#, fuzzy +#~| msgctxt "@title:column" +#~| msgid "Function" +#~ msgid "Subtraction" +#~ msgstr "ਫੰਕਸ਼ਨ" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "ਗਲਤੀ: %2" + +#~ msgid "Generating... Please wait" +#~ msgstr "ਤਿਆਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ... ਉਡੀਕੋ" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "ਲਾਗ ਸੰਭਾਲੋ(&S)" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "ਵਧੀਆ" + +#~ msgid "Mode" +#~ msgstr "ਮੋਡ" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" diff --git a/po/pa/kalgebramobile.po b/po/pa/kalgebramobile.po new file mode 100644 index 0000000..8db2648 --- /dev/null +++ b/po/pa/kalgebramobile.po @@ -0,0 +1,311 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# A S Alam , 2021. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2021-06-08 22:05-0700\n" +"Last-Translator: A S Alam \n" +"Language-Team: Punjabi \n" +"Language: pa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 20.12.2\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "ਕੈਲਕੂਲੇਟਰ" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "ਕੇ-ਐਲਜਬਰਾ" + +#: content/ui/Console.qml:62 +#, fuzzy, kde-format +#| msgid "Load Script" +msgctxt "@action:button" +msgid "Load Script" +msgstr "ਸਕ੍ਰਿਪਟ ਲੋਡ ਕਰੋ" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "ਸਕ੍ਰਿਪਟ (*.kal)" + +#: content/ui/Console.qml:72 +#, fuzzy, kde-format +#| msgid "Save Script" +msgctxt "@action:button" +msgid "Save Script" +msgstr "ਸਕ੍ਰਿਪਟ ਸੰਭਾਲੋ" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, fuzzy, kde-format +#| msgid "Evaluate" +msgctxt "@action:button" +msgid "Evaluate" +msgstr "ਮੁਲਾਂਕਣ" + +#: content/ui/Console.qml:94 +#, fuzzy, kde-format +#| msgid "Calculate" +msgctxt "@action:button" +msgid "Calculate" +msgstr "ਕੈਲਕੂਲੇਟ" + +#: content/ui/Console.qml:100 +#, fuzzy, kde-format +#| msgid "Clear Log" +msgctxt "@action:button" +msgid "Clear Log" +msgstr "ਲਾਗ ਮਿਟਾਓ" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2ਡੀ ਵਾਹੋ" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3ਡੀ ਵਾਹੋ" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "\"%1\" ਕਾਪੀ ਕਰੋ" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, fuzzy, kde-format +#| msgid "Clear All" +msgctxt "@action:button" +msgid "Clear All" +msgstr "ਸਭ ਮਿਟਾਓ" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "" + +#: content/ui/Dictionary.qml:14 +#, fuzzy, kde-format +#| msgid "Dictionary" +msgctxt "@title:window" +msgid "Dictionary" +msgstr "ਡਿਕਸ਼ਨਰੀ" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "ਨਾਂ:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "ਗਰਾਫ 2ਡੀ" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "ਗਰਾਫ 3ਡੀ" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "ਮੁੱਲ ਸਾਰਣੀਆਂ" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "ਵੇਰੀਬਲ" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "ਡਿਕਸ਼ਨਰੀ" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "ਕੇ-ਐਲਜਬਰਾ ਬਾਰੇ" + +#: content/ui/Plot2D.qml:21 +#, fuzzy, kde-format +#| msgid "2D Plot" +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2ਡੀ ਵਾਹੋ" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "ਸੰਭਾਲੋ" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "ਗਰਿੱਡ ਵੇਖੋ" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "" + +#: content/ui/Plot3D.qml:21 +#, fuzzy, kde-format +#| msgid "3D Plot" +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3ਡੀ ਵਾਹੋ" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "ਨਤੀਜੇ" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "ਮੁੱਲ ਸਾਰਣੀਆਂ" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "ਗਲਤੀਆਂ: ਸ਼ੁਰੂ ਤੇ ਅੰਤ ਇੱਕ ਹੀ ਹਨ" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "ਗ਼ਲਤੀਆਂ: %1" + +#: content/ui/Tables.qml:52 +#, fuzzy, kde-format +#| msgid "Run" +msgctxt "@action:button Run table" +msgid "Run" +msgstr "ਚਲਾਓ" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "ਇਨਪੁਟ" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "ਤੋਂ:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "ਤੱਕ:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "ਪੜਾਅ" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "ਚਲਾਓ" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "ਪੋਰਟੇਬਲ ਕੈਲਕੂਲੇਟਰ" + +#: main.cpp:40 +#, fuzzy, kde-format +#| msgid "(C) 2006-2020 Aleix Pol i Gonzalez" +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, fuzzy, kde-format +#| msgid "(C) 2006-2020 Aleix Pol i Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "(C) 2006 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ ੨੦੨੧" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "alam.yellow@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "ਕੇ-ਐਲਜਬਰਾ ਮੋਬਾਇਲ" + +#~ msgid "A simple scientific calculator" +#~ msgstr "ਸਰਲ ਵਿਗਿਆਨਕ ਕੈਲਕੂਲੇਟਰ" diff --git a/po/pl/kalgebra.po b/po/pl/kalgebra.po new file mode 100644 index 0000000..65779e8 --- /dev/null +++ b/po/pl/kalgebra.po @@ -0,0 +1,1151 @@ +# translation of kalgebra.po to Polish +# translation of kalgebra.po to +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Tadeusz Hessel , 2007. +# Marta Rybczyńska , 2007, 2008, 2010, 2013. +# Maciej Wikło , 2008, 2009. +# Franciszek Janowski , 2009. +# Ireneusz Gierlach , 2010, 2011. +# Łukasz Wojniłowicz , 2011, 2012, 2014, 2015, 2016, 2017, 2019, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-26 20:38+0200\n" +"Last-Translator: Łukasz Wojniłowicz \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opcje: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Wklej \"%1\" do wejścia" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Wklej do wejścia" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Błąd: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Zaimportowane: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Błąd: Nie można wczytać %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informacja" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Dodaj/modyfikuj funkcję" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Podgląd" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Od:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Do:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opcje" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Usuń" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Podane opcje nie są poprawne" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Dolny limit nie może być większy niż górny limit" + +# 2D albo dwuwymiarowy +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Wykres 2D" + +# 3D albo trójwymiarowy +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Wykres 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sesja" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Zmienne" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Kalkulator" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "K&alkulator" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Wczytaj skrypt..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Ostatnie skrypty" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Zapi&sz skrypt..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "Wy&eksportuj dziennik..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "Wstaw odpow&iedź..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Tryb wykonywania" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Oblicz" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Wykonaj" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkcje" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "Dod&aj" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Obszar wyświetlania" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&Wykres 2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Wykres 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Siatka" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Zachowaj proporcje" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Rozdzielczość" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Słaba" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normalna" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Dobra" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Bardzo dobra" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Wykres &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Wykres 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "W&yczyść widok" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Kropki" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linie" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Ciągłe" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacje" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Słownik" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Znajdź:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Edytowanie" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Wybierz skrypt" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skrypt (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Plik HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Błędy: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Wybierz gdzie umieścić narysowany wykres" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Plik obrazu (*.png);;Plik SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Gotowy" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Dodaj zmienną" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Podaj nazwę nowej zmiennej" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Kalkulator kieszonkowy" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Łukasz Wojniłowicz" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "lukasz.wojnilowicz@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Dodaj/zmień zmienną" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Usuń zmienną" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Zmień wartość '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "niedostępne" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ŹLE" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Od lewej:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Od góry:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Szerokość:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Wysokość:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Zastosuj" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "Plik PNG (*.png);;Dokument PDF (*.pdf);;Dokument X3D (*.x3d));;Dokument " +#~ "STL (*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "T&erminal" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Terminal" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Stworzył funkcję do rysowania bezwarunkowych krzywych. Ulepszenia w " +#~ "wykresach funkcji." + +#~ msgid "Formula" +#~ msgstr "Formuła" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Błąd: nieprawidłowy typ funkcji" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Wykonano: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Błąd: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Wyczyść" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|Plik PNG" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Przezroczystość" + +#~ msgid "Type" +#~ msgstr "Typ" + +#~ msgid "Result: %1" +#~ msgstr "Wynik: %1" + +#~ msgid "To Expression" +#~ msgstr "Do wyrażenia" + +#~ msgid "To MathML" +#~ msgstr "Do MathML" + +#~ msgid "Simplify" +#~ msgstr "Uprość" + +#~ msgid "Examples" +#~ msgstr "Przykłady" + +#~ msgid "We can only draw Real results." +#~ msgstr "Możemy pokazać tylko wyniki będące liczbami rzeczywistymi." + +#~ msgid "The expression is not correct" +#~ msgstr "Wyrażenie nie jest poprawne" + +#~ msgid "Function type not recognized" +#~ msgstr "Nie rozpoznany typ funkcji" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Typ funkcji nie jest odpowiedni dla funkcji zależnych od %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Bezwarunkowa funkcja niezdefiniowana w płaszczyźnie" + +#~ msgid "center" +#~ msgstr "środek" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Nazwa" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funkcja" + +#~ msgid "%1 function added" +#~ msgstr "Funkcja %1 dodana" + +#~ msgid "Hide '%1'" +#~ msgstr "Ukryj '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Pokaż '%1'" + +#~ msgid "Selected viewport too small" +#~ msgstr "Wybrano za mały obszar wyświetlania" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Opis" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parametry" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Przykład" + +# var albo zmienna. zależy od kontekstu. +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=od..do" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parametry, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Dodawanie" + +#~ msgid "Multiplication" +#~ msgstr "Mnożenie" + +#~ msgid "Division" +#~ msgstr "Dzielenie" + +# Will remove brzmi troche jak usunie.... a nie odejmie... +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Odejmowanie. Odejmie wszystkie wartości od wartości pierwszej." + +#~ msgid "Power" +#~ msgstr "Potęga" + +#~ msgid "Remainder" +#~ msgstr "Reszta" + +#~ msgid "Quotient" +#~ msgstr "Iloraz" + +#~ msgid "The factor of" +#~ msgstr "Dzielnik" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Silnia. silnia(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funkcja do obliczenia sinusa danego kąta" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funkcja do obliczenia cosinusa danego kąta" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funkcja do obliczenia tangensa danego kąta" + +#~ msgid "Secant" +#~ msgstr "Secans" + +#~ msgid "Cosecant" +#~ msgstr "Cosecans" + +#~ msgid "Cotangent" +#~ msgstr "Cotangens" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Sinus hiperboliczny" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Cosinus hiperboliczny" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Tangens hiperboliczny" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Secans hiperboliczny" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Cosecans hiperboliczny" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Cotangens hiperboliczny" + +#~ msgid "Arc sine" +#~ msgstr "Arcus sinus" + +#~ msgid "Arc cosine" +#~ msgstr "Arcus cosinus" + +#~ msgid "Arc tangent" +#~ msgstr "Arcus tangens" + +#~ msgid "Arc cotangent" +#~ msgstr "Arcus cotangens" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Hiperboliczny arcus tangens" + +#~ msgid "Summatory" +#~ msgstr "Sumujący" + +#~ msgid "Productory" +#~ msgstr "Mnożący" + +#~ msgid "For all" +#~ msgstr "Dla wszystkich" + +#~ msgid "Exists" +#~ msgstr "Istniejące" + +#~ msgid "Differentiation" +#~ msgstr "Pochodna" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Hiperboliczny arcus sinus" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Hiperboliczny arcus cosinus" + +#~ msgid "Arc cosecant" +#~ msgstr "Arcus cosecans" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Hiperboliczny arcus cosecans" + +#~ msgid "Arc secant" +#~ msgstr "Arcus secans" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Hiperboliczny arcus secans" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Funkcja wykładnicza (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Logarytm naturalny" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Logarytm dziesiętny" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Wartość bezwzględna. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Wartość \"podłoga\" (floor). floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Wartość \"sufit\" (ceil). ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimum" + +#~ msgid "Maximum" +#~ msgstr "Maksimum" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Większe niż. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : granice" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Wartość" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Musisz określić poprawną operację" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Nieznany identyfikator: '%1'" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "" +#~ "Nie można było znaleźć prawidłowego wyboru dla stwierdzenia warunku." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Ograniczenia dla tego typu nie są obsługiwane." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Dolny limit jest większy niż górny." + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Górny lub dolny limit jest nieprawidłowy." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Zdefiniowano zmienną cykliczną" + +#~ msgid "The result is not a number" +#~ msgstr "Wynik nie jest cyfrą" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Nieoczekiwanie osiągnięto koniec wejścia" + +#~ msgid "Unknown token %1" +#~ msgstr "Nieznany token %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 potrzebuje przynajmniej 2 parametrów" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 wymaga %2 parametrów" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Brak granicy dla '%1'" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Nieoczekiwana granica dla %1" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1brak granicy na '%2'" + +#~ msgid "Wrong declare" +#~ msgstr "Nieprawidłowa deklaracja" + +#~ msgid "Empty container: %1" +#~ msgstr "Pusty kontener: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Można podawać tylko warunki w przedziałach." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Nie można posiadać dwóch parametrów o tej samej nazwie jak '%1'." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Parametr otherwise powinien być ostatni" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 nie jest prawidłowym warunkiem w przedziale" + +#~ msgid "We can only declare variables" +#~ msgstr "Możemy jedynie zadeklarować zmienne" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Można podawać tylko ograniczone zmienne" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Błąd podczas parsowania: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Nieznany kontener: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Nie można kodyfikować wartości %1." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Operator %1 nie może mieć kontekstów potomnych." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Element '%1' nie jest operatorem." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Nie obsługuj pustych wektorów" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Nieobsługiwany/nieznany: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Oczekiwano %1 zamiast '%2'" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Brak prawidłowego nawiasu" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Niezbalansowany prawidłowy nawias" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Nieoczekiwany token %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Nieoczekiwany token %1" + +#, fuzzy +#~| msgid "Could not calculate the derivative for '%1'" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Nie można obliczyć różniczki dla '%1'" + +#, fuzzy +#~| msgid "The domain should be either a vector or a list." +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "Domena powinna być albo wektorem albo listą." + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "" +#~ "Nieprawidłowa liczba parametrów dla '%2'. Powinien być 1 parametr." +#~ msgstr[1] "" +#~ "Nieprawidłowa liczba parametrów dla '%2'. Powinno być %1 parametrów." +#~ msgstr[2] "" +#~ "Nieprawidłowa liczba parametrów dla '%2'. Powinno być %1 parametrów." + +#~ msgid "Could not call '%1'" +#~ msgstr "Nie można wywołać '%1' " + +#~ msgid "Could not solve '%1'" +#~ msgstr "Nie można obliczyć wartości '%1'" + +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Niespójny typ dla zmiennej '%1'" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Nie można ustalić typu dla przedziału" + +#~ msgid "Unexpected type" +#~ msgstr "Nieoczekiwany typ" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Nie można skonwertować '%1' na '%2'" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Nieznany token %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Nie można obliczyć reszty z zera." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Nie można obliczyć współczynnika zera." + +# LCM = Least Common Multiple +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Nie można obliczyć najmniejszej wspólnej wielokrotności zera." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Nie można obliczyć wartości %1" + +#~ msgid "Invalid index for a container" +#~ msgstr "Nieprawidłowy indeks kontenera" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Nie można działać na wektorach innych rozmiarów." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Nie można obliczyć %1 wektora" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Nie można obliczyć listy %1" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Nie można obliczyć różniczki dla '%1'" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Nie można zredukować '%1' i '%2'." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Funkcja parametryczna nie zwraca wektora" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Potrzebny jest dwuwymiarowy wektor" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Elementy funkcji parametrycznej powinny być skalarne" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "Pochodna %1 nie została zaimplementowana." + +#~ msgid "Incorrect domain." +#~ msgstr "Nieprawidłowy zakres." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Nie zrozumiano wartości rzeczywistej: %1" + +#~ msgid "Subtraction" +#~ msgstr "Odejmowanie" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Błąd: %2" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Błąd: potrzebne są wartości, aby narysować wykres" + +#~ msgid "Select an element from a container" +#~ msgstr "Wybierz element ze zbioru" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Nie można ustawić dolnej granicy ≥ górnej granicy" + +#~ msgid "Generating... Please wait" +#~ msgstr "Generowanie... Proszę czekać" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Zapisz do dziennika" + +#~ msgid "Mode" +#~ msgstr "Tryb" + +#~ msgid "Save the expression" +#~ msgstr "Zapisz wyrażenie" + +#~ msgid "Calculate the expression" +#~ msgstr "Oblicz wyrażenie" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#, fuzzy +#~| msgid "We can only draw Real results." +#~ msgid "We can only call functions" +#~ msgstr "Możemy pokazać tylko wyniki będące liczbami rzeczywistymi." + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Nieznana ograniczona zmienna: %1" + +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Need a var name and a value" +#~ msgstr "Potrzebna jest nazwa zmiennej i wartość" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Funkcja %1 nie istnieje" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Zmienna %1 nie istnieje" + +#~ msgid "" +#~ "Wrong parameter count in a selector, should have 2 parameters, the " +#~ "selected index and the container." +#~ msgstr "" +#~ "Zła liczba parametrów, powinny być 2 parametry - wybrany indeks i " +#~ "kontener." + +#~ msgid "piece or otherwise in the wrong place" +#~ msgstr "przedział albo inaczej w nieprawidłowym miejscu" + +#~ msgid "No bounding variables for this sum" +#~ msgstr "Brak zmiennych granicznych dla tej sumy" + +#~ msgid "Missing bounding limits on a sum operation" +#~ msgstr "Brak limitów w operacji dodawania" + +#~| msgid "We can only select a containers value with its integer index" +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "" +#~ "Można wybrać tylko wartość kontenera, będącą indeksem liczby całkowitej" + +#~ msgid "Trying to call an empty or invalid function" +#~ msgstr "Próba wywołania pustej lub niepoprawnej funkcji" + +#~ msgid "From parser:" +#~ msgstr "Od analizatora:" + +#~ msgctxt "" +#~ "%1 the operation name, %2 and %3 is the opearation we wanted to calculate" +#~ msgid "Cannot calculate the %1(%2, %3)" +#~ msgstr "Nie można obliczyć %1(%2, %3)" + +#~ msgctxt "Error message" +#~ msgid "Trying to codify an unknown value: %1" +#~ msgstr "Próba skodyfikowania nieznanej wartości: %1" diff --git a/po/pl/kalgebramobile.po b/po/pl/kalgebramobile.po new file mode 100644 index 0000000..73c74e3 --- /dev/null +++ b/po/pl/kalgebramobile.po @@ -0,0 +1,323 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2018, 2019, 2020, 2021, 2022, 2023 Łukasz Wojniłowicz +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-23 13:37+0100\n" +"Last-Translator: Łukasz Wojniłowicz \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Kalkulator" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Wczytaj skrypt" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skrypt (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Zapisz skrypt" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Wyeksportuj dziennik" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Oblicz" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Oblicz" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Wyczyść dziennik" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Wykres 2D" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Wykres 3D" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Skopiuj \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Pusta historia konsoli" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Dodaj" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Wyczyść wszystko" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Zamknij okno" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Usuń wykres" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Nie jest dostępny żaden wykres" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Wyrażenie do obliczenia..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Słownik" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nazwa:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Wykres 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Wykres 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tabela wartości" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Zmienne" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Słownik" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "O KAlgebrze" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Wykres 2D" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Zapisz" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Pokaż siatkę" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Wyzeruj pole widzenia" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Wykres 3D" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Wyniki" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tabela wartości" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Błąd: Krok nie może być 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Błędy: Początek i koniec są takie same" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Błąd: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Uruchom" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Wejście" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Od:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Do:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Krok" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Uruchom" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Przenośny kalkulator" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Opiekun" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Łukasz Wojniłowicz" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "lukasz.wojnilowicz@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "Przenośna KAlgebra" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Posty kalkulator naukowy" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "KAlgebra masz dzięki naszej kochanej społeczności KDE oraz KDE Edu ze środowiska " +#~ "Wolnego Oprogramowania." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "Jeśli chcesz dowiedzieć się więcej o KAlgebrze, to zajrzyj naoficjalną " +#~ "stronę i na wiki " +#~ "użytkowników.
Jeśli napotkasz jakikolwiek problem z tym " +#~ "oprogramowaniem, to proszę zgłoś go w naszym systemie zarządzania błędami." diff --git a/po/pt/docs/kalgebra/commands.docbook b/po/pt/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..bd12321 --- /dev/null +++ b/po/pt/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Comandos suportados pelo KAlgebra + mais + Nome: mais + Descrição: Adição + Parâmetros plus(... parâmetros, ...) + Exemplo: x->x+2 + + vezes + Nome: vezes + Descrição: Multiplicação + Parâmetros: vezes(... parâmetros, ...) + Exemplo: x->x*2 + + menos + Nome: menos + Descrição: Subtracção. Irá remover todos os valores do primeiro. + Parâmetros: menos(... parâmetros, ...) + Exemplo: x->x-2 + + dividir + Nome: dividir + Descrição: Divisão + Parâmetros: dividir(par1, par2) + Exemplo: x->x/2 + + quociente + Nome: quociente + Descrição: Quociente + Parâmetros: quociente(par1, par2) + Exemplo: x->quociente(x, 2) + + potência + Nome: potência + Descrição: Potência + Parâmetros: potência(par1, par2) + Exemplo: x->x^2 + + raiz + Nome: raiz + Descrição: Raiz + Parâmetros: raiz(par1, par2) + Exemplo: x->raiz(x, 2) + + factorial + Nome: factorial + Descrição: Factorial. factorial(n)=n! + Parâmetros: factorial(par1) + Exemplo: x->factorial(x) + + e + Nome: e + Descrição: 'E' booleano + Parâmetros: e(... parâmetros, ...) + Exemplo: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + ou + Nome: ou + Descrição: 'ou' booleano + Parâmetros: ou(... parâmetros, ...) + Exemplo: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Nome: xor + Descrição: 'ou exclusivo' booleano + Parâmetros: xor(... parâmetros, ...) + Exemplo: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + nao + Nome: nao + Descrição: 'não' booleano + Parâmetros: nao(par1) + Exemplo: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Nome: gcd + Descrição: Máximo divisor comum + Parâmetros: gcd(... parâmetros, ...) + Exemplo: x->gcd(x, 3) + + lcm + Nome: lcm + Descrição: Mínimo múltiplo comum + Parâmetros: lcm(... parâmetros, ...) + Exemplo: x->lcm(x, 4) + + rem + Nome: rem + Descrição: Resto + Parâmetros: rem(par1, par2) + Exemplo: x->rem(x, 5) + + factorof + Nome: factorof + Descrição: O factor de + Parâmetros: factorof(par1, par2) + Exemplo: x->factorof(x, 3) + + max + Nome: max + Descrição: Máximo + Parâmetros: max(... parâmetros, ...) + Exemplo: x->max(x, 4) + + min + Nome: min + Descrição: Mínimo + Parâmetros: min(... parâmetros, ...) + Exemplo: x->min(x, 4) + + lt + Nome: lt + Descrição: Menor que. lt(a,b)=a<b + Parâmetros: lt(par1, par2) + Exemplo: x->piecewise { x<4 ? 1, ? 0 } + + gt + Nome: gt + Descrição: Maior que. gt(a,b)=a>b + Parâmetros: gt(par1, par2) + Exemplo: x->piecewise { x>4 ? 1, ? 0 } + + eq + Nome: eq + Descrição: Igual. eq(a,b) = a=b + Parâmetros: eq(par1, par2) + Exemplo: x->piecewise { x=4 ? 1, ? 0 } + + neq + Nome: neq + Descrição: Diferente. neq(a,b)=a≠b + Parâmetros: neq(par1, par2) + Exemplo: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Nome: leq + Descrição: Menor ou igual. leq(a,b)=a≤b + Parâmetros: leq(par1, par2) + Exemplo: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Nome: geq + Descrição: Maior ou igual. geq(a,b)=a≥b + Parâmetros: geq(par1, par2) + Exemplo: x->piecewise { x>=4 ? 1, ? 0 } + + implica + Nome: implica + Descrição: Implicação booleana + Parâmetros: implica(par1, par2) + Exemplo: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + aprox + Nome: aprox + Descrição: Aproximação approx(a)=a±n + Parâmetros: aprox(par1, par2) + Exemplo: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Nome: abs + Descrição: Valor absoluto. abs(n)=|n| + Parâmetros: abs(par1) + Exemplo: x->abs(x) + + floor + Nome: floor + Descrição: Valor por defeito. floor(n)=⌊n⌋ + Parâmetros: floor(par1) + Exemplo: x->floor(x) + + ceiling + Nome: ceiling + Descrição: Valor por excesso. ceil(n)=⌈n⌉ + Parâmetros: ceiling(par1) + Exemplo: x->ceiling(x) + + sin + Nome: sin + Descrição: Função para calcular o seno de um determinado ângulo + Parâmetros: sin(par1) + Exemplo: x->sin(x) + + cos + Nome: cos + Descrição: Função para calcular o coseno de um dado ângulo + Parâmetros: cos(par1) + Exemplo: x->cos(x) + + tan + Nome: tan + Descrição: Função para calcular a tangente de um dado ângulo + Parâmetros: tan(par1) + Exemplo: x->tan(x) + + sec + Nome: sec + Descrição: Secante + Parâmetros: sec(par1) + Exemplo: x->sec(x) + + csc + Nome: csc + Descrição: Co-secante + Parâmetros: csc(par1) + Exemplo: x->csc(x) + + cot + Nome: cot + Descrição: Co-tangente + Parâmetros: cot(par1) + Exemplo: x->cot(x) + + sinh + Nome: sinh + Descrição: Seno hiperbólico + Parâmetros: sinh(par1) + Exemplo: x->sinh(x) + + cosh + Nome: cosh + Descrição: Coseno hiperbólico + Parâmetros: cosh(par1) + Exemplo: x->cosh(x) + + tanh + Nome: tanh + Descrição: Tangente hiperbólica + Parâmetros: tanh(par1) + Exemplo: x->tanh(x) + + sech + Nome: sech + Descrição: Secante hiperbólica + Parâmetros: sech(par1) + Exemplo: x->sech(x) + + csch + Nome: csch + Descrição: Co-secante hiperbólica + Parâmetros: csch(par1) + Exemplo: x->csch(x) + + coth + Nome: coth + Descrição: Cotangente hiperbólica + Parâmetros: coth(par1) + Exemplo: x->coth(x) + + arcsin + Nome: arcsin + Descrição: Arco-seno + Parâmetros: arcsin(par1) + Exemplo: x->arcsin(x) + + arccos + Nome: arccos + Descrição: Arco-coseno + Parâmetros: arccos(par1) + Exemplo: x->arccos(x) + + arctan + Nome: arctan + Descrição: Arco-tangente + Parâmetros: arctan(par1) + Exemplo: x->arctan(x) + + arccot + Nome: arccot + Descrição: Arco-cotangente + Parâmetros: arccot(par1) + Exemplo: x->arccot(x) + + arccosh + Nome: arccosh + Descrição: Arco-coseno hiperbólico + Parâmetros: arccosh(par1) + Exemplo: x->arccosh(x) + + arccsc + Nome: arccsc + Descrição: Arco-cosecante + Parâmetros: arccsc(par1) + Exemplo: x->arccsc(x) + + arccsch + Nome: arccsch + Descrição: Arco-cosecante hiperbólica + Parâmetros: arccsch(par1) + Exemplo: x->arccsch(x) + + arcsec + Nome: arcsec + Descrição: Arco-secante + Parâmetros: arcsec(par1) + Exemplo: x->arcsec(x) + + arcsech + Nome: arcsech + Descrição: Arco-secante hiperbólica + Parâmetros: arcsech(par1) + Exemplo: x->arcsech(x) + + arcsinh + Nome: arcsinh + Descrição: Arco-seno hiperbólico + Parâmetros: arcsinh(par1) + Exemplo: x->arcsinh(x) + + arctanh + Nome: arctanh + Descrição: Arco-tangente hiperbólica + Parâmetros: arctanh(par1) + Exemplo: x->arctanh(x) + + exp + Nome: exp + Descrição: Expoente (e^x) + Parâmetros: exp(par1) + Exemplo: x->exp(x) + + ln + Nome: ln + Descrição: Logaritmo de base-e + Parâmetros: ln(par1) + Exemplo: x->ln(x) + + log + Nome: log + Descrição: Logaritmo de base-10 + Parâmetros: log(par1) + Exemplo: x->log(x) + + conjugate + Nome: conjugate + Descrição: Conjugado + Parâmetros: conjugate(par1) + Exemplo: x->conjugate(x*i) + + arg + Nome: arg + Descrição: Argumento + Parâmetros: arg(par1) + Exemplo: x->arg(x*i) + + real + Nome: real + Descrição: Parte real + Parâmetros: real(par1) + Exemplo: x->real(x*i) + + imaginary + Nome: imaginary + Descrição: Parte Imaginária + Parâmetros: imaginary(par1) + Exemplo: x->imaginary(x*i) + + sum + Nome: sum + Descrição: Somatório + Parâmetros: sum(par1 : var=de..até) + Exemplo: x->x*sum(t*t:t=0..3) + + product + Nome: product + Descrição: Produtório + Parâmetros: product(par1 : var=de..até) + Exemplo: x->product(t+t:t=1..3) + + diff + Nome: diff + Descrição: Derivada + Parameters: diff(par1 : variável) + Exemplo: x->(diff(x^2:x))(x) + + card + Nome: card + Descrição: Cardinalidade + Parâmetros: card(par1) + Exemplo: x->card(vector { x, 1, 2 }) + + scalarproduct + Nome: scalarproduct + Descrição: Produto escalar + Parâmetros: scalarproduct(... parâmetros, ...) + Exemplo: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Nome: selector + Descrição: Selecciona o par1-ésimo elemento da lista ou vector 'par2' + Parâmetros: selector(par1, par2) + Exemplo: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Nome: union + Descrição: Junta vários itens do mesmo tipo + Parâmetros: union(... parâmetros, ...) + Exemplo: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Nome: forall + Descrição: Para todos + Parâmetros: forall(par1 : variável) + Exemplo: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Nome: exists + Descrição: Existe + Parâmetros: exists(par1 : variável) + Exemplo: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Nome: map + Descrição: Aplica uma dada função a todos os elementos de uma lista + Parâmetros: map(par1, par2) + Exemplo: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filtro + Nome: filter + Descrição: Remove todos os elementos que não correspondam a uma dada condição + Parâmetros: filter(par1, par2) + Exemplo: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Nome: transpose + Descrição: Transposição + Parâmetros: transpose(par1) + Exemplo: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/pt/docs/kalgebra/index.docbook b/po/pt/docs/kalgebra/index.docbook new file mode 100644 index 0000000..2dcf5d0 --- /dev/null +++ b/po/pt/docs/kalgebra/index.docbook @@ -0,0 +1,711 @@ + + + + + + +]> + + + + +O Manual do &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+JoséPires
zepires@gmail.com
Tradução
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +2016-04-19 +0.10 (Aplicações 16.04) + + +O &kalgebra; é uma aplicação que poderá substituir a sua calculadora gráfica. Tem funcionalidades numéricas, lógicas, simbólicas e analíticas que lhe permitem calcular expressões na consola e desenhar graficamente os resultados em 2D e 3D. O &kalgebra; é baseado na Mathematical Markup Language (MathML); contudo, não é preciso perceber de MathML para usar o &kalgebra;. + + + +KDE +kdeedu +gráfico +matemática +2D +3D +mathML + + +
+ + +Introdução + +O &kalgebra; tem diversas funcionalidades que permitem ao utilizador efectuar todos os tipos de operações matemáticas e mostrá-las de forma gráfica. Numa altura, este programa estava orientado para o MathML. Agora poderá ser usado por todos os que tenham alguns conhecimentos de matemática para resolver problemas simples e avançados. + +Inclui algumas funcionalidades como por exemplo: + + + +Uma calculadora para avaliar rápida e facilmente funções matemáticas. +Capacidades de programação para séries avançadas de cálculos +Capacidades da linguagem que incluem a definição de funções e a completação automática da sintaxe. +As funções de cálculo incluem o cálculo simbólico de derivadas, o cálculo vectorial e a manipulação de listas. +Gráficos de funções com cursores dinâmicos para a descoberta gráfica de raízes e outros tipos de análises. +Gráficos 3D para visualizações úteis de funções em 3D. +Um dicionário incorporado de operadores para uma referência rápida das funções disponíveis. + + +Aqui está uma imagem da janela principal do &kalgebra; em acção: + + +Aqui está uma imagem da janela principal do &kalgebra; + + + + + + Janela principal do &kalgebra; + + + + +Quando o utilizador inicia uma sessão do &kalgebra;, é-lhes apresentada uma única janela que consiste numa página de Calculadora, uma página Gráfico 2D e outra Gráfico 3D, assim como ainda uma página de Dicionário. Por baixo destas páginas, irá ver um campo de texto onde poderá escrever as suas funções ou fazer os seus cálculos e um campo de visualização que apresenta os resultados. + +Em qualquer altura, o utilizador poderá gerir a sua sessão com as opções do menu Sessão: + + + + +&Ctrl; N SessãoNovo +Abre uma nova janela do &kalgebra;. + + + +&Ctrl;&Shift; F SessãoModo de Ecrã Completo +Activa ou desactiva o modo de ecrã completo para a janela do &kalgebra;. O modo de ecrã completo também poderá ser activado ou desactivado com o botão na parte superior direita da janela do &kalgebra;. + + + +&Ctrl; Q SessãoSair +Termina o programa. + + + + + + + +Sintaxe +O &kalgebra; usa uma sintaxe algébrica intuitiva para introduzir as funções do utilizador, semelhante à que é usada nas calculadoras modernas. Esta secção apresenta os operadores fundamentais que estão disponíveis no &kalgebra;. O autor do &kalgebra; modelou esta sintaxe com base no Maxima e no Maple para os utilizadores que se possam familiarizar com estes programas. + +Para os utilizadores que estejam interessados no funcionamento interno do &kalgebra;, as expressões introduzidas pelo utilizador são convertidas para MathML pela infra-estrutura. Uma compreensão rudimentar das capacidades suportadas pelo MathML dará um grande avanço sobre as capacidades internas do &kalgebra;. + +Será agora apresentada uma lista dos operadores suportados por agora: + ++ - * / : Soma, subtracção, multiplicação e divisão. +^, **: Potência - poderá ser usado qualquer um deles. Também é possível usar os caracteres Unicode ². As potências também são uma forma de calcular raizes, como pode ser feito em a**(1/b) +-> : lambda. É a forma de indicar uma ou mais variáveis livres que serão associadas a uma função´. Por exemplo, na expressão, comprimento:=(x,y)->(x*x+y*y)^0.5, o operador 'lambda' é usado para definir que o 'x' e o 'y' serão preenchidos quando for usada a função 'comprimento'. +x=a..b : Isto é usado quando é necessário definir um intervalo [variável + limite-superior + limite-inferior). Isto significa que o 'x' vai de 'a' a 'b'. +() : É usado para aumentar a precedência. +abc(parâmetros) : Funções. Quando o processador encontrar uma função, verifica se o 'abc' é um operador. Se for, será tratado como tal; se não for, será tratado como uma função do utilizador. +:= : Definição. É usada para definir o valor de uma variável. Poderá fazer coisas do tipo x:=3, x:=y, sendo que o 'y' possa estar definido ou não, ou ainda perimetro:=r->2*pi*r. +? : Definição de condições. Esta é a forma de definir operações condicionais no &kalgebra;. Se introduzir a condição antes do '?', será usada apenas se for verdadeira; se encontrar um '?' sem qualquer condição, irá entrar na última instância. Por exemplo: condição { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ } : Contentor de MathML. Pode ser usado para definir um contentor. É principalmente útil para lidar com as definições de operações condicionais. += > >= < <= : Comparações dos valores para 'igual', 'maior', 'maior ou igual', 'menor' ou 'menor ou igual', respectivamente + + +Agora poderá perguntar: para que interessa então o MathML? É simples: com ele, poderá usar funções como a cos(), sin(), outras funções trigonométricas, o sum() ou o product(). Não interessa o seu tipo. Poderá usar o plus(), times() e tudo o que tiver o seu operador. As funções booleanas estão também implementadas, pelo que poderá fazer algo do género 'or(1,0,0,0,0)'. + + + + +Usar a Calculadora +A calculadora do &kalgebra; é útil como uma calculadora com esteróides. O utilizador poderá introduzir expressões para avaliar no modo Calcular ou Avaliar, dependendo da selecção do menu Calculadora. +No modo de avaliação, o &kalgebra; simplifica a expressão ou tenta simplificá-la quando vê uma variável não definida. No modo de cálculo, o &kalgebra; calcula tudo e, se encontrar uma variável não definida, da um erro. +Para além de mostrar as equações introduzidas pelo utilizador e os resultados na área da Calculadora, todas as variáveis declaradas são apresentadas numa área persistente à direita. Ao fazer duplo-click sobre uma variável, poderá ver uma janela que lhe permite alterar os seus valores (apenas uma forma de enganar o registo). + +A variável "ans" é especial; sempre que introduzir uma expressão, o valor da variável "ans" será alterado para o último resultado. + +As funções seguintes são exemplos que poderão ser introduzidos no campo de texto da janela da calculadora: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +Segue-se uma imagem da janela da calculadora depois de introduzir as expressões de exemplo acima: + +Imagem da janela da calculadora do &kalgebra; com expressões de exemplo + + + + + + Janela da calculadora do &kalgebra; + + + + + +Um utilizador poderá controlar a execução de uma série de cálculos com as opções do menu Calculadora: + + + + +&Ctrl; L CalculadoraCarregar um Programa +Executa as instruções de forma sequencial a partir de um ficheiro. É bom se quiser definir algumas bibliotecas ou prosseguir trabalho anterior. + + + +&Ctrl; GCalculadoraGravar o Programa +Grava as instruções que escreveu desde o início da sessão, para as poder reutilizar. Gera ficheiros de texto, de modo a serem fáceis de alterar com qualquer editor de texto, como o Kate. + + + +&Ctrl; SCalculadoraExportar o Registo +Grava o registo num ficheiro em &HTML;, para poder imprimi-lo ou publicá-lo. + + + + + + + +Gráficos 2D +Para adicionar um novo gráfico 2D ao &kalgebra;, o que tem a fazer é ir à página de Gráficos 2D e carregar no botão para Adicionar a função nova. Depois, ficará activo o campo de texto onde poderá escrever a sua função. + + +Sintaxe +Se quiser usar uma função típica f(x), não é necessário defini-la; mas se quiser uma função f(y) ou uma função polar, terá de adicionar o 'y' e o 'q' como variáveis-fronteira. + +Exemplos: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Se tiver introduzido a função, carregue no botão OK para mostrar o gráfico na janela principal. + + + + +Características +Poderá ter vários gráfico na mesma janela. Basta usar o botão Adicionar quando estiver no modo de Lista. Poderá atribuir a cada gráfico a sua própria cor. + +A janela poderá ser ampliada e movida com o rato. Se usar o rato, poderá ampliar e reduzir a mesma. Poderá também seleccionar uma área com o botão esquerdo do rato, ficando apenas esta área ampliada. Mova a vista com as teclas dos cursores. + + + A área de visualização dos gráficos 2D pode ser definida de forma explícita com a página Área de Visualização numa secção de Gráfico 2D. + + +Na página Lista, poderá abrir uma secção de Edição para editar ou remover uma função com duplo-click e marcar ou desmarcar a opção a seguir ao nome da função para a mostrar ou esconder. +No menu do Gráfico 2D, poderá encontrar estas opções: + +Mostrar ou esconder a grelha +Manter as proporções ao ampliar +Ampliar (&Ctrl; +) e reduzir (&Ctrl; -) +Gravar (&Ctrl; S) o gráfico como um ficheiro de imagem +Repor a janela com o nível de ampliação original +Seleccionar uma resolução para os gráficos + + +Em baixo, está uma imagem de um utilizador cujo cursor está na parte mais à direita da função, 'sin(1/x)'. O utilizador que a desenhou usou uma resolução bastante fina para criar este grafo (dado que oscila em altas frequências, perto da origem). Existe também um cursor dinâmico onde poderá mover o seu cursor para um ponto, para que lhe mostre os valores de X e Y no canto inferior esquerdo do ecrã. Também é desenhada uma "linha tangente" na função, no local em que se encontra o cursor. + + +Aqui está uma imagem da janela de gráficos 2D do &kalgebra; + + + + + + Janela de gráficos 2D do &kalgebra; + + + + + + + + + + +Gráficos 3D + +Para desenhar um Gráfico 3D com o &kalgebra;, terá de ir à página de Gráficos 3D, onde irá ver um campo de texto no fundo que será usado para introduzir a sua função. O Z ainda não pode ser definido; de momento, o &kalgebra; só suporta funções implícitas que dependam apenas do 'x' e 'y', como por exemplo (x,y)->x*y, onde o z=x*y. + +Exemplos: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +A janela poderá ser ampliada e movida com o rato. Se usar o rato, poderá ampliar e reduzir a mesma. Mantenha o &LMB; carregado e mova o rato para rodar o gráfico. + + As teclas de cursores para a esquerda e direita rodam o gráfico em torno do eixo dos Z, enquanto as teclas para cima e para baixo rodam em torno do eixo horizontal da janela. Carregue em W para ampliar o gráfico e em S para o reduzir. + +No menu Gráfico 3D, poderá encontrar estas opções: + + +Gravar (&Ctrl; S) o gráfico como um ficheiro de imagem +Repor a janela com o nível de ampliação original no menu de gráficos 3D +Poderá desenhar os gráficos com pontos, linhas ou preenchimentos no menu de gráficos 3D + + +Por baixo, encontra-se uma imagem da função "sombrero". Este gráfico em particular é apresentado com o estilo de linha dos gráficos 3D. + + +Aqui está uma imagem da janela de gráficos 3D do &kalgebra; + + + + + + Janela de gráficos 3D do &kalgebra; + + + + + + + +Dicionário + +O dicionário é uma colecção de todas as funções incorporadas e disponíveis no &kalgebra;. Pode ser útil para verificar para que serve uma dada operação e para saber quantos parâmetros uma função necessita. É um local útil para descobrir as diversas capacidades do &kalgebra;. + + Por baixo, encontra-se uma pesquisa no dicionário do &kalgebra; pela função 'cosine' (co-seno). + + +Aqui está uma imagem da janela do dicionário do &kalgebra; + + + + + + Janela do dicionário do &kalgebra; + + + + + + + +&commands; + + +Créditos e Licença + + +Programa com 'copyright' 2005-2009 de &Aleix.Pol; + + + +Documentação com 'copyright' 2007 de &Aleix.Pol; &Aleix.Pol.mail; + +Tradução de José Nuno Pires zepires@gmail.com +&underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/pt/kalgebra.po b/po/pt/kalgebra.po new file mode 100644 index 0000000..66f6d68 --- /dev/null +++ b/po/pt/kalgebra.po @@ -0,0 +1,435 @@ +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-15 19:10+0100\n" +"Last-Translator: José Nuno Coelho Pires \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-POFile-SpellExtra: Gonzalez geq gt XOR leq Aleix kal Pol abs ms neq eq\n" +"X-POFile-SpellExtra: Coseno aprox otherwise lt ceil floor Percy Aucahuasi\n" +"X-POFile-SpellExtra: Triveño KAlgebra STL stl\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opções: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Colar o \"%1\" ao texto introduzido" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Colar no Texto Introduzido" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Erro: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importado: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Erro: Não foi possível carregar o %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informação" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Adicionar/Editar uma função" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Antevisão" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "De:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Até:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opções" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Remover" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "As opções que indicou não estão correctas" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "O limite inferior não pode ser maior que o superior" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Gráfico 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Gráfico 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sessão" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variáveis" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calculadora" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "C&alculadora" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Carregar um Programa..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Programas Recentes" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Gravar o Programa..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exportar o Registo..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Inserir a resposta..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Modo de Execução" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calcular" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Avaliar" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funções" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Adicionar" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Visualizador" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Gráfico &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Gráfico 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Grelha" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Man&ter as Proporções" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolução" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Baixa" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Elevada" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Muito Elevada" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Gráfico &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Gráfico 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Repor a Janela" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Pontos" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linhas" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Sólido" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operações" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Dicionário" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Procurar por:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Edição" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Escolha um programa" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Programa (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Ficheiro HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Erros: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Seleccione onde colocar o gráfico desenhado" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Ficheiro de Imagem (*.png);;Ficheiro SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Pronto" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Adicionar uma variável" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Indique um nome para a variável nova" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Uma calculadora portátil" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "José Nuno Pires" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "zepires@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Adicionar/Editar uma variável" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Remover a Variável" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Editar o valor de '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "não disponível" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ERRADO" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Esquerda:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Topo:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Largura:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Altura:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Aplicar" diff --git a/po/pt/kalgebramobile.po b/po/pt/kalgebramobile.po new file mode 100644 index 0000000..911d490 --- /dev/null +++ b/po/pt/kalgebramobile.po @@ -0,0 +1,307 @@ +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2022-06-15 19:10+0100\n" +"Last-Translator: José Nuno Coelho Pires \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POFile-SpellExtra: Gonzalez KAlgebra Pol Aleix kal Edu\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calculadora" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, fuzzy, kde-format +#| msgid "Load Script" +msgctxt "@action:button" +msgid "Load Script" +msgstr "Carregar um Programa" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Programa (*.kal)" + +#: content/ui/Console.qml:72 +#, fuzzy, kde-format +#| msgid "Save Script" +msgctxt "@action:button" +msgid "Save Script" +msgstr "Gravar o Programa" + +#: content/ui/Console.qml:83 +#, fuzzy, kde-format +#| msgid "Export Log" +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exportar o Registo" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, fuzzy, kde-format +#| msgid "Evaluate" +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Avaliar" + +#: content/ui/Console.qml:94 +#, fuzzy, kde-format +#| msgid "Calculate" +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calcular" + +#: content/ui/Console.qml:100 +#, fuzzy, kde-format +#| msgid "Clear Log" +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Limpar o Registo" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Gráfico 2D" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Gráfico 3D" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copiar o \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, fuzzy, kde-format +#| msgid "Clear All" +msgctxt "@action:button" +msgid "Clear All" +msgstr "Limpar Tudo" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Expressão a calcular..." + +#: content/ui/Dictionary.qml:14 +#, fuzzy, kde-format +#| msgid "Dictionary" +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Dicionário" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nome:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Gráfico 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Gráfico 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tabelas de Valores" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variáveis" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Dicionário" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Acerca do KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, fuzzy, kde-format +#| msgid "2D Plot" +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Gráfico 2D" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Gravar" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Ver a Grelha" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Limpar a Área de Visualização" + +#: content/ui/Plot3D.qml:21 +#, fuzzy, kde-format +#| msgid "3D Plot" +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Gráfico 3D" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Resultados" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tabelas de valores" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Erros: O passo não pode ser igual a 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Erros: O início e o fim são iguais" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Erros: %1" + +#: content/ui/Tables.qml:52 +#, fuzzy, kde-format +#| msgid "Run" +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Executar" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Entrada" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "De:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Até:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Passo" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Executar" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Uma calculadora portátil" + +#: main.cpp:40 +#, fuzzy, kde-format +#| msgid "(C) 2006-2020 Aleix Pol i Gonzalez" +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2020 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "José Nuno Pires" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "zepires@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Móvel" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Uma calculadora científica simples" diff --git a/po/pt_BR/docs/kalgebra/commands.docbook b/po/pt_BR/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..8f9a707 --- /dev/null +++ b/po/pt_BR/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Comandos suportados pelo KAlgebra + plus + Nome: plus + Descrição: Adição + Parâmetros: plus(... parâmetros, ...) + Exemplo: x->x+2 + + times + Nome: times + Descrição: Multiplicação + Parâmetros: times(... parâmetros, ...) + Exemplo: x->x*2 + + minus + Nome: minus + Descrição: Subtração. Irá remover todos os valores do primeiro. + Parâmetros: minus(... parâmetros, ...) + Exemplo: x->x-2 + + divide + Nome: divide + Descrição: Divisão + Parâmetros: divide(par1, par2) + Exemplo: x->x/2 + + quotient + Nome: quotient + Descrição: Quociente + Parâmetros: quotient(par1, par2) + Exemplo: x->quotient(x, 2) + + power + Nome: power + Descrição: Potência + Parâmetros: power(par1, par2) + Exemplo: x->x^2 + + root + Nome: root + Descrição: Raiz + Parâmetros: root(par1, par2) + Exemplo: x->root(x, 2) + + factorial + Nome: factorial + Descrição: Fatorial. fatorial(n)=n! + Parâmetros: factorial(par1) + Exemplo: x->factorial(x) + + and + Nome: and + Descrição: 'E' booleano + Parâmetros: and(... parâmetros, ...) + Exemplo: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Nome: or + Descrição: 'ou' booleano + Parâmetros: or(... parâmetros, ...) + Exemplo: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Nome: xor + Descrição: 'ou exclusivo' booleano + Parâmetros: xor(... parâmetros, ...) + Exemplo: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Nome: not + Descrição: 'não' booleano + Parâmetros: not(par1) + Exemplo: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Nome: gcd + Descrição: Máximo divisor comum + Parâmetros: gcd(... parâmetros, ...) + Exemplo: x->gcd(x, 3) + + lcm + Nome: lcm + Descrição: Mínimo múltiplo comum + Parâmetros: lcm(... parâmetros, ...) + Exemplo: x->lcm(x, 4) + + rem + Nome: rem + Descrição: Resto + Parâmetros: rem(par1, par2) + Exemplo: x->rem(x, 5) + + factorof + Nome: factorof + Descrição: O fator de + Parâmetros: factorof(par1, par2) + Exemplo: x->factorof(x, 3) + + max + Nome: max + Descrição: Máximo + Parâmetros: max(... parâmetros, ...) + Exemplo: x->max(x, 4) + + min + Nome: min + Descrição: Mínimo + Parâmetros: min(... parâmetros, ...) + Exemplo: x->min(x, 4) + + lt + Nome: lt + Descrição: Menor que. lt(a,b)=a<b + Parâmetros: lt(par1, par2) + Exemplo: x->piecewise { x<4 ? 1, ? 0 } + + gt + Nome: gt + Descrição: Maior que. gt(a,b)=a>b + Parâmetros: gt(par1, par2) + Exemplo: x->piecewise { x>4 ? 1, ? 0 } + + eq + Nome: eq + Descrição: Igual. eq(a,b) = a=b + Parâmetros: eq(par1, par2) + Exemplo: x->piecewise { x=4 ? 1, ? 0 } + + neq + Nome: neq + Descrição: Diferente. neq(a,b)=a≠b + Parâmetros: neq(par1, par2) + Exemplo: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Nome: leq + Descrição: Menor ou igual. leq(a,b)=a≤b + Parâmetros: leq(par1, par2) + Exemplo: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Nome: geq + Descrição: Maior ou igual. geq(a,b)=a≥b + Parâmetros: geq(par1, par2) + Exemplo: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Nome: implies + Descrição: Implicação booleana + Parâmetros: implies(par1, par2) + Exemplo: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Nome: approx + Descrição: Aproximação. approx(a)=a±n + Parâmetros: approx(par1, par2) + Exemplo: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Nome: abs + Descrição: Valor absoluto. abs(n)=|n| + Parâmetros: abs(par1) + Exemplo: x->abs(x) + + floor + Nome: floor + Descrição: Valor por defeito. floor(n)=⌊n⌋ + Parâmetros: floor(par1) + Exemplo: x->floor(x) + + ceiling + Nome: ceiling + Descrição: Valor por excesso. ceil(n)=⌈n⌉ + Parâmetros: ceiling(par1) + Exemplo: x->ceiling(x) + + sin + Nome: sin + Descrição: Função para calcular o seno de um determinado ângulo + Parâmetros: sin(par1) + Exemplo: x->sin(x) + + cos + Nome: cos + Descrição: Função para calcular o cosseno de um dado ângulo + Parâmetros: cos(par1) + Exemplo: x->cos(x) + + tan + Nome: tan + Descrição: Função para calcular a tangente de um dado ângulo + Parâmetros: tan(par1) + Exemplo: x->tan(x) + + sec + Nome: sec + Descrição: Secante + Parâmetros: sec(par1) + Exemplo: x->sec(x) + + csc + Nome: csc + Descrição: Co-secante + Parâmetros: csc(par1) + Exemplo: x->csc(x) + + cot + Nome: cot + Descrição: Co-tangente + Parâmetros: cot(par1) + Exemplo: x->cot(x) + + sinh + Nome: sinh + Descrição: Seno hiperbólico + Parâmetros: sinh(par1) + Exemplo: x->sinh(x) + + cosh + Nome: cosh + Descrição: Cosseno hiperbólico + Parâmetros: cosh(par1) + Exemplo: x->cosh(x) + + tanh + Nome: tanh + Descrição: Tangente hiperbólica + Parâmetros: tanh(par1) + Exemplo: x->tanh(x) + + sech + Nome: sech + Descrição: Secante hiperbólica + Parâmetros: sech(par1) + Exemplo: x->sech(x) + + csch + Nome: csch + Descrição: Co-secante hiperbólica + Parâmetros: csch(par1) + Exemplo: x->csch(x) + + coth + Nome: coth + Descrição: Cotangente hiperbólica + Parâmetros: coth(par1) + Exemplo: x->coth(x) + + arcsin + Nome: arcsin + Descrição: Arco-seno + Parâmetros: arcsin(par1) + Exemplo: x->arcsin(x) + + arccos + Nome: arccos + Descrição: Arco-cosseno + Parâmetros: arccos(par1) + Exemplo: x->arccos(x) + + arctan + Nome: arctan + Descrição: Arco-tangente + Parâmetros: arctan(par1) + Exemplo: x->arctan(x) + + arccot + Nome: arccot + Descrição: Arco-cotangente + Parâmetros: arccot(par1) + Exemplo: x->arccot(x) + + arccosh + Nome: arccosh + Descrição: Arco-cosseno hiperbólico + Parâmetros: arccosh(par1) + Exemplo: x->arccosh(x) + + arccsc + Nome: arccsc + Descrição: Arco-cossecante + Parâmetros: arccsc(par1) + Exemplo: x->arccsc(x) + + arccsch + Nome: arccsch + Descrição: Arco-cossecante hiperbólica + Parâmetros: arccsch(par1) + Exemplo: x->arccsch(x) + + arcsec + Nome: arcsec + Descrição: Arco-secante + Parâmetros: arcsec(par1) + Exemplo: x->arcsec(x) + + arcsech + Nome: arcsech + Descrição: Arco-secante hiperbólica + Parâmetros: arcsech(par1) + Exemplo: x->arcsech(x) + + arcsinh + Nome: arcsinh + Descrição: Arco-seno hiperbólico + Parâmetros: arcsinh(par1) + Exemplo: x->arcsinh(x) + + arctanh + Nome: arctanh + Descrição: Arco-tangente hiperbólica + Parâmetros: arctanh(par1) + Exemplo: x->arctanh(x) + + exp + Nome: exp + Descrição: Expoente (e^x) + Parâmetros: exp(par1) + Exemplo: x->exp(x) + + ln + Nome: ln + Descrição: Logaritmo de base-e + Parâmetros: ln(par1) + Exemplo: x->ln(x) + + log + Nome: log + Descrição: Logaritmo de base-10 + Parâmetros: log(par1) + Exemplo: x->log(x) + + conjugate + Nome: conjugate + Descrição: Conjugado + Parâmetros: conjugate(par1) + Exemplo: x->conjugate(x*i) + + arg + Nome: arg + Descrição: Argumento + Parâmetros: arg(par1) + Exemplo: x->arg(x*i) + + real + Nome: Parte real + Descrição: Real + Parâmetros: real(par1) + Exemplo: x->real(x*i) + + imaginary + Nome: imaginary + Descrição: Parte imaginária + Parâmetros: imaginary(par1) + Exemplo: x->imaginary(x*i) + + sum + Nome: sum + Descrição: Somatório + Parâmetros: sum(par1 : var=de..até) + Exemplo: x->x*sum(t*t:t=0..3) + + product + Nome: product + Descrição: Produtório + Parâmetros: product(par1 : var=de..até) + Exemplo: x->product(t+t:t=1..3) + + diff + Nome: diff + Descrição: Derivada + Parâmetros: diff(par1 : var) + Exemplo: x->(diff(x^2:x))(x) + + card + Nome: card + Descrição: Cardinalidade + Parâmetros: card(par1) + Exemplo: x->card(vector { x, 1, 2 }) + + scalarproduct + Nome: scalarproduct + Descrição: Produto escalar + Parâmetros: scalarproduct(... parâmetros, ...) + Exemplo: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Nome: selector + Descrição: Seleciona o par1-ésimo elemento da lista ou vetor 'par2' + Parâmetros: selector(par1, par2) + Exemplo: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Nome: union + Descrição: Junta vários itens do mesmo tipo + Parâmetros: union(... parâmetros, ...) + Exemplo: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Nome: forall + Descrição: Para todos + Parâmetros: forall(par1 : var) + Exemplo: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Nome: exists + Descrição: Existe + Parâmetros: exists(par1 : var) + Exemplo: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Nome: map + Descrição: Aplica uma função para cada elemento em uma lista + Parâmetros: map(par1, par2) + Exemplo: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Nome: filter + Descrição: Remove todos os elementos que não corresponde a uma condição + Parâmetros: filter(par1, par2) + Exemplo: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Nome: transpose + Descrição: Transpose + Parâmetros: transpose(par1) + Exemplo: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/pt_BR/docs/kalgebra/index.docbook b/po/pt_BR/docs/kalgebra/index.docbook new file mode 100644 index 0000000..6b5c526 --- /dev/null +++ b/po/pt_BR/docs/kalgebra/index.docbook @@ -0,0 +1,730 @@ + + + + + + +]> + + + + +Manual do &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+Luiz FernandoRanghetti
elchevive@opensuse.org
Tradução
André MarceloAlvarenga
alvarenga@kde.org
Tradução
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +19/04/2016 +0.10 (Applications 16.04) + + +&kalgebra; é um aplicativo que pode substituir a sua calculadora gráfica. Ele tem funcionalidades numéricas, lógicas, simbólicas e analíticas que lhe permitem calcular expressões matemáticas e desenhar graficamente os resultados em 2D ou 3D. O &kalgebra; é baseado na Mathematical Markup Language (MathML). Entretanto, não é preciso conhecer o MathML para usar o &kalgebra;. + + + +KDE +kdeedu +gráfico +matemática +2D +3D +mathML + + +
+ + +Introdução + +O &kalgebra; tem diversas funcionalidades que permitem ao usuário efetuar todos os tipos de operações matemáticas e mostrá-las de forma gráfica. No passado, este programa foi orientado para o MathML. Agora ele pode ser usado por todos os que tenham algum conhecimentos de matemática para resolver problemas simples e avançados. + +Ele inclui algumas funcionalidades como por exemplo: + + + +Uma calculadora para avaliar funções matemáticas de maneira fácil e rápida. +Capacidades de programação para séries avançadas de cálculos +Capacidades da linguagem que incluem a definição de funções e a completação automática da sintaxe. +As funções de cálculo incluem o cálculo simbólico de derivadas, o cálculo vetorial e a manipulação de listas. +Gráficos de funções com cursores dinâmicos para a descoberta gráfica de raízes e outros tipos de análises. +Gráficos 3D para visualizações úteis de funções em 3D. +Um dicionário de operadores incorporado para uma referência rápida das funções disponíveis. + + +Aqui está uma imagem do &kalgebra; em ação: + + +Aqui está uma captura de tela da janela principal do &kalgebra; + + + + + + Janela principal do &kalgebra; + + + + +Quando o usuário inicia uma sessão do &kalgebra;, é apresentada uma única janela que consiste em uma aba de Calculadora, uma aba Gráfico 2D e outra Gráfico 3D, assim como uma aba de Dicionário. Em cada uma destas abas, você encontrará um campo de texto onde poderá digitar as suas funções ou fazer os seus cálculos e também um campo de visualização que apresenta os resultados. + +Em qualquer tempo, o usuário poderá gerenciar a sua sessão com as opções do menu Sessão: + + + + +&Ctrl; N SessãoNovo +Abre uma nova janela do &kalgebra;. + + + +&Ctrl;&Shift; F SessãoModo tela inteira +Alterna a janela do &kalgebra; para o modo em tela inteira. Também é possível usar este modo com o botão na parte superior à direita na janela do &kalgebra;. + + + +&Ctrl; Q SessãoSair +Encerra o programa. + + + + + + + +Sintaxe +O &kalgebra; usa uma sintaxe algébrica intuitiva para introduzir as funções do usuário, semelhante a que é usada nas calculadoras gráficas modernas. Esta seção apresenta os operadores fundamentais que estão disponíveis no &kalgebra;. O autor do &kalgebra; modelou esta sintaxe com base no Maxima e no Maple para que os usuários possam se familiarizar com estes programas. + +Para os usuários que estejam interessados no funcionamento interno do &kalgebra;, as expressões introduzidas pelo usuário são convertidas para MathML pela infraestrutura. Uma compreensão rudimentar das capacidades suportadas pelo MathML dará um grande avanço sobre as capacidades internas do &kalgebra;. + +Aqui está uma lista dos operadores disponíveis que temos até agora: + ++ - * / : Soma, subtração, multiplicação e divisão. +^, **: Potência, você poderá usar qualquer um deles. Também é possível usar os caracteres unicode ². As potências também são uma forma de calcular raízes, como pode ser feito em a**(1/b) +-> : lambda. É a forma de indicar uma ou mais variáveis livres que serão associadas a uma função. Por exemplo, na expressão comprimento:=(x,y)->(x*x+y*y)^0.5, o operador 'lambda' é usado para definir que o 'x' e o 'y' serão preenchidos quando for usada a função 'comprimento'. +x=a..b : Isto é usado quando é necessário definir um intervalo [variável +limite-superior + limite-inferior). Isto significa que o 'x' vai de 'a' a 'b'. +() : É usado para especificar uma maior prioridade. +abc(parâmetros) : Funções. Quando o processador encontrar uma função, verifica se o 'abc' é um operador. Se for, será tratado como tal; se não for, será tratado como uma função do usuário. +:= : Definição. É usada para definir o valor de uma variável. Você poderá fazer coisas do tipo x:=3, x:=y, sendo que o y pode ser definido ou não, ou ainda perímetro:=r->2*pi*r. +? : Definição de condições. Esta é a forma de definir operações condicionais no &kalgebra;. Dito de outra forma, esta é uma maneira de especificar uma condição if, elseif, else. Se introduzir a condição antes do ?, será usada apenas se for verdadeira; se encontrar um ? sem qualquer condição, irá entrar na última instância. Por exemplo: condição { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ } : Contenedor MathML. Pode ser usado para definir um contenedor. É principalmente útil para lidar com as definições de operações condicionais. += > >= < <= : Comparações dos valores para 'igual', 'maior', 'maior ou igual', 'menor' ou 'menor ou igual', respectivamente + + +Agora poderá perguntar: para que interessa então o MathML? É simples: com ele, poderá usar funções como cos(), sin(), outras funções trigonométricas, o sum() ou o product(). Não interessa o seu tipo. Poderá usar o plus(), times() e tudo o que tiver o seu operador. As funções booleanas estão também implementadas, pelo que poderá fazer algo do gênero 'or(1,0,0,0,0)'. + + + + +Usando a calculadora +A calculadora do &kalgebra; é útil como uma calculadora com esteroides. O usuário poderá introduzir expressões para avaliar no modo Calcular ou Avaliar, dependendo da seleção do menu Calculadora. +No modo de avaliação, o &kalgebra; simplifica a expressão, mesmo quando vê uma variável não definida. O modo de cálculo do &kalgebra; calcula tudo e, se encontrar uma variável não definida, apresenta um erro. +Além de mostrar as equações introduzidas pelo usuário e os resultados na área da Calculadora, todas as variáveis declaradas são apresentadas em uma área persistente à direita. Ao clicar duas vezes sobre uma variável, você poderá ver uma janela que lhe permite alterar os seus valores (apenas uma forma de enganar o registro). + +A variável "ans" é especial. Sempre que introduzir uma expressão, o valor da variável "ans" será alterado para o último resultado. + +As funções seguintes são exemplos que podem ser introduzidos no campo de texto da janela da calculadora: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +Segue-se uma imagem da janela da calculadora depois de introduzir as expressões de exemplo acima: + +Imagem da janela da calculadora do &kalgebra; com expressões de exemplo + + + + + + Janela da calculadora do &kalgebra; + + + + + +Um usuário poderá controlar a execução de uma série de cálculos usando as opções do menu Calculadora: + + + + +&Ctrl; L CalculadoraCarregar script +Executa as instruções de forma sequencial a partir de um arquivo. Útil se você quiser definir algumas bibliotecas ou terminar algum trabalho anterior. + + + +&Ctrl; G CalculadoraSalvar script +Salva as instruções que escreveu desde o início da sessão, para poder reutilizá-las. Gera arquivos de texto, de modo a serem fáceis de alterar com qualquer editor de texto, como o Kate. + + + +&Ctrl; S CalculadoraExportar registro +Salva o registro com todos os resultados em um arquivo &HTML;, para poder ser impresso ou publicado. + + + + + + + +Gráficos 2D +Para adicionar um novo gráfico 2D no &kalgebra;, selecione a aba Gráfico 2D e clique na aba Adicionar para adicionar uma nova função. Depois, o seu foco irá para um campo de texto onde você poderá escrever a sua função. + + +Sintaxe +Se quiser usar uma função típica f(x), não é necessário especificá-la; mas se quiser uma função f(y) ou uma função polar, terá de adicionar y-> e q-> como variáveis de fronteira. + +Exemplos: + +sen(x) +x² +y->sen(y) +q->3*sen(7*q) +t->vector{sin t, t**2} + +Se você tiver digitado a função, clique no botão OK para mostrar o gráfico na janela principal. + + + + +Recursos +Você poderá ter vários gráfico na mesma janela. Basta usar o botão Adicionar quando estiver no modo de lista. Você poderá atribuir a cada gráfico a sua própria cor. + +A janela poderá ser ampliada e movida com o mouse. Usando a roda do mouse você poderá ampliar e reduzir a mesma. Poderá também selecionar uma área com o botão esquerdo do mouse, ficando apenas esta área ampliada. Mova a visão com as teclas de seta. + + + A área de visualização dos gráficos 2D pode ser definida de forma explícita usando a aba Visualizador dentro da aba Gráfico 2D. + + +Na aba Lista, você pode abrir uma aba de Edição para editar ou remover uma função com clique duplo e marcar ou desmarcar a opção após o nome da função para a mostrar ou ocultá-la. +No menu do Gráfico 2D, você poderá encontrar estas opções: + +Exibe ou oculta a grade +Manter a taxa de proporção ao expandir +Ampliar (&Ctrl; +) e reduzir (&Ctrl; -) +Salva (&Ctrl; S) o gráfico como um arquivo de imagem +Restaurar a janela com o nível de ampliação original +Selecionar uma resolução para os gráficos + + +Abaixo está uma captura de tela de um usuário cujo cursor está na raiz mais à direita da função sin(1/x). O usuário que gerou o gráfico usou uma resolução muito precisa para criar o desenho (conforme ele oscila em frequências cada vez mais altas próximo a origem). Existe também uma funcionalidade de cursor ao vivo em qualquer lugar que você mova o cursor sobre um ponto. Ela mostra os valores x e y no canto inferior esquerdo da tela. Uma "linha tangente" ao vivo é plotada na função na localização do cursor atual. + + +Aqui está uma imagem da janela de gráfico 2D do &kalgebra; + + + + + + Janela de gráfico 2D do &kalgebra; + + + + + + + + + + +Gráficos 3D + +Para desenhar um gráfico 3D com o &kalgebra;, selecione a aba Gráficos 3D, onde irá ver um campo de texto na base que será usado para digitar a sua função. O Z ainda não pode ser definido. Por enquanto o &kalgebra; só suporta gráficos 3D que dependam explicitamente apenas de x e y, como por exemplo (x,y)->x*y, onde o z=x*y. + +Exemplos: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +A janela pode ser ampliada e movida com o mouse. Usando a roda do mouse você poderá ampliar e reduzir a mesma. Mantenha o &LMB; clicado e mova o mouse para rodar o gráfico. + + As teclas de cursores para a esquerda e direita giram o gráfico em torno do eixo Z, enquanto as teclas para cima e para baixo giram em torno do eixo horizontal da janela. Pressione a tecla W para ampliar o gráfico e em S para reduzi-lo. + +No menu Gráfico 3D, você irá encontrar estas opções: + + +Salva (&Ctrl; S) o gráfico como um arquivo de imagem +Restaurar a janela com o nível de ampliação original no menu de gráficos 3D +Você pode desenhar os gráficos com estilos de pontos, linhas ou sólido no menu de gráficos 3D + + +Abaixo está uma imagem do função chamada "sombrero". Este gráfico em particular é mostrado usando o estilo em linha de gráfico 3D. + + +Aqui está uma captura de tela da janela de gráfico 3D do &kalgebra; + + + + + + Janela de gráfico 3D do &kalgebra; + + + + + + + +Dicionário + +O dicionário fornece uma lista de todas as funções embutidas no &kalgebra;. Ele pode ser usada para encontrar a definição de uma operação e seus parâmetros de entrada. É um local útil para ir para encontrar os diversos recursos do &kalgebra;. + + Abaixo está uma captura de tela do dicionário do &kalgebra; procurando a função cosine. + + +Aqui está uma captura de tela da janela do dicionário do &kalgebra; + + + + + + Janela do dicionário do &kalgebra; + + + + + + + +&commands; + + +Créditos e licença + + +Direitos autorais do programa, 2005-2009 &Aleix.Pol; + + + +Direitos autorais da documentação 2007 &Aleix.Pol; &Aleix.Pol.mail; + +Tradução: Luiz Fernando Ranghetti elchevive@opensuse.org André Marcelo Alvarenga alvarenga@kde.org &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/pt_BR/docs/kalgebra/kalgebra-main-window.png b/po/pt_BR/docs/kalgebra/kalgebra-main-window.png new file mode 100644 index 0000000000000000000000000000000000000000..3c9a76d6bb36c757d0fef45110c55b15e3490b54 GIT binary patch literal 46236 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 uG0Wep4h%B${asiuL zC{~u<6kZ>IcsYa})G1D*zPyee}VLte|!vF;P!- zPYv`|fzy8+Hjth)B7z^X0i8^8@Bj57K>Y}qlHcb+r|bQ;VS$#&Teoojn@qU%X8)y4 zvJ)rV(Qhqt!sUQb&%aEUDh~Sc6Q%U!6My=$-hgXTii^VZMl*$A0^XT-iJgf|0;Ztb zv;?6_kfRiGs?7r?1?yDokTWwpP1@9pD79JIbH*xTy7k&aiF4sCxUVs|rAxLvJo> zGNgUizbUOp-ZbFKN`8}gj(6W(mo5#lGe4uGQWm!{Y1D+C{TR^aKronz_E?Wp=DbFb zWOvX!m9r5^0L%z_=$MMHJk0QXO(c(;ico_hHsB)WV%QM}29lc#hFxriE>MC9Y(Xg_ zk&BS3=t({KMD2XZ^>~CD-~k&a@&0yWP|@ViWIr7gFh%4sBZ(Uvz}B(V02X_v@==o? z9wsFtJYN`310JWvKq^TD_o_58B{ipD21+B&K^}6Pz_*Qyfbl>B`Hh$@iW$QUfL|Zk z*14XIDQRJ&wCl^0MtEvT=ocf2uv@$gZzkq4kv^`{5xlo{r>bJ)`%bB) zCAkElE^&SUoOjt09b>rRUGV1UUXIsp!_xszlpjV6RZMr^E&4rgnqR}d=`m;0r{q+< zUoLp(K zBF!U1Q~$C6Wndng zepALPwWVnPEH3LRX9u~$OdQG1L-*jIFNcVkt~OD(l?Mh7tj@M-E@sw`F1Gf#V%S0P zUNb~j+}>#p6~v$FBrz`*6-nQbWo20OO!iM!Cm5M#|1T3>`ocaXla~@zjQIk5maZ^b zcj(o`RQkVLaT9F$gMppApfj!AMYQL9Lrt;5R?^PfmFX ze9lq8DvAF&{?H7rDD05It5+5Q- zz)Vm=@^Xj6pM+&s4cS-k^zM8AW@l}){m$5PU?3B2p9}=-Q+hG0$ICfz*{71Zps~AW z^fBR_nM0x^75VZpQG6iF92RILb`x#YeWH0x_Qmyw4yUhh`wf}7OsShKcsV*B7tzoJ zm$2567EmoE^E%gE^`oR;@LqUb>?|kmr88W{TNE|&t(N*ZFVP{c5}|%c_7r%Lko@>* z$>PPzm1VbvE%K8JW=Qz-Xa1UvD}{L|hNxWH?!DwJ&8u>k8APrkjQ#QyCk|#nS7^!K zm$RjxUu+2O%>#Z&{8L)IR?szXbPN<9D9;W==hqo%j4@uK|r zPwltFvJ;hg99+nsKb(5EJ7X0*e9>@?1l~+Cuk!YrwJ(epqJ2|ZWQJmtIEZ|1#hOM( z*y5V;m-O`Nnw#In#r0{#ZtYB5O8a@$2wcbG-bX67!8gdW5pAZX1y$v_w6(PhDk}-M zZk5Cd*QhS6x1aKRtqTgDj#Q9KOK=@|ba!j5pvD?1IkK+YF^H4G2ewd=--a`3ZLm%3QLJO8e!qJ{%dW@sQM5CgXcCC*v{hRpb=g|1)p;I zk!aIy=xZ%N;djS>RacKrP3QZshqi4L`76RexE+}NG&Hdg!z?zhjIMNPOwrba$2e`D z?yp&`z{OiUc^$AjGE%lRZFXh%A)m(3cuk7$)^J)t-ujNIQ_7Q)xgB|3zwL(k)%Lh$ zO}a=`S?_nkCNha1U`Ua$-KBvx1C8d7( z!2DTed3h0iD$bCTy20n>$Io8I^*!V`axZ~H@enoJ4UeAUZo`58-Bcaj1UK7+Whc3d z+8a&-nb|Y_xgOIZil(L;@rxe=J3FbvZ99s8czyqYdUUvojgR_l{Av;}U*#McZjm0? zH?FngP%%1Ck+jzd zi29Y+U9DO)Nb)*iOY*#ck*X95We9k2CS#t{e{n=EKi`{dZCvTw9bfPc<1wVt+p06! zaj$C#s*2!frK@Tyv`Ylm0$ta45^V5G&y;q7mU!IpAM`_b*tp4Va$+B z_n?r)(0hH=tWwjv<57y8wpIRx1&gX!kHSoCNfwt3Z8pM0TVm+m3Wc|_czu;N?B=RH zn(XMv&M;7Y{TT#O79wm(n*j2=W-}am-cme}^L`IwPV19n78cJB<6PqN5O>#0X8!oi zb@7z(&AF;<*wlGyntP^+jh<5NY9?6u$ZF)M&u@iAAy2dW-eX@yuU3t)*$<`rmrE@5 zUny7dJb!7Y^0;VCPp~W-(eY{KwAsyuJ-M!z)=y7Y@iLJ}{TIKjFdA*sRV$B|`Fai)y?^^|>&Lhpuj~P0-cyAk7U_VuI~HrX zH-UQKL7vm|YrI|)ft$Y;woZc~DH`_M;5%7~&GP+V8J=!qQYEWs83v{hF@AihN>fwQ z9Y@Qvw{G3~ckuHB7uc;2qWu5!N930d=FdmaGa)4KF^IyG{6IN72`gLMN5e7@l=}Fo z(2fZ>e~>mO;2dmfBp!RLb-|PdLaw#D)MjLh;9=Acb+n>CV~m5&9hJ*Cm!2VQ4tkO?GeA0gV3#h4tPO_c4dhIS)0U5lB^XZTtP{x^usL^bO z3JMC|(gO16aO&#dIv;;1R$dDn{JF9ZmmGnOaMu%c;Urd19EU?gLI$MqUT62Jv8yB< zUXLvcBEZ}N`2G7`Olc(bKEt1@)1waWBVC9@j!LX+_$MEXEqDcgQ`^6P{;h%vc=l{$ zMDdscR-SkB%DrmENj-v3|EJRew9*nOx-30Dm3`ywKHoTrV{SP+H$BVFpEh8-YG5uB zd&|a}aQEvL1Gq`#qR+z<(o`46nJFeA*C5Q3LWY&Tazsb8<7f1K3*DMbKi>Y}Xqd|6 zTv(3j*_U$mGlMM0Q&agZwDvF@{?;qO@izT@QoLnT%u&-4!b$6aUhb%$ug~&?n_#9> zIJm=CE*RNgFu5P3fEJLMq$|376kVLApAa;sZL7wkTF|VaABOZB(`l&_&p|0&S5e%6 zfsbz4JyliQOTE1eETb*O83iw`YNYj9PSo1ken_lsg0R7rjYP)Gzh%r8@RO6mX zxZAsjOT2TTZqv#sC-6z&PM970af;dK_ZQVY3oK(?s!J`c z(4Skjf}7mrKzs!q&5~eyW?~5VE31PDone=p;iC*gkOf+lkqyr zr4eWiTwS~oro%}zIu@f@@06A8CRg&N{7i%K(@W(Z%Z23DVS&EA!DaULwVi`vt$q&+ zW!%e88K!Hmm&-8WlZ2)cKMqkxCPW=oDs_tLsrUAqBR8@Z-u;0wj*by|D#v-%W8-;dF;HTQ5;a_gpTxn**6-kXH4yr>Ca(IM3pak2)&HJc= z)?>Xx_`S)->~hmZX%m-`jar-$p5y2XsUh<)efM46hgQ~kac-?uk4>Msbibi3Y%P%2 zKHjOu~8A=;KQ6L3Iy7m;Y0CP(0*yV{Fs%y%FlXvzjb$a*wPYaHx4n8)?5oQ3_!vY z-}(q1VhW>u37oxYQ0mYc-4SUyx#*Ra+n8(71$G_VdWZGU`*5t>yWslx#;1Sgbvl@M zpdP^=iCfb2P+7r89%D9!}sD zBG3{7K99Zz-}qlG(}rb$hw;kAz_$yy>J@f}o(m`q7Cy!Z4zToW51bSxJRl?Po0Myg z(BZsi0@@li+Ywu(F{!79nJ!p!1Gt8e+Le#2%r-i>tM%b5vEqJJRo4$v&i;~Yv^~(* zpEE%F|-+d$+IbLqiTotH;Bgyq^rJI z$T%vtY_@&Uda3rn9*GQm^4 Rtl$`Q@w~2j-dX&;{|C1GTmt|A literal 0 HcmV?d00001 diff --git a/po/pt_BR/kalgebra.po b/po/pt_BR/kalgebra.po new file mode 100644 index 0000000..88ca685 --- /dev/null +++ b/po/pt_BR/kalgebra.po @@ -0,0 +1,442 @@ +# Translation of kalgebra.po to Brazilian Portuguese +# Copyright (C) 2007-2018 This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Diniz Bortolotto , 2007. +# Eliana Megumi Habiro Boaglio , 2008. +# André Marcelo Alvarenga , 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2018. +# Luiz Fernando Ranghetti , 2009, 2010, 2017, 2022. +# Marcus Vinícius de Andrade Gama , 2010. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-22 16:16-0300\n" +"Last-Translator: Luiz Fernando Ranghetti \n" +"Language-Team: Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 21.12.3\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opções: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Colar \"%1\" na entrada" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Colar na entrada" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Erro: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importado: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Erro: Não foi possível carregar o %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informações" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Adicionar/editar uma função" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Visualizar" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "De:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Para:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opções" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Remover" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "As opções que você especificou não estão corretas" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "O limite inferior não pode ser maior que o superior" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Gráfico em 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Gráfico em 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sessão" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variáveis" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Calculadora" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "C&alculadora" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Carregar script..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Scripts recentes" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Salvar script..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exportar log..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Inserir a resposta..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Modo de execução" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calcular" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Avaliar" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funções" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Adicionar" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Visualizador" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Gráfico &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Gráfico 2&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Grade" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Manter a taxa de proporção" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Resolução" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Baixa" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Elevada" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Muito elevada" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Gráfico &3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Gráfico 3D" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Reiniciar visualização" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Pontos" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linhas" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Sólido" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operações" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Dicionário" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Procurar por:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Edição" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Escolha um script" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Arquivo HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Erros: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Selecione onde colocar o gráfico desenhado" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Arquivo de imagem (*.png);;Arquivo SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Pronto" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Adicionar variável" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Digite o nome da nova variável" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Uma calculadora portátil" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "André Marcelo Alvarenga" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "alvarenga@kde.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Adicionar/editar uma variável" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Remover variável" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Editar o valor de '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "não disponível" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ERRADO" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Esquerda:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Superior:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Largura:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Altura:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Aplicar" diff --git a/po/pt_BR/kalgebramobile.po b/po/pt_BR/kalgebramobile.po new file mode 100644 index 0000000..fcd0619 --- /dev/null +++ b/po/pt_BR/kalgebramobile.po @@ -0,0 +1,325 @@ +# Translation of kalgebramobile.po to Brazilian Portuguese +# Copyright (C) 2018 This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Luiz Fernando Ranghetti , 2018, 2019, 2020, 2021, 2022, 2023, 2024. +# André Marcelo Alvarenga , 2018. +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-01-11 20:53-0300\n" +"Last-Translator: Luiz Fernando Ranghetti \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 22.12.3\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Calculadora" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Carregar script" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Salvar script" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exportar log" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Avaliar" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Calcular" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Limpar log" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Gráfico 2D" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Gráfico 3D" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Copiar \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Limpar histórico do console" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Adicionar" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Limpar tudo" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Fechar janela" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Remover gráfico" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Nenhum gráfico disponível" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Expressão a calcular..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Dicionário" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Nome:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Gráfico 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Gráfico 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tabelas de valores" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variáveis" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Dicionário" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Sobre o KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Gráfico 2D" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Salvar" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Exibir grade" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Limpar a área de visualização" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Gráfico 3D" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Resultados" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tabelas de valores" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Erros: O passo não pode ser 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Erros: O início e fim são os mesmos" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Erros: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Executar" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Entrada" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "De:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Para:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Passo" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Executar" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Uma calculadora portátil" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Mantenedor" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Luiz Fernando Ranghetti, André Marcelo Alvarenga" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "elchevive@opensuse.org, alvarenga@kde.org" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra móvel" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Uma calculadora científica simples" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "O KAlgebra é oferecido pela comunidade adorável que é o KDE e o KDE Edu a partir " +#~ "de um ambiente de Software Livre." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "Se quiser aprender mais sobre o KAlgebra, você poderá encontrar mais " +#~ "informações na página oficial e na Wiki dos usuários.
Se tiver algum problema com o " +#~ "aplicativo nos informe através do nosso " +#~ "sistema de registo de erros." diff --git a/po/ro/kalgebra.po b/po/ro/kalgebra.po new file mode 100644 index 0000000..3afe3f0 --- /dev/null +++ b/po/ro/kalgebra.po @@ -0,0 +1,1069 @@ +# Traducerea kalgebra.po în Română +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Sergiu Bivol , 2008, 2012. +# Carla Boczor , 2010. +# Victor Cărbune , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2012-12-23 12:05+0200\n" +"Last-Translator: Sergiu Bivol \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Opțiuni: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Lipește \"%1\" in partea de intrare " + +#: consolemodel.cpp:95 +#, fuzzy, kde-format +#| msgid "Paste \"%1\" to input" +msgid "Paste to Input" +msgstr "Lipește \"%1\" in partea de intrare " + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Eroare: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, fuzzy, kde-format +#| msgid "
    Error: Could not load %1
" +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Eroare:Nu se poate incărca %1
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informație" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Adăugare/editare funcție" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Previzualizare" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "De la:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Către:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Opțiuni " + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, fuzzy, kde-format +#| msgid "Remove '%1'" +msgctxt "@action:button" +msgid "Remove" +msgstr "Elimină „%1”" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Opțiunile specificate nu sunt corecte" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Limita inferioară nu poate fi mai mare decat cea superioară" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Schița 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Schița 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sesiune" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variabile" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "Calculează" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "Calculează" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Încarcă Script..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Scripturi recente" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Salvează Scriptul..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exportează Înregistrarea" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Mod de execuție" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Calculează" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Evaluează" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funcții" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Listă" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Adăugare" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Fereastră de vizualizare" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "Grafic &2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Grafic 3&D" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Grilă" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Păstrează raportul de aspect" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Rezoluție" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Slabă" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normală" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Bună" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Foarte bună" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D Grafic" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &Grafic" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Resetați vizionarea " + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Puncte" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linii" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Solid" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operații" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Dicționar" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Caută:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Editare" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Alegeți un script " + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Script (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Fișier HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +#| msgid "Error: %1" +msgid "Errors: %1" +msgstr "Eroare: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Fișier Imagine\n" +"*.svg|Fișier SVG" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Gata" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Adaugă variabilă" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Introduceți numele variabilei noi " + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "Un calculator" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2010 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2010 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Adaugă/Editează o variabilă" + +#: varedit.cpp:40 +#, fuzzy, kde-format +#| msgid "Variables" +msgid "Remove Variable" +msgstr "Variabile" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Editeaza valoarea '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "indisponibil" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "Greșit" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Stânga:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Sus:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Lățime:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Înălțime:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Aplică" + +#~ msgid "C&onsole" +#~ msgstr "C&onsolă" + +#~ msgid "&Console" +#~ msgstr "&Consolă" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "S-a dezvoltat proprietatea de a desena curbe implicite.Îmbunătățire " +#~ "pentru trasarea funcțiilor." + +#~ msgid "Formula" +#~ msgstr "Formula" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Eroare: Tip de funcție greșit" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Gata: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Eroare: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Curăță" + +#~ msgid "*.png|PNG File" +#~ msgstr " *.png|Fișier PNG" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Transparența" + +#~ msgid "Type" +#~ msgstr "Tip" + +#~ msgid "Result: %1" +#~ msgstr "Rezultat: %1" + +#~ msgid "To Expression" +#~ msgstr "În expresie" + +#~ msgid "To MathML" +#~ msgstr "În MathML" + +#~ msgid "Simplify" +#~ msgstr "Reducere" + +#~ msgid "Examples" +#~ msgstr "Exemple" + +#~ msgid "We can only draw Real results." +#~ msgstr "Putem desena numai rezultate reale." + +#~ msgid "The expression is not correct" +#~ msgstr "Expresie incorectă" + +#~ msgid "Function type not recognized" +#~ msgstr "Tipul funcției nerecunoscut" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Topul funcției incorect pentru funcții depinzând de %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Funcție implicită nedefinită in plan " + +#~ msgid "center" +#~ msgstr "centru" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Nume" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funcție" + +#~ msgid "%1 function added" +#~ msgstr "Funcția %1 adăugată" + +#~ msgid "Hide '%1'" +#~ msgstr "Ascunde „%1”" + +#~ msgid "Show '%1'" +#~ msgstr "Arată „%1”" + +#~ msgid "Selected viewport too small" +#~ msgstr "Fereastra de vizualizare alesă prea mică" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Descriere" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parametrii " + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Exemplu" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=de la..până la" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... parametrii, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Adunare" + +#~ msgid "Multiplication" +#~ msgstr "Înmultire" + +#~ msgid "Division" +#~ msgstr "Împartire" + +#~ msgid "Power" +#~ msgstr "La putere" + +#~ msgid "Remainder" +#~ msgstr "Rest" + +#~ msgid "Quotient" +#~ msgstr "Cât" + +#~ msgid "The factor of" +#~ msgstr "Factorul " + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "N factorial.factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funcție care calculeaza sinusul unui unghi dat" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funcție care calculează cosinusul unui unghi dat" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funcție care calculează tangenta unui unghi dat " + +#~ msgid "Secant" +#~ msgstr "Secantă" + +#~ msgid "Cosecant" +#~ msgstr "Cosecantă" + +#~ msgid "Cotangent" +#~ msgstr "Cotangentă" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Sinus hiperbolic" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Cosinus hiperbolic" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Tangentă hiperbolică" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Secantă hiperbolica" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Cosecantă hiperbolica" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Cotangentă hiperbolică" + +#~ msgid "Arc sine" +#~ msgstr "Arcsin" + +#~ msgid "Arc cosine" +#~ msgstr "Arccos" + +#~ msgid "Arc tangent" +#~ msgstr "Arctg" + +#~ msgid "Arc cotangent" +#~ msgstr "Arcctg" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Arctg hiperbolică" + +#~ msgid "Summatory" +#~ msgstr "Sumă" + +#~ msgid "Productory" +#~ msgstr "Produs" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "Normală" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "Listă" + +#~ msgid "Differentiation" +#~ msgstr "Diferență" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Arcsin hiperbolic" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Arccos hiperbolic" + +#~ msgid "Arc cosecant" +#~ msgstr "Arccosecant" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Arccosecant hiperbolic" + +#~ msgid "Arc secant" +#~ msgstr "Arcsecant" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Arcsecant hiperbolic" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Exponent (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Logaritm in baza e" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Logaritm in baza 10" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Valoare absoluta. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Partea întreagă=[n]" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "[x]+1" + +#~ msgid "Minimum" +#~ msgstr "Minim" + +#~ msgid "Maximum" +#~ msgstr "Maxim" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Mai mare. Mm(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr ": limite" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Valoare" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Trebuie specificată o operație corectă" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Identificator necunoscut: '%1'" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "" +#~ "Nu s-a putut găsi o alegere adecvata pentru o condiție din declarație." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Tip nesuportat pentru delimitare." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Limita inferioară este mai mare decat limita superioară" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Limită superioară sau inferioară incorecta. " + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Definit un ciclu de variabile" + +#~ msgid "The result is not a number" +#~ msgstr "Rezultatul nu este un număr" + +#~ msgid "Unknown token %1" +#~ msgstr "Caracteristică necunoscut %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 are nevoie de cel putin 2 parametrii" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 are nevoie de %2 parametrii" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Lipsește delimitarea pentru %1" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Limita neașteptată pentru '%1'" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 lipsește limita la '%2'" + +#~ msgid "Wrong declare" +#~ msgstr "Declarație greșită" + +#~ msgid "Empty container: %1" +#~ msgstr "Variabilă goala: %1 " + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Nu putem avea condiții decât in funcții cu ramuri." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Nu puteți avea două variabile cu același nume ca și '%1'." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Parametrul celălalt ar trebui sa fie ultimul" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 nu este o condiție adecvată in interiorul funcției cu ramuri." + +#~ msgid "We can only declare variables" +#~ msgstr "Putem declara numai variabile" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Putem avea numai variabile limitate" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Eroare la analizare: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Container necunoscut: %1 " + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Nu se poate codifica %1 valoare." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Operatorul %1 nu poate avea contexte derivate. " + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Elementul '%1' nu este operator " + +#~ msgid "Do not want empty vectors" +#~ msgstr "Nu sunt doriti vectori fără nici un element." + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Nu este acceptat/străin: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Se așteaptă %1 in loc de '%2'" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Lipsește paranteya dreapta " + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Paranteza dreaptă este dezaxată " + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Caracteristică neașteptată %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Caracteristică neașteptată %1" + +#, fuzzy +#~| msgid "Could not calculate a value %1" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Nu se poate calcula valoarea %1" + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "" +#~ "Sumă invalidă a paramerilor pentru '%2'.Ar trebui să fie 1 parametru." +#~ msgstr[1] "" +#~ "Sumă invalidă a paramerilor pentru '%2'.Ar trebui să fie %1 parametrii." +#~ msgstr[2] "" +#~ "Sumă invalidă a paramerilor pentru '%2'.Ar trebui să fie %1 parametrii." + +#~ msgid "Could not call '%1'" +#~ msgstr "Nu se poate denumi '%1'" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Nu se poate rezolva '%1'" + +#, fuzzy +#~| msgid "Enter a name for the new variable" +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Introduceți numele variabilei noi " + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Nu se poate determina tipul ramificațiilor" + +#, fuzzy +#~| msgid "Unexpected bounding for '%1'" +#~ msgid "Unexpected type" +#~ msgstr "Limita neașteptată pentru '%1'" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Nu se poate interschimba '%1' cu '%2'" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Caracteristică necunoscută %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Nu se poate calcula restul împărțirii cu 0." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Nu se pot calcula divizorii lui 0." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Nu se poate calcula cel mai mic multiplu comun a lui 0." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Nu se poate calcula valoarea %1" + +#~ msgid "Invalid index for a container" +#~ msgstr "Index invalid pentru un container" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Nu se pot face operații pe vectori de mărimi diferite." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Nu se poate calcula %1 al vectorului " + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Nu se poate calcula %1 al listei " + +#, fuzzy +#~| msgid "Could not calculate a value %1" +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Nu se poate calcula valoarea %1" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Nu se poate simplifica '%1' si '%2'." + +#~ msgid "Incorrect domain." +#~ msgstr "Domeniu de definiție incorect." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Funcția parametrica nu redă un vector " + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Este nevoie de un vector bidimensional" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Elementele funcției parametrice ar trebui sa fie scalare" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "Derivata %1 nu a fost implementată." + +#~| msgctxt "@title:column" +#~| msgid "Function" +#~ msgid "Subtraction" +#~ msgstr "Funcție" + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Nu se ințelege valoarea reala : %1" + +#, fuzzy +#~| msgid "Error: %1" +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "Eroare: %1" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Eroare: Avem nevoie de valori pentru a desena un grafic" + +#~ msgid "Generating... Please wait" +#~ msgstr "Generare... Așteptați" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Salvează jurnalul" + +#, fuzzy +#~| msgid "We can only draw Real results." +#~ msgid "We can only call functions" +#~ msgstr "Putem desena numai rezultate reale." + +#~ msgid "%1" +#~ msgstr "%1" diff --git a/po/ru/docs/kalgebra/commands.docbook b/po/ru/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..bada800 --- /dev/null +++ b/po/ru/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Команды, поддерживаемые KAlgebra + plus + Название: plus + Описание: сложение + Использование: plus(... параметры, ...) + Пример: x->x+2 + + times + Название: times + Описание: умножение + Использование: times(... параметры, ...) + Пример: x->x*2 + + minus + Название: minus + Описание: вычитание. Вычесть все значения из первого. + Использование: minus(... параметры, ...) + Пример: x->x-2 + + divide + Название: divide + Описание: деление + Использование: divide(... параметры, ...) + Пример: x->x/2 + + quotient + Название: quotient + Описание: частное + Использование: quotient(... параметры, ...) + Пример: x->quotient(x, 2) + + power + Название: power + Описание: степень + Использование: power(par1, par2) + Пример: x->x^2 + + root + Название: root + Описание: корень + Использование: root(par1, par2) + Пример: x->root(x, 2) + + factorial + Название: factorial + Описание: факториал. factorial(n)=n! + Использование: factorial(par1) + Пример: x->factorial(x) + + and + Название: and + Описание: логическое И + Использование: and(... параметры, ...) + Пример: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Название: or + Описание: логическое ИЛИ + Использование: or(... параметры, ...) + Пример: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Название: xor + Описание: логическое исключающее ИЛИ + Использование: xor(... параметры, ...) + Пример: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Название: not + Описание: логическое отрицание + Использование: not(par1) + Пример: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Название: gcd + Описание: наибольший общий делитель + Использование: gcd(... параметры, ...) + Пример: x->gcd(x, 3) + + lcm + Название: lcm + Описание: наименьшее общее кратное + Использование: lcm(... параметры, ...) + Пример: x->lcm(x, 4) + + rem + Название: rem + Описание: остаток от деления + Использование: rem(par1, par2) + Пример: x->rem(x, 5) + + factorof + Название: factorof + Описание: возвращает истину, если par1 делится на par2 без остатка + Использование: factorof(par1, par2) + Пример: x->factorof(x, 3) + + max + Название: max + Описание: возвращает максимальный из параметров + Использование: max(... параметры, ...) + Пример: x->max(x, 4) + + min + Название: min + Описание: возвращает минимальный из параметров + Использование: min(... параметры, ...) + Пример: x->min(x, 4) + + lt + Название: lt + Описание: если par1 меньше par2, возвращает истину. lt(a,b)=a<b + Использование: lt(par1, par2) + Пример: x->piecewise { x<4 ? 1, ? 0 } + + gt + Название: gt + Описание: если par1 больше par2, возвращает истину. gt(a,b)=a>b + Использование: gt(par1, par2) + Пример: x->piecewise { x>4 ? 1, ? 0 } + + eq + Название: eq + Описание: если par1 равно par2, возвращает истину. eq(a,b)=a=b + Использование: eq(par1, par2) + Пример: x->piecewise { x=4 ? 1, ? 0 } + + neq + Название: neq + Описание: если par1 не равно par2, возвращает истину. neq(a,b)=a≠b + Использование: neq(par1, par2) + Пример: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Название: leq + Описание: если par1 меньше или равно par2, возвращает истину. leq(a,b)=a⩽b + Использование: leq(par1, par2) + Пример: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Название: geq + Описание: если par1 больше или равно par2, возвращает истину. geq(a,b)=a⩾b + Использование: geq(par1, par2) + Пример: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Название: implies + Описание: логическое следование + Использование: implies(par1, par2) + Пример: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Название: approx + Описание: приблизительное сравнение. approx(a)=a±n + Использование: approx(par1, par2) + Пример: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Название: abs + Описание: абсолютное значение. abs(n)=|n| + Использование: abs(par1) + Пример: x->abs(x) + + floor + Название: floor + Описание: округление числа до ближайшего целого в меньшую сторону. floor(n)=⌊n⌋ + Использование: floor(par1) + Пример: x->floor(x) + + ceiling + Название: ceiling + Описание: округление числа до ближайшего целого в большую сторону. ceil(n)=⌈n⌉ + Использование: ceiling(par1) + Пример: x->ceiling(x) + + sin + Название: sin + Описание: функция для вычисления синуса данного угла + Использование: sin(par1) + Пример: x->sin(x) + + cos + Название: cos + Описание: функция для вычисления косинуса данного угла + Использование: cosin(par1) + Пример: x->cos(x) + + tan + Название: tan + Описание: функция для вычисления тангенса данного угла + Использование: tan(par1) + Пример: x->tan(x) + + sec + Название: sec + Описание: функция для вычисления секанса данного угла + Использование: sec(par1) + Пример: x->sec(x) + + csc + Название: csc + Описание: функция для вычисления косеканса данного угла + Использование: csc(par1) + Пример: x->csc(x) + + cot + Название: cot + Описание: функция для вычисления котангенса данного угла + Использование: cot(par1) + Пример: x->cot(x) + + sinh + Название: sinh + Описание: функция для вычисления гиперболического синуса данного угла + Использование: sinh(par1) + Пример: x->sinh(x) + + cosh + Название: cosh + Описание: функция для вычисления гиперболического синуса данного угла + Использование: cosh(par1) + Пример: x->cosh(x) + + tanh + Название: tanh + Описание: функция для вычисления гиперболического тангенса данного угла + Использование: tanh(par1) + Пример: x->tanh(x) + + sech + Название: sech + Описание: функция для вычисления гиперболического секанса данного угла + Использование: sech(par1) + Пример: x->sech(x) + + csch + Название: csch + Описание: функция для вычисления гиперболического секанса данного угла + Использование: csch(par1) + Пример: x->csch(x) + + coth + Название: coth + Описание: функция для вычисления гиперболического котангенса данного угла + Использование: coth(par1) + Пример: x->coth(x) + + arcsin + Название: arcsin + Описание: функция для вычисления арксинуса данного угла + Использование: arcsin(par1) + Пример: x->arcsin(x) + + arccos + Название: arccos + Описание: функция для вычисления арккосинуса данного угла + Использование: arccos(par1) + Пример: x->arccos(x) + + arctan + Название: arctan + Описание: функция для вычисления арктангенса данного угла + Использование: arctan(par1) + Пример: x->arctan(x) + + arccot + Название: arccot + Описание: функция для вычисления арккотангенса данного угла + Использование: arccot(par1) + Пример: x->arccot(x) + + arccosh + Название: arccosh + Описание: функция для вычисления гиперболического арккосинуса данного угла + Использование: arccosh(par1) + Пример: x->arccosh(x) + + arccsc + Название: arccsc + Описание: функция для вычисления арккосеканса данного угла + Использование: arccsc(par1) + Пример: x->arccsc(x) + + arccsch + Название: arccsch + Описание: функция для вычисления гиперболического арккосеканса данного угла + Использование: arccsch(par1) + Пример: x->arccsch(x) + + arcsec + Название: arcsec + Описание: функция для вычисления арксеканса данного угла + Использование: arcsec(par1) + Пример: x->arcsec(x) + + arcsech + Название: arcsech + Описание: функция для вычисления гиперболического арксеканса данного угла + Использование: arcsech(par1) + Пример: x->arcsech(x) + + arcsinh + Название: arcsinh + Описание: функция для вычисления гиперболического арксинуса данного угла + Использование: arcsinh(par1) + Пример: x->arcsinh(x) + + arctanh + Название: arctanh + Описание: функция для вычисления гиперболического арктангенса данного угла + Использование: arctanh(par1) + Пример: x->arctanh(x) + + exp + Название: exp + Описание: экспонента (e^x) + Использование: exp(par1) + Пример: x->exp(x) + + ln + Название: ln + Описание: натуральный логарифм + Использование: ln(par1) + Пример: x->ln(x) + + log + Название: log + Описание: десятичный логарифм + Использование: log(par1) + Пример: x->log(x) + + conjugate + Название: conjugate + Описание: сопряжение + Использование: conjugate(par1) + Пример: x->conjugate(x*i) + + arg + Название: arg + Описание: аргумент + Использование: arg(par1) + Пример: x->arg(x*i) + + real + Название: real + Описание: функция для вычисления действительной части комплексного числа + Использование: real(par1) + Пример: x->real(x*i) + + imaginary + Название: imaginary + Описание: функция для вычисления мнимой части комплексного числа + Использование: imaginary(par1) + Пример: x->imaginary(x*i) + + sum + Название: sum + Описание: сумматор + Использование: sum(par1 : перем=от..до) + Пример: x->x*sum(t*t:t=0..3) + + product + Название: product + Описание: произведение + Использование: product(par1 : перем=от..до) + Пример: x->product(t+t:t=1..3) + + diff + Название: diff + Описание: дифференцирование + Использование: diff(par1 : перем) + Пример: x->(diff(x^2:x))(x) + + card + Название: card + Описание: кардинальное число + Использование: card(par1) + Пример: x->card(vector { x, 1, 2 }) + + scalarproduct + Название: scalarproduct + Описание: скалярное произведение + Использование: scalarproduct(... параметры, ...) + Пример: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Название: selector + Описание: функция, равная одному из своих аргументов на всех наборах их значений + Использование: selector(par1, par2) + Пример: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Название: union + Описание: объединяет несколько объектов одного типа + Использование: union(... параметры, ...) + Пример: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Название: forall + Описание: для всех + Использование: forall(par1 : перем) + Пример: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Название: exists + Описание: существование + Использование: exists(par1 : перем) + Пример: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Название: map + Описание: применение функции к каждому элементу списка + Использование: map(par1, par2) + Пример: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Название: filter + Описание: удаление всех элементов, которые не соответствуют условию + Использование: filter(par1, par2) + Пример: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Название: transpose + Описание: транспонирование + Использование: transpose(par1) + Пример: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/ru/docs/kalgebra/index.docbook b/po/ru/docs/kalgebra/index.docbook new file mode 100644 index 0000000..708cfd0 --- /dev/null +++ b/po/ru/docs/kalgebra/index.docbook @@ -0,0 +1,985 @@ + + + + MathML"> + + +]> + + + + +Руководство пользователя &kalgebra; + + +AleixPol
&Aleix.Pol.mail;
+
+
+НиколайШафоростов
shaforostoff@kde.ru
Перевод на русский язык
МаксимВоробьёв
vmax0770@gmail.com
Дополнение и исправление перевода на русский язык
ОлесяГерасименко
translation-team@basealt.ru
Дополнение и исправление перевода на русский язык
МарияШикунова
translation-team@basealt.ru
Дополнение и исправление перевода на русский язык
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +17 декабря 2020 г. +Приложения KDE 20.12 + + +&kalgebra; — это программа-калькулятор с функцией построения графиков. Позволяет вычислять значения выражений и строить двумерные и трёхмерные графики функций. В основе &kalgebra; лежит язык математической разметки &MathML;, однако его знания не требуется для использования программы &kalgebra;. + + + +KDE +kdeedu +график +математика +2D +3D +MathML + + +
+ + +Введение + +С помощью &kalgebra; возможно выполнять различные математические операции и строить графики. Программа позволяет решать как простые, так и сложные задачи, при этом пользователю не требуется знать язык &MathML; или обладать глубокими познаниями в математике. + +Среди возможностей программы: + + + +Калькулятор для быстрого и простого упрощения математических функций. +Возможность создания сценариев для сложных последовательностей вычислений. +Языковые возможности, в том числе определение функций и автодополнение синтаксиса. +Возможности исчисления, в том числе символическое дифференцирование, векторное исчисление и управление списками. +Построение графиков функций с показом координат при наведении курсора для поиска корней графическим способом и другие типы анализа. +Построение объёмных графиков для визуализации трёхмерных функций. +Встроенный словарь операций для быстрого поиска справочной информации о доступных функциях. + + +Ниже представлено окно программы &kalgebra;: + + +Главное окно &kalgebra; + + + + + + Главное окно &kalgebra; + + + + +Главное окно &kalgebra; состоит из четырёх вкладок: Калькулятор, Плоский график, Объёмный график и Словарь. Под каждой вкладкой находится поле для ввода функций и выполнения вычислений, а также поле, в котором отображаются результаты. + +Для управления сеансом предназначены параметры меню Сеанс: + + + + +&Ctrl; N СеансСоздать +Открывает новое окно &kalgebra;. + + + +&Ctrl;&Shift; F СеансПолноэкранный режим +Включение и отключение полноэкранного режима для окна &kalgebra;. Полноэкранный режим также возможно включать и отключать с помощью кнопки в верхнем правом углу окна &kalgebra;. + + + +&Ctrl; Q СеансВыход +Завершает работу программы. + + + + + + + +Синтаксис +В &kalgebra; для ввода пользовательских функций используется интуитивно понятный алгебраический синтаксис, похожий на тот, который применяется в большинстве современных графических калькуляторов. В этом разделе перечислены основные встроенные операции, доступные в &kalgebra;. Автор &kalgebra; взял за основу синтаксис программ Maxima и Maple, что упростит работу знакомым с ними пользователям. + +Внутренняя служба преобразует введённые пользователем выражения в формат &MathML; — пользователи, которые обладают начальными знаниями о поддерживаемых &MathML; возможностях, при желании смогут разобраться во внутреннем устройстве &kalgebra;. + +Вот список доступных в этой версии операций: + ++ - * / : Сложение, вычитание, умножение и деление. +^, ** : Возведение в степень. Возможно использовать символы Unicode — ² и так далее. Операция взятия корня обратна операции возведения в степень: a**(1/b) +-> : лямбда. Способ указать одну или несколько свободных переменных, которые будут связаны в функции. Например, в выражении length:=(x,y)->(x*x+y*y)^0.5 лямбда-оператор позволяет обозначить, что переменные x и y будут связаны при использовании функции length. +x=a..b : Эта конструкция используется, если нужно задать диапазон значений переменной (связанная переменная + ограничение снизу + ограничение сверху). Это означает, что x изменяется в интервале от a до b. +() : Скобки используются для явного задания приоритета вычислений. +abc(параметры) : Функции. В роли abc может быть згнак оператора или имя функции. +:= : Определение. Задаёт значение переменной. Допустимы выражения наподобие x:=3, x:=y (даже если yне определена), perimeter:=r->2*pi*r. +? : Условный оператор для задания кусочно-заданных функций в &kalgebra;. Другими словами, это способ указания условия «if», «elseif», «else». Если указать условие перед знаком «?», то следующее за ним значение будет использовано только в том случае, если условие выполняется, а если перед «?» не будет условия, будет использовано предыдущее условие. Пример: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ } : Блок &MathML;. Позволяет указывать произвольный код на &MathML; внутри. Полезно для работы с кусочно-заданными функциями. += > >= < <= : Операции сравнения «равно», «больше», «больше или равно», «меньше», «меньше или равно». + + +Зачем вообще использовать блок &MathML;? Ответ прост. С его помощью возможно выполнять операции наподобие cos(), sin() и любые тригонометрические функции, sum() и product(). Характер самой функции не важен. Возможно использовать plus() (сложение), times() (умножение) и любые другие функции, которым соответствует определённый оператор. Также реализованы булевские функции, что позволяет выполнять операции наподобие or(1,0,0,0,0). + + + + +Использование калькулятора +Калькулятор &kalgebra; обладает очень широкими возможностями. Ввод выражений доступен в режиме Вычислить или Упростить (в зависимости от варианта, который выбран в меню Калькулятор). +В режиме упрощения &kalgebra; упрощает выражение даже при наличии неопределённой переменной. В режиме вычисления &kalgebra; производит вычисление и отображает ошибку при обнаружении неопределённой переменной. +В области калькулятора показаны уравнения, которые были введены пользователем, и результаты вычислений, а в закреплённой области в правой части окна — все объявленные переменные. Двойной щелчок по переменной позволяет открыть диалог редактирования её значения (способ «обойти» журнал). + +Переменная ans является особой: при вводе каждого нового выражения её значение будет заменяться на последний результат. + +Далее приводятся примеры функций, которые возможно указывать в поле ввода окна калькулятора: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +Далее показано окно калькулятора после ввода приведённых ранее примеров выражений: + +Окно калькулятора &kalgebra; с примерами выражений + + + + + + Окно калькулятора &kalgebra; + + + + + +Параметры меню Калькулятор позволяют управлять выполнением последовательности вычислений: + + + + +&Ctrl; L КалькуляторОткрыть сценарий... +Последовательно выполняет инструкции из файла. Подходит для определения библиотек или возобновления работы. + + + +КалькуляторПоследние сценарии +Отображает вложенное меню, позволяющее выбрать один из недавно использованных сценариев. + + + +&Ctrl; G КалькуляторСохранить сценарий... +Сохраняет инструкции, набранные пользователем с начала работы для возможности их повторного использования. Генерирует текстовые файлы, легко редактируемые любым текстовым редактором (например, &kate;). + + + +&Ctrl; S КалькуляторЭкспорт журнала... +Сохраняет журнал с результатами в файл &HTML; для распечатки или публикации. + + + +F3 КалькуляторВставить ответ... +Вставляет переменную ans, упрощая возможность повторного использования предыдущих значений. + + + +КалькуляторВычислить +Переключатель для параметра Режим выполнения на «Вычислить». + + + +КалькуляторУпростить +Переключатель для параметра Режим выполнения на «Упростить» + + + + + + +Двумерные графики +Чтобы добавить новый двумерный график в &kalgebra;, перейдите на вкладку Плоский график и нажмите кнопку Добавить для добавления новой функции. После этого фокус будет перенесён в поле ввода, в котором возможно указать функцию. + + +Синтаксис +Если следует использовать простую форму задания функций f(x), не требуется отдельно задавать её, но если следует определить f(y) или функцию в полярных координатах, необходимо указать y-> и q-> в качестве связанных переменных. + +Примеры: + +sіn(x) +x² +y->sіn(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +После ввода функции нажмите кнопку OK для просмотра графика в главном окне. + + + + +Возможности +Возможно начертить несколько графиков в одном окне. Воспользуйтесь кнопкой Добавить в режиме списка. Для каждого из графиков возможно указать цвет. + +Размер и расположение области просмотра возможно изменять с помощью мыши. Колесо мыши позволяет увеличивать и уменьшать область просмотра. Если выделить часть области с помощью левой кнопки мыши, она будет растянута до размеров области просмотра. Для перемещения области просмотра используются клавиши со стрелками. + + + Область просмотра двумерных графиков возможно явно определить на вкладке Область просмотра вкладки Плоский график. + + +На вкладке Список в правой нижней части окна доступна вкладка Редактирование: двойной щелчок позволяет изменить или удалить её, а снятие или установка флажка рядом с названием функции — показать или скрыть её. +В меню Плоский график доступны следующие параметры: + +Сетка: Показать или скрыть сетку +Сохранять пропорции: Сохранять пропорции при увеличении +Сохранить: Сохранить (&Ctrl; S) график в файл изображения +Увеличить/уменьшить: Увеличить (&Ctrl; +) или уменьшить (&Ctrl; -) масштаб +Фактический размер: Сбросить масштаб в изначальное значение +Разрешение: Далее следует список переключателей для выбора разрешения для графиков + + +Ниже представлено окно программы, в котором курсор пользователя находится на самом правом корне функции, sin(1/x). При построении графика было выбрано очень высокое разрешение (так как частота колебаний функций увеличивается рядом с началом координат). Также показан «живой курсор» — если навести курсор на какое-либо место области просмотра графика, в нижнем левом углу окна отобразятся соответствующие координаты x и y. По месту расположения «живого курсора» строится касательная к графику функции. + + +Окно &kalgebra; с двумерным графиком + + + + + + Окно &kalgebra; с двумерным графиком + + + + + + + + + + +Трёхмерные графики + +Чтобы построить трёхмерный график с помощью &kalgebra;, перейдите на вкладку Объёмный график. Внизу будет доступно поле ввода, куда и следует ввести функцию. В этой версии нельзя определить третью координату, Z. Поддерживаются только функции, которые явно зависят только от x и y, например: (x,y)->x*y, где z=x*y. + +Примеры: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +Размер и расположение области просмотра возможно изменять с помощью мыши. Колесо мыши позволяет увеличивать и уменьшать область просмотра. Чтобы вращать график, удерживайте нажатой левую кнопку мыши при её перемещении. + +Клавиши со стрелками влево и вправо проворачивают график вокруг оси z, клавиши со стрелками вверх и вниз поворачивают его вокруг горизонтальной оси. Нажмите клавишу W, чтобы увеличить масштаб графика, или клавишу S, чтобы уменьшить его. + +Пункты в меню Объёмный график: + + +Сохранить: Сохранить (&Ctrl; S) график в файл изображения или в поддерживаемый документ. +Сбросить масштаб: Сбросить масштаб в изначальное значение, установленное в меню Объёмный график +Для построения графика доступны такие стили как Пунктир, Штрих и Сплошная в меню Объёмный график + + +Ниже представлена так называемая функция сомбреро. Её график показан в трёхмерном виде. + + +Окно &kalgebra; с трёхмерным графиком + + + + + + Окно &kalgebra; с трёхмерным графиком + + + + + + + +Словарь + +Словарь является сборником всех доступных действий &kalgebra;. Он позволяет найти и просмотреть определение операции и её входные параметры. + + Ниже представлено окно &kalgebra; с выполнением поиска функции косинуса в словаре. + + +Окно &kalgebra; со словарём + + + + + + Окно &kalgebra; со словарём + + + + + + + +&commands; + + +Авторские права и лицензия + + +Авторские права на программу принадлежат &Aleix.Pol;, 2005–2009. + + + +Авторские права на документацию к программе принадлежат &Aleix.Pol; &Aleix.Pol.mail;, 2007 + +Перевод на русский язык: Николай Шафоростовshaforostoff@kde.ru Дополнения и исправления перевода на русский язык: Максим Воробьёвvmax0770@gmail.comДополнения и исправления перевода на русский язык: Олеся Герасименкоtranslation-team@basealt.ruДополнения и исправления перевода на русский язык: Мария Шикуноваtranslation-team@basealt.ru &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/ru/docs/kalgebra/kalgebra-main-window.png b/po/ru/docs/kalgebra/kalgebra-main-window.png new file mode 100644 index 0000000000000000000000000000000000000000..6cbf67b590b2e0bbf49618b25ec833ecf0307921 GIT binary patch literal 27722 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 Yq}-9cB08>iNr}W#d^cxyZ<_US^I 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 kAFU>0r!aJX-jnYOib;EALU^UI2-Jh5#N, 2007. +# Nick Shaforostoff , 2007, 2008. +# Andrey Cherepanov , 2009. +# Alexander Potashev , 2010, 2011, 2017. +# Yuri Efremov , 2013. +# Alexander Lakhin , 2013. +# Alexander Yavorsky , 2020. +# Olesya Gerasimenko , 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-09-06 11:59+0300\n" +"Last-Translator: Olesya Gerasimenko \n" +"Language-Team: Basealt Translation Team\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 22.04.3\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Действия: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Вставить «%1» в поле ввода" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Вставить в поле ввода" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Ошибка: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Импортировано: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Ошибка: не удалось загрузить %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Сведения" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Добавить/изменить функцию" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Просмотр" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "От:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "До:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Параметры" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "ОК" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Удалить" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Параметры, заданные вами, некорректны." + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Нижний предел функции не может быть больше верхнего" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Двумерный график" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Трёхмерный график" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Сеанс" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Переменные" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Калькулятор" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "К&алькулятор" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Открыть сценарий..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Последние сценарии" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Сохранить сценарий..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Экспорт журнала..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Вставить ответ..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Режим выполнения" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Вычислить" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Упростить" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Функции" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Список" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Добавить" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Область просмотра" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "П&лоский график" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Плоск&ий график" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Сетка" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "С&охранять пропорции" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Разрешение" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Мелкое" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Среднее" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Чёткое" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Очень чёткое" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "Объ&ёмный график" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "Объё&мный график" + +# сбросить масштаб --aspotashev +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Сбросить масштаб" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Пунктир" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Штрих" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Сплошная" + +# Функции? --aspotashev +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Операции" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "Сло&варь" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Искать:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Редактирование" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Открытие сценария" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Сценарии (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Файлы HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Ошибки: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Выбор расположения для сохранения построенного графика" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Изображения PNG (*.png);;Векторные изображения SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Готово" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Добавить переменную" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Введите имя для новой переменной" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Мобильный калькулятор" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© Aleix Pol Gonzalez, 2006-2016" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Юрий Ефремов,Олеся Герасименко" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "yur.arh@gmail.com,translation-team@basealt.ru" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Добавить/изменить переменную" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Удалить переменную" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Изменить значение параметра %1" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "недоступно" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "НЕВЕРНО" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Левая граница:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Верхняя граница:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Ширина:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Высота:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Применить" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|Файл PNG\n" +#~ "*.pdf|Документ PDF" + +#~ msgid "C&onsole" +#~ msgstr "Ко&нсоль" + +#~ msgid "&Console" +#~ msgstr "&Консоль" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Разработал отрисовку кривых, заданных неявно. Улучшил функции построения " +#~ "графиков." + +#~ msgid "Formula" +#~ msgstr "Формула" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Ошибка: неправильный тип функции" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Готово: %1 мс" + +#~ msgid "Error: %1" +#~ msgstr "Ошибка: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Очистить" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|Изображение PNG (*.png)" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Прозрачность" + +#~ msgid "Type" +#~ msgstr "Тип" + +#~ msgid "Result: %1" +#~ msgstr "Результат: %1" + +#~ msgid "To Expression" +#~ msgstr "В выражение" + +#~ msgid "To MathML" +#~ msgstr "В MathML" + +#~ msgid "Simplify" +#~ msgstr "Упростить" + +#~ msgid "Examples" +#~ msgstr "Примеры" + +#~ msgid "We can only draw Real results." +#~ msgstr "Возможно построение только действительных результатов." + +#~ msgid "The expression is not correct" +#~ msgstr "Выражение не корректно" + +#~ msgid "Function type not recognized" +#~ msgstr "Тип функции не опознан" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Тип функции неправилен для функций, зависящих от %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Неявная функция не определена в плоскости." + +#~ msgid "center" +#~ msgstr "центр" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Название" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Функция" + +#~ msgid "%1 function added" +#~ msgstr "Добавлена функция %1" + +#~ msgid "Hide '%1'" +#~ msgstr "Скрыть %1" + +#~ msgid "Show '%1'" +#~ msgstr "Показать %1" + +#~ msgid "Selected viewport too small" +#~ msgstr "Выбранный режим просмотра слишком мал" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Описание" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Параметры" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Пример" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=от..до" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... параметры, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Сложение" + +#~ msgid "Multiplication" +#~ msgstr "Умножение" + +#~ msgid "Division" +#~ msgstr "Деление" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Вычитание. Все значения из уменьшаемого будут удалены." + +#~ msgid "Power" +#~ msgstr "Степень" + +#~ msgid "Remainder" +#~ msgstr "Остаток" + +#~ msgid "Quotient" +#~ msgstr "Частное" + +#~ msgid "The factor of" +#~ msgstr "Делимость на число" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Факториал (n!)" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Синус" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Косинус" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Тангенс" + +#~ msgid "Secant" +#~ msgstr "Секанс" + +#~ msgid "Cosecant" +#~ msgstr "Косеканс" + +#~ msgid "Cotangent" +#~ msgstr "Котангенс" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Гиперболический синус" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Гиперболический косинус" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Гиперболический тангенс" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Гиперболический секанс" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Гиперболический косеканс" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Гиперболический котангенс" + +#~ msgid "Arc sine" +#~ msgstr "Арксинус" + +#~ msgid "Arc cosine" +#~ msgstr "Арккосинус" + +#~ msgid "Arc tangent" +#~ msgstr "Арктангенс" + +#~ msgid "Arc cotangent" +#~ msgstr "Арккотангенс" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Гиперболический арктангенс" + +#~ msgid "Summatory" +#~ msgstr "Сумма" + +#~ msgid "Productory" +#~ msgstr "Произведение" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "Среднее" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "Список" + +#~ msgid "Differentiation" +#~ msgstr "Дифференцирование" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Гиперболический арксинус" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Гиперболический арккосинус" + +#~ msgid "Arc cosecant" +#~ msgstr "Арккосеканс" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Гиперболический арккосеканс" + +#~ msgid "Arc secant" +#~ msgstr "Арксеканс" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Гиперболический арксеканс" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Экспонента (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Натуральный логарифм" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Десятичный логарифм" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Абсолютное значение. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Наименьшее абсолютное значение. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Наибольшее абсолютное значение. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Минимум" + +#~ msgid "Maximum" +#~ msgstr "Максимум" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Больше чем. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : границы" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Значение" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Нужно указать допустимую операцию" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "," + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Неизвестный идентификатор: %1" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Невозможно найти правильное условие." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Тип, не поддерживаемый для пределов." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Нижний предел больше чем верхний." + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Нижний или верхний предел является неправильным." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Определена переменная, зависящая от себя." + +#~ msgid "The result is not a number" +#~ msgstr "Результат не является числом." + +#~ msgid "Unknown token %1" +#~ msgstr "Неизвестная лексема %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "Для %1 необходимо не менее двух параметров" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "Для %1 требуется указать %2 параметров" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "У %1 отсутствуют пределы" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Недопустимый предел для %1" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 отсутствующих пределов у %2" + +#~ msgid "Wrong declare" +#~ msgstr "Неправильное определение" + +#~ msgid "Empty container: %1" +#~ msgstr "Пустой контейнер: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Условия возможны только в кусочно-заданных конструкциях." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Невозможно определить два параметра с именем %1." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Параметр otherwise должен быть последним" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 не является подходящим условием для кусочно-заданной функции." + +#~ msgid "We can only declare variables" +#~ msgstr "Возможно только объявлять переменные" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Возможны только ограниченные значения" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Ошибка при разборе %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Неизвестный блок: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Невозможно кодифицировать значение %1." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Оператор %1 не может иметь дочерних контекстов." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Элемент «%1» не является оператором." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Не следует задавать нуль-векторы" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Не поддерживается или неизвестно: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Ожидалось %1 вместо %2" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Отсутствует закрывающая скобка" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Не хватает закрывающих скобок" + +#, fuzzy +#~| msgid "Unexpected token %1" +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Неожиданная лексема %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Неожиданная лексема %1" + +#, fuzzy +#~| msgid "Could not calculate the derivative for '%1'" +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Невозможно посчитать производную выражения «%1»" + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "" +#~ "Неверное число параметров для %2. Функция должна иметь %1 параметр." +#~ msgstr[1] "" +#~ "Неверное число параметров для %2. Функция должна иметь %1 параметра." +#~ msgstr[2] "" +#~ "Неверное число параметров для %2. Функция должна иметь %1 параметров." +#~ msgstr[3] "" +#~ "Неверное число параметров для %2. Функция должна иметь 1 параметр." + +#~ msgid "Could not call '%1'" +#~ msgstr "Невозможно вызвать %1" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Невозможно решить %1" + +#, fuzzy +#~| msgid "Enter a name for the new variable" +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Введите имя для новой переменной" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Невозможно определить тип кусочно-заданной функции." + +#~ msgid "Unexpected type" +#~ msgstr "Недопустимый тип" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Невозможно преобразовать %1 в %2" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Неизвестная лексема %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Невозможно посчитать остаток от 0." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Невозможно посчитать множитель от 0." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Невозможно посчитать наименьший общий делитель от 0." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Невозможно посчитать значение %1" + +#~ msgid "Invalid index for a container" +#~ msgstr "Неправильный индекс блока." + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Невозможно производить действия с векторами разного размера." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Невозможно посчитать %1 вектора." + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Невозможно посчитать %1 списка." + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Невозможно посчитать производную выражения «%1»" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Невозможно уменьшить %1 и %2." + +#~ msgid "Incorrect domain." +#~ msgstr "Неправильный домен." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Параметрическая функция не возвращает вектор" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Нужно задать двумерный вектор" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Элементы параметрической функции должны быть скалярами" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "Производная %1 ещё не реализована." + +#~ msgid "Subtraction" +#~ msgstr "Вычитание" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Ошибка: %2" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Ошибка: нужны значения для построения графика" + +#~ msgid "Generating... Please wait" +#~ msgstr "Создание..." + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Сохранить журнал" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Fine" +#~ msgid "File" +#~ msgstr "Чёткое" + +#, fuzzy +#~| msgctxt "Error message" +#~| msgid "Unknown bounded variable: %1" +#~ msgid "We can only call functions" +#~ msgstr "Неизвестное краевое значение: %1" + +#, fuzzy +#~| msgctxt "html representation of a number" +#~| msgid "true" +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "истина" + +#, fuzzy +#~| msgctxt "html representation of a number" +#~| msgid "false" +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "ложь" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Mode" +#~ msgstr "Режим" + +#~ msgid "Save the expression" +#~ msgstr "Сохранить выражение" + +#~ msgid "Calculate the expression" +#~ msgstr "Вычислить выражение" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Функция %1 не существует" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Переменная %1 не существует" + +#~ msgid "Need a var name and a value" +#~ msgstr "Необходимо имя переменной и значение" + +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~| msgctxt "Function parameter separator" +#~| msgid ", " +#~ msgid "%1, " +#~ msgstr ", " + +#~ msgctxt "Parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "@item:inmenu" +#~ msgid "&New" +#~ msgstr "&Создать" + +#~ msgid "&Save" +#~ msgstr "&Сохранить" diff --git a/po/ru/kalgebramobile.po b/po/ru/kalgebramobile.po new file mode 100644 index 0000000..624bc4f --- /dev/null +++ b/po/ru/kalgebramobile.po @@ -0,0 +1,302 @@ +# Copyright (C) 2024 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# Alexander Potashev , 2018. +# SPDX-FileCopyrightText: 2020, 2024 Alexander Yavorsky +# Olesya Gerasimenko , 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-02-10 13:42+0300\n" +"Last-Translator: Alexander Yavorsky \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Lokalize 24.01.95\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Калькулятор" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Загрузить сценарий" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Сценарии (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Сохранить сценарий" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Экспорт журнала" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "Файлы HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Упростить" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Вычислить" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Очистить журнал" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Двумерный график" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Трёхмерный график" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Копировать «%1»" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Очистить консоль журнала" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Добавить" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Очистить всё" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Закрыть диалог" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Удалить график" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Не доступно ни одного графика" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Выражение для вычисления..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Словарь" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Имя:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Плоский график" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Объёмный график" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Таблицы значений" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Переменные" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Словарь" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "О программе KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Двумерный график" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Сохранить" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Сетка" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Очистить область построения" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Трёхмерный график" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Результаты" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Таблицы значений" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Ошибки: шаг не может быть равен нулю" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Ошибки: начало и конец отрезка совпадают" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Ошибки: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Выполнить" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Входные данные" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "От:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "До:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Шаг" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Выполнить" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Мобильный калькулятор" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© Aleix Pol i Gonzalez, 2006—2023" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Сопровождающий" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Олеся Герасименко" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "translation-team@basealt.ru" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "Мобильная KAlgebra" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Простой инженерный калькулятор" diff --git a/po/se/kalgebra.po b/po/se/kalgebra.po new file mode 100644 index 0000000..0b0c3f5 --- /dev/null +++ b/po/se/kalgebra.po @@ -0,0 +1,439 @@ +# Translation of kalgebra to Northern Sami +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2007-09-11 22:44+0200\n" +"Last-Translator: Northern Sami translation team \n" +"Language-Team: Northern Sami \n" +"Language: se\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Bargovuorru" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" diff --git a/po/si/kalgebra.po b/po/si/kalgebra.po new file mode 100644 index 0000000..a69d4b6 --- /dev/null +++ b/po/si/kalgebra.po @@ -0,0 +1,441 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Danishka Navin , 2009. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2009-11-08 18:21+0530\n" +"Last-Translator: Danishka Navin \n" +"Language-Team: Sinhala \n" +"Language: si\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "නම" diff --git a/po/sk/kalgebra.po b/po/sk/kalgebra.po new file mode 100644 index 0000000..e8083dd --- /dev/null +++ b/po/sk/kalgebra.po @@ -0,0 +1,464 @@ +# translation of kalgebra.po to Slovak +# Richard Fric , 2007, 2009. +# Roman Paholík , 2012, 2013, 2014, 2015, 2016, 2017. +# Matej Mrenica , 2019. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2019-11-15 20:06+0100\n" +"Last-Translator: Matej Mrenica \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 19.08.3\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Možnosti: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Vložiť \"%1\" do vstupu" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Vložiť do vstupu" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Error: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importované: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Chyba: Nemôžem načítať %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Informácia" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Pridať/Upraviť funkciu" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Náhľad" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Od:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Pre:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Možnosti" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Odstrániť" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Voľby, ktoré ste zadali, nie sú správne" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Dolná hranica nesmie byť väčšia ako horná hranica" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2D graf" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3D graf" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Sedenie" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Premenné" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "Kalkulačka" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "Kalkulačka" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Načítať skript..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Nedávne skripty" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Uložiť skript..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "Exportovať &záznam..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "Vložiť ans..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Režim spúšťania" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Spočítať" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Vyhodnotiť" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkcie" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Zoznam" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Pridať" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Pohľad" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D Graf" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "&2D Graf" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "Mriežka" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Zachovať pomer strán" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Rozlíšenie" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Nízka" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normálna" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Presná" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Veľmi presne" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "3D &Graf" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &Graf" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Znovunastaviť pohľad" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Bodky" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Čiarky" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Plný" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operácie" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Slovník" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Hľadať:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "Editovanie" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Vybrať skript" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Súbor HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Chyby: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Vyberte, kam vložiť vykreslený graf" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Súbor obrázku (*.png);;SVG súbor (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Pripravený" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Pridať premennú" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Zadajte meno novej premennej" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Prenosná kalkulačka" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Roman Paholík" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "wizzardsk@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Pridať/upraviť premennú" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Odstrániť premennú" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Upraviť hodnotu '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "nedostupné" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "ZLE" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Vľavo:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Hore:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Šírka:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Výška:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Použiť" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "PNG súbor (*.png);;PDF dokument(*.pdf);;X3D dokument (*.x3d);;STL " +#~ "dokument (*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "Konzola" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "Konzola" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Vyvinutá funkcia na kreslenie implicitných kriviek. Zlepšenia kresliacich " +#~ "funkcií." diff --git a/po/sk/kalgebramobile.po b/po/sk/kalgebramobile.po new file mode 100644 index 0000000..6d79742 --- /dev/null +++ b/po/sk/kalgebramobile.po @@ -0,0 +1,318 @@ +# translation of kalgebramobile.po to Slovak +# Roman Paholík , 2018. +# Matej Mrenica , 2019. +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2019-08-11 16:35+0200\n" +"Last-Translator: Matej Mrenica \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 19.07.90\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, fuzzy, kde-format +#| msgid "Calculate..." +msgid "Calculator" +msgstr "Spočítať..." + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, fuzzy, kde-format +#| msgid "KAlgebra Mobile" +msgid "KAlgebra" +msgstr "KAlgebra Mobile" + +#: content/ui/Console.qml:62 +#, fuzzy, kde-format +#| msgid "Load Script..." +msgctxt "@action:button" +msgid "Load Script" +msgstr "Načítať skript..." + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: content/ui/Console.qml:72 +#, fuzzy, kde-format +#| msgid "Save Script..." +msgctxt "@action:button" +msgid "Save Script" +msgstr "Uložiť skript..." + +#: content/ui/Console.qml:83 +#, fuzzy, kde-format +#| msgid "Export Log..." +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exportovať záznam..." + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, fuzzy, kde-format +#| msgid "Evaluate..." +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Vyhodnotiť..." + +#: content/ui/Console.qml:94 +#, fuzzy, kde-format +#| msgid "Calculate..." +msgctxt "@action:button" +msgid "Calculate" +msgstr "Spočítať..." + +#: content/ui/Console.qml:100 +#, fuzzy, kde-format +#| msgid "Clear Log" +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Vyčistiť záznam" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D vykreslenie" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D vykreslenie" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Kopírovať \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, fuzzy, kde-format +#| msgid "Clear All" +msgctxt "@action:button" +msgid "Clear All" +msgstr "Vyčistiť všetko" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Výraz na vypočítanie..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "" + +#: content/ui/Plot2D.qml:21 +#, fuzzy, kde-format +#| msgid "2D Plot" +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D vykreslenie" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, fuzzy, kde-format +#| msgid "Save..." +msgid "Save" +msgstr "Uložiť..." + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Zobraziť mriežku" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Obnoviť zobrazenie" + +#: content/ui/Plot3D.qml:21 +#, fuzzy, kde-format +#| msgid "3D Plot" +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D vykreslenie" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Výsledky" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Chyby: krok nemôže byť 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Chyby: Začiatok a koniec nemôže byť ten istý" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Chyby: %1" + +#: content/ui/Tables.qml:52 +#, fuzzy, kde-format +#| msgid "Run" +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Spustiť" + +#: content/ui/Tables.qml:63 +#, fuzzy, kde-format +#| msgid "Input:" +msgid "Input" +msgstr "Vstup:" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Od:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Pre:" + +#: content/ui/Tables.qml:86 +#, fuzzy, kde-format +#| msgid "Step:" +msgid "Step" +msgstr "Krok:" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Spustiť" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Prenosná kalkulačka" + +#: main.cpp:40 +#, fuzzy, kde-format +#| msgid "(C) 2006-2018 Aleix Pol i Gonzalez" +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2018 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, fuzzy, kde-format +#| msgid "(C) 2006-2018 Aleix Pol i Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "(C) 2006-2018 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Roman Paholík" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "wizzardsk@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Jednoduchá vedecká kalkulačka" + +#~ msgid "Results:" +#~ msgstr "Výsledky:" diff --git a/po/sl/docs/kalgebra/commands.docbook b/po/sl/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..7d3ed6d --- /dev/null +++ b/po/sl/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Ukazi, ki jih podpira KAlgebra + plus + Ime: plus + Opis: Seštevanje + Parametri: plus(... parametri, ...) + Primer: x->x+2 + + times + Ime: times + Opis: Množenje + Parametri: krat(... parametri, ...) + Primer: x->x*2 + + minus + Ime: minus + Opis: Odštevanje. Odstrani vse vrednosti od prve. + Parameteri: minus(... parametri, ...) + Primer: x->x-2 + + divide + Ime: divide + Opis: Deljenje + Parameteri: deli(par1, par2) + Primer: x->x/2 + + quotient + Ime: quotient + Opis: Kvocient + Parameteri: kvocient(par1, par2) + Primer: x->kvocient(x, 2) + + power + Ime: power + Opis: Potenca + Parameteri: power(par1, par2) + Primer: x->x^2 + + root + Ime: koren + Opis: Root + Parameteri: root(par1, par2) + Primer: x->root(x, 2) + + factorial + Ime: factorial + Opis: Fakulteta. factorial(n)=n! + Parameteri: factorial(par1) + Primer: x->factorial(x) + + and + Ime: and + Opis: Logični in + Parametri: and(... parameters, ...) + Primer: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Ime: or + Opis: Logični ali + Parametri: or(... parameters, ...) + Primer: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Ime: xor + Opis: Logični ekskluzivni ali + Parameteri: xor(... parameters, ...) + Primer: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Ime: not + Opis: Logični ne + Parameteri: not(par1) + Primer: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Ime: gcd + Opis: Največji skupni delitelj + Parameteri: gcd(... parameters, ...) + Primer: x->gcd(x, 3) + + lcm + Ime: lcm + Opis: Najmanjši skupni večkratnik + Parameteri: lcm(... parameters, ...) + Primer: x->lcm(x, 4) + + rem + Ime: rem + Opis: Ostanek + Parameteri: rem(par1, par2) + Primer: x->rem(x, 5) + + faktor od + Ime: factorof + Opis: faktor od + Parameteri: factorof(par1, par2) + Primer: x->factorof(x, 3) + + max + Ime: max + Opis: Maksimum + Parameteri: max(... parameters, ...) + Primer: x->max(x, 4) + + min + Ime: min + Opis: Minimum + Parametri: min(... parameters, ...) + Primer: x->min(x, 4) + + lt + Ime: lt + Opis: Manj kot. lt(a,b)=a<b + Parametri: lt(par1, par2) + Primer: x->piecewise { x<4 ? 1, ? 0 } + + gt + Ime: gt + Opis: Več kot. gt(a,b)=a>b + Parametri: gt(par1, par2) + Primer: x->piecewise { x>4 ? 1, ? 0 } + + eq + Ime: eq + Opis: Enako. eq(a,b) = a=b + Parametri: eq(par1, par2) + Primer: x->piecewise { x=4 ? 1, ? 0 } + + neq + Ime: neq + Opis: Ni enako. neq(a,b)=a≠b + Parametri: neq(par1, par2) + Primer: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Ime: leq + Opis: Manj ali enako. leq(a,b)=a≤b + Parametri: leq(par1, par2) + Primer: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Ime: geq + Opis: Večje ali enako. geq(a,b)=a≥b + Parametri: geq(par1, par2) + Primer: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Ime: implies + Opis: Logična implikacija + Parametri: implies(par1, par2) + Primer: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Ime: approx + Opis: Približno. approx(a)=a±n + Parameteri: approx(par1, par2) + Primer: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Ime: abs + Opis: Absolutna vrednost. abs(n)=|n| + Parametri: abs(par1) + Primer: x->abs(x) + + floor + Ime: floor + Opis: Celi del. floor(n)=⌊n⌋ + Parametri: floor(par1) + Primer: x->floor(x) + + ceiling + Ime: ceiling + Opis: Zgornji celi del. ceil(n)=⌈n⌉ + Parametri: ceiling(par1) + Primer: x->ceiling(x) + + sin + Ime: sin + Des: Funkcija za izračun sinusa danega kotacription + Parametri: sin(par1) + Primer: x->sin(x) + + cos + Ime: cos + Opis: Funkcija za izračun kosinusa danega kota + Parametri: cos(par1) + Primer: x->cos(x) + + tan + Ime: tan + Opis: Funkcija za izračun tangensa danega kota + Parametri: tan(par1) + Primer: x->tan(x) + + sec + Ime: sec + Opis: Sekans + Parametri: sec(par1) + Primer: x->sec(x) + + csc + Ime: csc + Opis: Kosekans + Parametri: csc(par1) + Primer: x->csc(x) + + cot + Ime: cot + Opis: Kotangens + Parametri: cot(par1) + Primer: x->cot(x) + + sinh + Ime: sinh + Opis: Hiperbolični sinus + Parametri: sinh(par1) + Primer: x->sinh(x) + + cosh + Ime: cosh + Opis: Hiperbolični kosinus + Parametri: cosh(par1) + Primer: x->cosh(x) + + tanh + Ime: tanh + Opis: Hiperbolični tangens + Parametri: tanh(par1) + Primer: x->tanh(x) + + sech + Ime: sech + Opis: Hiperbolični sekans + Parametri: sech(par1) + Primer: x->sech(x) + + csch + Ime: csch + Opis: Hiperbolični kosekans + Parametri: csch(par1) + Primer: x->csch(x) + + coth + Ime: coth + Opis: Hiperbolični kotangens + Parametri: coth(par1) + Primer: x->coth(x) + + arcsin + Ime: arcsin + Opis: Arkus sinus + Parametri: arcsin(par1) + Primer: x->arcsin(x) + + arccos + Ime: arccos + Opis: Arkus kosinus + Parametri: arccos(par1) + Primer: x->arccos(x) + + arctan + Ime: arctan + Opis: Arkus tangens + Parametri: arctan(par1) + Primer: x->arctan(x) + + arccot + Ime: arccot + Opis: Arkus kotangens + Parametri: arccot(par1) + Primer: x->arccot(x) + + arccosh + Ime: arccosh + Opis: Hiperbolični arkus kosinus + Parametri: arccosh(par1) + Primer: x->arccosh(x) + + arccsc + Ime: arccsc + Opis: Arkus kosekans + Parametri: arccsc(par1) + Primer: x->arccsc(x) + + arccsch + Ime: arccsch + Opis: Hiperbolični akrus kosekans + Parametri: arccsch(par1) + Primer: x->arccsch(x) + + arcsec + Ime: arcsec + Opis: Arkus sekans + Parametri: arcsec(par1) + Primer: x->arcsec(x) + + arcsech + Ime: arcsech + Opis: Hiperbolični arkus sekans + Parametri: arcsech(par1) + Primer: x->arcsech(x) + + arcsinh + Ime: arcsinh + Opis: Hiperbolični arkus sinus + Parametri: arcsinh(par1) + Primer: x->arcsinh(x) + + arctanh + Ime: arctanh + Opis: Hiperbolični arkus tangens + Parametri: arctanh(par1) + Primer: x->arctanh(x) + + exp + Ime: exp + Opis: Eksponent (e^x) + Parametri: exp(par1) + Primer: x->exp(x) + + ln + Ime: ln + Opis: logaritem z osnovo e + Parametri: ln(par1) + Parametri: ln(par1) + + log + Ime: log + Opis: Logaritem z osnovo 10 + Parametri: log(par1) + Primer: x->log(x) + + conjugate + Ime: conjugate + Opis: Konjugant + Parametri: conjugate(par1) + Primer: x->conjugate(x*i) + + arg + Ime: arg + Opis: Arg + Parametri: arg(par1) + Primer: x->arg(x*i) + + real + Ime: real + Opis: Realno + Parametri: real(par1) + Primer: x->real(x*i) + + imaginary + Ime: imaginary + Opis: Imaginarno + Parametri: imaginary(par1) + Primer: x->imaginary(x*i) + + sum + Ime: sum + Opis: Seštevanje + Parametri: sum(par1 : var=from..to) + Primer: x->x*sum(t*t:t=0..3) + + product + Ime: product + Opis: Množenje + Parametri: product(par1 : var=from..to) + Primer: x->product(t+t:t=1..3) + + diff + Ime: diff + Opis: Odvajanje + Parametri: diff(par1 : var) + Primer: x->(diff(x^2:x))(x) + + card + Ime: card + Opis: Kardinalnost + Parametri: card(par1) + Primer: x->card(vector { x, 1, 2 }) + + scalarproduct + Ime: scalarproduct + Opis: Skalarni produkt + Parametri: scalarproduct(... parameters, ...) + Primer: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Ime: selector + Opis: Izbere par1-ti predmet seznama ali vektorja v par2 + Parametri: selector(par1, par2) + Primer: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Ime: union + Opis: Združi več predmetov iste vrste + Parametri: union(... parameters, ...) + Primer: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Ime: forall + Opis: Za vse + Parametri: forall(par1 : var) + Primer: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Ime: exists + Opis: Obstaja + Parametri: exists(par1 : var) + Primer: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Ime: map + Opis: Uveljavi funkcijo na vsakem predmetu seznama + Parametri: map(par1, par2) + Primer: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Ime: filter + Opis: Odstrani vse predmete, ki ne ustrezajo pogoju + Parametri: filter(par1, par2) + Primer: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Ime: transpose + Opis: Transponiraj + Parametri: transpose(par1) + Primer: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/sl/docs/kalgebra/index.docbook b/po/sl/docs/kalgebra/index.docbook new file mode 100644 index 0000000..4c6f813 --- /dev/null +++ b/po/sl/docs/kalgebra/index.docbook @@ -0,0 +1,935 @@ + + + + MathML"> + + +]> + + + + +Priročnik &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+LukaPuhar
puhar.luka@gmail.com
Prevod
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +17.12.2020 +Aplikacije 20.12 + + +&kalgebra; je aplikacija, ki lahko nadomesti grafični kalkulator. Ima numerične, logične, simbolne in analitične funkcije, ki omogočajo izračunavanje matematičnih izrazov na kalkulatorju in grafični prikaz rezultatov v 2D ali 3D. &kalgebra; izhaja iz matematičnega označevalnega jezika (&MathML;); vendar za uporabo &kalgebra; ni treba poznati &MathML;. + + + +KDE +kdeedu +graf +matematika +2D +3D +MathML + + +
+ + +Uvod + +&kalgebra; ima številne funkcije, ki uporabniku omogočajo izvajanje vseh vrst matematičnih operacij in grafični prikaz. Nekoč je bil ta program usmerjen v &MathML;. Zdaj ga lahko uporablja vsakdo z nekaj matematičnega znanja za reševanje preprostih in naprednih problemov. + +Vključuje naslednje funkcije: + + + +Računalo za hitro in enostavno vrednotenje matematičnih funkcij. +Možnost pisanja skript za napredne serije izračunov. +Jezikovne zmožnosti, vključno z definicijo funkcij in samodejnim dokončanjem sintakse. +Računske funkcije, vključno s simbolnim diferenciranjem, vektorskim računom in upravljanjem seznamov. +Izrisovanje funkcij s kazalcem v živo za grafično iskanje korenov in druge vrste analiz. +3D izris za uporabno vizualizacijo 3D funkcij. +Vgrajen je slovar operatorjev za hitro sklicevanje na številne razpoložljive funkcije. + + +Spodaj je prikazana zaslonska slika aplikacije &kalgebra; v akciji: + + +Tukaj je posnetek zaslona &kalgebra; glavnega okna + + + + + + &kalgebra; glavno okno + + + + +Ko uporabnik začne sejo programa &kalgebra;, se mu prikaže eno samo okno, sestavljeno iz zavihka Računalo, zavihka 2D Graf, zavihka 3D Graf in zavihka Slovar. V vsakem zavihku najdete vnosno polje za vnos funkcij ali izračunov in polje za prikaz rezultatov. + +Uporabnik lahko kadar koli upravlja svojo sejo z možnostmi glavnega menija Seja: + + + + +&Ctrl; N SejaNov +Odpre novo okno &kalgebra;. + + + +&Ctrl;&Shift; F SejaCelozaslonski način +Preklopite celozaslonski način za &kalgebra; okno. Celozaslonski način lahko vklopite in izklopite tudi z uporabo gumb v zgornjem desnem delu okna &kalgebra;. + + + +&Ctrl; Q SejaIzhod +Izklopi program. + + + + + + + +Sintaksa +&kalgebra; uporablja intuitivno algebrsko sintakso za vnos uporabniških funkcij, podobno tisti, ki se uporablja v večini sodobnih grafičnih računal. V tem razdelku so navedeni temeljni vgrajeni operatorji, ki so na voljo v programu &kalgebra;. Avtor programa &kalgebra; je to sintakso oblikoval po Maxima in Maple za uporabnike, ki morda poznajo ta programa. + +Za uporabnike, ki jih zanima notranje delovanje sistema &kalgebra;, se uporabniško vneseni izrazi v zaledju pretvorijo v &MathML;. Osnovno razumevanje zmožnosti, ki jih podpira &MathML;, bo v veliki meri pomagalo razkriti notranje zmožnosti &kalgebra;. + +Tukaj je seznam operaterjev, ki so na voljo do zdaj: + ++ - * / : seštevanje, odštevanje, množenje in deljenje. +^, ** : Moč, lahko uporabite oba. Prav tako je mogoče uporabiti unicode znake ². Tudi moči so eden od načinov za ustvarjanje korenov, lahko naredite tako: a**(1/b) +-> : lambda. To je način za določitev ene ali več prostih spremenljivk, ki bodo vezane v funkciji. Na primer, v izrazu dolžina:=(x,y)->(x*x+y*y)^0,5 je operator lambda uporabljen za označevanje, da bosta x in y pri uporabi funkcije dolžina povezana. +x=a..b : Uporablja se, kadar moramo omejiti območje (omejena spremenljivka+zgornjameja+spodnjameja). To pomeni, da x pride od a do b. +() : Uporablja se za določitev višje prioritete. +abc(params) : Funkcije. Ko razčlenjevalnik najde funkcijo, preveri, ali je abc operator. Če je, bo obravnavan kot operator, če ni, bo obravnavan kot uporabniška funkcija. +:= : Opredelitev. Uporablja se za določitev vrednosti spremenljivke. Lahko naredite stvari, kot so x:=3, x:=y je y določeno ali ne ali perimeter:=r->2*pi*r. +? : Delna definicija pogoja. Po delih je način, kako lahko definiramo pogojne operacije v &kalgebra;. Povedano drugače, to je način določanja pogojev if, elseif, else. Če pred '?' vpeljemo pogoj, bo ta pogoj uporabil le, če je resničen, če bo našel '?' brez pogoja, bo vnesel zadnji primerek. Primer: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ } : &MathML; vsebnik. Uporablja se lahko za opredelitev vsebnika. Uporabno predvsem za delo s kosi. += > >= < <= : Primerjalniki vrednosti za enako, večje, večje ali enako, manj in manj ali enako. + + +Zdaj bi me lahko vprašali, zakaj bi se moral uporabnik ukvarjati z &MathML;? To je preprosto. S tem lahko operiramo s funkcijami, kot so cos(), sin(), vse druge trigonometrične funkcije, sum() ali produkt(). Ni pomembno, kakšne vrste je. Uporabljamo lahko plus(), times() in vse, kar ima svoj operator. Implementirane so tudi logične funkcije, tako da lahko naredimo nekaj takega kot ali(1,0,0,0,0,0). + + + + +Uporaba računala +&kalgebra; računalo je uporaben kot kalkulator na steroidih. Uporabnik lahko vnese izraze za vrednotenje v načinu Izračunaj ali Ovrednoti, odvisno od izbire menija Računalo. +V načinu vrednotenja &kalgebra; poenostavi izraz, tudi če vidi nedefinirano spremenljivko. Ko je v načinu izračuna &kalgebra;, izračuna vse in če najde nedefinirano spremenljivko, pokaže napako. +Poleg prikaza uporabnikovih vnesenih enačb in rezultatov na zaslonu računala se vse deklarirane spremenljivke prikažejo v trajnem okvirju na desni strani. Z dvojnim klikom na spremenljivko se prikaže pogovorno okno, v katerem lahko spremenite njene vrednosti (to je le način, kako prevarati dnevnik). + +Spremenljivka ans je posebna, saj se ob vsakem vnosu izraza vrednost spremenljivke ans spremeni v zadnji rezultat. + +V nadaljevanju so navedeni primeri funkcij, ki jih lahko vnesete v vnosno polje okna računala: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +V nadaljevanju je prikazana slika okna računala po vnosu zgornjih primerov izrazov: + +Zaslonska slika okna &kalgebra; računala s primeri izrazov + + + + + + &kalgebra; okno kalkulatorja + + + + + +Uporabnik lahko nadzoruje izvajanje niza izračunov z uporabo možnosti menija Računalo: + + + + +&Ctrl; L RačunaloNaloži skript... +Zaporedno izvaja navodila v datoteki. Uporabno, če želite določiti nekatere knjižnice ali nadaljevati prejšnje delo. + + + +RačunaloNedavni skripti +Prikaže podmeni, v katerem lahko izberete nedavno izvedene skripte. + + + +&Ctrl; G RačunaloShrani Skript... +Shranite navodila, ki ste jih vnesli od začetka seje, da jih lahko ponovno uporabite. Ustvari besedilne datoteke, tako da bi moralo biti enostavno popraviti s katerim koli urejevalnikom besedila, kot &kate;. + + + +&Ctrl; S RačunaloIzvozi dnevnik... +Dnevnik z vsemi rezultati shrani v datoteko &HTML;, ki jo lahko natisnete ali objavite. + + + +F3 RačunaloVstavi odg... +Vstavi spremenljivko ans in olajša ponovno uporabo starejših vrednosti. + + + +RačunaloRačunalo +Radijski gumb za nastavitev Način izvajanja na izračunaj. + + + +RačunaloOvrednoti +Radijski gumb za nastavitev Način izvajanja na ovrednoti. + + + + + + +2D Graf +Če želite dodati nov graf 2D v programu &kalgebra;, izberite zavihek Graf 2D in kliknite zavihek Dodaj, da dodate novo funkcijo. Osredotočili se boste na vnosno besedilno polje, v katerega lahko vnesete svojo funkcijo. + + +Sintaksa +Če želite uporabiti tipično funkcijo f(x), je ni treba navesti, če pa želite funkcijo f(y) ali polarno funkcijo, boste morali dodati y-> in q-> kot omejeni spremenljivki. + +Primeri: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Če ste vnesli funkcijo, kliknite gumb OK, da se graf prikaže v glavnem oknu. + + + + +Značilnosti +V istem pogledu lahko nastavite več grafov. Ko ste v načinu seznama, uporabite gumb Dodaj. Vsakemu grafu lahko nastavite svojo barvo. + +Pogled lahko povečate in premikate z miško. S kolescem lahko povečate in pomanjšate velikost. Območje lahko izberete tudi z &LMB; in to območje bo povečano. Pogled premikate s puščičnimi tipkami na tipkovnici. + + + Vidno polje za 2D-grafe lahko izrecno določite z zavihkom Vidno polje na zavihku 2D-graf. + + +V zavihku Seznam v spodnjem desnem delu lahko odprete zavihek Urejanje, da z dvojnim klikom uredite ali odstranite funkcijo in potrdite ali odstranite potrditveno polje poleg imena funkcije, da jo prikažete ali skrijete. +V meniju 2D Graf so te možnosti: + +Mreža: Prikažite ali skrijte mrežo +Ohrani proporce: ohrani razmerje stranic med povečavo +Shrani: shrani (&Ctrl; S) graf kot slikovno datoteko +Približaj/Oddalji: Približaj (&Ctrl; +) in oddalji (&Ctrl; -) +Prilagodi na dejansko velikost: Ponastavitev pogleda na prvotno povečavo +Ločljivost: Sledi seznam radijskih gumbov za izbiro ločljivosti grafov + + +Spodaj je posnetek zaslona uporabnika, katerega kazalec je na skrajnem desnem korenu funkcije sin(1/x). Uporabnik, ki ga je narisal, je pri izdelavi tega grafa uporabil zelo majhno ločljivost (saj graf niha z vedno večjo frekvenco v bližini izvora). Na voljo je tudi funkcija kurzorja v živo, ki vam ob vsakem premiku kurzorja nad točko v spodnjem levem kotu zaslona prikaže vrednosti x in y. Na funkciji na mestu kazalca v živo se izriše tangentna črta. + + +Tukaj je posnetek zaslona okna &kalgebra; 2D Graf + + + + + + &kalgebra; 2D graf okno + + + + + + + + + + +3D Grafi + +Če želite s programom &kalgebra; narisati 3D-graf; izberite zavihek 3D-graf in na dnu boste videli vnosno polje, v katerega boste vnesli svojo funkcijo. Z še ni mogoče določiti. Za zdaj &kalgebra; podpira le 3D-grafe, ki so izrecno odvisni le od x in y, na primer (x,y)->x*y, kjer z=x*y. + +Primeri: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +Pogled lahko povečate in premikate z miško. S kolescem lahko povečate in pomanjšate velikost. Držite &LMB; in premikajte miško, da zavrtite graf. + +Puščični tipki &Left; in &Right; vrtita graf okoli z osi, puščični tipki &Up; in &Down; pa se vrtita okoli vodoravne osi prikaza. Pritisnite W za povečavo ploskve in S za njeno pomanjšanje. + +V meniju 3D Graf so te možnosti: + + +Shrani: shrani (&Ctrl; S) graf kot slikovno datoteko ali podprt dokument +Ponastavi pogled: Ponastavitev pogleda na prvotno povečavo v meniju 3D Graf +V meniju 3D Graf lahko narišete grafe s slogi Pike, Črte ali Polno + + +Spodaj je posnetek zaslona tako imenovane funkcije sombrero. Ta graf je prikazan v slogu črt 3D-grafa. + + +Tukaj je posnetek zaslona okna &kalgebra; 3D Graf + + + + + + &kalgebra; okno 3D grafa + + + + + + + +Slovar + +Slovar vsebuje seznam vseh &kalgebra; vgrajenih funkcij. Z njim lahko poiščete opredelitev operacije in njene vhodne parametre. To je koristen kraj, kjer lahko najdete številne zmožnosti &kalgebra;. + + Spodaj je posnetek zaslona, ki prikazuje iskanje funkcije kosinusa v slovarju &kalgebra;. + + +Tukaj je posnetek zaslona okna slovarja &kalgebra; + + + + + + &kalgebra; slovarsko okno + + + + + + + +&commands; + + +Zasluge in licenca + + +Avtorske pravice programa 2005-2009 &Aleix.Pol; + + + +Avtorske pravice za dokumentacijo 2007 &Aleix.Pol; &Aleix.Pol.mail; + +Prevod: Luka Puharpuhar.luka@gmail.com &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/sl/kalgebra.po b/po/sl/kalgebra.po new file mode 100644 index 0000000..fe6a879 --- /dev/null +++ b/po/sl/kalgebra.po @@ -0,0 +1,469 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Jure Repinc , 2007, 2010, 2011. +# Andrej Mernik , 2012, 2013, 2014, 2015, 2016, 2017. +# Matjaž Jeran , 2019, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-13 09:12+0200\n" +"Last-Translator: Matjaž Jeran \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Translator: Andrej Mernik \n" +"X-Generator: Lokalize 21.12.2\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Možnosti: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Prilepi »%1« v vnosno polje" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Prilepi v vnosno polje" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Napaka: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Uvoženo: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Napaka: ni bilo mogoče naložiti %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Podrobnosti" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Dodaj/uredi funkcijo" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Predogled" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Od:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Do:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Možnosti" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "V redu" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Odstrani" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Podane možnosti niso pravilne" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Spodnja meja ne more biti večja od zgornje meje" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Izriši v 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Izriši v 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Seja" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Spremenljivke" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "Računalo" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "R&ačunalo" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Na&loži skript..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Nedavni skripti" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Shrani skript..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "Izvozi dn&evnik..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "Vstav&i odg..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Izvedljivi način" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Izračunaj" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Ovrednoti" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funkcije" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Seznam" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "Dod&aj" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Vidno polje" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D graf" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D graf" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "Mreža" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Ohrani proporce" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Ločljivost" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Nizka" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Običajna" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Visoka" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Zelo visoka" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D graf" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &graf" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Ponastavi pogled" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Pike" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Črte" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Polno" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operacije" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "Slovar" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Poišči:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "Ur&ejanje" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Izberite skript" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Datoteka HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Napake: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Izberite kam bo postavljen izrisan graf" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Slikovna datoteka (*.png);;Datoteka SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Pripravljen" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Dodaj spremenljivko" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Vnesite ime nove spremenljivke" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Prenosno računalo" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Jure Repinc,Andrej Mernik,Matjaž Jeran" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "jlp@holodeck1.com,andrejm@ubuntu.si,matjaz.jeran@amis.net" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Dodaj/uredi spremenljivko" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Odstrani spremenljivko" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Uredi vrednost »%1«" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ni na voljo" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "NAPAČNO" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Levo:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Zgoraj:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Širina:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Višina:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Uveljavi" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "Datoteka PNG (*.png);;Dokument PDF (*.pdf);;Dokument X3D (*.x3d);;" +#~ "Dokument STL (*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "K&onzola" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Konzola" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Razvil zmožnost risanja implicitnih krivulj. Izboljšal risalne funkcije." + +#~ msgid "Formula" +#~ msgstr "Formula" diff --git a/po/sl/kalgebramobile.po b/po/sl/kalgebramobile.po new file mode 100644 index 0000000..8603235 --- /dev/null +++ b/po/sl/kalgebramobile.po @@ -0,0 +1,301 @@ +# Slovenian translation of KAlgebraMobile +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Matjaž Jeran , 2019, 2020, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-04 21:25+0100\n" +"Last-Translator: Matjaž Jeran \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" +"X-Generator: Poedit 3.4.1\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Kalkulator" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Naloži skript" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Shrani skript" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Izvozi dnevnik" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Ovrednoti" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Izračunaj" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Očisti dnevnik" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D grafikon" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D grafikon" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Kopiraj \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Izprazni konzolino zgodovino" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Dodaj" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Očisti vse" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Zapri dialog" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Odstrani grafikon" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Grafikona ni na voljo" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Izraz za izračun..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Slovar" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Ime:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Graf 2D" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Graf 3D" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Tabele vrednosti" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Spremenljivke" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Slovar" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "O Kalgebri" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D graf" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Shrani" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Prikaži mrežo" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Ponastavi točko pogleda" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D graf" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Rezultati" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Tabele vrednosti" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Napake: Korak ne more biti 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Napake: Začetna in končna točka ne moreta biti isti" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Napake: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Poženi" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Vhod" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Od:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Do:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Korak" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Poženi" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Prenosno računalo" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Vzdrževalec" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Matjaž Jeran" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "matjaz.jeran@amis.net" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra Mobile" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Enostavno znanstveno računalo" diff --git a/po/sv/docs/kalgebra/commands.docbook b/po/sv/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..1c3b5b3 --- /dev/null +++ b/po/sv/docs/kalgebra/commands.docbook @@ -0,0 +1,1566 @@ + +Kommandon som stöds av Kalgebra + plus + Namn: plus + Beskrivning: Addition + Parametrar: plus(... parametrar, ...) + Exempel: x->x+2 + + times + Namn: times + Beskrivning: Multiplikation + Parametrar: times(... parametrar, ...) + Exempel: x->x*2 + + minus + Namn: minus + Beskrivning: Subtraktion. Tar bort alla värden från det första. + Parametrar: minus(... parametrar, ...) + Exempel: x->x-2 + + divide + Namn: divide + Beskrivning: Division + Parametrar: divide(par1, par2) + Exempel: x->x/2 + + quotient + Namn: quotient + Beskrivning: Kvot + Parametrar: quotient(par1, par2) + Exempel: x->quotient(x, 2) + + power + Namn: power + Beskrivning: Upphöjt till + Parametrar: power(par1, par2) + Exempel: x->x^2 + + root + Namn: root + Beskrivning: Rot + Parametrar: root(par1, par2) + Exempel: x->root(x, 2) + + factorial + Namn: factorial + Beskrivning: Fakultet. factorial(n)=n! + Parametrar: factorial(par1) + Exempel: x->factorial(x) + + and + Namn: and + Beskrivning: Booleskt och + Parametrar: and(... parametrar, ...) + Exempel: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Namn: or + Beskrivning: Booleskt eller + Parametrar: or(... parametrar, ...) + Exempel: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Namn: xor + Beskrivning: Booleskt exklusivt eller + Parametrar: xor(... parametrar, ...) + Exempel: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Namn: not + Beskrivning: Booleskt icke + Parametrar: not(par1) + Exempel: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Namn: gcd + Beskrivning: Största gemensamma delare + Parametrar: gcd(... parametrar, ...) + Exempel: x->gcd(x, 3) + + lcm + Namn: lcm + Beskrivning: Minsta gemensamma multipel + Parametrar: lcm(... parametrar, ...) + Exempel: x->lcm(x, 4) + + rem + Namn: rem + Beskrivning: Rest + Parametrar: rem(par1, par2) + Exempel: x->rem(x, 5) + + factorof + Namn: factorof + Beskrivning: Faktorn av + Parametrar: factorof(par1, par2) + Exempel: x->factorof(x, 3) + + max + Namn: max + Beskrivning: Maximum + Parametrar: max(... parametrar, ...) + Exempel: x->max(x, 4) + + min + Namn: min + Beskrivning: Minimum + Parametrar: min(... parametrar, ...) + Exempel: x->min(x, 4) + + lt + Namn: lt + Beskrivning: Mindre än. lt(a,b)=a<b + Parametrar: lt(par1, par2) + Exempel: x->piecewise { x<4 ? 1, ? 0 } + + gt + Namn: gt + Beskrivning: Större än. gt(a,b)=a>b + Parametrar: gt(par1, par2) + Exempel: x->piecewise { x>4 ? 1, ? 0 } + + eq + Namn: eq + Beskrivning: Lika med. eq(a,b) = a=b + Parametrar: eq(par1, par2) + Exempel: x->piecewise { x=4 ? 1, ? 0 } + + neq + Namn: neq + Beskrivning: Inte lika med. neq(a,b)=a≠b + Parametrar: neq(par1, par2) + Exempel: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Namn: leq + Beskrivning: Mindre än eller lika med. leq(a,b)=a≤b + Parametrar: leq(par1, par2) + Exempel: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Namn: geq + Beskrivning: Större än eller lika med. geq(a,b)=a≥b + Parametrar: geq(par1, par2) + Exempel: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Namn: implies + Beskrivning: Boolesk implikation + Parametrar: implies(par1, par2) + Exempel: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Namn: approx + Beskrivning: Approximation. approx(a)=a±n + Parametrar: approx(par1, par2) + Exempel: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Namn: abs + Beskrivning: Absolutvärde. abs(n)=|n| + Parametrar: abs(par1) + Exempel: x->abs(x) + + floor + Namn: floor + Beskrivning: Golvfunktionens värde. floor(n)=⌊n⌋ + Parametrar: floor(par1) + Exempel: x->floor(x) + + ceiling + Namn: ceiling + Beskrivning: Takfunktionens värde. ceil(n)=⌈n⌉ + Parametrar: ceiling(par1) + Exempel: x->ceiling(x) + + sin + Namn: sin + Beskrivning: Funktion för att beräkna sinus för en given vinkel + Parametrar: sin(par1) + Exempel: x->sin(x) + + cos + Namn: cos + Beskrivning: Funktion för att beräkna cosinus för en given vinkel + Parametrar: cos(par1) + Exempel: x->cos(x) + + tan + Namn: tan + Beskrivning: Funktion för att beräkna tangens för en given vinkel + Parametrar: tan(par1) + Exempel: x->tan(x) + + sec + Namn: sec + Beskrivning: Sekant + Parametrar: sec(par1) + Exempel: x->sec(x) + + csc + Namn: csc + Description: Cosekant + Parametrar: csc(par1) + Exempel: x->csc(x) + + cot + Namn: cot + Beskrivning: Cotangens + Parametrar: cot(par1) + Exempel: x->cot(x) + + sinh + Namn: sinh + Beskrivning: Hyperbolisk sinus + Parametrar: sinh(par1) + Exempel: x->sinh(x) + + cosh + Namn: cosh + Beskrivning: Hyperbolisk cosinus + Parametrar: cosh(par1) + Exempel: x->cosh(x) + + tanh + Namn: tanh + Beskrivning: Hyperbolisk tangens + Parametrar: tanh(par1) + Exempel: x->tanh(x) + + sech + Namn: sech + Beskrivning: Hyperbolisk sekant + Parametrar: sech(par1) + Exempel: x->sech(x) + + csch + Namn: csch + Beskrivning: Hyperbolisk cosekant + Parametrar: csch(par1) + Exempel: x->csch(x) + + coth + Namn: coth + Beskrivning: Hyperbolisk cotangens + Parametrar: coth(par1) + Exempel: x->coth(x) + + arcsin + Namn: arcsin + Beskrivning: Arcus sinus + Parametrar: arcsin(par1) + Exempel: x->arcsin(x) + + arccos + Namn: arccos + Beskrivning: Arcus cosinus + Parametrar: arccos(par1) + Exempel: x->arccos(x) + + arctan + Namn: arctan + Beskrivning: Arcus tangens + Parametrar: arctan(par1) + Exempel: x->arctan(x) + + arccot + Namn: arccot + Beskrivning: Arcus cotangens + Parametrar: arccot(par1) + Exempel: x->arccot(x) + + arccosh + Namn: arccosh + Beskrivning: Hyperbolisk arcus cosinus + Parametrar: arccosh(par1) + Exempel: x->arccosh(x) + + arccsc + Namn: arccsc + Description: Arcus cosekant + Parametrar: arccsc(par1) + Exempel: x->arccsc(x) + + arccsch + Namn: arccsch + Beskrivning: Hyperbolisk arcus cosekant + Parametrar: arccsch(par1) + Exempel: x->arccsch(x) + + arcsec + Namn: arcsec + Beskrivning: Arcus sekant + Parametrar: arcsec(par1) + Exempel: x->arcsec(x) + + arcsech + Namn: arcsech + Beskrivning: Hyperbolisk arcus sekant + Parametrar: arcsech(par1) + Exempel: x->arcsech(x) + + arcsinh + Namn: arcsinh + Beskrivning: Hyperbolisk arcus sinus + Parametrar: arcsinh(par1) + Exempel: x->arcsinh(x) + + arctanh + Namn: arctanh + Beskrivning: Hyperbolisk arcus tangens + Parametrar: arctanh(par1) + Exempel: x->arctanh(x) + + exp + Namn: exp + Beskrivning: Exponent (e^x) + Parametrar: exp(par1) + Exempel: x->exp(x) + + ln + Namn: ln + Beskrivning: Bas-e logaritm + Parametrar: ln(par1) + Exempel: x->ln(x) + + log + Namn: log + Beskrivning: Bas-10 logaritm + Parametrar: log(par1) + Exempel: x->log(x) + + conjugate + Namn: conjugate + Beskrivning: Konjugera + Parametrar: conjugate(par1) + Exempel: x->conjugate(x*i) + + arg + Namn: arg + Beskrivning: Argument + Parametrar: arg(par1) + Exempel: x->arg(x*i) + + real + Name: real + Beskrivning: Realdel + Parametrar: real(par1) + Exempel: x->real(x*i) + + imaginary + Namn: imaginary + Beskrivning: Imaginärdel + Parametrar: imaginary(par1) + Exempel: x->imaginary(x*i) + + sum + Namn: sum + Beskrivning: Summering + Parametrar: sum(par1 : var=från..till) + Exempel: x->x*sum(t*t:t=0..3) + + product + Namn: product + Beskrivning: Produkt + Parametrar: product(par1 : var=från..till) + Exempel: x->product(t+t:t=1..3) + + diff + Namn: diff + Beskrivning: Derivata + Parametrar: diff(par1 : var) + Exempel: x->(diff(x^2:x))(x) + + card + Namn: card + Beskrivning: Kardinaltal + Parametrar: card(par1) + Exempel: x->card(vector { x, 1, 2 }) + + scalarproduct + Namn: scalarproduct + Beskrivning: Skalärprodukt + Parametrar: scalarproduct(... parametrar, ...) + Exempel: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Namn: selector + Beskrivning: Välj element par1 från listan eller vektorn par2 + Parametrar: selector(par1, par2) + Exempel: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Namn: union + Beskrivning: Sammanfogar flera objekt av samma typ + Parametrar: union(... parametrar, ...) + Exempel: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Namn: forall + Beskrivning: För alla + Parametrar: forall(par1 : var) + Exempel: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Namn: exists + Beskrivning: Existerar + Parametrar: exists(par1 : var) + Exempel: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Namn: map + Beskrivning: Utför en funktion för varje element i en lista + Parametrar: map(par1, par2) + Exempel: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Namn: filter + Beskrivning: Tar bort alla element som inte uppfyller ett villkor + Parametrar: filter(par1, par2) + Exempel: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Namn: transpose + Beskrivning: Transponera + Parametrar: transpose(par1) + Exempel: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/sv/docs/kalgebra/index.docbook b/po/sv/docs/kalgebra/index.docbook new file mode 100644 index 0000000..e7ade26 --- /dev/null +++ b/po/sv/docs/kalgebra/index.docbook @@ -0,0 +1,935 @@ + + + + MathML"> + + +]> + + + + +Handbok &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+ Stefan Asserhäll
stefan.asserhall@bredband.net
Översättare
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +2020-12-17 +Program 20.12 + + +&kalgebra; är ett program som kan ersätta en grafisk miniräknare. Det har numeriska, logiska, symboliska och analytiska funktioner som gör det möjligt att beräkna matematiska uttryck med räknaren och rita upp resultatet grafiskt i två eller tre dimensioner. &kalgebra; är grundat på det matematiska taggspråket (&MathML;), men man behöver dock inte känna till &MathML; för att använda &kalgebra;. + + + +KDE +kdeedu +graf +matematik +2D +3D +MathML + + +
+ + +Inledning + +&kalgebra; har en mängd funktioner som låter användare utföra alla sorters matematiska operationer och visa dem grafiskt. Tidigare var programmet grundat på &MathML;, men nu kan det användas av vem som helst med en viss kunskap om matematik för att lösa likväl enkla som avancerade problem. + +Det innehåller funktioner som: + + + +En räknare för snabb och enkel utvärdering av matematiska funktioner. +Skriptmöjligheter för avancerade beräkningsserier. +Språkmöjligheter inklusive funktionsdefinitioner och automatisk komplettering av syntax. +Analytiska funktioner inklusive symbolisk derivering, vektoranalys och listhantering. +Uppritning av funktioner med rörlig markör för grafisk rotsökning och andra typer av analys. +Tredimensionell uppritning för användbar återgivning av tredimensionella funktioner. +Ett inbyggt lexikon med operatorer för snabb referens till de många tillgängliga funktionerna. + + +Här är en skärmbild av programmet &kalgebra; i arbete: + + +Här är en skärmbild av huvudfönstret i &kalgebra; + + + + + + Huvudfönstret i &kalgebra; + + + + +När användaren påbörjar en session i &kalgebra;, visas ett enda fönster som består av fliken Räknare, en flik med ett tvådimensionellt diagram, en flik med ett tredimensionellt diagram, och fliken Lexikon. I varje flik finns ett inmatningsfält för att mata in funktioner eller beräkningar, och ett visningsfält som visar resultaten. + +Användaren kan när som helst hantera sessioner med alternativen i huvudmenyn Session: + + + + +&Ctrl; N SessionNy +Öppnar ett nytt fönster i &kalgebra;. + + + +&Ctrl;&Shift; F SessionFullskärmsläge +Ändra fullskärmsläge fönstret i &kalgebra;. Fullskärmsläge kan också sättas på eller stängas av genom att använda knappen längst upp till höger i &kalgebra;s fönster. + + + +&Ctrl; Q SessionAvsluta +Stänger av programmet. + + + + + + + +Syntax +&kalgebra; använder intuitiv algebraisk syntax för att mata in användarfunktioner, som liknar det som används av de flesta moderna grafiska miniräknare. Det här avsnittet listar de grundläggande inbyggda operatorer som är tillgängliga i &kalgebra;. Upphovsmannen till &kalgebra; modellerade syntaxen efter Maxima och Maple för användare som eventuellt är bekanta med dessa program. + +För användare som är intresserade av hur &kalgebra; fungerar internt, konverteras uttryck som matas in av användare till &MathML; i bakgrunden. En rudimentär förståelse av möjligheterna i &MathML; räcker långt för att avslöja de interna möjligheterna i &kalgebra;. + +Här är en lista av operatorer vi har sett nu: + ++ - * / : Addition, subtraktion, multiplikation och division. +^, ** : Upphöjt till, där endera formen kan användas. Dessutom är det möjligt att använda Unicode-tecknet ². Upphöjt till är också ett sätt att skriva rötter. Det kan göras som a**(1/b). +-> : lambda. Detta är sättet en eller flera oberoende variabler anges som ska kopplas till en funktion. Exempelvis används lambda operatorn för att ange att x och y kopplas när funktionen length används i uttrycket length:=(x,y)->(x*x+y*y)^0.5. +x=a..b : Detta används när man behöver begränsa ett intervall (begränsad variabel+övre gräns+undre gräns). Det betyder att x går från a till b. +() : Används för att ange högre prioritet. +abc(parametrar) : Funktioner. När tolken hittar en funktion, kontrolleras om abc är en operator. Om den är det, behandlas den som en operator. Om den inte är det, behandlas den som en användarfunktion. +:= : Definition. Det används för att definiera ett variabelvärde. Man kan skriva uttryck som x:=3, x:=y (vare sig y är definierad eller inte), eller omkrets:=r->2*pi*r. +? : Villkorsdefinition del för del. Vi kan definiera villkorsoperationer i &kalgebra; del för del. Med andra ord, är det ett sätt att ange villkoren om, annars om och annars. Om villkoret anges före '?' används uttrycket bara om det är sant. Om ett '?' utan något villkor hittas, används den sista instansen. Till exempel: piecewise { eq (x,0) ? 0, eq(x,1) ? x+1, ? x**2 } +{ } : &MathML;-omgivning. Den kan användas för att definiera en omgivning. I huvudsak användbar för att arbeta del för del. += > >= < <= : Jämförelse av värden för respektive lika med, större än, större än eller lika med, mindre än, mindre än eller lika med + + +Nu kan man ställa sig frågan varför användaren ska bry sig om &MathML;? Det är enkelt. Med det kan man utnyttja funktioner som cos(), sin() och övriga trigonometriska funktioner, sum() eller product(). Det spelar ingen roll vilken sort den är. Man kan använda plus(), times() och allt som har en operator. Booleska funktioner är också implementerade, så man kan exempelvis skriva något som liknar or(1,0,0,0,0). + + + + +Använda räknaren +&kalgebra;s räknare är användbar som en miniräknare med superstyrka. Användaren kan skriva in uttryck att utvärdera med inställningarna Beräkna eller Utvärdera, beroende på menyvalet Räknare. +I utvärderingsläge förenklar &kalgebra; uttrycket även när det ser en odefinierad variabel. I beräkningsläge beräknar &kalgebra; allting, och om en odefinierad variabel påträffas, visas ett fel. +Förutom att visa ekvationerna som användaren matat in och resultaten i räknaren, visas alla variabler som är deklarerade i en bestående ram till höger. Genom att dubbelklicka på en variabel visas en dialogruta som låter dig ändra värdena (bara ett sätt att gå runt loggen). + +Variabeln ans är speciell. Varje gång ett uttryck skrivs in kommer variabeln ans värde att ändras till det senaste resultatet. + +Det följande är exempelfunktioner som kan matas in i inmatningsfältet på räknarfönstret: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +Det följande visar en skärmbild av räknarfönstret efter att de ovanstående exempeluttrycken har matats in: + +Skärmbild av &kalgebra;s räknarfönster med exempel på uttryck + + + + + + Räknarfönstret i &kalgebra; + + + + + +En användare kan styra hur en serie beräkningar utförs med alternativen i menyn Räknare: + + + + +&Ctrl; L RäknareLadda skript... +Kör instruktioner i en fil i tur och ordning. Användbart om man vill definiera några bibliotek eller återuppta något tidigare arbete. + + + +RäknareSenaste skript +Visar en undermeny som gör att du kan välja senast körda skript. + + + +&Ctrl; G RäknareSpara skript... +Sparar instruktionerna som har skrivits in sedan sessionen påbörjades, för att kunna återanvända dem. Skapar textfiler, som bör vara enkla att ändra med vilken texteditor som helst, såsom &kate;. + + + +&Ctrl; S RäknareExportera logg... +Sparar loggen med alla resultat i en &HTML;-fil, för att kunna skriva ut dem eller publicera dem. + + + +F3 RäknareInfoga ans... +Infoga variabeln ans som gör det enklare att återanvända äldre värden. + + + +RäknareBeräkna +En alternativknapp för att ställa in Körningsläge till beräkning. + + + +RäknareUtvärdera +En alternativknapp för att ställa in Körningsläge till utvärdering. + + + + + + +Tvådimensionella diagram +För att lägga till en ny tvådimensionell graf i &kalgebra;, välj den tvådimensionella fliken och klicka på fliken Lägg till för att lägga till en ny funktion. Då ges fokus till en textruta för inmatning där funktionen kan skrivas in. + + +Syntax +Om en typisk f(x)-funktion ska användas, är det inte nödvändigt att ange det, men om en f(y)-funktion eller polär funktion önskas, måste y-> och q-> anges som bundna variabler. + +Exempel: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Om du har skrivit in funktionen, klicka på knappen Ok för att visa grafen i huvudfönstret. + + + + +Funktioner +Flera grafer kan visas i samma diagram. Använd bara knappen Lägg till i listläge. Varje graf kan få en egen färg. + +Vyn kan zoomas och flyttas med musen. Genom att använda mushjulet kan man zooma in eller ut. Man kan också markera ett område med musens vänsterknapp, så zoomas området in. Flytta vyn med tangentbordets piltangenter. + + + Vyn för tvådimensionellt diagram kan definieras explicit genom att använda fliken Vy under någon av flikarna Tredimensionellt diagram. + + +Under fliken Lista längst ner till höger, kan en flik benämnd Redigering öppnas med ett dubbelklick för att redigera eller ta bort en funktion, samt visa eller dölja den genom att markera eller avmarkera kryssrutan intill funktionen. +I menyn Tvådimensionellt diagram hittar du följande alternativ: + +Rutnät: Visa eller dölj rutnätet +Behåll proportion: Behåll proportion vid zoomning +Spara: Spara (&Ctrl; S) grafen som en bildfil +Zooma in (&Ctrl; +) och Zooma ut (&Ctrl; -) +Verklig storlek: Återställ vyn till ursprunglig zoomning +Upplösning: Följs av en lista med alternativknappar för att välja en upplösning för diagrammen. + + +Nedan är en skärmbild av en användare vars markör är vid roten längst till höger för funktionen sin(1/x). Användaren som ritade upp den använde mycket hög upplösning för att skapa grafen (eftersom den oscillerar med allt högre frekvens nära origo). Det finns också en rörlig markörfunktion som visar x- och y-värden längst ner till vänster på skärmen när markören hålls över en punkt. En rörlig tangentlinje ritas vid funktionen på platsen för den rörliga markören. + + +Här är en skärmbild av fönstret för tvådimensionella diagram i &kalgebra; + + + + + + Fönstret för tvådimensionella diagram i &kalgebra; + + + + + + + + + + +Tredimensionella diagram + +För att rita en tredimensionell graf i &kalgebra;, välj fliken Tredimensionellt diagram. Längst ner finns ett inmatningsfält där funktionen kan skrivas in. Z kan ännu inte definieras. För närvarande stöder &kalgebra; bara tredimensionella diagram som bara beror explicit på x och y, såsom (x,y)->x*y, där z=x*y. + +Exempel: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +Vyn kan zoomas och flyttas med musen. Genom att använda mushjulet kan man zooma in eller ut. Håll nere vänster musknapp och flytta musen för att rotera diagrammet. + +Vänster och höger piltangenter roterar diagrammet omkring Z-axeln, medan uppåt- och neråttangenterna roterar omkring vyns horisontella axel. Tryck på W för att zooma in i diagrammet och S för att zooma ut. + +I menyn Tredimensionellt diagram hittar du följande alternativ: + + +Spara: Spara (&Ctrl; S) grafen som en bildfil eller ett dokument som stöds +Återställ vy: Återställ vyn till ursprunglig zoomning i menyn Tredimensionellt diagram +Du kan rita diagrammet med Punkter, Linjer eller Ytor i menyn Tredimensionellt diagram + + +Nedan finns en skärmbild av den så kallade sombrero-funktionen. Just den här grafen visas med linjestil i det tredimensionella diagrammet. + + +Här är en skärmbild av fönstret för tredimensionella diagram i &kalgebra; + + + + + + Fönstret för tredimensionella diagram i &kalgebra; + + + + + + + +Lexikon + +Lexikonet är en samling av alla inbyggda funktioner i &kalgebra;. Det kan vara användbart för att hitta definitionen av en operation och dess inparametrar. Det är en användbar plats för att få reda på de många möjligheterna i &kalgebra;. + + Nedan visas en skärmbild av uppslagning av funktionen cosinus i &kalgebra;s lexikon. + + +Här är en skärmbild av lexikonfönstret i &kalgebra; + + + + + + Lexikonfönstret i &kalgebra; + + + + + + + +&commands; + + +Tack till och licens + + +Program copyright 2005-2009 &Aleix.Pol; + + + +Dokumentation copyright 2007 &Aleix.Pol; &Aleix.Pol.mail; + +Översättning Stefan Asserhäll stefan.asserhall@bredband.net &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/sv/kalgebra.po b/po/sv/kalgebra.po new file mode 100644 index 0000000..c07cbde --- /dev/null +++ b/po/sv/kalgebra.po @@ -0,0 +1,1139 @@ +# translation of kalgebra.po to Swedish +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Stefan Asserhäll , 2007, 2008, 2009, 2010. +# Stefan Asserhall , 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-12 10:27+0200\n" +"Last-Translator: Stefan Asserhäll \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.08.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Alternativ: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Klistra in \"%1\" i indata" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Klistra in som indata" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Fel: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Importerade: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Fel: Kunde inte läsa in %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Information" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Lägg till eller redigera en funktion" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Förhandsgranskning" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Från:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Till:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Alternativ" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Ok" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Ta bort" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Alternativen du angav är inte riktiga" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Undre gränsen kan inte vara större än den övre" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Rita i två dimensioner" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Rita i tre dimensioner" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Session" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Variabler" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "Rä&knare" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "Räkn&are" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Ladda skript..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Senaste skript" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Spara skript..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Exportera logg..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Infoga ans..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Körningsläge" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Beräkna" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Utvärdera" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Funktioner" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Lista" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Lägg till" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Vy" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&Tvådimensionellt diagram" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Två&dimensionellt diagram" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Rutnät" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Behåll proportion" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Upplösning" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Låg" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Hög" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Mycket hög" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "T&redimensionellt diagram" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "Tredi&mensionellt diagram" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Åte&rställ vy" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Punkter" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Linjer" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Ytor" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Operationer" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Lexikon" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Sök efter:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Redigering" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Välj ett skript" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML-fil (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Fel: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Välj var det återgivna diagrammet ska placeras" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Bildfil (*.png);;SVG-fil (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Klar" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Lägg till variabel" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Ange den nya variabelns namn" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "En flyttbar räknare" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Stefan Asserhäll" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "stefan.asserhall@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Lägg till eller redigera en variabel" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Ta bort variabel" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Redigera värdet '%1'" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "inte tillgänglig" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "Fel" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Vänster:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Överst:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Bredd:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Höjd:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Verkställ" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "PNG-fil (*.png);;PDF-dokument(*.pdf);;X3D-dokument (*.x3d);;STL-dokument " +#~ "(*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "&Terminal" + +#~ msgid "KAlgebra" +#~ msgstr "Kalgebra" + +#~ msgid "&Console" +#~ msgstr "&Terminal" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Utvecklade funktion för att rita implicita kurvor. Förbättringar för " +#~ "uppritning av funktioner." + +#~ msgid "Formula" +#~ msgstr "Formel" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Fel: Oriktig typ av funktion" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Klar: %1ms" + +#~ msgid "Error: %1" +#~ msgstr "Fel: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Rensa" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|PNG-fil" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Genomskinlighet" + +#~ msgid "Type" +#~ msgstr "Typ" + +#~ msgid "Result: %1" +#~ msgstr "Resultat: %1" + +#~ msgid "To Expression" +#~ msgstr "Till uttryck" + +#~ msgid "To MathML" +#~ msgstr "Till MathML" + +#~ msgid "Simplify" +#~ msgstr "Förenkla" + +#~ msgid "Examples" +#~ msgstr "Exempel" + +#~ msgid "We can only draw Real results." +#~ msgstr "Det går bara att rita reella resultat." + +#~ msgid "The expression is not correct" +#~ msgstr "Uttrycket är inte riktigt" + +#~ msgid "Function type not recognized" +#~ msgstr "Funktionstypen känns inte igen" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Funktionstypen inte riktig för funktioner som beror på %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Implicit funktion odefinierad i planet" + +#~ msgid "center" +#~ msgstr "Centrera" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Namn" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Funktion" + +#~ msgid "%1 function added" +#~ msgstr "%1 funktion tillagd" + +#~ msgid "Hide '%1'" +#~ msgstr "Dölj '%1'" + +#~ msgid "Show '%1'" +#~ msgstr "Visa '%1'" + +#~ msgid "Selected viewport too small" +#~ msgstr "Vald vy för liten" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Beskrivning" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Parametrar" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Exempel" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : var" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=från..till" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1 ..., parametrar, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Addition" + +#~ msgid "Multiplication" +#~ msgstr "Multiplikation" + +#~ msgid "Division" +#~ msgstr "Division" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Subtraktion. Tar bort alla värden från det första." + +#~ msgid "Power" +#~ msgstr "Upphöjt till" + +#~ msgid "Remainder" +#~ msgstr "Rest" + +#~ msgid "Quotient" +#~ msgstr "Kvot" + +#~ msgid "The factor of" +#~ msgstr "Faktorn av" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Fakultet. factorial(n) = n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Funktion för att beräkna sinus för en given vinkel" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Funktion för att beräkna cosinus för en given vinkel" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Funktion för att beräkna tangens för en given vinkel" + +#~ msgid "Secant" +#~ msgstr "Sekant" + +#~ msgid "Cosecant" +#~ msgstr "Cosekant" + +#~ msgid "Cotangent" +#~ msgstr "Cotangens" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Hyperbolisk sinus" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Hyperbolisk cosinus" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Hyperbolisk tangens" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Hyperbolisk sekant" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Hyperbolisk cosekant" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Hyperbolisk cotangens" + +#~ msgid "Arc sine" +#~ msgstr "Arcus sinus" + +#~ msgid "Arc cosine" +#~ msgstr "Arcus cosinus" + +#~ msgid "Arc tangent" +#~ msgstr "Arcus tangens" + +#~ msgid "Arc cotangent" +#~ msgstr "Arcus cotangens" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Hyperbolisk arcus tangens" + +#~ msgid "Summatory" +#~ msgstr "Summa" + +#~ msgid "Productory" +#~ msgstr "Produkt" + +#~ msgid "For all" +#~ msgstr "För alla" + +#~ msgid "Exists" +#~ msgstr "Det existerar" + +#~ msgid "Differentiation" +#~ msgstr "Derivering" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Hyperbolisk arcus sinus" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Hyperbolisk arcus cosinus" + +#~ msgid "Arc cosecant" +#~ msgstr "Arcus cosekant" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Hyperbolisk arcus cosekant" + +#~ msgid "Arc secant" +#~ msgstr "Arcus sekant" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Hyperbolisk arcus sekant" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Exponent (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Bas-e logaritm" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Bas-10 logaritm" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Absolutvärde. abs(n) = |n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Golvfunktion. ceil(n) = ⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Takfunktion. ceil(n) =⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Minimum" + +#~ msgid "Maximum" +#~ msgstr "Maximum" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Större än. gt(a,b) = a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : gränser" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Värde" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Måste ange en riktig operation" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Okänd identifierare: '%1'" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Kunde inte hitta lämpligt val för en villkorssats." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Typ stöds inte för avgränsning." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Undre gränsen är större än den övre" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Felaktig övre eller undre gräns." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Definierade en cyklisk variabel" + +#~ msgid "The result is not a number" +#~ msgstr "Resultatet är inte ett tal" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Kom oväntat till slutet av indata" + +#~ msgid "Unknown token %1" +#~ msgstr "Okänd symbol %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 kräver minst två parametrar" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 kräver %2 parametrar" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "Saknar gräns för '%1'" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Oväntad avgränsning för '%1'" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "%1 saknar gränser för '%2'" + +#~ msgid "Wrong declare" +#~ msgstr "Felaktig deklaration" + +#~ msgid "Empty container: %1" +#~ msgstr "Tom behållare: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Villkor får bara finnas inne i villkorsstrukturer." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "Det kan inte finnas två parametrar med samma namn som '%1'." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Parametern otherwise ska vara den sista" + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 är inte ett riktigt villkor inne i villkorssatsen" + +#~ msgid "We can only declare variables" +#~ msgstr "Det går bara att deklarera variabler" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Det går bara att ha gränsvariabler" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Fel vid tolkning: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Okänd behållare: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Kan inte tolka värdet %1." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Operatorn %1 kan inte ha underliggande objektsammanhang." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Elementet '%1' är inte en operator" + +#~ msgid "Do not want empty vectors" +#~ msgstr "Vill inte ha tomma vektorer" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Stöds inte eller okänd: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Förväntade %1 istället för '%2'" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Saknar högerparentes" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Obalanserad högerparentes" + +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Oväntad symbolidentifierare: %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Oväntad symbol %1" + +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Kunde inte hitta en typ som förenar '%1'" + +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "Domänen ska antingen vara en vektor eller en lista" + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Felaktigt antal parametrar för '%2'. Ska vara 1 parametrar." +#~ msgstr[1] "Felaktigt antal parametrar för '%2'. Ska vara %1 parametrar." + +#~ msgid "Could not call '%1'" +#~ msgstr "Kunde inte anropa '%1'" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Kunde inte lösa '%1'" + +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Osammanhängande typ för variabeln '%1'" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Kunde inte bestämma typ för villkorssats" + +#~ msgid "Unexpected type" +#~ msgstr "Oväntad typ" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Kan inte konvertera '%1' till '%2'" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Okänd symbol %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Kan inte beräkna rest för 0." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Kan inte beräkna faktor för 0." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Kan inte beräkna minsta gemensamma faktor för 0." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Kunde inte beräkna ett värdes %1" + +#~ msgid "Invalid index for a container" +#~ msgstr "Ogiltigt index för en behållare" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Kan inte utföra beräkning med vektorer av olika storlek." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Kunde inte beräkna en vektors %1" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Kunde inte beräkna en listas %1" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Kunde inte beräkna derivatan av '%1'" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Kunde inte reducera '%1' och '%2'." + +#~ msgid "Incorrect domain." +#~ msgstr "Felaktig domän." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Parameterfunktionen returnerar inte en vektor" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "En tvådimensionell vektor behövs" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Parameterfunktionens objekt måste vara skalärer" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "Derivata av ordningen %1 har inte implementerats." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Förstod inte det verkliga värdet: %1" + +#~ msgid "Subtraction" +#~ msgstr "Subtraktion" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Fel: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Välj ett element från behållaren" + +#~ msgid " Plot 3D" +#~ msgstr " Rita i tre dimensioner" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Fel: Det behövs värden för att rita ett diagram" + +#~ msgid "Generating... Please wait" +#~ msgstr "Producerar ... Vänta" + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Felaktigt antal parametrar, har 1 parameter för '%2'" +#~ msgstr[1] "Felaktigt antal parametrar, har %1 parametrar för '%2'" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Spara logg" + +#~ msgid "File" +#~ msgstr "Arkiv" + +#~ msgid "We can only call functions" +#~ msgstr "Det går bara att anropa funktioner" + +#~ msgid "Wrong parameter count" +#~ msgstr "Felaktigt antal parametrar" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "sant" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "falskt" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Invalid parameter count." +#~ msgstr "Felaktigt antal parametrar." + +#~ msgid "Mode" +#~ msgstr "Läge" + +#~ msgid "Save the expression" +#~ msgstr "Spara uttrycket" + +#~ msgid "Calculate the expression" +#~ msgstr "Beräkna uttrycket" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot apply '%1' to '%2'" +#~ msgstr "Kan inte tilldela '%1' till '%2'" + +#~ msgid "Cannot operate '%1'" +#~ msgstr "Kan inte utföra beräkning '%1'" + +#~ msgid "Cannot check '%1' type" +#~ msgstr "Kan inte kontrollera typen hos '%1'." + +#~ msgid "Wrong number of parameters when calling '%1'" +#~ msgstr "Fel antal parametrar vid anrop till '%1'" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Kan inte ha undre gräns ≥ övre gräns" + +#~ msgid "Trying to call an invalid function" +#~ msgstr "Försök att anropa en ogiltig funktion" + +#~ msgid "Unfulfilled dependencies for: '%1'" +#~ msgstr "Ouppfyllda beroenden för: '%1'" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "We want a 2 dimension vector" +#~ msgstr "Vi vill ha en tvådimensionell vektor" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Funktionen %1 finns inte" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Variabeln %1 finns inte" + +#~ msgid "Need a var name and a value" +#~ msgstr "Kräver ett variabelnamn och ett värde" + +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "En behållares värde kan bara väljas med dess heltalsindex" + +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "The first parameter in a function should be the name" +#~ msgstr "Den första parametern i en funktion ska vara namnet" diff --git a/po/sv/kalgebramobile.po b/po/sv/kalgebramobile.po new file mode 100644 index 0000000..b33b074 --- /dev/null +++ b/po/sv/kalgebramobile.po @@ -0,0 +1,326 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# SPDX-FileCopyrightText: 2018, 2019, 2020, 2021, 2022, 2023, 2024 Stefan Asserhäll +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-06-17 21:19+0200\n" +"Last-Translator: Stefan Asserhäll \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 23.08.5\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Räknare" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "Kalgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Läs in skript" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Skript (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Spara skript" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Exportera logg" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Utvärdera" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Beräkna" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Rensa logg" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Tvådimensionellt diagram" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Tredimensionellt diagram" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Kopiera \"%1\"" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Töm terminalhistorik" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Lägg till" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Rensa alla" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Stäng dialogruta" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Ta bort diagram" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Inget diagram tillgängligt" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Uttryck att beräkna..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Ordlista" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Namn:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Tvådimensionell graf" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Tredimensionell graf" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Värdetabeller" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Variabler" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Lexikon" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Om Kalgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Tvådimensionellt diagram" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Spara" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Visa rutnät" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Återställ visningsområde" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Tredimensionellt diagram" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Resultat" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Värdetabeller" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Fel: Steget kan inte vara 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Fel: Start och slut är likadana" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Fel: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Kör" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Indata" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Från:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Till:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Steg" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Kör" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "En flyttbar räknare" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Underhåll" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Stefan Asserhäll" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "stefan.asserhall@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "Mobil Kalgebra" + +#~ msgid "A simple scientific calculator" +#~ msgstr "En enkel vetenskaplig räknare" + +#~ msgid "Results:" +#~ msgstr "Resultat:" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "Kalgebra kommer till dig av den underbara KDE-gemenskapen och KDE Utbildning från " +#~ "en miljö med fri programvara." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "Om du vill ta reda på mer om Kalgebra, hittar du mer information på den " +#~ "officiella webbplatsen och i användarnas wiki.
Om du har några problem med " +#~ "programvaran, rapportera det gärna till vårt felspårningsverktyg." diff --git a/po/te/kalgebra.po b/po/te/kalgebra.po new file mode 100644 index 0000000..0322ac7 --- /dev/null +++ b/po/te/kalgebra.po @@ -0,0 +1,478 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the kalgebra package. +# +# GVS.Giri , 2013. +# Bhuvan Krishna , 2014. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2013-11-11 22:08+0630\n" +"Last-Translator: \n" +"Language-Team: American English \n" +"Language: te\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Lokalize 1.4\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "ఇచ్ఛాపూర్వకాలు: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "ఎగుబడి కు \"%1\" అతికించు" + +#: consolemodel.cpp:95 +#, fuzzy, kde-format +#| msgid "Paste \"%1\" to input" +msgid "Paste to Input" +msgstr "ఎగుబడి కు \"%1\" అతికించు" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    దోషం: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "దిగుమతి: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "" +"
    దోషం: %1 భారం చెయ్యడం సాధ్యం కాలేదు.l %1
  • %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "సమాచారం" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "ఒక కార్యం జోడించు / సవరించు" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "ఉపదర్శనం" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr " నుండి:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "వరకు:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "ఇచ్ఛాపూర్వకాలు" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "సరే" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "తీసివేయు" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "మీరు పేర్కొన్న ఇచ్ఛాపూర్వకాలు సరిగ్గా లేవు " + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "క్రిందిహద్దు పరిమితి ఎగువహద్దు కంటే ఎక్కువ ఉండకూడదు" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "ఇతివృత్తం 2D" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "ఇతివృత్తం 3D" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "సమకూర్పు" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "చరరాశిలు" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "లెక్కించేందుకు" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "లెక్కించేందుకు" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&లిపి భారం..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "ఇంతుకుముందు లిపి" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&లిపిన్ని దాచు..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&ఎగుమతి నమోదు..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "అమలు విధం" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "లెక్కించేందుకు" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "అంచనావెయ్యి" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "కార్యంలు" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "జాబితా" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&జోడించు" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "దర్శనరేవు" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2D రేఖాపటం" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&D రేఖాపటం" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&గ్రిడ్" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&దృశ్య నిష్పత్తి ఉంచండి" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "పర్మినం" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "పేద" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "సాధారణ" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "బాగుంది " + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "చాలా బాగుంది " + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3D రేఖాపటం" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3D &రేఖాపటం" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&దర్శనం పునః ప్రారంభం" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "బిందువులు" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "లైనులు" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "గట్టి" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "కార్యంలు" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&నిఘంటువు" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "చూచు కొరకు:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&సవరించడం" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "ఒక లిపి ఎంచుకోండి" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "లిపి (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML దస్త్రం (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "," + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "దోషలు: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +#| msgid "" +#| "*.png|Image File\n" +#| "*.svg|SVG File" +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|Image దస్త్రం\n" +"*.svg|SVG దస్త్రం" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "సిద్ధం" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "చరరాశిని జోడించు" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "కొత్త చరరాశి కొరకు ఒక పేరును నమోదు చేయండి" + +#: main.cpp:33 +#, fuzzy, kde-format +#| msgid "A calculator" +msgid "A portable calculator" +msgstr "ఒక గణనయంత్రం" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "(C) 2006-2010 Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2010 Aleix పాల్ గొంజాలెజ్" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix పాల్ గొంజాలెజ్" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "GVS Giri, Bhuvan Krishna " + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "gvs.giri@swecha.net, bhuvan@swecha.net" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "ఒక కార్యం జోడించు / సవరించు" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "కార్యం తీసివేయు " + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "సవరించు '%1' విలువ" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "లభ్యత లేదు" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "తప్పు" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "ఎడమ:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "ఎగువన:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "వెడెల్పు:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "ఎత్తు" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "అనుసంధించు" + +#, fuzzy +#~| msgid "" +#~| "*.png|PNG File\n" +#~| "*.pdf|PDF Document" +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "*.png|PNG దస్త్రం\n" +#~ "*.pdf|PDF పత్రం" + +#~ msgid "C&onsole" +#~ msgstr "C&కన్సోల్" + +#~ msgid "&Console" +#~ msgstr "&కన్సోల్" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "పెర్సీ కామిలో త్రీవేనొ ఔకహూసి " + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "అవ్యక్త వక్రతలు గీయడం కోసం విశిష్ఠ అభివృద్ధి. ఇతివృత్తం కోసం అభివృద్ధివిధులు." diff --git a/po/tg/kalgebra.po b/po/tg/kalgebra.po new file mode 100644 index 0000000..b0d4a24 --- /dev/null +++ b/po/tg/kalgebra.po @@ -0,0 +1,883 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Victor Ibragimov , 2008. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2008-10-07 04:34-0800\n" +"Last-Translator: Victor Ibragimov \n" +"Language-Team: Tajik <>\n" +"Language: tg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr "" + +#: consolehtml.cpp:172 +#, fuzzy, kde-format +msgid "Options: %1" +msgstr "Амалиётҳо" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, fuzzy, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
  • Рақами телефон: %N
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, fuzzy, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
  • Рақами телефон: %N
" + +#: dictionary.cpp:45 +#, fuzzy, kde-format +msgid "Information" +msgstr "Иттилоот" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, fuzzy, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, fuzzy, kde-format +msgid "Add/Edit a function" +msgstr "Илова кардан/Таҳрири Муштаракнамоӣ" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "" + +#: functionedit.cpp:108 +#, fuzzy, kde-format +msgid "Options" +msgstr "Амалиётҳо" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "OK" + +#: functionedit.cpp:115 +#, fuzzy, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Несткунӣ" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, fuzzy, kde-format +msgid "Session" +msgstr "Ифодаи Муқаррарӣ" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, fuzzy, kde-format +msgid "Variables" +msgstr "&Таъғирёбандаҳо" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +msgid "&Calculator" +msgstr "Калкулятор" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +msgid "C&alculator" +msgstr "Калкулятор" + +#: kalgebra.cpp:196 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "Джава&Хат" + +#: kalgebra.cpp:200 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgid "Recent Scripts" +msgstr "&Захираи скрипт" + +#: kalgebra.cpp:205 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "&Save Script" +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Захираи скрипт" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Калкулятор" + +#: kalgebra.cpp:215 +#, fuzzy, kde-format +#| msgctxt "@title:column" +#| msgid "Value" +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Миқдор" + +#: kalgebra.cpp:235 +#, fuzzy, kde-format +msgid "Functions" +msgstr "Функсияҳо" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Рӯйхат " + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Илова" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&Намоиши 2D" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Намоиши 2&D" + +#: kalgebra.cpp:287 +#, fuzzy, kde-format +msgid "&Grid" +msgstr "Шабақа" + +#: kalgebra.cpp:288 +#, fuzzy, kde-format +msgid "&Keep Aspect Ratio" +msgstr "Нигоҳ доштани &муносибат" + +#: kalgebra.cpp:296 +#, fuzzy, kde-format +msgid "Resolution" +msgstr "Иҷозат додан" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Оддӣ" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "" + +#: kalgebra.cpp:300 +#, fuzzy, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Ҳалли мураттаб" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&Намоиши 3D" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "&Намоиши 3D" + +#: kalgebra.cpp:345 +#, fuzzy, kde-format +msgid "&Reset View" +msgstr "Намуди Ф&илтер" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "" + +#: kalgebra.cpp:351 +#, fuzzy, kde-format +msgid "Solid" +msgstr "Сохтро истифода намоед" + +#: kalgebra.cpp:368 +#, fuzzy, kde-format +msgid "Operations" +msgstr "Амалиётҳо" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Луғат" + +#: kalgebra.cpp:383 +#, fuzzy, kde-format +msgid "Look for:" +msgstr "Ҷустуҷӯи калиди додашуда" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Таҳрир кардан" + +#: kalgebra.cpp:533 +#, fuzzy, kde-format +msgid "Choose a script" +msgstr "Джава&Хат" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, fuzzy, kde-format +msgid "Script (*.kal)" +msgstr "Джава&Хат" + +#: kalgebra.cpp:560 +#, fuzzy, kde-format +msgid "HTML File (*.html)" +msgstr "Файли Матн" + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, fuzzy, kde-format +msgid "Errors: %1" +msgstr "Хатогӣ: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, fuzzy, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "&Номи тасвири фйлро нишон диҳед" + +#: kalgebra.cpp:692 +#, fuzzy, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Тайёр аст" + +#: kalgebra.cpp:726 +#, fuzzy, kde-format +msgid "Add variable" +msgstr "Илова кардан/Таҳрири Муштаракнамоӣ" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, fuzzy, kde-format +msgid "A portable calculator" +msgstr "Калкулятор" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Tajik KDE & Software Localization: Victor Ibragimov" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "youth_opportunities@tajik.net" + +#: varedit.cpp:35 +#, fuzzy, kde-format +msgid "Add/Edit a variable" +msgstr "Илова кардан/Таҳрири Муштаракнамоӣ" + +#: varedit.cpp:40 +#, fuzzy, kde-format +msgid "Remove Variable" +msgstr "&Таъғирёбандаҳо" + +#: varedit.cpp:65 +#, fuzzy, kde-format +msgid "Edit '%1' value" +msgstr "6: Аҳамияти комилӣ" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "дастрас нест" + +#: varedit.cpp:100 +#, fuzzy, kde-format +msgid "%1 := %2" +msgstr "Ифодоти ранг лозим аст" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "" + +#~ msgid "C&onsole" +#~ msgstr "К&онсол" + +#~ msgid "&Console" +#~ msgstr "&Консол" + +#, fuzzy +#~ msgid "Formula" +#~ msgstr "%1" + +#, fuzzy +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Гузошта шудааст" + +#, fuzzy +#~ msgid "Error: %1" +#~ msgstr "Хатогӣ: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Тоза кунед" + +#, fuzzy +#~ msgid "*.png|PNG File" +#~ msgstr "Нусхабардории файл" + +#, fuzzy +#~ msgid "&Transparency" +#~ msgstr "Шаффофӣ" + +#~ msgid "Type" +#~ msgstr "Намуд" + +#, fuzzy +#~ msgid "To Expression" +#~ msgstr "Ифодаи Муқаррарӣ" + +#, fuzzy +#~ msgid "To MathML" +#~ msgstr "Марҳамат намоед ба %s" + +#, fuzzy +#~| msgctxt "@title:column" +#~| msgid "Example" +#~ msgid "Examples" +#~ msgstr "Мисол" + +#, fuzzy +#~ msgid "center" +#~ msgstr "Марказ:" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Ном" + +#, fuzzy +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Функсия" + +#, fuzzy +#~ msgid "%1 function added" +#~ msgstr "Маҳаллӣ илова шудааст" + +#, fuzzy +#~ msgid "Hide '%1'" +#~ msgstr "Пинҳон кардани '%1'" + +#, fuzzy +#~ msgid "Show '%1'" +#~ msgstr "Намоиш" + +#, fuzzy +#~ msgid "Selected viewport too small" +#~ msgstr "" +#~ "Диапозони\n" +#~ "%1\n" +#~ "аз ҳад зиёд майда аст" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Тафсилот" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Параметрҳо" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Мисол" + +#, fuzzy +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "Параметрҳо" + +#, fuzzy +#~ msgid "par%1" +#~ msgstr "Хол" + +#, fuzzy +#~ msgid "Addition" +#~ msgstr "Ҷамъ кардан" + +#, fuzzy +#~ msgid "Multiplication" +#~ msgstr "Зарб" + +#, fuzzy +#~ msgid "Division" +#~ msgstr "Тақсим" + +#, fuzzy +#~ msgid "Power" +#~ msgstr "Тавоноӣ" + +#, fuzzy +#~ msgid "Quotient" +#~ msgstr "QUOTIENT(сурат;махраҷ)" + +#, fuzzy +#~ msgid "The factor of" +#~ msgstr "Зарбкунанда:" + +#, fuzzy +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Факториал" + +#, fuzzy +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Ифодаи Муқаррарӣ" + +#, fuzzy +#~ msgid "Secant" +#~ msgstr "Кунҷи рангинкамон:" + +#, fuzzy +#~ msgid "Cosecant" +#~ msgstr "Кунҷи рангинкамон:" + +#, fuzzy +#~ msgid "Cotangent" +#~ msgstr "Кунҷи рангинкамон:" + +#, fuzzy +#~ msgid "Hyperbolic sine" +#~ msgstr "Косинуси гиперболикӣ" + +#, fuzzy +#~ msgid "Hyperbolic cosine" +#~ msgstr "Косинуси гиперболикӣ" + +#, fuzzy +#~ msgid "Hyperbolic tangent" +#~ msgstr "Тангенси гиперболикӣ" + +#, fuzzy +#~ msgid "Hyperbolic secant" +#~ msgstr "Косинуси гиперболикӣ" + +#, fuzzy +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Косинуси гиперболикӣ" + +#, fuzzy +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Косинуси гиперболикӣ" + +#, fuzzy +#~ msgid "Arc sine" +#~ msgstr "Арксинус" + +#, fuzzy +#~ msgid "Arc cosine" +#~ msgstr "Қавси косинус" + +#, fuzzy +#~ msgid "Arc tangent" +#~ msgstr "Қавси тангенс" + +#, fuzzy +#~ msgid "Arc cotangent" +#~ msgstr "Кунҷи рангинкамон:" + +#, fuzzy +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Бозгашти тангенси гиперболикӣ" + +#, fuzzy +#~| msgctxt "@item:inmenu" +#~| msgid "Normal" +#~ msgid "For all" +#~ msgstr "Оддӣ" + +#, fuzzy +#~| msgid "List" +#~ msgid "Exists" +#~ msgstr "Рӯйхат " + +#, fuzzy +#~| msgctxt "@title:column" +#~| msgid "Description" +#~ msgid "Differentiation" +#~ msgstr "Тафсилот" + +#, fuzzy +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Бозгашти косинуси гиперболикӣ" + +#, fuzzy +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Бозгашти косинуси гиперболикӣ" + +#, fuzzy +#~ msgid "Arc cosecant" +#~ msgstr "Кунҷи рангинкамон:" + +#, fuzzy +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Интихоб намудани ин қавс" + +#, fuzzy +#~ msgid "Arc secant" +#~ msgstr "Кунҷи рангинкамон:" + +#, fuzzy +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Интихоб намудани ин қавс" + +#, fuzzy +#~ msgid "Exponent (e^x)" +#~ msgstr "Нигоранда:" + +#, fuzzy +#~ msgid "Base-e logarithm" +#~ msgstr "Логарифм дар асоси 10" + +#, fuzzy +#~ msgid "Base-10 logarithm" +#~ msgstr "Логарифм дар асоси 10" + +#, fuzzy +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "ABS(12.5) баробар 12.5" + +#, fuzzy +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Қиммати 0 тамомшавии вақтро дар мегиронад" + +#, fuzzy +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Қиммати 0 тамомшавии вақтро дар мегиронад" + +#, fuzzy +#~ msgid "Minimum" +#~ msgstr "Минимум:" + +#, fuzzy +#~ msgid "Maximum" +#~ msgstr "Максимум:" + +#, fuzzy +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "зиёдтар аз" + +#, fuzzy +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "Номинал" + +#, fuzzy +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "Фармонҳои &модем..." + +#, fuzzy +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "Хол" + +#, fuzzy +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#, fuzzy +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#, fuzzy +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr "Берун аз сарҳад" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Миқдор" + +#, fuzzy +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr ", " + +#, fuzzy +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "3: Кунҷи обзори амудӣ, бидуни қайдот" + +#, fuzzy +#~ msgid "We can only have bounded variables" +#~ msgstr "3: Кунҷи обзори амудӣ, бидуни қайдот" + +#, fuzzy +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "3: Кунҷи обзори амудӣ, бидуни қайдот" + +#, fuzzy +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Ифодаи Муқаррарӣ" + +#, fuzzy +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Ифодаи Муқаррарӣ" + +#, fuzzy +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Ифодаи Муқаррарӣ" + +#, fuzzy +#~ msgid "Invalid index for a container" +#~ msgstr "Аз рӯйхат объектро интихоб кунед" + +#, fuzzy +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Ифодаи Муқаррарӣ" + +#, fuzzy +#~ msgid "Subtraction" +#~ msgstr "Илова/Тарҳ" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Хато: %2" + +#, fuzzy +#~ msgid "Select an element from a container" +#~ msgstr "Аз рӯйхат объектро интихоб кунед" + +#, fuzzy +#~ msgid "Generating... Please wait" +#~ msgstr "Дар ҳоли бадалгардонист. Интизор шавед..." + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Захираи журнал" + +#, fuzzy +#~ msgid "We can only call functions" +#~ msgstr "3: Кунҷи обзори амудӣ, бидуни қайдот" + +#~ msgid "Mode" +#~ msgstr "Ҳолат" + +#~ msgid "Save the expression" +#~ msgstr "Захираи ифодаҳо" + +#, fuzzy +#~ msgid "Calculate the expression" +#~ msgstr "Ифодаи Муқаррарӣ" + +#, fuzzy +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Сабткунӣ давом дода намешавад" + +#, fuzzy +#~ msgid "%1" +#~ msgstr "&Red Hat Linux" + +#, fuzzy +#~ msgid "From parser:" +#~ msgstr "Аз буфери иваз" diff --git a/po/tr/kalgebra.po b/po/tr/kalgebra.po new file mode 100644 index 0000000..0e7c9a7 --- /dev/null +++ b/po/tr/kalgebra.po @@ -0,0 +1,462 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# H. İbrahim Güngör , 2011. +# Kunter Kutlu , 2008. +# Necmettin Begiter , 2008. +# Ozan Çağlayan , 2010. +# Renan Cakirerk, 2010. +# obsoleteman , 2007-2009. +# Volkan Gezer , 2014. +# Kaan Ozdincer , 2014. +# SPDX-FileCopyrightText: 2022, 2023, 2024 Emir SARI +msgid "" +msgstr "" +"Project-Id-Version: kdeedu-kde4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2024-09-23 15:21+0300\n" +"Last-Translator: Emir SARI \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 24.11.70\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Seçenekler: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "\"%1\" metnini girdiye yapıştır" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Girdiye Yapıştır" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    Hata: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "İçe aktarıldı: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Hata: %1 yüklenemedi.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Bilgi" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "İşlev ekle veya düzenle" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Önizleme" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Kimden:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "Alıcı:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Seçenekler" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Tamam" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Kaldır" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Verdiğiniz seçenek doğru değil" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Alt sınır üst sınırdan büyük olamaz" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "2B Çizim" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "3B Çizim" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Oturum" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Değişkenler" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Hesap Makinesi" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "Hes&aplayıcı" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Betik Yükle..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Güncel Betikler" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "Betiği &Kaydet" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Sistem Günlüğünü Dışa Aktar..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&ans Ekle..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Çalıştırma Kipi" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Hesapla" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Hesapla" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "İşlevler" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Liste" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Ekle" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Görüş alanı" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&2B Grafik" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "2&B Grafik" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "Iz&gara" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Görünüm Oranını Koru" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Çözünürlük" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Zayıf" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Normal" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "İyi" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Çok İyi" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&3B Grafik" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "3B &Grafik" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "Görünümü Sıfı&rla" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Noktalar" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Çizgiler" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Katı" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "İşlemler" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "S&özlük" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Aranacak:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "Dü&zenleme" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Bir betik seçin" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Betik (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML Dosyası(*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Hatalar: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Sunulan çizimin nereye konacağını seçin" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "Resim Dosyası (*.png);;SVG Dosyası (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Hazır" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Değişken ekle" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Yeni değişkenin adını girin" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Taşınabilir bir hesap makinesi" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© 2006–2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Necdet Yücel, Serdar Soytetir, Ahmet Duran" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "necdetyucel@gmail.com, tulliana@gmail.com, paradoxical.boy@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Bir değişken ekle/değiştir" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Değişkeni Kaldır" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "'%1' değerini değiştir" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "kullanılabilir değil" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "YANLIŞ" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Sol:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Üst:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Genişlik:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Yükseklik:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Uygula" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "PNG Dosyası (*.png);;PDF Belgesi(*.pdf);;X3D Belgesi (*.x3d);;STL Belgesi " +#~ "(*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "K&onsol" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Konsol" diff --git a/po/tr/kalgebramobile.po b/po/tr/kalgebramobile.po new file mode 100644 index 0000000..ac18465 --- /dev/null +++ b/po/tr/kalgebramobile.po @@ -0,0 +1,294 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# SPDX-FileCopyrightText: 2022, 2023, 2024 Emir SARI +# Emir SARI , 2023. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-09-23 15:21+0300\n" +"Last-Translator: Emir SARI \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 24.11.70\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Hesap Makinesi" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "K Cebir" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Betik Yükle" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Betik (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Betiği Kaydet" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Günlüğü Dışa Aktar" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Değerlendir" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Hesapla" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Günlüğü Temizle" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2B Çizim" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3B Çizim" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "\"%1\" Kopyala" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Konsol geçmişini boş" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Ekle" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Tümünü Temizle" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "İletişim Kutusunu Kapat" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Çizimi Kaldır" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Kullanılabilir çizim yok" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Hesaplanacak ifade..." + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Sözlük" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Ad:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "2B Grafik" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "3B Grafik" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Değer Tabloları" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Değişkenler" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Sözlük" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "K Cebir Hakkında" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2B Çizim" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Kaydet" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Izgarayı Görüntüle" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Alanı Sıfırla" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3B Çizim" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Sonuçlar" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Değer tabloları" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Hatalar: Adım 0 olamaz" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Hatalar: Başlangıç ve bitiş aynı" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Hatalar: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Çalıştır" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Girdi" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Nereden:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "Nereye:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Adım" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Çalıştır" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Taşınabilir bir hesap makinesi" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© 2006–2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Bakımcı" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Emir SARI" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "emir_sari@icloud.com" diff --git a/po/ug/kalgebra.po b/po/ug/kalgebra.po new file mode 100644 index 0000000..bce5eb2 --- /dev/null +++ b/po/ug/kalgebra.po @@ -0,0 +1,563 @@ +# Uyghur translation for kalgebra. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Sahran , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2013-09-08 07:05+0900\n" +"Last-Translator: Gheyret Kenji \n" +"Language-Team: Uyghur Computer Science Association \n" +"Language: ug\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: consolehtml.cpp:167 +#, fuzzy, kde-format +#| msgid " %2" +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "تاللانما: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    خاتالىق: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    خاتالىق: %1 نى ئوقۇغىلى بولمىدى.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "ئۇچۇر" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "ئالدىن كۆزەت" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "ئەۋەتكۈچى:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "خەت تاپشۇرۇۋالغۇچى:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "تاللانما" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "تامام" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "چىقىرىۋەت" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "ئەڭگىمە" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "ئۆزگەرگۈچىلەر" + +#: kalgebra.cpp:182 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "&Calculator" +msgstr "ھېسابلا" + +#: kalgebra.cpp:194 +#, fuzzy, kde-format +#| msgctxt "@item:inmenu" +#| msgid "Calculate" +msgid "C&alculator" +msgstr "ھېسابلا" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "ھېسابلا" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "باھا" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "فۇنكسىيىلەر" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "تىزىم" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "قوش(&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "كۆرۈنۈش ئېغىزى(Viewport)" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "كاتەك(&G)" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "ئېگىزلىك-كەڭلىك نىسبىتىنى ساقلاپ قال(&K)" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "ئېنىقلىق" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "ناچار" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "نورمال" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "سىپتا" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "چېكىت" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "سىزىقلار" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "لىق تولغان" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "ھېسابلا" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "لۇغەت(&D)" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "، " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "تەييار" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "" + +#: main.cpp:35 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:36 +#, fuzzy, kde-format +#| msgid "Aleix Pol Gonzalez" +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ئابدۇقادىر ئابلىز, غەيرەت كەنجى" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sahran.ug@gmail.com, gheyret@gmail.com" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "ئىشلەتكىلى بولمايدۇ" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "سول:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "چوققا:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "كەڭلىك:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "ئېگىزلىك:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "قوللان" + +#~ msgid "C&onsole" +#~ msgstr "تىزگىن سۇپا(&O)" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "Formula" +#~ msgstr "فورمۇلا" + +#~ msgid "Error: %1" +#~ msgstr "خاتالىق: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "تازىلا" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "سۈزۈك(&T)" + +#~ msgid "Type" +#~ msgstr "تىپى" + +#~ msgid "Simplify" +#~ msgstr "ئاددىيلاشتۇر" + +#~ msgid "Examples" +#~ msgstr "مىساللار" + +#~ msgid "center" +#~ msgstr "ئوتتۇرا" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "ئاتى" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "فۇنكسىيە" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "چۈشەندۈرۈش" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "پارامېتىر" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "مىسال" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "قوشۇش" + +#~ msgid "Multiplication" +#~ msgstr "كۆپەيتىش" + +#~ msgid "Division" +#~ msgstr "تارماق" + +#~ msgid "Power" +#~ msgstr "توك مەنبە" + +#~ msgid "Cotangent" +#~ msgstr "كونتاگېنس" + +#~ msgid "Hyperbolic sine" +#~ msgstr "گىپېربولالىق سىنۇس" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "گىپېربولالىق كوسىنوس" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "گىپېربولالىق تانگېنس" + +#~ msgid "Arc sine" +#~ msgstr "ئارك سىنۇس" + +#~ msgid "Arc cosine" +#~ msgstr "ئارك كوسىنوس" + +#~ msgid "Arc tangent" +#~ msgstr "ئارك تانگېنس" + +#~ msgid "Minimum" +#~ msgstr "ئەڭ كىچىك" + +#~ msgid "Maximum" +#~ msgstr "ئەڭ چوڭ" + +#~ msgid "Root" +#~ msgstr "غول مۇندەرىجە" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr "، " + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "قىممەت" + +#~ msgid "Unexpected type" +#~ msgstr "كۈتۈلمىگەن تىپ" diff --git a/po/uk/docs/kalgebra/commands.docbook b/po/uk/docs/kalgebra/commands.docbook new file mode 100644 index 0000000..8065f2c --- /dev/null +++ b/po/uk/docs/kalgebra/commands.docbook @@ -0,0 +1,1568 @@ + +Команди, що підтримуються KAlgebra + plus + Назва: plus + Опис: додавання + Параметри: plus(... параметри, ...) + Приклад: x->x+2 + + times + Назва: times + Опис: множення + Параметри: times(... параметри, ...) + Приклад: x->x*2 + + minus + Назва: minus + Опис: віднімання. Віднімає всі значення від першого. + Параметри: minus(... параметри, ...) + Приклад: x->x-2 + + divide + Назва: divide + Опис: ділення + Параметри: divide(параметр1, параметр2) + Приклад: x->x/2 + + quotient + Назва: quotient + Опис: ціла частина від ділення + Параметри: quotient(параметр1, параметр2) + Приклад: x->quotient(x, 2) + + power + Назва: power + Опис: степінь + Параметри: power(параметр1, параметр2) + Приклад: x->x^2 + + root + Назва: root + Опис: корінь + Параметри: root(параметр1, параметр2) + Приклад: x->root(x, 2) + + factorial + Назва: factorial + Опис: факторіал. factorial(n)=n! + Параметри: factorial(параметр1) + Приклад: x->factorial(x) + + and + Назва: and + Опис: булівське «ТА» + Параметри: and(... параметр, ...) + Приклад: x->piecewise { and(x>-2, x<2) ? 1, ? 0 } + + or + Назва: or + Опис: булівське «АБО» + Параметри: or(... параметр, ...) + Приклад: x->piecewise { or(x>2, x>-2) ? 1, ? 0 } + + xor + Назва: xor + Опис: булівське виключне «АБО» + Параметри: xor(... параметр, ...) + Приклад: x->piecewise { xor(x>0, x<3) ? 1, ? 0 } + + not + Назва: not + Опис: булівське «НІ» + Параметри: not(параметр1) + Приклад: x->piecewise { not(x>0) ? 1, ? 0 } + + gcd + Назва: gcd + Опис: найбільший спільний дільник + Параметри: gcd(... параметр, ...) + Приклад: x->gcd(x, 3) + + lcm + Назва: lcm + Опис: найменше спільне кратне + Параметри: lcm(... параметр, ...) + Приклад: x->lcm(x, 4) + + rem + Назва: rem + Опис: лишок від ділення + Параметри: rem(параметр1, параметр2) + Приклад: x->rem(x, 5) + + factorof + Назва: factorof + Опис: чи є число дільником + Параметри: factorof(параметр1, параметр2) + Приклад: x->factorof(x, 3) + + max + Назва: max + Опис: максимум + Параметри: max(... параметр, ...) + Приклад: x->max(x, 4) + + min + Назва: min + Опис: мінімум + Параметри: min(... параметр, ...) + Приклад: x->min(x, 4) + + lt + Назва: lt + Опис: менше. lt(a,b)=a<b + Параметри: lt(параметр1, параметр2) + Приклад: x->piecewise { x<4 ? 1, ? 0 } + + gt + Назва: gt + Опис: більше. gt(a,b)=a>b + Параметри: gt(параметр1, параметр2) + Приклад: x->piecewise { x>4 ? 1, ? 0 } + + eq + Назва: eq + Опис: дорівнює. eq(a,b) = a=b + Параметри: eq(параметр1, параметр2) + Приклад: x->piecewise { x=4 ? 1, ? 0 } + + neq + Назва: neq + Опис: не дорівнює. neq(a,b)=a≠b + Параметри: neq(параметр1, параметр2) + Приклад: x->piecewise { x!=4 ? 1, ? 0 } + + leq + Назва: leq + Опис: менше або дорівнює. leq(a,b) = a⩽b + Параметри: leq(параметр1, параметр2) + Приклад: x->piecewise { x<=4 ? 1, ? 0 } + + geq + Назва: geq + Опис: більше або дорівнює. geq(a,b)= a⩾b + Параметри: geq(параметр1, параметр2) + Приклад: x->piecewise { x>=4 ? 1, ? 0 } + + implies + Назва: implies + Опис: булівська імплікація (є наслідком) + Параметри: implies(параметр1, параметр2) + Приклад: x->piecewise { implies(x<0, x<3) ? 1, ? 0 } + + approx + Назва: approx + Опис: приблизно дорівнює. approx(a) = a±n + Параметри: approx(параметр1, параметр2) + Приклад: x->piecewise { approx(x, 4) ? 1, ? 0 } + + abs + Назва: abs + Опис: модуль. abs(n)=|n| + Параметри: abs(параметр1) + Приклад: x->abs(x) + + floor + Назва: floor + Опис: округлення до меншого цілого. floor(n) = ⌊n⌋ + Параметри: floor(параметр1) + Приклад: x->floor(x) + + ceiling + Назва: ceiling + Опис: Ceil value. ceil(n) = ⌈n⌉ + Параметри: ceiling(параметр1) + Приклад: x->ceiling(x) + + sin + Назва: sin + Опис: функція обчислення синуса вказаного кута + Параметри: sin(параметр1) + Приклад: x->sin(x) + + cos + Назва: cos + Опис: функція обчислення косинуса вказаного кута + Параметри: cos(параметр1) + Приклад: x->cos(x) + + tan + Назва: tan + Опис: функція обчислення тангенса вказаного кута + Параметри: tan(параметр1) + Приклад: x->tan(x) + + sec + Назва: sec + Опис: секанс + Параметри: sec(параметр1) + Приклад: x->sec(x) + + csc + Назва: csc + Опис: косеканс + Параметри: csc(параметр1) + Приклад: x->csc(x) + + cot + Назва: cot + Опис: котангенс + Параметри: cot(параметр1) + Приклад: x->cot(x) + + sinh + Назва: sinh + Опис: гіперболічний синус + Параметри: sinh(параметр1) + Приклад: x->sinh(x) + + cosh + Назва: cosh + Опис: гіперболічний косинус + Параметри: cosh(параметр1) + Приклад: x->cosh(x) + + tanh + Назва: tanh + Опис: гіперболічний тангенс + Параметри: tanh(параметр1) + Приклад: x->tanh(x) + + sech + Назва: sech + Опис: гіперболічний секанс + Параметри: sech(параметр1) + Приклад: x->sech(x) + + csch + Назва: csch + Опис: гіперболічний косеканс + Параметри: csch(параметр1) + Приклад: x->csch(x) + + coth + Назва: coth + Опис: гіперболічний котангенс + Параметри: coth(параметр1) + Приклад: x->coth(x) + + arcsin + Назва: arcsin + Опис: арксинус + Параметри: arcsin(параметр1) + Приклад: x->arcsin(x) + + arccos + Назва: arccos + Опис: арккосинус + Параметри: arccos(параметр1) + Приклад: x->arccos(x) + + arctan + Назва: arctan + Опис: арктангенс + Параметри: arctan(параметр1) + Приклад: x->arctan(x) + + arccot + Назва: arccot + Опис: арккотангенс + Параметри: arccot(параметр1) + Приклад: x->arccot(x) + + arccosh + Назва: arccosh + Опис: гіперболічний арккосинус + Параметри: arccosh(параметр1) + Приклад: x->arccosh(x) + + arccsc + Назва: arccsc + Опис: арккосеканс + Параметри: arccsc(параметр1) + Приклад: x->arccsc(x) + + arccsch + Назва: arccsch + Опис: гіперболічний арккосеканс + Параметри: arccsch(параметр1) + Приклад: x->arccsch(x) + + arcsec + Назва: arcsec + Опис: арксеканс + Параметри: arcsec(параметр1) + Приклад: x->arcsec(x) + + arcsech + Назва: arcsech + Опис: гіперболічний арксеканс + Параметри: arcsech(параметр1) + Приклад: x->arcsech(x) + + arcsinh + Назва: arcsinh + Опис: гіперболічний арксинус + Параметри: arcsinh(параметр1) + Приклад: x->arcsinh(x) + + arctanh + Назва: arctanh + Опис: гіперболічний арктангенс + Параметри: arctanh(параметр1) + Приклад: x->arctanh(x) + + exp + Назва: exp + Опис: експонента (ex) + Параметри: exp(параметр1) + Приклад: x->exp(x) + + ln + Назва: ln + Опис: натуральний логарифм + Параметри: ln(параметр1) + Приклад: x->ln(x) + + log + Назва: log + Опис: десятковий логарифм + Параметри: log(параметр1) + Приклад: x->log(x) + + conjugate + Назва: conjugate + Опис: спряження + Параметри: conjugate(параметр1) + Приклад: x->conjugate(x*i) + + arg + Назва: arg + Опис: аргумент + Параметри: arg(параметр1) + Приклад: x->arg(x*i) + + real + Назва: real + Опис: дійсна частина + Параметри: real(параметр1) + Приклад: x->real(x*i) + + imaginary + Назва: imaginary + Опис: уявна частина + Параметри: imaginary(параметр1) + Приклад: x->imaginary(x*i) + + sum + Назва: sum + Опис: суматор + Параметри: sum(параметр1:var=від..до) + Приклад: x->x*sum(t*t:t=0..3) + + product + Назва: product + Опис: добуток + Параметри: product(параметр1 : var=від..до) + Приклад: x->product(t+t:t=1..3) + + diff + Назва: diff + Опис: диференціювання + Параметри: diff(параметр1 : змінна) + Приклад: x->(diff(x^2:x))(x) + + card + Назва: card + Опис: потужність множини + Параметри: card(параметр1) + Приклад: x->card(vector { x, 1, 2 }) + + scalarproduct + Назва: scalarproduct + Опис: скалярний добуток + Параметри: scalarproduct(... параметр, ...) + Приклад: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + selector + Назва: selector + Опис: вибрати елемент параметр1 зі списку чи вектора параметр2 + Параметри: selector(параметр1, параметр2) + Приклад: x->scalarproduct(vector { 0, x }, vector { x, 0 })[1] + + union + Назва: union + Опис: з’єднує декілька елементів одного типу + Параметри: union(... параметр, ...) + Приклад: x->union(list { 1, 2, 3 }, list { 4, 5, 6 })[rem(floor(x), 5)+3] + + forall + Назва: forall + Опис: для всіх + Параметри: forall(par1 : var) + Приклад: x->piecewise { forall(t:t@list { true, false, false }) ? 1, ? 0 } + + exists + Назва: exists + Опис: існує + Параметри: exists(параметр1 : змінна) + Приклад: x->piecewise { exists(t:t@list { true, false, false }) ? 1, ? 0 } + + map + Назва: map + Опис: застосувати функцію до всіх елементів списку + Параметри: map(параметр1, параметр2) + Приклад: x->map(x->x+x, list { 1, 2, 3, 4, 5, 6 })[rem(floor(x), 5)+3] + + filter + Назва: filter + Опис: вилучити всі елементи, які не задовольняють умові + Параметри: filter(параметр1, параметр2) + Приклад: x->filter(u->rem(u, 2)=0, list { 2, 4, 3, 4, 8, 6 })[rem(floor(x), 5)+3] + + transpose + Назва: transpose + Опис: транспонування + Параметри: transpose(параметр1) + Приклад: x->transpose(matrix { matrixrow { 1, 2, 3, 4, 5, 6 } })[rem(floor(x), 5)+3][1] + + diff --git a/po/uk/docs/kalgebra/index.docbook b/po/uk/docs/kalgebra/index.docbook new file mode 100644 index 0000000..70023ca --- /dev/null +++ b/po/uk/docs/kalgebra/index.docbook @@ -0,0 +1,915 @@ + + + + MathML"> + + +]> + + + + +Підручник з &kalgebra; + + +Aleix Pol
&Aleix.Pol.mail;
+
+
+ЮрійЧорноіван
yurchor@ukr.net
Переклад українською
+
+ + +2007 +&Aleix.Pol; + + +&FDLNotice; + + +17 грудня 2020 року +Програми 20.12 + + +&kalgebra; — програма, яка може замінити вам калькулятор з можливістю побудови графіків. У програмі передбачено числові, логічні, символічні та аналітичні можливості, за допомогою яких ви зможете виконувати обчислення за формулами у калькуляторі або будувати результати у форматі плоских кривих або просторових графіків. &kalgebra; засновано на мові математичної розмітки (Mathematical Markup Language і MathML). Втім, для користування &kalgebra; знати MathML не потрібно. + + + +KDE +kdeedu +графіка +математика +2D +3D +MathML + + +
+ + +Вступ + +У &kalgebra; передбачено численні можливості, за допомогою яких користувач здатен виконувати будь-які обчислення та будувати за результатами графіки. Певний час програму було зорієнтовано лише на розвиток і використання можливостей MathML. Поточною ж версією може користуватися будь-хто з мінімальними знаннями математики для розв’язування простих та складних задач. + +Серед можливостей програми: + + + +калькулятор для пришвидшення та спрощення обчислення за математичними формулами; +можливість створення скриптів для виконання послідовних обчислень; +можливості мови програмування, зокрема визначення функцій та автодоповнення синтаксичних конструкцій; +можливості числення, зокрема диференціювання, векторне числення та обробка списків; +креслення графіків функцій з інтерактивним курсором для пошуку коренів та виконання інших аналітичних дійґ; +креслення просторових поверхонь з метою візуалізації тривимірних даних. +вбудований словник операцій та операторів з довідковими можливостями щодо багатьох функцій, якими можна скористатися у програмі; + + +На цьому зображенні ви бачите головне вікно &kalgebra;: + + +На цьому зображенні ви бачите головне вікно &kalgebra; + + + + + + Головне вікно &kalgebra; + + + + +Після запуску користувачем сеансу &kalgebra; буде відкрито одне головне вікно, що складається з вкладки Калькулятор, вкладки двовимірних (плоских) графіків, вкладки тривимірних (просторових) графіків і вкладки Словника. Під цими вкладками знаходиться поле для введення ваших функцій і виконання обчислень та поле для показу результатів. + +Керувати сеансом можна за допомогою пунктів меню Сеанс: + + + + +&Ctrl; N СеансСтворити +Відкрити нове вікно &kalgebra;. + + + +&Ctrl;&Shift; F СеансПовноекранний режим +Увімкнути або вимкнути режим повноекранного показу вікна &kalgebra;. Повноекранний режим можна також увімкнути або вимкнути за допомогою кнопки , розташованої у правій верхній частині вікна &kalgebra;. + + + +&Ctrl; Q СеансВийти +Завершує роботу програми. + + + + + + + +Синтаксис +У &kalgebra; використовується інтуїтивно зрозумілий алгебраїчний синтаксис для функцій, визначених користувачем, подібний до використаного у більшості сучасних графічних калькуляторів. У цьому розділі наведено основні вбудовані оператори &kalgebra;. Синтаксичні конструкції автор &kalgebra; створив на основі синтаксичних конструкцій Maxima та maple для користувачів, які можуть бути обізнані з цими програмами. + +Для тих, хто цікавиться внутрішніми механізмами роботи &kalgebra;: введені користувачем вирази перетворюються на вирази мовою MathML сервером обробки. Початкове розуміння можливостей, що підтримуються MathML, виходить далеко за межі визначення внутрішніх можливостей &kalgebra;. + +Ось список доступних у цій версії дій: + ++ - * /: Додавання, віднімання, множення і ділення. +^, **: Піднесення до степеня, можна використовувати обидва позначення. Також можна використовувати символи unicode ². Степені також використовуються для позначення коренів, це можна зробити за допомогою формули. Приклад: a**(1/b) +->: лямбда. За допомогою цього виразу можна вказати одну або декілька вільних змінних, які буде пов’язано у функцію. Наприклад, у виразі length:=(x,y)->(x*x+y*y)^0.5, лямбда-оператор використовується для позначення того, що x і y буде пов’язано під час обчислення функції довжини. +x=a..b: Ця конструкція використовується, якщо ми змінюємо діапазон зміни змінної (обмежена зміна+обмеження згори+обмеження знизу). Це означає, що x пробігає значення від a до b. +(): Дужки використовуються для зазначення вищого пріоритету обчислень. +abc(параметри): Функції. Коли обробник знаходить функцію, він перевіряє, чи є abc оператором. Якщо це так, дії з ним буде виконано як з оператором, якщо ні — обробник поводитиметься з ним як з функцією. +:=: Визначення. Використовується для встановлення значення змінної. Ви можете писати x:=3, x:=y у випадках визначеності або невизначеності y, або perimeter:=r->2*pi*r. +?: Визначення кускової умови. Кускові умови — це спосіб визначення умовних розгалужень у &kalgebra;. Інакше кажучи, це спосіб визначення послідовності умов if, elseif, else. Якщо вказати умову перед знаком «?», значення буде використано, лише якщо умова справджується, якщо обробник знайде «?» без жодної умови, буде використано залишок після попередніх умов. Приклад: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 } +{ }: Контейнер MathML. Його можна використовувати для визначення контейнера. Головним чином корисний для роботи з кусковими виразами. += > >= < <=: порівняння значень (рівність, більше, більше або дорівнює, менше та менше або дорівнює, відповідно) + + +Читач тепер може зауважити, а навіщо взагалі згадувати про MathML? Дуже просто. За його допомогою можна виконувати операції, подібні до cos(), sin(), будь-яких інших тригонометричних функцій, sum() або product(). Характер самої функції не є важливим. Можна використовувати plus(), times() і будь-які інші функції, яким відповідає певний оператор. Також реалізовано булеві функції, отже, можна виконувати операції, подібні до or(1,0,0,0,0). + + + + +Користування калькулятором +Калькулятор &kalgebra; — корисний калькулятор з додатковими можливостями. Користувач може вводити вирази для обчислення у режимах Обчислення та Визначення значення, залежно від вибраного у меню Калькулятор варіанта. +У режимі визначення значення &kalgebra; намагається спростити вираз, навіть якщо якусь з його змінних не визначено. У режимі обчислення &kalgebra; виконує обчислення всіх знайдених виразів, а якщо виявить невизначену змінну, покаже повідомлення про помилку. +Окрім показу введених користувачем рівнянь та результатів обчислень, на панелі калькулятора буде показано всі оголошені змінні (праворуч). Подвійним клацанням на пункті змінної можна буде викликати діалогове вікно, за допомогою якого ви зможете змінити значення змінної (якщо треба підкоригувати проміжні результати). + +Змінна «ans» є особливою. Кожного разу після введення виразу для обчислень значення «ans» замінюватиметься останнім результатом. + +Нижче наведено приклад функцій, які можна ввести до поля введення панелі калькулятора: + +sin(pi) +k:=33 +sum(k*x : x=0..10) +f:=p->p*k +f(pi) + + +Нижче наведено знімок панелі калькулятора після введення наведених вище прикладів виразів: + +Знімок вікна калькулятора &kalgebra; з прикладами виразів + + + + + + Вікно калькулятора &kalgebra; + + + + + +Користувач може керувати послідовністю обчислень за допомогою пунктів меню Калькулятор: + + + + +&Ctrl; L КалькуляторЗавантажити скрипт… +Послідовно виконує інструкції з файла. Корисне для визначення деяких бібліотек або відновлення попередніх сеансів. + + + +КалькуляторНещодавні скрипти +Показує підменю, за допомогою якого ви можете вибрати один із нещодавно виконаних скриптів. + + + +&Ctrl; G КалькуляторЗберегти скрипт… +Зберігає інструкції, які ви ввели з часу початку сеансу для подальшого повторного використання. Створює текстові файли, які буде просто виправити, за допомогою, наприклад, &kate;. + + + +&Ctrl; S КалькуляторЕкспортувати журнал… +Зберігає журнал з результатами та іншою інформацією до файла &HTML;, який можна надрукувати або оприлюднити у мережі. + + + +F3 КалькуляторВставити відповідь… +Вставляє змінну ans і полегшує повторне використання попередніх результатів обчислень. + + + +КалькуляторОбчислення +Перемикач для встановлення параметра Режим виконання для обчислень. + + + +КалькуляторВизначення значення +Перемикач для встановлення параметра Режим виконання для визначення значень. + + + + + + +Двовимірні графіки +Щоб додати новий двовимірний графік у &kalgebra;, вам просто слід перейти до вкладки Двовимірні графіки і натиснути кнопку Додати, щоб додати нову функцію. Після цього фокус буде передано у поле для введення тексту, де ви зможете вказати вашу функцію. + + +Синтаксис +Якщо ви бажаєте використовувати звичайну функцію f(x), не потрібно окремо визначати її, але, якщо ви бажаєте визначити, скажімо, f(y) або функцію у полярних координатах, вам слід додати y-> і q-> як обмежені змінні. + +Приклади: + +sin(x) +x² +y->sin(y) +q->3*sin(7*q) +t->vector{sin t, t**2} + +Якщо ви ввели функцію, натисніть кнопку Гаразд, щоб побачити графік у головному вікні. + + + + +Можливості +Можна накреслити декілька графіків на одному малюнку. Просто скористайтеся кнопкою Додати, коли ви знаходитеся у режимі списку. Для кожного з графіків ви можете встановити його колір. + +Розмір та розташування області перегляду можна змінювати за допомогою миші. За допомогою коліщатка ви можете її збільшувати або зменшувати. Також ви можете вибрати область, утримуючи ліву кнопку миші, коли ви відпустите кнопку, область буде збільшено до розмірів області перегляду. Пересунути область перегляду можна за допомогою клавіш зі стрілочками. + + + Ви можете явно задати ділянку показу плоского графіка за допомогою вкладки Демонстраційне вікно вкладки Двовимірний графік. + + +За допомогою вкладки Список, яку розташовано у нижній правій частині вікна, ви можете відкрити вкладку Редагування для редагування або вилучення функції: двічі клацніть на позначці функції у списку. Позначенням або зняттям позначки з пункту функції можна наказати програмі показувати або приховувати графік функції. +У меню Двовимірний графік ви знайдете такі пункти: + +Сітка: показати або приховати сітку +Зберігати співвідношення розмірів: зберігати співвідношення розмірів під час зміни масштабу +Зберегти: зберегти (&Ctrl; S) графік у файлі зображення +Збільшити/Зменшити: збільшити (&Ctrl; +) і зменшити (&Ctrl; -) +Фактичний розмір: оновити перегляд до початкового масштабу +Роздільна здатність: містить список варіантів для вибору роздільної здатності для графіків + + +Нижче наведено знімок вікна, на якому вказівник користувача розташовано у позиції найправішого кореня функції sin(1/x). Для креслення графіка використано дуже малий масштаб, оскільки функція осцилює у околі початку координат. Також показано можливості інтерактивного курсора: у відповідь на наведення вказівника на точку графіка програма показує значення координат x та y у нижньому лівому куті екрана. Також на графіку показано інтерактивну лінію дотичної. + + +На цьому зображенні ви бачите вікно плоского графіка &kalgebra; + + + + + + Вікно плоских графіків &kalgebra; + + + + + + + + + + +Тривимірні графіки + +Щоб накреслити тривимірний графік за допомогою &kalgebra;, вам слід перейти до вкладки Тривимірні графіки, там внизу ви побачите поле для вводу, куди і слід ввести вашу функцію. Z поки що визначати не можна, у цій версії &kalgebra; підтримується лише явне задання поверхонь у вигляді залежності від x і y, наприклад (x,y)->x*y, де z=x*y. + +Приклади: + +(x,y)->sin(x)*sin(y) +(x,y)->x/y + + +Розмір та розташування області перегляду можна змінювати за допомогою миші. За допомогою коліщатка ви можете її збільшувати або зменшувати. Натисніть і утримуйте ліву кнопку миші, а потім пересуньте вказівник миші, щоб повернути графік. + +За допомогою клавіш зі стрілочками ліворуч і праворуч можна обертати графік навколо осі z, за допомогою клавіш зі стрілочками вгору і вниз можна обертати графік навколо горизонтальної осі перегляду. Натисканням клавіші W можна збільшити масштаб, а натисканням клавіші S — зменшити його. + +У меню Тривимірний графік ви знайдете такі пункти: + + +Зберегти: зберегти (&Ctrl; S) графік у файлі зображення або підтримуваному документі +Скинути перегляд: пункт відновлення початкового масштабу у меню Тривимірний графік +У меню просторового графіка передбачено можливості малювати графік точками, лініями або суцільною поверхнею. + + +Нижче наведено знімок так званої поверхні «Сомбреро». Поверхню показано з використанням лінійчастого стилю просторових графіків. + + +На цьому зображенні ви бачите вікно просторового графіка &kalgebra; + + + + + + Вікно просторових графіків &kalgebra; + + + + + + + +Словник + +Словник є збіркою всіх доступних дій &kalgebra;. За його допомогою можна знайти визначення всіх операцій та параметрів, які слід вказати для виконання дій. Він корисним для ознайомлення з багатьма можливостями &kalgebra;. + + Нижче наведено знімок вікна з прикладом пошуку функції косинуса у словнику &kalgebra;. + + +На цьому зображенні ви бачите вікно словника &kalgebra; + + + + + + Вікно словника &kalgebra; + + + + + + + +&commands; + + +Подяки і ліцензія + + +Авторські права на програму належать &Aleix.Pol;, ©2005-2009 + + + +Авторські права на документацію до програми належать &Aleix.Pol; &Aleix.Pol.mail;, ©2007 + +Юрій Чорноіван yurchor@ukr.net &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/uk/docs/kalgebra/kalgebra-2dgraph-window.png b/po/uk/docs/kalgebra/kalgebra-2dgraph-window.png new file mode 100644 index 0000000000000000000000000000000000000000..d8d499f23afedd06b3e78579f18c6e5b4b38d92f GIT binary patch literal 16499 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 literal 0 HcmV?d00001 diff --git a/po/uk/docs/kalgebra/kalgebra-3dgraph-window.png b/po/uk/docs/kalgebra/kalgebra-3dgraph-window.png new file mode 100644 index 0000000000000000000000000000000000000000..7febade04d9baba6689746f26e6d075a70d1bc5a GIT binary patch literal 19571 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 IM6N<$f(ggS=>Px# literal 0 HcmV?d00001 diff --git a/po/uk/docs/kalgebra/kalgebra-console-window.png b/po/uk/docs/kalgebra/kalgebra-console-window.png new file mode 100644 index 0000000000000000000000000000000000000000..89b14c2525dced9f8f8e4d2fec300f98da5153a1 GIT binary patch literal 15938 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

9-YvrCr|9vS~-j~)FAJ@U=r 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 P)j*JwQifDX7zh6!UVE+0 literal 0 HcmV?d00001 diff --git a/po/uk/docs/kalgebra/kalgebra-main-window.png b/po/uk/docs/kalgebra/kalgebra-main-window.png new file mode 100644 index 0000000000000000000000000000000000000000..9c79be733ec742f7dfac562c1135953617174c4c GIT binary patch literal 14995 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 Q--C8?P$fv2q@n+R1Db3{DgXcg literal 0 HcmV?d00001 diff --git a/po/uk/kalgebra.po b/po/uk/kalgebra.po new file mode 100644 index 0000000..949941e --- /dev/null +++ b/po/uk/kalgebra.po @@ -0,0 +1,1175 @@ +# Translation of kalgebra.po to Ukrainian +# Copyright (C) 2007-2018 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Yuri Chornoivan , 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2022. +# Ivan Petrouchtchak , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2022-06-12 08:30+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.12.0\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "Параметри: %1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "Вставити «%1» у вхідні дані" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "Вставити до вхідних даних" + +#: consolemodel.cpp:99 +#, kde-format +msgid "

    Error: %1
  • %2
" +msgstr "
    Помилка: %1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "Імпортовано: %1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    Помилка: не вдалося завантажити %1.
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "Інформація" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "Додати / змінити функцію" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "Перегляд" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "Від:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "До:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "Параметри" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "Гаразд" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "Вилучити" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "Вами вказано некоректні параметри" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "Нижня межа не може бути більшою за верхню" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "Двовимірний графік" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "Тривимірний графік" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "Сеанс" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "Змінні" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "&Калькулятор" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "К&алькулятор" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "&Завантажити скрипт…" + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "Нещодавні скрипти" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "&Зберегти скрипт…" + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "&Експортувати журнал…" + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "&Вставити відповідь…" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "Режим виконання" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "Обчислення" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "Визначення значення" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "Функції" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "Список" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "&Додати" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "Демонстраційне вікно" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "&Двовимірний графік" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "Дво&вимірний графік" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "&Сітка" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "&Зберігати співвідношення розмірів" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "Роздільна здатність" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "Низька" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "Звичайна" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "Висока" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "Дуже висока" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "&Тривимірний графік" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "Тривимірний &графік" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "&Оновити перегляд" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "Крапки" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "Лінії" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "Суцільна" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "Дії" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "&Словник" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "Шукати:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "&Редагування" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "Виберіть скрипт" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "Скрипт (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "Файл HTML (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "Помилки: %1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "Виберіть місце для зображення графіка" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "файл зображення (*.png);;файл SVG (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "Готово" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "Додати змінну" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "Введіть назву нової змінної" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "Портативний калькулятор" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "© Aleix Pol i Gonzalez, 2006–2016" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Юрій Чорноіван" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "yurchor@ukr.net" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "Додати або редагувати змінну" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "Вилучити змінну" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "Змінити значення «%1»" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "недоступне" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "НЕПРАВИЛЬНО" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "Ліворуч:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "Згори:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "Ширина:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "Висота:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "Застосувати" + +#~ msgid "" +#~ "PNG File (*.png);;PDF Document(*.pdf);;X3D Document (*.x3d);;STL Document " +#~ "(*.stl)" +#~ msgstr "" +#~ "файл PNG (*.png);;документи PDF (*.pdf);;документ X3D (*.x3d);;документ " +#~ "STL (*.stl)" + +#~ msgid "C&onsole" +#~ msgstr "К&онсоль" + +#~ msgid "KAlgebra" +#~ msgstr "KAlgebra" + +#~ msgid "&Console" +#~ msgstr "&Консоль" + +#~ msgid "Percy Camilo Triveño Aucahuasi" +#~ msgstr "Percy Camilo Triveño Aucahuasi" + +#~ msgid "" +#~ "Developed feature for drawing implicit curves. Improvements for plotting " +#~ "functions." +#~ msgstr "" +#~ "Можливість побудови функцій, заданих неявно. Покращення у інструменті " +#~ "побудови функцій." + +#~ msgid "Formula" +#~ msgstr "Формула" + +#~ msgid "Error: Wrong type of function" +#~ msgstr "Помилка: помилковий тип функції" + +#~ msgctxt "3D graph done in x milliseconds" +#~ msgid "Done: %1ms" +#~ msgstr "Виконано: %1 мс" + +#~ msgid "Error: %1" +#~ msgstr "Помилка: %1" + +#~ msgctxt "@action:button" +#~ msgid "Clear" +#~ msgstr "Очистити" + +#~ msgid "*.png|PNG File" +#~ msgstr "*.png|Файл PNG" + +#~ msgctxt "text ellipsis" +#~ msgid "%1..." +#~ msgstr "%1..." + +#~ msgid "&Transparency" +#~ msgstr "&Прозорість" + +#~ msgid "Type" +#~ msgstr "Тип" + +#~ msgid "Result: %1" +#~ msgstr "Результат: %1" + +#~ msgid "To Expression" +#~ msgstr "До виразу" + +#~ msgid "To MathML" +#~ msgstr "У MathML" + +#~ msgid "Simplify" +#~ msgstr "Спростити" + +#~ msgid "Examples" +#~ msgstr "Приклади" + +#~ msgid "We can only draw Real results." +#~ msgstr "Можливий показ лише дійсної частини результату." + +#~ msgid "The expression is not correct" +#~ msgstr "Помилка у виразі" + +#~ msgid "Function type not recognized" +#~ msgstr "Не вдалося розпізнати тип функції" + +#~ msgid "Function type not correct for functions depending on %1" +#~ msgstr "Помилковий тип функції, залежної від %1" + +#~ msgctxt "" +#~ "This function can't be represented as a curve. To draw implicit curve, " +#~ "the function has to satisfy the implicit function theorem." +#~ msgid "Implicit function undefined in the plane" +#~ msgstr "Функція, задана неявно, є невизначеною на площині" + +#~ msgid "center" +#~ msgstr "центр" + +#~ msgctxt "@title:column" +#~ msgid "Name" +#~ msgstr "Назва" + +#~ msgctxt "@title:column" +#~ msgid "Function" +#~ msgstr "Функція" + +#~ msgid "%1 function added" +#~ msgstr "функцію %1 додано" + +#~ msgid "Hide '%1'" +#~ msgstr "Сховати «%1»" + +#~ msgid "Show '%1'" +#~ msgstr "Показати «%1»" + +#~ msgid "Selected viewport too small" +#~ msgstr "Вибрана ділянка перегляду замала" + +#~ msgctxt "@title:column" +#~ msgid "Description" +#~ msgstr "Опис" + +#~ msgctxt "@title:column" +#~ msgid "Parameters" +#~ msgstr "Параметри" + +#~ msgctxt "@title:column" +#~ msgid "Example" +#~ msgstr "Приклад" + +#~ msgctxt "Syntax for function bounding" +#~ msgid " : var" +#~ msgstr " : змінна" + +#~ msgctxt "Syntax for function bounding values" +#~ msgid "=from..to" +#~ msgstr "=від...до" + +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgid "%1... parameters, ...%2)" +#~ msgstr "%1... параметри, ...%2)" + +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgid "Addition" +#~ msgstr "Додавання" + +#~ msgid "Multiplication" +#~ msgstr "Множення" + +#~ msgid "Division" +#~ msgstr "Ділення" + +#~ msgid "Subtraction. Will remove all values from the first one." +#~ msgstr "Віднімання. Всі значення буде віднято від першого." + +#~ msgid "Power" +#~ msgstr "Степінь" + +#~ msgid "Remainder" +#~ msgstr "Залишок" + +#~ msgid "Quotient" +#~ msgstr "Частка" + +#~ msgid "The factor of" +#~ msgstr "Дільник" + +#~ msgid "Factorial. factorial(n)=n!" +#~ msgstr "Факторіал. factorial(n)=n!" + +#~ msgid "Function to calculate the sine of a given angle" +#~ msgstr "Функція для обчислення синуса за заданим кутом" + +#~ msgid "Function to calculate the cosine of a given angle" +#~ msgstr "Функція для обчислення косинуса за заданим кутом" + +#~ msgid "Function to calculate the tangent of a given angle" +#~ msgstr "Функція для обчислення тангенса за заданим кутом" + +#~ msgid "Secant" +#~ msgstr "Секанс" + +#~ msgid "Cosecant" +#~ msgstr "Косеканс" + +#~ msgid "Cotangent" +#~ msgstr "Котангенс" + +#~ msgid "Hyperbolic sine" +#~ msgstr "Гіперболічний синус" + +#~ msgid "Hyperbolic cosine" +#~ msgstr "Гіперболічний косинус" + +#~ msgid "Hyperbolic tangent" +#~ msgstr "Гіперболічний тангенс" + +#~ msgid "Hyperbolic secant" +#~ msgstr "Гіперболічний секанс" + +#~ msgid "Hyperbolic cosecant" +#~ msgstr "Гіперболічний косеканс" + +#~ msgid "Hyperbolic cotangent" +#~ msgstr "Гіперболічний котангенс" + +#~ msgid "Arc sine" +#~ msgstr "Обернений синус" + +#~ msgid "Arc cosine" +#~ msgstr "Обернений косинус" + +#~ msgid "Arc tangent" +#~ msgstr "Обернений тангенс" + +#~ msgid "Arc cotangent" +#~ msgstr "Обернений котангенс" + +#~ msgid "Hyperbolic arc tangent" +#~ msgstr "Обернений гіперболічний тангенс" + +#~ msgid "Summatory" +#~ msgstr "Суматор" + +#~ msgid "Productory" +#~ msgstr "Перемножувач" + +#~ msgid "For all" +#~ msgstr "Для всіх" + +#~ msgid "Exists" +#~ msgstr "Існує" + +#~ msgid "Differentiation" +#~ msgstr "Диференціювання" + +#~ msgid "Hyperbolic arc sine" +#~ msgstr "Обернений гіперболічний синус" + +#~ msgid "Hyperbolic arc cosine" +#~ msgstr "Обернений гіперболічний косинус" + +#~ msgid "Arc cosecant" +#~ msgstr "Обернений косеканс" + +#~ msgid "Hyperbolic arc cosecant" +#~ msgstr "Обернений гіперболічний косеканс" + +#~ msgid "Arc secant" +#~ msgstr "Обернений секанс" + +#~ msgid "Hyperbolic arc secant" +#~ msgstr "Обернений гіперболічний секанс" + +#~ msgid "Exponent (e^x)" +#~ msgstr "Експонента (e^x)" + +#~ msgid "Base-e logarithm" +#~ msgstr "Натуральний логарифм" + +#~ msgid "Base-10 logarithm" +#~ msgstr "Десятковий логарифм" + +#~ msgid "Absolute value. abs(n)=|n|" +#~ msgstr "Модуль числа. abs(n)=|n|" + +#~ msgid "Floor value. floor(n)=⌊n⌋" +#~ msgstr "Найближче менше ціле число. floor(n)=⌊n⌋" + +#~ msgid "Ceil value. ceil(n)=⌈n⌉" +#~ msgstr "Найближче більше ціле число. ceil(n)=⌈n⌉" + +#~ msgid "Minimum" +#~ msgstr "Мінімальний" + +#~ msgid "Maximum" +#~ msgstr "Максимальний" + +#~ msgid "Greater than. gt(a,b)=a>b" +#~ msgstr "Більше ніж. gt(a,b)=a>b" + +#~ msgid "Less than. lt(a,b)=a%1(..., par%2, ...)" +#~ msgstr "%1(..., par%2, ...)" + +#~ msgctxt "Function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "Parameter in function prototype" +#~ msgid "par%1" +#~ msgstr "par%1" + +#~ msgctxt "Current parameter in function prototype" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Function parameter separator" +#~ msgid ", " +#~ msgstr ", " + +#~ msgctxt "Current parameter is the bounding" +#~ msgid " : bounds" +#~ msgstr " : межі" + +#~ msgctxt "@title:column" +#~ msgid "Value" +#~ msgstr "Значення" + +#~ msgid "Must specify a correct operation" +#~ msgstr "Слід вказати правильний оператор" + +#~ msgctxt "identifier separator in error message" +#~ msgid "', '" +#~ msgstr "', '" + +#~ msgid "Unknown identifier: '%1'" +#~ msgstr "Невідомий ідентифікатор: «%1»" + +#~ msgctxt "Error message, no proper condition found." +#~ msgid "Could not find a proper choice for a condition statement." +#~ msgstr "Не вдалося знайти належного варіанта у умовному виразі." + +#~ msgid "Type not supported for bounding." +#~ msgstr "Цей тип не можна використовувати для визначення меж." + +#~ msgid "The downlimit is greater than the uplimit" +#~ msgstr "Нижня межа більша за верхню межу" + +#~ msgid "Incorrect uplimit or downlimit." +#~ msgstr "Некоректна верхня або нижня межа." + +#~ msgctxt "By a cycle i mean a variable that depends on itself" +#~ msgid "Defined a variable cycle" +#~ msgstr "Визначено цикл зі змінних" + +#~ msgid "The result is not a number" +#~ msgstr "Результат не є числом" + +#~ msgid "Unexpectedly arrived to the end of the input" +#~ msgstr "Виявлено несподіване завершення вхідних даних" + +#~ msgid "Unknown token %1" +#~ msgstr "Невідомий елемент %1" + +#~ msgid "%1 needs at least 2 parameters" +#~ msgstr "%1 потрібні принаймні 2 параметри" + +#~ msgid "%1 requires %2 parameters" +#~ msgstr "%1 потрібно %2 параметрів" + +#~ msgid "Missing boundary for '%1'" +#~ msgstr "У «%1» не вказано межу" + +#~ msgid "Unexpected bounding for '%1'" +#~ msgstr "Неочікуваний обмеження для «%1»" + +#~ msgid "%1 missing bounds on '%2'" +#~ msgstr "У %1 відсутні обмеження на «%2»" + +#~ msgid "Wrong declare" +#~ msgstr "Неправильне оголошення" + +#~ msgid "Empty container: %1" +#~ msgstr "Порожній контейнер: %1" + +#~ msgctxt "there was a conditional outside a condition structure" +#~ msgid "We can only have conditionals inside piecewise structures." +#~ msgstr "Умови можна вказувати лише в умовних конструкціях." + +#~ msgid "Cannot have two parameters with the same name like '%1'." +#~ msgstr "" +#~ "Не можна використовувати два параметри з однією назвою, наприклад «%1»." + +#~ msgctxt "" +#~ "this is an error message. otherwise is the else in a mathml condition" +#~ msgid "The otherwise parameter should be the last one" +#~ msgstr "Параметр otherwise слід вказувати останнім." + +#~ msgctxt "there was an element that was not a conditional inside a condition" +#~ msgid "%1 is not a proper condition inside the piecewise" +#~ msgstr "%1 не є належною умовою у конструкції умов" + +#~ msgid "We can only declare variables" +#~ msgstr "Можна визначати лише змінні" + +#~ msgid "We can only have bounded variables" +#~ msgstr "Можна лише обмежити змінні" + +#~ msgid "Error while parsing: %1" +#~ msgstr "Помилка під час обробки: %1" + +#~ msgctxt "An error message" +#~ msgid "Container unknown: %1" +#~ msgstr "Невідомий контейнер: %1" + +#~ msgid "Cannot codify the %1 value." +#~ msgstr "Не вдалося закодувати значення %1." + +#~ msgid "The %1 operator cannot have child contexts." +#~ msgstr "Оператор %1 не може мати дочірніх контекстів." + +#~ msgid "The element '%1' is not an operator." +#~ msgstr "Елемент «%1» не є оператором." + +#~ msgid "Do not want empty vectors" +#~ msgstr "Порожні вектори нам не потрібні" + +#~ msgctxt "Error message due to an unrecognized input" +#~ msgid "Not supported/unknown: %1" +#~ msgstr "Не підтримується/невідомий: %1" + +#~ msgctxt "error message" +#~ msgid "Expected %1 instead of '%2'" +#~ msgstr "Очікувалося %1, знайдено «%2»" + +#~ msgid "Missing right parenthesis" +#~ msgstr "Не вистачає правої дужки" + +#~ msgid "Unbalanced right parenthesis" +#~ msgstr "Незакрита права дужка" + +#~ msgid "Unexpected token identifier: %1" +#~ msgstr "Неочікуваний ідентифікатор елемента: %1" + +#~ msgid "Unexpected token %1" +#~ msgstr "Неочікуваний елемент %1" + +#~ msgid "Could not find a type that unifies '%1'" +#~ msgstr "Не вдалося знайти тип, який узагальнює «%1»" + +#~ msgid "The domain should be either a vector or a list" +#~ msgstr "Мало бути вказано вектор або список" + +#~ msgid "Invalid parameter count for '%2'. Should have 1 parameter." +#~ msgid_plural "Invalid parameter count for '%2'. Should have %1 parameters." +#~ msgstr[0] "Некоректна кількість параметрів «%2». Мав бути %1 параметр." +#~ msgstr[1] "Некоректна кількість параметрів «%2». Мало бути %1 параметри." +#~ msgstr[2] "Некоректна кількість параметрів «%2». Мало бути %1 параметрів." +#~ msgstr[3] "Некоректна кількість параметрів «%2». Мав бути один параметр." + +#~ msgid "Could not call '%1'" +#~ msgstr "Не вдалося викликати «%1»" + +#~ msgid "Could not solve '%1'" +#~ msgstr "Не вдалося розв’язати «%1»" + +#~ msgid "Incoherent type for the variable '%1'" +#~ msgstr "Невідповідний тип змінної «%1»" + +#~ msgid "Could not determine the type for piecewise" +#~ msgstr "Не вдалося визначити тип умови" + +#~ msgid "Unexpected type" +#~ msgstr "Неочікуваний тип" + +#~ msgid "Cannot convert '%1' to '%2'" +#~ msgstr "Не вдалося перетворити «%1» на «%2»" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "html representation of an operator" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgctxt "Error message" +#~ msgid "Unknown token %1" +#~ msgstr "Невідомий елемент %1" + +#~ msgid "Cannot calculate the remainder on 0." +#~ msgstr "Не вдалося залишок від 0." + +#~ msgid "Cannot calculate the factor on 0." +#~ msgstr "Не вдалося обчислити коефіцієнт при 0." + +#~ msgid "Cannot calculate the lcm of 0." +#~ msgstr "Не вдалося обчислити найменше спільне кратне для 0." + +#~ msgid "Could not calculate a value %1" +#~ msgstr "Не вдалося обчислити значення %1" + +#~ msgid "Invalid index for a container" +#~ msgstr "Некоректний індекс контейнера" + +#~ msgid "Cannot operate on different sized vectors." +#~ msgstr "Виконувати операції над векторами різної розмірності не можна." + +#~ msgid "Could not calculate a vector's %1" +#~ msgstr "Не вдалося обчислити %1 вектора" + +#~ msgid "Could not calculate a list's %1" +#~ msgstr "Не вдалося обчислити %1 списку" + +#~ msgid "Could not calculate the derivative for '%1'" +#~ msgstr "Не вдалося обчислити похідну «%1»" + +#~ msgid "Could not reduce '%1' and '%2'." +#~ msgstr "Не вдалося спростити «%1» і «%2»." + +#~ msgid "Incorrect domain." +#~ msgstr "Помилка у визначенні області." + +#~ msgctxt "Uncorrect function name in function prototype" +#~ msgid "%1(" +#~ msgstr "%1(" + +#~ msgctxt "if the specified function is not a vector" +#~ msgid "The parametric function does not return a vector" +#~ msgstr "Параметрична функція не повертає вектора" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "A two-dimensional vector is needed" +#~ msgstr "Слід вказати двовимірний вектор" + +#~ msgctxt "The vector has to be composed by integer members" +#~ msgid "The parametric function items should be scalars" +#~ msgstr "Параметрами параметричної функції мають бути скалярні значення" + +#~ msgid "The %1 derivative has not been implemented." +#~ msgstr "Знайти похідну від %1 неможливо." + +#~ msgctxt "Error message" +#~ msgid "Did not understand the real value: %1" +#~ msgstr "Не вдалося обробити дійсне значення: %1" + +#~ msgid "Subtraction" +#~ msgstr "Віднімання" + +#~ msgid "" +#~ "%1\n" +#~ "Error: %2" +#~ msgstr "" +#~ "%1\n" +#~ "Помилка: %2" + +#~ msgid "Select an element from a container" +#~ msgstr "Вибір елемента з контейнера" + +#~ msgid " Plot 3D" +#~ msgstr " Тривимірний графік" + +#~ msgid "Error: We need values to draw a graph" +#~ msgstr "Помилка: щоб побудувати графік, потрібні дані" + +#~ msgid "Generating... Please wait" +#~ msgstr "Створення... Будь ласка, зачекайте" + +#~ msgid "Wrong parameter count, had 1 parameter for '%2'" +#~ msgid_plural "Wrong parameter count, had %1 parameters for '%2'" +#~ msgstr[0] "Помилкова кількість параметрів, отримано %1 параметр для «%2»" +#~ msgstr[1] "Помилкова кількість параметрів, отримано %1 параметри для «%2»" +#~ msgstr[2] "Помилкова кількість параметрів, отримано %1 параметрів для «%2»" +#~ msgstr[3] "Помилкова кількість параметрів, отримано %1 параметр для «%2»" + +#~ msgctxt "@item:inmenu" +#~ msgid "&Save Log" +#~ msgstr "&Зберегти журнал" + +#~ msgid "File" +#~ msgstr "Файл" + +#~ msgid "We can only call functions" +#~ msgstr "Викликати можна лише функції" + +#~ msgid "Wrong parameter count" +#~ msgstr "Помилкова кількість параметрів" + +#~ msgctxt "" +#~ "html representation of a true. please don't translate the true for " +#~ "consistency" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "" +#~ "html representation of a false. please don't translate the false for " +#~ "consistency" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "html representation of a number" +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "Invalid parameter count." +#~ msgstr "Помилкова кількість параметрів." + +#~ msgid "Mode" +#~ msgstr "Режим" + +#~ msgid "Save the expression" +#~ msgstr "Зберегти вираз" + +#~ msgid "Calculate the expression" +#~ msgstr "Обчислити вираз" + +#~ msgid "%1:=%2" +#~ msgstr "%1:=%2" + +#~ msgid "Cannot apply '%1' to '%2'" +#~ msgstr "Не вдалося застосувати «%1» до «%2»" + +#~ msgid "Cannot operate '%1'" +#~ msgstr "Не вдалося обробити «%1»" + +#~ msgid "Cannot check '%1' type" +#~ msgstr "Не вдалося перевірити тип «%1»" + +#~ msgid "Wrong number of parameters when calling '%1'" +#~ msgstr "Помилкова кількість параметрів у виклику «%1»" + +#~ msgid "Cannot have downlimit ≥ uplimit" +#~ msgstr "Ситуація, коли нижня межа ≥ верхній межі, неможлива" + +#~ msgid "Trying to call an invalid function" +#~ msgstr "Спроба виклику некоректно заданої функції" + +#~ msgid "Unfulfilled dependencies for: '%1'" +#~ msgstr "Невиконані залежності «%1»" + +#~ msgctxt "If it is a vector but the wrong size. We work in R2 here" +#~ msgid "We want a 2 dimension vector" +#~ msgstr "Потрібен двовимірний вектор" + +#~ msgid "The function %1 does not exist" +#~ msgstr "Функції з назвою %1 не існує" + +#~ msgid "The variable %1 does not exist" +#~ msgstr "Змінної з назвою %1 не існує" + +#~ msgid "Need a var name and a value" +#~ msgstr "Потрібна назва змінної і значення" + +#~ msgid "We can only select a container's value with its integer index" +#~ msgstr "Можна вибирати значення контейнера лише за цілим індексом" + +#~ msgid "%1" +#~ msgstr "%1" + +#~ msgid "The first parameter in a function should be the name" +#~ msgstr "Першим параметром у функції має бути назва." + +#~ msgctxt "Error message" +#~ msgid "Unknown bounded variable: %1" +#~ msgstr "Невідома обмежена змінна: %1" + +#~ msgid "From parser:" +#~ msgstr "Від обробника:" + +#~ msgid "" +#~ "Wrong parameter count in a selector, should have 2 parameters, the " +#~ "selected index and the container." +#~ msgstr "" +#~ "Неправильна кількість параметрів у інструменті вибору: має бути 2 " +#~ "параметри, — вибраний індекс і контейнер." + +#~ msgid "piece or otherwise in the wrong place" +#~ msgstr "piece або otherwise у неправильному місці" + +#~ msgid "No bounding variables for this sum" +#~ msgstr "Не вказано меж суми" + +#~ msgid "Missing bounding limits on a sum operation" +#~ msgstr "Не вказано меж для операції підсумовування" + +#~ msgctxt "Error message" +#~ msgid "Trying to codify an unknown value: %1" +#~ msgstr "Спроба кодифікації невідомого значення: %1" diff --git a/po/uk/kalgebramobile.po b/po/uk/kalgebramobile.po new file mode 100644 index 0000000..866a11a --- /dev/null +++ b/po/uk/kalgebramobile.po @@ -0,0 +1,337 @@ +# Translation of kalgebramobile.po to Ukrainian +# Copyright (C) 2018-2021 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Yuri Chornoivan , 2018, 2019, 2020, 2021, 2022, 2023. +msgid "" +msgstr "" +"Project-Id-Version: kalgebramobile\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-04 08:34+0200\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Lokalize 20.12.0\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "Калькулятор" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "Завантажити скрипт" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "Скрипт (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "Зберегти скрипт" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "Експортувати журнал" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "Визначити" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "Обчислити" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "Спорожнити журнал" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "Двовимірне креслення" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "Тривимірне креслення" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "Копіювати «%1»" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "Порожній журнал консолі" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "Додати" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "Вилучити все" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "Закрити діалогове вікно" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "Вилучити креслення" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "Немає доступних креслень" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "Вираз для обчислення…" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "Словник" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "Назва:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "Двовимірний графік" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "Тривимірний графік" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "Таблиці значень" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "Змінні" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "Словник" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "Про KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "Двовимірне креслення" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "Зберегти" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "Перегляд ґратки" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "Відновити початковий стан панелі перегляду" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "Тривимірне креслення" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "Результати" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "Таблиці значень" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "Помилка: крок не може дорівнювати 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "Помилка: початок і кінець є тотожними" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "Помилки: %1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "Виконати" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "Вхідні дані" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "Від:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "До:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "Крок" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "Виконати" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "Портативний калькулятор" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "© Aleix Pol i Gonzalez, 2006–2023" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "Супровідник" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Юрій Чорноіван" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "yurchor@ukr.net" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "Мобільна KAlgebra" + +#~ msgid "A simple scientific calculator" +#~ msgstr "Простий науковий калькулятор" + +#~ msgid "Results:" +#~ msgstr "Результати:" + +#~ msgid "" +#~ "KAlgebra is brought to you by the lovely community of KDE and KDE Edu from a Free " +#~ "Software environment." +#~ msgstr "" +#~ "KAlgebra створено для вас чудовими спільнотами KDE та KDE Edu, які є " +#~ "частинами середовища вільного програмного забезпечення." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information in the official site and in the users wiki.
If you have any problem with your " +#~ "software, please report it to our bug " +#~ "tracker." +#~ msgstr "" +#~ "Якщо ви хочете дізнатися більше про KAlgebra, зверніться до інформації на " +#~ "офіційному сайті та у вікі для користувачів.
Якщо у вас виникають проблеми " +#~ "із цим програмним забезпеченням, будь ласка, повідомте про них за " +#~ "допомогою нашої системи стеження за " +#~ "вадами." + +#~ msgid "" +#~ "In case you want to learn more about KAlgebra, you can find more " +#~ "information " +#~ msgstr "" +#~ "Якщо ви хочете дізнатися більше про KAlgebra, знайти відповідні відомості " +#~ "можна тут: " diff --git a/po/zh_CN/kalgebra.po b/po/zh_CN/kalgebra.po new file mode 100644 index 0000000..59be8f2 --- /dev/null +++ b/po/zh_CN/kalgebra.po @@ -0,0 +1,439 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdeorg\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2024-04-22 15:58\n" +"Last-Translator: \n" +"Language-Team: Chinese Simplified\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: kdeorg\n" +"X-Crowdin-Project-ID: 269464\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /kf6-stable/messages/kalgebra/kalgebra.pot\n" +"X-Crowdin-File-ID: 49826\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "选项:%1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "粘贴“%1”到输入内容" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "从剪贴板粘贴" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    错误:%1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "已导入:%1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    错误:无法加载 %1。
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "信息" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "添加/编辑一个函数" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "预览" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "从:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "到:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "选项" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "确定" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "删除" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "您指定的选项不正确" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "下限不能大于上限" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "二维图" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "三维图" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "会话" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "变量" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "计算器(&C)" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "计算器(&A)" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "加载脚本(&L)..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "最近的脚本" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "保存脚本(&S)..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "导出日志(&E)..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "插入答案(&I)..." + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "执行模式" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "计算" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "估值" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "函数" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "列表" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "添加(&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "视点" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "二维图像(&2)" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "二维图像(&D)" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "网格(&G)" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "保持长宽比(&K)" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "分辨率" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "低质量" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "普通" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "精细" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "非常精细" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "三维图像(&3)" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "三维图像(&G)" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "重置视图(&R)" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "点" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "线" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "体" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "运算" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "字典(&D)" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "查找:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "编辑(&E)" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "选择一个脚本" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "脚本 (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML 文件(*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr ", " + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "错误:%1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "选择图表生成的位置" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "" +"*.png|图像文件\n" +"*.svg|SVG 矢量图像文件" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "就绪" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "添加变量" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "输入新变量名称" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "一个便携的计算器" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "KDE 中国" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde-china@kde.org" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "添加/编辑一个变量" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "删除变量" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "编辑“%1”的值" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "不可用" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "错误" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "左边:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "顶端:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "宽度:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "高度:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "应用" diff --git a/po/zh_CN/kalgebramobile.po b/po/zh_CN/kalgebramobile.po new file mode 100644 index 0000000..d09fee6 --- /dev/null +++ b/po/zh_CN/kalgebramobile.po @@ -0,0 +1,293 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdeorg\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2024-04-22 15:58\n" +"Last-Translator: \n" +"Language-Team: Chinese Simplified\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: kdeorg\n" +"X-Crowdin-Project-ID: 269464\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /kf6-stable/messages/kalgebra/kalgebramobile.pot\n" +"X-Crowdin-File-ID: 52728\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "计算器" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "加载脚本" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "脚本 (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "保存脚本" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "导出日志" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "求值" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "计算" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "清除日志" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D 绘图" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D 绘图" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "复制“%1”" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "清空控制台历史" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "添加" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "清除全部" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "关闭对话" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "移除图形" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "没有可用的图象" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "要计算的表达式…" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "词典" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "名称:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "二维图" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "三维图" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "数值表" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "变量" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "词典" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "关于 KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D 绘图" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "保存" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "查看网格" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "重置可视区域" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D 绘图" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "结果" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "数值表" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "错误: 步长不能为0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "错误:起始和终止相同" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "错误:%1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "执行" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "输入" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "从:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "到:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "步长" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "执行" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "一个轻便的计算器" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "KDE 中国" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde-china@kde.org" diff --git a/po/zh_TW/kalgebra.po b/po/zh_TW/kalgebra.po new file mode 100644 index 0000000..2744b22 --- /dev/null +++ b/po/zh_TW/kalgebra.po @@ -0,0 +1,445 @@ +# translation of kalgebra.po to Chinese Traditional +# translation of kalgebra.po to +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Franklin Weng , 2007, 2010, 2011, 2012, 2013, 2014, 2015, 2017. +# Frank Weng (a.k.a. Franklin) , 2009. +# Jeff Huang , 2016. +# pan93412 , 2018. +# +# Franklin Weng , 2007, 2008. +# Frank Weng (a.k.a. Franklin) , 2008, 2009, 2010. +# SPDX-FileCopyrightText: 2023, 2024 Kisaragi Hiu +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-10-03 01:37+0000\n" +"PO-Revision-Date: 2024-04-04 17:49+0900\n" +"Last-Translator: Kisaragi Hiu \n" +"Language-Team: Traditional Chinese \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 24.04.70\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: consolehtml.cpp:167 +#, kde-format +msgid " %2" +msgstr " %2" + +#: consolehtml.cpp:172 +#, kde-format +msgid "Options: %1" +msgstr "選項:%1" + +#: consolehtml.cpp:222 +#, kde-format +msgid "Paste \"%1\" to input" +msgstr "貼上 %1 以輸入" + +#: consolemodel.cpp:95 +#, kde-format +msgid "Paste to Input" +msgstr "貼上以輸入" + +#: consolemodel.cpp:99 +#, kde-format +msgid "
    Error: %1
  • %2
" +msgstr "
    錯誤:%1
  • %2
" + +#: consolemodel.cpp:121 +#, kde-format +msgid "Imported: %1" +msgstr "已匯入:%1" + +#: consolemodel.cpp:123 +#, kde-format +msgid "
    Error: Could not load %1.
    %2
" +msgstr "
    錯誤:無法載入 %1。
    %2
" + +#: dictionary.cpp:45 +#, kde-format +msgid "Information" +msgstr "資訊" + +#: dictionary.cpp:68 dictionary.cpp:69 dictionary.cpp:70 dictionary.cpp:71 +#, kde-format +msgid "%1" +msgstr "%1" + +#: functionedit.cpp:51 +#, kde-format +msgid "Add/Edit a function" +msgstr "新增/編輯函數" + +#: functionedit.cpp:96 +#, kde-format +msgid "Preview" +msgstr "預覽" + +#: functionedit.cpp:103 +#, kde-format +msgid "From:" +msgstr "從:" + +#: functionedit.cpp:105 +#, kde-format +msgid "To:" +msgstr "到:" + +#: functionedit.cpp:108 +#, kde-format +msgid "Options" +msgstr "選項" + +#: functionedit.cpp:113 +#, kde-format +msgid "OK" +msgstr "確定" + +#: functionedit.cpp:115 +#, kde-format +msgctxt "@action:button" +msgid "Remove" +msgstr "移除" + +#: functionedit.cpp:243 +#, kde-format +msgid "The options you specified are not correct" +msgstr "您指定的選項不正確" + +#: functionedit.cpp:248 +#, kde-format +msgid "Downlimit cannot be greater than uplimit" +msgstr "下載限制不能大於上傳限制" + +#: kalgebra.cpp:83 +#, kde-format +msgid "Plot 2D" +msgstr "繪製平面圖" + +#: kalgebra.cpp:114 +#, kde-format +msgid "Plot 3D" +msgstr "繪製立體圖" + +#: kalgebra.cpp:144 +#, kde-format +msgid "Session" +msgstr "工作階段" + +#: kalgebra.cpp:163 kalgebra.cpp:265 +#, kde-format +msgid "Variables" +msgstr "變數" + +#: kalgebra.cpp:182 +#, kde-format +msgid "&Calculator" +msgstr "計算機(&C)" + +#: kalgebra.cpp:194 +#, kde-format +msgid "C&alculator" +msgstr "計算機(&A)" + +#: kalgebra.cpp:196 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Load Script..." +msgstr "載入文稿(&L)..." + +#: kalgebra.cpp:200 +#, kde-format +msgid "Recent Scripts" +msgstr "最近的文稿" + +#: kalgebra.cpp:205 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Save Script..." +msgstr "儲存文稿(&S)..." + +#: kalgebra.cpp:209 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Export Log..." +msgstr "匯出紀錄(&E)..." + +#: kalgebra.cpp:211 +#, kde-format +msgctxt "@item:inmenu" +msgid "&Insert ans..." +msgstr "插入 ans(&I)…" + +#: kalgebra.cpp:212 +#, kde-format +msgid "Execution Mode" +msgstr "執行模式" + +#: kalgebra.cpp:214 +#, kde-format +msgctxt "@item:inmenu" +msgid "Calculate" +msgstr "計算" + +#: kalgebra.cpp:215 +#, kde-format +msgctxt "@item:inmenu" +msgid "Evaluate" +msgstr "估算" + +#: kalgebra.cpp:235 +#, kde-format +msgid "Functions" +msgstr "函數" + +#: kalgebra.cpp:247 +#, kde-format +msgid "List" +msgstr "列表" + +#: kalgebra.cpp:253 kalgebra.cpp:487 +#, kde-format +msgid "&Add" +msgstr "新增(&A)" + +#: kalgebra.cpp:269 +#, kde-format +msgid "Viewport" +msgstr "檢視埠" + +#: kalgebra.cpp:273 +#, kde-format +msgid "&2D Graph" +msgstr "平面圖(&2)" + +#: kalgebra.cpp:285 +#, kde-format +msgid "2&D Graph" +msgstr "平面圖(&D)" + +#: kalgebra.cpp:287 +#, kde-format +msgid "&Grid" +msgstr "格線(&G)" + +#: kalgebra.cpp:288 +#, kde-format +msgid "&Keep Aspect Ratio" +msgstr "保持比例(&K)" + +#: kalgebra.cpp:296 +#, kde-format +msgid "Resolution" +msgstr "解析度" + +#: kalgebra.cpp:297 +#, kde-format +msgctxt "@item:inmenu" +msgid "Poor" +msgstr "低" + +#: kalgebra.cpp:298 +#, kde-format +msgctxt "@item:inmenu" +msgid "Normal" +msgstr "正常" + +#: kalgebra.cpp:299 +#, kde-format +msgctxt "@item:inmenu" +msgid "Fine" +msgstr "高" + +#: kalgebra.cpp:300 +#, kde-format +msgctxt "@item:inmenu" +msgid "Very Fine" +msgstr "非常高" + +#: kalgebra.cpp:334 +#, kde-format +msgid "&3D Graph" +msgstr "立體圖(&3)" + +#: kalgebra.cpp:342 +#, kde-format +msgid "3D &Graph" +msgstr "立體圖(&G)" + +#: kalgebra.cpp:345 +#, kde-format +msgid "&Reset View" +msgstr "重設檢視(&R)" + +#: kalgebra.cpp:349 +#, kde-format +msgid "Dots" +msgstr "點" + +#: kalgebra.cpp:350 +#, kde-format +msgid "Lines" +msgstr "線" + +#: kalgebra.cpp:351 +#, kde-format +msgid "Solid" +msgstr "立體" + +#: kalgebra.cpp:368 +#, kde-format +msgid "Operations" +msgstr "操作" + +#: kalgebra.cpp:372 +#, kde-format +msgid "&Dictionary" +msgstr "字典(&D)" + +#: kalgebra.cpp:383 +#, kde-format +msgid "Look for:" +msgstr "尋找:" + +#: kalgebra.cpp:476 +#, kde-format +msgid "&Editing" +msgstr "編輯(&E)" + +#: kalgebra.cpp:533 +#, kde-format +msgid "Choose a script" +msgstr "請選擇文稿" + +#: kalgebra.cpp:533 kalgebra.cpp:549 +#, kde-format +msgid "Script (*.kal)" +msgstr "文稿 (*.kal)" + +#: kalgebra.cpp:560 +#, kde-format +msgid "HTML File (*.html)" +msgstr "HTML 檔 (*.html)" + +#: kalgebra.cpp:595 +#, kde-format +msgid ", " +msgstr "," + +#: kalgebra.cpp:595 +#, kde-format +msgid "Errors: %1" +msgstr "錯誤:%1" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Select where to put the rendered plot" +msgstr "選擇要在哪裡放置已繪製之圖形" + +#: kalgebra.cpp:634 +#, kde-format +msgid "Image File (*.png);;SVG File (*.svg)" +msgstr "圖片檔 (*.png);;SVG 檔 (*.svg)" + +#: kalgebra.cpp:692 +#, kde-format +msgctxt "@info:status" +msgid "Ready" +msgstr "就緒" + +#: kalgebra.cpp:726 +#, kde-format +msgid "Add variable" +msgstr "新增/變數" + +#: kalgebra.cpp:730 +#, kde-format +msgid "Enter a name for the new variable" +msgstr "請輸入新變數名稱" + +#: main.cpp:33 +#, kde-format +msgid "A portable calculator" +msgstr "計算機" + +#: main.cpp:35 +#, kde-format +msgid "(C) 2006-2016 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2016 Aleix Pol i Gonzalez" + +#: main.cpp:36 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:37 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Franklin Weng" + +#: main.cpp:37 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "franklin@goodhorse.idv.tw" + +#: varedit.cpp:35 +#, kde-format +msgid "Add/Edit a variable" +msgstr "新增/編輯變數" + +#: varedit.cpp:40 +#, kde-format +msgid "Remove Variable" +msgstr "移除變數" + +#: varedit.cpp:65 +#, kde-format +msgid "Edit '%1' value" +msgstr "編輯 %1 數值" + +#: varedit.cpp:67 +#, kde-format +msgid "not available" +msgstr "N/A" + +#: varedit.cpp:100 +#, kde-format +msgid "%1 := %2" +msgstr "%1 := %2" + +#: varedit.cpp:103 +#, kde-format +msgid "WRONG" +msgstr "錯誤" + +#: viewportwidget.cpp:46 +#, kde-format +msgid "Left:" +msgstr "左:" + +#: viewportwidget.cpp:47 +#, kde-format +msgid "Top:" +msgstr "頂端:" + +#: viewportwidget.cpp:48 +#, kde-format +msgid "Width:" +msgstr "寬度:" + +#: viewportwidget.cpp:49 +#, kde-format +msgid "Height:" +msgstr "高度:" + +#: viewportwidget.cpp:51 +#, kde-format +msgid "Apply" +msgstr "套用" diff --git a/po/zh_TW/kalgebramobile.po b/po/zh_TW/kalgebramobile.po new file mode 100644 index 0000000..9942136 --- /dev/null +++ b/po/zh_TW/kalgebramobile.po @@ -0,0 +1,300 @@ +# Copyright (C) 2023 This file is copyright: +# This file is distributed under the same license as the kalgebra package. +# +# pan93412 , 2019. +# SPDX-FileCopyrightText: 2023 Kisaragi Hiu +msgid "" +msgstr "" +"Project-Id-Version: kalgebra\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2023-12-04 01:35+0000\n" +"PO-Revision-Date: 2023-12-30 18:03+0900\n" +"Last-Translator: Kisaragi Hiu \n" +"Language-Team: Traditional Chinese \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Lokalize 23.08.4\n" + +#: content/ui/Console.qml:19 content/ui/main.qml:50 +#, kde-format +msgid "Calculator" +msgstr "計算機" + +#: content/ui/Console.qml:40 content/ui/main.qml:108 +#, kde-format +msgid "KAlgebra" +msgstr "KAlgebra" + +#: content/ui/Console.qml:62 +#, kde-format +msgctxt "@action:button" +msgid "Load Script" +msgstr "載入指令碼" + +#: content/ui/Console.qml:66 content/ui/Console.qml:76 +#, kde-format +msgid "Script (*.kal)" +msgstr "指令碼 (*.kal)" + +#: content/ui/Console.qml:72 +#, kde-format +msgctxt "@action:button" +msgid "Save Script" +msgstr "儲存指令碼" + +#: content/ui/Console.qml:83 +#, kde-format +msgctxt "@action:button" +msgid "Export Log" +msgstr "匯出紀錄" + +#: content/ui/Console.qml:87 +#, kde-format +msgid "HTML (*.html)" +msgstr "HTML (*.html)" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Evaluate" +msgstr "估算" + +#: content/ui/Console.qml:94 +#, kde-format +msgctxt "@action:button" +msgid "Calculate" +msgstr "計算" + +#: content/ui/Console.qml:100 +#, kde-format +msgctxt "@action:button" +msgid "Clear Log" +msgstr "清除紀錄" + +#: content/ui/Console.qml:131 +#, kde-format +msgid "2D Plot" +msgstr "2D 圖形" + +#: content/ui/Console.qml:140 +#, kde-format +msgid "3D Plot" +msgstr "3D 圖形" + +#: content/ui/Console.qml:149 +#, kde-format +msgid "Copy \"%1\"" +msgstr "複製「%1」" + +#: content/ui/Console.qml:187 +#, kde-format +msgctxt "@info" +msgid "Empty console history" +msgstr "主控台歷史空白" + +#: content/ui/controls/AddPlotDialog.qml:56 +#, kde-format +msgctxt "@action:button" +msgid "Add" +msgstr "新增" + +#: content/ui/controls/AddPlotDialog.qml:69 +#, kde-format +msgctxt "@action:button" +msgid "Clear All" +msgstr "全部清除" + +#: content/ui/controls/AddPlotDialog.qml:82 +#, kde-format +msgctxt "@action:button" +msgid "Close dialog" +msgstr "關閉對話框" + +#: content/ui/controls/AddPlotDialog.qml:122 +#, kde-format +msgctxt "@action:button" +msgid "Remove plot" +msgstr "移除圖形" + +#: content/ui/controls/AddPlotDialog.qml:137 +#, kde-format +msgctxt "@info" +msgid "No plot available" +msgstr "沒有可用的圖形" + +#: content/ui/controls/ExpressionInput.qml:106 +#, kde-format +msgid "Expression to calculate..." +msgstr "欲計算之表達式…" + +#: content/ui/Dictionary.qml:14 +#, kde-format +msgctxt "@title:window" +msgid "Dictionary" +msgstr "字典" + +#: content/ui/Dictionary.qml:30 +#, kde-format +msgid "Name:" +msgstr "名稱:" + +#: content/ui/Dictionary.qml:43 content/ui/Dictionary.qml:47 +#: content/ui/Dictionary.qml:51 content/ui/Dictionary.qml:55 +#, kde-format +msgid "%1:" +msgstr "%1:" + +#: content/ui/main.qml:57 +#, kde-format +msgid "Graph 2D" +msgstr "2D 圖表" + +#: content/ui/main.qml:64 +#, kde-format +msgid "Graph 3D" +msgstr "3D 圖表" + +#: content/ui/main.qml:70 +#, kde-format +msgid "Value Tables" +msgstr "數值表格" + +#: content/ui/main.qml:76 content/ui/VariablesView.qml:11 +#, kde-format +msgid "Variables" +msgstr "變數" + +#: content/ui/main.qml:82 +#, kde-format +msgid "Dictionary" +msgstr "字典" + +#: content/ui/main.qml:88 +#, kde-format +msgid "About KAlgebra" +msgstr "關於 KAlgebra" + +#: content/ui/Plot2D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "2D Plot" +msgstr "2D 圖形" + +#: content/ui/Plot2D.qml:38 content/ui/Plot3D.qml:38 +#, kde-format +msgid "Save" +msgstr "儲存" + +#: content/ui/Plot2D.qml:52 +#, kde-format +msgid "View Grid" +msgstr "顯示網格" + +#: content/ui/Plot2D.qml:60 content/ui/Plot3D.qml:53 +#, kde-format +msgid "Reset Viewport" +msgstr "重設檢視" + +#: content/ui/Plot3D.qml:21 +#, kde-format +msgctxt "@title:window" +msgid "3D Plot" +msgstr "3D 圖形" + +#: content/ui/TableResultPage.qml:9 +#, kde-format +msgid "Results" +msgstr "結果" + +#: content/ui/Tables.qml:12 +#, kde-format +msgid "Value tables" +msgstr "數值表格" + +#: content/ui/Tables.qml:30 +#, kde-format +msgid "Errors: The step cannot be 0" +msgstr "錯誤:步驟數不得為 0" + +#: content/ui/Tables.qml:32 +#, kde-format +msgid "Errors: The start and end are the same" +msgstr "錯誤:起點與終點值相同" + +#: content/ui/Tables.qml:34 +#, kde-format +msgid "Errors: %1" +msgstr "錯誤:%1" + +#: content/ui/Tables.qml:52 +#, kde-format +msgctxt "@action:button Run table" +msgid "Run" +msgstr "執行" + +#: content/ui/Tables.qml:63 +#, kde-format +msgid "Input" +msgstr "輸入" + +#: content/ui/Tables.qml:72 +#, kde-format +msgid "From:" +msgstr "起點:" + +#: content/ui/Tables.qml:79 +#, kde-format +msgid "To:" +msgstr "終點:" + +#: content/ui/Tables.qml:86 +#, kde-format +msgid "Step" +msgstr "間隔值" + +#: content/ui/Tables.qml:92 +#, kde-format +msgid "Run" +msgstr "執行" + +#: main.cpp:38 +#, kde-format +msgid "A portable calculator" +msgstr "可攜型計算機" + +#: main.cpp:40 +#, kde-format +msgid "(C) 2006-2023 Aleix Pol i Gonzalez" +msgstr "(C) 2006-2023 Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgid "Aleix Pol i Gonzalez" +msgstr "Aleix Pol i Gonzalez" + +#: main.cpp:41 +#, kde-format +msgctxt "@info:credit" +msgid "Maintainer" +msgstr "維護者" + +#: main.cpp:42 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "pan93412" + +#: main.cpp:42 +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "pan93412@gmail.com" + +#~ msgid "KAlgebra Mobile" +#~ msgstr "KAlgebra 行動版" + +#~ msgid "A simple scientific calculator" +#~ msgstr "簡單的科學計算機" diff --git a/snapcraft.yaml b/snapcraft.yaml new file mode 100644 index 0000000..6155144 --- /dev/null +++ b/snapcraft.yaml @@ -0,0 +1,103 @@ +# SPDX-FileCopyrightText: 2024 Scarlett Moore +# +# SPDX-License-Identifier: CC0-1.0 +--- +name: kalgebra +confinement: strict +grade: stable +base: core22 +adopt-info: kalgebra +apps: + kalgebra: + extensions: + - kde-neon-6 + common-id: org.kde.kalgebra + desktop: usr/share/applications/org.kde.kalgebra.desktop + command: usr/bin/kalgebra + plugs: + - audio-record + - browser-support +package-repositories: + - type: apt + components: + - main + suites: + - jammy + key-id: 444DABCF3667D0283F894EDDE6D4736255751E5D + url: http://origin.archive.neon.kde.org/user + key-server: keyserver.ubuntu.com +parts: + analitza: + source: https://invent.kde.org/education/analitza.git + plugin: cmake + stage-packages: + - rsync + - libpopt0 + cmake-parameters: + - -DCMAKE_INSTALL_PREFIX=/usr + - -DCMAKE_BUILD_TYPE=Release + - -DQT_MAJOR_VERSION=6 + - -DBUILD_WITH_QT6=ON + - -DBUILD_TESTING=OFF + - -DCMAKE_INSTALL_SYSCONFDIR=/etc + - -DCMAKE_INSTALL_LOCALSTATEDIR=/var + - -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON + - -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF + - -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON + - -DCMAKE_INSTALL_RUNSTATEDIR=/run + - -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON + - -DCMAKE_VERBOSE_MAKEFILE=ON + - -DCMAKE_INSTALL_LIBDIR=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR + - --log-level=STATUS + - -DCMAKE_LIBRARY_PATH=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR + override-stage: | + craftctl default + rsync -a --ignore-existing $CRAFT_PART_INSTALL/ / + kalgebra: + after: + - analitza + parse-info: + - usr/share/metainfo/org.kde.kalgebra.appdata.xml + plugin: cmake + source: . + source-type: local + cmake-parameters: + - -DCMAKE_INSTALL_PREFIX=/usr + - -DCMAKE_BUILD_TYPE=Release + - -DQT_MAJOR_VERSION=6 + - -DBUILD_WITH_QT6=ON + - -DBUILD_TESTING=OFF + - -DCMAKE_INSTALL_SYSCONFDIR=/etc + - -DCMAKE_INSTALL_LOCALSTATEDIR=/var + - -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON + - -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF + - -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON + - -DCMAKE_INSTALL_RUNSTATEDIR=/run + - -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON + - -DCMAKE_VERBOSE_MAKEFILE=ON + - -DCMAKE_INSTALL_LIBDIR=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR + - --log-level=STATUS + - -DCMAKE_LIBRARY_PATH=lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR + prime: + - -usr/lib/*/cmake/* + - -usr/include/* + - -usr/share/ECM/* + - -usr/share/man/* + - -usr/bin/X11 + - -usr/lib/gcc/$CRAFT_ARCH_TRIPLET_BUILD_FOR/6.0.0 + - -usr/lib/aspell/* + - -usr/share/lintian + cleanup: + after: + - kalgebra + plugin: nil + build-snaps: + - core22 + - kf6-core22 + - qt-common-themes + override-prime: | + set -eux + for snap in "core22" "kf6-core22" "qt-common-themes"; do + cd "/snap/$snap/current" && find . -type f,l -exec rm -rf "${CRAFT_PRIME}/{}" \; + done + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..c26107e --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,37 @@ +add_executable(kalgebra) +target_sources(kalgebra PRIVATE + askname.h + consolehtml.cpp + consolehtml.h + consolemodel.cpp + consolemodel.h + dictionary.cpp + dictionary.h + functionedit.cpp + functionedit.h + kalgebra.cpp + kalgebra.h + main.cpp + varedit.cpp + varedit.h + variablesdelegate.cpp + variablesdelegate.h + viewportwidget.cpp + viewportwidget.h +) + +file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../icons/*-apps-kalgebra.png") +ecm_add_app_icon(kalgebra ICONS ${ICONS_SRCS}) + +target_link_libraries(kalgebra Qt::Widgets Qt::PrintSupport Qt::WebEngineWidgets KF6::I18n + KF6::CoreAddons KF6::WidgetsAddons KF6::ConfigWidgets + KF6::XmlGui # HelpMenu + KF6::KIOCore + KF6::I18n + KF6::Analitza KF6::AnalitzaWidgets KF6::AnalitzaGui KF6::AnalitzaPlot Qt6::OpenGLWidgets) + +install(TARGETS kalgebra ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) +install(PROGRAMS org.kde.kalgebra.desktop DESTINATION ${KDE_INSTALL_APPDIR} ) +install(FILES kalgebra.xml DESTINATION ${KDE_INSTALL_DATADIR}/katepart5/syntax ) +install(FILES org.kde.kalgebra.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) + diff --git a/src/Messages.sh b/src/Messages.sh new file mode 100755 index 0000000..77523eb --- /dev/null +++ b/src/Messages.sh @@ -0,0 +1,2 @@ +#! /bin/sh +$XGETTEXT *.cpp -o $podir/kalgebra.pot diff --git a/src/askname.h b/src/askname.h new file mode 100644 index 0000000..f4f61f9 --- /dev/null +++ b/src/askname.h @@ -0,0 +1,58 @@ +/************************************************************************************* + * Copyright (C) 2009 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef ASKNAME_H +#define ASKNAME_H + +#include +#include +#include +#include +#include +#include + +class AskName : public QDialog +{ +public: + AskName(const QString &text, QWidget *parent) + : QDialog(parent) + { + edit = new QLineEdit(this); + edit->setValidator(new QRegularExpressionValidator(QRegularExpression(QStringLiteral("[a-zA-Z][\\w]*")), edit)); + + QDialogButtonBox *buttonBox; + QVBoxLayout *items = new QVBoxLayout(this); + items->addWidget(new QLabel(text, this)); + items->addWidget(edit); + // items->addItem(new QSpacerItem()); + items->addWidget(buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel | QDialogButtonBox::Ok, Qt::Horizontal, this)); + + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + } + + QString name() const + { + return edit->text(); + } + +private: + QLineEdit *edit; +}; + +#endif diff --git a/src/consolehtml.cpp b/src/consolehtml.cpp new file mode 100644 index 0000000..1bc9c04 --- /dev/null +++ b/src/consolehtml.cpp @@ -0,0 +1,253 @@ +// SPDX-FileCopyrightText: 2007 by Aleix Pol +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "consolehtml.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +using namespace Qt::Literals::StringLiterals; + +static QUrl temporaryPath() +{ + QTemporaryFile temp(QStringLiteral("consolelog")); + temp.open(); + temp.close(); + temp.setAutoRemove(false); + return QUrl::fromLocalFile(temp.fileName()); +} + +static QUrl retrieve(const QUrl &remoteUrl) +{ + const QUrl path = temporaryPath(); + KIO::CopyJob *job = KIO::copyAs(remoteUrl, path); + + job->exec(); + + return path; +} + +class ConsolePage : public QWebEnginePage +{ +public: + ConsolePage(ConsoleHtml *parent) + : QWebEnginePage(parent) + , m_console(parent) + { + } + + bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool /*isMainFrame*/) override + { + m_console->setActualUrl(url); + + if (url.scheme() == QLatin1String("data")) + return true; + + qDebug() << "navigating to" << url << type; + m_console->openClickedUrl(url); + return false; + } + + ConsoleHtml *m_console; +}; + +ConsoleHtml::ConsoleHtml(QWidget *parent) + : QWebEngineView(parent) + , m_actualUrl() + , m_model(new ConsoleModel(this)) +{ + connect(m_model.data(), &ConsoleModel::updateView, this, &ConsoleHtml::updateView); + connect(m_model.data(), &ConsoleModel::operationSuccessful, this, &ConsoleHtml::includeOperation); + setPage(new ConsolePage(this)); +} + +ConsoleHtml::~ConsoleHtml() +{ + qDeleteAll(m_options); +} + +void ConsoleHtml::setActualUrl(const QUrl &url) +{ + m_actualUrl = url; +} + +void ConsoleHtml::openClickedUrl(const QUrl &url) +{ + QUrlQuery query(url); + QString id = query.queryItemValue(QStringLiteral("id")); + QString exp = query.queryItemValue(QStringLiteral("func")); + + if (id == QLatin1String("copy")) { + Q_EMIT paste(exp); + } else + for (InlineOptions *opt : std::as_const(m_options)) { + if (opt->id() == id) { + opt->triggerOption(Analitza::Expression(exp, false)); + } + } +} + +bool ConsoleHtml::addOperation(const Analitza::Expression &e, const QString &input) +{ + return m_model->addOperation(e, input); +} + +ConsoleModel::ConsoleMode ConsoleHtml::mode() const +{ + return m_model->mode(); +} + +void ConsoleHtml::setMode(ConsoleModel::ConsoleMode newMode) +{ + m_model->setMode(newMode); +} + +Analitza::Analyzer *ConsoleHtml::analitza() +{ + return m_model->analyzer(); +} + +bool ConsoleHtml::loadScript(const QUrl &path) +{ + return m_model->loadScript(path.isLocalFile() ? path : retrieve(path)); +} + +bool ConsoleHtml::saveScript(const QUrl &path) const +{ + const QUrl savePath = path.isLocalFile() ? path : temporaryPath(); + bool correct = m_model->saveScript(savePath); + if (!path.isLocalFile()) { + KIO::CopyJob *job = KIO::move(savePath, path); + correct = job->exec(); + } + return correct; +} + +bool ConsoleHtml::saveLog(const QUrl &path) const +{ + const QUrl savePath = path.isLocalFile() ? path : temporaryPath(); + bool correct = m_model->saveLog(savePath); + if (!path.isLocalFile()) { + KIO::CopyJob *job = KIO::move(savePath, path); + correct = job->exec(); + } + return correct; +} + +void ConsoleHtml::includeOperation(const Analitza::Expression & /*e*/, const Analitza::Expression &res) +{ + m_optionsString.clear(); + if (res.isCorrect()) { + Analitza::Analyzer lambdifier(m_model->variables()); + lambdifier.setExpression(res); + Analitza::Expression lambdaexp = lambdifier.dependenciesToLambda(); + lambdifier.setExpression(lambdaexp); + + for (InlineOptions *opt : std::as_const(m_options)) { + if (opt->matchesExpression(lambdaexp)) { + QUrl url(QStringLiteral("/query")); + QUrlQuery query(url); + query.addQueryItem(QStringLiteral("id"), opt->id()); + query.addQueryItem(QStringLiteral("func"), lambdaexp.toString()); + url.setQuery(query); + + m_optionsString += i18n(" %2", url.toString(), opt->caption()); + } + } + + if (!m_optionsString.isEmpty()) { + m_optionsString = u"
"_s + i18n("Options: %1", m_optionsString) + u"
"_s; + } + } +} + +void ConsoleHtml::updateView() +{ + QByteArray code; + code += "\n"; + code += "\n\n\t :) \n"; + code += m_model->css(); + code += "\n\n"; + + auto log = m_model->htmlLog(); + if (!log.isEmpty()) { + const auto newEntry = log.takeLast(); + for (const QByteArray &entry : std::as_const(log)) + code += "

" + entry + "

\n"; + + code += m_optionsString.toUtf8(); + if (newEntry.startsWith("
    ")) + code += newEntry; + else + code += "

    " + newEntry + "

    \n"; + } + code += ""; + + page()->setHtml(QString::fromUtf8(code)); + + Q_EMIT changed(); + + connect(this, &QWebEngineView::loadFinished, this, [this](bool ok) { + if (!ok && (m_actualUrl.scheme() != QLatin1String("kalgebra"))) { + qWarning() << "error loading page" << m_actualUrl; + } + + page()->runJavaScript(QStringLiteral("window.scrollTo(0, document.body.scrollHeight);")); + }); +} + +void ConsoleHtml::copy() const +{ + QApplication::clipboard()->setText(selectedText()); +} + +void ConsoleHtml::contextMenuEvent(QContextMenuEvent *ev) +{ + QMenu popup; + if (hasSelection()) { + popup.addAction(KStandardAction::copy(this, SLOT(copy()), &popup)); + QAction *act = new QAction(QIcon::fromTheme(QStringLiteral("edit-paste")), i18n("Paste \"%1\" to input", selectedText().trimmed()), &popup); + connect(act, SIGNAL(triggered()), SLOT(paste())); + popup.addAction(act); + popup.addSeparator(); + } + popup.addAction(KStandardAction::clear(this, SLOT(clear()), &popup)); + + popup.exec(mapToGlobal(ev->pos())); +} + +void ConsoleHtml::clear() +{ + m_model->clear(); + updateView(); +} + +void ConsoleHtml::modifyVariable(const QString &name, const Analitza::Expression &exp) +{ + m_model->variables()->modify(name, exp); +} + +void ConsoleHtml::removeVariable(const QString &name) +{ + m_model->variables()->remove(name); +} + +void ConsoleHtml::paste() +{ + Q_EMIT paste(selectedText().trimmed()); +} + +#include "moc_consolehtml.cpp" diff --git a/src/consolehtml.h b/src/consolehtml.h new file mode 100644 index 0000000..1f983ec --- /dev/null +++ b/src/consolehtml.h @@ -0,0 +1,123 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef CONSOLE_H +#define CONSOLE_H + +#include +#include + +#include "consolemodel.h" +#include + +class ConsoleModel; + +class InlineOptions +{ +public: + virtual ~InlineOptions() + { + } + + virtual QString id() const = 0; + virtual QString caption() const = 0; + virtual bool matchesExpression(const Analitza::Expression &exp) const = 0; + virtual void triggerOption(const Analitza::Expression &exp) = 0; +}; + +/** + * The Console widget is able to receive an operation, solve it and show the value. + * It also is able to load scripts and save logs. + * @author Aleix Pol Gonzalez + */ + +class ConsoleHtml : public QWebEngineView +{ + Q_OBJECT +public: + /** Constructor. Creates a console widget. */ + ConsoleHtml(QWidget *parent = nullptr); + + /** Destructor. */ + ~ConsoleHtml() override; + + /** Retrieves a pointer to the Analitza calculator associated. */ + Analitza::Analyzer *analitza(); + + /** Sets a @p newMode console mode. */ + void setMode(ConsoleModel::ConsoleMode newMode); + + /** Retrieves the console mode. */ + ConsoleModel::ConsoleMode mode() const; + + void addOptionsObserver(InlineOptions *opt) + { + m_options += opt; + } + + void contextMenuEvent(QContextMenuEvent *ev) override; + +public Q_SLOTS: + /** Adds the operation defined by the expression @p e. */ + bool addOperation(const Analitza::Expression &e, const QString &input); + + /** Loads a script from @p path. */ + bool loadScript(const QUrl &path); + + /** Save a script yo @p path. */ + bool saveScript(const QUrl &path) const; + + /** Saves a log to @p path. */ + bool saveLog(const QUrl &path) const; + + /** Flushes the contents. */ + void clear(); + + /** Copies the selected text to the clipboard */ + void copy() const; + + void openClickedUrl(const QUrl &url); + + void setActualUrl(const QUrl &url); + +Q_SIGNALS: + /** Emits a notification that tells that the widget status. */ + void status(const QString &msg); + + /** Emits that something has changed. */ + void changed(); + + /** Emits the selected code to be pasted somewhere */ + void paste(const QString &code); + +private Q_SLOTS: + void modifyVariable(const QString &name, const Analitza::Expression &exp); + void removeVariable(const QString &name); + void paste(); + +private: + void includeOperation(const Analitza::Expression &expression, const Analitza::Expression &result); + void updateView(); + + QString m_optionsString; + QUrl m_actualUrl; + QList m_options; + QScopedPointer m_model; +}; + +#endif diff --git a/src/consolemodel.cpp b/src/consolemodel.cpp new file mode 100644 index 0000000..5528dd8 --- /dev/null +++ b/src/consolemodel.cpp @@ -0,0 +1,201 @@ +/************************************************************************************* + * Copyright (C) 2007-2017 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include "consolemodel.h" + +#include +#include +#include +#include +#include +#include +#include + +using namespace Qt::Literals::StringLiterals; + +Q_GLOBAL_STATIC_WITH_ARGS(QByteArray, + s_css, + ("\n")) + +ConsoleModel::ConsoleModel(QObject *parent) + : QObject(parent) +{ +} + +bool ConsoleModel::addOperation(const QString &input) +{ + return addOperation(Analitza::Expression(input), input); +} + +bool ConsoleModel::addOperation(const Analitza::Expression &e, const QString &input) +{ + Analitza::Expression res; + + a.setExpression(e); + if (a.isCorrect()) { + if (m_mode == ConsoleModel::Evaluation) { + res = a.evaluate(); + } else { + res = a.calculate(); + } + } + + if (a.isCorrect()) { + a.insertVariable(u"ans"_s, res); + m_script += e; // Script won't have the errors + Q_EMIT operationSuccessful(e, res); + + const auto result = res.toHtml(); + addMessage(QStringLiteral("%3
    = %5") + .arg(i18n("Paste to Input"), e.toString(), e.toHtml(), res.toString(), result), + e, + res); + } else { + addMessage(i18n("
      Error: %1
    • %2
    ", input.toHtmlEscaped(), a.errors().join(u"\n
  • "_s)), {}, {}); + } + + return a.isCorrect(); +} + +bool ConsoleModel::loadScript(const QUrl &path) +{ + Q_ASSERT(!path.isEmpty() && path.isLocalFile()); + + // FIXME: We have expression-only script support + bool correct = false; + QFile file(path.toLocalFile()); + + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QTextStream stream(&file); + + a.importScript(&stream); + correct = a.isCorrect(); + } + + if (correct) + addMessage(i18n("Imported: %1", path.toDisplayString()), {}, {}); + else + addMessage(i18n("
      Error: Could not load %1.
      %2
    ", path.toDisplayString(), a.errors().join(u"
    "_s)), {}, {}); + + return correct; +} + +bool ConsoleModel::saveScript(const QUrl &savePath) +{ + Q_ASSERT(!savePath.isEmpty()); + + QFile file(savePath.toLocalFile()); + bool correct = file.open(QIODevice::WriteOnly | QIODevice::Text); + + if (correct) { + QTextStream out(&file); + for (const Analitza::Expression &exp : std::as_const(m_script)) { + out << exp.toString() << QLatin1Char('\n'); + } + } + + return correct; +} + +void ConsoleModel::setMode(ConsoleMode mode) +{ + if (m_mode != mode) { + m_mode = mode; + Q_EMIT modeChanged(mode); + } +} + +void ConsoleModel::setVariables(const QSharedPointer &vars) +{ + a.setVariables(vars); +} + +void ConsoleModel::addMessage(const QString &msg, const Analitza::Expression &operation, const Analitza::Expression &result) +{ + m_htmlLog += msg.toUtf8(); + Q_EMIT updateView(); + Q_EMIT message(msg, operation, result); +} + +bool ConsoleModel::saveLog(const QUrl &savePath) const +{ + Q_ASSERT(savePath.isLocalFile()); + // FIXME: We have to choose between txt and html + QFile file(savePath.toLocalFile()); + bool correct = file.open(QIODevice::WriteOnly | QIODevice::Text); + + if (correct) { + QTextStream out(&file); + out << "\n" << *s_css << "" << QLatin1Char('\n'); + out << "" << QLatin1Char('\n'); + for (const QByteArray &entry : std::as_const(m_htmlLog)) { + out << "

    " << entry << "

    " << QLatin1Char('\n'); + } + out << "\n" << QLatin1Char('\n'); + } + + return correct; +} + +void ConsoleModel::clear() +{ + m_script.clear(); + m_htmlLog.clear(); +} + +QByteArray ConsoleModel::css() const +{ + return *s_css; +} + +QString ConsoleModel::readContent(const QUrl &url) +{ + return QUrlQuery(url).queryItemValue(u"func"_s); +} + +#include "moc_consolemodel.cpp" diff --git a/src/consolemodel.h b/src/consolemodel.h new file mode 100644 index 0000000..8623a52 --- /dev/null +++ b/src/consolemodel.h @@ -0,0 +1,91 @@ +/************************************************************************************* + * Copyright (C) 2007-2017 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef CONSOLEMODEL_H +#define CONSOLEMODEL_H + +#include +#include +#include +#include + +class ConsoleModel : public QObject +{ + Q_OBJECT + Q_PROPERTY(ConsoleMode mode READ mode WRITE setMode NOTIFY modeChanged) + Q_PROPERTY(QSharedPointer variables READ variables WRITE setVariables NOTIFY variablesChanged) +public: + ConsoleModel(QObject *parent = nullptr); + + /** This enumeration controles the way the console will calculate and show his results. */ + enum ConsoleMode { + Evaluation, /**< Simplifies the expression, tries to simplify when sees a variable not defined. */ + Calculation /**< Calculates everything, if it finds a not defined variable shows an error. */ + }; + Q_ENUM(ConsoleMode) + + Q_SCRIPTABLE bool addOperation(const QString &input); + bool addOperation(const Analitza::Expression &e, const QString &input); + + Q_SCRIPTABLE bool loadScript(const QUrl &path); + Q_SCRIPTABLE bool saveScript(const QUrl &path); + Q_SCRIPTABLE void clear(); + Q_SCRIPTABLE bool saveLog(const QUrl &path) const; + + Q_SCRIPTABLE static QString readContent(const QUrl &url); + + QByteArray css() const; + + ConsoleMode mode() const + { + return m_mode; + } + void setMode(ConsoleMode mode); + + QSharedPointer variables() const + { + return a.variables(); + } + void setVariables(const QSharedPointer &vars); + Analitza::Analyzer *analyzer() + { + return &a; + } + + QList htmlLog() const + { + return m_htmlLog; + } + +Q_SIGNALS: + void message(const QString &msg, const Analitza::Expression &operation, const Analitza::Expression &result); + void updateView(); + void modeChanged(ConsoleModel::ConsoleMode mode); + void operationSuccessful(const Analitza::Expression &expression, const Analitza::Expression &result); + void variablesChanged(); + +private: + void addMessage(const QString &msg, const Analitza::Expression &operation, const Analitza::Expression &result); + + QList m_htmlLog; + Analitza::Analyzer a; + ConsoleMode m_mode = Evaluation; + QList m_script; +}; + +#endif diff --git a/src/dictionary.cpp b/src/dictionary.cpp new file mode 100644 index 0000000..63917fa --- /dev/null +++ b/src/dictionary.cpp @@ -0,0 +1,123 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include "dictionary.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +Dictionary::Dictionary(QWidget *p) + : QWidget(p) +{ + m_ops = new OperatorsModel(this); + m_sortProxy = new QSortFilterProxyModel(this); + m_sortProxy->setSourceModel(m_ops); + m_sortProxy->sort(2, Qt::AscendingOrder); + m_sortProxy->setFilterKeyColumn(2); + + m_vars = QSharedPointer(new Analitza::Variables); + + QGroupBox *descr = new QGroupBox(i18n("Information"), this); + descr->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + QFormLayout *descrLayo = new QFormLayout; + QVBoxLayout *graphLayo = new QVBoxLayout(this); + m_name = new QLabel(descr); + m_descr = new QLabel(descr); + m_sample = new QLabel(descr); + m_example = new QLabel(descr); + m_funcs = new Analitza::PlotsModel(descr); + m_graph = new Analitza::PlotsView2D(descr); + m_graph->setTicksShown(Qt::Orientation(0)); + m_graph->setModel(m_funcs); + m_graph->setReadOnly(true); + m_graph->setViewport(QRect(QPoint(-30, 7), QPoint(30, -7))); + m_graph->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + + m_name->setIndent(10); + m_descr->setIndent(10); + m_sample->setIndent(10); + m_example->setIndent(10); + + m_example->setTextInteractionFlags(Qt::TextSelectableByMouse); + + descrLayo->addRow(i18n("%1", m_ops->headerData(0, Qt::Horizontal).toString()), m_name); + descrLayo->addRow(i18n("%1", m_ops->headerData(1, Qt::Horizontal).toString()), m_descr); + descrLayo->addRow(i18n("%1", m_ops->headerData(2, Qt::Horizontal).toString()), m_sample); + descrLayo->addRow(i18n("%1", m_ops->headerData(3, Qt::Horizontal).toString()), m_example); + descrLayo->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); + graphLayo->addWidget(descr); + graphLayo->addWidget(m_graph); + descr->setLayout(descrLayo); + + m_funcs->clear(); + // connect(m_list, SIGNAL(clicked(QModelIndex)), this, SLOT(activated(QModelIndex))); +} + +Dictionary::~Dictionary() +{ +} + +void Dictionary::activated(const QModelIndex &idx, const QModelIndex &prev) +{ + Q_UNUSED(prev); + + m_funcs->clear(); + if (idx.isValid()) { + QModelIndex nameIdx, descriptionIdx, sampleIdx, exampleIdx; + nameIdx = idx.sibling(idx.row(), 0); + descriptionIdx = idx.sibling(idx.row(), 1); + sampleIdx = idx.sibling(idx.row(), 2); + exampleIdx = idx.sibling(idx.row(), 3); + + QString name = m_sortProxy->data(nameIdx).toString(); + QString description = m_sortProxy->data(descriptionIdx).toString(); + QString sample = m_sortProxy->data(sampleIdx).toString(); + QString example = m_sortProxy->data(exampleIdx).toString(); + + Analitza::Expression e(example, false); + + m_name->setText(name); + m_descr->setText(description); + m_sample->setText(sample); + m_example->setText(example); + + m_funcs->addPlot(Analitza::PlotsFactory::self()->requestPlot(e, Analitza::Dim2D, m_vars).create(QColor(0, 150, 0), QStringLiteral("dict"))); + } else { + m_name->setText(QString()); + m_descr->setText(QString()); + m_sample->setText(QString()); + m_example->setText(QString()); + } +} + +void Dictionary::setFilter(const QString &filter) +{ + m_sortProxy->setFilterFixedString(filter); +} + +#include "moc_dictionary.cpp" diff --git a/src/dictionary.h b/src/dictionary.h new file mode 100644 index 0000000..35d38c7 --- /dev/null +++ b/src/dictionary.h @@ -0,0 +1,68 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef DICTIONARY_H +#define DICTIONARY_H + +#include +#include + +namespace Analitza +{ +class Variables; +class PlotsView2D; +class PlotsModel; +} + +class QLabel; +class QModelIndex; +class OperatorsModel; + +/** + @author Aleix Pol +*/ +class Dictionary : public QWidget +{ + Q_OBJECT +public: + Dictionary(QWidget *p = nullptr); + virtual ~Dictionary(); + + QSortFilterProxyModel *model() const + { + return m_sortProxy; + } + +public Q_SLOTS: + void activated(const QModelIndex &prev, const QModelIndex &); + void setFilter(const QString &); + +private: + QLabel *m_name; + QLabel *m_descr; + QLabel *m_sample; + QLabel *m_example; + + Analitza::PlotsView2D *m_graph; + Analitza::PlotsModel *m_funcs; + OperatorsModel *m_ops; + QSharedPointer m_vars; + QSortFilterProxyModel *m_sortProxy; +}; + +#endif diff --git a/src/functionedit.cpp b/src/functionedit.cpp new file mode 100644 index 0000000..4b3267f --- /dev/null +++ b/src/functionedit.cpp @@ -0,0 +1,326 @@ +/************************************************************************************* + * Copyright (C) 2007-2009 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include "functionedit.h" + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace Analitza; + +namespace +{ +static const int resolution = 200; +} + +FunctionEdit::FunctionEdit(QWidget *parent) + : QWidget(parent) + , m_calcUplimit(0) + , m_calcDownlimit(0) + , m_modmode(false) +{ + setWindowTitle(i18n("Add/Edit a function")); + + QVBoxLayout *topLayout = new QVBoxLayout(this); + topLayout->setContentsMargins(2, 2, 2, 2); + topLayout->setSpacing(5); + + m_name = new QLineEdit(this); + + m_func = new ExpressionEdit(this); + m_func->setExamples(PlotsFactory::self()->examples(Dim2D)); + m_func->setAns(QStringLiteral("x")); + connect(m_func, &QPlainTextEdit::textChanged, this, &FunctionEdit::edit); + connect(m_func, &ExpressionEdit::returnPressed, this, &FunctionEdit::ok); + + m_valid = new QLabel(this); + m_valid->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); + + QPalette p = palette(); + p.setColor(QPalette::Active, QPalette::Base, Qt::white); + m_valid->setPalette(p); + + m_validIcon = new QLabel(this); + m_validIcon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + QLayout *validLayout = new QHBoxLayout; + validLayout->addWidget(m_validIcon); + validLayout->addWidget(m_valid); + + m_color = new KColorCombo(this); + m_color->setColor(QColor(0, 150, 0)); + connect(m_color, SIGNAL(currentIndexChanged(int)), this, SLOT(colorChange(int))); + + m_funcsModel = new PlotsModel(this); + m_funcsModel->setResolution(resolution); + + m_viewTabs = new QTabWidget(this); + + m_graph = new PlotsView2D(m_viewTabs); + m_graph->setModel(m_funcsModel); + m_graph->setViewport(QRectF(QPointF(-10.0, 10.0), QSizeF(20.0, -20.0))); + m_graph->setFocusPolicy(Qt::NoFocus); + m_graph->setMouseTracking(false); + m_graph->setFramed(true); + m_graph->setReadOnly(true); + m_graph->setTicksShown(Qt::Orientation(0)); + + m_viewTabs->addTab(m_graph, QIcon::fromTheme(QStringLiteral("document-preview")), i18n("Preview")); + QWidget *options = new QWidget(m_viewTabs); + options->setLayout(new QVBoxLayout); + m_uplimit = new ExpressionEdit(options); + m_downlimit = new ExpressionEdit(options); + m_uplimit->setText(QStringLiteral("2*pi")); + m_downlimit->setText(QStringLiteral("0")); + options->layout()->addWidget(new QLabel(i18n("From:"), options)); + options->layout()->addWidget(m_downlimit); + options->layout()->addWidget(new QLabel(i18n("To:"), options)); + options->layout()->addWidget(m_uplimit); + options->layout()->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding)); + m_viewTabs->addTab(options, QIcon::fromTheme(QStringLiteral("configure")), i18n("Options")); + connect(m_uplimit, &QPlainTextEdit::textChanged, this, &FunctionEdit::updateUplimit); + connect(m_downlimit, &QPlainTextEdit::textChanged, this, &FunctionEdit::updateDownlimit); + + QHBoxLayout *m_butts = new QHBoxLayout; + m_ok = new QPushButton(i18n("OK"), this); + m_ok->setIcon(QIcon::fromTheme(QStringLiteral("dialog-ok"))); + m_remove = new QPushButton(i18nc("@action:button", "Remove"), this); + m_remove->setIcon(QIcon::fromTheme(QStringLiteral("list-remove"))); + connect(m_ok, &QAbstractButton::clicked, this, &FunctionEdit::ok); + connect(m_remove, &QAbstractButton::clicked, this, &FunctionEdit::removeEditingPlot); + + topLayout->addWidget(m_name); + topLayout->addWidget(m_func); + topLayout->addWidget(m_color); + topLayout->addLayout(validLayout); + topLayout->addWidget(m_viewTabs); + topLayout->addLayout(m_butts); + + m_name->hide(); // FIXME: Remove this when the name has any sense + + m_butts->addWidget(m_ok); + m_butts->addWidget(m_remove); + + m_func->setFocus(); + m_ok->setEnabled(false); + + QFont errorFont = m_valid->font(); + errorFont.setBold(true); + m_valid->setFont(errorFont); +} + +FunctionEdit::~FunctionEdit() +{ +} + +void FunctionEdit::clear() +{ + m_func->setText(QString()); + m_funcsModel->clear(); + edit(); +} + +void FunctionEdit::setFunction(const QString &newText) +{ + m_func->setText(newText); + m_func->document()->setModified(true); +} + +void FunctionEdit::setColor(const QColor &newColor) +{ + m_color->setColor(newColor); + if (m_funcsModel->rowCount() > 0) + m_funcsModel->setData(m_funcsModel->index(0), newColor); +} + +void FunctionEdit::colorChange(int) +{ + setColor(m_color->color()); +} + +static double calcExp(const Analitza::Expression &exp, const QSharedPointer &v, bool *corr) +{ + Q_ASSERT(exp.isCorrect()); + Analitza::Analyzer d(v); + d.setExpression(exp); + Analitza::Expression r = d.calculate(); + + *corr = r.isCorrect() && r.isReal(); + + if (*corr) + return r.toReal().value(); + else + return 0.; +} + +void FunctionEdit::updateUplimit() +{ + bool corr = m_uplimit->isCorrect(); + if (corr) { + Analitza::Expression e = m_uplimit->expression(); + m_calcUplimit = calcExp(e, m_vars, &corr); + m_uplimit->setCorrect(corr); + if (corr) + edit(); + } +} + +void FunctionEdit::updateDownlimit() +{ + bool corr = m_downlimit->isCorrect(); + if (corr) { + Analitza::Expression e = m_downlimit->expression(); + m_calcDownlimit = calcExp(e, m_vars, &corr); + m_downlimit->setCorrect(corr); + if (corr) + edit(); + } +} + +void FunctionEdit::setState(const QString &text, bool negative) +{ + QFontMetrics fm(m_valid->font()); + m_valid->setText(fm.elidedText(text, Qt::ElideRight, m_valid->width())); + m_valid->setToolTip(text); + + KColorScheme scheme(QPalette::Normal); + KColorScheme::ForegroundRole role = negative ? KColorScheme::NegativeText : KColorScheme::PositiveText; + + QPalette p = m_valid->palette(); + p.setColor(foregroundRole(), scheme.foreground(role).color()); + m_valid->setPalette(p); + + if (negative) + m_validIcon->setPixmap(QIcon::fromTheme(QStringLiteral("flag-red")).pixmap(QSize(16, 16))); + else + m_validIcon->setPixmap(QIcon::fromTheme(QStringLiteral("flag-green")).pixmap(QSize(16, 16))); +} + +/// Let's see if the exp is correct +void FunctionEdit::edit() +{ + if (m_func->text().isEmpty()) { + m_func->setCorrect(true); + m_ok->setEnabled(false); + m_valid->clear(); + m_valid->setToolTip(QString()); + m_validIcon->setPixmap(QIcon::fromTheme(QStringLiteral("flag-yellow")).pixmap(QSize(16, 16))); + + m_funcsModel->clear(); + m_graph->forceRepaint(); + return; + } + + if (!m_uplimit->isCorrect() || !m_downlimit->isCorrect()) { + setState(i18n("The options you specified are not correct"), true); + return; + } + + if (m_calcDownlimit > m_calcUplimit) { + setState(i18n("Downlimit cannot be greater than uplimit"), true); + return; + } + bool added = false; + + PlaneCurve *f = nullptr; + PlotBuilder req = PlotsFactory::self()->requestPlot(expression(), Dim2D, m_vars); + if (req.canDraw()) + f = createFunction(); + + if (f && f->isCorrect()) + f->update(QRect(-10, 10, 20, -20)); + + m_funcsModel->clear(); + if (f && f->isCorrect()) { + m_funcsModel->addPlot(f); + added = true; + setState(QStringLiteral("%1:=%2").arg(m_name->text(), f->expression().toString()), false); + } else { + QStringList errors = req.errors(); + if (f) + errors = f->errors(); + Q_ASSERT(!errors.isEmpty()); + + setState(errors.first(), true); + m_valid->setToolTip(errors.join(QStringLiteral("
    "))); + delete f; + } + m_func->setCorrect(added); + m_ok->setEnabled(added); +} + +void FunctionEdit::ok() +{ + if (m_ok->isEnabled()) + Q_EMIT accept(); +} + +void FunctionEdit::focusInEvent(QFocusEvent *) +{ + m_func->setFocus(); +} + +PlaneCurve *FunctionEdit::createFunction() const +{ + PlotBuilder req = PlotsFactory::self()->requestPlot(expression(), Dim2D, m_vars); + PlaneCurve *curve = static_cast(req.create(color(), name())); + curve->setResolution(resolution); + if (m_calcUplimit != m_calcDownlimit) { + const auto parameters = curve->parameters(); + for (const QString &var : parameters) + curve->setInterval(var, m_calcUplimit, m_calcDownlimit); + } + return curve; +} + +Analitza::Expression FunctionEdit::expression() const +{ + return m_func->expression(); +} + +void FunctionEdit::setOptionsShown(bool shown) +{ + m_viewTabs->setVisible(shown); +} + +void FunctionEdit::resizeEvent(QResizeEvent *) +{ + QFontMetrics fm(m_valid->font()); + m_valid->setText(fm.elidedText(m_valid->toolTip(), Qt::ElideRight, m_valid->width())); +} + +void FunctionEdit::setEditing(bool m) +{ + m_modmode = m; + m_remove->setVisible(m); +} + +#include "moc_functionedit.cpp" diff --git a/src/functionedit.h b/src/functionedit.h new file mode 100644 index 0000000..a88fdef --- /dev/null +++ b/src/functionedit.h @@ -0,0 +1,147 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef FUNCTIONEDIT_H +#define FUNCTIONEDIT_H + +#include +#include +#include +#include + +#include + +class QTabWidget; +namespace Analitza +{ +class Variables; +class Expression; +class PlotsView2D; +class PlotsModel; +class PlaneCurve; +class ExpressionEdit; +} + +/** + * The FunctionEdit dialog provides a way to specify functions. + * @author Aleix Pol i Gonzalez + */ + +class FunctionEdit : public QWidget +{ + Q_OBJECT +public: + /** Constructor. */ + explicit FunctionEdit(QWidget *parent = nullptr); + + /** Destructor. */ + ~FunctionEdit(); + + /** Retrieves the resulting expression text. */ + Analitza::Expression expression() const; + + Analitza::PlaneCurve *createFunction() const; + + /** Sets an expression text to the ExpressionEdit widget. */ + void setFunction(const QString &newText); + + /** Retrieves the selected color for the function */ + QColor color() const + { + return m_color->color(); + } + + /** Sets the selected color for the function.*/ + void setColor(const QColor &newColor); + + /** Returns whether we are editing or adding a function. */ + bool editing() const + { + return m_modmode; + } + + /** Sets whether we are editing or adding a function. */ + void setEditing(bool m); + + /** Sets a name to the function. (Not used YET) */ + void setName(const QString &name) + { + m_name->setText(name); + } + + /** Retrieves a name for the function. (Not used YET) */ + QString name() const + { + return m_name->text(); + } + + /** Sets the variables class to be used with the graph functions*/ + void setVariables(const QSharedPointer &v) + { + m_vars = v; + } + + QSharedPointer variables() const + { + return m_vars; + } + + void setOptionsShown(bool shown); + + void resizeEvent(QResizeEvent *ev) override; + +public Q_SLOTS: + /** Clears the dialog. */ + void clear(); + +Q_SIGNALS: + /** Tells that the result has been accepted. */ + void accept(); + + /** asks the currently edited plot to be removed. */ + void removeEditingPlot(); + +private Q_SLOTS: + void edit(); + void ok(); + void colorChange(int); + void updateUplimit(); + void updateDownlimit(); + +private: + void setState(const QString &text, bool negative); + void focusInEvent(QFocusEvent *) override; + + Analitza::ExpressionEdit *m_func; + Analitza::ExpressionEdit *m_uplimit, *m_downlimit; + double m_calcUplimit, m_calcDownlimit; + QLineEdit *m_name; + QPushButton *m_ok; + QLabel *m_valid; + QLabel *m_validIcon; + Analitza::PlotsView2D *m_graph; + KColorCombo *m_color; + Analitza::PlotsModel *m_funcsModel; + QSharedPointer m_vars; + + bool m_modmode; + QTabWidget *m_viewTabs; + QPushButton *m_remove; +}; + +#endif diff --git a/src/kalgebra.cpp b/src/kalgebra.cpp new file mode 100644 index 0000000..f919b0a --- /dev/null +++ b/src/kalgebra.cpp @@ -0,0 +1,769 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include "kalgebra.h" +#include "askname.h" +#include "consolehtml.h" +#include "dictionary.h" +#include "functionedit.h" +#include "varedit.h" +#include "variablesdelegate.h" +#include "viewportwidget.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace Qt::Literals::StringLiterals; + +class Add2DOption : public InlineOptions +{ +public: + Add2DOption(KAlgebra *c) + : m_kalgebra(c) + { + } + + QString id() const override + { + return QStringLiteral("add2d"); + } + bool matchesExpression(const Analitza::Expression &exp) const override + { + return Analitza::PlotsFactory::self()->requestPlot(exp, Analitza::Dim2D).canDraw(); + } + + QString caption() const override + { + return i18n("Plot 2D"); + } + + void triggerOption(const Analitza::Expression &exp) override + { + m_kalgebra->add2D(exp); + } + +private: + KAlgebra *m_kalgebra; +}; + +class Add3DOption : public InlineOptions +{ +public: + Add3DOption(KAlgebra *c) + : m_kalgebra(c) + { + } + + QString id() const override + { + return QStringLiteral("add3d"); + } + bool matchesExpression(const Analitza::Expression &exp) const override + { + return Analitza::PlotsFactory::self()->requestPlot(exp, Analitza::Dim3D).canDraw(); + } + + QString caption() const override + { + return i18n("Plot 3D"); + } + + void triggerOption(const Analitza::Expression &exp) override + { + m_kalgebra->add3D(exp); + } + +private: + KAlgebra *m_kalgebra; +}; + +QColor randomFunctionColor() +{ + return QColor::fromHsv(QRandomGenerator::global()->bounded(255), 255, 255); +} + +KAlgebra::KAlgebra(QWidget *parent) + : QMainWindow(parent) +{ + resize(900, 500); + + m_tabs = new QTabWidget; + setCentralWidget(m_tabs); + + setStatusBar(new QStatusBar(this)); + setMenuBar(new QMenuBar(this)); + + KToggleFullScreenAction *fullScreenAction = KStandardAction::fullScreen(this, SLOT(fullScreen(bool)), this, this); + + QMenu *g_menu = menuBar()->addMenu(i18n("Session")); + g_menu->addAction(KStandardAction::openNew(this, SLOT(newInstance()), this)); + g_menu->addAction(fullScreenAction); + g_menu->addSeparator(); + g_menu->addAction(KStandardAction::quit(this, SLOT(close()), this)); + + QToolButton *fullScreenButton = new QToolButton(this); + fullScreenButton->setDefaultAction(fullScreenAction); + m_tabs->setCornerWidget(fullScreenButton); + + m_status = new QLabel(this); + statusBar()->insertWidget(0, m_status); + menuBar()->addAction(QStringLiteral("|"))->setEnabled(false); + + ///////Console + QWidget *console = new QWidget(m_tabs); + QVBoxLayout *c_layo = new QVBoxLayout(console); + c_results = new ConsoleHtml(console); + c_results->setFocusPolicy(Qt::NoFocus); + c_dock_vars = new QDockWidget(i18n("Variables"), this); + c_dock_vars->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable); + addDockWidget(Qt::RightDockWidgetArea, c_dock_vars); + + c_varsModel = new Analitza::VariablesModel(c_results->analitza()->variables()); + c_varsModel->setEditable(false); + + c_variables = new QTreeView(c_dock_vars); + c_variables->setModel(c_varsModel); + c_variables->setRootIsDecorated(false); + c_variables->header()->setStretchLastSection(true); + c_variables->setSelectionBehavior(QAbstractItemView::SelectRows); + c_variables->setSelectionMode(QAbstractItemView::SingleSelection); + + c_exp = new Analitza::ExpressionEdit(console); + c_exp->setAnalitza(c_results->analitza()); + c_exp->setExamples(QStringList() << QStringLiteral("square:=x->x**2") << QStringLiteral("fib:=n->piecewise { eq(n,0)?0, eq(n,1)?1, ?fib(n-1)+fib(n-2) }")); + c_dock_vars->setWidget(c_variables); + + m_tabs->addTab(console, i18n("&Calculator")); + console->setLayout(c_layo); + c_layo->addWidget(c_results); + c_layo->addWidget(c_exp); + + connect(c_exp, &Analitza::ExpressionEdit::returnPressed, this, &KAlgebra::operate); + connect(c_results, &ConsoleHtml::status, this, &KAlgebra::changeStatusBar); + connect(c_results, &ConsoleHtml::changed, this, &KAlgebra::updateInformation); + connect(c_results, SIGNAL(changed()), c_exp, SLOT(updateCompleter())); + connect(c_results, SIGNAL(paste(QString)), c_exp, SLOT(insertText(QString))); + connect(c_variables, &QAbstractItemView::clicked, this, &KAlgebra::edit_var); + ////////menu + c_menu = menuBar()->addMenu(i18n("C&alculator")); + c_menu->addAction(QIcon::fromTheme(QStringLiteral("document-open")), + i18nc("@item:inmenu", "&Load Script..."), + Qt::CTRL | Qt::Key_L, + this, + SLOT(loadScript())); + c_recentScripts = new KRecentFilesAction(QIcon::fromTheme(QStringLiteral("document-open-recent")), i18n("Recent Scripts"), this); + connect(c_recentScripts, SIGNAL(urlSelected(QUrl)), this, SLOT(loadScript(QUrl))); + c_menu->addAction(c_recentScripts); + + c_menu->addAction(QIcon::fromTheme(QStringLiteral("document-save")), + i18nc("@item:inmenu", "&Save Script..."), + Qt::CTRL | Qt::Key_G, + this, + &KAlgebra::saveScript); + c_menu->addAction(QIcon::fromTheme(QStringLiteral("document-save")), i18nc("@item:inmenu", "&Export Log..."), QKeySequence::Save, this, &KAlgebra::saveLog); + c_menu->addSeparator(); + c_menu->addAction(i18nc("@item:inmenu", "&Insert ans..."), Qt::Key_F3, this, &KAlgebra::insertAns); + c_menu->addSeparator()->setText(i18n("Execution Mode")); + QActionGroup *execGroup = new QActionGroup(c_menu); + QAction *calc = c_menu->addAction(i18nc("@item:inmenu", "Calculate"), this, &KAlgebra::consoleCalculate); + QAction *eval = c_menu->addAction(i18nc("@item:inmenu", "Evaluate"), this, &KAlgebra::consoleEvaluate); + + calc->setCheckable(true); + eval->setCheckable(true); + eval->setChecked(true); + execGroup->addAction(calc); + execGroup->addAction(eval); + c_menu->addSeparator(); + c_menu->addAction(KStandardAction::clear(c_results, SLOT(clear()), this)); + initializeRecentScripts(); + //////////// + //////EOConsola + + //////2D Graph + b_funcsModel = new Analitza::PlotsModel(this); + + m_graph2d = new Analitza::PlotsView2D(m_tabs); + m_graph2d->setTicksShown(Qt::Orientation(0)); + m_graph2d->setModel(b_funcsModel); + + b_dock_funcs = new QDockWidget(i18n("Functions"), this); + b_tools = new QTabWidget(b_dock_funcs); + b_tools->setTabPosition(QTabWidget::South); + addDockWidget(Qt::RightDockWidgetArea, b_dock_funcs); + + b_funcs = new QTreeView(b_tools); + b_funcs->setRootIsDecorated(false); + b_funcs->setModel(b_funcsModel); + b_funcs->header()->resizeSections(QHeaderView::ResizeToContents); + b_funcs->setSelectionMode(QAbstractItemView::SingleSelection); + m_graph2d->setSelectionModel(b_funcs->selectionModel()); + + b_tools->addTab(b_funcs, i18n("List")); + + b_funced = new FunctionEdit(b_tools); + b_funced->setVariables(c_varsModel->variables()); + connect(b_funced, &FunctionEdit::accept, this, &KAlgebra::new_func); + connect(b_funced, &FunctionEdit::removeEditingPlot, this, &KAlgebra::remove_func); + b_tools->addTab(b_funced, QIcon::fromTheme(QStringLiteral("list-add")), i18n("&Add")); + + QTableView *b_varsView = new QTableView(b_tools); + b_varsModel = new Analitza::VariablesModel(b_funced->variables()); + b_varsView->setModel(b_varsModel); + b_varsView->setShowGrid(false); + b_varsView->verticalHeader()->hide(); + b_varsView->horizontalHeader()->setStretchLastSection(true); + b_varsView->setSelectionBehavior(QAbstractItemView::SelectRows); + b_varsView->setContextMenuPolicy(Qt::CustomContextMenu); + VariablesDelegate *delegate = new VariablesDelegate(b_varsView); + b_varsView->setItemDelegate(delegate); + b_tools->addTab(b_varsView, i18n("Variables")); + + ViewportWidget *b_viewport = new ViewportWidget(this); + b_viewport->setViewport(m_graph2d->definedViewport()); + b_tools->addTab(b_viewport, i18n("Viewport")); + + b_dock_funcs->setWidget(b_tools); + b_dock_funcs->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable); + m_tabs->addTab(m_graph2d, i18n("&2D Graph")); + c_results->addOptionsObserver(new Add2DOption(this)); + + connect(b_varsModel, &QAbstractItemModel::dataChanged, this, &KAlgebra::valueChanged); + connect(b_funcs, &QAbstractItemView::doubleClicked, this, &KAlgebra::edit_func); + connect(b_tools, &QTabWidget::currentChanged, this, &KAlgebra::functools); + connect(m_graph2d, &Analitza::PlotsView2D::status, this, &KAlgebra::changeStatusBar); + connect(m_graph2d, SIGNAL(viewportChanged(QRectF)), b_viewport, SLOT(setViewport(QRectF))); + connect(b_viewport, SIGNAL(viewportChange(QRectF)), m_graph2d, SLOT(changeViewport(QRectF))); + connect(b_varsView, &QWidget::customContextMenuRequested, this, &KAlgebra::varsContextMenu); + + ////////menu + b_menu = menuBar()->addMenu(i18n("2&D Graph")); + QAction *b_actions[6]; + b_actions[0] = b_menu->addAction(i18n("&Grid"), this, &KAlgebra::toggleSquares); + b_actions[1] = b_menu->addAction(i18n("&Keep Aspect Ratio"), this, &KAlgebra::toggleKeepAspect); + b_menu->addAction(KStandardAction::save(this, SLOT(saveGraph()), this)); + b_menu->addSeparator(); + b_menu->addAction(KStandardAction::zoomIn(m_graph2d, SLOT(zoomIn()), this)); + b_menu->addAction(KStandardAction::zoomOut(m_graph2d, SLOT(zoomOut()), this)); + QAction *ac = KStandardAction::actualSize(m_graph2d, SLOT(resetViewport()), this); + ac->setShortcut({Qt::ControlModifier | Qt::Key_0}); + b_menu->addAction(ac); + b_menu->addSeparator()->setText(i18n("Resolution")); + b_actions[2] = b_menu->addAction(i18nc("@item:inmenu", "Poor"), this, &KAlgebra::set_res_low); + b_actions[3] = b_menu->addAction(i18nc("@item:inmenu", "Normal"), this, &KAlgebra::set_res_std); + b_actions[4] = b_menu->addAction(i18nc("@item:inmenu", "Fine"), this, &KAlgebra::set_res_fine); + b_actions[5] = b_menu->addAction(i18nc("@item:inmenu", "Very Fine"), this, &KAlgebra::set_res_vfine); + m_graph2d->setContextMenuPolicy(Qt::ActionsContextMenu); + m_graph2d->addActions(b_menu->actions()); + + QActionGroup *res = new QActionGroup(b_menu); + res->addAction(b_actions[2]); + res->addAction(b_actions[3]); + res->addAction(b_actions[4]); + res->addAction(b_actions[5]); + + b_actions[0]->setCheckable(true); + b_actions[0]->setChecked(true); + b_actions[1]->setCheckable(true); + b_actions[1]->setChecked(true); + b_actions[2]->setCheckable(true); + b_actions[3]->setCheckable(true); + b_actions[3]->setChecked(true); + b_actions[4]->setCheckable(true); + b_actions[5]->setCheckable(true); + set_res_std(); + //////EO2D Graph + + /////3DGraph + QWidget *tridim = new QWidget(m_tabs); + QVBoxLayout *t_layo = new QVBoxLayout(tridim); + t_exp = new Analitza::ExpressionEdit(tridim); + t_exp->setExamples(Analitza::PlotsFactory::self()->examples(Analitza::Dim3D)); + t_exp->setAns(QStringLiteral("x")); + t_model3d = new Analitza::PlotsModel(this); + m_graph3d = new Analitza::PlotsView3DES(tridim); + m_graph3d->setModel(t_model3d); + m_graph3d->setUseSimpleRotation(true); + + tridim->setLayout(t_layo); + m_tabs->addTab(tridim, i18n("&3D Graph")); + t_layo->addWidget(m_graph3d); + t_layo->addWidget(t_exp); + + connect(t_exp, &Analitza::ExpressionEdit::returnPressed, this, &KAlgebra::new_func3d); + c_results->addOptionsObserver(new Add3DOption(this)); + + ////////menu + t_menu = menuBar()->addMenu(i18n("3D &Graph")); + QAction *t_actions[5]; + t_menu->addAction(KStandardAction::save(this, SLOT(save3DGraph()), this)); + t_menu->addAction(QIcon::fromTheme(QStringLiteral("zoom-original")), i18n("&Reset View"), m_graph3d, [this]() { + m_graph3d->resetViewport(); + }); + t_menu->addSeparator(); + t_actions[2] = t_menu->addAction(i18n("Dots"), this, &KAlgebra::set_dots); + t_actions[3] = t_menu->addAction(i18n("Lines"), this, &KAlgebra::set_lines); + t_actions[4] = t_menu->addAction(i18n("Solid"), this, &KAlgebra::set_solid); + + QActionGroup *t_type = new QActionGroup(t_menu); + t_type->addAction(t_actions[2]); + t_type->addAction(t_actions[3]); + t_type->addAction(t_actions[4]); + + t_actions[2]->setCheckable(true); + t_actions[3]->setCheckable(true); + t_actions[4]->setCheckable(true); + t_actions[4]->setChecked(true); + + //////////// + //////EO3D Graph + menuBar()->addAction(QStringLiteral("|"))->setEnabled(false); + + // Dictionary tab + d_dock = new QDockWidget(i18n("Operations"), this); + d_dock->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable); + addDockWidget(Qt::RightDockWidgetArea, d_dock); + Dictionary *dic = new Dictionary(m_tabs); + m_tabs->addTab(dic, i18n("&Dictionary")); + + QWidget *w = new QWidget; + QLayout *leftLayo = new QVBoxLayout(w); + d_filter = new QLineEdit(w); + d_filter->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed)); + connect(d_filter, &QLineEdit::textChanged, dic, &Dictionary::setFilter); + connect(d_filter, &QLineEdit::textChanged, this, &KAlgebra::dictionaryFilterChanged); + d_list = new QListView(w); + d_list->setModel(dic->model()); + d_list->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding)); + leftLayo->addWidget(new QLabel(i18n("Look for:"), d_dock)); + leftLayo->addWidget(d_filter); + leftLayo->addWidget(d_list); + d_dock->setWidget(w); + + connect(d_list->selectionModel(), &QItemSelectionModel::currentChanged, dic, &Dictionary::activated); + + // EODictionary + // Ego's reminder + KHelpMenu *help = new KHelpMenu(this); + menuBar()->addMenu(help->menu()); + +#pragma message("TODO: Port to PlotsModel") + // connect(b_funcsModel, SIGNAL(functionModified(QString,Analitza::Expression)), + // c_results, SLOT(modifyVariable(QString,Analitza::Expression))); + // connect(b_funcsModel, SIGNAL(functionRemoved(QString)), + // c_results, SLOT(removeVariable(QString))); + + connect(m_tabs, &QTabWidget::currentChanged, this, &KAlgebra::tabChanged); + tabChanged(0); +} + +KAlgebra::~KAlgebra() +{ + KConfig conf(QStringLiteral("kalgebrarc")); + KConfigGroup config(&conf, QStringLiteral("Default")); + QStringList urls; + const auto recentScripts = c_recentScripts->urls(); + for (const QUrl &url : recentScripts) + urls += url.toDisplayString(); + + config.writeEntry("recent", urls); +} + +void KAlgebra::initializeRecentScripts() +{ + KConfig conf(QStringLiteral("kalgebrarc")); + KConfigGroup config(&conf, QStringLiteral("Default")); + + const QStringList urls = config.readEntry("recent", QStringList()); + for (const QString &url : urls) { + c_recentScripts->addUrl(QUrl(url)); + } +} + +void KAlgebra::newInstance() +{ + QProcess::startDetached(QApplication::applicationFilePath(), QStringList()); +} + +void KAlgebra::add2D(const Analitza::Expression &exp) +{ + qDebug() << "adding" << exp.toString(); + + Analitza::PlotBuilder req = Analitza::PlotsFactory::self()->requestPlot(exp, Analitza::Dim2D, c_results->analitza()->variables()); + Analitza::PlotItem *curve = req.create(randomFunctionColor(), b_funcsModel->freeId()); + b_funcsModel->addPlot(curve); + + m_tabs->setCurrentIndex(1); +} + +void KAlgebra::new_func() +{ + Analitza::FunctionGraph *f = b_funced->createFunction(); + + if (b_funced->editing()) { + QModelIndex idx = b_funcsModel->indexForName(f->name()); + b_funcsModel->updatePlot(idx.row(), f); + } else { + b_funcsModel->addPlot(f); + } + + b_funced->setEditing(false); + b_funced->clear(); + b_tools->setCurrentIndex(0); + b_funcs->setCurrentIndex(b_funcsModel->indexForName(f->name())); + m_graph2d->setFocus(); +} + +void KAlgebra::remove_func() +{ + Q_ASSERT(b_funced->editing()); + b_funcsModel->removeRow(b_funcs->currentIndex().row()); + + b_funced->setEditing(false); + b_funced->clear(); + b_tools->setCurrentIndex(0); + b_funcs->setCurrentIndex(QModelIndex()); + m_graph2d->setFocus(); +} + +void KAlgebra::edit_func(const QModelIndex &idx) +{ + b_tools->setTabText(1, i18n("&Editing")); + b_tools->setCurrentIndex(1); + b_funced->setName(b_funcsModel->data(idx.sibling(idx.row(), 0)).toString()); + b_funced->setFunction(b_funcsModel->data(idx.sibling(idx.row(), 1)).toString()); + b_funced->setEditing(true); + b_funced->setFocus(); +} + +void KAlgebra::functools(int i) +{ + if (i == 0) + b_tools->setTabText(1, i18n("&Add")); + else { + b_funced->setName(b_funcsModel->freeId()); + b_funced->setColor(randomFunctionColor()); + b_funced->setEditing(false); + b_funced->setFocus(); + } +} + +void KAlgebra::edit_var(const QModelIndex &idx) +{ + if (idx.column() == 0) { + c_exp->insertText(idx.data().toString()); + } else { + QModelIndex idxName = idx.sibling(idx.row(), 0); + + QPointer e(new VarEdit(this, false)); + QString var = c_variables->model()->data(idxName, Qt::DisplayRole).toString(); + + e->setAnalitza(c_results->analitza()); + e->setName(var); + + if (e->exec() == QDialog::Accepted) { + QString str = var + u" := "_s + e->val().toString(); + c_results->addOperation(Analitza::Expression(str, false), str); + } + delete e; + } +} + +void KAlgebra::operate() +{ + if (!c_exp->text().isEmpty()) { + c_exp->setCorrect(c_results->addOperation(c_exp->expression(), c_exp->toPlainText())); + c_exp->selectAll(); + } +} + +void KAlgebra::changeStatusBar(const QString &msg) +{ + // statusBar()->showMessage(msg); + m_status->setText(msg); +} + +void KAlgebra::loadScript() +{ + QUrl path = QFileDialog::getOpenFileUrl(this, i18n("Choose a script"), QUrl(), i18n("Script (*.kal)")); + + if (!path.isEmpty()) + loadScript(path); +} + +void KAlgebra::loadScript(const QUrl &path) +{ + bool loaded = c_results->loadScript(path); + + if (loaded) + c_recentScripts->addUrl(path); +} + +void KAlgebra::saveScript() +{ + QUrl path = QFileDialog::getSaveFileUrl(this, QString(), QUrl(), i18n("Script (*.kal)")); + bool loaded = false; + if (!path.isEmpty()) + loaded = c_results->saveScript(path); + + if (loaded) + c_recentScripts->addUrl(path); +} + +void KAlgebra::saveLog() +{ + QUrl path = QFileDialog::getSaveFileUrl(this, QString(), QUrl(), i18n("HTML File (*.html)")); + if (!path.isEmpty()) + c_results->saveLog(path); +} + +void KAlgebra::insertAns() +{ + c_exp->insertText(QStringLiteral("ans")); +} + +void KAlgebra::set_res_low() +{ + b_funcsModel->setResolution(416); +} +void KAlgebra::set_res_std() +{ + b_funcsModel->setResolution(832); +} +void KAlgebra::set_res_fine() +{ + b_funcsModel->setResolution(1664); +} +void KAlgebra::set_res_vfine() +{ + b_funcsModel->setResolution(3328); +} + +void KAlgebra::new_func3d() +{ + Analitza::Expression exp = t_exp->expression(); + Analitza::PlotBuilder plot = Analitza::PlotsFactory::self()->requestPlot(exp, Analitza::Dim3D, c_results->analitza()->variables()); + if (plot.canDraw()) { + t_model3d->clear(); + t_model3d->addPlot(plot.create(Qt::yellow, QStringLiteral("func3d"))); + } else + changeStatusBar(i18n("Errors: %1", plot.errors().join(i18n(", ")))); +} + +void KAlgebra::set_dots() +{ + m_graph3d->setPlotStyle(Analitza::Dots); +} + +void KAlgebra::set_lines() +{ + m_graph3d->setPlotStyle(Analitza::Wired); +} + +void KAlgebra::set_solid() +{ + m_graph3d->setPlotStyle(Analitza::Solid); +} + +void KAlgebra::save3DGraph() +{ + QString path = QFileDialog::getSaveFileName(this, QString(), QString(), m_graph3d->filters().join(QStringLiteral(";;"))); + if (!path.isEmpty()) { + m_graph3d->save(QUrl::fromLocalFile(path)); + } +} + +void KAlgebra::toggleSquares() +{ + m_graph2d->setTicksShown(m_graph2d->ticksShown() ? (Qt::Horizontal | Qt::Vertical) : ~(Qt::Horizontal | Qt::Vertical)); +} + +void KAlgebra::toggleKeepAspect() +{ + m_graph2d->setKeepAspectRatio(!m_graph2d->keepAspectRatio()); +} + +void KAlgebra::saveGraph() +{ + QPointer dialog = + new QFileDialog(this, i18n("Select where to put the rendered plot"), QString(), i18n("Image File (*.png);;SVG File (*.svg)")); + dialog->setOption(QFileDialog::DontConfirmOverwrite, false); + if (dialog->exec() && !dialog->selectedFiles().isEmpty()) { + QString filter = dialog->selectedNameFilter(); + QString filename = dialog->selectedFiles().first(); + + bool isSvg = filename.endsWith(QLatin1String(".svg")) || (!filename.endsWith(QLatin1String(".png")) && filter.mid(2, 3) == QLatin1String("svg")); + Analitza::PlotsView2D::Format f = isSvg ? Analitza::PlotsView2D::SVG : Analitza::PlotsView2D::PNG; + m_graph2d->toImage(filename, f); + } + delete dialog; +} + +void menuEnabledHelper(QMenu *m, bool enabled) +{ + m->setEnabled(enabled); + const auto actions = m->actions(); + for (QAction *action : actions) { + action->setEnabled(enabled); + } +} + +void KAlgebra::tabChanged(int n) +{ + c_dock_vars->hide(); + b_dock_funcs->hide(); + d_dock->hide(); + + menuEnabledHelper(c_menu, n == 0); + menuEnabledHelper(b_menu, n == 1); + menuEnabledHelper(t_menu, n == 2); + + m_status->clear(); + + switch (n) { + case 0: + c_dock_vars->show(); + c_dock_vars->raise(); + c_exp->setFocus(); + break; + case 1: + b_dock_funcs->show(); + b_dock_funcs->raise(); + + if (b_funcsModel->rowCount() == 0) + b_tools->setCurrentIndex(1); // We set the Add tab + // b_add->setFocus(); + break; + case 2: + t_exp->setFocus(); + break; + case 3: + d_filter->setFocus(); + d_dock->show(); + d_dock->raise(); + default: + break; + } + changeStatusBar(i18nc("@info:status", "Ready")); +} + +void KAlgebra::select(const QModelIndex &idx) +{ + b_funcs->selectionModel()->setCurrentIndex(idx, QItemSelectionModel::ClearAndSelect); +} + +void KAlgebra::updateInformation() +{ + c_varsModel->updateInformation(); + c_variables->header()->resizeSections(QHeaderView::ResizeToContents); +} + +void KAlgebra::consoleCalculate() +{ + c_results->setMode(ConsoleModel::Calculation); +} + +void KAlgebra::consoleEvaluate() +{ + c_results->setMode(ConsoleModel::Evaluation); +} + +void KAlgebra::valueChanged() +{ + // FIXME: Should only repaint the affected ones. + if (b_funcsModel->rowCount() > 0) + m_graph2d->updateFunctions(QModelIndex(), 0, b_funcsModel->rowCount() - 1); +} + +void KAlgebra::varsContextMenu(const QPoint &p) +{ + QPointer m = new QMenu; + m->addAction(i18n("Add variable")); + QAction *ac = m->exec(b_dock_funcs->widget()->mapToGlobal(p)); + + if (ac) { + QPointer a = new AskName(i18n("Enter a name for the new variable"), nullptr); + + if (a->exec() == QDialog::Accepted) + b_varsModel->insertVariable(a->name(), Analitza::Expression(Analitza::Cn(0))); + delete a; + } + delete m; +} + +void KAlgebra::add3D(const Analitza::Expression &exp) +{ + t_model3d->clear(); + Analitza::PlotBuilder plot = Analitza::PlotsFactory::self()->requestPlot(exp, Analitza::Dim3D, c_results->analitza()->variables()); + Q_ASSERT(plot.canDraw()); + t_model3d->addPlot(plot.create(Qt::yellow, QStringLiteral("func3d_console"))); + m_tabs->setCurrentIndex(2); +} + +void KAlgebra::dictionaryFilterChanged(const QString &) +{ + if (d_list->model()->rowCount() == 1) + d_list->setCurrentIndex(d_list->model()->index(0, 0)); +} + +void KAlgebra::fullScreen(bool isFull) +{ + m_tabs->setDocumentMode(isFull); + m_tabs->setTabEnabled(3, !isFull); + if (isFull) { + hide(); + m_tabs->setParent(nullptr); + setCentralWidget(nullptr); + m_tabs->showFullScreen(); + } else { + setCentralWidget(m_tabs); + show(); + } +} + +#include "moc_kalgebra.cpp" diff --git a/src/kalgebra.h b/src/kalgebra.h new file mode 100644 index 0000000..164126b --- /dev/null +++ b/src/kalgebra.h @@ -0,0 +1,135 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef KALGEBRA_H +#define KALGEBRA_H + +#include +#include +#include +#include +#include +#include + +namespace Analitza +{ +class PlotsView2D; +class PlotsView3DES; +class PlotsModel; +class VariablesModel; +class ExpressionEdit; +} + +class ConsoleHtml; +class FunctionEdit; +class KRecentFilesAction; + +namespace Analitza +{ +class Expression; +} + +class KAlgebra : public QMainWindow +{ + Q_OBJECT +public: + KAlgebra(QWidget *parent = nullptr); + ~KAlgebra(); + + void add2D(const Analitza::Expression &exp); + void add3D(const Analitza::Expression &exp); + +private: + QLabel *m_status; + QTabWidget *m_tabs; + + // consoleeWidget + QMenu *c_menu; + KRecentFilesAction *c_recentScripts; + Analitza::ExpressionEdit *c_exp; + ConsoleHtml *c_results; + QTreeView *c_variables; + QDockWidget *c_dock_vars; + Analitza::VariablesModel *c_varsModel; + + // graf 2d + QMenu *b_menu; + Analitza::PlotsModel *b_funcsModel; + QTreeView *b_funcs; + QTabWidget *b_tools; + Analitza::PlotsView2D *m_graph2d; + QDockWidget *b_dock_funcs; + FunctionEdit *b_funced; + Analitza::VariablesModel *b_varsModel; + + // graph 3d + QMenu *t_menu; + Analitza::ExpressionEdit *t_exp; + Analitza::PlotsView3DES *m_graph3d; + Analitza::PlotsModel *t_model3d; + + // Dictionary + QDockWidget *d_dock; + QListView *d_list; + QLineEdit *d_filter; + +private Q_SLOTS: + void newInstance(); + void fullScreen(bool isFull); + + void initializeRecentScripts(); + void operate(); + void loadScript(); + void loadScript(const QUrl &path); + void saveScript(); + void saveLog(); + void updateInformation(); + void consoleCalculate(); + void consoleEvaluate(); + void insertAns(); + + void select(const QModelIndex &idx); + void new_func(); + void remove_func(); + void edit_func(const QModelIndex &); + void edit_var(const QModelIndex &); + void toggleSquares(); + void toggleKeepAspect(); + void set_res_low(); + void set_res_std(); + void set_res_fine(); + void set_res_vfine(); + void valueChanged(); + void varsContextMenu(const QPoint &); + + void new_func3d(); + void set_dots(); + void set_lines(); + void set_solid(); + void save3DGraph(); + + void saveGraph(); + void functools(int); + + void dictionaryFilterChanged(const QString &filter); + + void changeStatusBar(const QString &); + void tabChanged(int); +}; + +#endif diff --git a/src/kalgebra.xml b/src/kalgebra.xml new file mode 100644 index 0000000..d9b95c2 --- /dev/null +++ b/src/kalgebra.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + piecewise + list + vector + ? + + + + e + euler + false + pi + true + ans + + + + @ + abs + and + approx + arccos + arccosh + arccot + arcsc + arcsch + arcsec + arcsech + arcsin + arcsinh + arctan + arctanh + card + ceiling + cos + cosh + cot + coth + csc + csch + diff + divide + eq + exp + factorial + factorof + floor + fmod + gcd + geq + gt + implies + lcm + leq + ln + log + lt + max + min + minus + neq + not + or + plus + power + product + quotient + rem + root + scalarprod + sec + sech + selector + sin + sinh + sum em> + tan + tanh + times + union + xor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..718eab7 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,52 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include "kalgebra.h" +#include "kalgebra_version.h" +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + KLocalizedString::setApplicationDomain("kalgebra"); + KAboutData about(QStringLiteral("kalgebra"), + QStringLiteral("KAlgebra"), + QStringLiteral(KALGEBRA_VERSION_STRING), + i18n("A portable calculator"), + KAboutLicense::GPL, + i18n("(C) 2006-2016 Aleix Pol i Gonzalez")); + about.addAuthor(i18n("Aleix Pol i Gonzalez"), QString(), QStringLiteral("aleixpol@kde.org")); + about.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails")); + KAboutData::setApplicationData(about); + + { + QCommandLineParser parser; + about.setupCommandLine(&parser); + parser.process(app); + about.processCommandLine(&parser); + } + QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("kalgebra"))); + + KAlgebra widget; + widget.show(); + + return app.exec(); +} diff --git a/src/org.kde.kalgebra.appdata.xml b/src/org.kde.kalgebra.appdata.xml new file mode 100644 index 0000000..1ed1972 --- /dev/null +++ b/src/org.kde.kalgebra.appdata.xml @@ -0,0 +1,200 @@ + + + org.kde.kalgebra + CC0-1.0 + GPL-2.0+ + + KDE + + KAlgebra + جبرك + KAlgebra + KAlgebra + Kalgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + ਕੇ-ਐਲਜਬਰਾ + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + KAlgebra + Kalgebra + K Cebir + KAlgebra + xxKAlgebraxx + KAlgebra + 數學_KAlgebra + Graph Calculator + حاسبة رسومية + Графичен калкулатор + Graf kalkulator + Calculadora gràfica + Calculadora gràfica + Kalkulačka grafů + Graphenrechner + Υπολογιστής γραφικών παραστάσεων + Graph Calculator + Grafea Kalkulilo + Calculadora gráfica + Graafide arvutaja + Kalkulagailu grafikoa + Graafinen laskin + Calculatrice graphique + Calculadora gráfica + מחשבון תרשימים + Grafikus számológép + Calculator Graphic + Kalkulator Grafik + Calcolatrice grafica + გრაფიკული კალკულატორი + 그래핑 계산기 + Grafinis skaičiuotuvas + Funkschonenreekner + Rekenmachine met grafieken + Grafkalkulator + ਗਰਾਫ਼ ਕੈਲਕੂਲਟਰ + Kalkulator wykresów + Calculadora de Grafos + Calculadora gráfica + Калькулятор с функцией построения графиков + Grafická kalkulačka + Računalo z grafi + Grafräknare + Grafik Hesap Makinesi + Графічний калькулятор + xxGraph Calculatorxx + 图形计算器 + 圖形計算器 + +

    KAlgebra is an application that can replace your graphing calculator. It has numerical, logical, symbolic, and analysis features that let you calculate mathematical expressions on the console and graphically plot the results in 2D or 3D. KAlgebra is rooted in the Mathematical Markup Language (MathML); however, one does not need to know MathML to use KAlgebra.

    +

    جبرك هو أحد التطبيقات التي يمكن أن تحل محل آلة حاسبة الرسوم البيانية الخاصة بك. يحتوي على ميزات عددية ومنطقية ورمزية وتحليلية تتيح لك حساب التعبيرات الرياضية على وحدة التحكم ورسم النتائج بيانياً ثنائي الأبعاد أو ثلاثي الأبعاد. جبرك متجذر في لغة التوصيف الرياضي (MathML)؛ ومع ذلك ، لا يحتاج المرء إلى معرفة MathML لاستخدام جبرك.

    +

    KAlgebra е приложение, което може да замени вашия графичен калкулатор. То разполага с числени, логически, символни и аналитични функции, които ви позволяват да изчислявате математически изрази на конзолата и да изобразявате графично резултатите в 2D или 3D. KAlgebra се основава на езика за математическа маркировка (MathML); въпреки това не е необходимо да се познава MathML, за да се използва KAlgebra.

    +

    El KAlgebra és una aplicació que pot substituir la vostra calculadora gràfica. Té capacitats numèriques, lògiques i d'anàlisi que us permetran calcular expressions matemàtiques en una consola i dibuixar una gràfica dels resultats en 2D o 3D. El KAlgebra té les seves arrels en el Llenguatge de Marcat Matemàtic (MathML). Tanmateix, no us caldrà tenir coneixements de MathML per a emprar el KAlgebra.

    +

    KAlgebra és una aplicació que pot substituir la vostra calculadora gràfica. Té capacitats numèriques, lògiques i d'anàlisi que vos permetran calcular expressions matemàtiques en una consola i dibuixar una gràfica dels resultats en 2D o 3D. KAlgebra té les seues arrels en el Llenguatge de Marcatge Matemàtic (MathML). Tanmateix, no vos caldrà tindre coneixements de MathML per a emprar KAlgebra.

    +

    KAlgebra ist eine Anwendung, die Ihren grafischen Taschenrechner ersetzt. KAlgebra hat numerische, logische, symbolische und analytische Fähigkeiten, mit denen Sie mathematische Ausdrücke in der Konsole auswerten und die Ergebnisse zwei- oder dreidimensional darstellen können. KAlgebra basiert auf der Sprache „Mathematical Markup Language“ (MathML), es sind jedoch keine Kenntnisse von MathML erforderlich, um KAlgebra erfolgreich einsetzen zu können.

    +

    Η KAlgebra είναι μία εφαρμογή αντικατάστασης του υπολογιστή για τα γραφικά σας. Έχει αριθμητικές, λογικές, συμβολικές και αναλυτικές λειτουργίες για να υπολογίζετε μαθηματικές εκφράσεις στην κονσόλα και να αναπαριστάτε γραφικά τα αποτελέσματα σε 2 ή 3 διαστάσεις. Η KAlgebra προέρχεται από τη Μαθηματική Γλώσσα Σήμανσης (MathML): ωστόσο, δεν χρειάζεται κανείς να γνωρίζει τη MathML για να χρησιμοποιήσει την KAlgebra.

    +

    KAlgebra is an application that can replace your graphing calculator. It has numerical, logical, symbolic, and analysis features that let you calculate mathematical expressions on the console and graphically plot the results in 2D or 3D. KAlgebra is rooted in the Mathematical Markup Language (MathML); however, one does not need to know MathML to use KAlgebra.

    +

    KAlgebra estas aplikaĵo, kiu povas anstataŭigi vian grafean kalkulilon. Ĝi havas nombrajn, logikajn, simbolajn kaj analizajn funkciojn, kiuj ebligas al vi kalkuli matematikajn esprimojn sur la konzolo kaj grafike desegni la rezultojn en 2D aŭ 3D. KAlgebro radikas en la Matematika Marklingvo (MathML); tamen, oni ne bezonas koni MathML por uzi KAlgebra.

    +

    KAlgebra es una aplicación que puede sustituir su calculadora gráfica. Contiene funciones numéricas, lógicas, simbólicas y de análisis que le permiten calcular expresiones matemáticas en la consola y dibujar gráficamente su resultado en dos o tres dimensiones. KAlgebra se basa fuertemente en el «lenguaje de marcado matemático» (MathML); sin embargo, no es necesario saber MathML para usar KAlgebra.

    +

    KAlgebra on rakendus, mis võib asendada su senist graafikalkulaatorit Sel on arvulisi, loogilisi, sümbolilisi ja analüüsiomadusi, mis võimaldavad arvutada matemaatilisi avaldisi konsoolis ja lasta tulemusi kujutada graafiliselt nii tasapinnaliselt (2D) kui ka ruumiliselt (3D). KAlgebra juured on matemaatilises märkekeeles (MathML), kuid KAlgebra kasutamiseks ei ole MathML-i tundmine sugugi vajalik.

    +

    KAlgebra zure kalkulagailu grafikoa ordezka dezakeen aplikazio bat da. Kontsolan adierazpen matematikoak kalkulatzen eta emaitzak 2Dtan edo 3Dtan grafikoki trazatzen uzten dizuten ezaugarriak ditu, zenbakizkoak, logikoak, sinbolikoak, eta analisikoak. KAlgebra markatze lengoaia matematikoan (MathML) errotua dago; dena den, ez da MathML jakin behar KAlgebra erabiltzeko.

    +

    KAlgebralla voi korvata graafisen laskimen. Siinä on numeeriset, loogiset, symboliset ja analyysiominaisuudet, jotka tarvitaan matemaattisten lausekkeiden laskemiseen sekä tulosten piirtämiseen kaksi- tai kolmiulotteisesti. KAlgebra perustuu MathML:ään (Mathematical Markup Language), mutta sitä ei tarvitse osata käyttääkseen KAlgebraa.

    +

    KAlgebra est une application qui peut remplacer votre calculatrice graphique. Elle fournit des fonctions pour le calcul numérique, logique, symbolique et l'analyse qui vous permettent de calculer des expressions mathématiques dans la console et tracer graphiquement les résultats en 2D ou 3D. KAlgebra repose sur MathML, le langage de balise pour les mathématiques ; cependant, il n'est pas nécessaire de connaître MathML pour utiliser KAlgebra.

    +

    KAlgebra é unha aplicación que pode substituír as calculadoras gráficas. Ten funcionalidades numéricas, lóxicas, simbólicas e de análise que permiten calcular expresións matemáticas na consola e trazar graficamente os resultados en 2D ou 3D. KAlgebra ten o seu alicerce na linguaxe de etiquetas matemática (MathML); porén, non hai que saber nada do MathML para poder usar KAlgebra.

    +

    KAlgebra הוא יישום שיכול להחליף את מחשבון התרשימים שלך. יש לו יכולות מספריות, לוגיות, סמליות וניתוח שיאפשרו לך לחשב ביטויים מתמטיים במסוף ולשרטט את התוצאות בצורה גרפית בדו־ממד או תלת־ממד. היסוד של KAlgebra היא שפת הסימון המתמטית MathML, עם זאת, לא צריך לדעת MathML כדי להשתמש ב־KAlgebra.

    +

    A KAlgebra a grafikus számológépe helyébe léphet. Numerikus, logikai, szimbolikus és analízis képességei lehetővé teszik matematikai kifejezések kiértékelését a konzolon, majd grafikus ábrázolását 2D-ben vagy 3D-ben. A KAlgebra erősen épít a MathML matematikai leírónyelv használatára, ugyanakkor nem szükséges MathML ismeret a KAlgebra használatához.

    +

    KAlgebra es un application que pote reimplaciare tu calculator graphic. Il ha characteristicas numeric, logic, symbolic, e de analysis que te permitte calcular expressiones mathematic expressions sur le consolle e traciar graphicamente le resultatos in 2D o 3D. KAlgebra ha radices in le Mathematical Markup Language (MathML), totevia, un non necessita cognoscer MathML per usar KAlgebra.

    +

    KAlgebra adalah aplikasi yang dapat menggantikan kalkulator grafikmu. Ini memiliki fitur numerik, logis, simbolis, dan analisis yang memungkinkanmu menghitung ekspresi matematis pada konsol dan secara grafik memplot hasilnya dalam 2D atau 3D. KAlgebra berakar pada Mathematical Markup Language (MathML); namun, kita tidak perlu tahu MathML untuk menggunakan KAlgebra.

    +

    KAlgebra è un'applicazione che può sostituire la tua calcolatrice grafica. Ha funzionalità numeriche, logiche, simboliche e di analisi che ti permettono di calcolare le espressioni matematiche sulla console e di visualizzarne il grafico in 2D o 3D. KAlgebra si basa sul linguaggio a marcatori di matematica («Mathematical Markup Language», MathML), tuttavia non è necessario conoscerlo per poter usare KAlgebra.

    +

    KAlgebra აპლიკაციაა, რომელსაც თქვენი კალკულატორის ჩანაცვლება შეუძლია. მას გააჩნია რიცხვითი, ლოგიკური, სიმბოლური და ანალიზის თვისებები, რომლებიც საშუალებას გაძლევთ, მათემატიკური გამოსახულებები კონსოლში გამოთვალოთ და მათი გრაფიკები 2 ან 3 განზომილებიან სივრცეში დახატოთ. KAlgebra მიბმულია მათემატიკის ენაზე (MathML); მაგრამ KAlgebra-ის გამოსაყენებლად MathML-ის ცოდნა არ გჭირდებათ.

    +

    KAlgebra는 그래핑 계산기를 대체할 수 있는 앱입니다. 수학, 논리, 기호, 분석 기능이 있으며 콘솔에서 수식을 계산하고 2D나 3D로 결과를 플롯할 수 있습니다. KAlgebra는 MathML을 기반으로 하지만 KAlgebra를 사용할 때 MathML을 익힐 필요는 없습니다.

    +

    KAlgebra kannst Du ansteed Dien Grafik-Taschenreekner bruken. Dat gifft numeersche, logische, symboolsche un Analysis-Funkschonen, mit de Du mathemaatsch Utdrück op de Konsool utreken un de Resultaten graafsch in 2- un 3-D utgeven kannst. KAlgebra buut op de Mathemaatsch Schriftsatzspraak („Mathematical Markup Language – MathML“); man Du kannst KAlgebra ok bruken, wenn Du nix vun MathML afweetst.

    +

    KAlgebra kan uw grafische rekenmachine vervangen. Het heeft numerieke, logische, symbolische en analytische functies waarmee u wiskundige uitdrukkingen kunt berekenen in de console, en de resultaten in 2D of 3D kunt plotten. KAlgebra is gebaseerd op de Mathematical Markup Language (MathML), maar kennis daarvan is niet nodig om KAlgebra te kunnen gebruiken.

    +

    KAlgebra er eit program du kan bruka som ein grafkalkulator. Programmet støttar tal, logiske operatorar, symbol og analyse­funksjonar som lèt deg rekna ut matematiske uttrykk og visa dei grafisk, både i 2D og 3D. KAlgebra er bygd på MathML (Mathematical Markup Language). Men du treng ikkje kjenna til MathML for å bruka KAlgebra.

    +

    KAlgebra jest programem, który może zastąpić twój kalkulator graficzny. Ma możliwość przeprowadzania analiz numerycznych, logicznych i symbolicznych, które umożliwiają obliczanie wyrażeń matematycznych w konsoli i rysowanie wyników w 2D lub 3D. KAlgebra jest zakorzeniona w Mathematical Markup Language (MathML); lecz nie trzeba znać MathML, aby używać KAlgebra.

    +

    O KAlgebra é uma aplicação que poderá substituir a sua calculadora gráfica. Ela tem funcionalidades numéricas, lógicas, simbólicas e de análise que lhe permitem calcular expressões matemáticas na consola e desenhar os resultados respectivos em 2D ou 3D. O KAlgebra baseia-se na Mathematical Markup Language (MathML); contudo, ninguém precisa de saber MathML para usar o KAlgebra.

    +

    KAlgebra é um aplicativo que pode substituir a sua calculadora gráfica. Ele tem funcionalidades numéricas, lógicas, simbólicas e analíticas que lhe permitem calcular expressões matemáticas no console e desenhar graficamente os resultados em 2D ou 3D. O KAlgebra é baseado na Mathematical Markup Language (MathML). Entretanto, não é preciso conhecer o MathML para usar o KAlgebra.

    +

    KAlgebra — программа-калькулятор с функцией построения графиков. Позволяет вычислять значения выражений и строить двумерные и трёхмерные графики функций. В основе KAlgebra лежит язык математической разметки MathML, однако его знания не требуется для использования программы.

    +

    KAlgebra je aplikácia, ktorá môže nahradiť vašu grafickú kalkulačku. Má numerické, logické, symbolické a analytické funkcie, ktoré vám umožnia vypočítať matematické výrazy na konzole a graficky zakresliť výsledky v 3D alebo 3D. KAlgebra je založená na jazyku MathML; avšak nemusíte poznať tento jazyk na používanie tohto programu.

    +

    KAlgebra je program, ki lahko zamenja vaše grafično računalo. Ima zmožnosti za obdelavo številk, logike, simbolov in omogoča izračun matematičnih izrazov v konzoli ter njihov izris v 2D ali 3D. KAlgebra temelji na Matematičnem označevalnem jeziku (MathML), vendar ga za uporabo KAlgebre ni potrebno poznati.

    +

    Kalgebra; är ett program som kan ersätta en grafisk miniräknare. Det har numeriska, logiska, symboliska och analytiska funktioner som gör det möjligt att beräkna matematiska uttryck i terminalen och rita upp resultatet grafiskt i två eller tre dimensioner. Kalgebra är grundat på det matematiska taggspråket (MathML), men man behöver dock inte känna till MathML för att använda Kalgebra.

    +

    K Cebir, grafik hesap makinenızın yerine geçebilecek bir uygulamadır. Sayısal, mantıksal, sembolik ve analiz özellikleriyle, uçbirim üzerinden matematiksel ifadeleri hesaplayabilir ve sonuçları 2B veya 3B olarak olarak grafik olarak çizdirebilirsiniz. K Cebir, Matematiksel İşaret Dili (MathML) üzerine yapılmıştır; ancak, K Cebir kullanmak için MathML bilmek zorunda değilsiniz.

    +

    KAlgebra; — програма, яка може замінити вам калькулятор з можливістю побудови графіків У програмі передбачено числові, логічні, символічні та аналітичні можливості, за допомогою яких ви зможете виконувати обчислення за формулами у консолі або будувати результати у форматі плоских кривих або просторових графіків. KAlgebra засновано на мові математичної розмітки (Mathematical Markup Language і MathML). Втім, для користування KAlgebra знати MathML не потрібно.

    +

    xxKAlgebra is an application that can replace your graphing calculator. It has numerical, logical, symbolic, and analysis features that let you calculate mathematical expressions on the console and graphically plot the results in 2D or 3D. KAlgebra is rooted in the Mathematical Markup Language (MathML); however, one does not need to know MathML to use KAlgebra.xx

    +

    KAlgebra 是一个可以替代您的图形计算器的应用程序。它具有数字、逻辑、符号和分析功能,可让您在控制台上计算数学表达式,并将结果绘制成 2D 或 3D 图形。 KAlgebra 基于数学标记语言(MathML);但是,人们并不需要知道 MathML 就可以使用 KAlgebra。

    +

    KAlgebra 是一套可以取代您的圖形計算器的應用程式。它有數值、邏輯、符號與分析等功能,讓您計算您的數學式,並繪出平面或立體的圖形。KAlgebra 是基於 Mathematical Markup Language (MathML)。不過即使您不知道 MathML 也可以使用 KAlgebra。

    +
    + https://apps.kde.org/kalgebra + https://bugs.kde.org/enter_bug.cgi?format=guided&product=kalgebra + https://docs.kde.org/?application=kalgebra + https://www.kde.org/community/donations/?app=kalgebra&source=appdata + + + 2D plot in KAlgebra + رسم ثنائيّ الأبعاد في جبرك + Двумерна (2D) графика в KAlgebra + Gràfic en 2D al KAlgebra + Gràfic en 2D en KAlgebra + 2D graf v KAlgebra + 2D-Plot in KAlgebra + 2D σχεδίαση στην KAlgebra + 2D plot in KAlgebra + 2D-diagramo en KAlgebra + Gráfico 2D en KAlgebra + 2D joonis KAlgebras + 2Dko trazua KAlgebran + 2D-kaavio KAlgebrassa + Graphique en 2 dimensions sur KAlgebra + Gráfica 2D en KAlgebra + שרטוט דו־ממדי ב־KAlgebra + 2D görbe a KAlgebrában + Tracia 2D in KAlgebra + Plot 2D di KAlgebra + Grafico 2D in KAlgebra + 2D გრაფიკები KAlgebra-ში + KAlgebra의 2D 플롯 + 2D plot in KAlgebra + 2D-plott i KAlgebra + ਕੇ-ਐਲਜਬਰਾ ਵਿੱਚ 2ਡੀ ਵਾਹੋ + Wykres 2D w KAlgebra + Gráfico 2D no KAlgebra + Gráfico 2D no KAlgebra + Двумерный график в KAlgebra + 2D graf v KAlgebre + 2D risanje v KAlgebra + Tvådimensionellt diagram i Kalgebra + K Cebir’de 2B çizim + Графік у KAlgebra + xx2D plot in KAlgebraxx + KAlgebra 中的 2D 绘图 + KAlgebra 中 2D 繪圖 + https://cdn.kde.org/screenshots/kalgebra/kalgebra.png + + + org.kde.kalgebra.desktop + KDE + + kalgebra + + + + + + + + + + + + + + + + + +
    diff --git a/src/org.kde.kalgebra.desktop b/src/org.kde.kalgebra.desktop new file mode 100755 index 0000000..90d884e --- /dev/null +++ b/src/org.kde.kalgebra.desktop @@ -0,0 +1,183 @@ +[Desktop Entry] +Name=KAlgebra +Name[ar]=جبرك +Name[ast]=KAlgebra +Name[bg]=KAlgebra +Name[bs]=Kalgebra +Name[ca]=KAlgebra +Name[ca@valencia]=KAlgebra +Name[cs]=KAlgebra +Name[csb]=KAlgebra +Name[da]=KAlgebra +Name[de]=KAlgebra +Name[el]=KAlgebra +Name[en_GB]=KAlgebra +Name[eo]=KAlgebra +Name[es]=KAlgebra +Name[et]=KAlgebra +Name[eu]=KAlgebra +Name[fa]=KAlgebra +Name[fi]=KAlgebra +Name[fr]=KAlgebra +Name[ga]=KAlgebra +Name[gl]=KAlgebra +Name[gu]=KAlgebra +Name[he]=KAlgebra +Name[hi]=के-अलजेब्रा +Name[hne]=के-अलजेब्रा +Name[hr]=KAlgebra +Name[hu]=KAlgebra +Name[ia]=KAlgebra +Name[is]=KAlgebra +Name[it]=KAlgebra +Name[ja]=KAlgebra +Name[ka]=KAlgebra +Name[kk]=KAlgebra +Name[km]=KAlgebra +Name[ko]=KAlgebra +Name[lt]=KAlgebra +Name[lv]=KAlgebra +Name[ml]=കെ-ആള്‍ജിബ്ര +Name[mr]=के-एल्जिब्रा +Name[nb]=KAlgebra +Name[nds]=KAlgebra +Name[ne]=केडीई बीजगणित +Name[nl]=KAlgebra +Name[nn]=KAlgebra +Name[pa]=ਕੇ-ਐਲਜਬਰਾ +Name[pl]=KAlgebra +Name[pt]=KAlgebra +Name[pt_BR]=KAlgebra +Name[ro]=KAlgebra +Name[ru]=KAlgebra +Name[si]=KAlgebra +Name[sk]=KAlgebra +Name[sl]=KAlgebra +Name[sv]=Kalgebra +Name[te]=కె అల్జీబ్రా +Name[tr]=K Cebir +Name[ug]=KAlgebra +Name[uk]=KАлгебра +Name[x-test]=xxKAlgebraxx +Name[zh_CN]=KAlgebra +Name[zh_TW]=數學_KAlgebra +GenericName=Graph Calculator +GenericName[ar]=حاسبة رسومية +GenericName[bg]=Графичен калкулатор +GenericName[bs]=Graf kalkulator +GenericName[ca]=Calculadora gràfica +GenericName[ca@valencia]=Calculadora gràfica +GenericName[cs]=Kalkulačka grafů +GenericName[csb]=Kalkùlator +GenericName[da]=Diagramberegner +GenericName[de]=Graphenrechner +GenericName[el]=Γραφικός υπολογιστής +GenericName[en_GB]=Graph Calculator +GenericName[eo]=Kalkulilo de grafikaĵoj +GenericName[es]=Calculadora gráfica +GenericName[et]=Graafikute arvutaja +GenericName[eu]=Grafikoen kalkulagailua +GenericName[fa]=ماشین حساب گراف +GenericName[fi]=Graafinen laskin +GenericName[fr]=Calculatrice graphique +GenericName[ga]=Áireamhán Grafach +GenericName[gl]=Calculadora gráfica +GenericName[gu]=આલેખ કેલ્ક્યુલેટર +GenericName[he]=מחשבון גרפי +GenericName[hi]=ग्राफ गणक +GenericName[hne]=ग्राफ गनक +GenericName[hu]=Függvényszámító +GenericName[ia]=Calculator Graphic +GenericName[is]=Reiknivél fyrir gröf +GenericName[it]=Calcolatrice grafica +GenericName[ja]=グラフ計算機 +GenericName[ka]=გრაფიკული კალკულატორი +GenericName[kk]=График калькуляторы +GenericName[km]=ម៉ាស៊ីន​គិតលេខ​ក្រាហ្វិក​ +GenericName[ko]=그래핑 계산기 +GenericName[lt]=Grafinis skaičiuotuvas +GenericName[lv]=Grafiskais kalkulators +GenericName[ml]=ഗ്രാഫ് ഗണനി +GenericName[mr]=आलेख गणकयंत्र +GenericName[nb]=Grafikk-kalkulator +GenericName[nds]=Funkschonenreekner +GenericName[ne]=ग्राफ गणकयन्त्र +GenericName[nl]=Rekenmachine met grafieken +GenericName[nn]=Ein grafkalkulator +GenericName[pa]=ਗਰਾਫ਼ ਕੈਲਕੂਲੇਟਰ +GenericName[pl]=Kalkulator wykresów +GenericName[pt]=Calculadora Gráfica +GenericName[pt_BR]=Calculadora gráfica +GenericName[ru]=Графический калькулятор +GenericName[sk]=Grafická kalkulačka +GenericName[sl]=Računalo z grafi +GenericName[sv]=Grafräknare +GenericName[te]=రేఖాచిత్ర గనన యంత్రము +GenericName[tr]=Grafik Hesap Makinesi +GenericName[uk]=Графічний калькулятор +GenericName[x-test]=xxGraph Calculatorxx +GenericName[zh_CN]=图形计算器 +GenericName[zh_TW]=圖形計算器 +Comment=Math Expression Solver and Plotter +Comment[ar]=حلّال ورسّام التعابير الرياضية +Comment[bg]=Решаване на математически задачи +Comment[bs]=Matematski Sistem za rjeÅ¡avanje i crtač +Comment[ca]=Soluciona i representa gràficament expressions matemàtiques +Comment[ca@valencia]=Soluciona i representa gràficament expressions matemàtiques +Comment[cs]=ŘeÅ¡itel a souřadnicový zapisovač matematických výrazů +Comment[csb]=Rozrzeszëwôcz matematicznëch równaniów ë rësowôcz grafów +Comment[da]=Løser og plotter til matematiske udtryk +Comment[de]=Mathematische Gleichungslösung und -zeichnung +Comment[el]=Σχεδιαστής και επιλυτής μαθηματικών εκφράσεων +Comment[en_GB]=Mathematical Expression Solver and Plotter +Comment[eo]=Solvilo kaj desegnilo de matematikaj esprimoj +Comment[es]=Resuelve y dibuja expresiones matemáticas +Comment[et]=Matemaatiliste avaldiste lahendaja ja joonistaja +Comment[eu]=Matematika adierazpenen ebazlea edo trazatzailea +Comment[fa]=حل‌کننده عبارت ریاضی و رسام +Comment[fi]=Matemaattisten yhtälöiden ratkaisut ja kuvaajat +Comment[fr]=Traceur et résolveur d'expressions mathématiques +Comment[ga]=Réiteoir agus Breacaire Sloinn Mhatamaiticiúla +Comment[gl]=Ferramenta para resolver e debuxar expresións matemáticas +Comment[gu]=ગાણિતિક સૂત્રો ઉકેલનાર અને આલેખનાર +Comment[he]=פותר ומשרטט ביטויים מתמטיים +Comment[hi]=गणित एक्सप्रेशन सुलझाने वाला तथा प्लॉटर +Comment[hne]=गनित एक्सप्रेसन सुलझाने वाला अउ प्लाटर +Comment[hr]=RjeÅ¡avač i crtač za matematičke izraze +Comment[hu]=Matematikai egyenletek megoldása, görberajzolás +Comment[ia]=Resolvitor e traciator de expression mathematic +Comment[is]=Stærðfræðilausnir og plottun +Comment[it]=Risolutore e disegnatore di espressioni matematiche +Comment[ja]=数式ソルバー&プロッタ +Comment[ka]=მათემატიკური გამოსახულებების ამომხსნელი და გრაფიკების მხატავი +Comment[kk]=Математикалық өрнегін есептеп графигін салу +Comment[km]=ឧបករណ៍​គូស​ក្រាហ្វិក និង​កម្មវិធី​ដោះស្រាយ​កន្សោម​​​គណិត +Comment[ko]=수식 계산기와 그래핑 도구 +Comment[lt]=Matematinių reiÅ¡kinių sprendikas ir grafikų braižiklis +Comment[lv]=Matemātisko izteiksmju risinātājs un attēlotājs +Comment[ml]=ഗണിതസൂത്ര പരിഹാരകനും പ്ലോട്ടറും +Comment[nb]=Matematisk uttrykksløser og plotter +Comment[nds]=Löser för mathemaatsche Utdrück un Bagenschriever +Comment[ne]=म्याथ अभिव्यक्ति समाधानकर्ता र प्लोटर +Comment[nl]=Oplossen en plotten van wiskundige expressies +Comment[nn]=MatteoppgÃ¥veløysar og grafplottar +Comment[pl]=Rozwiązywanie równań i rysowanie wykresów +Comment[pt]=Resolução e Desenho de Expressões Matemáticas +Comment[pt_BR]=Solucionador e visualizador de expressões matemáticas +Comment[ru]=Решение и построение графиков математических выражений +Comment[sk]=RieÅ¡iteľ a zapisovač matematických výrazov +Comment[sl]=ReÅ¡evalnik matematičnih enačb in risalnik grafov +Comment[sv]=Lösning och uppritning av matematiska uttryck +Comment[tr]=Matematiksel İfade Çözücü ve Çizici +Comment[ug]=ماتېماتىكىلىق ئىپادىلەرنى يېشىش ۋە سىزىش قورالى +Comment[uk]=Розв’язувач математичних виразів та графопобудовник +Comment[x-test]=xxMath Expression Solver and Plotterxx +Comment[zh_CN]=解数学式与绘图的工具 +Comment[zh_TW]=數學解題與繪圖 +Exec=kalgebra %u +MimeType=application/x-kalgebra; +Icon=kalgebra +Type=Application +X-DocPath=kalgebra/index.html +Categories=Qt;KDE;Education;Math;Science; +X-DBUS-ServiceName=org.kde.kalgebra diff --git a/src/varedit.cpp b/src/varedit.cpp new file mode 100644 index 0000000..318e6c0 --- /dev/null +++ b/src/varedit.cpp @@ -0,0 +1,135 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include "varedit.h" +#include +#include +#include +#include + +#include +#include +#include +#include + +VarEdit::VarEdit(QWidget *parent, bool modal) + : QDialog(parent) + , vars(nullptr) + , m_correct(false) +{ + setWindowTitle(i18n("Add/Edit a variable")); + setModal(modal); + + m_buttonBox = new QDialogButtonBox(this); + m_buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + m_removeBtn = m_buttonBox->addButton(i18n("Remove Variable"), QDialogButtonBox::DestructiveRole); + m_removeBtn->setIcon(QIcon::fromTheme(QStringLiteral("edit-table-delete-row"))); + + connect(m_removeBtn, &QAbstractButton::clicked, this, &VarEdit::removeVariable); + + connect(m_buttonBox, &QDialogButtonBox::accepted, this, &VarEdit::accept); + connect(m_buttonBox, &QDialogButtonBox::rejected, this, &VarEdit::reject); + + m_exp = new Analitza::ExpressionEdit(this); + connect(m_exp, &QPlainTextEdit::textChanged, this, &VarEdit::edit); + connect(m_exp, &Analitza::ExpressionEdit::returnPressed, this, &VarEdit::ok); + + m_valid = new QLabel(this); + + QVBoxLayout *topLayout = new QVBoxLayout(this); + topLayout->addWidget(m_exp); + topLayout->addWidget(m_valid); + topLayout->addWidget(m_buttonBox); + + m_exp->setFocus(); +} + +void VarEdit::setName(const QString &newVar) +{ + m_var = newVar; + setWindowTitle(i18n("Edit '%1' value", newVar)); + if (!vars) + m_exp->setText(i18n("not available")); + else { + m_exp->setExpression(Analitza::Expression(vars->value(newVar)->copy())); + } + m_removeBtn->setEnabled(vars && canRemove(newVar)); +} + +bool VarEdit::canRemove(const QString &name) const +{ + QHash::const_iterator it = vars->constBegin(), itEnd = vars->constEnd(); + for (; it != itEnd; ++it) { + QStringList deps = AnalitzaUtils::dependencies(*it, QStringList()); + if (deps.contains(name)) { + return false; + } + } + return true; +} + +Analitza::Expression VarEdit::val() +{ + Analitza::Expression val; + Analitza::Analyzer a(vars); + + a.setExpression(m_exp->expression()); + + if (a.isCorrect()) { + a.simplify(); + val = a.expression(); + } + + m_correct = a.isCorrect(); + if (m_correct) { + m_valid->setText(i18n("%1 := %2", m_var, val.toString())); + m_valid->setToolTip(QString()); + } else { + m_valid->setText(i18n("WRONG")); + m_valid->setToolTip(a.errors().join(QStringLiteral("\n"))); + } + m_buttonBox->button(QDialogButtonBox::Ok)->setEnabled(m_correct); + m_exp->setCorrect(m_correct); + + return val; +} + +void VarEdit::edit() +{ + val(); +} + +void VarEdit::ok() +{ + if (m_correct) + accept(); +} + +void VarEdit::setAnalitza(Analitza::Analyzer *na) +{ + vars = na->variables(); + m_exp->setAnalitza(na); +} + +void VarEdit::removeVariable() +{ + vars->remove(m_var); + close(); +} + +#include "moc_varedit.cpp" diff --git a/src/varedit.h b/src/varedit.h new file mode 100644 index 0000000..81198d4 --- /dev/null +++ b/src/varedit.h @@ -0,0 +1,73 @@ +/************************************************************************************* + * Copyright (C) 2007 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef VAREDIT_H +#define VAREDIT_H + +#include +#include + +class QDialogButtonBox; +namespace Analitza +{ +class Analyzer; +class Variables; +class Expression; +class ExpressionEdit; +} + +/** + * The VarEdit provides a dialog to allow users to edit/create a variable. + * @author Aleix Pol i Gonzalez + */ + +class VarEdit : public QDialog +{ + Q_OBJECT +public: + /** Constructor. Creates a variable editing dialog. */ + explicit VarEdit(QWidget *parent = nullptr, bool modal = false); + + /** Sets the editing variable name */ + void setName(const QString &newVar); + + /** Sets an Analitza which will evaluate it. It may be interesting because variables can change. */ + void setAnalitza(Analitza::Analyzer *na); + + /** Returns the resulting variable expression */ + Analitza::Expression val(); + +private: + bool canRemove(const QString &name) const; + + Analitza::ExpressionEdit *m_exp; + + QLabel *m_valid; + QSharedPointer vars; + bool m_correct; + QString m_var; + QDialogButtonBox *m_buttonBox; + QPushButton *m_removeBtn; + +private Q_SLOTS: + void edit(); + void ok(); + void removeVariable(); +}; + +#endif diff --git a/src/variablesdelegate.cpp b/src/variablesdelegate.cpp new file mode 100644 index 0000000..2dac2b0 --- /dev/null +++ b/src/variablesdelegate.cpp @@ -0,0 +1,41 @@ +/************************************************************************************* + * Copyright (C) 2009 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include "variablesdelegate.h" + +#include + +QWidget *VariablesDelegate::createEditor(QWidget *p, const QStyleOptionViewItem &opt, const QModelIndex &idx) const +{ + QVariant val = idx.model()->data(idx); + if (val.metaType().id() == QMetaType::Double) { + QDoubleSpinBox *spin = new QDoubleSpinBox(p); + spin->setDecimals(10); + return spin; + } else + return QItemDelegate::createEditor(p, opt, idx); +} + +void VariablesDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const +{ + QDoubleSpinBox *spin = qobject_cast(editor); + if (spin) + spin->setValue(index.model()->data(index).value()); + else + QItemDelegate::setEditorData(editor, index); +} diff --git a/src/variablesdelegate.h b/src/variablesdelegate.h new file mode 100644 index 0000000..34b8040 --- /dev/null +++ b/src/variablesdelegate.h @@ -0,0 +1,35 @@ +/************************************************************************************* + * Copyright (C) 2009 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef VARIABLESDELEGATE_H +#define VARIABLESDELEGATE_H + +#include + +class VariablesDelegate : public QItemDelegate +{ +public: + VariablesDelegate(QObject *parent = nullptr) + : QItemDelegate(parent) + { + } + QWidget *createEditor(QWidget *, const QStyleOptionViewItem &, const QModelIndex &) const override; + void setEditorData(QWidget *editor, const QModelIndex &index) const override; +}; + +#endif // VARIABLESDELEGATE_H diff --git a/src/viewportwidget.cpp b/src/viewportwidget.cpp new file mode 100644 index 0000000..4c2b5ca --- /dev/null +++ b/src/viewportwidget.cpp @@ -0,0 +1,77 @@ +/************************************************************************************* + * Copyright (C) 2009 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include "viewportwidget.h" + +#include +#include +#include +#include +#include + +ViewportWidget::ViewportWidget(QWidget *parent) + : QWidget(parent) +{ + m_top = new QDoubleSpinBox(this); + m_left = new QDoubleSpinBox(this); + m_width = new QDoubleSpinBox(this); + m_height = new QDoubleSpinBox(this); + + // const double LIMIT=std::numeric_limits::max(); + // Can't use limit, because otherwise Qt uses the value for the sizeHint and + // we get a huge window + const double LIMIT = 5000; + m_top->setRange(-LIMIT, LIMIT); + m_left->setRange(-LIMIT, LIMIT); + m_width->setRange(0, LIMIT); + m_height->setRange(0, LIMIT); + + QVBoxLayout *upperLayout = new QVBoxLayout; + QFormLayout *layout = new QFormLayout; + layout->addRow(i18n("Left:"), m_left); + layout->addRow(i18n("Top:"), m_top); + layout->addRow(i18n("Width:"), m_width); + layout->addRow(i18n("Height:"), m_height); + + QPushButton *apply = new QPushButton(QIcon::fromTheme(QStringLiteral("dialog-ok-apply")), i18n("Apply"), this); + connect(apply, &QAbstractButton::clicked, this, &ViewportWidget::emitViewport); + + upperLayout->addLayout(layout); + upperLayout->addWidget(apply); + setLayout(upperLayout); +} + +QRectF ViewportWidget::viewport() const +{ + return QRectF(m_left->value(), m_top->value(), m_width->value(), -m_height->value()); +} + +void ViewportWidget::setViewport(const QRectF ¤t) +{ + m_top->setValue(current.top()); + m_left->setValue(current.left()); + m_width->setValue(current.width()); + m_height->setValue(-current.height()); +} + +void ViewportWidget::emitViewport() +{ + Q_EMIT viewportChange(viewport()); +} + +#include "moc_viewportwidget.cpp" diff --git a/src/viewportwidget.h b/src/viewportwidget.h new file mode 100644 index 0000000..3fa99bf --- /dev/null +++ b/src/viewportwidget.h @@ -0,0 +1,49 @@ +/************************************************************************************* + * Copyright (C) 2009 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#ifndef VIEWPORTWIDGET_H +#define VIEWPORTWIDGET_H + +#include +class QDoubleSpinBox; + +class ViewportWidget : public QWidget +{ + Q_OBJECT +public: + explicit ViewportWidget(QWidget *parent = nullptr); + + QRectF viewport() const; + +public Q_SLOTS: + void setViewport(const QRectF ¤t); + +private Q_SLOTS: + void emitViewport(); + +Q_SIGNALS: + void viewportChange(const QRectF &newViewport); + +private: + QDoubleSpinBox *m_left; + QDoubleSpinBox *m_top; + QDoubleSpinBox *m_width; + QDoubleSpinBox *m_height; +}; + +#endif // VIEWPORTDIALOG_H diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt new file mode 100644 index 0000000..0d4eb2f --- /dev/null +++ b/utils/CMakeLists.txt @@ -0,0 +1,2 @@ +add_executable(docbook_analitzacommands main.cpp) +target_link_libraries(docbook_analitzacommands KF6::AnalitzaGui Qt::Widgets Qt::Core) diff --git a/utils/main.cpp b/utils/main.cpp new file mode 100644 index 0000000..8fef210 --- /dev/null +++ b/utils/main.cpp @@ -0,0 +1,58 @@ +/************************************************************************************* + * Copyright (C) 2010 by Aleix Pol * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * + *************************************************************************************/ + +#include +#include +#include +#include +#include + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + OperatorsModel m; + + QFile f(app.arguments().constLast()); + bool fileopened = f.open(QFile::WriteOnly); + Q_ASSERT(fileopened); + + QTextStream str(&f); + + str << ""; + str << "\n" + "Commands supported by KAlgebra\n"; + + int rows = m.rowCount(), cols = m.columnCount(); + QStringList colHeaders; + for (int i = 0; i < cols; i++) + colHeaders += m.headerData(i, Qt::Horizontal).toString(); + + for (int i = 0; i < rows; i++) { + QString id = m.index(i, 0).data().toString(); + str << "\t" << id << "\n"; + for (int c = 0; c < cols; c++) + str << QStringLiteral("\t\t%1: %2").arg(colHeaders[c], m.index(i, c).data().toString().toHtmlEscaped()) << '\n'; + + str << "\t\n"; + } + str << "\n"; + + return 0; +} -- 2.30.2

+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%0Au5*;kYj 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 literal 0 HcmV?d00001 diff --git a/po/ca/docs/kalgebra/kalgebra-dictionary-window.png b/po/ca/docs/kalgebra/kalgebra-dictionary-window.png new file mode 100644 index 0000000000000000000000000000000000000000..891ea0d10d0607cfe164bfde7423dd024a0f35e8 GIT binary patch literal 76811 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