Compare commits

...

28 commits

Author SHA1 Message Date
3a2fcb1be1
Adding new translations strings.
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-04-16 19:25:01 +02:00
836e6d8922
Merge branch 'latex-rendering' 2022-04-16 19:18:31 +02:00
eef42655e5
Trying to fix build
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-04-02 18:20:04 +02:00
f77b1ce331
Fixing snapcraft
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-04-02 16:39:21 +02:00
86f3399a53
Fixing a lot of snap issues, updating translations
Some checks reported errors
continuous-integration/drone/push Build was killed
- Files are now properly opened in snapcraft
- Added latex dependencies to snapcraft (tho it's buggy atm)
- Added changelog to snapcraft
2022-03-09 00:28:42 +01:00
3e7b36a420
Changing version to v0.2.0 instead of v0.1.9
Due to Latex being a big change.
2022-03-07 20:40:37 +01:00
27759362cb
Toggle for latex setting
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-03-07 20:28:50 +01:00
7120e3a781
Fixing timeout on build.
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-03-07 17:25:30 +01:00
166d1a2485
X Cursor Latex implementation
Some checks reported errors
continuous-integration/drone/push Build was killed
Also a few bugfixes and added documentation
2022-03-07 17:20:24 +01:00
2691ba687f
Changed a few serif text to sans serif. 2022-03-07 15:06:40 +01:00
4c9c9668bb
Adding comment to disableLatex, allowing for symbols in content.
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-03-07 03:10:51 +01:00
b72bbeab4f
Translated using Weblate (French)
Some checks reported errors
continuous-integration/drone/push Build was killed
Currently translated at 100.0% (184 of 184 strings)

Translation: LogarithmPlotter/LogarithmPlotter
Translate-URL: https://hosted.weblate.org/projects/logarithmplotter/logarithmplotter/fr/
2022-03-07 02:58:47 +01:00
7723107ff6
Translated using Weblate (English)
Currently translated at 100.0% (184 of 184 strings)

Translation: LogarithmPlotter/LogarithmPlotter
Translate-URL: https://hosted.weblate.org/projects/logarithmplotter/logarithmplotter/en/
2022-03-07 02:58:46 +01:00
6539ca8caa
Fixing linux tests
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-03-07 02:50:50 +01:00
12ecf3b19b
Adding LatexExpression, LaTeX integration for texts (needs a comment tho)
Some checks failed
continuous-integration/drone/push Build is failing
- Simplified label rendering for both Latex and normal mode
- Texts now can integrate latex expressions in latex mode
- There is now a toggle for texts to use normal fonts or integrate latex
- Updated translation sources.
2022-03-07 02:47:58 +01:00
07ae71de36
DVI files are no longer remade unless there is a change in the formula
Some checks failed
continuous-integration/drone/push Build is failing
2022-03-07 01:37:23 +01:00
06bb00cc17
Latex for sums, fixing bugs related to expression simplification.
Some checks failed
continuous-integration/drone/push Build is failing
Also removing some debug and unused code.
2022-03-07 00:11:12 +01:00
ec90779912
Changing build process to reflect changes.
Some checks failed
continuous-integration/drone/push Build is failing
2022-03-06 23:36:10 +01:00
2ce66df4dd
Removed dependency on Sympy for subprocesses directly.
New dependencies: latex, dvipng.

Slight changes to default for fonts to avoid too many anti aliasing issues.
Also adds proper checks for latex installation.
2022-03-06 23:34:59 +01:00
8251504fbe
Latex markup for sequences and bode phases 2022-03-06 18:31:03 +01:00
650e43894c
Merging label drawing functions, adding comments to common objects, adding bode magnitude.
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-03-06 17:44:31 +01:00
de0220fecf
Implemented latex for distributions 2022-03-06 01:13:20 +01:00
c4ffcdaa35
Removing custom copyrights from license in order to have better referencing.
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-03-06 01:01:12 +01:00
0975189615
A lot of changes related to latex:
Some checks reported errors
continuous-integration/drone/push Build was killed
- Implemented latex for functions
- Fixed Points with greek variable names
- Small changes to test1 to fit latex better
- History re/undos only redraw the graph every 4 change in order to speed up the process when re/undoing a lot of changes.
- Removing some debug related to latex
- Added latexMarkup property for domains, allowing them to be integrated into objects latex.
- Fixed issues related to derivatives and integrals on latex
- Fully fixed variable substitution for latex
- Fixed sequence crashing
- Adding getLatexLabel method for objects that have a latex label.
2022-03-06 00:55:32 +01:00
ccf3de5783
Fixing typos
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-03-05 21:00:29 +01:00
b5600046e9
Fixing build to add sympy.
Some checks failed
continuous-integration/drone/push Build is failing
2022-03-05 20:58:38 +01:00
1142ca1c00
Starting latex rendering (canvas side).
Some checks failed
continuous-integration/drone/push Build is failing
2022-03-05 20:57:21 +01:00
23cd86a2e3
Starting latex rendering 2022-03-05 18:19:20 +01:00
45 changed files with 2978 additions and 1419 deletions

View file

@ -630,8 +630,8 @@ attach them to the start of each source file to most effectively state
the exclusion of warranty; and each file should have at least the 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" line and a pointer to where the full notice is found.
LogarithmPlotter - Create graphs with logarithm scales. <one line to give the program's name and a brief idea of what it does.>
Copyright (C) 2021 Ad5001 Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -652,7 +652,7 @@ mail.
If the program does terminal interaction, make it output a short If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode: notice like this when it starts in an interactive mode:
LogarithmPlotter Copyright (C) 2021 Ad5001 <program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details. under certain conditions; type `show c' for details.
@ -673,4 +673,3 @@ 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 applications with the library. If this is what you want to do, use the
GNU Lesser General Public License instead of this License. But first, GNU Lesser General Public License instead of this License. But first,
please read <https://www.gnu.org/licenses/why-not-lgpl.html>. please read <https://www.gnu.org/licenses/why-not-lgpl.html>.

View file

@ -17,7 +17,7 @@
""" """
from shutil import which from shutil import which
__VERSION__ = "0.1.9" __VERSION__ = "0.2.0"
is_release = False is_release = False

View file

@ -5,7 +5,7 @@
<name>About</name> <name>About</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/>
<location filename="../logarithmplotter.py" line="112"/> <location filename="../logarithmplotter.py" line="118"/>
<source>About LogarithmPlotter</source> <source>About LogarithmPlotter</source>
<translation>Über LogarithmPlotter</translation> <translation>Über LogarithmPlotter</translation>
</message> </message>
@ -33,112 +33,122 @@
<context> <context>
<name>AppMenuBar</name> <name>AppMenuBar</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;Datei</translation> <translation>&amp;Datei</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>&amp;Load...</source> <source>&amp;Load...</source>
<translation>&amp;Laden</translation> <translation>&amp;Laden</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="49"/>
<source>&amp;Save</source> <source>&amp;Save</source>
<translation>&amp;Speichern</translation> <translation>&amp;Speichern</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="55"/>
<source>Save &amp;As...</source> <source>Save &amp;As...</source>
<translation>Speichern &amp;Unter</translation> <translation>Speichern &amp;Unter</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="61"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="63"/>
<source>&amp;Quit</source> <source>&amp;Quit</source>
<translation>&amp;Ausfahrt</translation> <translation>&amp;Ausfahrt</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Edit</source> <source>&amp;Edit</source>
<translation>&amp;Bearbeiten</translation> <translation>&amp;Bearbeiten</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="79"/>
<source>&amp;Undo</source> <source>&amp;Undo</source>
<translation>&amp;Lösen</translation> <translation>&amp;Lösen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="87"/>
<source>&amp;Redo</source> <source>&amp;Redo</source>
<translation>&amp;Wiederherstellen</translation> <translation>&amp;Wiederherstellen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="94"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="96"/>
<source>&amp;Copy plot</source> <source>&amp;Copy plot</source>
<translation>Grafik &amp;Kopieren</translation> <translation>Grafik &amp;Kopieren</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="102"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="104"/>
<source>&amp;Create</source> <source>&amp;Create</source>
<translation>&amp;Erstellen</translation> <translation>&amp;Erstellen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="124"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>&amp;Settings</source> <source>&amp;Settings</source>
<translation>&amp;Einstellungen</translation> <translation>&amp;Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="127"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="129"/>
<source>Check for updates on startup</source> <source>Check for updates on startup</source>
<translation>Beim Starten auf Updates prüfen</translation> <translation>Beim Starten auf Updates prüfen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="136"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="138"/>
<source>Reset redo stack automaticly</source> <source>Reset redo stack automaticly</source>
<translation>Wiederherstellen-Stapel automatisch zurücksetzen</translation> <translation>Wiederherstellen-Stapel automatisch zurücksetzen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="145"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>&amp;Help</source> <source>&amp;Help</source>
<translation>&amp;Hilfe</translation> <translation>&amp;Hilfe</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>&amp;Source code</source> <source>&amp;Source code</source>
<translation>&amp;Quellcode</translation> <translation>&amp;Quellcode</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="152"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="169"/>
<source>&amp;Report a bug</source> <source>&amp;Report a bug</source>
<translation>Fehler &amp;Melden</translation> <translation>Fehler &amp;Melden</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="157"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="174"/>
<source>&amp;User manual</source> <source>&amp;User manual</source>
<translation>&amp;Benutzerhandbuch</translation> <translation>&amp;Benutzerhandbuch</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="179"/>
<source>&amp;Changelog</source> <source>&amp;Changelog</source>
<translation>&amp;Changelog</translation> <translation>&amp;Changelog</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="167"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/>
<source>&amp;Help translating!</source> <source>&amp;Help translating!</source>
<translation>&amp;Hilfe beim Übersetzen!</translation> <translation>&amp;Hilfe beim Übersetzen!</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="173"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="190"/>
<source>&amp;Thanks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="195"/>
<source>&amp;About</source> <source>&amp;About</source>
<translation>&amp;Übrigens</translation> <translation>&amp;Übrigens</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="182"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="204"/>
<source>Save unsaved changes?</source> <source>Save unsaved changes?</source>
<translation>Änderungen speichern?</translation> <translation>Änderungen speichern?</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="206"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source> <source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation>Diese Grafik enthält ungespeicherte Änderungen. Dadurch gehen alle ungespeicherten Daten verloren. Fortfahren?</translation> <translation>Diese Grafik enthält ungespeicherte Änderungen. Dadurch gehen alle ungespeicherten Daten verloren. Fortfahren?</translation>
</message> </message>
@ -211,44 +221,49 @@
<context> <context>
<name>GreetScreen</name> <name>GreetScreen</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="66"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="67"/>
<source>Welcome to LogarithmPlotter</source> <source>Welcome to LogarithmPlotter</source>
<translation>Willkommen bei LogarithmPlotter</translation> <translation>Willkommen bei LogarithmPlotter</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="81"/>
<source>Version %1</source> <source>Version %1</source>
<translation>Version %1</translation> <translation>Version %1</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="92"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="93"/>
<source>Take a few seconds to configure LogarithmPlotter. <source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source> These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation>Nehmen Sie sich ein paar Sekunden Zeit, um LogarithmPlotter zu konfigurieren. <translation>Nehmen Sie sich ein paar Sekunden Zeit, um LogarithmPlotter zu konfigurieren.
Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot; geändert werden.</translation> Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot; geändert werden.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="101"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="102"/>
<source>Check for updates on startup (requires online connectivity)</source> <source>Check for updates on startup (requires online connectivity)</source>
<translation>Beim Start nach Updates suchen (Online-Verbindung erforderlich)</translation> <translation>Beim Start nach Updates suchen (Online-Verbindung erforderlich)</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="113"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="114"/>
<source>Reset redo stack when a new action is added to history</source> <source>Reset redo stack when a new action is added to history</source>
<translation>Redo-Stapel zurücksetzen, wenn eine neue Aktion zur Historie hinzugefügt wird</translation> <translation>Redo-Stapel zurücksetzen, wenn eine neue Aktion zur Historie hinzugefügt wird</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="128"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="126"/>
<source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/>
<source>User manual</source> <source>User manual</source>
<translation>Benutzerhandbuch</translation> <translation>Benutzerhandbuch</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="135"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="149"/>
<source>Changelog</source> <source>Changelog</source>
<translation>Changelog</translation> <translation>Changelog</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="156"/>
<source>Done</source> <source>Done</source>
<translation>Schließen</translation> <translation>Schließen</translation>
</message> </message>
@ -279,7 +294,7 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>ListSetting</name> <name>ListSetting</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="215"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="233"/>
<source>+ Add Entry</source> <source>+ Add Entry</source>
<translation>+ Neuer Eintrag</translation> <translation>+ Neuer Eintrag</translation>
</message> </message>
@ -287,62 +302,62 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>LogarithmPlotter</name> <name>LogarithmPlotter</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>Objects</source> <source>Objects</source>
<translation>Objekte</translation> <translation>Objekte</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="93"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="95"/>
<source>Settings</source> <source>Settings</source>
<translation>Einstellungen</translation> <translation>Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="99"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="101"/>
<source>History</source> <source>History</source>
<translation>Verlauf</translation> <translation>Verlauf</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="211"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="213"/>
<source>Saved plot to &apos;%1&apos;.</source> <source>Saved plot to &apos;%1&apos;.</source>
<translation>Gespeicherte Grafik auf &apos;%1&apos;.</translation> <translation>Gespeicherte Grafik auf &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="221"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="223"/>
<source>Loading file &apos;%1&apos;.</source> <source>Loading file &apos;%1&apos;.</source>
<translation>Laden der Datei &apos;%1&apos;.</translation> <translation>Laden der Datei &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="258"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Unknown object type: %1.</source> <source>Unknown object type: %1.</source>
<translation>Unbekannter Objekttyp: %1.</translation> <translation>Unbekannter Objekttyp: %1.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="277"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="279"/>
<source>Invalid file provided.</source> <source>Invalid file provided.</source>
<translation>Ungültige Datei angegeben.</translation> <translation>Ungültige Datei angegeben.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="281"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="283"/>
<source>Could not save file: </source> <source>Could not save file: </source>
<translation>Die Datei konnte nicht gespeichert werden: </translation> <translation>Die Datei konnte nicht gespeichert werden: </translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="286"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="288"/>
<source>Loaded file &apos;%1&apos;.</source> <source>Loaded file &apos;%1&apos;.</source>
<translation>Geladene Datei &apos;%1&apos;.</translation> <translation>Geladene Datei &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="319"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="321"/>
<source>Copied plot screenshot to clipboard!</source> <source>Copied plot screenshot to clipboard!</source>
<translation>Grafik in die Zwischenablage kopiert!</translation> <translation>Grafik in die Zwischenablage kopiert!</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="334"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/>
<source>&amp;Update</source> <source>&amp;Update</source>
<translation>&amp;Aktualisieren</translation> <translation>&amp;Aktualisieren</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="338"/>
<source>&amp;Update LogarithmPlotter</source> <source>&amp;Update LogarithmPlotter</source>
<translation>LogarithmPlotter &amp;aktualisieren</translation> <translation>LogarithmPlotter &amp;aktualisieren</translation>
</message> </message>
@ -504,15 +519,108 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<translation>Grafik laden</translation> <translation>Grafik laden</translation>
</message> </message>
</context> </context>
<context>
<name>ThanksTo</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="32"/>
<source>Thanks and Contributions - LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="53"/>
<source>Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="56"/>
<source>Original library by Raphael Graf</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="59"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="61"/>
<source>Ported to Javascript by Matthew Crumley</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="64"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="69"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="196"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="205"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="214"/>
<source>Website</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="66"/>
<source>Ported to QMLJS by Ad5001</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="79"/>
<source>Libraries included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="160"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="190"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="200"/>
<source>French</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="209"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="218"/>
<source>Hungarian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="223"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="232"/>
<source>Github</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="227"/>
<source>Norwegian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="242"/>
<source>Translations included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="271"/>
<source>Improve</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>changelog</name> <name>changelog</name>
<message> <message>
<location filename="../helper.py" line="48"/> <location filename="../util/helper.py" line="48"/>
<source>Could not fetch changelog: Server error {}.</source> <source>Could not fetch changelog: Server error {}.</source>
<translation>Changelog konnte nicht geholt werden: Server-Fehler {}.</translation> <translation>Changelog konnte nicht geholt werden: Server-Fehler {}.</translation>
</message> </message>
<message> <message>
<location filename="../helper.py" line="50"/> <location filename="../util/helper.py" line="50"/>
<source>Could not fetch update: {}.</source> <source>Could not fetch update: {}.</source>
<translation>Changelog konnte nicht geholt werden: {}.</translation> <translation>Changelog konnte nicht geholt werden: {}.</translation>
</message> </message>
@ -529,32 +637,37 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>comment</name> <name>comment</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="36"/>
<source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source> <source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source>
<translation>Beispiel: R+* (*), N (), Z-* (-*), ]0;1[, {3;4;5}</translation> <translation>Beispiel: R+* (*), N (), Z-* (-*), ]0;1[, {3;4;5}</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="54"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="43"/>
<source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source> <source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source>
<translation>Die folgenden Parameter werden verwendet, wenn der Definitionsbereich eine nicht kontinuierliche Menge ist. (Beispiel: , , Mengen wie {0;3}...)</translation> <translation>Die folgenden Parameter werden verwendet, wenn der Definitionsbereich eine nicht kontinuierliche Menge ist. (Beispiel: , , Mengen wie {0;3}...)</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="41"/>
<source>Note: Specify the probability for each value.</source> <source>Note: Specify the probability for each value.</source>
<translation>Hinweis: Geben Sie die Wahrscheinlichkeit für jeden Wert an.</translation> <translation>Hinweis: Geben Sie die Wahrscheinlichkeit für jeden Wert an.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="37"/>
<source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source> <source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source>
<translation>Hinweis: Verwenden Sie %1[n], um sich auf %1 zu beziehen, %1[n+1] für %1</translation> <translation>Hinweis: Verwenden Sie %1[n], um sich auf %1 zu beziehen, %1[n+1] für %1</translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="43"/>
<source>If you have latex enabled, you can use use latex markup in between $$ to create equations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>control</name> <name>control</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="98"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="116"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/>
<source>%1: </source> <source>%1: </source>
<translation>%1: </translation> <translation>%1: </translation>
@ -594,12 +707,12 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>function</name> <name>function</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Function</source> <source>Function</source>
<translation>Funktion</translation> <translation>Funktion</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="31"/>
<source>Functions</source> <source>Functions</source>
<translation>Funktionen</translation> <translation>Funktionen</translation>
</message> </message>
@ -607,22 +720,24 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>gainbode</name> <name>gainbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="33"/>
<source>Bode Magnitude</source> <source>Bode Magnitude</source>
<translation>Bode-Magnitude</translation> <translation>Bode-Magnitude</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="34"/>
<source>Bode Magnitudes</source> <source>Bode Magnitudes</source>
<translation>Bode-Magnituden</translation> <translation>Bode-Magnituden</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>low-pass</source> <source>low-pass</source>
<translation>Tiefpass</translation> <translation>Tiefpass</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>high-pass</source> <source>high-pass</source>
<translation>Hochpass</translation> <translation>Hochpass</translation>
</message> </message>
@ -654,6 +769,38 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<translation type="vanished">Der Name von %1 %2 wurde in %3 geändert.</translation> <translation type="vanished">Der Name von %1 %2 wurde in %3 geändert.</translation>
</message> </message>
</context> </context>
<context>
<name>latex</name>
<message>
<location filename="../util/latex.py" line="73"/>
<source>No Latex installation found.
If you already have a latex distribution installed, make sure it&apos;s installed on your path.
Otherwise, you can download a Latex distribution like TeX Live at https://tug.org/texlive/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="77"/>
<source>DVIPNG was not found. Make sure you include it from your Latex distribution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="155"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; ended with a non-zero return code {}:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="163"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; took too long to finish:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>name</name> <name>name</name>
<message> <message>
@ -781,12 +928,12 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>phasebode</name> <name>phasebode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phase</source> <source>Bode Phase</source>
<translation>Bode-Phase</translation> <translation>Bode-Phase</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="32"/>
<source>Bode Phases</source> <source>Bode Phases</source>
<translation>Bode-Phasen</translation> <translation>Bode-Phasen</translation>
</message> </message>
@ -794,12 +941,12 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>point</name> <name>point</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Point</source> <source>Point</source>
<translation>Punkt</translation> <translation>Punkt</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="30"/>
<source>Points</source> <source>Points</source>
<translation>Punkte</translation> <translation>Punkte</translation>
</message> </message>
@ -807,153 +954,158 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>prop</name> <name>prop</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="33"/>
<source>expression</source> <source>expression</source>
<translation>Ausdruck</translation> <translation>Ausdruck</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="34"/>
<source>definitionDomain</source> <source>definitionDomain</source>
<translation>Definitionsbereich</translation> <translation>Definitionsbereich</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="35"/>
<source>destinationDomain</source> <source>destinationDomain</source>
<translation>Reichweite</translation> <translation>Reichweite</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="37"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="41"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="49"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="36"/>
<source>labelPosition</source> <source>labelPosition</source>
<translation>Position des Etiketts</translation> <translation>Position des Etiketts</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="41"/>
<source>displayMode</source> <source>displayMode</source>
<translation>Anzeigemodus</translation> <translation>Anzeigemodus</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="43"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="39"/>
<source>labelX</source> <source>labelX</source>
<translation>X-Position des Etiketts</translation> <translation>X-Position des Etiketts</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="58"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="33"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/>
<source>drawPoints</source> <source>drawPoints</source>
<translation>Unentschiedene Punkte</translation> <translation>Unentschiedene Punkte</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="59"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="48"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/>
<source>drawDashedLines</source> <source>drawDashedLines</source>
<translation>Gestrichelte Linien anzeigen</translation> <translation>Gestrichelte Linien anzeigen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="34"/>
<source>om_0</source> <source>om_0</source>
<translation>ω</translation> <translation>ω</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="37"/>
<source>pass</source> <source>pass</source>
<translation>Pass</translation> <translation>Pass</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="38"/>
<source>gain</source> <source>gain</source>
<translation>Größenordnung</translation> <translation>Größenordnung</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="41"/>
<source>omGraduation</source> <source>omGraduation</source>
<translation>Teilung auf ω zeigen</translation> <translation>Teilung auf ω zeigen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="35"/>
<source>phase</source> <source>phase</source>
<translation>Phase</translation> <translation>Phase</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="36"/>
<source>unit</source> <source>unit</source>
<translation>Einheit</translation> <translation>Einheit</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="33"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="34"/>
<source>x</source> <source>x</source>
<translation>X</translation> <translation>X</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="34"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/>
<source>y</source> <source>y</source>
<translation>Y</translation> <translation>Y</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="36"/>
<source>pointStyle</source> <source>pointStyle</source>
<translation>Punkt-Stil</translation> <translation>Punkt-Stil</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="45"/>
<source>probabilities</source> <source>probabilities</source>
<translation>Wahrscheinlichkeiten</translation> <translation>Wahrscheinlichkeiten</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="42"/>
<source>text</source> <source>text</source>
<translation>Inhalt</translation> <translation>Inhalt</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="48"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="47"/>
<source>disableLatex</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="35"/>
<source>targetElement</source> <source>targetElement</source>
<translation>Zielobjekt</translation> <translation>Zielobjekt</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="50"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="37"/>
<source>approximate</source> <source>approximate</source>
<translation>Ungefähren Wert anzeigen</translation> <translation>Ungefähren Wert anzeigen</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="38"/>
<source>rounding</source> <source>rounding</source>
<translation>Rundung</translation> <translation>Rundung</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="39"/>
<source>displayStyle</source> <source>displayStyle</source>
<translation>Stil</translation> <translation>Stil</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="57"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="44"/>
<source>targetValuePosition</source> <source>targetValuePosition</source>
<translation>Wertposition des Ziels</translation> <translation>Wertposition des Ziels</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/>
<source>defaultExpression</source> <source>defaultExpression</source>
<translation>Standardausdruck</translation> <translation>Standardausdruck</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/>
<source>baseValues</source> <source>baseValues</source>
<translation>Initialisierungswerte</translation> <translation>Initialisierungswerte</translation>
</message> </message>
@ -965,12 +1117,12 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>repartition</name> <name>repartition</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="28"/>
<source>Repartition</source> <source>Repartition</source>
<translation>Verteilungsfunktion</translation> <translation>Verteilungsfunktion</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="29"/>
<source>Repartition functions</source> <source>Repartition functions</source>
<translation>Verteilungsfunktionen</translation> <translation>Verteilungsfunktionen</translation>
</message> </message>
@ -978,12 +1130,12 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>sequence</name> <name>sequence</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequence</source> <source>Sequence</source>
<translation>Folge</translation> <translation>Folge</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="31"/>
<source>Sequences</source> <source>Sequences</source>
<translation>Folgen</translation> <translation>Folgen</translation>
</message> </message>
@ -991,8 +1143,8 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>sommegainsbode</name> <name>sommegainsbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="32"/>
<source>Bode Magnitudes Sum</source> <source>Bode Magnitudes Sum</source>
<translation>Bode-Magnituden Summe</translation> <translation>Bode-Magnituden Summe</translation>
</message> </message>
@ -1000,8 +1152,8 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>sommephasesbode</name> <name>sommephasesbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="29"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="31"/>
<source>Bode Phases Sum</source> <source>Bode Phases Sum</source>
<translation>Bode-Phasen Summe</translation> <translation>Bode-Phasen Summe</translation>
</message> </message>
@ -1009,12 +1161,12 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>text</name> <name>text</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="30"/>
<source>Text</source> <source>Text</source>
<translation>Text</translation> <translation>Text</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="31"/>
<source>Texts</source> <source>Texts</source>
<translation>Texte</translation> <translation>Texte</translation>
</message> </message>
@ -1022,22 +1174,22 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>update</name> <name>update</name>
<message> <message>
<location filename="../update.py" line="54"/> <location filename="../util/update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source> <source>An update for LogarithPlotter (v{}) is available.</source>
<translation>Ein Aktualisierung für LogarithmPlotter (v{}) ist verfügbar.</translation> <translation>Ein Aktualisierung für LogarithmPlotter (v{}) ist verfügbar.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="58"/> <location filename="../util/update.py" line="58"/>
<source>No update available.</source> <source>No update available.</source>
<translation>Keine Aktualisierung verfügbar.</translation> <translation>Keine Aktualisierung verfügbar.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="61"/> <location filename="../util/update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source> <source>Could not fetch update information: Server error {}.</source>
<translation>Es konnten keine Aktualisierungsinformationen abgerufen werden: Server-Fehler {}.</translation> <translation>Es konnten keine Aktualisierungsinformationen abgerufen werden: Server-Fehler {}.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="63"/> <location filename="../util/update.py" line="63"/>
<source>Could not fetch update information: {}.</source> <source>Could not fetch update information: {}.</source>
<translation>Es konnten keine Aktualisierungsinformationen abgerufen werden:{}.</translation> <translation>Es konnten keine Aktualisierungsinformationen abgerufen werden:{}.</translation>
</message> </message>
@ -1060,12 +1212,12 @@ Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot;
<context> <context>
<name>xcursor</name> <name>xcursor</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="31"/>
<source>X Cursor</source> <source>X Cursor</source>
<translation>X Zeiger</translation> <translation>X Zeiger</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="32"/>
<source>X Cursors</source> <source>X Cursors</source>
<translation>X Zeiger</translation> <translation>X Zeiger</translation>
</message> </message>

View file

@ -5,7 +5,7 @@
<name>About</name> <name>About</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/>
<location filename="../logarithmplotter.py" line="112"/> <location filename="../logarithmplotter.py" line="118"/>
<source>About LogarithmPlotter</source> <source>About LogarithmPlotter</source>
<translation>About LogarithmPlotter</translation> <translation>About LogarithmPlotter</translation>
</message> </message>
@ -33,112 +33,122 @@
<context> <context>
<name>AppMenuBar</name> <name>AppMenuBar</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;File</translation> <translation>&amp;File</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>&amp;Load...</source> <source>&amp;Load...</source>
<translation>&amp;Open</translation> <translation>&amp;Open</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="49"/>
<source>&amp;Save</source> <source>&amp;Save</source>
<translation>&amp;Save</translation> <translation>&amp;Save</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="55"/>
<source>Save &amp;As...</source> <source>Save &amp;As...</source>
<translation>Save &amp;As</translation> <translation>Save &amp;As</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="61"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="63"/>
<source>&amp;Quit</source> <source>&amp;Quit</source>
<translation>&amp;Quit</translation> <translation>&amp;Quit</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Edit</source> <source>&amp;Edit</source>
<translation>&amp;Edit</translation> <translation>&amp;Edit</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="79"/>
<source>&amp;Undo</source> <source>&amp;Undo</source>
<translation>&amp;Undo</translation> <translation>&amp;Undo</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="87"/>
<source>&amp;Redo</source> <source>&amp;Redo</source>
<translation>&amp;Redo</translation> <translation>&amp;Redo</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="94"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="96"/>
<source>&amp;Copy plot</source> <source>&amp;Copy plot</source>
<translation>&amp;Copy plot</translation> <translation>&amp;Copy plot</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="102"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="104"/>
<source>&amp;Create</source> <source>&amp;Create</source>
<translation>&amp;Create</translation> <translation>&amp;Create</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="124"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>&amp;Settings</source> <source>&amp;Settings</source>
<translation>&amp;Settings</translation> <translation>&amp;Settings</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="127"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="129"/>
<source>Check for updates on startup</source> <source>Check for updates on startup</source>
<translation>Check for updates on startup</translation> <translation>Check for updates on startup</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="136"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="138"/>
<source>Reset redo stack automaticly</source> <source>Reset redo stack automaticly</source>
<translation>Reset redo stack automatically</translation> <translation>Reset redo stack automatically</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="145"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>&amp;Help</source> <source>&amp;Help</source>
<translation>&amp;Help</translation> <translation>&amp;Help</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>&amp;Source code</source> <source>&amp;Source code</source>
<translation>&amp;Source code</translation> <translation>&amp;Source code</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="152"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="169"/>
<source>&amp;Report a bug</source> <source>&amp;Report a bug</source>
<translation>&amp;Report a bug</translation> <translation>&amp;Report a bug</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="157"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="174"/>
<source>&amp;User manual</source> <source>&amp;User manual</source>
<translation>&amp;User manual</translation> <translation>&amp;User manual</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="179"/>
<source>&amp;Changelog</source> <source>&amp;Changelog</source>
<translation>&amp;Changelog</translation> <translation>&amp;Changelog</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="167"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/>
<source>&amp;Help translating!</source> <source>&amp;Help translating!</source>
<translation>&amp;Help translating!</translation> <translation>&amp;Help translating!</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="173"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="190"/>
<source>&amp;Thanks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="195"/>
<source>&amp;About</source> <source>&amp;About</source>
<translation>&amp;About</translation> <translation>&amp;About</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="182"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="204"/>
<source>Save unsaved changes?</source> <source>Save unsaved changes?</source>
<translation>Save unsaved changes?</translation> <translation>Save unsaved changes?</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="206"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source> <source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</translation> <translation>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</translation>
</message> </message>
@ -211,44 +221,49 @@
<context> <context>
<name>GreetScreen</name> <name>GreetScreen</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="66"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="67"/>
<source>Welcome to LogarithmPlotter</source> <source>Welcome to LogarithmPlotter</source>
<translation>Welcome to LogarithmPlotter</translation> <translation>Welcome to LogarithmPlotter</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="81"/>
<source>Version %1</source> <source>Version %1</source>
<translation>Version %1</translation> <translation>Version %1</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="92"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="93"/>
<source>Take a few seconds to configure LogarithmPlotter. <source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source> These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation>Take a few seconds to configure LogarithmPlotter. <translation>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</translation> These settings can be changed at any time from the &quot;Settings&quot; menu.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="101"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="102"/>
<source>Check for updates on startup (requires online connectivity)</source> <source>Check for updates on startup (requires online connectivity)</source>
<translation>Check for updates on startup (requires online connectivity)</translation> <translation>Check for updates on startup (requires online connectivity)</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="113"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="114"/>
<source>Reset redo stack when a new action is added to history</source> <source>Reset redo stack when a new action is added to history</source>
<translation>Reset redo stack when a new action is added to history</translation> <translation>Reset redo stack when a new action is added to history</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="128"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="126"/>
<source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/>
<source>User manual</source> <source>User manual</source>
<translation>User manual</translation> <translation>User manual</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="135"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="149"/>
<source>Changelog</source> <source>Changelog</source>
<translation>Changelog</translation> <translation>Changelog</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="156"/>
<source>Done</source> <source>Done</source>
<translation>Done</translation> <translation>Done</translation>
</message> </message>
@ -279,7 +294,7 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>ListSetting</name> <name>ListSetting</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="215"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="233"/>
<source>+ Add Entry</source> <source>+ Add Entry</source>
<translation>+ Add Entry</translation> <translation>+ Add Entry</translation>
</message> </message>
@ -287,62 +302,62 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>LogarithmPlotter</name> <name>LogarithmPlotter</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>Objects</source> <source>Objects</source>
<translation>Objects</translation> <translation>Objects</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="93"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="95"/>
<source>Settings</source> <source>Settings</source>
<translation>Settings</translation> <translation>Settings</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="99"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="101"/>
<source>History</source> <source>History</source>
<translation>History</translation> <translation>History</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="211"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="213"/>
<source>Saved plot to &apos;%1&apos;.</source> <source>Saved plot to &apos;%1&apos;.</source>
<translation>Saved plot to &apos;%1&apos;.</translation> <translation>Saved plot to &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="221"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="223"/>
<source>Loading file &apos;%1&apos;.</source> <source>Loading file &apos;%1&apos;.</source>
<translation>Loading file &apos;%1&apos;.</translation> <translation>Loading file &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="258"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Unknown object type: %1.</source> <source>Unknown object type: %1.</source>
<translation>Unknown object type: %1.</translation> <translation>Unknown object type: %1.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="277"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="279"/>
<source>Invalid file provided.</source> <source>Invalid file provided.</source>
<translation>Invalid file provided.</translation> <translation>Invalid file provided.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="281"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="283"/>
<source>Could not save file: </source> <source>Could not save file: </source>
<translation>Could not save file: </translation> <translation>Could not save file: </translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="286"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="288"/>
<source>Loaded file &apos;%1&apos;.</source> <source>Loaded file &apos;%1&apos;.</source>
<translation>Loaded file &apos;%1&apos;.</translation> <translation>Loaded file &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="319"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="321"/>
<source>Copied plot screenshot to clipboard!</source> <source>Copied plot screenshot to clipboard!</source>
<translation>Copied plot screenshot to clipboard!</translation> <translation>Copied plot screenshot to clipboard!</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="334"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/>
<source>&amp;Update</source> <source>&amp;Update</source>
<translation>&amp;Update</translation> <translation>&amp;Update</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="338"/>
<source>&amp;Update LogarithmPlotter</source> <source>&amp;Update LogarithmPlotter</source>
<translation>&amp;Update LogarithmPlotter</translation> <translation>&amp;Update LogarithmPlotter</translation>
</message> </message>
@ -504,15 +519,108 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<translation>Open plot</translation> <translation>Open plot</translation>
</message> </message>
</context> </context>
<context>
<name>ThanksTo</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="32"/>
<source>Thanks and Contributions - LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="53"/>
<source>Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="56"/>
<source>Original library by Raphael Graf</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="59"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="61"/>
<source>Ported to Javascript by Matthew Crumley</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="64"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="69"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="196"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="205"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="214"/>
<source>Website</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="66"/>
<source>Ported to QMLJS by Ad5001</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="79"/>
<source>Libraries included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="160"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="190"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="200"/>
<source>French</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="209"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="218"/>
<source>Hungarian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="223"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="232"/>
<source>Github</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="227"/>
<source>Norwegian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="242"/>
<source>Translations included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="271"/>
<source>Improve</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>changelog</name> <name>changelog</name>
<message> <message>
<location filename="../helper.py" line="48"/> <location filename="../util/helper.py" line="48"/>
<source>Could not fetch changelog: Server error {}.</source> <source>Could not fetch changelog: Server error {}.</source>
<translation>Could not fetch changelog: Server error {}.</translation> <translation>Could not fetch changelog: Server error {}.</translation>
</message> </message>
<message> <message>
<location filename="../helper.py" line="50"/> <location filename="../util/helper.py" line="50"/>
<source>Could not fetch update: {}.</source> <source>Could not fetch update: {}.</source>
<translation>Could not fetch changelog: {}.</translation> <translation>Could not fetch changelog: {}.</translation>
</message> </message>
@ -529,32 +637,37 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>comment</name> <name>comment</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="36"/>
<source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source> <source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source>
<translation>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</translation> <translation>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="54"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="43"/>
<source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source> <source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source>
<translation>The following parameters are used when the domain is a non-continuous set. (Ex: , , sets like {0;3})</translation> <translation>The following parameters are used when the domain is a non-continuous set. (Ex: , , sets like {0;3})</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="41"/>
<source>Note: Specify the probability for each value.</source> <source>Note: Specify the probability for each value.</source>
<translation>Note: Specify the probability for each value.</translation> <translation>Note: Specify the probability for each value.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="37"/>
<source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source> <source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source>
<translation>Note: Use %1[n] to refer to %1, %1[n+1] for %1</translation> <translation>Note: Use %1[n] to refer to %1, %1[n+1] for %1</translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="43"/>
<source>If you have latex enabled, you can use use latex markup in between $$ to create equations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>control</name> <name>control</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="98"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="116"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/>
<source>%1: </source> <source>%1: </source>
<translation>%1: </translation> <translation>%1: </translation>
@ -594,12 +707,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>function</name> <name>function</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Function</source> <source>Function</source>
<translation>Function</translation> <translation>Function</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="31"/>
<source>Functions</source> <source>Functions</source>
<translation>Functions</translation> <translation>Functions</translation>
</message> </message>
@ -607,22 +720,24 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>gainbode</name> <name>gainbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="33"/>
<source>Bode Magnitude</source> <source>Bode Magnitude</source>
<translation>Bode Magnitude</translation> <translation>Bode Magnitude</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="34"/>
<source>Bode Magnitudes</source> <source>Bode Magnitudes</source>
<translation>Bode Magnitudes</translation> <translation>Bode Magnitudes</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>low-pass</source> <source>low-pass</source>
<translation>low-pass</translation> <translation>low-pass</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>high-pass</source> <source>high-pass</source>
<translation>high-pass</translation> <translation>high-pass</translation>
</message> </message>
@ -654,6 +769,47 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<translation type="vanished">Name of %1 %2 changed to %3.</translation> <translation type="vanished">Name of %1 %2 changed to %3.</translation>
</message> </message>
</context> </context>
<context>
<name>latex</name>
<message>
<location filename="../util/latex.py" line="73"/>
<source>No Latex installation found.
If you already have a latex distribution installed, make sure it&apos;s installed on your path.
Otherwise, you can download a Latex distribution like TeX Live at https://tug.org/texlive/.</source>
<translation>No Latex installation found.
If you already have a latex distribution installed, make sure it&apos;s installed on your path.
Otherwise, you can download a Latex distribution like TeX Live at https://tug.org/texlive/.</translation>
</message>
<message>
<location filename="../util/latex.py" line="77"/>
<source>DVIPNG was not found. Make sure you include it from your Latex distribution.</source>
<translation>DVIPNG was not found. Make sure you include it from your Latex distribution.</translation>
</message>
<message>
<location filename="../util/latex.py" line="155"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; ended with a non-zero return code {}:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation>An exception occurred within the creation of the latex formula.
Process &apos;{}&apos; ended with a non-zero return code {}:
{}
Please make sure your latex installation is correct and report a bug if so.</translation>
</message>
<message>
<location filename="../util/latex.py" line="163"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; took too long to finish:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation>An exception occurred within the creation of the latex formula.
Process &apos;{}&apos; took too long to finish:
{}
Please make sure your latex installation is correct and report a bug if so.</translation>
</message>
</context>
<context> <context>
<name>name</name> <name>name</name>
<message> <message>
@ -781,12 +937,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>phasebode</name> <name>phasebode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phase</source> <source>Bode Phase</source>
<translation>Bode Phase</translation> <translation>Bode Phase</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="32"/>
<source>Bode Phases</source> <source>Bode Phases</source>
<translation>Bode Phases</translation> <translation>Bode Phases</translation>
</message> </message>
@ -794,12 +950,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>point</name> <name>point</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Point</source> <source>Point</source>
<translation>Point</translation> <translation>Point</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="30"/>
<source>Points</source> <source>Points</source>
<translation>Points</translation> <translation>Points</translation>
</message> </message>
@ -807,153 +963,158 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>prop</name> <name>prop</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="33"/>
<source>expression</source> <source>expression</source>
<translation>Expression</translation> <translation>Expression</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="34"/>
<source>definitionDomain</source> <source>definitionDomain</source>
<translation>Domain</translation> <translation>Domain</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="35"/>
<source>destinationDomain</source> <source>destinationDomain</source>
<translation>Range</translation> <translation>Range</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="37"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="41"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="49"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="36"/>
<source>labelPosition</source> <source>labelPosition</source>
<translation>Label position</translation> <translation>Label position</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="41"/>
<source>displayMode</source> <source>displayMode</source>
<translation>Display mode</translation> <translation>Display mode</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="43"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="39"/>
<source>labelX</source> <source>labelX</source>
<translation>Label&apos;s X position</translation> <translation>Label&apos;s X position</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="58"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="33"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/>
<source>drawPoints</source> <source>drawPoints</source>
<translation>Show points</translation> <translation>Show points</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="59"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="48"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/>
<source>drawDashedLines</source> <source>drawDashedLines</source>
<translation>Show dashed lines</translation> <translation>Show dashed lines</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="34"/>
<source>om_0</source> <source>om_0</source>
<translation>ω</translation> <translation>ω</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="37"/>
<source>pass</source> <source>pass</source>
<translation>Pass</translation> <translation>Pass</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="38"/>
<source>gain</source> <source>gain</source>
<translation>Magnitude gain</translation> <translation>Magnitude gain</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="41"/>
<source>omGraduation</source> <source>omGraduation</source>
<translation>Show graduation on ω</translation> <translation>Show graduation on ω</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="35"/>
<source>phase</source> <source>phase</source>
<translation>Phase</translation> <translation>Phase</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="36"/>
<source>unit</source> <source>unit</source>
<translation>Unit to use</translation> <translation>Unit to use</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="33"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="34"/>
<source>x</source> <source>x</source>
<translation>X</translation> <translation>X</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="34"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/>
<source>y</source> <source>y</source>
<translation>Y</translation> <translation>Y</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="36"/>
<source>pointStyle</source> <source>pointStyle</source>
<translation>Point style</translation> <translation>Point style</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="45"/>
<source>probabilities</source> <source>probabilities</source>
<translation>Probabilities list</translation> <translation>Probabilities list</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="42"/>
<source>text</source> <source>text</source>
<translation>Content</translation> <translation>Content</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="48"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="47"/>
<source>disableLatex</source>
<translation>Disable latex rendering for this text</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="35"/>
<source>targetElement</source> <source>targetElement</source>
<translation>Object to target</translation> <translation>Object to target</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="50"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="37"/>
<source>approximate</source> <source>approximate</source>
<translation>Show approximate value</translation> <translation>Show approximate value</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="38"/>
<source>rounding</source> <source>rounding</source>
<translation>Rounding</translation> <translation>Rounding</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="39"/>
<source>displayStyle</source> <source>displayStyle</source>
<translation>Display style</translation> <translation>Display style</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="57"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="44"/>
<source>targetValuePosition</source> <source>targetValuePosition</source>
<translation>Target&apos;s value position</translation> <translation>Target&apos;s value position</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/>
<source>defaultExpression</source> <source>defaultExpression</source>
<translation>Default expression</translation> <translation>Default expression</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/>
<source>baseValues</source> <source>baseValues</source>
<translation>Initialisation values</translation> <translation>Initialisation values</translation>
</message> </message>
@ -965,12 +1126,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>repartition</name> <name>repartition</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="28"/>
<source>Repartition</source> <source>Repartition</source>
<translation>Distribution</translation> <translation>Distribution</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="29"/>
<source>Repartition functions</source> <source>Repartition functions</source>
<translation>Distribution functions</translation> <translation>Distribution functions</translation>
</message> </message>
@ -978,12 +1139,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>sequence</name> <name>sequence</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequence</source> <source>Sequence</source>
<translation>Sequence</translation> <translation>Sequence</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="31"/>
<source>Sequences</source> <source>Sequences</source>
<translation>Sequences</translation> <translation>Sequences</translation>
</message> </message>
@ -991,8 +1152,8 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>sommegainsbode</name> <name>sommegainsbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="32"/>
<source>Bode Magnitudes Sum</source> <source>Bode Magnitudes Sum</source>
<translation>Bode Magnitudes Sum</translation> <translation>Bode Magnitudes Sum</translation>
</message> </message>
@ -1000,8 +1161,8 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>sommephasesbode</name> <name>sommephasesbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="29"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="31"/>
<source>Bode Phases Sum</source> <source>Bode Phases Sum</source>
<translation>Bode Phases Sum</translation> <translation>Bode Phases Sum</translation>
</message> </message>
@ -1009,12 +1170,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>text</name> <name>text</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="30"/>
<source>Text</source> <source>Text</source>
<translation>Text</translation> <translation>Text</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="31"/>
<source>Texts</source> <source>Texts</source>
<translation>Texts</translation> <translation>Texts</translation>
</message> </message>
@ -1022,22 +1183,22 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>update</name> <name>update</name>
<message> <message>
<location filename="../update.py" line="54"/> <location filename="../util/update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source> <source>An update for LogarithPlotter (v{}) is available.</source>
<translation>An update for LogarithmPlotter (v{}) is available.</translation> <translation>An update for LogarithmPlotter (v{}) is available.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="58"/> <location filename="../util/update.py" line="58"/>
<source>No update available.</source> <source>No update available.</source>
<translation>No update available.</translation> <translation>No update available.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="61"/> <location filename="../util/update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source> <source>Could not fetch update information: Server error {}.</source>
<translation>Could not fetch update information: Server error {}.</translation> <translation>Could not fetch update information: Server error {}.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="63"/> <location filename="../util/update.py" line="63"/>
<source>Could not fetch update information: {}.</source> <source>Could not fetch update information: {}.</source>
<translation>Could not fetch update information: {}.</translation> <translation>Could not fetch update information: {}.</translation>
</message> </message>
@ -1060,12 +1221,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</t
<context> <context>
<name>xcursor</name> <name>xcursor</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="31"/>
<source>X Cursor</source> <source>X Cursor</source>
<translation>X Cursor</translation> <translation>X Cursor</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="32"/>
<source>X Cursors</source> <source>X Cursors</source>
<translation>X Cursors</translation> <translation>X Cursors</translation>
</message> </message>

View file

@ -5,7 +5,7 @@
<name>About</name> <name>About</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/>
<location filename="../logarithmplotter.py" line="112"/> <location filename="../logarithmplotter.py" line="118"/>
<source>About LogarithmPlotter</source> <source>About LogarithmPlotter</source>
<translation>Sobre LogarithmPlotter</translation> <translation>Sobre LogarithmPlotter</translation>
</message> </message>
@ -33,112 +33,122 @@
<context> <context>
<name>AppMenuBar</name> <name>AppMenuBar</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;Archivo</translation> <translation>&amp;Archivo</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>&amp;Load...</source> <source>&amp;Load...</source>
<translation>&amp;Abrir</translation> <translation>&amp;Abrir</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="49"/>
<source>&amp;Save</source> <source>&amp;Save</source>
<translation>&amp;Guardar</translation> <translation>&amp;Guardar</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="55"/>
<source>Save &amp;As...</source> <source>Save &amp;As...</source>
<translation>Guardar &amp;como</translation> <translation>Guardar &amp;como</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="61"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="63"/>
<source>&amp;Quit</source> <source>&amp;Quit</source>
<translation>&amp;Salida</translation> <translation>&amp;Salida</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Edit</source> <source>&amp;Edit</source>
<translation>&amp;Editar</translation> <translation>&amp;Editar</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="79"/>
<source>&amp;Undo</source> <source>&amp;Undo</source>
<translation>&amp;Cancelar</translation> <translation>&amp;Cancelar</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="87"/>
<source>&amp;Redo</source> <source>&amp;Redo</source>
<translation>&amp;Reiniciar</translation> <translation>&amp;Reiniciar</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="94"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="96"/>
<source>&amp;Copy plot</source> <source>&amp;Copy plot</source>
<translation>&amp;Copiar el gráfico</translation> <translation>&amp;Copiar el gráfico</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="102"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="104"/>
<source>&amp;Create</source> <source>&amp;Create</source>
<translation>&amp;Crear</translation> <translation>&amp;Crear</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="124"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>&amp;Settings</source> <source>&amp;Settings</source>
<translation>&amp;Ajustes</translation> <translation>&amp;Ajustes</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="127"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="129"/>
<source>Check for updates on startup</source> <source>Check for updates on startup</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="136"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="138"/>
<source>Reset redo stack automaticly</source> <source>Reset redo stack automaticly</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="145"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Source code</source> <source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="152"/>
<source>&amp;Report a bug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="157"/>
<source>&amp;User manual</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>&amp;Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="169"/>
<source>&amp;Report a bug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="174"/>
<source>&amp;User manual</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="179"/>
<source>&amp;Changelog</source> <source>&amp;Changelog</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="167"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/>
<source>&amp;Help translating!</source> <source>&amp;Help translating!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="173"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="190"/>
<source>&amp;Thanks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="195"/>
<source>&amp;About</source> <source>&amp;About</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="182"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="204"/>
<source>Save unsaved changes?</source> <source>Save unsaved changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="206"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source> <source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -211,43 +221,48 @@
<context> <context>
<name>GreetScreen</name> <name>GreetScreen</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="66"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="67"/>
<source>Welcome to LogarithmPlotter</source> <source>Welcome to LogarithmPlotter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="81"/>
<source>Version %1</source> <source>Version %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="92"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="93"/>
<source>Take a few seconds to configure LogarithmPlotter. <source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source> These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="101"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="102"/>
<source>Check for updates on startup (requires online connectivity)</source> <source>Check for updates on startup (requires online connectivity)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="113"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="114"/>
<source>Reset redo stack when a new action is added to history</source> <source>Reset redo stack when a new action is added to history</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="128"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="126"/>
<source>User manual</source> <source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="135"/>
<source>Changelog</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/>
<source>User manual</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="149"/>
<source>Changelog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="156"/>
<source>Done</source> <source>Done</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -278,7 +293,7 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>ListSetting</name> <name>ListSetting</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="215"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="233"/>
<source>+ Add Entry</source> <source>+ Add Entry</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -286,62 +301,62 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>LogarithmPlotter</name> <name>LogarithmPlotter</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>Objects</source> <source>Objects</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="93"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="95"/>
<source>Settings</source> <source>Settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="99"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="101"/>
<source>History</source> <source>History</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="211"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="213"/>
<source>Saved plot to &apos;%1&apos;.</source> <source>Saved plot to &apos;%1&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="221"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="223"/>
<source>Loading file &apos;%1&apos;.</source> <source>Loading file &apos;%1&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="258"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Unknown object type: %1.</source> <source>Unknown object type: %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="277"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="279"/>
<source>Invalid file provided.</source> <source>Invalid file provided.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="281"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="283"/>
<source>Could not save file: </source> <source>Could not save file: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="286"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="288"/>
<source>Loaded file &apos;%1&apos;.</source> <source>Loaded file &apos;%1&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="319"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="321"/>
<source>Copied plot screenshot to clipboard!</source> <source>Copied plot screenshot to clipboard!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="334"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/>
<source>&amp;Update</source> <source>&amp;Update</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="338"/>
<source>&amp;Update LogarithmPlotter</source> <source>&amp;Update LogarithmPlotter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -503,15 +518,108 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>ThanksTo</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="32"/>
<source>Thanks and Contributions - LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="53"/>
<source>Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="56"/>
<source>Original library by Raphael Graf</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="59"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="61"/>
<source>Ported to Javascript by Matthew Crumley</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="64"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="69"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="196"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="205"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="214"/>
<source>Website</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="66"/>
<source>Ported to QMLJS by Ad5001</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="79"/>
<source>Libraries included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="160"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="190"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="200"/>
<source>French</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="209"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="218"/>
<source>Hungarian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="223"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="232"/>
<source>Github</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="227"/>
<source>Norwegian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="242"/>
<source>Translations included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="271"/>
<source>Improve</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>changelog</name> <name>changelog</name>
<message> <message>
<location filename="../helper.py" line="48"/> <location filename="../util/helper.py" line="48"/>
<source>Could not fetch changelog: Server error {}.</source> <source>Could not fetch changelog: Server error {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../helper.py" line="50"/> <location filename="../util/helper.py" line="50"/>
<source>Could not fetch update: {}.</source> <source>Could not fetch update: {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -528,32 +636,37 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>comment</name> <name>comment</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="36"/>
<source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source> <source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="54"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="43"/>
<source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source> <source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="41"/>
<source>Note: Specify the probability for each value.</source> <source>Note: Specify the probability for each value.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="37"/>
<source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source> <source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="43"/>
<source>If you have latex enabled, you can use use latex markup in between $$ to create equations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>control</name> <name>control</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="98"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="116"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/>
<source>%1: </source> <source>%1: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -593,12 +706,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>function</name> <name>function</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Function</source> <source>Function</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="31"/>
<source>Functions</source> <source>Functions</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -606,26 +719,60 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>gainbode</name> <name>gainbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="33"/>
<source>Bode Magnitude</source> <source>Bode Magnitude</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="34"/>
<source>Bode Magnitudes</source> <source>Bode Magnitudes</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>low-pass</source> <source>low-pass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>high-pass</source> <source>high-pass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>latex</name>
<message>
<location filename="../util/latex.py" line="73"/>
<source>No Latex installation found.
If you already have a latex distribution installed, make sure it&apos;s installed on your path.
Otherwise, you can download a Latex distribution like TeX Live at https://tug.org/texlive/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="77"/>
<source>DVIPNG was not found. Make sure you include it from your Latex distribution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="155"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; ended with a non-zero return code {}:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="163"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; took too long to finish:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>name</name> <name>name</name>
<message> <message>
@ -753,12 +900,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>phasebode</name> <name>phasebode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phase</source> <source>Bode Phase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="32"/>
<source>Bode Phases</source> <source>Bode Phases</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -766,12 +913,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>point</name> <name>point</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Point</source> <source>Point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="30"/>
<source>Points</source> <source>Points</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -779,153 +926,158 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>prop</name> <name>prop</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="33"/>
<source>expression</source> <source>expression</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="34"/>
<source>definitionDomain</source> <source>definitionDomain</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="35"/>
<source>destinationDomain</source> <source>destinationDomain</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="37"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="41"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="49"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="36"/>
<source>labelPosition</source> <source>labelPosition</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="41"/>
<source>displayMode</source> <source>displayMode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="43"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="39"/>
<source>labelX</source> <source>labelX</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="58"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="33"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/>
<source>drawPoints</source> <source>drawPoints</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="59"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="48"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/>
<source>drawDashedLines</source> <source>drawDashedLines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="34"/>
<source>om_0</source> <source>om_0</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="37"/>
<source>pass</source> <source>pass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="38"/>
<source>gain</source> <source>gain</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="41"/>
<source>omGraduation</source> <source>omGraduation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="35"/>
<source>phase</source> <source>phase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="36"/>
<source>unit</source> <source>unit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="33"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="34"/>
<source>x</source> <source>x</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="34"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/>
<source>y</source> <source>y</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="36"/>
<source>pointStyle</source> <source>pointStyle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="45"/>
<source>probabilities</source> <source>probabilities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="42"/>
<source>text</source> <source>text</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="48"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="47"/>
<source>disableLatex</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="35"/>
<source>targetElement</source> <source>targetElement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="50"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="37"/>
<source>approximate</source> <source>approximate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="38"/>
<source>rounding</source> <source>rounding</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="39"/>
<source>displayStyle</source> <source>displayStyle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="57"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="44"/>
<source>targetValuePosition</source> <source>targetValuePosition</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/>
<source>defaultExpression</source> <source>defaultExpression</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/>
<source>baseValues</source> <source>baseValues</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -933,12 +1085,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>repartition</name> <name>repartition</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="28"/>
<source>Repartition</source> <source>Repartition</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="29"/>
<source>Repartition functions</source> <source>Repartition functions</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -946,12 +1098,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>sequence</name> <name>sequence</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequence</source> <source>Sequence</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="31"/>
<source>Sequences</source> <source>Sequences</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -959,8 +1111,8 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>sommegainsbode</name> <name>sommegainsbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="32"/>
<source>Bode Magnitudes Sum</source> <source>Bode Magnitudes Sum</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -968,8 +1120,8 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>sommephasesbode</name> <name>sommephasesbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="29"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="31"/>
<source>Bode Phases Sum</source> <source>Bode Phases Sum</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -977,12 +1129,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>text</name> <name>text</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="30"/>
<source>Text</source> <source>Text</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="31"/>
<source>Texts</source> <source>Texts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -990,22 +1142,22 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>update</name> <name>update</name>
<message> <message>
<location filename="../update.py" line="54"/> <location filename="../util/update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source> <source>An update for LogarithPlotter (v{}) is available.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="58"/> <location filename="../util/update.py" line="58"/>
<source>No update available.</source> <source>No update available.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="61"/> <location filename="../util/update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source> <source>Could not fetch update information: Server error {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="63"/> <location filename="../util/update.py" line="63"/>
<source>Could not fetch update information: {}.</source> <source>Could not fetch update information: {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1028,12 +1180,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>xcursor</name> <name>xcursor</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="31"/>
<source>X Cursor</source> <source>X Cursor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="32"/>
<source>X Cursors</source> <source>X Cursors</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -5,7 +5,7 @@
<name>About</name> <name>About</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/>
<location filename="../logarithmplotter.py" line="112"/> <location filename="../logarithmplotter.py" line="118"/>
<source>About LogarithmPlotter</source> <source>About LogarithmPlotter</source>
<translation>À propos de LogarithmPlotter</translation> <translation>À propos de LogarithmPlotter</translation>
</message> </message>
@ -33,113 +33,123 @@
<context> <context>
<name>AppMenuBar</name> <name>AppMenuBar</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;Fichier</translation> <translation>&amp;Fichier</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>&amp;Load...</source> <source>&amp;Load...</source>
<translation>&amp;Ouvrir</translation> <translation>&amp;Ouvrir</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="49"/>
<source>&amp;Save</source> <source>&amp;Save</source>
<translation>&amp;Sauvegarder</translation> <translation>&amp;Sauvegarder</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="55"/>
<source>Save &amp;As...</source> <source>Save &amp;As...</source>
<translation>Sauvegarde &amp;Sous</translation> <translation>Sauvegarde &amp;Sous</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="61"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="63"/>
<source>&amp;Quit</source> <source>&amp;Quit</source>
<translation>&amp;Quitter</translation> <translation>&amp;Quitter</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Edit</source> <source>&amp;Edit</source>
<translation>&amp;Édition</translation> <translation>&amp;Édition</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="79"/>
<source>&amp;Undo</source> <source>&amp;Undo</source>
<translation>&amp;Annuler</translation> <translation>&amp;Annuler</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="87"/>
<source>&amp;Redo</source> <source>&amp;Redo</source>
<translation>&amp;Rétablir</translation> <translation>&amp;Rétablir</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="94"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="96"/>
<source>&amp;Copy plot</source> <source>&amp;Copy plot</source>
<translation>&amp;Copier le graphe</translation> <translation>&amp;Copier le graphe</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="102"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="104"/>
<source>&amp;Create</source> <source>&amp;Create</source>
<translation>&amp;Créer</translation> <translation>&amp;Créer</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="124"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>&amp;Settings</source> <source>&amp;Settings</source>
<translation>&amp;Paramètres</translation> <translation>&amp;Paramètres</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="127"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="129"/>
<source>Check for updates on startup</source> <source>Check for updates on startup</source>
<translation>Vérifier la présence de mise à jour au démarrage</translation> <translation>Vérifier la présence de mise à jour au démarrage</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="136"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="138"/>
<source>Reset redo stack automaticly</source> <source>Reset redo stack automaticly</source>
<translatorcomment>Légèrement long, et pas forcément très compréhensible.</translatorcomment> <translatorcomment>Légèrement long, et pas forcément très compréhensible.</translatorcomment>
<translation>Réinitialiser la pile d&apos;action &quot;Rétablir&quot; automatiquement</translation> <translation>Réinitialiser la pile d&apos;action &quot;Rétablir&quot; automatiquement</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="145"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>&amp;Help</source> <source>&amp;Help</source>
<translation>&amp;Aide</translation> <translation>&amp;Aide</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>&amp;Source code</source> <source>&amp;Source code</source>
<translation>&amp;Code source</translation> <translation>&amp;Code source</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="152"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="169"/>
<source>&amp;Report a bug</source> <source>&amp;Report a bug</source>
<translation>&amp;Rapport de bug</translation> <translation>&amp;Rapport de bug</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="157"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="174"/>
<source>&amp;User manual</source> <source>&amp;User manual</source>
<translation>Manuel d&apos;&amp;utilisation</translation> <translation>Manuel d&apos;&amp;utilisation</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="179"/>
<source>&amp;Changelog</source> <source>&amp;Changelog</source>
<translation>&amp;Historique des modifications</translation> <translation>&amp;Historique des modifications</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="167"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/>
<source>&amp;Help translating!</source> <source>&amp;Help translating!</source>
<translation>&amp;Aider à la traduction !</translation> <translation>&amp;Aider à la traduction !</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="173"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="190"/>
<source>&amp;Thanks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="195"/>
<source>&amp;About</source> <source>&amp;About</source>
<translation>&amp;À propos</translation> <translation>&amp;À propos</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="182"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="204"/>
<source>Save unsaved changes?</source> <source>Save unsaved changes?</source>
<translation>Sauvegarder les modifications ?</translation> <translation>Sauvegarder les modifications ?</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="206"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source> <source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation>Ce graphe contient des modifications non sauvegardées. En faisant cela, toutes les données non sauvegardées seront perdues. Continuer ?</translation> <translation>Ce graphe contient des modifications non sauvegardées. En faisant cela, toutes les données non sauvegardées seront perdues. Continuer ?</translation>
</message> </message>
@ -213,34 +223,39 @@
<context> <context>
<name>GreetScreen</name> <name>GreetScreen</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="66"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="67"/>
<source>Welcome to LogarithmPlotter</source> <source>Welcome to LogarithmPlotter</source>
<translation>Bienvenue sur LogarithmPlotter</translation> <translation>Bienvenue sur LogarithmPlotter</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="81"/>
<source>Version %1</source> <source>Version %1</source>
<translation>Version %1</translation> <translation>Version %1</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="92"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="93"/>
<source>Take a few seconds to configure LogarithmPlotter. <source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source> These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation>Prenez quelques secondes pour configurer LogarithmPlotter. <translation>Prenez quelques secondes pour configurer LogarithmPlotter.
Ces paramètres peuvent être modifiés à tout moment à partir du menu &quot;Paramètres&quot;.</translation> Ces paramètres peuvent être modifiés à tout moment à partir du menu &quot;Paramètres&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="128"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="126"/>
<source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/>
<source>User manual</source> <source>User manual</source>
<translation>Manuel d&apos;utilisation</translation> <translation>Manuel d&apos;utilisation</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="135"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="149"/>
<source>Changelog</source> <source>Changelog</source>
<translation>Historique des modifications</translation> <translation>Historique des modifications</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="156"/>
<source>Done</source> <source>Done</source>
<translation>Fermer</translation> <translation>Fermer</translation>
</message> </message>
@ -251,12 +266,12 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
These settings can always be changed at any time from the &quot;Settings&quot; menu.</translation> These settings can always be changed at any time from the &quot;Settings&quot; menu.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="101"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="102"/>
<source>Check for updates on startup (requires online connectivity)</source> <source>Check for updates on startup (requires online connectivity)</source>
<translation>Vérifier les mises à jour au démarrage (nécessite d&apos;être connecté à internet)</translation> <translation>Vérifier les mises à jour au démarrage (nécessite d&apos;être connecté à internet)</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="113"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="114"/>
<source>Reset redo stack when a new action is added to history</source> <source>Reset redo stack when a new action is added to history</source>
<translation>Réinitialiser la pile d&apos;action &quot;Rétablir&quot; lorsqu&apos;une nouvelle action est ajoutée à l&apos;historique</translation> <translation>Réinitialiser la pile d&apos;action &quot;Rétablir&quot; lorsqu&apos;une nouvelle action est ajoutée à l&apos;historique</translation>
</message> </message>
@ -287,7 +302,7 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>ListSetting</name> <name>ListSetting</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="215"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="233"/>
<source>+ Add Entry</source> <source>+ Add Entry</source>
<translation>+ Nouvelle entrée</translation> <translation>+ Nouvelle entrée</translation>
</message> </message>
@ -295,62 +310,62 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>LogarithmPlotter</name> <name>LogarithmPlotter</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>Objects</source> <source>Objects</source>
<translation>Objets</translation> <translation>Objets</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="93"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="95"/>
<source>Settings</source> <source>Settings</source>
<translation>Paramètres</translation> <translation>Paramètres</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="99"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="101"/>
<source>History</source> <source>History</source>
<translation>Historique</translation> <translation>Historique</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="211"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="213"/>
<source>Saved plot to &apos;%1&apos;.</source> <source>Saved plot to &apos;%1&apos;.</source>
<translation>Graphe sauvegardé dans &apos;%1&apos;.</translation> <translation>Graphe sauvegardé dans &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="221"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="223"/>
<source>Loading file &apos;%1&apos;.</source> <source>Loading file &apos;%1&apos;.</source>
<translation>Chargement du fichier &apos;%1&apos;.</translation> <translation>Chargement du fichier &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="258"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Unknown object type: %1.</source> <source>Unknown object type: %1.</source>
<translation>Type d&apos;objet inconnu : %1.</translation> <translation>Type d&apos;objet inconnu : %1.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="277"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="279"/>
<source>Invalid file provided.</source> <source>Invalid file provided.</source>
<translation>Fichier fourni invalide.</translation> <translation>Fichier fourni invalide.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="281"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="283"/>
<source>Could not save file: </source> <source>Could not save file: </source>
<translation>Impossible de sauvegarder le fichier : </translation> <translation>Impossible de sauvegarder le fichier : </translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="286"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="288"/>
<source>Loaded file &apos;%1&apos;.</source> <source>Loaded file &apos;%1&apos;.</source>
<translation>Fichier &apos;%1&apos; chargé.</translation> <translation>Fichier &apos;%1&apos; chargé.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="319"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="321"/>
<source>Copied plot screenshot to clipboard!</source> <source>Copied plot screenshot to clipboard!</source>
<translation>Image du graphe copiée dans le presse-papiers !</translation> <translation>Image du graphe copiée dans le presse-papiers !</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="334"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/>
<source>&amp;Update</source> <source>&amp;Update</source>
<translation>&amp;Mise à jour</translation> <translation>&amp;Mise à jour</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="338"/>
<source>&amp;Update LogarithmPlotter</source> <source>&amp;Update LogarithmPlotter</source>
<translation>&amp;Mettre à jour LogarithmPlotter</translation> <translation>&amp;Mettre à jour LogarithmPlotter</translation>
</message> </message>
@ -512,15 +527,108 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<translation>Ouvrir un graphe</translation> <translation>Ouvrir un graphe</translation>
</message> </message>
</context> </context>
<context>
<name>ThanksTo</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="32"/>
<source>Thanks and Contributions - LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="53"/>
<source>Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="56"/>
<source>Original library by Raphael Graf</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="59"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="61"/>
<source>Ported to Javascript by Matthew Crumley</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="64"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="69"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="196"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="205"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="214"/>
<source>Website</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="66"/>
<source>Ported to QMLJS by Ad5001</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="79"/>
<source>Libraries included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="160"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="190"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="200"/>
<source>French</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="209"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="218"/>
<source>Hungarian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="223"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="232"/>
<source>Github</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="227"/>
<source>Norwegian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="242"/>
<source>Translations included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="271"/>
<source>Improve</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>changelog</name> <name>changelog</name>
<message> <message>
<location filename="../helper.py" line="48"/> <location filename="../util/helper.py" line="48"/>
<source>Could not fetch changelog: Server error {}.</source> <source>Could not fetch changelog: Server error {}.</source>
<translation>Impossible de récupérer l&apos;historique des modifications : Erreur de serveur {}.</translation> <translation>Impossible de récupérer l&apos;historique des modifications : Erreur de serveur {}.</translation>
</message> </message>
<message> <message>
<location filename="../helper.py" line="50"/> <location filename="../util/helper.py" line="50"/>
<source>Could not fetch update: {}.</source> <source>Could not fetch update: {}.</source>
<translation>Impossible de récupérer l&apos;historique des modifications : {}.</translation> <translation>Impossible de récupérer l&apos;historique des modifications : {}.</translation>
</message> </message>
@ -537,33 +645,38 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>comment</name> <name>comment</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="36"/>
<source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source> <source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source>
<translation>Par exemple : R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</translation> <translation>Par exemple : R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="54"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="43"/>
<source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source> <source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source>
<translation>Les paramètres suivants sont utilisés lorsque le domaine de définition est un ensemble non-continu. (Ex : , , des ensembles comme {0;3})</translation> <translation>Les paramètres suivants sont utilisés lorsque le domaine de définition est un ensemble non-continu. (Ex : , , des ensembles comme {0;3})</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="41"/>
<source>Note: Specify the probability for each value.</source> <source>Note: Specify the probability for each value.</source>
<translation>Note : Spécifiez la probabilité pour chaque valeur.</translation> <translation>Note : Spécifiez la probabilité pour chaque valeur.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="37"/>
<source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source> <source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source>
<translatorcomment>Note : Utilisez %1[n] pour faire référence à %1, %1[n+1] pour %1...</translatorcomment> <translatorcomment>Note : Utilisez %1[n] pour faire référence à %1, %1[n+1] pour %1...</translatorcomment>
<translation>Note : Utilisez %1[n] pour faire référence à %1, %1[n+1] pour %1</translation> <translation>Note : Utilisez %1[n] pour faire référence à %1, %1[n+1] pour %1</translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="43"/>
<source>If you have latex enabled, you can use use latex markup in between $$ to create equations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>control</name> <name>control</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="98"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="116"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/>
<source>%1: </source> <source>%1: </source>
<translation>%1 : </translation> <translation>%1 : </translation>
@ -603,12 +716,12 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>function</name> <name>function</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Function</source> <source>Function</source>
<translation>Fonction</translation> <translation>Fonction</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="31"/>
<source>Functions</source> <source>Functions</source>
<translation>Fonctions</translation> <translation>Fonctions</translation>
</message> </message>
@ -616,22 +729,24 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>gainbode</name> <name>gainbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="33"/>
<source>Bode Magnitude</source> <source>Bode Magnitude</source>
<translation>Gain de Bode</translation> <translation>Gain de Bode</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="34"/>
<source>Bode Magnitudes</source> <source>Bode Magnitudes</source>
<translation>Gains de Bode</translation> <translation>Gains de Bode</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>low-pass</source> <source>low-pass</source>
<translation>passe-bas</translation> <translation>passe-bas</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>high-pass</source> <source>high-pass</source>
<translation>passe-haut</translation> <translation>passe-haut</translation>
</message> </message>
@ -663,6 +778,47 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<translation type="vanished">Le nom de %1 %2 a é changé en %3.</translation> <translation type="vanished">Le nom de %1 %2 a é changé en %3.</translation>
</message> </message>
</context> </context>
<context>
<name>latex</name>
<message>
<location filename="../util/latex.py" line="73"/>
<source>No Latex installation found.
If you already have a latex distribution installed, make sure it&apos;s installed on your path.
Otherwise, you can download a Latex distribution like TeX Live at https://tug.org/texlive/.</source>
<translation>Aucune installation de Latex trouvée.
Si vous avez déjà installé une distribution Latex, assurez-vous qu&apos;elle est installée sur votre PATH.
Sinon, vous pouvez télécharger une distribution Latex comme TeX Live à l&apos;adresse https://tug.org/texlive/.</translation>
</message>
<message>
<location filename="../util/latex.py" line="77"/>
<source>DVIPNG was not found. Make sure you include it from your Latex distribution.</source>
<translation>DVIPNG n&apos;a pas é trouvé. Assurez-vous de l&apos;inclure dans votre distribution Latex.</translation>
</message>
<message>
<location filename="../util/latex.py" line="155"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; ended with a non-zero return code {}:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation>Une exception s&apos;est produite lors de la création de la formule latex.
Le processus &apos;{}&apos; s&apos;est terminé par un code de retour non nul {} :
{}
Vérifiez que votre installation de latex est correcte et signalez un bogue si c&apos;est le cas.</translation>
</message>
<message>
<location filename="../util/latex.py" line="163"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; took too long to finish:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation>Une exception s&apos;est produite lors de la création de la formule latex.
Le processus &apos;{}&apos; a mis trop de temps à se terminer :
{}
Vérifiez que votre installation de latex est correcte et signalez un bogue si c&apos;est le cas.</translation>
</message>
</context>
<context> <context>
<name>name</name> <name>name</name>
<message> <message>
@ -790,12 +946,12 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>phasebode</name> <name>phasebode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phase</source> <source>Bode Phase</source>
<translation>Phase de Bode</translation> <translation>Phase de Bode</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="32"/>
<source>Bode Phases</source> <source>Bode Phases</source>
<translation>Phases de Bode</translation> <translation>Phases de Bode</translation>
</message> </message>
@ -803,12 +959,12 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>point</name> <name>point</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Point</source> <source>Point</source>
<translation>Point</translation> <translation>Point</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="30"/>
<source>Points</source> <source>Points</source>
<translation>Points</translation> <translation>Points</translation>
</message> </message>
@ -816,153 +972,158 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>prop</name> <name>prop</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="33"/>
<source>expression</source> <source>expression</source>
<translation>Expression</translation> <translation>Expression</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="34"/>
<source>definitionDomain</source> <source>definitionDomain</source>
<translation>Domaine de définition</translation> <translation>Domaine de définition</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="35"/>
<source>destinationDomain</source> <source>destinationDomain</source>
<translation>Portée</translation> <translation>Portée</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="37"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="41"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="49"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="36"/>
<source>labelPosition</source> <source>labelPosition</source>
<translation>Position de l&apos;étiquette</translation> <translation>Position de l&apos;étiquette</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="41"/>
<source>displayMode</source> <source>displayMode</source>
<translation>Mode d&apos;affichage</translation> <translation>Mode d&apos;affichage</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="43"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="39"/>
<source>labelX</source> <source>labelX</source>
<translation>Position en X de l&apos;étiquette</translation> <translation>Position en X de l&apos;étiquette</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="58"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="33"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/>
<source>drawPoints</source> <source>drawPoints</source>
<translation>Afficher les points</translation> <translation>Afficher les points</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="59"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="48"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/>
<source>drawDashedLines</source> <source>drawDashedLines</source>
<translation>Afficher les pointillés</translation> <translation>Afficher les pointillés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="34"/>
<source>om_0</source> <source>om_0</source>
<translation>ω</translation> <translation>ω</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="37"/>
<source>pass</source> <source>pass</source>
<translation>Passe</translation> <translation>Passe</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="38"/>
<source>gain</source> <source>gain</source>
<translation>Gain</translation> <translation>Gain</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="41"/>
<source>omGraduation</source> <source>omGraduation</source>
<translation>Afficher la graduation sur ω</translation> <translation>Afficher la graduation sur ω</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="35"/>
<source>phase</source> <source>phase</source>
<translation>Phase</translation> <translation>Phase</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="36"/>
<source>unit</source> <source>unit</source>
<translation>Unité de la phase</translation> <translation>Unité de la phase</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="33"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="34"/>
<source>x</source> <source>x</source>
<translation>X</translation> <translation>X</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="34"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/>
<source>y</source> <source>y</source>
<translation>Y</translation> <translation>Y</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="36"/>
<source>pointStyle</source> <source>pointStyle</source>
<translation>Style du point</translation> <translation>Style du point</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="45"/>
<source>probabilities</source> <source>probabilities</source>
<translation>Liste de probabilités</translation> <translation>Liste de probabilités</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="42"/>
<source>text</source> <source>text</source>
<translation>Contenu</translation> <translation>Contenu</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="48"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="47"/>
<source>disableLatex</source>
<translation>Désactiver le rendu latex pour ce texte</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="35"/>
<source>targetElement</source> <source>targetElement</source>
<translation>Objet à cibler</translation> <translation>Objet à cibler</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="50"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="37"/>
<source>approximate</source> <source>approximate</source>
<translation>Afficher la valeur approximative</translation> <translation>Afficher la valeur approximative</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="38"/>
<source>rounding</source> <source>rounding</source>
<translation>Arrondi</translation> <translation>Arrondi</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="39"/>
<source>displayStyle</source> <source>displayStyle</source>
<translation>Style d&apos;affichage</translation> <translation>Style d&apos;affichage</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="57"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="44"/>
<source>targetValuePosition</source> <source>targetValuePosition</source>
<translation>Position de la valeur de la cible</translation> <translation>Position de la valeur de la cible</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/>
<source>defaultExpression</source> <source>defaultExpression</source>
<translation>Expression</translation> <translation>Expression</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/>
<source>baseValues</source> <source>baseValues</source>
<translation>Valeurs d&apos;initialisation</translation> <translation>Valeurs d&apos;initialisation</translation>
</message> </message>
@ -974,12 +1135,12 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>repartition</name> <name>repartition</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="28"/>
<source>Repartition</source> <source>Repartition</source>
<translation>Répartition</translation> <translation>Répartition</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="29"/>
<source>Repartition functions</source> <source>Repartition functions</source>
<translation>Fonctions de répartition</translation> <translation>Fonctions de répartition</translation>
</message> </message>
@ -987,12 +1148,12 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>sequence</name> <name>sequence</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequence</source> <source>Sequence</source>
<translation>Suite</translation> <translation>Suite</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="31"/>
<source>Sequences</source> <source>Sequences</source>
<translation>Suites</translation> <translation>Suites</translation>
</message> </message>
@ -1000,8 +1161,8 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>sommegainsbode</name> <name>sommegainsbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="32"/>
<source>Bode Magnitudes Sum</source> <source>Bode Magnitudes Sum</source>
<translation>Sommes des gains de Bode</translation> <translation>Sommes des gains de Bode</translation>
</message> </message>
@ -1009,8 +1170,8 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>sommephasesbode</name> <name>sommephasesbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="29"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="31"/>
<source>Bode Phases Sum</source> <source>Bode Phases Sum</source>
<translation>Somme des phases de Bode</translation> <translation>Somme des phases de Bode</translation>
</message> </message>
@ -1018,12 +1179,12 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>text</name> <name>text</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="30"/>
<source>Text</source> <source>Text</source>
<translation>Texte</translation> <translation>Texte</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="31"/>
<source>Texts</source> <source>Texts</source>
<translation>Textes</translation> <translation>Textes</translation>
</message> </message>
@ -1031,22 +1192,22 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>update</name> <name>update</name>
<message> <message>
<location filename="../update.py" line="54"/> <location filename="../util/update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source> <source>An update for LogarithPlotter (v{}) is available.</source>
<translation>Une mise à jour de LogarithmPlotter (v{}) est disponible.</translation> <translation>Une mise à jour de LogarithmPlotter (v{}) est disponible.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="58"/> <location filename="../util/update.py" line="58"/>
<source>No update available.</source> <source>No update available.</source>
<translation>À jour.</translation> <translation>À jour.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="61"/> <location filename="../util/update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source> <source>Could not fetch update information: Server error {}.</source>
<translation>Impossible de récupérer les informations de mise à jour. Erreur du serveur {}.</translation> <translation>Impossible de récupérer les informations de mise à jour. Erreur du serveur {}.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="63"/> <location filename="../util/update.py" line="63"/>
<source>Could not fetch update information: {}.</source> <source>Could not fetch update information: {}.</source>
<translation>Impossible de récupérer les informations de mise à jour. {}.</translation> <translation>Impossible de récupérer les informations de mise à jour. {}.</translation>
</message> </message>
@ -1069,12 +1230,12 @@ These settings can always be changed at any time from the &quot;Settings&quot; m
<context> <context>
<name>xcursor</name> <name>xcursor</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="31"/>
<source>X Cursor</source> <source>X Cursor</source>
<translation>Curseur X</translation> <translation>Curseur X</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="32"/>
<source>X Cursors</source> <source>X Cursors</source>
<translation>Curseurs X</translation> <translation>Curseurs X</translation>
</message> </message>

View file

@ -5,7 +5,7 @@
<name>About</name> <name>About</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/>
<location filename="../logarithmplotter.py" line="112"/> <location filename="../logarithmplotter.py" line="118"/>
<source>About LogarithmPlotter</source> <source>About LogarithmPlotter</source>
<translation>LogarithmPlotter névjegye</translation> <translation>LogarithmPlotter névjegye</translation>
</message> </message>
@ -33,112 +33,122 @@
<context> <context>
<name>AppMenuBar</name> <name>AppMenuBar</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;Fájl</translation> <translation>&amp;Fájl</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>&amp;Load...</source> <source>&amp;Load...</source>
<translation>&amp;Betöltés</translation> <translation>&amp;Betöltés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="49"/>
<source>&amp;Save</source> <source>&amp;Save</source>
<translation>&amp;Mentés</translation> <translation>&amp;Mentés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="55"/>
<source>Save &amp;As...</source> <source>Save &amp;As...</source>
<translation>Me&amp;ntés másként</translation> <translation>Me&amp;ntés másként</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="61"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="63"/>
<source>&amp;Quit</source> <source>&amp;Quit</source>
<translation>&amp;Kilépés</translation> <translation>&amp;Kilépés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Edit</source> <source>&amp;Edit</source>
<translation>S&amp;zerkesztés</translation> <translation>S&amp;zerkesztés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="79"/>
<source>&amp;Undo</source> <source>&amp;Undo</source>
<translation>&amp;Visszavonás</translation> <translation>&amp;Visszavonás</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="87"/>
<source>&amp;Redo</source> <source>&amp;Redo</source>
<translation>&amp;Ismétlés</translation> <translation>&amp;Ismétlés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="94"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="96"/>
<source>&amp;Copy plot</source> <source>&amp;Copy plot</source>
<translation>Ábra &amp;solása</translation> <translation>Ábra &amp;solása</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="102"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="104"/>
<source>&amp;Create</source> <source>&amp;Create</source>
<translation>&amp;Létrehozás</translation> <translation>&amp;Létrehozás</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="124"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>&amp;Settings</source> <source>&amp;Settings</source>
<translation>&amp;Beállítások</translation> <translation>&amp;Beállítások</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="127"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="129"/>
<source>Check for updates on startup</source> <source>Check for updates on startup</source>
<translation>Frissítések keresése indításkor</translation> <translation>Frissítések keresése indításkor</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="136"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="138"/>
<source>Reset redo stack automaticly</source> <source>Reset redo stack automaticly</source>
<translation>Ismétlési verem önműködő visszaállítása</translation> <translation>Ismétlési verem önműködő visszaállítása</translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="145"/>
<source>&amp;Help</source>
<translation>&amp;Súgó</translation>
</message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Source code</source> <source>Enable LaTeX rendering</source>
<translation>&amp;Forráskód</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="152"/>
<source>&amp;Report a bug</source>
<translation>&amp;Hiba bejelentése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="157"/>
<source>&amp;User manual</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>&amp;Help</source>
<translation>&amp;Súgó</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>&amp;Source code</source>
<translation>&amp;Forráskód</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="169"/>
<source>&amp;Report a bug</source>
<translation>&amp;Hiba bejelentése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="174"/>
<source>&amp;User manual</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="179"/>
<source>&amp;Changelog</source> <source>&amp;Changelog</source>
<translation>&amp;Változásnapló</translation> <translation>&amp;Változásnapló</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="167"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/>
<source>&amp;Help translating!</source> <source>&amp;Help translating!</source>
<translation>&amp;Segítség a fordításban!</translation> <translation>&amp;Segítség a fordításban!</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="173"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="190"/>
<source>&amp;Thanks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="195"/>
<source>&amp;About</source> <source>&amp;About</source>
<translation>&amp;Névjegy</translation> <translation>&amp;Névjegy</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="182"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="204"/>
<source>Save unsaved changes?</source> <source>Save unsaved changes?</source>
<translation>Menti a változtatásokat?</translation> <translation>Menti a változtatásokat?</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="206"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source> <source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation>Ez az ábra nem mentett változtatásokat tartalmaz. Ezzel az összes nem mentett adat elveszik. Folytatja?</translation> <translation>Ez az ábra nem mentett változtatásokat tartalmaz. Ezzel az összes nem mentett adat elveszik. Folytatja?</translation>
</message> </message>
@ -211,44 +221,49 @@
<context> <context>
<name>GreetScreen</name> <name>GreetScreen</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="66"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="67"/>
<source>Welcome to LogarithmPlotter</source> <source>Welcome to LogarithmPlotter</source>
<translation>Isten hozott a LogarithmPlotter!</translation> <translation>Isten hozott a LogarithmPlotter!</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="81"/>
<source>Version %1</source> <source>Version %1</source>
<translation>%1 verzió</translation> <translation>%1 verzió</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="92"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="93"/>
<source>Take a few seconds to configure LogarithmPlotter. <source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source> These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation>Szánjon néhány másodpercet a LogarithmPlotter beállításához. <translation>Szánjon néhány másodpercet a LogarithmPlotter beállításához.
Ezek a beállítások bármikor módosíthatók a Beállítások menüben.</translation> Ezek a beállítások bármikor módosíthatók a Beállítások menüben.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="101"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="102"/>
<source>Check for updates on startup (requires online connectivity)</source> <source>Check for updates on startup (requires online connectivity)</source>
<translation>Frissítések keresése indításkor (online kapcsolat szükséges)</translation> <translation>Frissítések keresése indításkor (online kapcsolat szükséges)</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="113"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="114"/>
<source>Reset redo stack when a new action is added to history</source> <source>Reset redo stack when a new action is added to history</source>
<translation>Ismétlési verem alaphelyzet visszaállítása, ha új műveletet adnak az előzményekhez</translation> <translation>Ismétlési verem alaphelyzet visszaállítása, ha új műveletet adnak az előzményekhez</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="128"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="126"/>
<source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/>
<source>User manual</source> <source>User manual</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="135"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="149"/>
<source>Changelog</source> <source>Changelog</source>
<translation>Változásnapló</translation> <translation>Változásnapló</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="156"/>
<source>Done</source> <source>Done</source>
<translation>Kész</translation> <translation>Kész</translation>
</message> </message>
@ -279,7 +294,7 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>ListSetting</name> <name>ListSetting</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="215"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="233"/>
<source>+ Add Entry</source> <source>+ Add Entry</source>
<translation>+ Bejegyzés hozzáadása</translation> <translation>+ Bejegyzés hozzáadása</translation>
</message> </message>
@ -287,62 +302,62 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>LogarithmPlotter</name> <name>LogarithmPlotter</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>Objects</source> <source>Objects</source>
<translation>Tárgyak</translation> <translation>Tárgyak</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="93"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="95"/>
<source>Settings</source> <source>Settings</source>
<translation>Beállítások</translation> <translation>Beállítások</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="99"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="101"/>
<source>History</source> <source>History</source>
<translation>Előzmények</translation> <translation>Előzmények</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="211"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="213"/>
<source>Saved plot to &apos;%1&apos;.</source> <source>Saved plot to &apos;%1&apos;.</source>
<translation>Ábra mentve ide: %1.</translation> <translation>Ábra mentve ide: %1.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="221"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="223"/>
<source>Loading file &apos;%1&apos;.</source> <source>Loading file &apos;%1&apos;.</source>
<translation>A(z) %1 fájl betöltése folyamatban van.</translation> <translation>A(z) %1 fájl betöltése folyamatban van.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="258"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Unknown object type: %1.</source> <source>Unknown object type: %1.</source>
<translation>Ismeretlen objektumtípus: %1.</translation> <translation>Ismeretlen objektumtípus: %1.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="277"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="279"/>
<source>Invalid file provided.</source> <source>Invalid file provided.</source>
<translation>A megadott fájl érvénytelen.</translation> <translation>A megadott fájl érvénytelen.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="281"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="283"/>
<source>Could not save file: </source> <source>Could not save file: </source>
<translation>A fájl mentése nem sikerült: </translation> <translation>A fájl mentése nem sikerült: </translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="286"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="288"/>
<source>Loaded file &apos;%1&apos;.</source> <source>Loaded file &apos;%1&apos;.</source>
<translation>A(z) %1 fájl betöltve.</translation> <translation>A(z) %1 fájl betöltve.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="319"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="321"/>
<source>Copied plot screenshot to clipboard!</source> <source>Copied plot screenshot to clipboard!</source>
<translation>Ábra képernyőkép vágólapra másolva!</translation> <translation>Ábra képernyőkép vágólapra másolva!</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="334"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/>
<source>&amp;Update</source> <source>&amp;Update</source>
<translation>&amp;Frissítés</translation> <translation>&amp;Frissítés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="338"/>
<source>&amp;Update LogarithmPlotter</source> <source>&amp;Update LogarithmPlotter</source>
<translation>A LogarithmPlotter &amp;frissítése</translation> <translation>A LogarithmPlotter &amp;frissítése</translation>
</message> </message>
@ -504,15 +519,108 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<translation>Ábra betöltése</translation> <translation>Ábra betöltése</translation>
</message> </message>
</context> </context>
<context>
<name>ThanksTo</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="32"/>
<source>Thanks and Contributions - LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="53"/>
<source>Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="56"/>
<source>Original library by Raphael Graf</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="59"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="61"/>
<source>Ported to Javascript by Matthew Crumley</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="64"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="69"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="196"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="205"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="214"/>
<source>Website</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="66"/>
<source>Ported to QMLJS by Ad5001</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="79"/>
<source>Libraries included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="160"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="190"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="200"/>
<source>French</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="209"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="218"/>
<source>Hungarian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="223"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="232"/>
<source>Github</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="227"/>
<source>Norwegian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="242"/>
<source>Translations included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="271"/>
<source>Improve</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>changelog</name> <name>changelog</name>
<message> <message>
<location filename="../helper.py" line="48"/> <location filename="../util/helper.py" line="48"/>
<source>Could not fetch changelog: Server error {}.</source> <source>Could not fetch changelog: Server error {}.</source>
<translation>Nem sikerült lekérni a változásnaplót: Kiszolgálóhiba: {}.</translation> <translation>Nem sikerült lekérni a változásnaplót: Kiszolgálóhiba: {}.</translation>
</message> </message>
<message> <message>
<location filename="../helper.py" line="50"/> <location filename="../util/helper.py" line="50"/>
<source>Could not fetch update: {}.</source> <source>Could not fetch update: {}.</source>
<translation>Nem sikerült lekérni a változásnaplót: {}.</translation> <translation>Nem sikerült lekérni a változásnaplót: {}.</translation>
</message> </message>
@ -529,32 +637,37 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>comment</name> <name>comment</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="36"/>
<source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source> <source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source>
<translation>Példák: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</translation> <translation>Példák: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="54"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="43"/>
<source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source> <source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source>
<translation>A következő paraméterek használatosak, ha a tartomány nem folytonos halmaz. (Példák: , , olyan halmazok, mint a {0;3})</translation> <translation>A következő paraméterek használatosak, ha a tartomány nem folytonos halmaz. (Példák: , , olyan halmazok, mint a {0;3})</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="41"/>
<source>Note: Specify the probability for each value.</source> <source>Note: Specify the probability for each value.</source>
<translation>Megjegyzés: Adja meg az egyes értékek valószínűségét.</translation> <translation>Megjegyzés: Adja meg az egyes értékek valószínűségét.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="37"/>
<source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source> <source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source>
<translation>Megjegyzés: A(z) %1[n] használatával hivatkozhat erre: %1, a(z) %1[n+1] használatával hivatkozhat erre: %1, </translation> <translation>Megjegyzés: A(z) %1[n] használatával hivatkozhat erre: %1, a(z) %1[n+1] használatával hivatkozhat erre: %1, </translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="43"/>
<source>If you have latex enabled, you can use use latex markup in between $$ to create equations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>control</name> <name>control</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="98"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="116"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/>
<source>%1: </source> <source>%1: </source>
<translation>%1: </translation> <translation>%1: </translation>
@ -594,12 +707,12 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>function</name> <name>function</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Function</source> <source>Function</source>
<translation>Függvény</translation> <translation>Függvény</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="31"/>
<source>Functions</source> <source>Functions</source>
<translation>Függvények</translation> <translation>Függvények</translation>
</message> </message>
@ -607,22 +720,24 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>gainbode</name> <name>gainbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="33"/>
<source>Bode Magnitude</source> <source>Bode Magnitude</source>
<translation>Bode-nagyságrend</translation> <translation>Bode-nagyságrend</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="34"/>
<source>Bode Magnitudes</source> <source>Bode Magnitudes</source>
<translation>Bode-nagyságrendek</translation> <translation>Bode-nagyságrendek</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>low-pass</source> <source>low-pass</source>
<translation>aluláteresztő</translation> <translation>aluláteresztő</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>high-pass</source> <source>high-pass</source>
<translation>felüláteresztő</translation> <translation>felüláteresztő</translation>
</message> </message>
@ -650,6 +765,38 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<translation type="vanished">%1 %2 rejtve.</translation> <translation type="vanished">%1 %2 rejtve.</translation>
</message> </message>
</context> </context>
<context>
<name>latex</name>
<message>
<location filename="../util/latex.py" line="73"/>
<source>No Latex installation found.
If you already have a latex distribution installed, make sure it&apos;s installed on your path.
Otherwise, you can download a Latex distribution like TeX Live at https://tug.org/texlive/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="77"/>
<source>DVIPNG was not found. Make sure you include it from your Latex distribution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="155"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; ended with a non-zero return code {}:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="163"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; took too long to finish:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>name</name> <name>name</name>
<message> <message>
@ -777,12 +924,12 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>phasebode</name> <name>phasebode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phase</source> <source>Bode Phase</source>
<translation>Bode-fázis</translation> <translation>Bode-fázis</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="32"/>
<source>Bode Phases</source> <source>Bode Phases</source>
<translation>Bode-fázisok</translation> <translation>Bode-fázisok</translation>
</message> </message>
@ -790,12 +937,12 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>point</name> <name>point</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Point</source> <source>Point</source>
<translation>Pont</translation> <translation>Pont</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="30"/>
<source>Points</source> <source>Points</source>
<translation>Pontok</translation> <translation>Pontok</translation>
</message> </message>
@ -803,153 +950,158 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>prop</name> <name>prop</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="33"/>
<source>expression</source> <source>expression</source>
<translation>Kifejezés</translation> <translation>Kifejezés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="34"/>
<source>definitionDomain</source> <source>definitionDomain</source>
<translation>Abszcissza tartomány</translation> <translation>Abszcissza tartomány</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="35"/>
<source>destinationDomain</source> <source>destinationDomain</source>
<translation>Ordináta tartomány</translation> <translation>Ordináta tartomány</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="37"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="41"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="49"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="36"/>
<source>labelPosition</source> <source>labelPosition</source>
<translation>Címke helyzete</translation> <translation>Címke helyzete</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="41"/>
<source>displayMode</source> <source>displayMode</source>
<translation>Megjelenítési mód</translation> <translation>Megjelenítési mód</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="43"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="39"/>
<source>labelX</source> <source>labelX</source>
<translation>Címke X helyzete</translation> <translation>Címke X helyzete</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="58"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="33"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/>
<source>drawPoints</source> <source>drawPoints</source>
<translation>Pontok megjelenítése</translation> <translation>Pontok megjelenítése</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="59"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="48"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/>
<source>drawDashedLines</source> <source>drawDashedLines</source>
<translation>Szaggatott vonalak megjelenítése</translation> <translation>Szaggatott vonalak megjelenítése</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="34"/>
<source>om_0</source> <source>om_0</source>
<translation>ω</translation> <translation>ω</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="37"/>
<source>pass</source> <source>pass</source>
<translation>Áteresztő</translation> <translation>Áteresztő</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="38"/>
<source>gain</source> <source>gain</source>
<translation>Nagyságrend nyeresége</translation> <translation>Nagyságrend nyeresége</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="41"/>
<source>omGraduation</source> <source>omGraduation</source>
<translation>ω érettségi megjelenítése</translation> <translation>ω érettségi megjelenítése</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="35"/>
<source>phase</source> <source>phase</source>
<translation>Fázis</translation> <translation>Fázis</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="36"/>
<source>unit</source> <source>unit</source>
<translation>Egység használata</translation> <translation>Egység használata</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="33"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="34"/>
<source>x</source> <source>x</source>
<translation>X</translation> <translation>X</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="34"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/>
<source>y</source> <source>y</source>
<translation>Y</translation> <translation>Y</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="36"/>
<source>pointStyle</source> <source>pointStyle</source>
<translation>Pontstílus</translation> <translation>Pontstílus</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="45"/>
<source>probabilities</source> <source>probabilities</source>
<translation>Valószínűségek listája</translation> <translation>Valószínűségek listája</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="42"/>
<source>text</source> <source>text</source>
<translation>Tartalom</translation> <translation>Tartalom</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="48"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="47"/>
<source>disableLatex</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="35"/>
<source>targetElement</source> <source>targetElement</source>
<translation>Tárgycél</translation> <translation>Tárgycél</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="50"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="37"/>
<source>approximate</source> <source>approximate</source>
<translation>Hozzávetőleges érték megjelenítése</translation> <translation>Hozzávetőleges érték megjelenítése</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="38"/>
<source>rounding</source> <source>rounding</source>
<translation>Kerekítés</translation> <translation>Kerekítés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="39"/>
<source>displayStyle</source> <source>displayStyle</source>
<translation>Megjelenítési stílus</translation> <translation>Megjelenítési stílus</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="57"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="44"/>
<source>targetValuePosition</source> <source>targetValuePosition</source>
<translation>Cél értékpozíciója</translation> <translation>Cél értékpozíciója</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/>
<source>defaultExpression</source> <source>defaultExpression</source>
<translation>Alapértelmezett kifejezés</translation> <translation>Alapértelmezett kifejezés</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/>
<source>baseValues</source> <source>baseValues</source>
<translation>Kezdeményezési értékek</translation> <translation>Kezdeményezési értékek</translation>
</message> </message>
@ -957,12 +1109,12 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>repartition</name> <name>repartition</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="28"/>
<source>Repartition</source> <source>Repartition</source>
<translation>Elosztás</translation> <translation>Elosztás</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="29"/>
<source>Repartition functions</source> <source>Repartition functions</source>
<translation>Elosztási függvények</translation> <translation>Elosztási függvények</translation>
</message> </message>
@ -970,12 +1122,12 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>sequence</name> <name>sequence</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequence</source> <source>Sequence</source>
<translation>Sorozat</translation> <translation>Sorozat</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="31"/>
<source>Sequences</source> <source>Sequences</source>
<translation>Sorozatok</translation> <translation>Sorozatok</translation>
</message> </message>
@ -983,8 +1135,8 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>sommegainsbode</name> <name>sommegainsbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="32"/>
<source>Bode Magnitudes Sum</source> <source>Bode Magnitudes Sum</source>
<translation>Bode-nagyságrendek összege</translation> <translation>Bode-nagyságrendek összege</translation>
</message> </message>
@ -992,8 +1144,8 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>sommephasesbode</name> <name>sommephasesbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="29"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="31"/>
<source>Bode Phases Sum</source> <source>Bode Phases Sum</source>
<translation>Bode-fázisok összege</translation> <translation>Bode-fázisok összege</translation>
</message> </message>
@ -1001,12 +1153,12 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>text</name> <name>text</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="30"/>
<source>Text</source> <source>Text</source>
<translation>Szöveg</translation> <translation>Szöveg</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="31"/>
<source>Texts</source> <source>Texts</source>
<translation>Szövegek</translation> <translation>Szövegek</translation>
</message> </message>
@ -1014,22 +1166,22 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>update</name> <name>update</name>
<message> <message>
<location filename="../update.py" line="54"/> <location filename="../util/update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source> <source>An update for LogarithPlotter (v{}) is available.</source>
<translation>Elérhető a Logaritmus-ábrázoló ({} verzió) frissítése.</translation> <translation>Elérhető a Logaritmus-ábrázoló ({} verzió) frissítése.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="58"/> <location filename="../util/update.py" line="58"/>
<source>No update available.</source> <source>No update available.</source>
<translation>Nincs telepíthető frissítés.</translation> <translation>Nincs telepíthető frissítés.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="61"/> <location filename="../util/update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source> <source>Could not fetch update information: Server error {}.</source>
<translation>Nem sikerült lekérni a frissítési adatokat: Kiszolgálóhiba: {}.</translation> <translation>Nem sikerült lekérni a frissítési adatokat: Kiszolgálóhiba: {}.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="63"/> <location filename="../util/update.py" line="63"/>
<source>Could not fetch update information: {}.</source> <source>Could not fetch update information: {}.</source>
<translation>Nem sikerült lekérni a frissítési adatokat: {}.</translation> <translation>Nem sikerült lekérni a frissítési adatokat: {}.</translation>
</message> </message>
@ -1052,12 +1204,12 @@ Ezek a beállítások bármikor módosíthatók a „Beállítások” menüben.
<context> <context>
<name>xcursor</name> <name>xcursor</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="31"/>
<source>X Cursor</source> <source>X Cursor</source>
<translation>X kurzor</translation> <translation>X kurzor</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="32"/>
<source>X Cursors</source> <source>X Cursors</source>
<translation>X kurzorok</translation> <translation>X kurzorok</translation>
</message> </message>

View file

@ -5,7 +5,7 @@
<name>About</name> <name>About</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/>
<location filename="../logarithmplotter.py" line="112"/> <location filename="../logarithmplotter.py" line="118"/>
<source>About LogarithmPlotter</source> <source>About LogarithmPlotter</source>
<translation>Om</translation> <translation>Om</translation>
</message> </message>
@ -33,112 +33,122 @@
<context> <context>
<name>AppMenuBar</name> <name>AppMenuBar</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation>&amp;Fil</translation> <translation>&amp;Fil</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>&amp;Load...</source> <source>&amp;Load...</source>
<translation>&amp;Last inn </translation> <translation>&amp;Last inn </translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="49"/>
<source>&amp;Save</source> <source>&amp;Save</source>
<translation>&amp;Lagre</translation> <translation>&amp;Lagre</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="55"/>
<source>Save &amp;As...</source> <source>Save &amp;As...</source>
<translation>Lagre &amp;som </translation> <translation>Lagre &amp;som </translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="61"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="63"/>
<source>&amp;Quit</source> <source>&amp;Quit</source>
<translation>&amp;Avslutt</translation> <translation>&amp;Avslutt</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Edit</source> <source>&amp;Edit</source>
<translation>&amp;Rediger</translation> <translation>&amp;Rediger</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="79"/>
<source>&amp;Undo</source> <source>&amp;Undo</source>
<translation>&amp;Angre</translation> <translation>&amp;Angre</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="87"/>
<source>&amp;Redo</source> <source>&amp;Redo</source>
<translation>&amp;Gjenta</translation> <translation>&amp;Gjenta</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="94"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="96"/>
<source>&amp;Copy plot</source> <source>&amp;Copy plot</source>
<translation>&amp;Kopier plott</translation> <translation>&amp;Kopier plott</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="102"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="104"/>
<source>&amp;Create</source> <source>&amp;Create</source>
<translation>&amp;Opprett</translation> <translation>&amp;Opprett</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="124"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>&amp;Settings</source> <source>&amp;Settings</source>
<translation>&amp;Innstillinger</translation> <translation>&amp;Innstillinger</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="127"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="129"/>
<source>Check for updates on startup</source> <source>Check for updates on startup</source>
<translation>Se etter nye versjoner ved programstart</translation> <translation>Se etter nye versjoner ved programstart</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="136"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="138"/>
<source>Reset redo stack automaticly</source> <source>Reset redo stack automaticly</source>
<translation type="unfinished">Tilbakestill angrehistorikk automatisk</translation> <translation type="unfinished">Tilbakestill angrehistorikk automatisk</translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="145"/>
<source>&amp;Help</source>
<translation>&amp;Hjelp</translation>
</message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Source code</source> <source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="152"/>
<source>&amp;Report a bug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="157"/>
<source>&amp;User manual</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>&amp;Help</source>
<translation>&amp;Hjelp</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>&amp;Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="169"/>
<source>&amp;Report a bug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="174"/>
<source>&amp;User manual</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="179"/>
<source>&amp;Changelog</source> <source>&amp;Changelog</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="167"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/>
<source>&amp;Help translating!</source> <source>&amp;Help translating!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="173"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="190"/>
<source>&amp;Thanks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="195"/>
<source>&amp;About</source> <source>&amp;About</source>
<translation>&amp;Om</translation> <translation>&amp;Om</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="182"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="204"/>
<source>Save unsaved changes?</source> <source>Save unsaved changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="206"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source> <source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -211,44 +221,49 @@
<context> <context>
<name>GreetScreen</name> <name>GreetScreen</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="66"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="67"/>
<source>Welcome to LogarithmPlotter</source> <source>Welcome to LogarithmPlotter</source>
<translation>Velkommen til LogarithmPlotter</translation> <translation>Velkommen til LogarithmPlotter</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="81"/>
<source>Version %1</source> <source>Version %1</source>
<translation>Versjon %1</translation> <translation>Versjon %1</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="92"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="93"/>
<source>Take a few seconds to configure LogarithmPlotter. <source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source> These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation>Sett opp LogarithmPlotter. <translation>Sett opp LogarithmPlotter.
Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</translation> Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="101"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="102"/>
<source>Check for updates on startup (requires online connectivity)</source> <source>Check for updates on startup (requires online connectivity)</source>
<translation>Se etter nye versjoner ved programstart. (Krever tilkobling til Internett.)</translation> <translation>Se etter nye versjoner ved programstart. (Krever tilkobling til Internett.)</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="113"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="114"/>
<source>Reset redo stack when a new action is added to history</source> <source>Reset redo stack when a new action is added to history</source>
<translation>Tilbakesitll angrehistorikk når en ny handling legges til</translation> <translation>Tilbakesitll angrehistorikk når en ny handling legges til</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="128"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="126"/>
<source>User manual</source> <source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="135"/>
<source>Changelog</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/>
<source>User manual</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="149"/>
<source>Changelog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="156"/>
<source>Done</source> <source>Done</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -279,7 +294,7 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>ListSetting</name> <name>ListSetting</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="215"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="233"/>
<source>+ Add Entry</source> <source>+ Add Entry</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -287,62 +302,62 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>LogarithmPlotter</name> <name>LogarithmPlotter</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>Objects</source> <source>Objects</source>
<translation>Objekter</translation> <translation>Objekter</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="93"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="95"/>
<source>Settings</source> <source>Settings</source>
<translation>Innstillinger</translation> <translation>Innstillinger</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="99"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="101"/>
<source>History</source> <source>History</source>
<translation>Historikk</translation> <translation>Historikk</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="211"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="213"/>
<source>Saved plot to &apos;%1&apos;.</source> <source>Saved plot to &apos;%1&apos;.</source>
<translation>Lagret plott i «%1».</translation> <translation>Lagret plott i «%1».</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="221"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="223"/>
<source>Loading file &apos;%1&apos;.</source> <source>Loading file &apos;%1&apos;.</source>
<translation>Laster inn «%1»-fil.</translation> <translation>Laster inn «%1»-fil.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="258"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Unknown object type: %1.</source> <source>Unknown object type: %1.</source>
<translation>Ukjent objekttype: %1.</translation> <translation>Ukjent objekttype: %1.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="277"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="279"/>
<source>Invalid file provided.</source> <source>Invalid file provided.</source>
<translation>Ugyldig fil angitt.</translation> <translation>Ugyldig fil angitt.</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="281"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="283"/>
<source>Could not save file: </source> <source>Could not save file: </source>
<translation>Kunne ikke lagre fil: </translation> <translation>Kunne ikke lagre fil: </translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="286"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="288"/>
<source>Loaded file &apos;%1&apos;.</source> <source>Loaded file &apos;%1&apos;.</source>
<translation>Lastet inn filen «%1».</translation> <translation>Lastet inn filen «%1».</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="319"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="321"/>
<source>Copied plot screenshot to clipboard!</source> <source>Copied plot screenshot to clipboard!</source>
<translation>Kopierte plott-skjermavbildning til utklippstavlen!</translation> <translation>Kopierte plott-skjermavbildning til utklippstavlen!</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="334"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/>
<source>&amp;Update</source> <source>&amp;Update</source>
<translation>&amp;Oppdater</translation> <translation>&amp;Oppdater</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="338"/>
<source>&amp;Update LogarithmPlotter</source> <source>&amp;Update LogarithmPlotter</source>
<translation>&amp;Installer ny versjon av LogartimePlotter</translation> <translation>&amp;Installer ny versjon av LogartimePlotter</translation>
</message> </message>
@ -504,15 +519,108 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<translation>Last inn plott</translation> <translation>Last inn plott</translation>
</message> </message>
</context> </context>
<context>
<name>ThanksTo</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="32"/>
<source>Thanks and Contributions - LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="53"/>
<source>Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="56"/>
<source>Original library by Raphael Graf</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="59"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="61"/>
<source>Ported to Javascript by Matthew Crumley</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="64"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="69"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="196"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="205"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="214"/>
<source>Website</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="66"/>
<source>Ported to QMLJS by Ad5001</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="79"/>
<source>Libraries included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="160"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="190"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="200"/>
<source>French</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="209"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="218"/>
<source>Hungarian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="223"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="232"/>
<source>Github</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="227"/>
<source>Norwegian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="242"/>
<source>Translations included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="271"/>
<source>Improve</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>changelog</name> <name>changelog</name>
<message> <message>
<location filename="../helper.py" line="48"/> <location filename="../util/helper.py" line="48"/>
<source>Could not fetch changelog: Server error {}.</source> <source>Could not fetch changelog: Server error {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../helper.py" line="50"/> <location filename="../util/helper.py" line="50"/>
<source>Could not fetch update: {}.</source> <source>Could not fetch update: {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -529,32 +637,37 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>comment</name> <name>comment</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="36"/>
<source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source> <source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="54"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="43"/>
<source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source> <source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="41"/>
<source>Note: Specify the probability for each value.</source> <source>Note: Specify the probability for each value.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="37"/>
<source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source> <source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="43"/>
<source>If you have latex enabled, you can use use latex markup in between $$ to create equations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>control</name> <name>control</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="98"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="116"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/>
<source>%1: </source> <source>%1: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -594,12 +707,12 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>function</name> <name>function</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Function</source> <source>Function</source>
<translation>Funksjon</translation> <translation>Funksjon</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="31"/>
<source>Functions</source> <source>Functions</source>
<translation>Funksjoner</translation> <translation>Funksjoner</translation>
</message> </message>
@ -607,22 +720,24 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>gainbode</name> <name>gainbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="33"/>
<source>Bode Magnitude</source> <source>Bode Magnitude</source>
<translation>Bode-magnitude</translation> <translation>Bode-magnitude</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="34"/>
<source>Bode Magnitudes</source> <source>Bode Magnitudes</source>
<translation>Bode-magnituder</translation> <translation>Bode-magnituder</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>low-pass</source> <source>low-pass</source>
<translation>lavpass</translation> <translation>lavpass</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>high-pass</source> <source>high-pass</source>
<translation>høypass</translation> <translation>høypass</translation>
</message> </message>
@ -650,6 +765,38 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<translation type="vanished">%1 %2 skjult.</translation> <translation type="vanished">%1 %2 skjult.</translation>
</message> </message>
</context> </context>
<context>
<name>latex</name>
<message>
<location filename="../util/latex.py" line="73"/>
<source>No Latex installation found.
If you already have a latex distribution installed, make sure it&apos;s installed on your path.
Otherwise, you can download a Latex distribution like TeX Live at https://tug.org/texlive/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="77"/>
<source>DVIPNG was not found. Make sure you include it from your Latex distribution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="155"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; ended with a non-zero return code {}:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="163"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; took too long to finish:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>name</name> <name>name</name>
<message> <message>
@ -777,12 +924,12 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>phasebode</name> <name>phasebode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phase</source> <source>Bode Phase</source>
<translation>Bode-fase</translation> <translation>Bode-fase</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="32"/>
<source>Bode Phases</source> <source>Bode Phases</source>
<translation>Bode-faser</translation> <translation>Bode-faser</translation>
</message> </message>
@ -790,12 +937,12 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>point</name> <name>point</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Point</source> <source>Point</source>
<translation>Punkt</translation> <translation>Punkt</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="30"/>
<source>Points</source> <source>Points</source>
<translation>Punkter</translation> <translation>Punkter</translation>
</message> </message>
@ -803,153 +950,158 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>prop</name> <name>prop</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="33"/>
<source>expression</source> <source>expression</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="34"/>
<source>definitionDomain</source> <source>definitionDomain</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="35"/>
<source>destinationDomain</source> <source>destinationDomain</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="37"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="41"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="49"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="36"/>
<source>labelPosition</source> <source>labelPosition</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="41"/>
<source>displayMode</source> <source>displayMode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="43"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="39"/>
<source>labelX</source> <source>labelX</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="58"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="33"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/>
<source>drawPoints</source> <source>drawPoints</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="59"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="48"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/>
<source>drawDashedLines</source> <source>drawDashedLines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="34"/>
<source>om_0</source> <source>om_0</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="37"/>
<source>pass</source> <source>pass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="38"/>
<source>gain</source> <source>gain</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="41"/>
<source>omGraduation</source> <source>omGraduation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="35"/>
<source>phase</source> <source>phase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="36"/>
<source>unit</source> <source>unit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="33"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="34"/>
<source>x</source> <source>x</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="34"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/>
<source>y</source> <source>y</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="36"/>
<source>pointStyle</source> <source>pointStyle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="45"/>
<source>probabilities</source> <source>probabilities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="42"/>
<source>text</source> <source>text</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="48"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="47"/>
<source>disableLatex</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="35"/>
<source>targetElement</source> <source>targetElement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="50"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="37"/>
<source>approximate</source> <source>approximate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="38"/>
<source>rounding</source> <source>rounding</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="39"/>
<source>displayStyle</source> <source>displayStyle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="57"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="44"/>
<source>targetValuePosition</source> <source>targetValuePosition</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/>
<source>defaultExpression</source> <source>defaultExpression</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/>
<source>baseValues</source> <source>baseValues</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -957,12 +1109,12 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>repartition</name> <name>repartition</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="28"/>
<source>Repartition</source> <source>Repartition</source>
<translation>Distribusjon</translation> <translation>Distribusjon</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="29"/>
<source>Repartition functions</source> <source>Repartition functions</source>
<translation>Distribusjonsfunksjoner</translation> <translation>Distribusjonsfunksjoner</translation>
</message> </message>
@ -970,12 +1122,12 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>sequence</name> <name>sequence</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequence</source> <source>Sequence</source>
<translation>Følge</translation> <translation>Følge</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="31"/>
<source>Sequences</source> <source>Sequences</source>
<translation type="unfinished">Følger</translation> <translation type="unfinished">Følger</translation>
</message> </message>
@ -983,8 +1135,8 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>sommegainsbode</name> <name>sommegainsbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="32"/>
<source>Bode Magnitudes Sum</source> <source>Bode Magnitudes Sum</source>
<translation>Bode-magnitudesum</translation> <translation>Bode-magnitudesum</translation>
</message> </message>
@ -992,8 +1144,8 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>sommephasesbode</name> <name>sommephasesbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="29"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="31"/>
<source>Bode Phases Sum</source> <source>Bode Phases Sum</source>
<translation>Bode-fasesum</translation> <translation>Bode-fasesum</translation>
</message> </message>
@ -1001,12 +1153,12 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>text</name> <name>text</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="30"/>
<source>Text</source> <source>Text</source>
<translation>Tekst</translation> <translation>Tekst</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="31"/>
<source>Texts</source> <source>Texts</source>
<translation>Tekster</translation> <translation>Tekster</translation>
</message> </message>
@ -1014,22 +1166,22 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>update</name> <name>update</name>
<message> <message>
<location filename="../update.py" line="54"/> <location filename="../util/update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source> <source>An update for LogarithPlotter (v{}) is available.</source>
<translation>En ny versjon av LogartimePlotter (v{}) er tilgjengelig</translation> <translation>En ny versjon av LogartimePlotter (v{}) er tilgjengelig</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="58"/> <location filename="../util/update.py" line="58"/>
<source>No update available.</source> <source>No update available.</source>
<translation>Ingen nye versjoner.</translation> <translation>Ingen nye versjoner.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="61"/> <location filename="../util/update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source> <source>Could not fetch update information: Server error {}.</source>
<translation>Fant ikke ut om det er noen nye versjoner. Tjenerfeil {}.</translation> <translation>Fant ikke ut om det er noen nye versjoner. Tjenerfeil {}.</translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="63"/> <location filename="../util/update.py" line="63"/>
<source>Could not fetch update information: {}.</source> <source>Could not fetch update information: {}.</source>
<translation>Kunne ikke hente info om hvorvidt det er nye versjoner: {}.</translation> <translation>Kunne ikke hente info om hvorvidt det er nye versjoner: {}.</translation>
</message> </message>
@ -1052,12 +1204,12 @@ Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</tr
<context> <context>
<name>xcursor</name> <name>xcursor</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="31"/>
<source>X Cursor</source> <source>X Cursor</source>
<translation type="unfinished">X-peker</translation> <translation type="unfinished">X-peker</translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="32"/>
<source>X Cursors</source> <source>X Cursors</source>
<translation type="unfinished">X-pekere</translation> <translation type="unfinished">X-pekere</translation>
</message> </message>

View file

@ -5,7 +5,7 @@
<name>About</name> <name>About</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/About.qml" line="32"/>
<location filename="../logarithmplotter.py" line="112"/> <location filename="../logarithmplotter.py" line="118"/>
<source>About LogarithmPlotter</source> <source>About LogarithmPlotter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -33,112 +33,122 @@
<context> <context>
<name>AppMenuBar</name> <name>AppMenuBar</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>&amp;Load...</source> <source>&amp;Load...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="49"/>
<source>&amp;Save</source> <source>&amp;Save</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="55"/>
<source>Save &amp;As...</source> <source>Save &amp;As...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="61"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="63"/>
<source>&amp;Quit</source> <source>&amp;Quit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Edit</source> <source>&amp;Edit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="79"/>
<source>&amp;Undo</source> <source>&amp;Undo</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="87"/>
<source>&amp;Redo</source> <source>&amp;Redo</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="94"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="96"/>
<source>&amp;Copy plot</source> <source>&amp;Copy plot</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="102"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="104"/>
<source>&amp;Create</source> <source>&amp;Create</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="124"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>&amp;Settings</source> <source>&amp;Settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="127"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="129"/>
<source>Check for updates on startup</source> <source>Check for updates on startup</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="136"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="138"/>
<source>Reset redo stack automaticly</source> <source>Reset redo stack automaticly</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="145"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Source code</source> <source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="152"/>
<source>&amp;Report a bug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="157"/>
<source>&amp;User manual</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>&amp;Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="169"/>
<source>&amp;Report a bug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="174"/>
<source>&amp;User manual</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="179"/>
<source>&amp;Changelog</source> <source>&amp;Changelog</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="167"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/>
<source>&amp;Help translating!</source> <source>&amp;Help translating!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="173"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="190"/>
<source>&amp;Thanks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="195"/>
<source>&amp;About</source> <source>&amp;About</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="182"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="204"/>
<source>Save unsaved changes?</source> <source>Save unsaved changes?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="184"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="206"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source> <source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -211,43 +221,48 @@
<context> <context>
<name>GreetScreen</name> <name>GreetScreen</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="66"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="67"/>
<source>Welcome to LogarithmPlotter</source> <source>Welcome to LogarithmPlotter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="81"/>
<source>Version %1</source> <source>Version %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="92"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="93"/>
<source>Take a few seconds to configure LogarithmPlotter. <source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source> These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="101"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="102"/>
<source>Check for updates on startup (requires online connectivity)</source> <source>Check for updates on startup (requires online connectivity)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="113"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="114"/>
<source>Reset redo stack when a new action is added to history</source> <source>Reset redo stack when a new action is added to history</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="128"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="126"/>
<source>User manual</source> <source>Enable LaTeX rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="135"/>
<source>Changelog</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="142"/>
<source>User manual</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="149"/>
<source>Changelog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/GreetScreen.qml" line="156"/>
<source>Done</source> <source>Done</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -278,7 +293,7 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>ListSetting</name> <name>ListSetting</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="215"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="233"/>
<source>+ Add Entry</source> <source>+ Add Entry</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -286,62 +301,62 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>LogarithmPlotter</name> <name>LogarithmPlotter</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>Objects</source> <source>Objects</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="93"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="95"/>
<source>Settings</source> <source>Settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="99"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="101"/>
<source>History</source> <source>History</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="211"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="213"/>
<source>Saved plot to &apos;%1&apos;.</source> <source>Saved plot to &apos;%1&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="221"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="223"/>
<source>Loading file &apos;%1&apos;.</source> <source>Loading file &apos;%1&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="258"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Unknown object type: %1.</source> <source>Unknown object type: %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="277"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="279"/>
<source>Invalid file provided.</source> <source>Invalid file provided.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="281"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="283"/>
<source>Could not save file: </source> <source>Could not save file: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="286"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="288"/>
<source>Loaded file &apos;%1&apos;.</source> <source>Loaded file &apos;%1&apos;.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="319"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="321"/>
<source>Copied plot screenshot to clipboard!</source> <source>Copied plot screenshot to clipboard!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="334"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/>
<source>&amp;Update</source> <source>&amp;Update</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="336"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="338"/>
<source>&amp;Update LogarithmPlotter</source> <source>&amp;Update LogarithmPlotter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -503,15 +518,108 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>ThanksTo</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="32"/>
<source>Thanks and Contributions - LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="53"/>
<source>Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="56"/>
<source>Original library by Raphael Graf</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="59"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="61"/>
<source>Ported to Javascript by Matthew Crumley</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="64"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="69"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="196"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="205"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="214"/>
<source>Website</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="66"/>
<source>Ported to QMLJS by Ad5001</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="79"/>
<source>Libraries included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="160"/>
<source>Email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="190"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="200"/>
<source>French</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="209"/>
<source>German</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="218"/>
<source>Hungarian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="223"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="232"/>
<source>Github</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="227"/>
<source>Norwegian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="242"/>
<source>Translations included</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Popup/ThanksTo.qml" line="271"/>
<source>Improve</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>changelog</name> <name>changelog</name>
<message> <message>
<location filename="../helper.py" line="48"/> <location filename="../util/helper.py" line="48"/>
<source>Could not fetch changelog: Server error {}.</source> <source>Could not fetch changelog: Server error {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../helper.py" line="50"/> <location filename="../util/helper.py" line="50"/>
<source>Could not fetch update: {}.</source> <source>Could not fetch update: {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -528,32 +636,37 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>comment</name> <name>comment</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="36"/>
<source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source> <source>Ex: R+* (*), N (), Z-* (*), ]0;1[, {3;4;5}</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="54"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="43"/>
<source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source> <source>The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="41"/>
<source>Note: Specify the probability for each value.</source> <source>Note: Specify the probability for each value.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="37"/>
<source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source> <source>Note: Use %1[n] to refer to %1, %1[n+1] for %1...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="43"/>
<source>If you have latex enabled, you can use use latex markup in between $$ to create equations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>control</name> <name>control</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="87"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ComboBoxSetting.qml" line="119"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="98"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/ListSetting.qml" line="116"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/Setting/TextSetting.qml" line="100"/>
<source>%1: </source> <source>%1: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -593,12 +706,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>function</name> <name>function</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Function</source> <source>Function</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="31"/>
<source>Functions</source> <source>Functions</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -606,26 +719,60 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>gainbode</name> <name>gainbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="33"/>
<source>Bode Magnitude</source> <source>Bode Magnitude</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="34"/>
<source>Bode Magnitudes</source> <source>Bode Magnitudes</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>low-pass</source> <source>low-pass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="80"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="74"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="79"/>
<source>high-pass</source> <source>high-pass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>latex</name>
<message>
<location filename="../util/latex.py" line="73"/>
<source>No Latex installation found.
If you already have a latex distribution installed, make sure it&apos;s installed on your path.
Otherwise, you can download a Latex distribution like TeX Live at https://tug.org/texlive/.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="77"/>
<source>DVIPNG was not found. Make sure you include it from your Latex distribution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="155"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; ended with a non-zero return code {}:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../util/latex.py" line="163"/>
<source>An exception occured within the creation of the latex formula.
Process &apos;{}&apos; took too long to finish:
{}
Please make sure your latex installation is correct and report a bug if so.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>name</name> <name>name</name>
<message> <message>
@ -753,12 +900,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>phasebode</name> <name>phasebode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phase</source> <source>Bode Phase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="32"/>
<source>Bode Phases</source> <source>Bode Phases</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -766,12 +913,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>point</name> <name>point</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Point</source> <source>Point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="30"/>
<source>Points</source> <source>Points</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -779,153 +926,158 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>prop</name> <name>prop</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="33"/>
<source>expression</source> <source>expression</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="34"/>
<source>definitionDomain</source> <source>definitionDomain</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="35"/>
<source>destinationDomain</source> <source>destinationDomain</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="45"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="37"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="35"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="41"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="49"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="36"/>
<source>labelPosition</source> <source>labelPosition</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="41"/>
<source>displayMode</source> <source>displayMode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="53"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="42"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="46"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="38"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="40"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="43"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="39"/>
<source>labelX</source> <source>labelX</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="58"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="47"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="33"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/>
<source>drawPoints</source> <source>drawPoints</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="59"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="48"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="34"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/>
<source>drawDashedLines</source> <source>drawDashedLines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="36"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="34"/>
<source>om_0</source> <source>om_0</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="37"/>
<source>pass</source> <source>pass</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="44"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="38"/>
<source>gain</source> <source>gain</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="41"/>
<source>omGraduation</source> <source>omGraduation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="35"/>
<source>phase</source> <source>phase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="42"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="36"/>
<source>unit</source> <source>unit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="33"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="37"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="39"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="47"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="34"/>
<source>x</source> <source>x</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="39"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="34"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="38"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/>
<source>y</source> <source>y</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="41"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="36"/>
<source>pointStyle</source> <source>pointStyle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="43"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="45"/>
<source>probabilities</source> <source>probabilities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="42"/>
<source>text</source> <source>text</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="48"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="47"/>
<source>disableLatex</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="35"/>
<source>targetElement</source> <source>targetElement</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="50"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="37"/>
<source>approximate</source> <source>approximate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="51"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="38"/>
<source>rounding</source> <source>rounding</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="52"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="39"/>
<source>displayStyle</source> <source>displayStyle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="57"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="44"/>
<source>targetValuePosition</source> <source>targetValuePosition</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="35"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="36"/>
<source>defaultExpression</source> <source>defaultExpression</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="40"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="41"/>
<source>baseValues</source> <source>baseValues</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -933,12 +1085,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>repartition</name> <name>repartition</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="28"/>
<source>Repartition</source> <source>Repartition</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="29"/>
<source>Repartition functions</source> <source>Repartition functions</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -946,12 +1098,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>sequence</name> <name>sequence</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequence</source> <source>Sequence</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="31"/>
<source>Sequences</source> <source>Sequences</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -959,8 +1111,8 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>sommegainsbode</name> <name>sommegainsbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="31"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommegainsbode.js" line="32"/>
<source>Bode Magnitudes Sum</source> <source>Bode Magnitudes Sum</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -968,8 +1120,8 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>sommephasesbode</name> <name>sommephasesbode</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="29"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="30"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sommephasesbode.js" line="31"/>
<source>Bode Phases Sum</source> <source>Bode Phases Sum</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -977,12 +1129,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>text</name> <name>text</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="30"/>
<source>Text</source> <source>Text</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="31"/>
<source>Texts</source> <source>Texts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -990,22 +1142,22 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>update</name> <name>update</name>
<message> <message>
<location filename="../update.py" line="54"/> <location filename="../util/update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source> <source>An update for LogarithPlotter (v{}) is available.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="58"/> <location filename="../util/update.py" line="58"/>
<source>No update available.</source> <source>No update available.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="61"/> <location filename="../util/update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source> <source>Could not fetch update information: Server error {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../update.py" line="63"/> <location filename="../util/update.py" line="63"/>
<source>Could not fetch update information: {}.</source> <source>Could not fetch update information: {}.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1028,12 +1180,12 @@ These settings can be changed at any time from the &quot;Settings&quot; menu.</s
<context> <context>
<name>xcursor</name> <name>xcursor</name>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="31"/>
<source>X Cursor</source> <source>X Cursor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/> <location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="32"/>
<source>X Cursors</source> <source>X Cursors</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -18,17 +18,18 @@
from time import time from time import time
start_time = time()
from PySide2.QtWidgets import QApplication from PySide2.QtWidgets import QApplication
from PySide2.QtQml import QQmlApplicationEngine from PySide2.QtQml import QQmlApplicationEngine
from PySide2.QtCore import QTranslator, QLocale from PySide2.QtCore import Qt, QTranslator, QLocale
from PySide2.QtGui import QIcon from PySide2.QtGui import QIcon
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory
from os import getcwd, chdir, environ, path, remove, close from os import getcwd, chdir, environ, path, remove, close
from platform import release as os_release from platform import release as os_release
from sys import platform, argv, version as sys_version, exit from sys import platform, argv, version as sys_version, exit
from sys import path as sys_path
start_time = time()
# Create the temporary directory for saving copied screenshots and latex files # Create the temporary directory for saving copied screenshots and latex files
tempdir = TemporaryDirectory() tempdir = TemporaryDirectory()
@ -37,7 +38,6 @@ pwd = getcwd()
chdir(path.dirname(path.realpath(__file__))) chdir(path.dirname(path.realpath(__file__)))
from sys import path as sys_path
if path.realpath(path.join(getcwd(), "..")) not in sys_path: if path.realpath(path.join(getcwd(), "..")) not in sys_path:
sys_path.append(path.realpath(path.join(getcwd(), ".."))) sys_path.append(path.realpath(path.join(getcwd(), "..")))
@ -46,6 +46,7 @@ from LogarithmPlotter import __VERSION__
from LogarithmPlotter.util import config, native from LogarithmPlotter.util import config, native
from LogarithmPlotter.util.update import check_for_updates from LogarithmPlotter.util.update import check_for_updates
from LogarithmPlotter.util.helper import Helper from LogarithmPlotter.util.helper import Helper
from LogarithmPlotter.util.latex import Latex
config.init() config.init()
@ -84,6 +85,7 @@ def run():
icon_fallbacks.append(path.realpath(path.join(base_icon_path, "settings", "custom"))) icon_fallbacks.append(path.realpath(path.join(base_icon_path, "settings", "custom")))
QIcon.setFallbackSearchPaths(icon_fallbacks); QIcon.setFallbackSearchPaths(icon_fallbacks);
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
app = QApplication(argv) app = QApplication(argv)
app.setApplicationName("LogarithmPlotter") app.setApplicationName("LogarithmPlotter")
app.setOrganizationName("Ad5001") app.setOrganizationName("Ad5001")
@ -107,7 +109,9 @@ def run():
engine = QQmlApplicationEngine() engine = QQmlApplicationEngine()
global tmpfile global tmpfile
helper = Helper(pwd, tmpfile) helper = Helper(pwd, tmpfile)
latex = Latex(tempdir)
engine.rootContext().setContextProperty("Helper", helper) engine.rootContext().setContextProperty("Helper", helper)
engine.rootContext().setContextProperty("Latex", latex)
engine.rootContext().setContextProperty("TestBuild", "--test-build" in argv) engine.rootContext().setContextProperty("TestBuild", "--test-build" in argv)
engine.rootContext().setContextProperty("StartTime", dep_time) engine.rootContext().setContextProperty("StartTime", dep_time)
@ -131,6 +135,8 @@ def run():
if platform == "darwin": if platform == "darwin":
macOSFileOpenHandler.init_graphics(engine.rootObjects()[0]) macOSFileOpenHandler.init_graphics(engine.rootObjects()[0])
latex.check_latex_install()
# Check for updates # Check for updates
if config.getSetting("check_for_updates"): if config.getSetting("check_for_updates"):
check_for_updates(__VERSION__, engine.rootObjects()[0]) check_for_updates(__VERSION__, engine.rootObjects()[0])

View file

@ -22,6 +22,8 @@ import QtQuick.Dialogs 1.3
import eu.ad5001.MixedMenu 1.1 import eu.ad5001.MixedMenu 1.1
import "js/objects.js" as Objects import "js/objects.js" as Objects
import "js/historylib.js" as HistoryLib import "js/historylib.js" as HistoryLib
import "js/math/latex.js" as Latex
/*! /*!
\qmltype AppMenuBar \qmltype AppMenuBar
@ -139,6 +141,21 @@ MenuBar {
onTriggered: Helper.setSettingBool("reset_redo_stack", checked) onTriggered: Helper.setSettingBool("reset_redo_stack", checked)
icon.name: 'timeline' icon.name: 'timeline'
} }
Action {
id: enableLatexSetting
text: qsTr("Enable LaTeX rendering")
checkable: true
checked: Helper.getSettingBool("enable_latex")
onTriggered: {
Helper.setSettingBool("enable_latex", checked)
Latex.enabled = checked
drawCanvas.requestPaint()
}
icon.name: 'Expression'
Component.onCompleted: Latex.enabled = checked
}
} }
Menu { Menu {

View file

@ -124,13 +124,15 @@ Item {
} }
/*! /*!
\qmlmethod void History::undo() \qmlmethod void History::undo(bool updateObjectList = true)
Undoes the historylib.Action at the top of the undo stack and pushes it to the top of the redo stack. Undoes the historylib.Action at the top of the undo stack and pushes it to the top of the redo stack.
By default, will update the graph and the object list. This behavior can be disabled by setting the \c updateObjectList to false.
*/ */
function undo() { function undo(updateObjectList = true) {
if(undoStack.length > 0) { if(undoStack.length > 0) {
var action = undoStack.pop() var action = undoStack.pop()
action.undo() action.undo()
if(updateObjectList)
objectLists.update() objectLists.update()
redoStack.push(action) redoStack.push(action)
undoCount--; undoCount--;
@ -140,13 +142,15 @@ Item {
} }
/*! /*!
\qmlmethod void History::redo() \qmlmethod void History::redo(bool updateObjectList = true)
Redoes the historylib.Action at the top of the redo stack and pushes it to the top of the undo stack. Redoes the historylib.Action at the top of the redo stack and pushes it to the top of the undo stack.
By default, will update the graph and the object list. This behavior can be disabled by setting the \c updateObjectList to false.
*/ */
function redo() { function redo(updateObjectList = true) {
if(redoStack.length > 0) { if(redoStack.length > 0) {
var action = redoStack.pop() var action = redoStack.pop()
action.redo() action.redo()
if(updateObjectList)
objectLists.update() objectLists.update()
undoStack.push(action) undoStack.push(action)
undoCount++; undoCount++;
@ -186,7 +190,7 @@ Item {
property int toUndoCount: 0 property int toUndoCount: 0
onTriggered: { onTriggered: {
if(toUndoCount > 0) { if(toUndoCount > 0) {
historyObj.undo() historyObj.undo(toUndoCount % 4 == 1) // Only redraw once every 4 changes.
toUndoCount--; toUndoCount--;
} else { } else {
running = false; running = false;
@ -200,7 +204,7 @@ Item {
property int toRedoCount: 0 property int toRedoCount: 0
onTriggered: { onTriggered: {
if(toRedoCount > 0) { if(toRedoCount > 0) {
historyObj.redo() historyObj.redo(toRedoCount % 4 == 1) // Only redraw once every 4 changes.
toRedoCount--; toRedoCount--;
} else { } else {
running = false; running = false;

View file

@ -157,13 +157,27 @@ Canvas {
*/ */
property int drawMaxX: Math.ceil(Math.max(Math.abs(xmin), Math.abs(px2x(canvasSize.width)))/xaxisstep1) property int drawMaxX: Math.ceil(Math.max(Math.abs(xmin), Math.abs(px2x(canvasSize.width)))/xaxisstep1)
/*!
\qmlproperty var LogGraphCanvas::imageLoaders
Dictionary of format {image: [callback.image data]} containing data for defered image loading.
*/
property var imageLoaders: {}
/*!
\qmlproperty var LogGraphCanvas::ctx
Cache for the 2D context so that it may be used asynchronously.
*/
property var ctx
onPaint: { Component.onCompleted: imageLoaders = {}
onPaint: function(rect) {
//console.log('Redrawing') //console.log('Redrawing')
var ctx = getContext("2d"); if(rect.width == canvas.width) { // Redraw full canvas
ctx = getContext("2d");
reset(ctx) reset(ctx)
drawGrille(ctx) drawGrille(ctx)
drawAxises(ctx) drawAxises(ctx)
drawLabels(ctx)
ctx.lineWidth = linewidth ctx.lineWidth = linewidth
for(var objType in Objects.currentObjects) { for(var objType in Objects.currentObjects) {
for(var obj of Objects.currentObjects[objType]){ for(var obj of Objects.currentObjects[objType]){
@ -173,10 +187,18 @@ Canvas {
} }
} }
ctx.lineWidth = 1 ctx.lineWidth = 1
drawLabels(ctx) }
} }
onImageLoaded: {
Object.keys(imageLoaders).forEach((key) => {
if(isImageLoaded(key)) {
// Calling callback
imageLoaders[key][0](canvas, ctx, imageLoaders[key][1])
delete imageLoaders[key]
}
})
}
/*! /*!
\qmlmethod void LogGraphCanvas::reset(var ctx) \qmlmethod void LogGraphCanvas::reset(var ctx)
@ -186,7 +208,7 @@ Canvas {
// Reset // Reset
ctx.fillStyle = "#FFFFFF" ctx.fillStyle = "#FFFFFF"
ctx.strokeStyle = "#000000" ctx.strokeStyle = "#000000"
ctx.font = `${canvas.textsize-2}px sans-serif` ctx.font = `${canvas.textsize}px sans-serif`
ctx.fillRect(0,0,width,height) ctx.fillRect(0,0,width,height)
} }
@ -243,12 +265,12 @@ Canvas {
var axisxpx = y2px(0) // Y coordinate of X axis var axisxpx = y2px(0) // Y coordinate of X axis
// Labels // Labels
ctx.fillStyle = "#000000" ctx.fillStyle = "#000000"
ctx.font = `${canvas.textsize+2}px sans-serif` ctx.font = `${canvas.textsize}px sans-serif`
ctx.fillText(ylabel, axisypx+10, 24) ctx.fillText(ylabel, axisypx+10, 24)
var textSize = ctx.measureText(xlabel).width var textSize = ctx.measureText(xlabel).width
ctx.fillText(xlabel, canvasSize.width-14-textSize, axisxpx-5) ctx.fillText(xlabel, canvasSize.width-14-textSize, axisxpx-5)
// Axis graduation labels // Axis graduation labels
ctx.font = `${canvas.textsize-2}px sans-serif` ctx.font = `${canvas.textsize-4}px sans-serif`
var txtMinus = ctx.measureText('-').width var txtMinus = ctx.measureText('-').width
if(showxgrad) { if(showxgrad) {
@ -314,16 +336,30 @@ Canvas {
} }
} }
/*!
\qmlmethod void LogGraphCanvas::drawVisibleImage(var ctx, var image, double x, double y)
Draws an \c image onto the canvas using 2D \c ctx.
\note The \c x, \c y \c width and \c height properties here are relative to the canvas, not the plot.
*/
function drawVisibleImage(ctx, image, x, y, width, height) {
//console.log("Drawing image", isImageLoaded(image), isImageError(image))
markDirty(Qt.rect(x, y, width, height));
ctx.drawImage(image, x, y, width, height)
/*if(true || (x > 0 && x < canvasSize.width && y > 0 && y < canvasSize.height)) {
}*/
}
/*! /*!
\qmlmethod var LogGraphCanvas::measureText(var ctx, string text) \qmlmethod var LogGraphCanvas::measureText(var ctx, string text)
Measures the wicth and height of a multiline \c text that would be drawn onto the canvas using 2D \c ctx. Measures the wicth and height of a multiline \c text that would be drawn onto the canvas using 2D \c ctx.
Return format: dictionary {"width": width, "height": height} Return format: dictionary {"width": width, "height": height}
*/ */
function measureText(ctx, text) { function measureText(ctx, text) {
var theight = 0 let theight = 0
var twidth = 0 let twidth = 0
let defaultHeight = ctx.measureText("M").width // Approximate but good enough!
text.split("\n").forEach(function(txt, i){ text.split("\n").forEach(function(txt, i){
theight += canvas.textsize theight += defaultHeight
if(ctx.measureText(txt).width > twidth) twidth = ctx.measureText(txt).width if(ctx.measureText(txt).width > twidth) twidth = ctx.measureText(txt).width
}) })
return {'width': twidth, 'height': theight} return {'width': twidth, 'height': theight}
@ -415,4 +451,25 @@ Canvas {
} }
ctx.stroke(); ctx.stroke();
} }
/*!
\qmlmethod var LogGraphCanvas::renderLatexImage(string ltxText, color)
Renders latex markup \c ltxText to an image and loads it. Returns a dictionary with three values: source, width and height.
*/
function renderLatexImage(ltxText, color, callback) {
let [ltxSrc, ltxWidth, ltxHeight] = Latex.render(ltxText, textsize, color).split(",")
let imgData = {
"source": ltxSrc,
"width": parseFloat(ltxWidth),
"height": parseFloat(ltxHeight)
};
if(!isImageLoaded(ltxSrc) && !isImageLoading(ltxSrc)){
// Wait until the image is loaded to callback.
loadImage(ltxSrc)
imageLoaders[ltxSrc] = [callback, imgData]
} else {
// Callback directly
callback(canvas, ctx, imgData)
}
}
} }

View file

@ -18,6 +18,7 @@
import QtQuick 2.12 import QtQuick 2.12
import QtQuick.Controls 2.12 import QtQuick.Controls 2.12
import "../js/math/latex.js" as Latex
/*! /*!
\qmltype GreetScreen \qmltype GreetScreen
@ -101,7 +102,7 @@ Popup {
text: qsTr('Check for updates on startup (requires online connectivity)') text: qsTr('Check for updates on startup (requires online connectivity)')
onClicked: { onClicked: {
Helper.setSettingBool("check_for_updates", checked) Helper.setSettingBool("check_for_updates", checked)
checkForUpdatesMenuSetting.checked = checked //checkForUpdatesMenuSetting.checked = checked
} }
} }
@ -113,7 +114,20 @@ Popup {
text: qsTr('Reset redo stack when a new action is added to history') text: qsTr('Reset redo stack when a new action is added to history')
onClicked: { onClicked: {
Helper.setSettingBool("reset_redo_stack", checked) Helper.setSettingBool("reset_redo_stack", checked)
resetRedoStackMenuSetting.checked = checked //resetRedoStackMenuSetting.checked = checked
}
}
CheckBox {
id: enableLatexSetting
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: resetRedoStackSetting.bottom
checked: Helper.getSettingBool("enable_latex")
text: qsTr('Enable LaTeX rendering')
onClicked: {
Helper.setSettingBool("enable_latex", checked)
Latex.enabled = checked
drawCanvas.requestPaint()
} }
} }

View file

@ -0,0 +1,28 @@
/**
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and distribution functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
Image {
id: expr
property string expression
src: Latex.render(expression).split(',')[0]
}

View file

@ -1,3 +1,21 @@
/**
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and distribution functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import QtQuick 2.12 import QtQuick 2.12
import QtQuick.Controls 2.12 import QtQuick.Controls 2.12
import QtQml.Models 2.12 import QtQml.Models 2.12

View file

@ -83,7 +83,7 @@ Item {
id: iconLabel id: iconLabel
anchors.top: parent.top anchors.top: parent.top
anchors.topMargin: icon == "" ? 0 : 3 anchors.topMargin: icon == "" ? 0 : 3
source: control.visible ? "../icons/" + control.icon : "" source: control.visible && icon != "" ? "../icons/" + control.icon : ""
width: height width: height
height: icon == "" || !visible ? 0 : 24 height: icon == "" || !visible ? 0 : 24
color: sysPalette.windowText color: sysPalette.windowText

View file

@ -99,7 +99,7 @@ ScrollView {
Font size of the text that will be drawn into the canvas, provided from settings. Font size of the text that will be drawn into the canvas, provided from settings.
\sa Settings \sa Settings
*/ */
property double textsize: 14 property double textsize: 18
/*! /*!
\qmlproperty bool Settings::logscalex \qmlproperty bool Settings::logscalex
true if the canvas should be in logarithmic mode, false otherwise. true if the canvas should be in logarithmic mode, false otherwise.

View file

@ -152,10 +152,15 @@ class Domain {
* Represents an empty set. * Represents an empty set.
*/ */
class EmptySet extends Domain { class EmptySet extends Domain {
constructor() {
super()
this.displayName = "∅"
this.latexMarkup = "\\emptyset"
}
includes(x) { return false } includes(x) { return false }
toString() { return "∅" } toString() { return this.displayName }
union(domain) { return domain } union(domain) { return domain }
@ -177,6 +182,7 @@ class Range extends Domain {
this.openBegin = openBegin this.openBegin = openBegin
this.openEnd = openEnd this.openEnd = openEnd
this.displayName = (openBegin ? "]" : "[") + begin.toString() + ";" + end.toString() + (openEnd ? "[" : "]") this.displayName = (openBegin ? "]" : "[") + begin.toString() + ";" + end.toString() + (openEnd ? "[" : "]")
this.latexMarkup = `\\mathopen${openBegin ? "]" : "["}${this.begin.latexMarkup};${this.end.latexMarkup}\\mathclose${openEnd ? "[" : "]"}`
} }
includes(x) { includes(x) {
@ -292,6 +298,8 @@ class DomainSet extends SpecialDomain {
} }
this.executedValues.sort((a,b) => a-b) this.executedValues.sort((a,b) => a-b)
this.values = this.executedValues.map(val => newVals[val]) this.values = this.executedValues.map(val => newVals[val])
this.displayName = "{" + this.values.join(";") + "}"
this.latexMarkup = `\\{${this.values.join(";")}\\}`
} }
includes(x) { includes(x) {
@ -325,7 +333,7 @@ class DomainSet extends SpecialDomain {
} }
toString() { toString() {
return "{" + this.values.join(";") + "}" return this.displayName
} }
union(domain) { union(domain) {
@ -397,6 +405,8 @@ class UnionDomain extends Domain {
super() super()
this.dom1 = dom1 this.dom1 = dom1
this.dom2 = dom2 this.dom2 = dom2
this.displayName = this.dom1.toString() + " " + this.dom2.toString()
this.latexMarkup = `${dom1.latexMarkup}\\cup${dom2.latexMarkup}`
} }
includes(x) { includes(x) {
@ -404,7 +414,7 @@ class UnionDomain extends Domain {
} }
toString() { toString() {
return this.dom1.toString() + " " + this.dom2.toString() return this.displayName
} }
union(domain) { union(domain) {
@ -441,6 +451,8 @@ class IntersectionDomain extends Domain {
super() super()
this.dom1 = dom1 this.dom1 = dom1
this.dom2 = dom2 this.dom2 = dom2
this.displayName = dom1.toString() + " ∩ " + dom2.toString()
this.latexMarkup = `${dom1.latexMarkup}\\cap${dom2.latexMarkup}`
} }
includes(x) { includes(x) {
@ -448,7 +460,7 @@ class IntersectionDomain extends Domain {
} }
toString() { toString() {
return this.dom1.toString() + " ∩ " + this.dom2.toString() return this.displayName
} }
union(domain) { union(domain) {
@ -484,6 +496,8 @@ class MinusDomain extends Domain {
super() super()
this.dom1 = dom1 this.dom1 = dom1
this.dom2 = dom2 this.dom2 = dom2
this.displayName = dom1.toString() + "" + dom2.toString()
this.latexMarkup = `${dom1.latexMarkup}\\setminus${dom2.latexMarkup}`
} }
includes(x) { includes(x) {
@ -491,7 +505,7 @@ class MinusDomain extends Domain {
} }
toString() { toString() {
return this.dom1.toString() + "" + this.dom2.toString() return this.displayName
} }
static import(frm) { static import(frm) {
@ -505,33 +519,45 @@ class MinusDomain extends Domain {
Domain.RE = new MinusDomain("R", "{0}") Domain.RE = new MinusDomain("R", "{0}")
Domain.RE.displayName = "*" Domain.RE.displayName = "*"
Domain.RE.latexMarkup = "\\mathbb{R}^{*}"
Domain.R = new Range(-Infinity,Infinity,true,true) Domain.R = new Range(-Infinity,Infinity,true,true)
Domain.R.displayName = "" Domain.R.displayName = ""
Domain.R.latexMarkup = "\\mathbb{R}"
Domain.RP = new Range(0,Infinity,true,false) Domain.RP = new Range(0,Infinity,true,false)
Domain.RP.displayName = "ℝ⁺" Domain.RP.displayName = "ℝ⁺"
Domain.RP.latexMarkup = "\\mathbb{R}^{+}"
Domain.RM = new Range(-Infinity,0,true,false) Domain.RM = new Range(-Infinity,0,true,false)
Domain.RM.displayName = "ℝ⁻" Domain.RM.displayName = "ℝ⁻"
Domain.RM.latexMarkup = "\\mathbb{R}^{-}"
Domain.RPE = new Range(0,Infinity,true,true) Domain.RPE = new Range(0,Infinity,true,true)
Domain.RPE.displayName = "ℝ⁺*" Domain.RPE.displayName = "ℝ⁺*"
Domain.RPE.latexMarkup = "\\mathbb{R}^{+*}"
Domain.RME = new Range(-Infinity,0,true,true) Domain.RME = new Range(-Infinity,0,true,true)
Domain.RME.displayName = "ℝ⁻*" Domain.RME.displayName = "ℝ⁻*"
Domain.RME.latexMarkup = "\\mathbb{R}^{+*}"
Domain.N = new SpecialDomain('', x => x%1==0 && x >= 0, Domain.N = new SpecialDomain('', x => x%1==0 && x >= 0,
x => Math.max(Math.floor(x)+1, 0), x => Math.max(Math.floor(x)+1, 0),
x => Math.max(Math.ceil(x)-1, 0)) x => Math.max(Math.ceil(x)-1, 0))
Domain.N.latexMarkup = "\\mathbb{N}"
Domain.NE = new SpecialDomain('*', x => x%1==0 && x > 0, Domain.NE = new SpecialDomain('*', x => x%1==0 && x > 0,
x => Math.max(Math.floor(x)+1, 1), x => Math.max(Math.floor(x)+1, 1),
x => Math.max(Math.ceil(x)-1, 1)) x => Math.max(Math.ceil(x)-1, 1))
Domain.NE.latexMarkup = "\\mathbb{N}^{*}"
Domain.Z = new SpecialDomain('', x => x%1==0, x => Math.floor(x)+1, x => Math.ceil(x)-1) Domain.Z = new SpecialDomain('', x => x%1==0, x => Math.floor(x)+1, x => Math.ceil(x)-1)
Domain.Z.latexMarkup = "\\mathbb{Z}"
Domain.ZE = new SpecialDomain('*', x => x%1==0 && x != 0, Domain.ZE = new SpecialDomain('*', x => x%1==0 && x != 0,
x => Math.floor(x)+1 == 0 ? Math.floor(x)+2 : Math.floor(x)+1, x => Math.floor(x)+1 == 0 ? Math.floor(x)+2 : Math.floor(x)+1,
x => Math.ceil(x)-1 == 0 ? Math.ceil(x)-2 : Math.ceil(x)-1) x => Math.ceil(x)-1 == 0 ? Math.ceil(x)-2 : Math.ceil(x)-1)
Domain.ZE.latexMarkup = "\\mathbb{Z}^{*}"
Domain.ZM = new SpecialDomain('ℤ⁻', x => x%1==0 && x <= 0, Domain.ZM = new SpecialDomain('ℤ⁻', x => x%1==0 && x <= 0,
x => Math.min(Math.floor(x)+1, 0), x => Math.min(Math.floor(x)+1, 0),
x => Math.min(Math.ceil(x)-1, 0)) x => Math.min(Math.ceil(x)-1, 0))
Domain.ZM.latexMarkup = "\\mathbb{Z}^{-}"
Domain.ZME = new SpecialDomain('ℤ⁻*', x => x%1==0 && x < 0, Domain.ZME = new SpecialDomain('ℤ⁻*', x => x%1==0 && x < 0,
x => Math.min(Math.floor(x)+1, -1), x => Math.min(Math.floor(x)+1, -1),
x => Math.min(Math.ceil(x)-1, -1)) x => Math.min(Math.ceil(x)-1, -1))
Domain.ZME.latexMarkup = "\\mathbb{Z}^{-*}"
Domain.NLog = new SpecialDomain('ℕˡᵒᵍ', Domain.NLog = new SpecialDomain('ℕˡᵒᵍ',
x => x/Math.pow(10, x.toString().length-1) % 1 == 0 && x > 0, x => x/Math.pow(10, x.toString().length-1) % 1 == 0 && x > 0,
function(x) { function(x) {
@ -542,6 +568,7 @@ Domain.NLog = new SpecialDomain('ℕˡᵒᵍ',
var x10pow = Math.pow(10, x.toString().length-1) var x10pow = Math.pow(10, x.toString().length-1)
return Math.max(1, (Math.ceil(x/x10pow)-1)*x10pow) return Math.max(1, (Math.ceil(x/x10pow)-1)*x10pow)
}) })
Domain.NLog.latexMarkup = "\\mathbb{N}^{log}"
var refedDomains = [] var refedDomains = []

View file

@ -31,7 +31,7 @@ class Expression {
this.calc = C.parser.parse(expr).simplify() this.calc = C.parser.parse(expr).simplify()
this.cached = this.isConstant() this.cached = this.isConstant()
this.cachedValue = this.cached ? this.calc.evaluate(C.evalVariables) : null this.cachedValue = this.cached ? this.calc.evaluate(C.evalVariables) : null
this.latexMarkup = Latex.expressionToLatex(this.calc.tokens) this.latexMarkup = Latex.expression(this.calc.tokens)
} }
isConstant() { isConstant() {

View file

@ -20,6 +20,12 @@
.import "../expr-eval.js" as ExprEval .import "../expr-eval.js" as ExprEval
/**
* true if latex has been enabled by the user, false otherwise.
*/
var enabled = false
/** /**
* Puts element within parenthesis. * Puts element within parenthesis.
* *
@ -32,23 +38,99 @@ function par(elem) {
/** /**
* Checks if the element contains at least one of the elements of * Checks if the element contains at least one of the elements of
* the string array contents , and returns the parenthesis version if so. * the string array contents, but not at the first position of the string,
* and returns the parenthesis version if so.
* *
* @param {string} elem - element to put within parenthesis. * @param {string} elem - element to put within parenthesis.
* @param {Array} contents - Array of elements to put within parenthesis. * @param {Array} contents - Array of elements to put within parenthesis.
* @returns {string} * @returns {string}
*/ */
function parif(elem, contents) { function parif(elem, contents) {
return contents.some(x => elem.toString().includes(x)) ? par(elem) : elem elem = elem.toString()
if(elem[0] != "(" && elem[elem.length-1] != ")" && contents.some(x => elem.indexOf(x) > 0))
return par(elem)
if(elem[0] == "(" && elem[elem.length-1] == ")")
return elem.substr(1, elem.length-2)
return elem
}
/**
* Creates a latex expression for a function.
*
* @param {string} f - Function to convert
* @param {Array} args - Arguments of the function
* @returns {string}
*/
function functionToLatex(f, args) {
switch(f) {
case "derivative":
return '\\frac{d' + args[0].substr(1, args[0].length-2).replace(new RegExp(args[1].substr(1, args[1].length-2), 'g'), 'x') + '}{dx}';
break;
case "integral":
return '\\int\\limits_{' + args[0] + '}^{' + args[1] + '}' + args[2].substr(1, args[2].length-2) + ' d' + args[3].substr(1, args[3].length-2);
break;
case "sqrt":
return '\\sqrt\\left(' + args.join(', ') + '\\right)';
break;
case "abs":
return '\\left|' + args.join(', ') + '\\right|';
break;
case "floor":
return '\\left\\lfloor' + args.join(', ') + '\\right\\rfloor';
break;
case "ceil":
return '\\left\\lceil' + args.join(', ') + '\\right\\rceil';
break;
default:
return '\\mathrm{' + f + '}\\left(' + args.join(', ') + '\\right)';
break;
}
}
/**
* Creates a latex variable from a variable.
*
* @param {string} vari - variable to convert
* @returns {string}
*/
function variable(vari) {
let unicodechars = ["α","β","γ","δ","ε","ζ","η",
"π","θ","κ","λ","μ","ξ","ρ",
"ς","σ","τ","φ","χ","ψ","ω",
"Γ","Δ","Θ","Λ","Ξ","Π","Σ",
"Φ","Ψ","Ω","ₐ","ₑ","ₒ","ₓ",
"ₕ","ₖ","ₗ","ₘ","ₙ","ₚ","ₛ",
"ₜ","¹","²","³","⁴","⁵","⁶",
"⁷","⁸","⁹","⁰","₁","₂","₃",
"₄","₅","₆","₇","₈","₉","₀",
"pi"]
let equivalchars = ["\\alpha","\\beta","\\gamma","\\delta","\\epsilon","\\zeta","\\eta",
"\\pi","\\theta","\\kappa","\\lambda","\\mu","\\xi","\\rho",
"\\sigma","\\sigma","\\tau","\\phi","\\chi","\\psi","\\omega",
"\\Gamma","\\Delta","\\Theta","\\Lambda","\\Xi","\\Pi","\\Sigma",
"\\Phy","\\Psi","\\Omega","{}_{a}","{}_{e}","{}_{o}","{}_{x}",
"{}_{h}","{}_{k}","{}_{l}","{}_{m}","{}_{n}","{}_{p}","{}_{s}",
"{}_{t}","{}^{1}","{}^{2}","{}^{3}","{}^{4}","{}^{5}","{}^{6}",
"{}^{7}","{}^{8}","{}^{9}","{}^{0}","{}_{1}","{}_{2}","{}_{3}",
"{}_{4}","{}_{5}","{}_{6}","{}_{7}","{}_{8}","{}_{9}","{}_{0}",
"\\pi"]
for(let i = 0; i < unicodechars.length; i++) {
//console.log(vari, unicodechars[i], equivalchars[i]);
if(vari.includes(unicodechars[i]))
vari = vari.replace(new RegExp(unicodechars[i], 'g'), equivalchars[i])
}
return vari;
} }
/** /**
* This function converts expr-eval tokens to a latex string. * Converts expr-eval tokens to a latex string.
* *
* @param {Array} tokens - expr-eval tokens list * @param {Array} tokens - expr-eval tokens list
* @returns {string} * @returns {string}
*/ */
function expressionToLatex(tokens) { function expression(tokens) {
var nstack = []; var nstack = [];
var n1, n2, n3; var n1, n2, n3;
var f, args, argCount; var f, args, argCount;
@ -73,7 +155,7 @@ function expressionToLatex(tokens) {
switch(f) { switch(f) {
case '-': case '-':
case '+': case '+':
nstack.push(n1 + this.ope + n2); nstack.push(n1 + f + n2);
break; break;
case '||': case '||':
case 'or': case 'or':
@ -81,9 +163,12 @@ function expressionToLatex(tokens) {
case 'and': case 'and':
case '==': case '==':
case '!=': case '!=':
nstack.push(par(n1) + this.ope + par(n2)); nstack.push(par(n1) + f + par(n2));
break; break;
case '*': case '*':
if(n2 == "\\pi" || n2 == "e" || n2 == "x" || n2 == "n")
nstack.push(parif(n1,['+','-']) + n2)
else
nstack.push(parif(n1,['+','-']) + " \\times " + parif(n2,['+','-'])); nstack.push(parif(n1,['+','-']) + " \\times " + parif(n2,['+','-']));
break; break;
case '/': case '/':
@ -115,10 +200,7 @@ function expressionToLatex(tokens) {
break; break;
case ExprEval.IVAR: case ExprEval.IVAR:
case ExprEval.IVARNAME: case ExprEval.IVARNAME:
if(item.value == "pi") nstack.push(variable(item.value.toString()));
nstack.push("π")
else
nstack.push(item.value);
break; break;
case ExprEval.IOP1: // Unary operator case ExprEval.IOP1: // Unary operator
n1 = nstack.pop(); n1 = nstack.pop();
@ -144,20 +226,7 @@ function expressionToLatex(tokens) {
} }
f = nstack.pop(); f = nstack.pop();
// Handling various functions // Handling various functions
if(f == "derivative") nstack.push(functionToLatex(f, args))
nstack.push('\\frac{d' + args[0].substr(1, args[0].length-2).replace(new RegExp(by, 'g'), 'x') + '}{dx}');
else if(f == "integral")
nstack.push('\\int\\limits^{' + args[0] + '}_{' + args[1] + '}' + args[2].substr(1, args[2].length-2) + ' d' + args[3]);
else if(f == "sqrt")
nstack.push('\\sqrt\\left(' + args.join(', ') + '\\right)');
else if(f == "abs")
nstack.push('\\left|' + args.join(', ') + '\\right|');
else if(f == "floor")
nstack.push('\\left\\lfloor' + args.join(', ') + '\\right\\rfloor');
else if(f == "ceil")
nstack.push('\\left\\lceil' + args.join(', ') + '\\right\\rceil');
else
nstack.push('\\mathrm{' + f + '}\\left(' + args.join(', ') + '\\right)');
break; break;
case ExprEval.IFUNDEF: case ExprEval.IFUNDEF:
nstack.push(par(n1 + '(' + args.join(', ') + ') = ' + n2)); nstack.push(par(n1 + '(' + args.join(', ') + ') = ' + n2));
@ -175,7 +244,7 @@ function expressionToLatex(tokens) {
nstack.push('[' + args.join(', ') + ']'); nstack.push('[' + args.join(', ') + ']');
break; break;
case ExprEval.IEXPR: case ExprEval.IEXPR:
nstack.push('(' + expressionToLatex(item.value) + ')'); nstack.push('(' + expression(item.value) + ')');
break; break;
case ExprEval.IENDSTATEMENT: case ExprEval.IENDSTATEMENT:
break; break;
@ -185,11 +254,7 @@ function expressionToLatex(tokens) {
} }
} }
if (nstack.length > 1) { if (nstack.length > 1) {
if (toJS) { nstack = [ nstack.join(';') ]
nstack = [ nstack.join(',') ];
} else {
nstack = [ nstack.join(';') ];
}
} }
return String(nstack[0]); return String(nstack[0]);
} }

View file

@ -21,6 +21,8 @@
.import "common.js" as C .import "common.js" as C
.import "expression.js" as Expr .import "expression.js" as Expr
.import "../utils.js" as Utils .import "../utils.js" as Utils
.import "../math/latex.js" as Latex
/** /**
* Represents mathematical object for sequences. * Represents mathematical object for sequences.
@ -32,9 +34,13 @@ class Sequence extends Expr.Expression {
this.name = name this.name = name
this.baseValues = baseValues this.baseValues = baseValues
this.calcValues = Object.assign({}, baseValues) this.calcValues = Object.assign({}, baseValues)
this.latexValues = Object.assign({}, baseValues)
for(var n in this.calcValues) for(var n in this.calcValues)
if(['string', 'number'].includes(typeof this.calcValues[n])) if(['string', 'number'].includes(typeof this.calcValues[n])) {
this.calcValues[n] = parser.parse(this.calcValues[n].toString()).simplify().evaluate(C.evalVariables) let parsed = C.parser.parse(this.calcValues[n].toString()).simplify()
this.latexValues[n] = Latex.expression(parsed.tokens)
this.calcValues[n] = parsed.evaluate(C.evalVariables)
}
this.valuePlus = parseInt(valuePlus) this.valuePlus = parseInt(valuePlus)
} }
@ -58,11 +64,11 @@ class Sequence extends Expr.Expression {
cache(n = 1) { cache(n = 1) {
var str = Utils.simplifyExpression(this.calc.substitute('n', n-this.valuePlus).toString()) var str = Utils.simplifyExpression(this.calc.substitute('n', n-this.valuePlus).toString())
var expr = parser.parse(str).simplify() var expr = C.parser.parse(str).simplify()
var l = {'n': n-this.valuePlus} // Just in case, add n (for custom functions) var l = {'n': n-this.valuePlus} // Just in case, add n (for custom functions)
l[this.name] = this.calcValues l[this.name] = this.calcValues
currentVars = Object.assign(l, C.evalVariables) C.currentVars = Object.assign(l, C.evalVariables)
this.calcValues[n] = expr.evaluate(currentVars) this.calcValues[n] = expr.evaluate(C.currentVars)
} }
toString(forceSign=false) { toString(forceSign=false) {
@ -75,4 +81,15 @@ class Sequence extends Expr.Expression {
).join('; ') ).join('; ')
return ret return ret
} }
toLatexString(forceSign=false) {
var str = this.latexMarkup
if(str[0] != '-' && forceSign) str = '+' + str
var subtxt = '_{n' + (this.valuePlus == 0 ? '' : '+' + this.valuePlus) + '}'
var ret = `\\begin{array}{l}${Latex.variable(this.name)}${subtxt} = ${str}${this.latexValues.length == 0 ? '' : "\n"}\\\\`
ret += Object.keys(this.latexValues).map(
n => `${this.name}_{${n}} = ${this.latexValues[n]}`
).join('; ') + "\\end{array}"
return ret
}
} }

View file

@ -20,10 +20,16 @@
.import "../utils.js" as Utils .import "../utils.js" as Utils
.import "../objects.js" as Objects .import "../objects.js" as Objects
.import "../math/latex.js" as Latex
// This file contains the default data to be imported from all other objects // This file contains the default data to be imported from all other objects
/**
* Creates a new name for an object, based on the \c allowedLetters.
* If variables with each of the allowedLetters is created, a subscript
* number is added to the name.
* @return {string} New unused name for a new object.
*/
function getNewName(allowedLetters) { function getNewName(allowedLetters) {
// Allows to get a new name, based on the allowed letters, // Allows to get a new name, based on the allowed letters,
// as well as adding a sub number when needs be. // as well as adding a sub number when needs be.
@ -38,33 +44,70 @@ function getNewName(allowedLetters) {
return ret return ret
} }
/**
* Class to extend for every type of object that
* can be drawn on the canvas.
*/
class DrawableObject { class DrawableObject {
// Class to extend for every type of object that /**
// can be drawn on the canvas. * Base name of the object. Needs to be constant over time.
* @return {string} Type of the object.
// Base name of the object. Needs to be constant over time. */
static type(){return 'Unknown'} static type(){return 'Unknown'}
// (Potentially translated) name of the object to be shown to the user. /**
* Translated name of the object to be shown to the user.
* @return {string}
*/
static displayType(){return 'Unknown'} static displayType(){return 'Unknown'}
// Label used for the list on the ObjectsList sidebar. /**
* Translated name of the object in plural form to be shown to the user.
* @return {string}
*/
static displayTypeMultiple(){return 'Unknowns'} static displayTypeMultiple(){return 'Unknowns'}
// Whether this object can be created by the user /**
// or are instantiated by other objects. * True if this object can be created by the user, false if it can only
* be instantiated by other objects
* @return {bool}
*/
static createable() {return true} static createable() {return true}
// Properties are set with key as property name and
// value as it's type name (e.g 'Expression', 'string'...), /**
// an Enum for enumerations, an ObjectType for DrawableObjects * List of properties used in the Object Editor.
// with a specific type, a List instance for lists, a *
// Dictionary instance for dictionaries... * Properties are set with key as property name and
// Used for property modifier in the sidebar. * value as it's type name (e.g 'Expression', 'string'...),
* an Enum for enumerations, an ObjectType for DrawableObjects
* with a specific type, a List instance for lists, a
* Dictionary instance for dictionaries...
*
* If the property is to be translated, the key should be passed
* through the QT_TRANSLATE_NOOP macro in that form:
* [QT_TRANSLATE_NOOP('prop','key')]
* Enums that are translated should be indexed in parameters.js and
* then be linked directly here.
*
* @return {Dictionary}
*/
static properties() {return {}} static properties() {return {}}
// Whether the object can be executed (instance of ExecutableObject) /**
* True if this object can be executed, so that an y value might be computed
* for an x value. Only ExecutableObjects have that property set to true.
* @return {bool}
*/
static executable() {return false} static executable() {return false}
/**
* Base constructor for the object.
* @param {string} name - Name of the object
* @param {bool} visible - true if the object is visible, false otherwise.
* @param {color} color - Color of the object (can be string or QColor)
* @param {Enum} labelContent - One of 'null', 'name' or 'name + value' describing the content of the label.
* @constructor()
*/
constructor(name, visible = true, color = null, labelContent = 'name + value') { constructor(name, visible = true, color = null, labelContent = 'name + value') {
if(color == null) color = Utils.getRandomColor() if(color == null) color = Utils.getRandomColor()
this.type = 'Unknown' this.type = 'Unknown'
@ -75,15 +118,40 @@ class DrawableObject {
this.requiredBy = [] this.requiredBy = []
} }
/**
* Serilizes the object in an array that can be JSON serialized.
* These parameters will be re-entered in the constructor when restored.
* @return {array}
*/
export() { export() {
// Should return what will be inputed as arguments when a file is loaded (serializable form) // Should return what will be inputed as arguments when a file is loaded (serializable form)
return [this.name, this.visible, this.color.toString(), this.labelContent] return [this.name, this.visible, this.color.toString(), this.labelContent]
} }
/**
* String representing the object that will be displayed to the user.
* It allows for 2 lines and translated text, but it shouldn't be too long.
* @return {string}
*/
getReadableString() { getReadableString() {
return `${this.name} = Unknown` return `${this.name} = Unknown`
} }
/**
* Latex markuped version of the readable string.
* Every non latin character should be passed as latex symbols and formulas
* should be in latex form.
* See ../latex.js for helper methods.
* @return {string}
*/
getLatexString() {
return this.getReadableString()
}
/**
* Readable string content of the label depending on the value of the \c latexContent.
* @return {string}
*/
getLabel() { getLabel() {
switch(this.labelContent) { switch(this.labelContent) {
case 'name': case 'name':
@ -96,12 +164,37 @@ class DrawableObject {
} }
} }
/**
* Latex markup string content of the label depending on the value of the \c latexContent.
* Every non latin character should be passed as latex symbols and formulas
* should be in latex form.
* See ../latex.js for helper methods.
* @return {string}
*/
getLatexLabel() {
switch(this.labelContent) {
case 'name':
return Latex.variable(this.name)
case 'name + value':
return this.getLatexString()
case 'null':
return ''
}
}
/**
* Callback method when one of the properties of the object is updated.
*/
update() { update() {
for(var req of this.requiredBy) { for(var req of this.requiredBy) {
req.update() req.update()
} }
} }
/**
* Callback method when the object is about to get deleted.
*/
delete() { delete() {
for(var toRemove of this.requiredBy) { for(var toRemove of this.requiredBy) {
toRemove.delete() toRemove.delete()
@ -109,28 +202,166 @@ class DrawableObject {
} }
} }
/**
* Abstract method. Draw the object onto the \c canvas with the 2D context \c ctx.
* @param {Canvas} canvas
* @param {Context2D} ctx
*/
draw(canvas, ctx) {} draw(canvas, ctx) {}
/**
* Applicates a \c drawFunction with two position arguments depending on
* both the \c posX and \c posY of where the label should be displayed,
* and the \c labelPosition which declares the label should be displayed
* relatively to that position.
*
* @param {string|Enum} labelPosition - Position of the label relative to the marked position
* @param {number} offset - Margin between the position and the object to be drawn
* @param {Dictionary} size - Size of the label item, containing two properties, "width" and "height"
* @param {number} posX - Component of the marked position on the x-axis
* @param {number} posY - Component of the marked position on the y-axis
* @param {function} drawFunction - Function with two arguments (x, y) that will be called to draw the label
*/
drawPositionDivergence(labelPosition, offset, size, posX, posY, drawFunction) {
switch(labelPosition) {
case 'center':
drawFunction(posX-size.width/2, posY-size.height/2)
break;
case 'top':
case 'above':
drawFunction(posX-size.width/2, posY-size.height-offset)
break;
case 'bottom':
case 'below':
drawFunction(posX-size.width/2, posY+offset)
break;
case 'left':
drawFunction(posX-size.width-offset, posY-size.height/2)
break;
case 'right':
drawFunction(posX+offset, posY-size.height/2)
break;
case 'top-left':
case 'above-left':
drawFunction(posX-size.width, posY-size.height-offset)
break;
case 'top-right':
case 'above-right':
drawFunction(posX+offset, posY-size.height-offset)
break;
case 'bottom-left':
case 'below-left':
drawFunction(posX-size.width-offset, posY+offset)
break;
case 'bottom-right':
case 'below-right':
drawFunction(posX+offset, posY+offset)
break;
}
}
/**
* Automaticly draw text (by default the label of the object on the \c canvas with
* the 2D context \c ctx depending on user settings.
* This method takes into account both the \c posX and \c posY of where the label
* should be displayed, including the \c labelPosition relative to it.
* The text is get both through the \c getLatexFunction and \c getTextFunction
* depending on whether to use latex.
* Then, it's displayed using the \c drawFunctionLatex (x,y,imageData) and
* \c drawFunctionText (x,y,text) depending on whether to use latex.
*
* @param {Canvas} canvas
* @param {Context2D} ctx
* @param {string|Enum} labelPosition - Position of the label relative to the marked position
* @param {number} posX - Component of the marked position on the x-axis
* @param {number} posY - Component of the marked position on the y-axis
* @param {bool} forceText - Force the rendering of the label as text
* @param {function|null} getLatexFunction - Function (no argument) to get the latex markup to be displayed
* @param {function|null} getTextFunction - Function (no argument) to get the text to be displayed
* @param {function|null} drawFunctionLatex - Function (x,y,imageData) to display the latex image
* @param {function|null} drawFunctionText - Function (x,y,text,textSize) to display the text
*/
drawLabel(canvas, ctx, labelPosition, posX, posY, forceText = false,
getLatexFunction = null, getTextFunction = null, drawFunctionLatex = null, drawFunctionText = null) {
// Default functions
if(getLatexFunction == null)
getLatexFunction = this.getLatexLabel.bind(this)
if(getTextFunction == null)
getTextFunction = this.getLabel.bind(this)
if(drawFunctionLatex == null)
drawFunctionLatex = (x,y,ltxImg) => canvas.drawVisibleImage(ctx, ltxImg.source, x, y, ltxImg.width, ltxImg.height)
if(drawFunctionText == null)
drawFunctionText = (x,y,text,textSize) => canvas.drawVisibleText(ctx, text, x, y+textSize.height) // Positioned from left bottom
// Drawing the label
let offset
if(!forceText && Latex.enabled) { // TODO: Check for user setting with Latex.
// With latex
let drawLblCb = function(canvas, ctx, ltxImg) {
this.drawPositionDivergence(labelPosition, 8+ctx.lineWidth/2, ltxImg, posX, posY, (x,y) => drawFunctionLatex(x,y,ltxImg))
}
let ltxLabel = getLatexFunction();
if(ltxLabel != "")
canvas.renderLatexImage(ltxLabel, this.color, drawLblCb.bind(this))
} else {
// Without latex
let text = getTextFunction()
ctx.font = `${canvas.textsize}px sans-serif`
let textSize = canvas.measureText(ctx, text)
this.drawPositionDivergence(labelPosition, 8+ctx.lineWidth/2, textSize, posX, posY, (x,y) => drawFunctionText(x,y,text,textSize))
}
}
toString() { toString() {
return this.name; return this.name;
} }
} }
/**
* Class to be extended for every object on which
* an y for a x can be computed with the execute function.
* If a value cannot be found during execute, it will
* return null. However, theses same x values will
* return false when passed to canExecute.
*/
class ExecutableObject extends DrawableObject { class ExecutableObject extends DrawableObject {
// Class to be extended for every class upon which we /**
// calculate an y for a x with the execute function. * Returns the corresponding y value for an x value.
// If a value cannot be found during execute, it should * If the object isn't defined on the given x, then
// return null. However, theses values should * this function will return null.
// return false when passed to canExecute. *
* @param {number} x
* @returns {number|null}
*/
execute(x = 1) {return 0} execute(x = 1) {return 0}
/**
* Returns false if the object isn't defined on the given x, true otherwise.
*
* @param {number} x
* @returns {bool}
*/
canExecute(x = 1) {return true} canExecute(x = 1) {return true}
// Simplify returns the simplified string of the expression. /**
* Returns the simplified expression string for a given x.
*
* @param {number} x
* @returns {bool}
*/
simplify(x = 1) {return '0'} simplify(x = 1) {return '0'}
// Whether the object can be executed (instance of ExecutableObject)
/**
* True if this object can be executed, so that an y value might be computed
* for an x value. Only ExecutableObjects have that property set to true.
* @return {bool}
*/
static executable() {return true} static executable() {return true}
} }
/**
* Registers the object \c obj in the object list.
* @param {DrawableObject} obj - Object to be registered.
*/
function registerObject(obj) { function registerObject(obj) {
// Registers an object to be used in LogarithmPlotter. // Registers an object to be used in LogarithmPlotter.
// This function is called from autoload.js // This function is called from autoload.js

View file

@ -22,24 +22,13 @@
.import "../utils.js" as Utils .import "../utils.js" as Utils
.import "../mathlib.js" as MathLib .import "../mathlib.js" as MathLib
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class Function extends Common.ExecutableObject { class Function extends Common.ExecutableObject {
static type(){return 'Function'} static type(){return 'Function'}
static displayType(){return qsTr('Function')} static displayType(){return qsTr('Function')}
static displayTypeMultiple(){return qsTr('Functions')} static displayTypeMultiple(){return qsTr('Functions')}
/*static properties() {return {
'expression': 'Expression',
'definitionDomain': 'Domain',
'destinationDomain': 'Domain',
'comment1': 'Ex: R+* (ℝ⁺*), N (), Z-* (ℤ⁻*), ]0;1[, {3;4;5}',
'labelPosition': P.Enum.Position,
'displayMode': new P.Enum('application', 'function'),
'labelX': 'number',
'comment2': 'The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)',
'drawPoints': 'boolean',
'drawDashedLines': 'boolean'
}}*/
static properties() {return { static properties() {return {
[QT_TRANSLATE_NOOP('prop','expression')]: 'Expression', [QT_TRANSLATE_NOOP('prop','expression')]: 'Expression',
[QT_TRANSLATE_NOOP('prop','definitionDomain')]: 'Domain', [QT_TRANSLATE_NOOP('prop','definitionDomain')]: 'Domain',
@ -87,6 +76,15 @@ class Function extends Common.ExecutableObject {
} }
} }
getLatexString() {
if(this.displayMode == 'application') {
return `${Latex.variable(this.name)}:\\begin{array}{llll}${this.definitionDomain.latexMarkup}\\textrm{ } & \\rightarrow & \\textrm{ }${this.destinationDomain.latexMarkup}\\\\
x\\textrm{ } & \\mapsto & \\textrm{ }${this.expression.latexMarkup}\\end{array}`
} else {
return `\\begin{array}{l}${Latex.variable(this.name)}(x) = ${this.expression.latexMarkup}\\\\ D_{${this.name}} = ${this.definitionDomain.latexMarkup}\\end{array}`
}
}
export() { export() {
return [this.name, this.visible, this.color.toString(), this.labelContent, return [this.name, this.visible, this.color.toString(), this.labelContent,
this.expression.toEditableString(), this.definitionDomain.toString(), this.destinationDomain.toString(), this.expression.toEditableString(), this.definitionDomain.toString(), this.destinationDomain.toString(),
@ -112,43 +110,13 @@ class Function extends Common.ExecutableObject {
draw(canvas, ctx) { draw(canvas, ctx) {
Function.drawFunction(canvas, ctx, this.expression, this.definitionDomain, this.destinationDomain, this.drawPoints, this.drawDashedLines) Function.drawFunction(canvas, ctx, this.expression, this.definitionDomain, this.destinationDomain, this.drawPoints, this.drawDashedLines)
// Label // Label
var text = this.getLabel() this.drawLabel(canvas, ctx, this.labelPosition, canvas.x2px(this.labelX), canvas.y2px(this.execute(this.labelX)))
ctx.font = `${canvas.textsize}px sans-serif`
var textSize = canvas.measureText(ctx, text)
var posX = canvas.x2px(this.labelX)
var posY = canvas.y2px(this.execute(this.labelX))
switch(this.labelPosition) {
case 'above':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY-textSize.height)
break;
case 'below':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY+textSize.height)
break;
case 'left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height/2)
break;
case 'right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height/2)
break;
case 'above-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height)
break;
case 'above-right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height)
break;
case 'below-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY+textSize.height)
break;
case 'below-right':
canvas.drawVisibleText(ctx, text, posX, posY+textSize.height)
break;
}
} }
static drawFunction(canvas, ctx, expr, definitionDomain, destinationDomain, drawPoints = true, drawDash = true) { static drawFunction(canvas, ctx, expr, definitionDomain, destinationDomain, drawPoints = true, drawDash = true) {
// Reusable in other objects. // Reusable in other objects.
// Drawing small traits every 2px // Drawing small traits every 0.2px
var pxprecision = 0.2 var pxprecision = 1
var previousX = canvas.px2x(0) var previousX = canvas.px2x(0)
var previousY; var previousY;
if(definitionDomain instanceof MathLib.SpecialDomain && definitionDomain.moveSupported) { if(definitionDomain instanceof MathLib.SpecialDomain && definitionDomain.moveSupported) {

View file

@ -25,19 +25,13 @@
.import "../mathlib.js" as MathLib .import "../mathlib.js" as MathLib
.import "../historylib.js" as HistoryLib .import "../historylib.js" as HistoryLib
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class GainBode extends Common.ExecutableObject { class GainBode extends Common.ExecutableObject {
static type(){return 'Gain Bode'} static type(){return 'Gain Bode'}
static displayType(){return qsTr('Bode Magnitude')} static displayType(){return qsTr('Bode Magnitude')}
static displayTypeMultiple(){return qsTr('Bode Magnitudes')} static displayTypeMultiple(){return qsTr('Bode Magnitudes')}
/*static properties() {return {
'om_0': new P.ObjectType('Point'),
'pass': new P.Enum('high', 'low'),
'gain': 'Expression',
'labelPosition': new P.Enum('above', 'below', 'left', 'right', 'above-left', 'above-right', 'below-left', 'below-right'),
'labelX': 'number',
'omGraduation': 'boolean'
}}*/
static properties() {return { static properties() {return {
[QT_TRANSLATE_NOOP('prop','om_0')]: new P.ObjectType('Point'), [QT_TRANSLATE_NOOP('prop','om_0')]: new P.ObjectType('Point'),
[QT_TRANSLATE_NOOP('prop','pass')]: P.Enum.BodePass, [QT_TRANSLATE_NOOP('prop','pass')]: P.Enum.BodePass,
@ -81,6 +75,14 @@ class GainBode extends Common.ExecutableObject {
return `${this.name}: ${pass}; ${this.om_0.name} = ${this.om_0.x}\n ${' '.repeat(this.name.length)}${this.gain.toString(true)} dB/dec` return `${this.name}: ${pass}; ${this.om_0.name} = ${this.om_0.x}\n ${' '.repeat(this.name.length)}${this.gain.toString(true)} dB/dec`
} }
getLatexString() {
let pass = this.pass == "low" ? qsTr("low-pass") : qsTr("high-pass");
return `\\mathrm{${Latex.variable(this.name)}:}\\begin{array}{l}
\\textsf{${pass}};${Latex.variable(this.om_0.name)} = ${this.om_0.x.latexMarkup} \\\\
${this.gain.latexMarkup}\\textsf{ dB/dec}
\\end{array}`
}
export() { export() {
return [this.name, this.visible, this.color.toString(), this.labelContent, return [this.name, this.visible, this.color.toString(), this.labelContent,
this.om_0.name, this.pass.toString(), this.gain.toEditableString(), this.labelPosition, this.labelX, this.omGraduation] this.om_0.name, this.pass.toString(), this.gain.toEditableString(), this.labelPosition, this.labelX, this.omGraduation]
@ -131,38 +133,9 @@ class GainBode extends Common.ExecutableObject {
var dashPxSize = 10 var dashPxSize = 10
for(var i = 0; i < canvas.canvasSize.height && this.omGraduation; i += dashPxSize*2) for(var i = 0; i < canvas.canvasSize.height && this.omGraduation; i += dashPxSize*2)
canvas.drawLine(ctx, xpos, i, xpos, i+dashPxSize) canvas.drawLine(ctx, xpos, i, xpos, i+dashPxSize)
// Label // Label
var text = this.getLabel() this.drawLabel(canvas, ctx, this.labelPosition, canvas.x2px(this.labelX), canvas.y2px(this.execute(this.labelX)))
ctx.font = `${canvas.textsize}px sans-serif`
var textSize = canvas.measureText(ctx, text)
var posX = canvas.x2px(this.labelX)
var posY = canvas.y2px(this.execute(this.labelX))
switch(this.labelPosition) {
case 'above':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY-textSize.height)
break;
case 'below':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY+textSize.height)
break;
case 'left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height/2)
break;
case 'right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height/2)
break;
case 'above-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height)
break;
case 'above-right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height)
break;
case 'below-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY+textSize.height)
break;
case 'below-right':
canvas.drawVisibleText(ctx, text, posX, posY+textSize.height)
break;
}
} }
update() { update() {

View file

@ -23,19 +23,13 @@
.import "../mathlib.js" as MathLib .import "../mathlib.js" as MathLib
.import "../historylib.js" as HistoryLib .import "../historylib.js" as HistoryLib
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class PhaseBode extends Common.ExecutableObject { class PhaseBode extends Common.ExecutableObject {
static type(){return 'Phase Bode'} static type(){return 'Phase Bode'}
static displayType(){return qsTr('Bode Phase')} static displayType(){return qsTr('Bode Phase')}
static displayTypeMultiple(){return qsTr('Bode Phases')} static displayTypeMultiple(){return qsTr('Bode Phases')}
/*static properties() {return {
'om_0': new P.ObjectType('Point'),
'phase': 'Expression',
'unit': new P.Enum('°', 'deg', 'rad'),
'labelPosition': new P.Enum('above', 'below', 'left', 'right', 'above-left', 'above-right', 'below-left', 'below-right'),
'labelX': 'number'
}}*/
static properties() {return { static properties() {return {
[QT_TRANSLATE_NOOP('prop','om_0')]: new P.ObjectType('Point'), [QT_TRANSLATE_NOOP('prop','om_0')]: new P.ObjectType('Point'),
[QT_TRANSLATE_NOOP('prop','phase')]: 'Expression', [QT_TRANSLATE_NOOP('prop','phase')]: 'Expression',
@ -61,7 +55,7 @@ class PhaseBode extends Common.ExecutableObject {
om_0.name = Common.getNewName('ω') om_0.name = Common.getNewName('ω')
om_0.color = this.color om_0.color = this.color
om_0.labelContent = 'name' om_0.labelContent = 'name'
om_0.labelPosition = this.phase.execute() >= 0 ? 'bottom' : 'top' om_0.labelPosition = this.phase.execute() >= 0 ? 'above' : 'below'
HistoryLib.history.addToHistory(new HistoryLib.CreateNewObject(om_0.name, 'Point', om_0.export())) HistoryLib.history.addToHistory(new HistoryLib.CreateNewObject(om_0.name, 'Point', om_0.export()))
labelPosition = 'below' labelPosition = 'below'
} }
@ -82,6 +76,10 @@ class PhaseBode extends Common.ExecutableObject {
return `${this.name}: ${this.phase.toString(true)}${this.unit} at ${this.om_0.name} = ${this.om_0.x}` return `${this.name}: ${this.phase.toString(true)}${this.unit} at ${this.om_0.name} = ${this.om_0.x}`
} }
getLatexString() {
return `${Latex.variable(this.name)}: ${this.phase.latexMarkup}\\textsf{${this.unit} at }${Latex.variable(this.om_0.name)} = ${this.om_0.x.latexMarkup}`
}
execute(x=1) { execute(x=1) {
if(typeof x == 'string') x = MathLib.executeExpression(x) if(typeof x == 'string') x = MathLib.executeExpression(x)
if(x < this.om_0.x) { if(x < this.om_0.x) {
@ -120,37 +118,7 @@ class PhaseBode extends Common.ExecutableObject {
canvas.drawLine(ctx, Math.max(0, baseX), augmtY, canvas.canvasSize.width, augmtY) canvas.drawLine(ctx, Math.max(0, baseX), augmtY, canvas.canvasSize.width, augmtY)
// Label // Label
var text = this.getLabel() this.drawLabel(canvas, ctx, this.labelPosition, canvas.x2px(this.labelX), canvas.y2px(this.execute(this.labelX)))
ctx.font = `${canvas.textsize}px sans-serif`
var textSize = canvas.measureText(ctx, text)
var posX = canvas.x2px(this.labelX)
var posY = canvas.y2px(this.execute(this.labelX))
switch(this.labelPosition) {
case 'above':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY-textSize.height)
break;
case 'below':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY+textSize.height)
break;
case 'left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height/2)
break;
case 'right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height/2)
break;
case 'above-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height)
break;
case 'above-right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height)
break;
case 'below-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY+textSize.height)
break;
case 'below-right':
canvas.drawVisibleText(ctx, text, posX, posY+textSize.height)
break;
}
} }
update() { update() {

View file

@ -21,6 +21,7 @@
.import "common.js" as Common .import "common.js" as Common
.import "../mathlib.js" as MathLib .import "../mathlib.js" as MathLib
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class Point extends Common.DrawableObject { class Point extends Common.DrawableObject {
@ -28,12 +29,6 @@ class Point extends Common.DrawableObject {
static displayType(){return qsTr('Point')} static displayType(){return qsTr('Point')}
static displayTypeMultiple(){return qsTr('Points')} static displayTypeMultiple(){return qsTr('Points')}
/*static properties() {return {
'x': 'Expression',
'y': 'Expression',
'labelPosition': new P.Enum('above', 'below', 'left', 'right', 'above-left', 'above-right', 'below-left', 'below-right'),
'pointStyle': new P.Enum('●', '✕', ''),
}}*/
static properties() {return { static properties() {return {
[QT_TRANSLATE_NOOP('prop','x')]: 'Expression', [QT_TRANSLATE_NOOP('prop','x')]: 'Expression',
[QT_TRANSLATE_NOOP('prop','y')]: 'Expression', [QT_TRANSLATE_NOOP('prop','y')]: 'Expression',
@ -58,6 +53,10 @@ class Point extends Common.DrawableObject {
return `${this.name} = (${this.x}, ${this.y})` return `${this.name} = (${this.x}, ${this.y})`
} }
getLatexString() {
return `${Latex.variable(this.name)} = \\left(${this.x.latexMarkup}, ${this.y.latexMarkup}\\right)`
}
export() { export() {
return [this.name, this.visible, this.color.toString(), this.labelContent, this.x.toEditableString(), this.y.toEditableString(), this.labelPosition, this.pointStyle] return [this.name, this.visible, this.color.toString(), this.labelContent, this.x.toEditableString(), this.y.toEditableString(), this.labelPosition, this.pointStyle]
} }
@ -80,41 +79,6 @@ class Point extends Common.DrawableObject {
ctx.fillRect(canvasX-1, canvasY-pointSize/2, 2, pointSize) ctx.fillRect(canvasX-1, canvasY-pointSize/2, 2, pointSize)
break; break;
} }
var text = this.getLabel() this.drawLabel(canvas, ctx, this.labelPosition, canvasX, canvasY)
ctx.font = `${canvas.textsize}px sans-serif`
var textSize = ctx.measureText(text).width
switch(this.labelPosition) {
case 'top':
case 'above':
canvas.drawVisibleText(ctx, text, canvasX-textSize/2, canvasY-16)
break;
case 'bottom':
case 'below':
canvas.drawVisibleText(ctx, text, canvasX-textSize/2, canvasY+16)
break;
case 'left':
canvas.drawVisibleText(ctx, text, canvasX-textSize-10, canvasY+4)
break;
case 'right':
canvas.drawVisibleText(ctx, text, canvasX+10, canvasY+4)
break;
case 'top-left':
case 'above-left':
canvas.drawVisibleText(ctx, text, canvasX-textSize-10, canvasY-16)
break;
case 'top-right':
case 'above-right':
canvas.drawVisibleText(ctx, text, canvasX+10, canvasY-16)
break;
case 'bottom-left':
case 'below-left':
canvas.drawVisibleText(ctx, text, canvasX-textSize-10, canvasY+16)
break;
case 'bottom-right':
case 'below-right':
canvas.drawVisibleText(ctx, text, canvasX+10, canvasY+16)
break;
}
} }
} }

View file

@ -20,6 +20,8 @@
.import "common.js" as Common .import "common.js" as Common
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class RepartitionFunction extends Common.ExecutableObject { class RepartitionFunction extends Common.ExecutableObject {
static type(){return 'Repartition'} static type(){return 'Repartition'}
@ -66,6 +68,12 @@ class RepartitionFunction extends Common.ExecutableObject {
return `F_${this.name}(x) = P(${this.name} ≤ x)\n` + keys.map(idx => `P(${this.name}=${idx})=${this.probabilities[idx]}`).join("; ") return `F_${this.name}(x) = P(${this.name} ≤ x)\n` + keys.map(idx => `P(${this.name}=${idx})=${this.probabilities[idx]}`).join("; ")
} }
getLatexString() {
let keys = Object.keys(this.probabilities).sort((a,b) => a-b);
let varName = Latex.variable(this.name)
return `\\begin{array}{l}F_{${varName}}(x) = P(${varName} \\le x)\\\\` + keys.map(idx => `P(${varName}=${idx})=${this.probabilities[idx]}`).join("; ") + '\\end{array}'
}
execute(x = 1) { execute(x = 1) {
var ret = 0; var ret = 0;
Object.keys(this.probabilities).sort((a,b) => a-b).forEach(idx => { Object.keys(this.probabilities).sort((a,b) => a-b).forEach(idx => {
@ -145,37 +153,7 @@ class RepartitionFunction extends Common.ExecutableObject {
} }
// Label // Label
var text = this.getLabel() this.drawLabel(canvas, ctx, this.labelPosition, canvas.x2px(this.labelX), canvas.y2px(this.execute(this.labelX)))
ctx.font = `${canvas.textsize}px sans-serif`
var textSize = canvas.measureText(ctx, text)
var posX = canvas.x2px(this.labelX)
var posY = canvas.y2px(this.execute(this.labelX))
switch(this.labelPosition) {
case 'above':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY-textSize.height)
break;
case 'below':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY+textSize.height)
break;
case 'left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height/2)
break;
case 'right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height/2)
break;
case 'above-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height)
break;
case 'above-right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height)
break;
case 'below-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY+textSize.height)
break;
case 'below-right':
canvas.drawVisibleText(ctx, text, posX, posY+textSize.height)
break;
}
} }
} }

View file

@ -22,6 +22,7 @@
.import "function.js" as F .import "function.js" as F
.import "../mathlib.js" as MathLib .import "../mathlib.js" as MathLib
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class Sequence extends Common.ExecutableObject { class Sequence extends Common.ExecutableObject {
@ -76,11 +77,14 @@ class Sequence extends Common.ExecutableObject {
) )
} }
getReadableString() { getReadableString() {
return this.sequence.toString() return this.sequence.toString()
} }
getLatexString() {
return this.sequence.toLatexString()
}
execute(x = 1) { execute(x = 1) {
if(x % 1 == 0) if(x % 1 == 0)
return this.sequence.execute(x) return this.sequence.execute(x)
@ -103,7 +107,17 @@ class Sequence extends Common.ExecutableObject {
return this.getReadableString() return this.getReadableString()
case 'null': case 'null':
return '' return ''
}
}
getLatexLabel() {
switch(this.labelContent) {
case 'name':
return `(${Latex.variable(this.name)}_n)`
case 'name + value':
return this.getLatexString()
case 'null':
return ''
} }
} }
@ -111,37 +125,7 @@ class Sequence extends Common.ExecutableObject {
F.Function.drawFunction(canvas, ctx, this.sequence, canvas.logscalex ? MathLib.Domain.NE : MathLib.Domain.N, MathLib.Domain.R, this.drawPoints, this.drawDashedLines) F.Function.drawFunction(canvas, ctx, this.sequence, canvas.logscalex ? MathLib.Domain.NE : MathLib.Domain.N, MathLib.Domain.R, this.drawPoints, this.drawDashedLines)
// Label // Label
var text = this.getLabel() this.drawLabel(canvas, ctx, this.labelPosition, canvas.x2px(this.labelX), canvas.y2px(this.execute(this.labelX)))
ctx.font = `${canvas.textsize}px sans-serif`
var textSize = canvas.measureText(ctx, text)
var posX = canvas.x2px(this.labelX)
var posY = canvas.y2px(this.execute(this.labelX))
switch(this.labelPosition) {
case 'above':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY-textSize.height)
break;
case 'below':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY+textSize.height)
break;
case 'left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height/2)
break;
case 'right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height/2)
break;
case 'above-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height)
break;
case 'above-right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height)
break;
case 'below-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY+textSize.height)
break;
case 'below-right':
canvas.drawVisibleText(ctx, text, posX, posY+textSize.height)
break;
}
} }
} }

View file

@ -23,6 +23,7 @@
.import "../objects.js" as Objects .import "../objects.js" as Objects
.import "../mathlib.js" as MathLib .import "../mathlib.js" as MathLib
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class SommeGainsBode extends Common.DrawableObject { class SommeGainsBode extends Common.DrawableObject {
@ -30,10 +31,6 @@ class SommeGainsBode extends Common.DrawableObject {
static displayType(){return qsTr('Bode Magnitudes Sum')} static displayType(){return qsTr('Bode Magnitudes Sum')}
static displayTypeMultiple(){return qsTr('Bode Magnitudes Sum')} static displayTypeMultiple(){return qsTr('Bode Magnitudes Sum')}
static createable() {return false} static createable() {return false}
/*static properties() {return {
'labelPosition': new P.Enum('above', 'below', 'left', 'right', 'above-left', 'above-right', 'below-left', 'below-right'),
'labelX': 'number'
}}*/
static properties() {return { static properties() {return {
[QT_TRANSLATE_NOOP('prop','labelPosition')]: P.Enum.Position, [QT_TRANSLATE_NOOP('prop','labelPosition')]: P.Enum.Position,
[QT_TRANSLATE_NOOP('prop','labelX')]: 'number', [QT_TRANSLATE_NOOP('prop','labelX')]: 'number',
@ -56,6 +53,10 @@ class SommeGainsBode extends Common.DrawableObject {
return `${this.name} = ${Objects.getObjectsName('Gain Bode').join(' + ')}` return `${this.name} = ${Objects.getObjectsName('Gain Bode').join(' + ')}`
} }
getLatexString() {
return `${Latex.variable(this.name)} = ${Objects.getObjectsName('Gain Bode').map(Latex.variable).join(' + ')}`
}
execute(x = 0) { execute(x = 0) {
for(var [dbfn, inDrawDom] of this.cachedParts) { for(var [dbfn, inDrawDom] of this.cachedParts) {
if(inDrawDom.includes(x)) { if(inDrawDom.includes(x)) {
@ -136,37 +137,7 @@ class SommeGainsBode extends Common.DrawableObject {
F.Function.drawFunction(canvas, ctx, dbfn, inDrawDom, MathLib.Domain.R) F.Function.drawFunction(canvas, ctx, dbfn, inDrawDom, MathLib.Domain.R)
if(inDrawDom.includes(this.labelX)) { if(inDrawDom.includes(this.labelX)) {
// Label // Label
var text = this.getLabel() this.drawLabel(canvas, ctx, this.labelPosition, canvas.x2px(this.labelX), canvas.y2px(this.execute(this.labelX)))
ctx.font = `${canvas.textsize}px sans-serif`
var textSize = canvas.measureText(ctx, text)
var posX = canvas.x2px(this.labelX)
var posY = canvas.y2px(dbfn.execute(this.labelX))
switch(this.labelPosition) {
case 'above':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY-textSize.height)
break;
case 'below':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY+textSize.height)
break;
case 'left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height/2)
break;
case 'right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height/2)
break;
case 'above-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height)
break;
case 'above-right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height)
break;
case 'below-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY+textSize.height)
break;
case 'below-right':
canvas.drawVisibleText(ctx, text, posX, posY+textSize.height)
break;
}
} }
} }
} }

View file

@ -22,6 +22,7 @@
.import "../objects.js" as Objects .import "../objects.js" as Objects
.import "../mathlib.js" as MathLib .import "../mathlib.js" as MathLib
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class SommePhasesBode extends Common.ExecutableObject { class SommePhasesBode extends Common.ExecutableObject {
@ -55,6 +56,10 @@ class SommePhasesBode extends Common.ExecutableObject {
return `${this.name} = ${Objects.getObjectsName('Phase Bode').join(' + ')}` return `${this.name} = ${Objects.getObjectsName('Phase Bode').join(' + ')}`
} }
getLatexString() {
return `${Latex.variable(this.name)} = ${Objects.getObjectsName('Phase Bode').map(Latex.variable).join(' + ')}`
}
execute(x=1) { execute(x=1) {
if(typeof x == 'string') x = MathLib.executeExpression(x) if(typeof x == 'string') x = MathLib.executeExpression(x)
for(var i = 0; i < this.om0xList.length-1; i++) { for(var i = 0; i < this.om0xList.length-1; i++) {
@ -122,37 +127,7 @@ class SommePhasesBode extends Common.ExecutableObject {
} }
// Label // Label
var text = this.getLabel() this.drawLabel(canvas, ctx, this.labelPosition, canvas.x2px(this.labelX), canvas.y2px(this.execute(this.labelX)))
ctx.font = `${canvas.textsize}px sans-serif`
var textSize = canvas.measureText(ctx, text)
var posX = canvas.x2px(this.labelX)
var posY = canvas.y2px(this.execute(this.labelX))
switch(this.labelPosition) {
case 'above':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY-textSize.height)
break;
case 'below':
canvas.drawVisibleText(ctx, text, posX-textSize.width/2, posY+textSize.height)
break;
case 'left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height/2)
break;
case 'right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height/2)
break;
case 'above-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY-textSize.height)
break;
case 'above-right':
canvas.drawVisibleText(ctx, text, posX, posY-textSize.height)
break;
case 'below-left':
canvas.drawVisibleText(ctx, text, posX-textSize.width, posY+textSize.height)
break;
case 'below-right':
canvas.drawVisibleText(ctx, text, posX, posY+textSize.height)
break;
}
} }
} }

View file

@ -21,6 +21,8 @@
.import "common.js" as Common .import "common.js" as Common
.import "../mathlib.js" as MathLib .import "../mathlib.js" as MathLib
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class Text extends Common.DrawableObject { class Text extends Common.DrawableObject {
@ -37,11 +39,16 @@ class Text extends Common.DrawableObject {
[QT_TRANSLATE_NOOP('prop','x')]: 'Expression', [QT_TRANSLATE_NOOP('prop','x')]: 'Expression',
[QT_TRANSLATE_NOOP('prop','y')]: 'Expression', [QT_TRANSLATE_NOOP('prop','y')]: 'Expression',
[QT_TRANSLATE_NOOP('prop','labelPosition')]: P.Enum.Positioning, [QT_TRANSLATE_NOOP('prop','labelPosition')]: P.Enum.Positioning,
[QT_TRANSLATE_NOOP('prop','text')]: 'string' [QT_TRANSLATE_NOOP('prop','text')]: 'string',
'comment1': QT_TRANSLATE_NOOP(
'comment',
'If you have latex enabled, you can use use latex markup in between $$ to create equations.'
),
[QT_TRANSLATE_NOOP('prop','disableLatex')]: 'boolean'
}} }}
constructor(name = null, visible = true, color = null, labelContent = 'null', constructor(name = null, visible = true, color = null, labelContent = 'null',
x = 1, y = 0, labelPosition = 'center', text = 'New text') { x = 1, y = 0, labelPosition = 'center', text = 'New text', disableLatex = false) {
if(name == null) name = Common.getNewName('t') if(name == null) name = Common.getNewName('t')
super(name, visible, color, labelContent) super(name, visible, color, labelContent)
this.type = 'Point' this.type = 'Point'
@ -51,50 +58,45 @@ class Text extends Common.DrawableObject {
this.y = y this.y = y
this.labelPosition = labelPosition this.labelPosition = labelPosition
this.text = text this.text = text
this.disableLatex = disableLatex
} }
getReadableString() { getReadableString() {
return `${this.name} = "${this.text}"` return `${this.name} = "${this.text}"`
} }
latexMarkupText() {
let txt = Latex.variable(this.text)
let i
for(i = 0; txt.includes('$$'); i++)
if(i & 0x01) // Every odd number
txt = txt.replace('$$', '\\textsf{')
else
txt = txt.replace('$$', '}')
if(i & 0x01) // Finished by a }
txt += "{"
return txt
}
getLatexString() {
return `${Latex.variable(this.name)} = "\\textsf{${this.latexMarkupText()}}"`
}
export() { export() {
return [this.name, this.visible, this.color.toString(), this.labelContent, this.x.toEditableString(), this.y.toEditableString(), this.labelPosition, this.text] return [this.name, this.visible, this.color.toString(), this.labelContent, this.x.toEditableString(), this.y.toEditableString(), this.labelPosition, this.text]
} }
draw(canvas, ctx) { getLabel() {
var [canvasX, canvasY] = [canvas.x2px(this.x.execute()), canvas.y2px(this.y.execute())] return this.text
ctx.font = `${canvas.textsize}px sans-serif`
var textSize = ctx.measureText(this.text).width
switch(this.labelPosition) {
case 'center':
canvas.drawVisibleText(ctx, this.text, canvasX-textSize/2, canvasY+4)
break;
case 'top':
canvas.drawVisibleText(ctx, this.text, canvasX-textSize/2, canvasY-16)
break;
case 'bottom':
canvas.drawVisibleText(ctx, this.text, canvasX-textSize/2, canvasY+16)
break;
case 'left':
canvas.drawVisibleText(ctx, this.text, canvasX-textSize-5, canvasY+4)
break;
case 'right':
canvas.drawVisibleText(ctx, this.text, canvasX+5, canvasY+4)
break;
case 'top-left':
canvas.drawVisibleText(ctx, this.text, canvasX-textSize-5, canvasY-16)
break;
case 'top-right':
canvas.drawVisibleText(ctx, this.text, canvasX+5, canvasY-16)
break;
case 'bottom-left':
canvas.drawVisibleText(ctx, this.text, canvasX-textSize-5, canvasY+16)
break;
case 'bottom-right':
canvas.drawVisibleText(ctx, this.text, canvasX+5, canvasY+16)
break;
} }
getLatexLabel() {
return `\\textsf{${this.latexMarkupText()}}`
}
draw(canvas, ctx) {
let yOffset = this.disableLatex ? canvas.textsize-4 : 0
this.drawLabel(canvas, ctx, this.labelPosition, canvas.x2px(this.x.execute()), canvas.y2px(this.y.execute())+yOffset, this.disableLatex)
} }
} }

View file

@ -22,27 +22,14 @@
.import "../objects.js" as Objects .import "../objects.js" as Objects
.import "../mathlib.js" as MathLib .import "../mathlib.js" as MathLib
.import "../parameters.js" as P .import "../parameters.js" as P
.import "../math/latex.js" as Latex
class XCursor extends Common.DrawableObject { class XCursor extends Common.DrawableObject {
static type(){return 'X Cursor'} static type(){return 'X Cursor'}
static displayType(){return qsTr('X Cursor')} static displayType(){return qsTr('X Cursor')}
static displayTypeMultiple(){return qsTr('X Cursors')} static displayTypeMultiple(){return qsTr('X Cursors')}
/*static properties() {
return {
'x': 'Expression',
'targetElement': new P.ObjectType('ExecutableObject'),
'labelPosition': new P.Enum('left', 'right'),
'approximate': 'boolean',
'rounding': 'number',
'displayStyle': new P.Enum(
'— — — — — — —',
'⸺⸺⸺⸺⸺⸺',
'• • • • • • • • • •'
),
'targetValuePosition' : new P.Enum('Next to target', 'With label', 'Hidden')
}
}*/
static properties() {return { static properties() {return {
[QT_TRANSLATE_NOOP('prop','x')]: 'Expression', [QT_TRANSLATE_NOOP('prop','x')]: 'Expression',
[QT_TRANSLATE_NOOP('prop','targetElement')]: new P.ObjectType('ExecutableObject'), [QT_TRANSLATE_NOOP('prop','targetElement')]: new P.ObjectType('ExecutableObject'),
@ -87,6 +74,13 @@ class XCursor extends Common.DrawableObject {
return `${this.name} = ${this.x.toString()}\n${this.getTargetValueLabel()}` return `${this.name} = ${this.x.toString()}\n${this.getTargetValueLabel()}`
} }
getLatexString() {
if(this.targetElement == null) return `${Latex.variable(this.name)} = ${this.x.latexMarkup}`
return `\\begin{array}{l}
${Latex.variable(this.name)} = ${this.x.latexMarkup} \\\\
${this.getTargetValueLatexLabel()}`
}
getTargetValueLabel() { getTargetValueLabel() {
var t = this.targetElement var t = this.targetElement
var approx = '' var approx = ''
@ -98,6 +92,18 @@ class XCursor extends Common.DrawableObject {
(this.approximate ? ' ≈ ' + approx : '') (this.approximate ? ' ≈ ' + approx : '')
} }
getTargetValueLatexLabel() {
var t = this.targetElement
var approx = ''
if(this.approximate) {
approx = t.execute(this.x.execute())
approx = approx.toPrecision(this.rounding + Math.round(approx).toString().length)
}
let simpl = t.simplify(this.x.toEditableString())
return `${Latex.variable(t.name)}(${Latex.variable(this.name)}) = ${simpl.tokens ? Latex.expression(simpl.tokens) : simpl}` +
(this.approximate ? ' \\simeq ' + approx : '')
}
getLabel() { getLabel() {
switch(this.labelContent) { switch(this.labelContent) {
case 'name': case 'name':
@ -118,8 +124,28 @@ class XCursor extends Common.DrawableObject {
} }
} }
getLatexLabel() {
switch(this.labelContent) {
case 'name':
return Latex.variable(this.name)
break;
case 'name + value':
switch(this.targetValuePosition) {
case 'Next to target':
case 'Hidden':
return `${Latex.variable(this.name)} = ${this.x.latexMarkup}`
break;
case 'With label':
return this.getLatexString()
break;
}
case 'null':
return ''
}
}
draw(canvas, ctx) { draw(canvas, ctx) {
var xpos = canvas.x2px(this.x.execute()) let xpos = canvas.x2px(this.x.execute())
switch(this.displayStyle) { switch(this.displayStyle) {
case '— — — — — — —': case '— — — — — — —':
var dashPxSize = 10 var dashPxSize = 10
@ -139,52 +165,18 @@ class XCursor extends Common.DrawableObject {
break; break;
} }
// Label // Drawing label at the top of the canvas.
var text = this.getLabel() this.drawLabel(canvas, ctx, this.labelPosition, xpos, 0, false, null, null,
ctx.font = `${canvas.textsize}px sans-serif` (x,y,ltxImg) => canvas.drawVisibleImage(ctx, ltxImg.source, x, 5, ltxImg.width, ltxImg.height),
var textSize = canvas.measureText(ctx, text) (x,y,text,textSize) => canvas.drawVisibleText(ctx, text, x, textSize.height+5))
switch(this.labelPosition) {
case 'left':
case 'above-left':
case 'below-left':
case 'below':
case 'above':
canvas.drawVisibleText(ctx, text, xpos-textSize.width-5, textSize.height+5)
break;
case 'right':
case 'above-right':
case 'below-right':
canvas.drawVisibleText(ctx, text, xpos+5, textSize.height+5)
break;
}
// Drawing label at the position of the target element.
if(this.targetValuePosition == 'Next to target' && this.targetElement != null) { if(this.targetValuePosition == 'Next to target' && this.targetElement != null) {
var text = this.getTargetValueLabel() let ypos = canvas.y2px(this.targetElement.execute(this.x.execute()))
var textSize = canvas.measureText(ctx, text) this.drawLabel(canvas, ctx, this.labelPosition, xpos, ypos, false,
var ypox = canvas.y2px(this.targetElement.execute(this.x.execute())) this.getTargetValueLatexLabel.bind(this), this.getTargetValueLabel.bind(this),
switch(this.labelPosition) { (x,y,ltxImg) => canvas.drawVisibleImage(ctx, ltxImg.source, x, y, ltxImg.width, ltxImg.height),
case 'left': (x,y,text,textSize) => canvas.drawVisibleText(ctx, text, x, y+textSize.height))
case 'below':
case 'above':
canvas.drawVisibleText(ctx, text, xpos-textSize.width-5, ypox+textSize.height)
break;
case 'above-left':
canvas.drawVisibleText(ctx, text, xpos-textSize.width-5, ypox+textSize.height+12)
break;
case 'below-left':
canvas.drawVisibleText(ctx, text, xpos-textSize.width-5, ypox+textSize.height-12)
break;
case 'right':
canvas.drawVisibleText(ctx, text, xpos+5, ypox+textSize.height)
break;
case 'above-right':
canvas.drawVisibleText(ctx, text, xpos+5, ypox+textSize.height+12)
break;
case 'below-right':
canvas.drawVisibleText(ctx, text, xpos+5, ypox+textSize.height-12)
break;
}
} }
} }
} }

View file

@ -26,6 +26,7 @@ DEFAULT_SETTINGS = {
"check_for_updates": True, "check_for_updates": True,
"reset_redo_stack": True, "reset_redo_stack": True,
"last_install_greet": "0", "last_install_greet": "0",
"enable_latex": True
} }
# Create config directory # Create config directory

View file

@ -0,0 +1,192 @@
"""
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and distribution functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
from PySide2.QtCore import QObject, Slot, Property, QCoreApplication
from PySide2.QtGui import QImage, QColor
from PySide2.QtWidgets import QApplication, QMessageBox
from os import path, remove
from string import Template
from tempfile import TemporaryDirectory
from subprocess import Popen, TimeoutExpired, PIPE
from platform import system
from shutil import which
from sys import argv
"""
Searches for a valid Latex and DVIPNG (http://savannah.nongnu.org/projects/dvipng/)
installation and collects the binary path in the DVIPNG_PATH variable.
If not found, it will send an alert to the user.
"""
LATEX_PATH = which('latex')
DVIPNG_PATH = which('dvipng')
#subprocess.run(["ls", "-l", "/dev/null"], capture_output=True)
DEFAULT_LATEX_DOC = Template(r"""
\documentclass[]{minimal}
\usepackage[utf8]{inputenc}
\usepackage{calligra}
\usepackage{amsfonts}
\title{}
\author{}
\begin{document}
$$$$ $markup $$$$
\end{document}
""")
class Latex(QObject):
"""
Base class to convert Latex equations into PNG images with custom font color and size.
It doesn't have any python dependency, but requires a working latex installation and
dvipng to be installed on the system.
"""
def __init__(self, tempdir: TemporaryDirectory):
QObject.__init__(self)
self.tempdir = tempdir
def check_latex_install(self):
"""
Checks if the current latex installation is valid.
"""
if LATEX_PATH is None:
print("No Latex installation found.")
if "--test-build" not in argv:
QMessageBox.warning(None, "LogarithmPlotter - Latex setup", QCoreApplication.translate("latex", "No Latex installation found.\nIf you already have a latex distribution installed, make sure it's installed on your path.\nOtherwise, you can download a Latex distribution like TeX Live at https://tug.org/texlive/."))
elif DVIPNG_PATH is None:
print("DVIPNG not found.")
if "--test-build" not in argv:
QMessageBox.warning(None, "LogarithmPlotter - Latex setup", QCoreApplication.translate("latex", "DVIPNG was not found. Make sure you include it from your Latex distribution."))
@Property(bool)
def latexSupported(self):
return LATEX_PATH is not None and DVIPNG_PATH is not None
@Slot(str, float, QColor, result=str)
def render(self, latex_markup: str, font_size: float, color: QColor = True) -> str:
"""
Renders a latex string into a png file.
"""
markup_hash = hash(latex_markup)
export_path = path.join(self.tempdir.name, f'{markup_hash}_{font_size}_{color.rgb()}')
if self.latexSupported and not path.exists(export_path + ".png"):
print("Rendering", latex_markup, export_path)
# Generating file
try:
latex_path = path.join(self.tempdir.name, str(markup_hash))
# If the formula is just recolored or the font is just changed, no need to recreate the DVI.
if not path.exists(latex_path + ".dvi"):
self.create_latex_doc(latex_path, latex_markup)
self.convert_latex_to_dvi(latex_path)
self.cleanup(latex_path)
self.convert_dvi_to_png(latex_path, export_path, font_size, color)
except Exception as e: # One of the processes failed. A message will be sent every time.
raise e
img = QImage(export_path + ".png");
# Small hack, not very optimized since we load the image twice, but you can't pass a QImage to QML and expect it to be loaded
return f'{export_path}.png,{img.width()},{img.height()}'
def create_latex_doc(self, export_path: str, latex_markup: str):
"""
Creates a temporary latex document with base file_hash as file name and a given expression markup latex_markup.
"""
ltx_path = export_path + ".tex"
f = open(export_path + ".tex", 'w')
f.write(DEFAULT_LATEX_DOC.substitute(markup = latex_markup))
f.close()
def convert_latex_to_dvi(self, export_path: str):
"""
Converts a DVI file to a PNG file.
"""
self.run([
LATEX_PATH,
export_path + ".tex"
])
def convert_dvi_to_png(self, dvi_path: str, export_path: str, font_size: float, color: QColor):
"""
Converts a DVI file to a PNG file.
Documentation: https://linux.die.net/man/1/dvipng
"""
fg = color.convertTo(QColor.Rgb)
fg = f'rgb {fg.redF()} {fg.greenF()} {fg.blueF()}'
depth = int(font_size * 72.27 / 100) * 10
self.run([
DVIPNG_PATH,
'-T', 'tight', # Make sure image borders are as tight around the equation as possible to avoid blank space.
'--truecolor', # Make sure it's rendered in 24 bit colors.
'-D',f'{depth}', # Depth of the image
'-bg', 'Transparent', # Transparent background
'-fg',f'{fg}', # Foreground of the wanted color.
f'{dvi_path}.dvi', # Input file
'-o',f'{export_path}.png', # Output file
])
def run(self, process: list):
"""
Runs a subprocess and handles exceptions and messages them to the user.
"""
proc = Popen(process, stdout=PIPE, stderr=PIPE, cwd=self.tempdir.name)
try:
out, err = proc.communicate(timeout=2) # 2 seconds is already FAR too long.
if proc.returncode != 0:
# Process errored
QMessageBox.warning(None, "LogarithmPlotter - Latex",
QCoreApplication.translate("latex", "An exception occured within the creation of the latex formula.\nProcess '{}' ended with a non-zero return code {}:\n\n{}\nPlease make sure your latex installation is correct and report a bug if so.")
.format(" ".join(process), proc.returncode, str(out, 'utf8')+"\n"+str(err,'utf8')))
raise Exception(" ".join(process) + " process exited with return code " + str(proc.returncode) + ":\n" + str(out, 'utf8')+"\n"+str(err,'utf8'))
except TimeoutExpired as e:
# Process timed out
proc.kill()
out, err = proc.communicate()
QMessageBox.warning(None, "LogarithmPlotter - Latex",
QCoreApplication.translate("latex", "An exception occured within the creation of the latex formula.\nProcess '{}' took too long to finish:\n{}\nPlease make sure your latex installation is correct and report a bug if so.")
.format(" ".join(process), str(out, 'utf8')+"\n"+str(err,'utf8')))
raise Exception(" ".join(process) + " process timed out:\n" + str(out, 'utf8')+"\n"+str(err,'utf8'))
def cleanup(self, export_path):
"""
Removes auxiliary, logs and Tex temporary files.
"""
for i in [".tex", ".aux", ".log"]:
remove(export_path + i)
@Slot(str, float, QColor, result=str)
def render_legacy(self, latexstring, font_size, color = True):
exprpath = path.join(self.tempdir.name, f'{hash(latexstring)}_{font_size}_{color.rgb()}.png')
print("Rendering", latexstring, exprpath)
if not path.exists(exprpath):
fg = color.convertTo(QColor.Rgb)
fg = f'rgb {fg.redF()} {fg.greenF()} {fg.blueF()}'
preview('$${' + latexstring + '}$$', viewer='file', filename=exprpath, dvioptions=[
"-T", "tight",
"-z", "0",
"--truecolor",
f"-D {int(font_size * 72.27 / 100) * 10}", # See https://linux.die.net/man/1/dvipng#-D for convertion
"-bg", "Transparent",
"-fg", fg],
euler=False)
img = QImage(exprpath);
# Small hack, not very optimized since we load the image twice, but you can't pass a QImage to QML and expect it to be loaded
return f'{exprpath},{img.width()},{img.height()}'

View file

@ -14,6 +14,7 @@ steps:
- name: Linux test - name: Linux test
image: ad5001/ubuntu-pyside2-xvfb:hirsute-5.15.2 image: ad5001/ubuntu-pyside2-xvfb:hirsute-5.15.2
commands: commands:
- apt install -y texlive-latex-base dvipng
- xvfb-run python3 run.py --test-build --no-check-for-updates - xvfb-run python3 run.py --test-build --no-check-for-updates
- xvfb-run python3 run.py --test-build --no-check-for-updates ./ci/test1.lpf - xvfb-run python3 run.py --test-build --no-check-for-updates ./ci/test1.lpf
- xvfb-run python3 run.py --test-build --no-check-for-updates ./ci/test2.lpf - xvfb-run python3 run.py --test-build --no-check-for-updates ./ci/test2.lpf

View file

@ -1 +1 @@
LPFv1{"xzoom":100,"yzoom":485,"xmin":-1,"ymax":1,"xaxisstep":"1","yaxisstep":"0.1","xaxislabel":"ω (rad/s)","yaxislabel":"G (dB)","logscalex":false,"linewidth":2,"showxgrad":true,"showygrad":true,"textsize":22,"history":[[["EditedProperty",["h","Function","labelX",3,2.5,false]],["EditedProperty",["h","Function","labelPosition","above-left","above",false]],["EditedProperty",["h","Function","labelPosition","above","left",false]],["EditedProperty",["h","Function","labelX",2.5,2,false]],["EditedProperty",["h","Function","labelX",2,2.2,false]],["EditedProperty",["h","Function","labelX",2.2,9,false]]],[]],"width":1908,"height":1005,"objects":{"Sequence":[["u",true,"#ff5500","name + value",true,true,{"1":"cos(u[n])"},{"0":"-1"},"above-left",8]],"Function":[["f",true,"#2b156d","name + value","integral((x + 1), x, \"cos (t)\", \"t\")","ℝ⁺*","","application","left",7,true,true],["g",true,"#ac539c","name + value","0.739083","","","application","below",-1,true,false],["h",true,"#00aa00","name + value","derivative(\"cos t\", \"t\", x)","","","application","left",9,true,true]],"Repartition":[["X",true,"#1E1EAF","name",true,true,{"0":"0.2","1":"0.1","2":"0.2"},"above",2.5]],"Point":[["A",true,"#060759","name + value","4","(-0.5)","top","●"]]},"type":"logplotv1"} LPFv1{"xzoom":100,"yzoom":485,"xmin":-1,"ymax":1,"xaxisstep":"1","yaxisstep":"0.1","xaxislabel":"ω (rad/s)","yaxislabel":"G (dB)","logscalex":false,"linewidth":2,"showxgrad":true,"showygrad":true,"textsize":22,"history":[[["EditedProperty",["h","Function","labelX",3,2.5,false]],["EditedProperty",["h","Function","labelPosition","above-left","above",false]],["EditedProperty",["h","Function","labelPosition","above","left",false]],["EditedProperty",["h","Function","labelX",2.5,2,false]],["EditedProperty",["h","Function","labelX",2,2.2,false]],["EditedProperty",["h","Function","labelX",2.2,9,false]],["EditedProperty",["f","Function","labelPosition","left","above-left",false]],["EditedProperty",["f","Function","labelX",7,7.4,false]],["EditedProperty",["A","Point","y","(-0.5)","(-0.6)",true]],["EditedProperty",["X","Repartition","labelX",2.5,5,false]],["EditedProperty",["u","Sequence","labelPosition","above-left","below-right",false]],["EditedProperty",["u","Sequence","labelPosition","below-right","below-left",false]],["EditedProperty",["u","Sequence","labelX",8,6,false]],["EditedProperty",["u","Sequence","baseValues",{"0":"-1"},{"0":"-1"},false]],["EditedProperty",["u","Sequence","labelX",6,7,false]],["EditedProperty",["u","Sequence","labelPosition","below-left","above-right",false]]],[]],"width":1908,"height":1005,"objects":{"Sequence":[["u",true,"#ff5500","name + value",true,true,{"1":"cos(u[n])"},{"0":"-1"},"above-right",7]],"Function":[["f",true,"#2b156d","name + value","integral((x + 1), x, \"cos (t)\", \"t\")","ℝ⁺*","","application","above-left",7.4,true,true],["g",true,"#ac539c","null","0.739083","","","application","below",-1,true,false],["h",true,"#00aa00","name + value","derivative(\"cos t\", \"t\", x)","","","application","left",9,true,true]],"Repartition":[["X",true,"#1E1EAF","name + value",true,true,{"0":"0.2","1":"0.1","2":"0.2"},"above",5]],"Point":[["A",true,"#060759","name + value","4","(-0.6)","top","●"]]},"type":"logplotv1"}

View file

@ -1 +1 @@
LPFv1{"xzoom":300,"yzoom":22,"xmin":0.5,"ymax":22,"xaxisstep":"4","yaxisstep":"4","xaxislabel":"","yaxislabel":"","logscalex":true,"linewidth":2,"showxgrad":true,"showygrad":true,"textsize":14,"history":[[["CreateNewObject",["g","Function",["g",true,"#697F4E","name + value","x","ℝ⁺*","","application","above",1,true,true]]],["EditedProperty",["g","Function","expression","x","(x ^ 3)",true]],["CreateNewObject",["h","Function",["h",true,"#0CA920","name + value","x","ℝ⁺*","","application","above",1,true,true]]],["EditedProperty",["h","Function","expression","x","Integrate(\"x^3\", x)",true]],["EditedProperty",["h","Function","expression","Integrate(\"x^3\", x)","integral(0, x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, x, \"t^3\", \"t\")","integral(0, x, \"t^3\", \"t\")",true]],["EditedProperty",["g","Function","labelX",1,2,false]],["EditedProperty",["g","Function","displayMode","application","function",false]],["EditedProperty",["g","Function","labelPosition","above","above-left",false]],["EditedProperty",["g","Function","labelX",2,1.5,false]],["EditedProperty",["g","Function","labelPosition","above-left","above",false]],["EditedProperty",["h","Function","expression","integral(0, x, \"t^3\", \"t\")","integral((x + 1), x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral((x + 1), x, \"t^3\", \"t\")","integral(x, (x + 1), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(x, (x + 1), \"t^3\", \"t\")","integral(0, (x + 1), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, (x + 1), \"t^3\", \"t\")","integral(0, x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, x, \"t^3\", \"t\")","integral(0, (x + 0), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, (x + 0), \"t^3\", \"t\")","integral(1, x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(1, x, \"t^3\", \"t\")","integral(x, 0, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(x, 0, \"t^3\", \"t\")","integral(x, (x + 1), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(x, (x + 1), \"t^3\", \"t\")","integral(x, 1, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(x, 1, \"t^3\", \"t\")","integral(0, x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","displayMode","application","function",false]],["EditedProperty",["h","Function","displayMode","function","application",false]],["EditedProperty",["h","Function","labelX",1,2,false]],["EditedProperty",["h","Function","labelPosition","above","below",false]],["EditedProperty",["h","Function","labelPosition","below","below-right",false]],["EditedProperty",["h","Function","expression","integral(0, x, \"t^3\", \"t\")","integral(0, (x - 1), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, (x - 1), \"t^3\", \"t\")","integral(0, (x - 0), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, (x - 0), \"t^3\", \"t\")","integral(0, (x + 0.01), \"t^3\", \"t\")",true]]],[]],"width":1027,"height":594,"objects":{"Function":[["f",true,"#8F6027","name + value","derivative(\"t^3\", \"t\", x)","ℝ⁺*","","application","above-left",2,true,true],["g",true,"#697F4E","name + value","(x ^ 3)","ℝ⁺*","","function","above",1.5,true,true],["h",true,"#0CA920","name + value","integral(0, (x + 0.01), \"t^3\", \"t\")","ℝ⁺*","","application","below-right",2,true,true]]},"type":"logplotv1"} LPFv1{"xzoom":300,"yzoom":22,"xmin":0.5,"ymax":22,"xaxisstep":"4","yaxisstep":"4","xaxislabel":"","yaxislabel":"","logscalex":true,"linewidth":2,"showxgrad":true,"showygrad":true,"textsize":20,"history":[[["CreateNewObject",["g","Function",["g",true,"#697F4E","name + value","x","ℝ⁺*","","application","above",1,true,true]]],["EditedProperty",["g","Function","expression","x","(x ^ 3)",true]],["CreateNewObject",["h","Function",["h",true,"#0CA920","name + value","x","ℝ⁺*","","application","above",1,true,true]]],["EditedProperty",["h","Function","expression","x","Integrate(\"x^3\", x)",true]],["EditedProperty",["h","Function","expression","Integrate(\"x^3\", x)","integral(0, x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, x, \"t^3\", \"t\")","integral(0, x, \"t^3\", \"t\")",true]],["EditedProperty",["g","Function","labelX",1,2,false]],["EditedProperty",["g","Function","displayMode","application","function",false]],["EditedProperty",["g","Function","labelPosition","above","above-left",false]],["EditedProperty",["g","Function","labelX",2,1.5,false]],["EditedProperty",["g","Function","labelPosition","above-left","above",false]],["EditedProperty",["h","Function","expression","integral(0, x, \"t^3\", \"t\")","integral((x + 1), x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral((x + 1), x, \"t^3\", \"t\")","integral(x, (x + 1), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(x, (x + 1), \"t^3\", \"t\")","integral(0, (x + 1), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, (x + 1), \"t^3\", \"t\")","integral(0, x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, x, \"t^3\", \"t\")","integral(0, (x + 0), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, (x + 0), \"t^3\", \"t\")","integral(1, x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(1, x, \"t^3\", \"t\")","integral(x, 0, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(x, 0, \"t^3\", \"t\")","integral(x, (x + 1), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(x, (x + 1), \"t^3\", \"t\")","integral(x, 1, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(x, 1, \"t^3\", \"t\")","integral(0, x, \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","displayMode","application","function",false]],["EditedProperty",["h","Function","displayMode","function","application",false]],["EditedProperty",["h","Function","labelX",1,2,false]],["EditedProperty",["h","Function","labelPosition","above","below",false]],["EditedProperty",["h","Function","labelPosition","below","below-right",false]],["EditedProperty",["h","Function","expression","integral(0, x, \"t^3\", \"t\")","integral(0, (x - 1), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, (x - 1), \"t^3\", \"t\")","integral(0, (x - 0), \"t^3\", \"t\")",true]],["EditedProperty",["h","Function","expression","integral(0, (x - 0), \"t^3\", \"t\")","integral(0, (x + 0.01), \"t^3\", \"t\")",true]]],[]],"width":1027,"height":594,"objects":{"Function":[["f",true,"#8F6027","name + value","derivative(\"t^3\", \"t\", x)","ℝ⁺*","","application","above-left",2,true,true],["g",true,"#697F4E","name + value","(x ^ 3)","ℝ⁺*","","function","above",1.5,true,true],["h",true,"#0CA920","name + value","integral(0, (x + 0.01), \"t^3\", \"t\")","ℝ⁺*","","application","below-right",2,true,true]]},"type":"logplotv1"}

View file

@ -1,9 +1,9 @@
Package: logarithmplotter Package: logarithmplotter
Source: logarithmplotter Source: logarithmplotter
Version: 0.1.9 Version: 0.2.0
Architecture: all Architecture: all
Maintainer: Ad5001 <mail@ad5001.eu> Maintainer: Ad5001 <mail@ad5001.eu>
Depends: python3, python3-pip, qml-module-qtquick-controls2 (>= 5.12.0), qml-module-qtmultimedia (>= 5.12.0), qml-module-qtgraphicaleffects (>= 5.12.0), qml-module-qtquick2 (>= 5.12.0), qml-module-qtqml-models2 (>= 5.12.0), qml-module-qtquick-controls (>= 5.12.0), python3-pyside2.qtcore (>= 5.12.0), python3-pyside2.qtqml (>= 5.12.0), python3-pyside2.qtgui (>= 5.12.0), python3-pyside2.qtquick (>= 5.12.0), python3-pyside2.qtwidgets (>= 5.12.0), python3-pyside2.qtmultimedia (>= 5.12.0), python3-pyside2.qtnetwork (>= 5.12.0), python3-sympy Depends: python3, python3-pip, qml-module-qtquick-controls2 (>= 5.12.0), qml-module-qtmultimedia (>= 5.12.0), qml-module-qtgraphicaleffects (>= 5.12.0), qml-module-qtquick2 (>= 5.12.0), qml-module-qtqml-models2 (>= 5.12.0), qml-module-qtquick-controls (>= 5.12.0), python3-pyside2.qtcore (>= 5.12.0), python3-pyside2.qtqml (>= 5.12.0), python3-pyside2.qtgui (>= 5.12.0), python3-pyside2.qtquick (>= 5.12.0), python3-pyside2.qtwidgets (>= 5.12.0), python3-pyside2.qtmultimedia (>= 5.12.0), python3-pyside2.qtnetwork (>= 5.12.0), texlive-latex-base, dvipng
Build-Depends: debhelper (>=11~), dh-python, dpkg-dev (>= 1.16.1~), python-setuptools, python3-all-dev (>=3.6) Build-Depends: debhelper (>=11~), dh-python, dpkg-dev (>= 1.16.1~), python-setuptools, python3-all-dev (>=3.6)
Section: science Section: science

View file

@ -1 +1 @@
python3-pip, qml-module-qtquick-controls2 (>= 5.12.0), qml-module-qtmultimedia (>= 5.12.0), qml-module-qtgraphicaleffects (>= 5.12.0), qml-module-qtquick2 (>= 5.12.0), qml-module-qtqml-models2 (>= 5.12.0), qml-module-qtquick-controls (>= 5.12.0), python3-pyside2.qtcore (>= 5.12.0), python3-pyside2.qtqml (>= 5.12.0), python3-pyside2.qtgui (>= 5.12.0), python3-pyside2.qtquick (>= 5.12.0), python3-pyside2.qtwidgets (>= 5.12.0), python3-pyside2.qtmultimedia (>= 5.12.0), python3-pyside2.qtnetwork (>= 5.12.0), python3-sympy python3-pip, qml-module-qtquick-controls2 (>= 5.12.0), qml-module-qtmultimedia (>= 5.12.0), qml-module-qtgraphicaleffects (>= 5.12.0), qml-module-qtquick2 (>= 5.12.0), qml-module-qtqml-models2 (>= 5.12.0), qml-module-qtquick-controls (>= 5.12.0), python3-pyside2.qtcore (>= 5.12.0), python3-pyside2.qtqml (>= 5.12.0), python3-pyside2.qtgui (>= 5.12.0), python3-pyside2.qtquick (>= 5.12.0), python3-pyside2.qtwidgets (>= 5.12.0), python3-pyside2.qtmultimedia (>= 5.12.0), python3-pyside2.qtnetwork (>= 5.12.0), texlive-latex-base, dvipng

View file

@ -8,7 +8,24 @@ set \
-o pipefail -o pipefail
# GTK theme integration (we have Qt fetch the GTK theme mirroring the host Qt theme...) # GTK theme integration (we have Qt fetch the GTK theme mirroring the host Qt theme...)
# Currently broken with portals
#export QT_QPA_PLATFORMTHEME=kde #export QT_QPA_PLATFORMTHEME=kde
# Finally run the next part of the command chain # Check if the last parameter is a file, and if so, add the argument "--no-checks-for-updates" BEFORE it.
${@} --no-check-for-updates
length=$(($#-1))
echo "Len: $length"
if [ $length -gt 0 ]; then
last="${@:$#}" # last parameter
args=("${@:1:$length}") # all parameters except the last
if [ -f "$last" ]; then
${args} --no-check-for-updates "$last"
else
${@} --no-check-for-updates
fi
else
${@} --no-check-for-updates
fi

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
cd "$(dirname "$(readlink -f "$0" || realpath "$0")")/.." cd "$(dirname "$(readlink -f "$0" || realpath "$0")")/.."
VERSION=0.1.9 VERSION=0.2.0
title="LogarithmPlotter v${VERSION} Setup" title="LogarithmPlotter v${VERSION} Setup"
finalDMGName="LogarithmPlotter-v${VERSION}-setup.dmg" finalDMGName="LogarithmPlotter-v${VERSION}-setup.dmg"
applicationName=LogarithmPlotter applicationName=LogarithmPlotter

View file

@ -127,7 +127,7 @@ if sys.platform == 'linux':
os.remove(os.environ["PREFIX"] + '/icons/hicolor/scalable/apps/logplotter.svg') os.remove(os.environ["PREFIX"] + '/icons/hicolor/scalable/apps/logplotter.svg')
setuptools.setup( setuptools.setup(
install_requires=([] if "FLATPAK_INSTALL" in os.environ else ["PySide2", "sympy"]), install_requires=([] if "FLATPAK_INSTALL" in os.environ else ["PySide2"]),
python_requires='>=3.8', python_requires='>=3.8',
name='logarithmplotter', name='logarithmplotter',
@ -145,7 +145,7 @@ setuptools.setup(
classifiers=CLASSIFIERS, classifiers=CLASSIFIERS,
zip_safe=False, zip_safe=False,
packages=["LogarithmPlotter"], packages=["LogarithmPlotter", "LogarithmPlotter.util"],
package_data={ package_data={
'LogarithmPlotter':package_data(), 'LogarithmPlotter':package_data(),

View file

@ -1,6 +1,6 @@
name: logarithmplotter name: logarithmplotter
title: LogarithmPlotter title: LogarithmPlotter
version: '0.1.9' version: '0.2.0'
summary: 2D logarithmic-scaled plotter software to create asymptotic Bode plots summary: 2D logarithmic-scaled plotter software to create asymptotic Bode plots
confinement: strict confinement: strict
base: core20 base: core20
@ -79,6 +79,9 @@ parts:
source: . source: .
stage-packages: stage-packages:
- breeze-icon-theme - breeze-icon-theme
# Latex dependencies
- texlive-latex-base
- dvipng
# Additional dependencies # Additional dependencies
- libxcomposite1 - libxcomposite1
- libxcursor1 - libxcursor1
@ -131,7 +134,7 @@ parts:
- libxcb-render-util0 - libxcb-render-util0
- libdouble-conversion3 - libdouble-conversion3
- libpcre2-16-0 - libpcre2-16-0
snapcraft-preload: # Fixes error related to multiprocessing on python. snapcraft-preload:
source: https://github.com/sergiusens/snapcraft-preload.git source: https://github.com/sergiusens/snapcraft-preload.git
plugin: cmake plugin: cmake
cmake-parameters: cmake-parameters:
@ -142,6 +145,11 @@ parts:
- g++-multilib - g++-multilib
stage-packages: stage-packages:
- lib32stdc++6 - lib32stdc++6
changelog:
source: .
plugin: dump
organize:
CHANGELOG.md: lib/python3.8/site-packages/LogarithmPlotter/CHANGELOG.md
apps: apps:
logarithmplotter: logarithmplotter:

View file

@ -11,7 +11,7 @@ Unicode True
!define PROG_ID "LogarithmPlotter.File.1" !define PROG_ID "LogarithmPlotter.File.1"
!define DEV_NAME "Ad5001" !define DEV_NAME "Ad5001"
!define WEBSITE "https://apps.ad5001.eu/logarithmplotter" !define WEBSITE "https://apps.ad5001.eu/logarithmplotter"
!define VERSION_SHORT "0.1.9" !define VERSION_SHORT "0.2.0"
!define APP_VERSION "${VERSION_SHORT}.0" !define APP_VERSION "${VERSION_SHORT}.0"
!define COPYRIGHT "Ad5001 (c) 2022" !define COPYRIGHT "Ad5001 (c) 2022"
!define DESCRIPTION "Create graphs with logarithm scales." !define DESCRIPTION "Create graphs with logarithm scales."